NTSC/PAL 카메라용 영상 추적 칩 개발 장치
상태바
NTSC/PAL 카메라용 영상 추적 칩 개발 장치
  • CCTV뉴스
  • 승인 2009.07.07 00:00
  • 댓글 0
이 기사를 공유합니다

최근 감시카메라는 고성능화 및 지능화 추세에 있으며, 이에 따른 각종 영상 감지 및 추적용 SoC(System on a chip) 칩 들이 많이 개발되고 있다. 기존의 NTSC/PAL 카메라용 SoC 개발 방법은 PC상에서 샘플 그림이나 카메라 등을 이용하여 소프트웨어 베이스로 먼저 알고리즘을 구현하고, 이 알고리즘을 FPGA(field-programmable gate array)라는 타겟 보드에 하드웨어 베이스의 언어로 이식하여 구현 및 테스트하는 절차로 진행되었다.

컴퓨터상에서 알고리즘 개발 및 검증이 용이하지 않으면 바로 FPGA 레벨에서 구현하여 오류 정정을 수행하는 형태로 진행되어 영상 추적용 코어 알고리즘을 개발하는 단계와 이것을 하드웨어 레벨로 구현하는 단계가 서로 분리되어 있으면 개발 기간도 많이 걸릴 뿐만 아니라 추후에 SoC를 검증하는 과정에서도 많은 노력과 시간이 소요된다.

따라서 NTSC/PAL 카메라 영상 처리용 칩의 발전 속도 및 개발 주기가 짧은 상황에 대응하기 위한 새로운 개발 방법 및 장치의 필요성이 절실히 필요하였다. 이러한 제반 문제점에 IT 신 성장 동력 핵심 기술 개발 사업의 일환으로 한국전자통신연구원과 하이비전시스템이 수행한 NTSC/PAL 카메라로부터 입력된 영상을 실시간 시뮬레이션 함과 동시에 타겟 FPGA 보드를 이용하여 SoC 로직의 동시 검증 및 테스트 가능한 NTSC/PAL 카메라용 영상 추적 칩 개발 장치 및 방법을 소개하고자 한다.

위와 같은 문제를 해결하기 위해서는 모터에 의해서 움직이는 카메라로부터 입력된 영상 신호에 영상 추적을 수행하는 영상 추적 칩 개발 장치는 카메라로부터의 영상 신호를 입력 받아 움직임을 검출한다. 검출된 움직임 영상의 좌표 정보를 출력하는 프로세서 모듈과 모듈로부터 출력되는 좌표 정보에 모터를 구동하는 컨트롤러, 카메라로부터 출력되는 영상 신호 및 프로세서 모듈로부터의 좌표 정보를 디스플레이 하는 컴퓨터로 구성한다. 카메라로부터 출력되는 영상 신호는 아날로그 영상 신호이며, 아날로그 영상 신호를 디지털 영상 신호로 변환해서 프로세서 모듈 및 컴퓨터로 각각 전송된다.

그리고 영상 추적 칩 개발 장치는, 아날로그-디지털 변환기로부터 출력되는 디지털 영상 신호를 USB(universal serial bus) 신호로 변환하고, 변환된 USB 신호를 컴퓨터로 전송하는 USB장치가 있다. 프로세서 모듈 [FPGA(field-programmable gate array)]로부터 출력되는 상기 좌표 정보를 OSD(onscreen display) 형태로 표시하기 위한 디스플레이 장치가 있다.

움직임 영상을 추적하는 영상 추적 칩을 개발하는 방법은 카메라로부터의 영상 신호를 입력 받아 움직임 영상을 검출하고, 검출된 움직임 영상의 좌표 정보를 출력하는 단계와, 프로세서 모듈로부터 출력되는 좌표 정보에 응답해서 모터를 구동하는 단계, 그리고 카메라로부터의 영상 신호 및 프로세서 모듈로부터의 좌표 정보를 디스플레이 하는 단계를 거친다.

이상과 같이 NTSC/PAL 카메라의 영상을 PC로 고속 전송하여 실시간 시뮬레이션을 수행할 수 있으며, 타겟 FPGA 보드와의 인터페이스를 통하여 SoC 로직의 동시 검증 및 테스트를 수행할 수 있다.


                                                                                                 그림 1. 구성도

그림 1에서 NTSC/PAL 카메라는 렌즈를 통해 입력된 영상을 아날로그 영상 신호로 변환해서 출력한다. 모터는 컨트롤러의 제어에 따라서 NTSC/PAL 카메라를 이동시킨다. 예컨대, 카메라는 회전축을 통해 모터와 연결되며, 모터의 구동에 따라서 회전축에 의해 카메라가 좌우 회전하도록 구성될 수 있다. 모터에 의한 카메라의 회전 방향, 회전 각도 및 회전 속도 등은 다양하게 변경되어 실시될 수 있다.

아날로그-디지털 변환기는 NTSC/PAL 카메라로부터 출력되는 아날로그 영상 신호를 디지털 영상 신호로 변환해서 출력된다. 아날로그-디지털 변환기로부터 출력되는 디지털 영상 신호는 FPGA로 제공된다. FPGA는 디지털 영상 신호 중 움직임 물체를 검출(detection)하는 로직과, 검출된 물체의 이동 경로를 추적(tracking)하는 로직을 포함한다. FPGA는 아날로그-디지털 변환기를 통해 입력된 디지털 영상 신호에서 움직임 물체를 검출하고, 움직임 물체의 이동 경로를 나타내는 좌표(X, Y)를 출력한다. 컨트롤러는 FPGA로부터 출력되는 좌표(X, Y)에 따라서 NTSC/PAL 카메라가 이동하도록 모터를 구동시키기 위한 제어 신호(CTRL)를 출력한다.

FPGA가 움직임 물체를 검출하고, 좌표(X, Y)를 출력하는 과정은 다음과 같다. 카메라의 위치가 고정된 상태에서 카메라로부터 입력된 일련의 두 개의 영상 프레임들의 디지털 영상 신호가 동일하다면 FPGA는 움직임 물체가 없는 것으로 판별한다.
FPGA는 일련의 두 개의 영상 프레임들의 영상 신호 비교를 위하여 적어도 두 개의 영상 프레임들을 저장하기 위한 메모리를 포함한다.

여기서 카메라의 위치가 고정된 상태에서 카메라로부터 입력된 일련의 두 개의 영상 프레임들 중 일부 영역의 디지털 영상 신호가 서로 다르다면 FPGA는 그 일부 영역에 움직임 물체가 있는 것으로 판별하고, 움직임 물체의 중심 좌표(X, Y)를 출력한다. 움직임 물체를 검출하기 위한 적어도 일련의 두 개의 영상 프레임들은 시간적으로 연속된 프레임들 이거나 또는 소정의 시간 간격을 두고 입력된 영상 프레임들 일 수 있다.

예컨대 FPGA는 움직임 물체 검출을 위하여 n 번째 프레임과 n+1 번째 프레임을 비교하거나 또는 n 번째 프레임과 n+3번째 프레임을 비교할 수 있다. FPGA는 일련의 두 프레임의 영상 신호가 서로 다른 영역의 좌측 상단의 좌표와 우측 하단의 좌표를 선택하고, 그 영역의 중심 위치의 좌표를 중심 좌표(X, Y)로서 출력하게 되며, FPGA는 카메라로부터 입력된 일련의 두 개의 영상 프레임들 중 일부 영역의 디지털 영상 신호가 서로 다르다면 움직임 물체의 좌표(X, Y)를 출력하고, 컨트롤러는 좌표(X,Y)에 대응하는 제어 신호(CTRL)를 출력한다.

모터는 컨트롤러로부터의 제어 신호(CTRL)에 응답해서 카메라를 회전시킨다. 그 결과, 카메라는 움직임 물체의 이동 경로를 따라서 회전할 수 있다. 컨트롤러로부터 출력되는 제어신호(CTRL)는 모터의 회전 속도, 회전 각도 등을 제어하기 위한 신호이다.
카메라는 회전하면서도 영상을 계속해서 입력 받고, 입력된 영상에 대응하는 아날로그 영상 신호를 출력한다.

그러나 움직임 물체를 검출하기 위해서는 카메라의 위치가 고정된 상태에서 카메라로부터 입력된 일련의 두 개의 영상 프레임들이 FPGA로 제공되어야 한다. 모터의 구동에 의한 카메라의 회전 속도를 조절한다면 카메라의 위치가 고정된 상태에서 카메라로부터 입력된 일련의 두 개의 영상 프레임들이 FPGA로 제공될 수 있다.

USB 장치는 아날로그-디지털 변환기로부터 출력되는 디지털 영상 신호를 USB 2.0 신호로 변환해서 퍼스널 컴퓨터로 전달한다. 퍼스널 컴퓨터는 USB 장치를 통해 입력된 디지털 영상 신호에 대응하는 영상을 디스플레이 장치에 디스플레이 한다. 그러므로 사용자는 NTSC/PAL 카메라로부터 FPGA로 제공되는 영상과 동일한 영상을 실시간으로 모니터링 할 수 있게 된다.

앞서 설명한 FPGA로부터 출력되는 좌표(X, Y)는 퍼스널 컴퓨터로도 제공되며,영상 추적 알고리즘을 구현한 소프트웨어를 탑재하고 있으므로, 사용자는 디스플레이 장치에 디스플레이 된 영상을 모니터링 하면서 실시간으로 영상 추적 알고리즘을 디버깅(debugging)할 수 있다.

그리고 사용자는 FPGA를 설계하면서 움직임 물체 검출을 위하여 카메라로부터 입력된 영상 신호의 n번째 프레임과 n+1 번째 프레임을 비교할 것인지 아니면 n 번째 프레임과 n+3번째 프레임을 비교할 것인지를 선택하여야 한다. 사용자는 아날로그-디지털 변환기를 통해 카메라로부터 입력된 영상과 FPGA로부터 출력되는 좌표(X, Y)를 보면서 카메라가 움직임 물체를 제대로 추적하고 있는지를 모니터링하고, 비교 대상이 되는 두 프레임의 간격을 조절하기 위해 퍼스널 컴퓨터에 저장된 알고리즘을 수정할 수 있다.

또한, PC에 구현된 소프트웨어는 NTSC/PAL 카메라로부터 입력된 디지털 영상 신호와 FPGA로부터 출력되는 좌표(X, Y)를 OSD(On Screen Display) 형태로 저장하여, 추후에 사용자가 영상 상태와 저장된 좌표(X, Y)를 비교해 가면서 영상 추적 알고리즘에 대한 디버깅을 할 수 있도록 한다.


그림 2a. 추적 파라미터 추출 예


그림 2b. 추적 파라미터 추출 예

그림 2a 내지 그림 2b는 그림 1에 도시된 영상 추적 칩 개발 장치에 의해서 움직임 물체가 검출된 예들을 보여주는 그림들이다.
그림2a 내지 그림2b와 같이, FPGA는 일련의 두 프레임의 영상 신호의 비교에 의해서 움직임 물체 영역들(M1-M4)을 검출하고, 디스플레이 장치에 표시된 현재 프레임에 움직임 물체 영역들(M1-M4)을 표시한다.

FPGA는 검출된 움직임 물체 영역들(M1-M4)의 중심 위치의 좌표(X, Y)를 출력하며, FPGA는 움직임 물체 영역들(M1-M4)의 중심점 좌표(X, Y) 뿐만 아니라, 검출된 움직임 물체 영역들(M1-M4)의 좌측 상단의 시작점 좌표와 우측 하단의 끝점의 좌표를 퍼스널 컴퓨터(160)로 제공할 수 있다. 이 경우, 컴퓨터는 카메라로부터 입력된 영상 신호에 움직임 물체 영역들(M1-M4)을 나타내는 표식들을 부가하여 디스플레이 장치에 표시한다. 또한 일련의 두 프레임의 영상 신호의 차이 값들을 그래프로서 디스플레이 장치에 더 표시할 수 있다.


그림2c. 추적 파라미터 추출 예


그림2d. 추적 파라미터 추출 예

SoC로 집적된 영상 추적 칩이 움직임 물체를 검출하는 정확도는 주변 환경에 따라서 달라질 수 있으므로, 영상 추적 칩에는 감도(sensitivity), 잡음 한계(noise threshold), 사이즈(target size)등의 파라미터 값이 설정된다. 여기서 감도는 카메라 주변의 조도 등에 의한 영상의 변화 감지 능력을 말한다. 잡음 한계는 영상 신호에 포함된 잡음을 구별해 내는 정도, 즉 두 프레임의 영신 신호의 변화 범위를 움직임 물체로 인식할 것인가, 잡음으로 인식할 것인가를 판별하기 위한 신호 변화 범위를 말한다. 사이즈는 카메라로부터 입력된 영상신호의 크기 즉 한 프레임의 크기를 의미한다.

이러한 영상 추적 칩을 개발하는 단계에서 FPGA에도 감도, 사이즈, 잡음 한계 등의 파라미터들이 설정되는데, 컴퓨터는 이러한 파라미터들을 최적화된 값으로 추출하는 기능을 포함하여 최적의 영상 추적 칩 개발이 가능하도록 한다. 즉 컴퓨터가 FPGA에 설정된 파라미터들을 디스플레이 장치에 디스플레이 하면, 사용자는 파라미터들의 현재 설정된 값에 따라서 움직임 추적이 정상적으로 이루어지는 지를 용이하게 판별할 수 있다. 또한 사용자는 디스플레이 장치에 표시된 영상을 보면서 FPGA(140)에 설정될 파라미터들을 변경할 수 있다.

이와 같이 영상 관련 SoC 개발에 있어서 회로 구현 및 검증 과정을 무수히 반복하는데 소요되는 시간이 획기적으로 감소될 수 있다. 즉 알고리즘 도출, 시뮬레이션, FPGA 로직 구현, 테스트 및 검증, 알고리즘 수정 과정을 순차적으로 진행하는 것이 아니라, FPGA 로직에 대한 테스트와 동시에 퍼스널 컴퓨터 상에서 FPGA 로직의 동작 결과를 모니터링 할 수 있을 뿐만 아니라 알고리즘에 대한 디버깅이 가능하다.

따라서 각종 영상 감지 및 추적 등의 SoC 칩 개발을 더욱 빠르고 용이하게 함으로써 점점 짧아지고 있는 개발 사이클에 대응할 수 있을 뿐만 아니라 더욱 정확한 SoC 칩 개발이 가능해 진다.
또한 이러한 개발 장치를 응용함으로써 단순한 테스트 벡터(test vector)에 의해 제한된 로직 테스트 뿐만 아니라 영상 모니터링 기능에 의해 SoC 칩의 불량 여부를 판정할 수 있는 실장 테스터기로의 활용이 가능하다.



<박지은 기자>

 

댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
0 / 400
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.