머신 비전의 미래는 신경망
딥 러닝 및 컨볼루션 신경망(CNN)에 초점을 맞춘 정황 보고서
자료제공 : Basler
신경망이란 무엇이며, 신경망이 산업용 화상 처리 분야에서 많은 관심을 끌고 있는 이유는 무엇일까? 신경망은 개발자들이 구분 기준을 정의해야 할 필요성을 없애 준다. 대신 신경망은 스스로 기준을 학습하고 이러한 ‘지식’ 을 정밀 작업에 적용한다. 하지만 태생적으로 신경망은 처음에는 신뢰도와 정확도가 떨어지는 단점이 있다. 이를 예방하기 위해서는 먼저 깊이 있는 교육을 받아야 한다. 바슬러가 작성한 이 백서를 통해 이러한 교육의 수행 방법, 이를 위한 준비 절차, 그리고 신경망 설치와 관련된 각각의 개발 단계에 대해 자세히 알아보자.
사과와 배
‘사과와 오렌지는 비교하지 말라’는 말이 있는데 머신 비전 시스템에서는 사과와 배의 경우도 마찬가지로 여겨진다. 그렇지만 이미지 데이터를 바탕으로 두 종류의 과일을 분류하는 이런 종류의 작업을 정밀하게 처리할 수 있는 시스템에 대한 수요가 꽤 있어 왔다.
개발자들은 오랫동안 두 가지 과일을 구분하는 데 필요한 기준이 무엇인지 고민해왔다. 사과가 비교적 붉은 색조가 강한 것에 비해 배는 녹색을 띤다는 비교적 간단한 접근 방법을 상상할 수도 있을 것이다. 이 방법에 따르면 색상 정보가 한 가지 기준이 되는 것이다. 하지만 예를 들어 설익어 녹색을 띠는 사과의 경우 색상만을 기준으로 하면 자칫 배로 잘못 판단하는 경우가 생길 수 있다. 따라서 보다 높은 정확도 보장을 위해서는 형태와 같은 기준을 추가하는 것이 합리적이다. 예를 들어 사과가 둥근 형태를 갖는 경향이 있는데 반해 배는 비교적 긴 형태를 갖는 편이다(서양 배의 경우).
사과와 배를 분류해야하는 사례에서 구분 방법은 비교적 단순하다. 구분 기준이(흔히 ‘특징’으로 부름) 확인하기 어렵지 않기 때문이다. 하지만 서로 다른 종류의 사과를 구분해야 할 경우라면 어떻게 해야 할까? 이 경우는 쉽게 구분이 가능할 정도로 색상과 모양의 차이가 충분하지 않을 수도 있다.
바슬러에서 자체 정의한 ‘가공된’ 특징들은 ‘사과와 배’ 예시부터 그 한계로 볼 수 있는 ‘사과의 종류’까지 최대한 넓은 범위에 적용이 가능하다. 서로 다른 종류의 물체들에 대한 분류가 어려울수록 서로 구분할 수 있는 특징들을 자동으로 탐지할 수 있는 알고리즘을 만드는 것이 개발자들에겐 더욱 더 중요한 과제가 되었다.
위의 예시와 같은 분류를 가능하게 하는 머신 러닝 알고리즘, 특히 컨볼루션 신경망(Convolutional Neural Networks), 줄여서 CNN은 전망이 밝은 솔루션이다. CNN은 사물을 구분하는 데 필요한 기준을 자동으로 학습한다. 이로 인해 CNN은 가장 까다로운 분류 문제에 대해서 뿐만 아니라 상당한 융통성이 필요한 모든 애플리케이션 사례에서도 유용하게 적용될 수 있다.
컨볼루션 신경망(CNN): Success Story
CNN의 컨셉은 새로운 것은 아니다. 1968년에 캐나다의 신경생리학자인 David Hubel은 스웨덴의 신경생리학자인 Torsten Wiesel과 고양이의 시각피질에 대한 공동 연구를 수행했다. 시각피질은 뇌의 한 부분으로 시각 데이터를 이용 가능한 정보로 가공하는 일을 담당한다. 이들의 목표는 눈을 통해 뇌에 전달되는 시각적 이미지 정보로부터 뇌가 물체에 대한 문맥상 유용한 정보 ‘사과가 보인다.’를 생성하는 방식에 관한 의문을 푸는 것이었다. 두 연구원은 다양한 방향에서 고양이에게 조명 막대를 보여 주고 막대 방향에 따라 시각피질의 세포들 중 어떤 것들이 활성화되는지 파악했다. 또한 눈 모양과 같은 복잡한 빛의 패턴에 따라 시각피질 중 보다 깊은 곳에 있는 부분의 세포들이 활성화되는 것을 증명했다.
Hubel과 Wiesel의 노력으로 세포 활성화 및 구체적인 이미지 정보의 전달을 설명할 수 있는 모델이 만들어졌다. 이로부터 컴퓨터를 이용한 이미지 분류 모델의 기반이 형성되었다. 30년 뒤, 프랑스의 컴퓨터 공학자인 Yann LeCun이 Hubel과 Wiesel의 연구 내용에 푹 빠졌다. 그는 시각피질의 기능에 대한 설명을 알고리즘에 더해 프로세스에 최초의 CNN을 만들었다.
그의 노력에도 불구하고 CNN은 여러 해 동안 실용적인 애플리케이션으로는 적합하지 않았다. 가장 중요한 원인은 CNN에 엄청난 컴퓨팅 성능이 필요하다는 점이었다. 데이터 레코드를 하나씩 순차적으로 처리하는 시리얼 테크닉을 이용해 데이터를 처리하는 CPU 프로세서들로 네트워크가 제대로 작동할 만큼 충분한 학습을 하려면 여러 해가 소요될 정도였다.
CNN 모델이 다시 주목받게 된 것은 그래픽 프로세서 유닛(GPU)을 사용하면서부터이며, 최근 몇 년 사이 완전히 다시 태어났다. GPU를 사용한 이후 필기 인식, 의료 진단, 자율주행차량용 조기 경보 시스템, 로봇 공학 및 생물 통계학에서의 사물 인식 등 다양한 분야에 걸쳐 엄청난 성공을 이뤄냈다. CNN은 다른 경쟁 학습 기술에 비해 더 나은 결과를 낳는 경우가 많았다. Google, IBM, Microsoft 및 Facebook과 같은 거대 기업들이 수십억 달러를 투자한 것만 보아도 이 기술에 대한 엄청난 관심과 잠재력을 엿볼 수 있다.
CNN은 단순히 프로세서만 집약해 놓으면 되는 것이 아니라 많은 양의 데이터도 필요로 한다. 백지 상태에서 CNN을 훈련시키려면 이미 분류되어 있는 이미지 데이터가 상당히 많이 필요하다. 오늘날 개발자들은 이러한 정보가 축적되어 있는 데이터베이스에 자유롭게 액세스할 수 있다. 가장 인기 있는 이미지 데이터베이스는 ImageNet이다. 이 데이터베이스에는 분류되어 있는 이미지 1,400만 건이 담겨 있으며, 특정 분류 문제에 특화된 데이터베이스도 있다.
예를 들어, German Traffic Sign Recognition Benchmark라는 이름의 데이터베이스에는 50,000 건의 교통 신호 이미지가 포함되어 있다. 이 사례에서 CNN은 2012년에 99.46%의 성공률을 보였는데 이는 사람이 직접 분류했을 때의 성공률인 98.84%보다 우수한 결과이다. 하지만 사실 개발자들은 대개 아주 전문화된 분류 문제에 부딪히는데 이는 고유한 이미지 데이터를 직접 확보할 방법이 없다는 점이다. 다행히도 수백만 건의 이미지를 수집할 필요는 없다. '전이학습(transfer learning)' 이라 불리는 기술적 트릭을 이용하면 필요한 볼륨을 크게 줄일 수 있으며 경우에 따라서는 겨우 수백 또는 수천 장의 이미지로 줄일 수 있다.
소프트웨어 스택의 많은 부분은 개발자들에게 자유롭게 열려 있다. CNN의 프레임워크는 방대하다. Caffe, Torch, 그리고 Theano를 포함해 수많은 소프트웨어 라이브러리들이 이 분야에 사용되고 있다. 2015년 11월, 심지어 Google은 이미지 검색부터 Google Photo에 이르기까지 다양한 Google 제품들의 내부 구성 요소로서 자체 머신 러닝 소프트웨어인 TensorFlow를 오픈 소스로 공개했다.
전체 머신 비전 애플리케이션 분야에서 CNN의 역할 또한 커지고 있다. 임베디드 비전 얼라이언스(Embedded Vision Alliance)가 2016년에 수행한 임베디드 비전 개발자 설문조사에 따르면 77%의 응답자들이 분류 작업 처리를 위해 신경망을 현재 사용 중이거나 사용을 계획 중이라고 답했다. 이러한 동향은 2015년에 수행된 같은 설문 조사 결과인 61%에 비해 증가한 수치이다. 2016년의 동일한 설문 조사에서는 86%가 CNN 신경망을 분류 알고리즘에 사용 중인 것으로 밝혀졌다. 조사 결과에 따르면 기업들은 더 이상 CNN을 바탕으로 한 제품 및 서비스를 개발하기 위해 Google 이나 Facebook같은 회사 수준의 규모와 리소스를 필요로 하지 않는다.
CNN 개발 과정
산업적 규모의 과일 분류 라인의 일부로 사과와 배를 구분해야 하며 이에 더해 과일별로 다시 품질을 기준으로 자동 분류해야 할 필요가 있다고 생각해 보자. 다음과 같은 공정이 필요할 것이다.
1. 이미지 데이터 수집
2. CNN 설계
3. 셀프 러닝 알고리즘의 실행
4. 훈련된 CNN 평가(및 필요에 따라 단계 1, 2 또는 3 재수행)
5. 훈련된 CNN의 배포
1. 이미지 데이터 수집
머신 러닝(정확한 표현은 ‘지도된 머신 러닝’)에는 많은 예를 이용해 해결해야 하는 문제에 대해 컴퓨터를 훈련시키는 일이 포함되어 있다. 과일 분류 라인의 경우 다양한 유형, 품질 및 크기의 개별 사과나 배를 보여 주는 많은 사진을 촬영하는 일이 관련되어 있다. 또한 각 이미지에서 볼 수 있는 것들에 대한 꼼꼼한 설명도 기록해야 한다. 이는 세 가지 모든 속성에 대한 구체적인 값(레이블)을 의미한다. 이는 컴퓨터의 눈에 거의 글자 그대로 표시되어 이미지에 따른 응답 "Braeburn, Class I, Size M"을 알려 주는 입력/출력 쌍 세트를 만들어 준다.
이 데이터 레코딩 중에는 측정해야 할 가능한 모든 속성 조합(이 사례에서는 종류, 품질 및 사이즈)이 이미지에 존재해야 한다. 일반적으로 샘플 이미지에 과일 종류뿐만 아니라 다양한 조명 조건, 배경 및 과일 위치 등 애플리케이션의 시각적 차이가 존재한다는 점을 감안해야 한다. 또한 실용적 관점에서 볼 때 최종 생산 환경에서 사진 촬영할 때와 동일한 방식으로 정교하게 이미지를 촬영하는 것이 좋다. 각각의 이미지에서 과일의 종류, 품질 및 사이즈 속성을 기록하는 일은 숙련된 전문가가 맡아야 한다. 그 이유는 시스템 프로그래머가 아닌 실제 과일 판매원이 상품의 품질을 보다 올바르게 평가할 수 있기 때문이다.
데이터 수집 중에 아주 중요한 점은 필요한 샘플 이미지의 개수 이다. 누구나 상상이 가능하듯이 이미지의 변화가 클수록 보다 많은 샘플 이미지가 필요하다. 이 글의 초반에서 언급한 바와 같이 ImageNet과 같은 애플리케이션을 위해서는 짧은 시간에 수백만 개의 이미지가 필요하다.
이러한 데이터 수집 작업은 경제적이지 못한 경우가 많지만 이 문제를 해결하기 위한 다른 옵션들이 있다. 옵션중 한 가지는 전통적인 화상 처리 시스템과 마찬가지로 생산 환경을 보다 엄격하게 제어하는 것이다. 게다가, 수집된 데이터의 양도 이미 캡처한 이미지의 색조, 이미지 왜곡 및 크기 조정과 같은 체계적 변화 뒤에 새로운 샘플로 사용함으로써 인위적으로 확대(데이터 증가)될 수 있다. 아주 저렴한 데이터 수집을 위해서는 크라우드소싱 방식을 이용하는 서비스 파트너와 협력할 수도 있다.
2. CNN 설계
최첨단 CNN은 다목적 기능을 가진 다양한 계층으로 인해 더욱 두드러진다. 구식 기본 멀티레이어 개념과 달리, 현재의 네트워크는 일련의 교차식 컨볼루션 및 풀링 레이어로부터 형성된다.
컨볼루션 레이어는 수학적 ‘컨볼루션’ 연산을 적용함으로써 입력 이미지의 인접 영역에 대한 픽셀 값을 단일 값으로 변환시킨다. 컨볼루션 연산은 예를 들어, 가로 방향 에지 인식과 같이 이미지에서 구체적인 속성들만 찾아내는 특징 탐지기 역할을 한다. 풀링 레이어는 보다 넓은 이미지 영역에 대해 이러한 특징 탐지기의 폭을 요약해 프로세싱 체인에서 더 멀리까지 확립된다. 이들 레이어는 피라미드 형태를 만들어 점점 더 넓은 이미지 영역을 평가하는 점차 더 전문화된 특징 탐지기로 이어지게 된다.
과일 분류 라인의 예로 돌아가서 네트워크의 첫 번째 레이어가 배의 특징인 점들로 이루어진 패턴에 응답한다고 상상해 보자. 상부 레이어는 첫째로 이와 대조적으로 특정 사과 종류의 줄기의 시각적 동질성, 그림자 및 상부가 신경망이 과일 종류, 품질 및 사이즈를 계산할 수 있을 정도로 모두 일치하는지 검증한다.
CNN의 정밀 구조는 사실 대부분 AlexNet5, VGG Net6 또는 GoogLeNet7과 같은 연구 집단에 의해 개발된 네트워크에서 변형된 것이다. 해결해야 할 작업에 입력 이미지 해상도나 사용 가능한 연산 능력에서의 구체적인 요구 사항이 있을 수 있기 때문에 대개 조절이 필요하다.
이 네트워크는 앞서 언급한것과 같은 소프트웨어 기능처럼 컨볼루션 레이어를 포함하고 다양한 핵심 요소들을 제공하는 오픈 소스 딥 러닝 프레임워크를 이용해 프로그래밍 된다. 요구 사항에 따라 상당한 수준의 전문 지식을 필요로 한다. 초기 실행가능성 조사는 대개 단 몇 번의 사용자 정의만으로 구현할 수 있지만 진정한 의미의 100% 최적화된 솔루션을 구현하려면 고도로 숙련된 전문가들의 집중적인 작업이 필요하다.
3. 셀프 러닝 알고리즘의 실행
일단 CNN의 데이터 및 설계가 끝나고 나면 소위 셀프 러닝 알고리즘을 실행해야 한다. 이 알고리즘은 항상 배포된 딥 러닝 프레임워크의 일부로 다양한 형태로 접할 수 있다. 이 알고리즘은 코어에 확률적 최적화 프로세스가 있는 백 프로파게이션(back propagation) 알고리즘 개념을 바탕으로 설계되어 있다. 이 알고리즘은 제공된 데이터로 신경망이 작동되도록 CNN의 자유 매개변수(weights)를 구성해야 한다. 따라서 셀프 러닝 알고리즘은 신경망을 ‘훈련’ 하는 데 사용된다.
이런 종류의 셀프 러닝 알고리즘 실행은 애플리케이션 솔루션을 위한 전체 개발 공정에서 가장 프로세서 집약적인 단계이다. 수백만 개의 샘플 이미지를 사용해야 할 경우 한 대 이상의 고성능 GPU 서버를 사용해야 하며 데이터 처리에는 며칠에서 몇 주까지 걸릴 수 있다. 이러한 복잡한 일을 피할 수 있는 방법은 애플리케이션을 위해 전이 학습(transfer learning) 기법을 사용하는 것 한 가지뿐이다.
신경망 설계와 마찬가지로 품질 기대치에 따라 전문 지식 수준도 달라진다. 이용 가능한 모든 셀프 러닝 알고리즘은 서로 다른 변수(예: 학습 또는 감소율, 배치 크기)를 갖게 되며 해당 변수에 따라 성능이 좌우된다. CNN을 보다 강력하게 만들어 주는 드롭아웃(Dropout), 배치(Batch)및 레이어 정규화(Layer Normalization) 프로시저와 같은 트릭도 있다. 어떤 셀프 러닝 알고리즘도 확정적일 수 없다는 점도 명확히 알고 있어야 한다. 이러한 알고리즘에는 항상 확률적 요소도 포함되어 있다. 이는 개발자들이 보통 중간 결과를 평가하고 알고리즘 실행에 직접 변화를 주어야 함을 의미 한다.
4. 네트워크 평가
셀프 러닝 알고리즘에서 얻어지는 훈련된 CNN은 통계적으로 평가해야 한다. 이는 개발자가 어떻게 보이는지 이미 알고 있는 샘플 이미지 세트를 확보한 뒤 신경망에 의해 계산된 값과 비교하는 일이 관련되어있다. 이를 통해 신경망에 의해 정확히 식별된 이미지 컨텐츠 속성의 비율을 나타내는 오류 율을 얻을 수 있다. 예를 들어 Braeburn 사과 중 5%를 Granny Smiths로 식별하는 것과 같이 결과가 사전 정의된 요구사항을 만족시키지 못하면 앞의 3단계 개발 과정으로 돌아가 개선해야 한다.
기본적으로 이러한 평가에 필요한 데이터는 신경망 훈련을 위해 수집되었기 때문에 항상 가까이에 있다. 중요한 것은 훈련 중에 이미 본 적이 있는 이미지를 이용해 신경망을 테스트하지 않는 것이다. 만일 훈련에 사용했던 이미지로 테스트를 하게 되면 시스템의 진정한 성능을 자동으로 과소평가하게 되어 생산 중에 진짜 오류가 나타날 확률을 높이기 때문이다.
예를 들어, 극한의 상황에서 테스트와 훈련 데이터가 완전히 일치한다면 신경망은 해당 이미지를 외워서 학습하고 평가 중에 완벽한 점수를 얻게 되는 것이다. 그런 뒤 생산 시스템에 새로운 이미지가 입력되면 엄청난 오류를 범할 수 있다. 이러한 문제를 피하기 위해서는 교차 검증(cross-validation)과 같은 절차를 도입해 훈련 및 평가 단계 중에 데이터를 체계적으로 구분하는 것이 중요하다.
5. 훈련된 CNN의 배포
마지막 단계의 결과가 만족스러우면 다음 단계는 훈련된 신경망을 생산 시스템에 이전하는 것이다. 인기 있는 딥 러닝 프레임워크는 다른 시스템 구성 요소(예: 연결된 카메라)에 서로 연결될 수 있도록 신경망에 필요한 다양한 요소들을 소프트웨어 라이브러리로 묶거나 탐지된 이미지 컨텐츠에 대한 반응을 제어하는 많은 툴들을 제공한다.
CNN에 의한 이미지 평가 중에 구체적인 실시간 성능 요구 사항이 있다면 추가 작업이 발생한다. 이러한 작업은 대개 신경망(GPU 서버)을 훈련시킬 때 생산 환경에 따라 하드웨어 설정에 매우 큰 차이가 있을 수 있기 때문이다. 이미 훈련된 신경망을 대상 시스템에 맞게 축소시키기 위해 특수한 방법(예: 양자화)을 사용할 수도 있다. 기술적으로 까다로운 이런 기능은 신경망을 제대로 설계하면 충분히 피할 수 있다.
전이 학습
이미 언급한 바와 같이 CNN은 본질적으로 데이터를 상당히 많이 필요로 하며 훈련 중에도 프로세서를 많이 사용한다. 다행히도 개발자 입장에서 문제를 간단하게 해 주는 좋은 옵션이 있는데 바로 전이 학습이라는 방법을 사용하는 것이다. 이렇게 하면 수많은 일반 이미지(예: ImageNet 데이터베이스의 이미지)를 사용해 훈련된 신경망을 가져와 단 몇 개의 특정 분야에 적합한 이미지만 추가하여 애플리케이션에 적용할 수 있다.
개발자는 AlexNet, VGG Net 또는 GoogLeNet과 같은 신경망에 애플리케이션별 훈련 이미지를 보여 준 뒤 결과 값을 특징 벡터(feature vector)로서 신경망의 마지막 레이어 중 하나에 저장한다. 이러한 벡터는 매우 압축된 형태로 신경망에 제시된 이미지를 보여주고 로지스틱 회귀분석(multinomial logistic regression), 지원 벡터 머신 또는 간단한 다층 퍼셉트론(Multilayer Perceptron)과 같은 표준 머신 러닝 프로시저를 통해 분류할 수 있다.
이런 방식으로 CNN은 Hough transformation, SIFT Feature, Harris Corner 또는 Canny Edge 탐지기와 같은 전통적인 화상 처리 툴들을 대체한다. 최근, 상당한 과학 연구 및 수많은 실용적 애플리케이션들을 통해 CNN의 훈련된 기능 벡터들이 전통적인 수동 특징 탐지기보다 훨씬 적용하기 쉽다는 점이 발견되었다.
CNN용 프로세서
CNNs의 개발 과정에서 훈련 과정과 애플리케이션 과정 사이에 위에서 언급 한 바와 같이 차이가 생긴다. 이 두 과정은 하드웨어적 요구 사항에서 부터 상당한 차이가 있다.
가능하면 CNN 훈련 프로세스용으로 고성능 GPU 처리 장치를 사용해야 한다. NVIDIA와 같은 제조업체는 이러한 작업에 특화된 DGX-1과 같은 AI 슈퍼컴퓨터를 공급한다. 또한 훨씬 저렴한 NVIDIA Titan X 카드를 사용할 수도 있다. NVIDIA는 이들 제품이 일반적인 CPU에 비해 CNN을 최대 80배 빨리 훈련시킬 수 있다고 보고하고 있다.
일단 신경망이 훈련되고 나면 낮은 하드웨어 요구 사항과 처리 장치를 갖고 있는 임베디드 비전 시스템에 옮길 수가 있다. 처리 장치로는 이미지 데이터를 병렬로 고속 처리할 수 있는 FPGA(Field Programmable Gate Arrays)가 바람직하다. 따라서 이런 유형의 임베디드 비전 시스템에서 핵심 구성 요소는 분류할 이미지 데이터를 녹화할 수 있는 카메라, 해당 이미지 데이터를 전송하기 위한 케이블, 그리고 이미지 데이터를 분류하는 데 CNN이 사용되는 처리 장치이다.
FPGA를 지원하는 임베디드 비전 시스템은 여러 가지 장점이 있어CNN과 함께 사용하기에 완벽다. FPGA는 병렬로 모든 이미지를 빠르게 분류하기 위해 신경망에 필요한 컨볼루션 연산 및 기타 수학적 연산을 수행할 수 있으며, 실시간 이미지 분석 및 분류 기능을 제공한다. 또한 FPGA는 GPU에 비해 전력 소모가 적어 저전력 임베디드 시스템에 보다 적합하다.
Microsoft Research8 에서 최근 발표한 보고서에 따르면 FPGA가 GPU에 비해 최대 10배 이상 에너지 효율이 뛰어나다. FPGA는 커다란 온칩 스토리지와 대역폭을 갖고 있어 CNN이 실시간으로 고해상도 이미지를 분류할 수 있게 해 준다. FPGA에 직접 연결된 카메라(예: Basler dart BCON)는 데이터를 FPGA에 직접 전송한다. 이는 USB를 통해 전송된 데이터가 FPGA에 도달하기 전에 다양한 하드웨어 구성 요소(예: 호스트 컨트롤러)를 거쳐야 하기 때문에 CNN과 같이 프로세서 집약형인 애플리케이션에서 중요한 장점이다. 또한 카메라/FPGA와의 직접 연결로 인해 구현 효율이 높아진다.
요약
1.전통적인 분류 문제를 다루는 개발자들이 자체적으로 '특징' 또는 기준을 추출해야 했던 데 반해 CNN은 이러한 분류 기준을 스스로 학습한다.
2.신경망은 표시된 것이 무엇인지 알려져 있는 이미지 세트를 이용해 이러한 분류 기준을 자동으로 학습한다. 이러한 학습 과정에는 처리 능력뿐 아니라 필요한 이미지의 양 모두에서 많은 리소스를 필요로 한다.
3.그렇지만 전이 학습의 원리는 적은 양의 이미지와 처리 능력으로 생산 준비된 솔루션을 구현할 수 있게 해준다.
4.카메라 FPGA 직접 연결(예: Basler BCON)을 지원하는 임베디드 비전 시스템은 CNN과 함께 사용하기에 매우 적합하다.
5.임베디드 비전 얼라이언스(Embedded Vision Alliance)가 2016년에 수행한 임베디드 비전 개발자 설문조사에 따르면 77%의 응답자들이 머신 비전 애플리케이션에서의 분류 작업 처리를 위해 신경망을 현재 사용 중이거나 사용을 계획 중이라고 보고했다.








