[첨단 헬로티]
머신러닝과 딥러닝 결합으로 스마트 카메라의 성능 업그레이드 필연적
머신비전이 인공지능, 머신러닝, 딥러닝과 융합하면서 점점 스마트해지고 있다. 그 중심에는 스마트 카메라가 있다. 스마트 카메라가 이러한 종류의 기술을 채택하여 프로그램을 더 쉽게 만들 뿐만 아니라 훨씬 더 강력하게 만드는 것은 필연적인 추세로 보인다.
스마트 카메라에 대한 수요가 그 어느 때보다 커졌다. 글로벌 스마트 카메라 시장은 2017년부터 2024년까지 연평균 18.2% 성장하여 62억 달러에 달할 것으로 전망된다. 아시아 태평양 지역과 북아메리카에서 주로 이 사장의 성장을 주도할 것으로 예측된다.
이러한 실질적인 성장의 이유는 스마트 카메라의 다양성과 시스템 통합자(SI)에게 기회를 제공하기 때문이라는 분석이다. 기존의 머신비전 카메라와는 달리 스마트 카메라는 이미지 센서와 프로세서 및 I/O를 하나의 컴팩트한 하우징과 결합한다. 이 제품들은 일반적으로 시스템 통합업체가 그래픽 사용자 인터페이스(GUI)를 통해 카메라를 프로그래밍하여 많은 계산 작업을 수행할 수 있게 해주는 일련의 소프트웨어 도구 세트(카메라 제조업체 또는 타사)와 함께 제공된다.
그러나 스마트 카메라를 구성하는 요소의 정의는 다소 주관적이다. 사실상 산업용 비전 시장에 판매된 모든 카메라는 스마트 카메라로 판매되는지 여부에 관계없이 일부 지능형 기능을 갖추고 있다. 이는 추가 처리를 위해 PC로 전송되기 전에 중요한 사전 처리 기능을 이미지에 수행해야한다는 고유한 필요성 때문이다. 이 펌웨어 사전 처리는 동일한 센서를 특징으로 하는 카메라 간의 주요 차별화 요소다.
이러한 전처리 기능을 수행하기 위해 대부분의 산업용 카메라에는 펌웨어와 함께 이득 보정, 잡음 패턴 보정, 데시 메이션/비닝 및 압축과 같은 많은 기능을 카메라 내에서 처리할 수 있는 FPGA 추가 처리 부하를 PC에 추가하지 않아도 된다. 이러한 카메라는 정기적으로 이미지를 임시 저장하는데 사용되는 RAM도 가지고 있다. 이는 데이터 안정성을 높이며, 특히 짧은 시간에 많은 이미지가 필요하므로 높은 대역폭을 필요로 하는 애플리케이션에서 중요한 요소다.
복잡성 증가
그러나 이러한 변변치 않은 처리 과정에서부터 카메라 설계자들은 여러 가지 방법으로 카메라에 더 많은 처리 능력을 계속 추가해 왔다. 초기 접근법 중 하나는 저비용 멀티 코어 프로세서를 카메라에 통합하는 것이었다. 이 카메라는 제한된 컴퓨팅 성능을 보였지만 계측 및 바코드 스캐닝과 같은 간단한 독립 실행형 응용 프로그램에서 새로운 가능성을 발견했다.
Matrox Imaging의 제품 매니저 인 파비오 페렐리(Fabio Perelli)에 따르면, 스마트 카메라에 사용되는 두 가지 주요 프로세서 아키텍처, 즉 X86과 ARM의 주요 차별화 요소는 X86 프로세서가 CISC(복잡한 명령어 세트 아키텍처)를 기반으로 하는 반면 ARM 프로세서는 RISC를 지원한다. RISC 명령은 일반적으로 더 간단하고 더 빠르게(즉, 단일 클록 사이클 내에서) 실행된다. 한편, CISC 명령어는 훨씬 복잡하며 훨씬 복잡한 작업을 수행하는 데 필요한 명령 수가 적기 때문에 각 명령어를 실행하기 위해 여러 CPU 사이클이 필요하다.
카메라 벤더가 선택하는 아키텍처 선택은 하드웨어 고려사항보다 회사가 지원하는 기존 소프트웨어 기반과 관련이 있을 수 있다. 예를 들어 Matrox Imaging은 수십 년에 걸쳐 개발되고 연마된 기존의 프로그래밍 전문 지식과 그 결과로 나온 소프트웨어와 더 잘 호환되므로 스마트 카메라 제품에서 X86 아키텍처의 성능을 활용한다. 그러나 유감스럽게도 하드웨어 아키텍처를 변경하려는 엔지니어는 소프트웨어 재개발 및 재 최적화 비용을 고려해야 한다. 성능, 효율성 및 비용면에서의 이점은 현재 설계된 컴퓨터 아키텍처에서 균형을 제거할 때 반영되어야한다.
오늘날의 스마트 카메라에서 발견되는 탁월한 아키텍처는 X86 또는 ARM 프로세서와 상관없이 CPU와 FPGA를 통합한다고 Teledyne DALSA의 Smart Vision Solutions 산업 제품 부문 제품 관리자 인 레이몬드 브로디(Raymond Boridy)는 말한다. CPU와 FPGA를 결합함으로써 개발자는 DSP 코어를 FPGA 패브릭에 통합할 수 있을 뿐만 아니라 DSP와 함께 특수 이미지 처리 기능을 수행할 수 있는 하나 이상의 전용 고객 중심 IP 코어를 구현할 수 있다.
그렇다고 해도 과다한 애플리케이션을 처리할 수 있을만큼 일반적인 목적일 수 있는 스마트 카메라 아키텍처는 하나 이상의 고도로 전문화된 애플리케이션에 최적으로 적합하지 않을 수 있다. 경우에 따라 신중한 성능 분석을 통해 FPGA + DSP 시스템이 CPU/DSP 또는 DSP 전용 구성보다 중요한 성능 향상을 제공할 수도 있다. 특정 하드웨어 아키텍처에서 실행하는데 가장 적합한 응용 프로그램별 소프트웨어는 더 일반적인 용도로는 적합하지 않을 수 있다.
더욱 깊이를 더해가는 ‘딥러닝’
단기간에 스마트 카메라의 성능과 기능이 점진적으로 향상될 수 있지만 딥러닝이라는 개념은 장기적인 측면에서 중요한 영향을 미칠 수 있다. Matrox Imaging의 페렐리(Perelli)에 따르면, 머신비전을 위한 딥러닝의 인기는 이러한 심층 신경 네트워크를 실행하는데 필요한 시스템 온 칩 (SoC)의 전용 로직으로 드라이버가 빠르게 시장 파괴가 되고 있다.
내쇼날 인스트루먼트의 수석 소프트웨어 엔지니어인 에릭 그로스(Eric Gross)도 이에 동의한다. 그는 "우리가 매일 사용하는 기술의 거의 모든 부분이 머신러닝을 활용하고 있다"며 "모든 주요 실리콘 벤더들은 이러한 작업을 가속화하기 위해 자사 제품에 전용 회로를 포함시키기 위해 경주를 벌이고 있다. 스마트 카메라가 이러한 종류의 기술을 채택하여 프로그램을 더 쉽게 만들 뿐만 아니라 훨씬 더 강력하게 만드는 것은 필연적이라고 생각한다"라고 말했다.
Matrox의 페렐리(Perelli)는 AI 애플리케이션의 까다로운 특성이 그래픽 처리 장치(GPU)의 성능을 활용함으로써 이익을 얻을 수 있다고 믿으며 딥러닝을 위해 신경망 시스템에서 사용되는 것과 같은 처리 작업을 가속화한다. 도전 과제는 스마트 카메라의 범위 내에서 기능할만큼 강력한 GPU를 만드는 것이다. SoC 디바이스는 다양한 통합 옵션을 제공하기 때문에 고급 이미지 프로세싱을 수행할 때는 적절한 기능 혼합으로 SoC를 개발해야한다.
딥러닝 기술을 활용하는 인공지능 애플리케이션의 경우, 스마트 카메라 내에서 GPU와 FPGA를 결합하는 것이 이 작업에 더 적합할 수 있다고 Teledyne DALSA의 보리디(Boridy)는 말한다. 그러나 일부 공급 업체는 이미 주류 CPU에서 실행되는 딥러닝 기술을 사용하여 이미지 콘텐트를 자동으로 분류하는 기능을 제공하여 타사 신경 네트워크 라이브러리에 대한 의존성을 제거하고 특수화된 GPU 하드웨어의 필요성을 없애준다.