닫기

테크노트

배너

[테크노트] 이오비스, '딥러닝 EasyLocate' 불량 식별 및 위치 검출 알고리즘

  • 등록 2021.05.12 10:00:10
URL복사

[헬로티]

 

 

 

EasyLocate 불량 식별 및 위치 검출 알고리즘

 

Euresys의 딥러닝 라이브러리 번들 구성 중 하나인 EasyLocate는 대상물이나 불량을 식별하고 그 위치를 검출하는 라이브러리다. EasyLocate는 이미지로부터 여러 종류의 부품 또는 불량을 동시에 식별할 수 있으며 겹쳐있는 객체도 구분할 수 있어서 수량 카운팅에도 유용하다.

 

또한 EasyLocate는 인식된 대상물 또는 불량의 위치를 Bounding Box로 표시하고 해당하는 객체의 클라스 레이블을 할당한다. 딥러닝 알고리즘에 기반한 EasyLocate는 학습을 위하여 불량의 위치와 해당 클라스 레이블을 표시한 이미지들이 필요하다.

 

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

 

 

그림. 여러 종류의 전자 부품으로 구성된 샘플 이미지 세트

 

위 그림은 비닐 봉투에 여러가지 전자 부품이 들어있는 샘플 데이터 세트 이미지 중 하나로서 EasyLocate가 열악한 조명 환경에서도 얼마나 안정적으로 다양한 대상물을 인식할 수 있는지 보여준다.

 

EasyLocate의 장점 중 하나는 머신비전 어플리케이션에 특화된 딥러닝 네트워크 아키텍처를 설계 적용한 것인데, 이는 YOLO 또는 Retina-Net과 같은 첨단 아키텍처에 영감을 받은 것이다. EasyLocate는 4월에 출시될 Open eVision V2.15에 포함될 예정이다.

 

 

그림. (좌)제한된 노출 환경에도 유연한 검출, (우)다수의 대상물 또는 불량 식별

 

데이터 증강 (Data Augmentation)

 

딥러닝은 신경망 학습에 의해 동작하는데 이는 일련의 기준 샘플 이미지를 이용해 대상물을 분류하는 방법을 학습시키는 과정이다. 이 학습 프로세스의 성능은 기준 샘플 이미지 세트가 얼마나 대표성과 확장성을 갖는지에 의해 크게 좌우된다. 딥러닝 번들은 학습의 효과를 높이기 위해 데이터 증강(Data Augmentation)을 수행하는데, 이는 사용자가 제공한 샘플 이미지들을 프로그램 가능한 한계 내에서 (shifting, rotating, scaling 등의 방법으로) 편집해서 추가적인 샘플 이미지를 더 만드는 것이다. 이렇게 함으로써 클라스 당 100개의 이미지만으로도 학습이 가능해진다.

 

CPU 및 GPU 프로세싱 지원
딥러닝에는 일반적으로 상당히 많은 처리 역량이 필요한데 특히 학습 단계에서 더 그렇다. 딥러닝 번들은 표준 CPU를 지원하고 PC에 있는 NVIDIA CUDA 호환 GPU를 자동으로 감지한다. 대개 하나의 GPU가 학습 및 처리 단계를 100배 가속화한다. EasyLocate의 모든 기능은 더 빠른 처리를 위해 CPU와 NVIDIA GPU 모두에서 동작한다. EasyLocate의 신경망은 특정 애플리케이션에서 CPU만으로도 실행이 가능하도록 설계 및 최적화 되었다.

 

Deep Learning Studio 무료 테스트 소프트웨어
Open eVision은 무료 Deep Learning Studio 애플리케이션을 포함한다. 이 소프트웨어는 데이터 세트를 생성할 때와 딥러닝 도구를 교육 및 테스트하는 단계에서 사용자를 도와준다. 예를 들어, EasySegment의 경우 주석 도구를 통합하고 있으며 예측(Prediction)을 실측 자료 주석(Ground Truth Annotation)으로 변환할 수 있다. 또한 성능 요구 사항에 맞도록 그래픽 환경에서 도구를 구성할 수 있다. 그리고 학습 후에 더 나은 불량 감지율과 더 나은 양품 감지율 사이에서 적당한 tradeoff 지점을 선택할 수 있다.

 

 

 

딥러닝이란?
CNN(컨볼루션 신경망)은 인간의 두뇌를 이루는 생물학적 신경망을 모방해 만든 컴퓨팅 시스템이다. 즉 인간의 뇌신경이 정보를 해석하기 위해 감각기관으로부터 입력되는 수많은 정보들을 처리하는 방식에서 영감을 받아 설계된 기술이다. CNN은 딥 피드포워드(deep feed-forward) 방식의 인공 신경망으로, 이미지를 분석하는데 가장 널리 적용되고 있다.

 

딥러닝은 기존의 컴퓨터 비전 알고리즘으로 풀기 어렵거나 풀 수 없는 복잡한 문제를 풀기 위해 대규모 CNN을 사용한다. 딥러닝 알고리즘은 대개 예제를 이용해 학습하기 때문에 사용하기에 더 쉬울 수도 있다. 부품 등 대상물을 분류 또는 검사하는 방법을 사용자가 알 필요가 없다. 대신 이 알고리즘은 초기 학습 단계에서 검사 대상 부품의 표시된 많은 이미지에 의해 학습이 필요하다. 성공적으로 학습을 마친 후 이 알고리즘을 이용해 부품을 분류하거나 결함을 감지하고 분할할 수 있다.

 

 

 

딥러닝 신경망은 여러 개의 층(layer)으로 구성된다. 입력 층(input layer)은 신경망이 다루어야 할 이미지의 속성(attributes)을 정의한다. 그리고 두 개 이상의 숨겨진 층(hidden layer)은 이미지에 서 특징(features: 모서리, 엣지 등)을 추출함으로써 특징 공간(feature space)을 만들어낸다. 마지막으로 출력층(output layer)은 확보된 특징(features)에 근거한 분류(Classification)를 만들고 검출 결과(inference)를 출력한다.

 

딥러닝 신경망은 연속된 층(layer)에서 점진적으로 의미 있는 표현을 학습하는 데 강점이 있으며 데이터로부터 표현을 학습하는 새로운 방식이다. 딥러닝의 딥(deep)이란 단어가 어떤 깊은 통찰을 얻을 수 있다는 것을 의미하지는 않다. 그냥 연속된 층으로 표현을 학습한다는 개념을 나타낸다. 데이터로부터 모델을 만드는 데 얼마나 많은 층을 사용했는지가 그 모델의 깊이가 된다. 이 분야에 대한 적절한 다른 이름은 층 기반 표현 학습(layered representations learning) 또는 계층적 표현 학습(hierarchical representations learning)이 될 수 있다.

 

최근의 딥러닝 모델은 표현 학습을 위해 수십 개, 수백 개의 연속된 층을 가지고 있다. 이 층들을 모두 훈련 데이터에 노출해서 자동으로 학습시킨다. 딥러닝에서는 기본 층을 겹겹이 쌓아 올려 구성한 신경망(neural network)이라는 모델을 사용하여 표현 층을 학습한다.

 

 

그림. deep neural network

 

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

 

딥러닝 번들

 

Open eVision 딥러닝 번들은 EasyLocate를 포함한 다수의 알고리즘 패키지 소프트웨어다. 신경망이 제품을 인식하거나 불량을 검출할 수 있도록 이미지를 분류하는 기능을 담당하는 EasyClassify와 불량의 분할(segmentation) 프로세스를 촉진해 주는 EasySegment도 포함된다(Unsupervised Mode 및 Supervised Mode 지원).

 

 

 

지원 운영체제 및 개발환경

 

● 운영체제 Windows 7, 8, 10 (32/64 비트)
● 개발환경
‒ Microsoft Visual Studio 2008® SP1 (C++, C#, VB .NET, C++/CLI)
‒ Microsoft Visual Studio 2010® (C++, C#, VB .NET, C++/CLI)
‒ Microsoft Visual Studio 2012® (C++, C#, VB .NET, C++/CLI)
‒ Microsoft Visual Studio 2013® (C++, C#, VB .NET, C++/CLI)
‒ Microsoft Visual Studio 2015® (C++, C#, VB .NET, C++/CLI)
‒ Microsoft Visual Studio 2017® (C++, C#, VB .NET, C++/CLI)

 

추가 개발 계획

 

2021년에는 EasyLocate의 리눅스 지원(Intel x64 platform)이 가능하게 될 것입니다. 그리고 새로운 기능들(oriented bounding box, key point localization, arbitrary image resolution 등)이 추가로 개발될 것이며, Deep Learning Studio 또한 지속적으로 업그레이드될 예정이다.



















주요파트너/추천기업