객체 인식

반드시 알아야 할 3가지

객체 인식이란?

객체 인식은 이미지 또는 비디오 상의 객체를 식별하는 컴퓨터 비전 기술입니다. 객체 인식은 딥러닝과 머신 러닝 알고리즘을 통해 산출되는 핵심 기술입니다. 사람은 사진 또는 비디오를 볼 때 인물, 물체, 장면 및 시각적 세부 사항을 쉽게 알아챌 수 있습니다. 이 기술의 목표는 이미지에 포함된 사항을 이해하는 수준의 능력과 같이 사람이라면 당연히 할 수 있는 일을 컴퓨터도 할 수 있도록 학습시키는 것입니다.

객체 인식을 사용하여 다른 카테고리의 객체 식별하기.

그림 1. 객체 인식을 사용하여 다른 카테고리의 객체 식별하기.

객체 인식은 무인 자동차에서 활용되는 핵심 기술로, 자동차가 정지 신호를 인식하고 보행자와 가로등을 구별할 수 있도록 합니다. 또한 객체 인식 기술은 바이오이미징에서의 질병 식별, 산업 검사 및 로봇 비전과 같은 여러 분야에서 활용할 수 있습니다.

객체 인식 과 객체 감지의 차이점

객체 감지(Object detection)와 객체 인식(Object recognition)은 서로 유사한 객체 식별 기술이지만, 실행 방식은 서로 다릅니다. 객체 감지는 이미지에서 객체의 인스턴스를 찾아내는 프로세스입니다. 딥러닝의 경우 객체 감지는 이미지에서 객체를 식별할 뿐만 아니라 위치까지 파악되는 객체 인식의 서브셋입니다. 이를 통해 하나의 이미지 에서 여러 객체를 식별하고 각 위치를 파악할 수 있습니다.

객체 인식(왼쪽)과 객체 감지(오른쪽).

그림 2. 객체 인식(왼쪽)과 객체 감지(오른쪽).

객체 인식 작동 방식

객체 인식에는 다양한 접근 방식을 사용할 수 있습니다. 최근 머신 러닝딥러닝 기술이 객체 인식 문제에 접근하는 방식으로 널리 사용되고 있습니다. 두 기술은 이미지에서 객체를 식별하는 방법을 학습하지만, 실행 방식은 서로 다릅니다.

그림 3: 객체 인식에 사용되는 머신 러닝과 딥러닝 기술.

다음 섹션에서는 객체 인식에 사용되는 머신 러닝과 딥러닝의 차이점을 설명하고, 두 기술을 구현하는 방법을 보여줍니다.

객체 인식 기술

딥러닝을 사용한 객체 인식

딥러닝 기술은 객체 인식에 널리 사용되는 방법이 되었습니다. CNN(컨벌루션 뉴럴 네트워크)과 같은 딥러닝 모델은 객체를 식별하기 위해 해당 객체 고유의 특징을 자동으로 학습하는 데 사용됩니다. 예를 들어 CNN에서는 수천 장의 훈련용 이미지를 분석하고 고양이와 개를 구분하는 특징을 학습하여 고양이와 개의 차이점을 식별하는 방법을 학습할 수 있습니다.

딥러닝을 사용하여 객체 인식을 실시하는 두 가지 접근 방식이 있습니다.

  • 기초부터 모델 훈련시키기: 기초부터 딥 네트워크를 훈련시키기 위해서는 레이블이 지정된, 매우 방대한 데이터 세트를 모으고, 네트워크 아키텍처를 설계하여 특징을 학습하고 모델을 완성합니다. 이를 통해 뛰어난 결과물을 얻을 수 있지만, 이러한 접근 방식을 위해서는 방대한 분량의 훈련 데이터가 필요하고 CNN에 레이어와 가중치를 설정해야 합니다.
  • 사전 훈련된 딥러닝 모델 사용하기: 대다수 딥러닝 응용 프로그램은 사전 훈련된 모델을 세밀하게 조정하는 방법이 포함된 프로세스인 전이 학습 방식을 사용합니다. 이 방식에서는 AlexNet 또는 GoogLeNet과 같은 기존 네트워크를 사용하여 이전에 알려지지 않은 클래스를 포함하는 새로운 데이터를 주입합니다. 이 방법을 사용하면 수천 또는 수백만 장의 이미지로 모델을 미리 훈련한 덕분에 시간 소모가 줄게 되고 결과물을 빠르게 산출할 수 있습니다.

딥러닝은 높은 수준의 정밀도를 제공하지만, 정확한 예측을 위해서는 대량의 데이터를 필요로 합니다.

그림 4: 식당 음식을 인식하는 데 객체 인식을 사용하는 딥러닝 응용 분야.

머신 러닝을 사용한 객체 인식

머신 러닝 기술도 객체 인식에 널리 사용되고 있으며, 딥러닝과는 다른 접근 방식을 제공합니다. 머신 러닝 기술이 사용되는 일반적인 사례는 아래와 같습니다.

머신 러닝 워크플로

표준 머신 러닝 방식을 사용하여 객체 인식을 수행하려면 이미지(또는 비디오)를 모아 각 이미지에서 주요 특징을 선택합니다. 예를 들어 특징 추출 알고리즘을 사용하면 데이터에서 클래스 간의 구분에 사용할 수 있는 가장자리 또는 코너 특징이 추출됩니다.

그런 다음, 이러한 특징을 머신 러닝 모델에 추가하여 각 특징을 고유 카테고리로 나눈 후 새로운 객체를 분석 및 분류할 때 이 정보를 사용합니다.

정확한 객체 인식 모델을 만들기 위해 다양한 머신 러닝 알고리즘과 특징 추출 방법을 조합하여 사용할 수 있습니다.

객체 인식에 사용되는 머신 러닝 워크플로.

그림 5: 객체 인식에 사용되는 머신 러닝 워크플로.

객체 인식에 머신 러닝을 사용하면 다양한 특징과 분류기를 최적으로 조합하여 학습에 사용할 수 있습니다. 최소의 데이터로도 정확한 결과를 얻을 수 있습니다.

객체 인식을 위한 머신 러닝과딥러닝의 차이점

최적의 객체 인식 접근 방식은 응용 분야와 해결하려는 문제에 따라 다릅니다. 많은 경우, 특히 객체의 클래스를 구분하기 위해 이미지의 어떤 특징을 사용하는 것이 가장 좋은지 알고 있을 때는 머신 러닝이 효과적인 기술일 수 있습니다.

머신 러닝과 딥러닝 중 무엇을 선택할지 고민되는 경우에는 고성능 GPU와 대량의 레이블이 지정된 학습용 이미지를 보유하고 있는지를 중점적으로 고려해야 합니다. 이러한 조건이 갖추어지지 않았다면 머신 러닝 방식이 보다 나은 선택일 수 있습니다. 딥러닝 기술은 이미지가 많을 때 더 나은 결과를 보여주는 경향이 있으며, GPU는 모델을 학습시키기 위해 필요한 시간을 줄이는 데 도움이 됩니다.

그림 6: 딥러닝과 머신 러닝 중에서 선택할 때 고려해야 하는 주요 요소.

자세히 알아보기

기타 객체 인식 방법

응용 분야에 따라서는 좀 더 기초적인 다른 객체 인식 방법을 사용하는 것만으로도 충분할 수 있습니다.

  • 템플릿 매칭 – 대형 이미지에서 일치하는 부분을 찾기 위해 소형 이미지 또는 템플릿 사용
  • 이미지 분할 및 BLOB 분석 – 크기, 색상 또는 모양과 같은 단순한 객체 속성 사용

일반적으로 이미지 분할과 같은 단순한 방식을 사용하여 객체를 인식할 수 있으면 단순한 방식을 사용하여 시작하는 것이 좋습니다. 이러한 방식을 통해 수백 또는 수천 장의 훈련용 이미지 또는 과도하게 복잡한 솔루션이 필요하지 않으면서도 견고한 솔루션을 사용할 수 있습니다.

객체 인식

MATLAB을 활용한 딥러닝 및 머신 러닝

전문가가 아니어도 단 몇 줄의 MATLAB 코드로 객체 인식을 위한 머신 러닝 및 딥러닝 모델을 만들 수 있습니다.

객체 인식에 MATLAB을 사용하면 다음과 같은 이점이 제공되어 짧은 시간 안에 성공을 거둘 수 있습니다.

  1. MATLAB으로 분야별 전문지식을 활용하여 데이터과학을 학습할 수 있습니다.

    MATLAB을 활용하여 머신 러닝과 딥러닝 영역에서 전문 지식을 습득할 수 있습니다. MATLAB은 이러한 영역에 대한 학습을 실용적이고 이해하기 쉽게 만듭니다. 또한 MATLAB을 사용하는 전문가는 산업 또는 응용 분야에 관한 지식이 없을 수 있는 데이터 과학자에게 작업을 넘기지 않고도 객체 인식 모델을 만들 수 있습니다.

  2. 앱을 사용하여 데이터에 레이블을 지정하고 모델을 만들 수 있습니다.

    MATLAB을 사용하면 최소의 코드로 머신 러닝과 딥러닝 모델을 만들 수 있습니다.

    Classification Learner 앱 을 사용하면 머신 러닝 모델을 빠르게 완성하고 코드 작성 없이 여러 머신 러닝 알고리즘을 비교할 수 있습니다.

    Image Labeler 앱 을 사용하면 딥러닝 모델 학습 및 테스트를 위해 이미지 내의 객체에 대화형 방식으로 레이블을 지정하고 비디오 상의 레이블 지정 작업을 자동화할 수 있습니다. 이 대화형 자동 방식을 통해 짧은 시간 안에 더 나은 결과물을 얻을 수 있습니다.

  3. 객체 인식을 단일 워크플로로 통합할 수 있습니다.

    MATLAB은 여러 영역을 단일 워크플로로 통합할 수 있습니다. MATLAB을 사용하면 하나의 환경에서 생각하고 프로그래밍할 수 있습니다. 또한, 딥러닝과 머신 러닝뿐만 아니라 로봇 공학, 컴퓨터 비전 및 데이터 분석 등의 다양한 알고리즘 영역에 제공되는 툴과 기능을 사용할 수 있습니다.

MATLAB은 엔터프라이즈 시스템, 클러스트, 클라우드 및 임베디드 기기에 모델을 배포하는 작업을 자동화합니다.

30일 무료 평가판

시작하기