컴퓨터 공학/알고리즘

👉 [번역] 객체 인식(Object Recognition) 이해 : 딥러닝 vs 머신러닝 방식

bitcodic 2019. 10. 29. 23:02

출처 : https://www.mathworks.com/solutions/image-video-processing/object-recognition.html

 

 영상 내 물체를 식별하는 과정은 객체 검출(Object Detection)과 객체 인식(Object Recognition) 으로 크게 나눌 수 있다.

그 중 객체 인식에 대한 좋은 글이 있어 번역 및 정리를 하기 위해 가져왔다. 알고 있는 내용을 통해 직역했기 때문에 원본과 단어 선택에 있어서 느낌 차이가 있을 수 있다.

What Is Object Recognition?

Object recognition is a computer vision technique for identifying objects in images or videos. Object recognition is a key output of deep learning and machine learning algorithms. When humans look at a photograph or watch a video, we can readily spot people, objects, scenes, and visual details. The goal is to teach a computer to do what comes naturally to humans: to gain a level of understanding of what an image contains.

객체 인식은 이미지나 영상 내의 물체를 식별하는 컴퓨터 비젼 기술이다. 객체 인식은 딥러닝과 머신러닝 알고리즘의 핵심적인 결과이다. 인간이 사진이나 영상을 바라볼 때, 우리는 쉽게 사람, 객체, 장면, 시각적 요소들을 찾는다. 이 목표는 컴퓨터에게 인간에 자연스레 하는 것을 가르치는 것이다 : 이미지 내에 무엇을 갖고 있는지에 대한 이해 수준을 얻는 것

 

Figure 1. Using object recognition to identify different categories of objects. 

 

 

Object recognition is a key technology behind driverless cars, enabling them to recognize a stop sign or to distinguish a pedestrian from a lamppost. It is also useful in a variety of applications such as disease identification in bioimaging, industrial inspection, and robotic vision.

객체 인식은 정지판을 인식하거나 가로등과 보행자를 구별하는 것을 가능하게 하는 자율주행 차량 내 핵심적인 기술이다. 이는 또한 바이오이미징과 같은 질병 확인, 산업적 분석 그리고 로봇 비젼과 같은 다양한 애플리케이션에게도 유용하다.

 

Object Recognition vs. Object Detection

Object detection and object recognition are similar techniques for identifying objects, but they vary in their execution. Object detection is the process of finding instances of objects in images. In the case of deep learning, object detection is a subset of object recognition, where the object is not only identified but also located in an image. This allows for multiple objects to be identified and located within the same image.

객체 탐지와 객체 인식은 물체 식별을 하는데 유사한 기술이다. 그러나 이 둘은 실행함에 있어 차이점을 갖는다. 객체 탐지는 이미지 내의 물체 존재를 찾는 과정이다. 딥러닝의 경우, 이미지를 식별하는 것 뿐만 아니라 이미지의 위치도 찾는 객체 탐지는 객체 인식의 부분집합이다. 이는 복수의 물체가 식별되며 같은 이미지 내에 어디에 존재하는지도 가능케한다.

 

Figure 2. Object recognition (left) and object detection (right). 

 

How Object Recognition Works

You can use a variety of approaches for object recognition. Recently, techniques in machine learning and deep learning have become popular approaches to object recognition problems. Both techniques learn to identify objects in images, but they differ in their execution.

당신은 다양한 객체 인식 접근방법을 사용할 수 있습니다. 최근에 머신러닝과 딥러닝 기술은 객체 인식의 유명한 접근법으로 거듭나고 있습니다. 두 기술 모두 이미지 내에 객체를 식별하는 것을 배우나, 그들의 실행에서 차이점을 갖습니다.

 

Figure 3: Machine learning and deep learning techniques for object recognition. 

 

The following section explains the differences between machine learning and deep learning for object recognition, and it shows how to implement both techniques.

아래 섹션은 머신러닝과 딥러닝에서 객체 인식에서의 차이점에 대해 설명합니다. 또한 이는 두 기술들이 어떻게 구현하는지도 보여줍니다.

 

Object Recognition Techniques

Object Recognition Using Deep Learning

Deep learning techniques have become a popular method for doing object recognition. Deep learning models such as convolutional neural networks, or CNNs, are used to automatically learn an object’s inherent features in order to identify that object. For example, a CNN can learn to identify differences between cats and dogs by analyzing thousands of training images and learning the features that make cats and dogs different.

딥러닝 기술들은 객체 인식을 함에 있어 유명한 기술들이 되가고 있습니다. 컨볼루셔널 뉴럴 네트워크와 같은 딥러닝 모델(CNN)들은 그 물체를 식별하기 위해서 자동적으로 객체의 내재 특정을 배우게 됩니다. 예를 들어, CNN 은 고양이와 개들을 수천장의 학습 이미지를 분석하고 고양이와 개를 구분짓는 특성들을 배움으로써 차이점을 식별할 수 있도록 배웁니다.

 

There are two approaches to performing object recognition using deep learning:

객체 인식을 딥러닝을 이용하여 수행하는 두 가지 방식이 있습니다:
  • Training a model from scratch: To train a deep network from scratch, you gather a very large labeled dataset and design a network architecture that will learn the features and build the model. The results can be impressive, but this approach requires a large amount of training data, and you need to set up the layers and weights in the CNN.
  • 무로부터 모델을 학습 시키기 : 무(無)로부터 딥 네트워크를 학습하기 위해, 당신은 라벨링된 큰 학습 데이터를 모으고 특징을 배우고 모델을 지을 네트워크 구조를 설계합니다. 그 결과들은 강렬할 것이나, 이 접근방식은 많은 학습 데이터셋을 필요로 하며, 당신은 CNN 안에 레이어와 가중치를 조정해야 합니다.
  • Using a pretrained deep learning model: Most deep learning applications use the transfer learning approach, a process that involves fine-tuning a pretrained model. You start with an existing network, such as AlexNet or GoogLeNet, and feed in new data containing previously unknown classes. This method is less time-consuming and can provide a faster outcome because the model has already been trained on thousands or millions of images.
  • 이미 학습된 모델 사용하기 : 대부분의 딥러닝 애플리케이션들은 전이 학습 방식을 이용합니다. 이는 기존에 학습된 모델을 적절하게 튜닝하는 과정을 포함합니다. 당신은 존재하는 네트워크, 예를들어 알렉스넷이나 구글넷과 같은, 것들과 함께 시작합니다. 그리고 이전에 알려지지 않은 분류(클래스)들을 포함하는 새 학습 데이터를 넣습니다. 이 방식은 시간이 절약되며 빠른 결과를 도출해낼 수 있습니다. 왜냐하면 이미 수많은 이미지들로 이미 모델이 학습됐기 때문입니다.

Deep learning offers a high level of accuracy but requires a large amount of data to make accurate predictions.

딥러닝은 높은 수준의 정확도를 제공하나 정확한 예측을 위해 많은 양의 데이터를 필요로 합니다.

 

Object Recognition Using Machine Learning

Machine learning techniques are also popular for object recognition and offer different approaches than deep learning. Common examples of machine learning techniques are:

머신러닝 기술들은 또한 객체 인식에서 유명하고 딥러닝과는 다른 접근방식을 제공합니다. 보통의 머신러닝 기술들은 다음과 같슴다:

 

Machine Learning Workflow

To perform object recognition using a standard machine learning approach, you start with a collection of images (or video), and select the relevant features in each image. For example, a feature extraction algorithm might extract edge or corner features that can be used to differentiate between classes in your data.

객체 인식을 일반적은 머신러닝 접근방식으로 수행하기 위해서, 당신은 이미지들을 수집해야합니다. 그리고 각 이미지의 유사한 특징들을 찾아내야합니다. 예를들어, 특징 추출 알고리즘은 당신의 데이터에서 분류(클래스)들 사이에 차이를 나타내는 가장자리(엣지)나 코너를 추출할 것 입니다.

 

These features are added to a machine learning model, which will separate these features into their distinct categories, and then use this information when analyzing and classifying new objects.

You can use a variety of machine learning algorithms and feature extraction methods, which offer many combinations to create an accurate object recognition model.

이 특징들은 그들의 뚜렷한 카테고리로 분류되어 머신러닝 모델에 추가됩니다. 또한 새 물체들을 분류하고 분석하는 데에 정보들을 사용합니다.

 

Figure 5: Machine learning workflow for object recognition.

 

Using machine learning for object recognition offers the flexibility to choose the best combination of features and classifiers for learning. It can achieve accurate results with minimal data.

객체 인식에서 머신러닝을 사용하는 것은 최상의 특징 조합과 학습 분류기를 고르는데 유연성을 제공합니다. 이는 최소한의 데이터로 정확한 결과를 얻어낼 수 있습니다.

 

Machine Learning vs. Deep Learning for Object Recognition

Determining the best approach for object recognition depends on your application and the problem you’re trying to solve. In many cases, machine learning can be an effective technique, especially if you know which features or characteristics of the image are the best ones to use to differentiate classes of objects.

최상의 객체 인식 방식을 찾는 것은 당신의 애플리케이션과 당신이 해결하려는 문제에 달렸다. 많은 경우에서 머신러닝은 효과적은 기술이 될 수 있다. 특별히 특징들이나 이미지의 특성들 중 물체를 분류하는데에 어떤 것이 가장 좋은지 단신이 알고 있을 경우,

 

The main consideration to keep in mind when choosing between machine learning and deep learning is whether you have a powerful GPU and lots of labeled training images. If the answer to either of these questions is No, a machine learning approach might be the best choice. Deep learning techniques tend to work better with more images, and a GPU helps to decrease the time needed to train the model.

머신러닝과 딥러닝 중 고를 때 가장 중요한 것은 강력한 GPU 와 많은 양의 라벨된 데이터가 잇는지의 여부이다. 만약 그렇지 않다면(없다면), 머신러닝 접근 방식이 좋다. 딥러닝 기술들은 많은 이미지에서 좋은 성과를 내는 경향이 있으며 GPU가 모델을 학습하는 시간을 단축시키는데에 도움이 된다.

 

Figure 6: Key factors for choosing between deep learning and machine learning.