프레임 그래버에서의 전처리에 의해 비전 성능 향상

Product / 08.2019


현대의 첨단 머신 비전 및 비디오 모니터링 애플리케이션은 이전 어느 때보다 더욱 어려운 요구 사항에 직면해 있습니다, 예를 들면 환자 혈액에서 소수의 암세포를 식별해야 하는 애플리케이션과 고객이 매장을 나갈 때 어떤 품목을 가져가는지 추적하여 계산대를 거칠 필요없이 비용을 고객 계좌에 청구해야 하는 애플리케이션이 있습니다. 카메라 제조업체들은 이미지 품질과 초당 프레임 수를 획기적으로 높인 센서를 통해 이러한 애플리케이션을 해결하고 있습니다. 비전 인터페이스 표준은 점점 더 빠른 연결 비트 전송속도를 제공하는 방식으로 발전해 왔는데, 새로운 CoaXPress 2.0 표준에 이르러서는 초당 최대 12.5 기가비트(Gbps)를 제공할 수 있게 되었습니다.
이러한 발전은 CPU(중앙 처리 장치)에 부담을 점차 가중시켜 이제는 처리해야 하는 이미징 데이터의 양이 극적으로 증가했습니다. 어떤 애플리케이션은 고급 CPU를 사용하고 또다른 애플리케이션은 여러 대의 PC 간에 처리를 분담합니다. 하지만 이 두 가지 방법 모두 비용이 많이 들뿐 아니라 후자의 경우에는 크기와 무게까지 상당히 증가합니다. 결과적으로 많은 애플리케이션이 100%에 가까운 CPU 부하 상태에서 운영되어 추가적인 성능 게인을 제공할 수 있는 능력이 제한을 받고 있습니다.

Coaxlink-octo-and-CXP-12.pngEuresys에서는 카메라 제조업체 및 비전 통합업체가 이미지 처리를 위해 회사 Coaxlink Octo 및 Coaxlink Quad CXP-12 프레임 그래버의 FPGA에 코드를 업로드하도록 하여 이 문제를 해결했는데, 그렇지 않을 경우 호스트에서 이를 수행해야 했을 것입니다. Euresys CustomLogic FPGA 디자인 키트는 이미지의 모든 픽셀에 수행되는 거의 모든 이미지 처리를 다룰 수 있습니다. 일반적으로 애플리케이션은 조회 테이블을 토대로 이미지 변환하기(예: 색을 RGB에서 YUV 스케일로 변환), 노이즈 제거 알고리즘 구현, 그리고 검정 픽셀 같은 센서 결점에 대한 보상 작업을 포함합니다. 일반적인 애플리케이션의 또다른 예로 플랫 필드 교정, 관측 시야에서 빛 강도의 차이에 대한 보상이 있습니다.
이미지 처리를 프레임 그래버에서 수행함으로써 이미지 품질과 처리 속도가 획기적으로 개선됩니다. 특히 현재 호스트 컴퓨터의 처리 능력에 의해 병목 현상을 겪고 있는 첨단 비전 시스템의 경우 개선 효과가 더욱 두드러집니다. FPGA는 이미지 처리와 이미지 전송을 병행하므로 프레임 그래버에서 지연이 증가하지 않고 호스트 컴퓨터에서 처리 시간이 절약됩니다. 따라서 호스트 컴퓨터에 비용을 더 지출하지 않아도 비전 시스템이 더 높은 해상도, 더 빠른 이미지 속도, 더 낮은 지연을 달성할 수 있습니다.
과거에 프레임 그래버 공급업체들은 프레임 그래버 내부의 FPGA에 고객의 코드를 병합하도록 했습니다. 이 접근 방법의 경우에는 사용자가 자기 소유의 지적 재산을 공유하여 프레임 그래버 안에 디자인되도록 해야 합니다.
이와는 달리, 새로운 CustomLogic 접근 방법에서는 사용자가 자신의 FPGA 코드를 생성하여 개체 파일 안에 컴파일한 다음 프레임 그래버 회사가 제공해 주는 툴을 사용해 FPGA에 업로드합니다. 비전 통합업체 소유의 코드는 절대로 회사 밖으로 나가지 않고 결과로 만들어진 FPGA를 리버스 엔지니어링하기는 극히 어렵고 비용이 많이 듭니다.
많은 대형 머신 메이커들이 이미지 처리와 분석 작업까지 함께 수행하는 FPGA를 기반으로 자신들의 프레임 그래버를 개발해 왔습니다. 이러한 프레임 그래버는 거의 대부분이 예전의 Camera Link 프로토콜을 사용합니다. 그러한 제품들을 설계한 머신 메이커들은 이제 CXP-12 같은 현세대의 고속 인터페이스를 수용할 수 있도록 프레임 그래버를 재설계해야 하는 어려운 과제에 직면했습니다. Euresys 프레임 그래버를 이용하면 내장된 CXP 인터페이스의 이점을 활용하고 자사 소유의 이미지 처리 루틴을 업로드할 수 있으므로 이 과제를 매우 간편하게 해낼 수 있습니다.
CustomLogic FPGA 디자인은 리소스 중 최대 70%를 이미지 처리를 위해 Coaxlink Octo 및 Coaxlink Quad CXP-12 프레임 그래버에서 사용되는 Xilinx Kintex Ultrascale XCKU035 FPGA에 남겨둡니다.

FPGA-scale-(2).png

디자인 키트는 CoaXPress 카메라 픽셀 스트림, 온보드 DDR4 메모리 및 PCIe Gen3 연결 능력에 대한 액세스를 제공합니다. 설계 단계에서 Xilinx Vivado 개발 툴이 사용됩니다.
Coaxlink CustomLogic 디자인 키트에는 사용자가 이용할 수 있는 모든 인터페이스를 노출하는 Xilinx Vivado 프로젝트로 구성된 참조용 디자인이 함께 제공됩니다.

ReferenceDesignCustomLogic-(1).png
 













데이터 스트림(픽셀) 인터페이스는 AMBA AXI4-Stream 프로토콜에 기반합니다. 소스 측면에서 이 인터페이스는 카메라로부터 획득한 이미지를 제공합니다. 인터페이스는 사용자 로직에 의해 처리한 후 결과를 PCI Express DMA 백엔드 채널로 전송합니다. 컨트롤/상태 인터페이스는 사용자가 Coaxlink Driver API를 통해 사용자 로직 내에서 레지스터를 읽고 쓸 수 있게 합니다.
 
CustomLogic-(1).png

이벤트 인터페이스를 통해 사용자 로직은 타임 스탬프가 기록된 이벤트를 정밀도 1 μs로 Memento 로깅 툴에 전송할 수 있습니다. Memento는 타임 스탬프 기록된 이벤트에 대한 정확한 시간 정보를 맥락 정보와 함께 개발자에게 제공하고, 애플리케이션 개발과 디버깅 동안만이 아니라 머신 운용 중에도 유용한 도움을 제공합니다.
모든 Vivado HLx 에디션에 무료 업그레이드로 포함돼 있는 Vivado® HLS(High-Level Synthesis)를 이용하면 수동으로 RTL(레지스터 전송 레벨) 코드를 만들 필요가 없이 C, C++ 및 System C 명세를 Xilinx 프로그래밍 가능 기기에 곧바로 타겟팅할 수 있으므로 신속하게 IP를 생성할 수 있습니다. FPGA 설계를 위해서는 C++ 프로그래밍 능력 외에 FPGA의 제약과 한계에 대한 이해가 요구됩니다. 예를 들면, FPGA에서 RAM(랜덤 액세스 메모리) 제한으로 인해 일반적으로 메모리 할당이 배제됩니다.

VivadoProjectCustomLogic_Interface1.png

VivadoProjectCustomLogic_VHD.png
CustomLogic은 여러 이미지 처리 작업을 병렬로 수행할 수 있기 때문에 버퍼링이나 지연이 전혀 없이 즉석에서 픽셀을 처리합니다. 반복적인 대량 병렬 작업들은 FPGA가 대신 처리해 주므로, CPU는 부담없이 현대의 첨단 이미지 애플리케이션이 요구하는 고급 작업을 수행하는 데 집중할 수 있습니다. CoaXPress 인터페이스와 Memento 로그 시스템 등, CustomLogic에 포함된 지적 재산은 제품의 시장 출시를 앞당길 수 있게 도와줍니다.