배너
닫기

산업동향

배너

[FPGA Programming 소개 및 활용] VisualApplets, FPGA 이용 실시간 고속 애플리케이션 솔루션

  • 등록 2014.12.31 09:18:19
URL복사

최근 머신비전 시장에서 실시간 고속 애플리케이션을 위한 수요가 계속 증가하고 있다. ‘VisualApplets’은 이런 요구에 대응할 수 있는 솔루션으로서의 활용이 가능한 제품이다. 이에 대해 김상래 다트비전 기술연구소 부장이 발표한 내용을 요약·정리한다.


FPGA(Field Programmable Gate Array)는 비메모리 반도체의 일종이며, 회로변경이 가능해 사용자가 직접 프로그램을 썼다, 지웠다를 반복할 수 있다. 현재 머신비전에서 다양하게 활용 중이고 카메라에도 기본 탑재돼 있다. 실시간 고속 애플리케이션을 위해서는 FPGA가 필수다. 이미지 프로세싱에서 FPGA를 사용하는 목적은 CPU의 Charging(충전) 없이 연속적인 연산을 수행할 수 있으며, 실시간 처리 구현이 가능하기 때문이다.


손쉬운 FPGA 프로그래밍 및 결과 확인


VisualApplets은 기존 VHDL(디지털 회로 및 혼합 신호를 표현하는 하드웨어 기술 언어)  또는 베릴로그(전자 회로 및 시스템에 사용되는 하드웨어 기술 언어)를 기반으로 하는 프로그래밍 방식이 아닌, 차세대 FPGA 프로그래밍 소프트웨어라 할 수 있는 고급 이미지 프로세싱 라이브러리와 하이레벨 디자인 엔트리, 실제 이미지 영상을 이용한 시뮬레이션 툴을 제공해 사용자가 FPGA 프로그래밍을 빠르고 효율적으로 접근하면서, 바로 결과를 확인할 수 있다.

이와 함께, 전기회로(Circuitry)나 타이밍(Timing), FPGA 프로그래밍에 대한 기본 지식이 없어도 FPGA 프로그래밍 접근이 가능해 애플리케이션 엔지니어, 소프트웨어 엔지니어, 머신비전 전문가라면 누구나 손쉽게 툴을 사용할 수 있다.

VisualApplets 툴의 주요 특징은 사용자 편의 기반의 GUI(Graphical User Interface)환경에서 200여 가지의 오퍼레이터를 조합해 FPGA 프로그램을 설계하고, 설계한 디자인은 실제 이미지 파일을 통한 시뮬레이션으로 보다 빠르게 결과를 예측할 수 있다는 것이다.

Embedded VisualApplets은 자일링스 칩(Xilinx Chip)을 사용한 모든 제품에 적용이 가능하다. 특히 스마트 카메라를 제작할 때 큰 이점이 있어 유용하게 접근할 수 있고 사용자가 직접 유지·보수할 수 있다.

VisualApplets을 통해 만들어진 파일인 SmartApplets은 Visual Applets과 자일링스 ISE 소프트웨어가 필요 없고, 사용자는 파라미터(매개변수) 조절만으로도 FPGA 도움을 받아 실시간 고속 처리를 할 수 있다. 

대표적인 SmartApplets은 Adaptive Binarization, Blob, 3D Laser Triangulation 등이 있다. 일반적인 Threshold(임계)값 변경으로는 좋은 영상을 표현하기 어렵지만, Adaptive Binarization을 적용하면 좀 더 좋은 영상을 표현할 수 있다(그림 1). 머신비전에서 많이 사용되는 기능 중 하나인 Blob의 경우도 FPGA에서 처리가 가능해, 검출된 대상물의 특징을 토대로 패턴 매칭에 응용이 가능하다. 3D 애플리케이션에 여러 가지 방식이 있지만 그 중 레이저 프로필(Laser Profile)을 이용한 방식도 많이 이용되고 있다.


▲ 그림 1. SmartApplets Example(Adaptive Binarization)


VisualApplets DEMO


GigE Bayer Color 카메라로부터 Raw Data 영상을 받아 3x3 De-Bayering 변환 후, 이 영상에서 다시 HSI컬러 영상을 추출한다. 추출된 HSI 영상을 통해 찾고자 하는 컬러 값을 비교해 특정 색상만을 추출한다. 이를 실무에 응용하면, 여러 개의 동일 색상 제품 중 다른 색상의 제품을 찾아 검출하는 애플리케이션에 적용할 수 있다. 이런 일련의 과정을 CPU에서 할 경우, CPU 부담은 증가될 수밖에 없고, CPU 자원을 다른 곳에 활용하는 데 제한적일 수밖에 없다. FPGA에서 이런 과정을 수행한다면, 남는 CPU 자원을 보다 많은 곳에 활용할 수 있다. 


정리 최천욱 기자(atided@hellot.net)









배너










주요파트너/추천기업