내장 FPGA 이미지 사전 처리로 머신비전 기능향상
ADLINK
개요
이미징 처리 작업은 머신비전 애플리케이션의 주요 CPU 리소스를 소비할 수 있으므로 솔루션 제공 업체에게는 제한된 크기 내에서 처리 성능을 높이는 것이 공통적인 과제다.
다음은 이러한 성능 단점을 해결하는 FPGA의 효용성에 대해 논의하고, FPGA에 가장 적합한 이미지 처리 작업을 제시하며 작동 중인 CPU와 FPGA의 기능을 비교한다. 그런 다음 머신비전 애플리케이션을 지원하는 내장형 FPGA 이미지 전처리 솔루션을 소개한다.
머신비전의 과제
머신비전은 작업자가 기존의 육안 검사에 비해 향상된 품질, 안정성, 신뢰성, 일관성과 효율성을 위해 산업 생산 환경에서 자동 검사에 널리 채택되었다.
현재 효과적인 머신비전 시스템은 사용자 요구를 충족시키기 위해 몇 가지 모순되는 측면에도 불구하고 다음과 같은 사용자 요구 사항을 해결해야 한다.
컴팩트 사이즈: 머신비전 시스템 설계자와 개발자는 생산 환경의 다른 장비 및 구조를 수용해야 하며 빈번하게 제한된 머신비전 시스템을 배치할 수 있는 공간을 확보해야 한다. 따라서 컴팩트한 공간과 최대의 통합을 제공하는 시스템은 준비와 설치의 경제성과 유연성을 높일 수 있다.
최대 해상도 및 프레임 속도: 대부분의 경우 자동 검사 시스템은 결함 탐지 작업을 위해 소형화된 구성 요소를 사용해야 하므로 정확한 검사를 위해서는 검사 속도를 높이고 처리량을 높이는 데 필요한 높은 프레임 속도로 더 높은 이미지 해상도가 필요하다. 과거에는 고해상도와 프레임 속도가 이미지 센서 및 대역폭 기술의 한계로 인해 상호 배타적이었다.
향상된 처리 성능: 해상도와 프레임 속도가 높아지면 비전 시스템이 많은 양의 이미지 프레임 데이터 흐름을 관리하여 결함을 검사할 수 있어야 한다. 데이터 처리는 처리량 요구 사항의 증가와 보조를 맞춰야 한다.
사용 편의성: 쉬운 조작이 가능한 비전 시스템은 편의성과 프로그래밍 요구 감소에 대한 분명한 이점을 제공한다. 시스템 개발자는 시스템 공간과 I/O 복잡성을 줄여 설치와 준비 노력을 대폭 간소화할 수 있으므로 익숙한 프로그래밍 환경을 사용하여 프로그래밍 요구 사항을 최소화할 수 있다. 따라서 비전 시스템 솔루션 제공 업체는 시스템 개발 과정에서 사용자 편의성과 이점을 고려해야 한다.
비전 시스템 선택
일반적으로 카메라, 프레임 그래버와 독립형 산업용 PC 요소로 구성된 ASMV(Application-Specific Machine Vision) 시스템은 일반적으로 크고 복잡하며 비용이 높고 통합하기 어려웠다. 시간이 흐르면서 추세는 더 높은 통합성을 갖춘, 더욱 컴팩트한 시스템으로 이동하면서 공간과 비용에 대한 고려와 높은 처리량을 유지하면서 충분한 컴퓨팅 성능을 제공했다.
종래의 머신비전 솔루션은 화상 처리 애플리케이션에서 필요한 속도와 품질을 달성하기 위해 고성능 CPU(이미지 처리 소프트웨어와 함께 조정)에 의존했지만, 그러한 강력한 프로세서는 더 비싸고 더 크고 복잡한 시스템을 필요로 하는 경향이 있다. IPC 기반 솔루션은 독립형 산업용 PC를 사용하여 외부 또는 내장 프레임 그래버를 통해 카메라를 외부 회선과 연결한다. 그러나 이미지 센서(카메라), 프레임 그래버, 그리고 컴퓨터를 포함한 모든 비전 시스템 구성 요소가 수분 및 오염 저항성이 강화된 단일 소형 공간 장치로 통합된 스마트 카메라 기반 솔루션에서 중요한 대안이 제공된다.
그러나 한 가지 단점은 기존의 스마트 카메라는 열 발생을 줄이기 위해 저전력 단일 코어 Atom 프로세서를 사용하여 팬의 필요성을 제거하여 성능 저하를 나타낸다. 기존의 스마트 카메라는 높은 프레임 속도, 또는 컴퓨팅 성능으로 고해상도를 필요로 하지 않는, 더욱 단순한 자동 검사 환경에서 자주 사용된다.
산업 비전 시스템과 같이 대용량 데이터를 일상적으로 처리하는 그래픽 집약적인 애플리케이션은 CPU 성능에 크게 의존한다. 그러나 시스템의 크기와 비용을 희생시키면서 높은 성능이 제공되는 경우 고유의 충돌이 발생할 수 있다. 이미 비싼 CPU로 처리하면 더 많은 전력이 필요하고 열이 많이 발생하므로 더 크고 강력한 시스템이 필요하다.
앞서 언급했듯이, 이전에는 성능과 크기 목표의 균형을 유지하면서 산업 비전 시스템의 이점을 활용하는 것이 뚜렷한 과제였다. 시스템에 FPGA(Field Programmable Gate Array)를 도입하는 것은 현재 상당한 관심을 받는 이러한 문제들을 극복하는 방법이다.
FPGA의 장점
FPGA는 다중 구성 가능 로직 블록(CLB, Configurable Logic Blocks), 고정 기능 로직 블록과 임베디드 RAM으로 구성된 병렬 컴퓨팅 아키텍처를 사용하는 재프로그래밍이 가능한 회로다.
FPGA를 사용하면 구성 요소가 상호 연결되는 방식을 지정하는 구성 파일을 사용하여 컴퓨팅 작업을 개발할 수 있다. 사전에 내장된 로직 블록과 프로그래밍이 가능한 라우팅 리소스를 사용하여 FPGA는 커스텀 ASIC 디자인의 시간 소모적이고 복잡한 PCB 제조 프로세스를 필요로 하지 않고 사용자 지정 하드웨어 기능을 구현하도록 구성될 수 있다. FPGA는 완전히 재구성할 수 있기 때문에 새로운 회로 구성을 지시하기 위해 파일을 다시 컴파일할 때마다 다른 기능 ID를 사용한다.
우수한 하드웨어 유연성과 우수한 하드웨어 속도를 제공하는 FPGA는 최고의 ASIC와 프로세서 기반 시스템을 결합하여 많은 산업 분야에서 널리 사용되고 있다. 예를 들어, 반도체 공정은 제품 프로토타이핑을 위해 FPGA를 사용하는 경우가 많다. 아이디어 혹은 시험 기능을 전체 칩제조 공정의 비용과 어려움 없이 하드웨어로 테스트하고 검증할 수 있다.
FPGA의 완전 병렬 특성으로 인해 각 독립적인 처리 작업을 칩의 전용 섹션에 할당할 수 있으며, 다른 로직 블록과 분리된 섹션의 처리 작업이 추가될 때 섹션의 성능이나 성능에 영향을 주지 않는다. 따라서 FPGA는 최대 처리 속도로 동시에 여러 작업을 손쉽게 관리할 수 있으며 특히 병렬 알고리즘에 대한 데이터 집약적 처리를 구현할 수 있다.
FPGA의 중요한 이점은 다음과 같다.
향상된 성능: 하드웨어 병렬 처리는 FPGA가 특정 알고리즘(특히 병렬 성의 알고리즘)을 수천 배나 빠르게 처리할 때 CPU를 능가하는 성능을 제공한다. FPGA와는 달리 CPU는 순차적으로 연산을 수행하여 알고리즘을 시퀀스별로 한 번에 하나의 연산을 실행하는 것으로 제한한다.
시장 진입 시간 단축: 재프로그래밍 기능을 통해 FPGA를 사용하면 전체 칩제조 프로세스의 시간, 비용 및 어려움 없이 하드웨어에서 아이디어, 또는 시험 기능을 테스트하고 검증할 수 있다. 제품 개발 시간과 지출을 획기적으로 줄여주는 대신 몇 시간 내에 변경하거나 (또는 폐기) 재검토할 수 있다.
비용 절감: 맞춤형 ASIC의 엔지니어링(NRE) 비용이 없다면 FPGA는 제품 프로토타이핑뿐만 아니라 시스템 업그레이드와 확장에도 매우 경제적이다. 새로운 시스템 요구 사항을 충족시키는 기능을 증가시키고, 향상시키기 위해 FPGA 디자인을 점진적으로 변경하면 보드를 다시 스핀할 필요 없이 간단하고 저렴하게 수행할 수 있다. 또한, FPGA는 현장에서 업그레이드를 할 수 있기 때문에 일반적으로 장기간의 유지 보수 비용을 줄이면서 더욱 긴 서비스 수명을 제공한다.
FPGA 칩을 보조 프로세서로 사용하여 룩업 테이블과 같은 선택된 이미지 프로세싱 알고리즘을 구현하면 CPU 태스크를 오프로드하여 다른 작업(예: 고급 이미지 분석)을 수행할 때 자원을 확보할 수 있다. FPGA와 CPU 간에 이미지 데이터를 스트리밍하여 동시 기능을 용이하게 함으로써 비전 시스템의 전반적인 성능을 획기적으로 향상시킬 수 있다.
CPU vs. FPGA 성능 비교
도시된 바와 같이 CPU 기반 연산은 1.8ms가 걸리고 일반적으로 사용되는 이미지 처리 유틸리티에 4%의 처리 리소스를 사용하여 2M 픽셀 이미지에 대해 LUT 알고리즘을 처리한다. 반대로 FPGA는 100,000X의 속도 향상을 나타내는 CPU 리소스를 사용하지 않고 단 25ns 만에 같은 작업을 완료한다.
또한, 쉐이딩 보정 기능(shading correction functions)을 수행할 때 이미지 처리 소프트웨어가 있는 CPU는 처리 작업을 완료하는 데 0.3ms와 2%의 CPU 리소스를 사용한다. 이는 FPGA로 CPU 사용량이 25ns인데 비해 25ns다. 비용, 유연성, 그리고 성능이라는 명백한 이점에도 불구하고, FPGA는 1984년에 출시된 이후에야 비로소 비전 시스템에서 널리 채택되지 못했다. 한 가지 주요한 이유는 프로그래밍에 어려움을 겪고 있기 때문이다. VHDL이나 Verilog와 같은 FPGA에 사용되는 저수준 언어에 익숙한 프로그래머는 거의 없으므로 확장된 개발과 사용의 장벽이 된다.
그러나 새로운 인터페이스 제품과 디자인 툴이 등장하면서 FPGA는 새로운 시장의 모멘텀을 얻고 있다.
FPGA 솔루션으로서의 ADLINK의 차세대 스마트 카메라
ADLINK는 FPGA의 임베디드 이미지 전처리 기능을 갖춘 차세대 스마트 카메라를 C++ 프로그래밍 환경과 함께 도입하여 FPGA의 이점을 활용하는 다른 언어에 익숙하지 않아도 되었다.
ADLINK 스마트 카메라는 LUT, 음영 보정, 그리고 ROI(Region of Interest) 기능을 포함하여 선택한 이미지 전처리 기능을 사전 설치하여 FPGA를 CPU 프로세서로 사용하여 CPU 태스킹을 오프로드한다. FPGA는 이미지 센서 디바이스(카메라)에 연결하고, 원시 이미지 입력을 사전 처리하며, 사전 처리된 데이터를 CPU로 스트리밍하여 더욱 복잡한 이미지 분석(예: 패턴 일치 및 분류)을 수행한다. 따라서 스마트 카메라의 속도 및 성능은 종래의 카메라의 속도 및 성능을 쉽게 능가한다.
ADLINK는 사용하기 쉽도록 API를 제공하여 시스템 통합자나 사용자가 C++을 사용하여 Microsoft Visual Studio 환경에서 FPGA 기능을 컴파일할 수 있도록 한다.
요약하면, ADLINK의 차세대 스마트 카메라인 FPGA는 다음과 같은 이점을 제공한다.
- CPU 및 FPGA의 멀티 프로세서 아키텍처는 가장 효과적인 크기 및 비용 구조를 기반으로 성능 및 속도를 극대화하기 위해 협력하여 작업을 처리한다.
- 기존의 프로그래밍 장벽을 줄이기 위해 친숙하고 사용하기 쉬운 제어 환경으로 작업을 이동함으로써 FPGA가 이미지 처리 기능을 증대한다.
- 크기와 성능 간 최적의 균형은 기존 스마트 카메라보다 높은 등급의 CPU를 사용하여 소형 크기에서 최대 성능을 생성하고 동시에 성능, 크기 및 편의성에 대한 요구 사항을 충족시킨다.
자료 제공: ADLINK(www.adlinktech.com)







