인텔 NCS2를 활용한 신경망 구축 방법
2021년 06월 26일
트위터로 보내기페이스북으로 보내기구글플러스로 보내기

글/ 마크 패트릭(Mark Patrick), 마우저 일렉트로닉스(Mouser Electronics)


인텔 NCS2 소개


많은 개발자에게 신경망 애플리케이션을 처음 시작하기란 매우 고된 작업일 수 있다. 소프트웨어와 관련한 작업들을 처리하기 전까지, 필요한 컴퓨팅 리소스와 메모리 대역폭 크기 같이 고려해야 하는 많은 하드웨어 사항들이 있다. 다행히 인텔 NCS2(Intel Neural Compute Stick 2)와 같이 문서화가 잘 된 하드웨어 추론 가속 플랫폼을 사용하면 이러한 초기의 탐색적인 프로토타입 제작 단계를 비교적 수월하게 마칠 수 있다.


컴퓨터 비전 애플리케이션과 함께 사용하도록 최적화된 인텔 NCS2는 최대 초당 4조 회의 연산을 수행할 수 있다. 인텔 모비디우스 미리어드(Movidius Myriad) 비전 처리 장치(VPU)와 16 x 128비트의 VLIW(Very Long Instruction Word) 코어로 구성된 이 소형 패키지는 표준 USB 인터페이스를 사용하여 호스트와 통신한다.


인텔 NCS2 및 인텔 OpenVINO 시작하기


인텔의 제품 페이지에서 접근할 수 있는 간결하고 따라하기 쉬운 안내서를 통해 NCS2를 쉽게 시작할 수 있다. 먼저, 인텔은 개발 호스트로 X86_64 고사양 데스크톱 컴퓨터를, 운영 체제(OS)로 우분투 16.04 사용을 권장한다. 인텔 NCS2 외에도 이미지 캡처 작업을 위한 비디오 카메라가 필요하다. 인텔 NCS2의 가속 기능이 인상적이라는 사실은 의심할 여지가 없지만, 인텔 OpenVINO 툴킷을 사용하면 얼굴 또는 사물 인식과 같은 이미지 처리 애플리케이션에 사용되는 컨볼루션 신경망(CNN)의 개발과 배포를 크게 간소화할 수 있다.


OpenVINO는 CPU에서부터 GPU, FPGA 및 NCS2와 같은 전용 하드웨어 가속기까지 다양한 하드웨어 컴퓨팅 유형에서 이기종 하드웨어 지원을 제공하므로 에지(edge) 기반 머신 비전 애플리케이션의 프로토타입 제작 속도를 높일 수 있다. 어떤 하드웨어 플랫폼을 사용하든 OpenVINO는 공통 인터페이스를 통해 통신하며(그림 1), 추론 엔진에 의해 바로 사용할 수 있게 미리 훈련된 CNN 모델을 최적화한다. 컴퓨터 비전 딥 러닝 기능, 기존 컴퓨터 비전 기술, 하드웨어 가속의 세 가지 주요 구성요소로 구성된 OpenVINO는 함수 라이브러리와 사전 최적화된 커널을 사용하여 개발 기간을 줄여준다. 또한 OpenVINO는 최적화된 버전의 OpenCV 및 OpenVX 비전 처리 API와 라이브러리를 포함한다.


파이썬(Python) 기반 OpenVINO 모델 최적화 프로그램은 커맨드라인 인터페이스를 통해 액세스하며, 카페(Caffe)나 텐서플로우(TensorFlow) 같이 가장 널리 사용되고 있는 프레임워크로 개발한 미리 훈련된 모델을 가져올 수 있다. 또한 다양한 하드웨어 추론 환경을 수용하기 위해 신경망 모델 최적화 프로세스를 분석하고 구성할 수 있다.


c56a218d81e482a6eaae5c1d2a12c49c_1624695604_1351.png


그림 1: 인텔 OpenVINO 툴킷의 워크플로우 (출처: 인텔)


인텔의 시작하기(Getting Started) 안내서에 따라 하드웨어 환경이 준비되면, 지침에 따라 OpenVINO 툴킷을 다운로드하고 설치 및 사용자 정의 작업을 수행한다. 준비가 완료되면, 설치된 테스트 기능들이 인텔 NCS2와 통신이 구축되었는지, 그리고 적절히 동작하는지 확인한다.


OpenVINO에는 바로 시연할 수 있도록 미리 훈련된 모델이 일부 포함되어 있다(그림 2).


c56a218d81e482a6eaae5c1d2a12c49c_1624695643_9362.png

그림 2: 인텔 OpenVINO 툴킷에 제공되는 데모 모델의 디렉토리 목록 (출처: 마우저 일렉트로닉스)


얼굴 인식 데모


데모 모델은 카페, 텐서플로우 또는 아파치(Apache) MXNet에서 제공될 수 있으며, OpenVINO의 모델 최적화 프로그램에 의해 사전 최적화되어 바로 추론할 수 있는 .bin 및 .xml 파일로 제공된다. 이러한 모델 중 하나가 “interactive_face_detection_demo”이다. 데모에는 모두 세 가지 모델이 제공되며 동시에 실행할 수 있다. 첫 번째는 얼굴 인식 모델로, 바운딩 박스와 고유 ID와 함께 화면 상에 메트릭스가 표시된다. 두 번째 모델은 비디오 제공에서 식별된 각 얼굴의 성별과 나이를 추론하도록 훈련되었다. 세 번째이자 마지막 모델은 각각의 검출된 얼굴의 머리 자세 방향을 결정하는 데 사용된다(그림 3).


c56a218d81e482a6eaae5c1d2a12c49c_1624695700_3221.png


그림 3: 인텔 OpenVINO 툴킷에 포함된 인터랙티브 얼굴 인식 데모 모델의 출력 (출처: Intel)


비전 기반 신경망 모델의 프로토타이핑 과정은 어려울 필요가 없다. 인텔 NCS2와 OpenVINO 툴킷을 함께 활용하면 개발 속도를 높이면서 다양한 하드웨어 플랫폼에서 추론의 유연성을 높일 수 있다.

그래픽 / 영상
많이 본 뉴스