default_top_notch
default_setNet1_2

영상 처리 위한 CPU VS FPGA, 최고의 작업 도구는 무엇일까?

기사승인 2018.02.19  14:12:14

공유
default_news_ad1

[EPNC=이나리 기자] 머신 비전은 산업 자동화 시스템에서 오랫동안 사용됐으며, 전통적으로 사람이 수행하던 수동 검사를 대체해 생산 품질과 처리량을 향상시켜 왔다. 우리 모두는 일상 생활에서 카메라가 컴퓨터, 모바일 장치, 자동차로 대량 확산되는 모습을 볼 수 있었다. 하지만 머신 비전 분야에서 가장 큰 발전은 처리 능력이었다. 2년마다 프로세서 성능이 2배가 되고, 멀티 코어 CPU, FPGA와 같은 병렬 처리 기술에 계속 집중함으로써, 이제 비전 시스템 설계자들은 매우 정교한 알고리즘을 적용해 데이터를 시각화하고 보다 지능적인 시스템을 만들 수 있게 됐다. 

이런 성능 향상은 설계자들이 더 높은 데이터 처리량을 달성해 이미지를 더 신속하게 획득하고, 보다 고해상도의 센서를 사용하며, 시장에서 최고의 다이나믹 레인지를 제공하는 최신 카메라를 최대한 활용할 수 있다는 것을 의미한다. 성능 향상을 통해 설계자들은 이미지를 더 빨리 획득할 뿐만 아니라 더 빨리 처리할 수 있다. 또 이진화(Thresholding), 필터링과 같은 전처리(Preprocessing) 알고리즘이나 패턴 매칭과 같은 처리 알고리즘을 훨씬 더 빠르게 실행할 수 있다. 궁극적으로 설계자들은 시각적 데이터를 기반으로   의사 결정을 전보다 신속하게 수행할 수 있게 된 점이 가장 크다. 

최신 멀티 코어 CPU와 강력한 FPGA를 포함하는 비전 시스템이 더 많이 출시됨에 따라, 비전 시스템 설계자는 이런 처리 요소들을 사용할 경우의 이점과 상충 관계를 이해해야 할 필요가 있다. 또한 적절한 대상에 사용할 적절한 알고리즘과 함께 설계의 토대가 될 최상의 아키텍처에 대해서도 알아야 한다.  


인라인 처리(Inline-Processing) Vs 공동 처리(Co-Processing)

각 처리 요소에 가장 적합한 알고리즘 유형에 대해 조사하기 전에, 각 애플리케이션에 가장 적합한 아키텍처 유형을 이해하는 작업이 필요하다. CPU, FPGA의 이기종 아키텍처를 기반으로 하는 비전 시스템을 개발할 때는 두 가지 주 사용 사례인 인라인과 공동 처리(Co-Processing)를 고려해야 한다. FPGA 공동 처리에서는 FPGA와 CPU가 처리 부하를 나누기 위해 함께 작동한다. 이 아키텍처는 획득 로직이 CPU를 사용할 때 가장 잘 구현되기 때문에 GigE 비전, USB3 비전 카메라에서 가장 널리 사용된다. CPU를 사용해 이미지를 획득한 다음, DMA(Direct Memory Access)를 통해 FPGA로 보내 FPGA가 필터링이나 색 평면 추출과 같은 작업을 수행할 수 있게 한다.

그 다음에는 광학 문자 인식(OCR) 또는 패턴 일치와 같이 보다 높은 수준의 작업을 위해 이미지를 다시 CPU로 보낼 수 있다. 경우에 따라 모든 처리 단계를 FPGA에서 구현하고 처리 결과만 CPU로 다시 보낼 수도 있다. 이렇게 하면 CPU는 모션 제어, 네트워크 통신, 이미지 디스플레이와 같은 작업에 더 많은 자원을 할당할 수 있다.

[그림 1] FPGA 공동 처리에서 이미지는 CPU를 사용해 획득된 다음 DMA를 통해 FPGA로 보내져 FPGA가 작업을 수행한다.

인라인 FPGA 프로세싱 아키텍처에서는 카메라 인터페이스를 FPGA의 핀에 직접 연결하므로 픽셀을 카메라에서 보낼 때 FPGA로 직접 전달된다. 이 아키텍처는 획득 로직이 FPGA의 디지털 회로를 사용해 쉽게 구현되기 때문에 카메라 링크(Camera Link) 카메라에서 일반적으로 사용된다. 


이 아키텍처는 두 가지 주요 이점이 있다. 첫째, 공동 처리와 마찬가지로 인라인 프로세싱을 사용해 일부 작업을 CPU에서 FPGA로 옮겨 FPGA에서 전처리 기능을 수행할 수 있다. 예를 들어, 픽셀을 CPU로 보내기 전에 필터링이나 이진화 같은 고속 전처리 기능을 위해 FPGA를 사용할 수 있다. 이는 관심 영역의 픽셀만 캡처하는 로직을 구현하므로, CPU가 처리해야 하는 데이터의 양이 줄어 전체 시스템 처리량이 증대된다.

둘째, CPU를 사용하지 않고도 FPGA 내에서 고속 제어 작업을 직접 수행할 수 있다. FPGA는 매우 빠르고 고도로 결정론적인 루프 속도를 실행할 수 있기 때문에 제어 애플리케이션에 이상적이다. 그 한 예인 고속 분류의 경우, FPGA가 펄스를 액추에이터로 보내고 부품을 통과할 때 거부 또는 분류하게 된다. 

[그림 2] 인라인 FPGA 프로세싱 아키텍처에서 카메라 인터페이스는 FPGA의 핀에 직접 연결되므로 픽셀이 카메라에서 전송될 때 직접 FPGA로 전달된다.


CPU Vs FPGA 비전 알고리즘

이기종 비전 시스템을 설계하는 다양한 방법에 대해 기본적으로 이해하고 있다면, FPGA에서 실행되는 최고의 알고리즘을 살펴볼 수 있다. 우선 CPU와 FPGA가 어떻게 작동하는지를 이해해야 한다. 이 개념을 설명하기 위해 하나의 이미지에서 네 가지의 다른 작업을 수행하는 이론적 알고리즘과 함께, 이 각각의 작업이 CPU와 FPGA에서 구현될 때 어떻게 실행되는지 살펴 보고자 한다.

CPU는 순서대로 작업을 수행하므로 두 번째 작업이 시작되기 전에 첫 번째 작업이 전체 이미지에서 실행돼야 한다. 이 경우, 알고리즘의 각 단계가 CPU에서 실행되는 데 6ms가 걸린다고 가정하면, 총 처리 시간은 24ms이다. 동일한 알고리즘이 FPGA에서 실행되는 경우에는, FPGA는 본래 매우 병렬적이기 때문에 이 알고리즘의 4개 작업은 이미지의 다른 픽셀에서 동시에 실행될 수 있다. 즉, 첫 번째로 처리된 픽셀을 받는 데 걸리는 시간은 단 2ms, 전체 이미지를 처리하는 데 소요되는 시간은 4ms이므로 총 처리 시간은 6ms가 된다. 이는 CPU 구현 방식보다 훨씬 빠르다. FPGA 공동 처리 아키텍처를 사용하고 CPU로 이미지를 주고 받는 경우에도, 전송 시간을 포함한 전체 처리 시간은 CPU 하나만 사용하는 것보다 훨씬 더 짧다.

[그림 3] FPGA는 본래 매우 병렬적이므로 CPU에 비해 현저한 성능 향상을 제공할 수 있다.

이제 입자 계수를 위해 이미지를 준비하는 실제 사례를 가정해 보자. 먼저 이미지를 선명하게 하기 위해 컨볼루션 필터를 적용한다. 그 다음에는 역치를 통해 이미지를 실행해 바이너리 이미지를 만든다. 이를 통해 이미지를 8비트 단색에서 바이너리로 변환해 이미지의 데이터 양을 줄이는 것은 물론 바이너리 형태에 맞게 이미지를 준비한다. 마지막 단계는 형태학을 사용해 닫기 함수를 적용하는 것이다. 그 결과, 바이너리 입자에서 구멍이 제거된다.

이 알고리즘을 CPU에서만 실행하면 역치 단계가 시작되기 전에 전체 이미지에서 컨볼루션 단계를 완료해야 한다. NI 비전 디벨롭먼트 모듈 포 랩뷰(Vision Development Module for LabVIEW)와 자일링스(Xilinx)의 징크-7020 올 프로그래머블(Zynq-7020 All Programmable) SoC 기반의 cRIO-9068 CompactRIO 컨트롤러를 사용할 경우, 이 작업에는 166.7ms가 소요된다. 하지만 이와 동일한 알고리즘을 FPGA에서 실행하면 각 픽셀이 이전 단계를 완료할 때 모든 단계를 병렬로 실행할 수 있다.

동일한 알고리즘을 FPGA에서 실행하는 데는 단 8ms만 소요된다. 이 8ms에는 CPU에서 FPGA로 이미지를 보내는 DMA 전송 시간과 알고리즘 완료를 위한 시간이 포함된다는 점을 기억해야 한다. 일부 애플리케이션에서는 처리된 이미지를 애플리케이션의 다른 부분에서 사용하기 위해 다시 CPU로 보내야 할 수도 있다. 이를 위한 시간을 고려해도 전체 프로세스는 8.5ms 밖에 걸리지 않는다. 종합해 보면, FPGA는 이 알고리즘을 CPU보다 거의 20배 빨리 실행할 수 있다는 것을 알 수 있다. 

[그림 4] 이 비전 알고리즘을 FPGA 공동 처리 아키텍처를 사용하여 실행하면, CPU만으로 구현했을 때보다 20배 더 우수한 성능을 얻을 수 있다.


그렇다면 모든 알고리즘을 FPGA에서 실행하는 것은 어떨까? FPGA는 비전 프로세싱에서 CPU보다 유리하지만 상충 관계도 존재한다. 예를 들어 CPU의 원시 클록 속도를 FPGA와 비교해 보자. FPGA 클록 속도는 100MHz ~ 200MHz 정도이다. 이 속도는 3GHz 이상에서 쉽게 실행될 수 있는 CPU에 비해 현저히 낮다. 따라서 애플리케이션은 반복 실행돼야 하는 이미지 처리 알고리즘을 필요로 하며, FPGA의 병렬 처리 기능을 사용할 수 없다면 CPU가 이를 더 빠르게 처리할 수 있다. 

앞서 설명한 예제 알고리즘은 FPGA에서 실행할 경우 속도가 20배 향상됐다. 이 알고리즘의 각 처리 단계는 개별 픽셀 또는 작은 픽셀 그룹에서 동시에 실행되므로, 알고리즘은 FPGA의 대량 병렬 처리 기능을 활용해 이미지를 처리할 수 있다. 하지만 이 알고리즘이 패턴 매칭과 OCR 같은 처리 단계를 사용하면 전체 이미지를 한 번에 분석해야 하므로 FPGA의 성능이 저하된다. 이는 처리 단계의 병렬화가 부족하고 이미지 대 템플릿을 분석하는 데 많은 양의 메모리가 필요하기 때문이다. FPGA는 내부 메모리, 때로는 외부 메모리에 직접 액세스할 수 있지만, 일반적으로 CPU가 사용할 수 있는 메모리 양이나 이런 처리 작업에 필요한 양에는 전혀 미치지 못한다. 

프로그래밍 복잡성의 극복

영상 처리를 위한 FPGA의 장점은 적용되는 특정 알고리즘, 지연 시간 또는 지터 요구 사항, I/O 동기화, 전력 사용 등 각 사용 사례에 따라 다르다. FPGA와 CPU를 모두 갖춘 아키텍처를 사용하면 두 환경의 장점을 모두 활용할 수 있을 뿐만 아니라 성능, 비용, 신뢰성 면에서 경쟁 우위를 확보할 수 있는 경우도 많다. 하지만 FPGA 기반의 비전 시스템 구현에서 가장 큰 과제 중 하나는 FPGA의 프로그래밍 복잡성을 극복하는 일이다.

비전 알고리즘 개발은 근본적으로 반복적 프로세스이다. 어떤 작업에서든 몇 가지 접근법을 시도해야 봐야 한다는 점은 이미 알고 있을 것이다. 대체로 어떤 접근법이 효과가 있는지가 아니라 어떤 접근법이 최상의 효과가 있는지를 결정해야 하며, ‘최상’의 방법은 애플리케이션마다 다르다. 속도가 가장 중요한 애플리케이션도 있고, 정확도가 가장 중요한 애플리케이션도 있다. 최소한 어떤 특정 애플리케이션에 가장 적합한 방법을 찾으려면 몇 가지 다른 접근법을 시도해 봐야 한다.

생산성을 극대화하기 위해서는, 사용 중인 프로세싱 플랫폼에 상관없이 알고리즘에 대한 즉각적인 피드백과 벤치마킹 정보를 얻을 필요가 있다. 반복 탐색 접근법을 사용할 때 알고리즘 결과를 실시간으로 확인하는 것은 시간을 크게 절약해 준다. 적절한 역치 값은? 바이너리 형태 필터를 사용하면 얼마나 큰 또는 작은 입자가 걸러지는가? 어떤 이미지 전처리 알고리즘과 알고리즘 파라미터가 이미지를 가장 잘 정리할 수 있는가? 이는 모두 비전 알고리즘을 개발할 때의 일반적인 질문이며, 여기서는 변화를 주고 신속하게 결과를 확인할 수 있는 능력이 중요하다. 

하지만 FPGA 개발에 대한 전통적인 접근법은 알고리즘의 각 디자인 변경 사이에 필요한 컴파일 시간으로 인해 혁신을 지연시킬 수 있다. 이 문제를 극복하는 한 가지 방법은 동일 환경에서 CPU와 FPGA를 모두 개발하는 데 도움이 되면서 FPGA 컴파일 시간은 증가시키지 않는 알고리즘 개발 도구를 사용하는 것이다. NI 비전 어시스턴트(Vision Assistant)는 CPU 또는 FPGA에 배포할 알고리즘을 개발할 수 있도록 지원해 비전 시스템 디자인을 간소화하는 알고리즘 엔지니어링 도구이다. 또한 이 비전 어시스턴트를 사용하면, 알고리즘을 대상 하드웨어에서 컴파일, 실행하기 전에 처리량과 자원 사용 정보에 쉽게 액세스하면서 테스트할 수 있다.

[그림 5] 벤치마킹 기능이 통합된 FPGA 대상을 위한 구성 기반 도구에서 알고리즘을 개발하면 코드 컴파일을 기다리는 시간을 줄여 개발을 가속화할 수 있다.

CPU와 FPGA 중 어느 것이 이미지 처리에 가장 적합한가를 결정해야 할 때, 그 대답은 “경우에 따라 다르다" 따라서 애플리케이션 목표를 이해하고 해당 디자인에 가장 적합한 프로세싱 요소를 사용해야 한다. 하지만 애플리케이션에 상관없이 CPU 또는 FPGA 기반 아키텍처와 이 아키텍처의 고유한 이점들은 머신 비전 애플리케이션의 수준을 한 차원 높여줄 것이다.

글: 브랜던 트리스(Brandon Treece) NI 머신 비전 마케팅 매니저
자료제공: 내쇼날인스트루먼트

이나리 기자 narilee@epnc.co.kr

<저작권자 © EP&C News 무단전재 및 재배포금지>
default_news_ad4
default_side_ad1

인기기사

default_side_ad2

포토

1 2 3
set_P1
default_side_ad3

섹션별 인기기사 및 최근기사

default_setNet2
default_bottom
#top
default_bottom_notch