영상 인식이란? - MATLAB & Simulink

영상 인식

영상 인식이란?

꼭 알아야 할 3가지 사항

영상 인식은 영상이나 비디오에서 객체나 특징을 식별하는 과정입니다. 영상 인식은 결함 검출, 의료 영상, 보안 감시와 같은 다양한 응용 사례에서 사용됩니다.

영상 인식이 중요한 이유

영상 인식은 지루한 작업의 진행 속도를 높이고 수작업 영상 검사보다 더 빠르고 정확하게 영상을 처리할 수 있습니다. 영상 인식은 많은 응용 사례에서 중요한 기법이며 다음과 같은 딥러닝 응용 사례의 주요 동인입니다.

  • 외관 검사: 제조 과정에서 부품의 결함 유무를 식별하면 조립 라인에서 수천 개의 부품을 신속하게 검사할 수 있습니다.
  • 영상 분류: 영상 콘텐츠에 기초하여 영상을 분류합니다. 이는 특히 전자상거래의 영상 검색 및 추천 시스템과 같은 응용 사례에서 유용합니다.
  • 자율주행: 영상에서 정지 표지판이나 보행자를 인식하는 기능은 자율주행 응용 사례에서 매우 중요합니다.
  • 로보틱스: 영상 인식은 경로에 있는 위치나 객체를 식별하여 로봇이 객체를 식별하고 자율 내비게이션을 향상하는 데 사용할 수 있습니다.
부품 결함에 대한 외관 검사 응용 사례에서의 영상 인식.

부품 결함에 대한 외관 검사 응용 사례에서의 영상 인식.

영상 인식은 이러한 응용 사례의 중심에 있는 핵심 기술입니다. 영상에서 객체나 장면을 식별하고 그 정보를 사용하여 더 큰 시스템의 일부로서 결정을 내리게 됩니다. 영상 인식은 이러한 시스템의 인식 능력을 개선시켜 시스템에 인사이트를 제공하여 본질적으로 더 나은 결정을 내릴 수 있게 돕습니다.

영상 인식과 객체 검출의 비교

영상 인식과 객체 검출은 유사한 기법이며 종종 함께 사용되기도 합니다. 영상 인식은 영상에 어떤 객체나 장면이 있는지를 식별하고, 객체 검출은 영상에서 해당 객체의 출현 여부 및 위치를 찾습니다.

일반적인 객체 검출 기법으로는 Faster R-CNN 및 YOLOv3이 있습니다.

영상 인식(왼쪽)과 객체 검출(오른쪽).

영상 인식(왼쪽)과 객체 검출(오른쪽).

작동 방식

영상 인식 기법

영상 인식에는 머신러닝과 딥러닝 기법을 비롯한 다양한 방법이 있습니다. 사용하는 기법은 응용 사례에 따라 다르지만, 일반적으로 문제가 복잡할수록 딥러닝 기법을 살펴볼 가능성이 더 높습니다.

딥러닝을 사용한 영상 인식

영상 인식에 대한 딥러닝 접근법은 컨벌루션 신경망을 사용하여 표본 영상에서 관련 특징을 자동으로 학습하고 새로운 영상에서 해당 특징을 자동으로 식별하는 것을 수반할 수 있습니다.

통상적인 영상 인식의 딥러닝 워크플로는 다음과 같습니다.

훈련 데이터 준비

훈련 데이터 준비: 영상 모음으로 시작하여 이를 관련 범주로 분류합니다. 여기에는 더 정확한 모델을 위해 영상의 일관성을 높이는 전처리 단계도 포함될 수 있습니다.

딥러닝 모델 만들기

딥러닝 모델 만들기: 딥러닝 모델은 처음부터 구축할 수도 있지만, 여러분의 응용 사례의 시작점으로 사용할 수 있는 사전 훈련된 모델로 시작하는 것이 가장 좋습니다. (사전 훈련된 모델에 대해 자세히 알아보기).

모델 훈련

모델 훈련: 모델 훈련에는 테스트 데이터를 모델에 제공하는 과정이 포함됩니다. 그런 다음 모델은 데이터를 여러 번 반복 처리하며 영상과 관련된 가장 중요한 특징을 자동으로 학습합니다. 훈련이 진행되면서 모델은 더 정교한 특징을 학습하며 훈련 세트에서 영상의 클래스를 정확하게 판독할 수 있게 됩니다.

데이터 테스트

데이터 테스트: 모델이 이전에 본 적 없는 새로운 데이터에 대해 테스트하여 모델이 영상을 무엇으로 인식하는지 확인합니다. 결과가 예상과 다르면 정확도가 더 높아질 때까지 이 네 단계를 반복합니다.

딥러닝 기법은 복잡하게 느껴질 수 있지만, 간단한 예제를 통해 이 기술을 쉽게 시작하고 더 자세히 알아볼 수 있습니다.

팁: 딥러닝 기법은 매우 정확하고 견고한 결과를 제공하기 때문에 영상 인식에 널리 사용됩니다. 딥러닝은 대량의 훈련 데이터에서 가장 잘 작동하는 경향이 있으며 전이 학습과 같은 기법은 영상 인식 워크플로를 간소화할 수 있습니다. Deep Learning Toolbox™는 알고리즘, 사전 훈련된 모델 및 앱을 사용하여 심층 신경망을 설계하고 구현할 수 있는 프레임워크를 제공합니다.

머신러닝을 사용한 영상 인식

영상 인식에 대한 머신러닝 접근법에는 영상에서 주요 특징을 식별하고 추출한 후 이를 머신러닝 모델에 대한 입력으로 사용하는 작업을 수반합니다.

  • 데이터 훈련: 영상 모음으로 시작하여 이를 관련 범주로 분류합니다.
  • 특징 추출: 각 영상에서 관련 특징을 선택합니다. 특징 추출 알고리즘은 데이터에서 클래스를 구분하는 데 사용할 수 있는 에지 또는 코너 특징을 추출할 수 있습니다.
  • 머신러닝 모델 만들기: 이러한 특징은 머신러닝 모델에 추가되며, 이 모델은 이러한 특징을 고유한 범주로 분리한 다음 새 객체를 분석하고 분류할 때 이 정보를 사용합니다.
머신러닝 워크플로

영상 인식을 위한 머신러닝 워크플로.

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

머신러닝의 예

HOG 특징과 SVM 분류기를 사용하여 숫자를 분류하는 데 영상 인식을 활용하는 머신러닝의 예.

팁: 객체 인식에 머신러닝을 사용하면 학습에 가장 적합한 특징과 분류기 조합을 유연하게 선택할 수 있습니다. 따라서 최소한의 데이터로 정확한 결과를 얻을 수 있습니다. Statistics and Machine Learning Toolbox™데이터를 나타내고, 분석하고, 모델링하는 함수와 앱을 제공합니다.

영상 인식: 딥러닝과 머신러닝의 차이점

어떤 경우에 딥러닝 또는 머신러닝을 영상 인식에 사용해야 하는지 어떻게 알 수 있을까요? 간단히 말하면, 머신러닝으로는 특징을 직접 선택하는 반면, 딥러닝으로는 이를 자동으로 학습한다는 것이 차이입니다.

전통적 영상 처리 기법을 사용한 영상 인식

딥러닝과 머신러닝 외에도, 일부 응용 사례에서는 다수의 고전적인 영상 처리 방법이 영상 인식에 매우 효과적입니다. 영상 처리 기법은 다음과 같은 “픽셀 기반” 인식 응용 사례에 매우 적합한 경향이 있습니다.

  • 색 기반 영상 인식: 색은 종종 영상 인식에 탁월한 특징을 제공할 수 있습니다. HSV(색조, 채도, 값) 또는 RGB(빨강, 녹색, 파랑) 같은 특징은 영상에 대한 인사이트를 제공할 수 있습니다.
  • 형판 매칭: 이 기법은 작은 영상 또는 형판을 사용하여 더 큰 영상에서 매칭되는 영역을 찾습니다.
  • 영상 분할과 블롭 분석: 이는 크기, 색 또는 형태와 같은 간단한 객체 속성을 사용합니다.
팁: 일반적으로 영상 분할과 같은 간단한 접근법으로 객체를 인식할 수 있다면, 바로 그 접근법을 사용하여 시작하는 것이 가장 좋습니다. 여러분은 수백, 수천 개의 훈련 영상이나 복잡한 솔루션이 요구되지 않는 견고한 솔루션을 보유하고 있을 수도 있습니다. Image Processing Toolbox™에 여러분들이 필요한 모든 툴이 있을 수 있습니다.

MATLAB을 사용한 영상 인식

MATLAB®은 영상 인식의 어려운 부분을 단순화할 수 있습니다.

  1. 영상 레이블 지정 앱: 정리된 전처리 데이터는 영상 인식의 성공 가능성을 극대화할 수 있습니다. 영상 레이블 지정기 앱을 사용하면 영상 자르기 및 레이블 지정 과정을 자동화할 수 있습니다.
대화형 방식으로 영상과 비디오에 레이블 지정.

대화형 방식으로 영상과 비디오에 레이블 지정.

  1. 딥러닝과 머신러닝 알고리즘 살펴보기: 처음 시작할 때는 딥러닝 기법 또는 머신러닝 기법을 사용해야 할지가 불확실할 수도 있습니다. MATLAB을 사용하면 이런 접근법의 모든 조합을 시도해 볼 수 있습니다. 사전 훈련된 딥러닝 모델이나 머신러닝 분류 알고리즘을 살펴볼 수 있습니다.

ONNX™(Open Neural Network Exchange) 가져오기 및 내보내기 기능을 사용하여 TensorFlow™, Keras, PyTorch, Caffe2 같은 프레임워크에서 신경망 및 신경망 아키텍처와 상호운용할 수 있습니다.

Python 기반 프레임워크에 통합.

Python 기반 프레임워크에 통합.

  1. 배포를 위한 자동 코드 생성: 궁극적으로, 여러분의 알고리즘은 데스크탑 환경 외부에서 상주해야 할 수도 있습니다. MATLAB은 웹, 임베디드 하드웨어 또는 프로덕션 서버 등 어디에나 영상 인식 알고리즘을 배포할 수 있는 코드 생성 툴을 제공합니다.
알고리즘을 만들고 나면 자동화된 워크플로를 사용하여 Hardware-in-the-Loop 테스트를 위해 GPU Coder™로 TensorRT 또는 CUDA® 코드를 생성할 수 있습니다. 생성된 코드는 기존 프로젝트와 통합할 수 있으며 데스크탑 GPU 또는 임베디드 GPU(예: NVIDIA® Jetson 또는 NVIDIA Drive 플랫폼)에서 객체 검출 알고리즘을 검증하는 데 사용될 수 있습니다.

추가 참고 자료:  패턴 인식


영상 인식에 대해 자세히 알아보기

딥러닝 예제

문서에서 딥러닝 예제를 살펴볼 수 있습니다.

컴퓨터 비전

컴퓨터 비전의 정의, 작동 방식, 중요한 이유 및 MATLAB을 사용한 컴퓨터 비전에 대해 알아볼 수 있습니다.

사용자 지정 Bag-of-Features를 사용한 영상 검색

이 예제는 사용자 지정 Bag-of-Features 워크플로를 사용하여 CBIR 시스템을 구축하는 방법을 보여줍니다.

Bag-of-Visual-Words를 사용한 영상 분류

Bag-of-Visual-Words를 만들어 영상 범주 분류에 Computer Vision Toolbox™ 함수를 사용하는 방법을 알아볼 수 있습니다.