Advanced
Hardware Implementation of Depth Image Stabilization Method for Efficient Computer Vision System
Hardware Implementation of Depth Image Stabilization Method for Efficient Computer Vision System
Journal of the Korea Institute of Information and Communication Engineering. 2015. Aug, 19(8): 1805-1810
Copyright © 2015, The Korean Institute of Information and Commucation Engineering
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License(http://creativecommons.org/li-censes/by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.
  • Received : April 17, 2015
  • Accepted : May 11, 2015
  • Published : August 31, 2015
Download
PDF
e-PUB
PubReader
PPT
Export by style
Share
Article
Author
Metrics
Cited by
TagCloud
About the Authors
근준 김
봉순 강
bongsoon@dau.ac.kr

Abstract
깊이 영상에 대한 접근성이 용이해지면서 다양한 연구 분야에서 깊이 센서를 활용하고 있다. 컴퓨터 비전의 모션인식 분야에서도 깊이 영상을 이용한 연구들이 진행되고 있다. 모션을 정확히 인식하기 위해서는 안정적인 데이터를 활용할 수 있어야 하지만 깊이 센서는 노이즈를 포함한다. 이러한 노이즈는 모션 인식 시스템의 성능에 영향을 줄 수 있기 때문에 효과적으로 노이즈를 억제하는 방법이 필요하다. 본 논문에서는 하드웨어를 사용하여 깊이 센서에서 입력되는 깊이 영상에 시간 영역과 공간 영역에서 안정화를 수행함으로써 깊이 영상을 안정화하는 하드웨어를 제안한다. 바닥 제거 알고리즘에 깊이 영상 안정화를 적용하여 노이즈를 억제한 깊이 영상 안정화가 시스템의 신뢰도 향상에 기여할 수 있음을 확인하고 구현한 하드웨어를 FPGA와 APU를 이용해 실시간 동작을 확인하였으며 설계한 하드웨어는 최대 202.184MHz에서 동작할 수 있다.
Keywords
Ⅰ. 서 론
컴퓨터 비전 기술은 최근 의료, 재활, 상업, 엔터테인먼트, 교육, 군사, 보안, 자동차등의 생활 전 분야에 걸쳐 폭넓게 활용되고 있다. 영상처리 기반의 컴퓨터 비전 기술 분야에서 깊이 영상을 활용한 연구는 종래에도 활발히 진행 되어 왔으나 깊이 영상의 획득이 쉽지 않아 한정된 분야에서만 사용해 왔다. 그러나 Microsoft Kinect의 등장으로 깊이 영상에 대한 접근성이 용이해졌으며 다양한 영상처리 분야에서 보다 쉽게 적용할 수 있게 되었다. 특히, 컴퓨터 비전 기술의 핵심 요소로서 사람의 행동 및 고유 특성을 인식하는 모션 인식 분야에서는 깊이 영상을 이용한 연구가 활발하게 이루어지고 있다 [1 - 3] .
그러나 깊이 측정 센서는 적외선 패턴 투사 방식을 사용하여 깊이 영상을 획득하기 때문에 같은 영역을 고정된 위치에서 촬영 한다 할지라도 측정된 모든 프레임의 데이터가 동일하지 않다. 또한, 깊이 측정 센서의 위치와 각도에 따라 깊이 측정 정보가 급격히 변한다. 이러한 깊이 영상의 노이즈 성분은 모션 인식 시스템의 성능저하의 가장 큰 원인이 된다 [4] . 모션 인식 시스템에서 움직이는 객체 검출 과정이나 로봇 네비게이션의 바닥면 검출 등에 깊이 영상을 효율적으로 적용하기 위해서는 깊이 영상 기반 시스템의 전처리 과정으로 깊이 영상 안정화 과정이 필수적이다.
기존의 깊이 영상 안정화를 위한 방법에서는 시간 및 공간 영역에서 다양한 필터를 적용하였다 [5 , 6] . 하지만 APU(Application Processing Unit)만을 사용함에 따라 다기능을 동시에 수행하는 것이 불가능 하고 순차적인 연산으로 인하여 처리 시간이 오래 걸리는 단점이 있다. 따라서 본 논문에서는 고성능이면서 연산 복잡도가 낮은 형태의 깊이 영상 안정화 방법을 하드웨어로 구현하고 APU와 FPGA(Field Programmable Gate Array)를 연동한 환경에서 검증 하고자 한다. 하드웨어 IP는 고속화와 저전력, 고성능의 시스템 구현이 가능하게 한다.
본 논문의 Ⅱ장에서는 시간 및 공간 영역에서의 깊이 영상의 안정화 방법에 대해 논하고 Ⅲ장에서는 본 논문에서 제안하는 시스템의 하드웨어 설계에 대해 기술하고 합성결과와 FPGA를 이용한 실시간동작에 대하여 논한다. IV장에서는 제안된 시스템의 시뮬레이션 결과에 대하여 논하고 V장에서는 결론을 도출한다.
Ⅱ. 깊이 영상 안정화 방법[7]
그림 1 은 깊이 측정 센서를 이용하여 촬영한 영상이다. 그림 1 의 (a)는 컬러영상이고, 그림 1 의 (b)는 깊이 영상이다. 그림 1 의 (b)에 그레이 스케일로 표현된 영역은 깊이 정보로써 깊이 센서의 측정 가능 영역인 1~4m 범위 내의 데이터가 12bit로 표현된 정보이다. 검은색으로 표현된 영역은 측정 불가능한 영역으로 측정 가능범위를 벗어난 영역이다. 본 논문에서는 깊이 영상의 안정화를 위하여 윈도우 마스크를 이용한 공간 영역 안정화를 수행한 후 이전 프레임 정보와 현재 프레임 정보를 이용한 시간 영역 안정화 방법을 사용하였다.
PPT Slide
Lager Image
컬러 영상과 깊이 영상 (a) 컬러 영상 (b) 깊이 영상 Fig. 1 Color image and depth image (a) Color image (b) Depth image
- 2.1. 공간 영역 안정화
깊이 측정 센서의 위치와 각도에 따른 노이즈 성분을 제거하기 위하여 공간 영역 안정화가 적용 되었다. 그림 2 에는 공간 영역 안정화를 위한 3×3 윈도우 마스크를 나타내었다. an 은 해당 픽셀에 적용되는 계수를 의미한다. 센터 픽셀 P 0 ( x , y )의 깊이 영상은 수식 (1)을 사용하여 연산한다.
PPT Slide
Lager Image
PPT Slide
Lager Image
공간 영역 안정화 마스크 Fig. 2 Spatial domain stabilization mask
- 2.2. 시간 영역 안정화
시간 영역 안정화는 이전 프레임과 현재 프레임의 깊이 영상을 비교하여 깊이 영상의 변화 속도를 감소시킨다. 시간 영역 안정화는 수식 (2)를 사용한다. Pi ( x , y )는 프레임의 깊이 영상을 의미하며 Pi-1 ( x , y )는 이전 프레임의 깊이 영상을 의미한다. 두 가중치 α β 의 합이 1이다.
PPT Slide
Lager Image
Ⅲ. 하드웨어 구현
그림 3 은 제안하는 하드웨어의 블록도이다. 깊이 안정화 하드웨어는 공간 영역 안정화 모듈과 시간 영역 안정화 모듈로 나누어진다. 공간 영역 안정화 모듈은 12bit의 깊이 영상을 입력으로 받는데 이는 깊이 측정센서의 측정 범위가 1~4m의 범위를 mm단위의 정수 형태로 표현하기 때문에 12bit를 사용한다. 공간 영역 안정화 모듈에서는 3×3 마스크 연산을 수행하기 때문에 라인 메모리가 필요하다. 필요한 라인 메모리의 크기는 640×12bit×2EA가 되는데 읽기와 쓰기를 동시에 수행할 수 있도록 하기 위해 320×24bit×2EA의 SRAM을 사용하였다.
PPT Slide
Lager Image
제안한 하드웨어 블록 다이어그램 Fig. 3 Proposed hardware block diagram
공간 영역 안정화에서 출력되는 깊이 영상은 마스크 연산으로 인해 1라인의 지연이 발생한다. 그림 4 는 SRAM1 Controller의 동작을 나타낸 것이다. 두 픽셀의 깊이 영상 정보를 하나의 주소 값에 할당하여 쓰기와 읽기 동작을 수행한다.
PPT Slide
Lager Image
메모리 컨트롤러 파형 Fig. 4 Simulation waveform of the memory controller
시간 영역 안정화 모듈에서는 이전 프레임과 현재 프레임의 깊이 영상 정보가 필요하기 때문에 프레임 메모리를 필요로 한다. 본 논문에서는 하드웨어의 자원을 절약하기 위해 국소적인 영역의 후보군에 대해서만 시간 영역 안정화를 수행하기 때문에 라인 메모리를 사용하였다. 이는 깊이 영상 기반 시스템에서 관심 영역의 특징을 추정하기 위한 시스템에 효율적으로 적용 가능하다 [8] . 시간 영역 안정화 모듈에서 입력으로 사용하는 신호 start_x_pos와 start_y_pos가 바닥 후보군이 시작하는 위치이고 delta_x와 delta_y는 바닥 후보군간의 간격을 위한 파라미터이다. point_gap은 후보군의 거리 조정을 위한 값이고 num_of_candidate는 사용할 후보군의 수를 조절하는 파라미터로 최소 16개에서 최대 128개의 후보군을 사용할 수 있다. 하나의 후보군은 3개의 포인트로 구성된다. temporal_alpha는 수식 (1)에서 사용하는 가중치 α 를 의미한다. SRAM2에 저장되는 데이터의 형태는 해당 픽셀의 좌표와 깊이 영상을 함께 저장하는데 픽셀의 좌표 x, y가 각각 10bit, 9bit이다. 입력되는 12bit의 깊이 영상은 수식 (1)를 거치면서 소수점을 포함하게 되므로 소수점 4bit를 포함하여 16bit의 깊이 영상을 저장한다. 따라서 시간 영역 안정화 모듈에 필요한 메모리는 128개의 후보군이 존재하고 각 후보군이 세 개의 포인트로 구성이 되며 저장되는 정보가 35bit이기 때문에 128×35bit×3EA가 된다. 그림 5 는 시간 영역 안정화와 공간 영역 안정화 모듈의 시뮬레이션 동작을 나타낸 것이다.
PPT Slide
Lager Image
깊이 영상 안정화 하드웨어 시뮬레이션 파형 Fig. 5 Simulation waveform of the depth image stabilization
그림 6 은 설계한 하드웨어를 실시간으로 검증하기 위한 실시간 검증 시스템을 도시화 한 것이다. 깊이 센서에서 PC로 입력되는 깊이 영상을 USB 2.0 프로토콜을 사용하여 DDR3 Memory에 쓰게 되고 전송이 완료되면 APU가 FPGA를 동작시킨다. FPGA의 동작이 완료되면 인터럽트 신호를 발생시키고 APU가 인터럽트에 반응하여 PC로 처리 완료 신호를 전달한다. PC는 처리 신호를 받으면 DDR3 Memory에 저장된 출력 영상을 가져와서 디스플레이 한다.
PPT Slide
Lager Image
제안한 시스템을 검증하기 위한 FPGA Board Fig. 6 FPGA Board for the Proposed System Verification
표 1 은 본 논문에서 제안한 깊이 영상 안정화 하드웨어를 Xilinx Design Analyzer로 XC7Z45FFG900-1 보드를 타겟으로 합성한 결과이다. Slice Registers는 1,570개가 소모되어 전체 사용 가능한 용량의 0.36%를 사용하였다. Slice LUTs는 1,514개가 소모되어 전체 사용가능한 용량의 0.69%가 사용되었다. BUFG/BUFCTRLs는 1개를 사용하여 3.13%를 사용하였으며 DSP48-E1s는 4개를 사용하여 0.44%를 사용하였다. 하드웨어의 동작에 필요한 최소 시간은 4.946ns측정되어 최대 202.184MHz까지 동작할 수 있으며 총 소모 클럭은 654클럭을 소모한다.
Xilinx Design Analyzer 결과Table. 1 Xilinx Design Analyzer Result
PPT Slide
Lager Image
*IDEC의 EDA Tool을 제공받아 수행하였음.
Ⅳ. 시뮬레이션 결과
본 논문에서 제안한 시스템은 Microsoft Kinect 거리측정 센서로부터 640×480 크기의 깊이 영상을 입력으로 하여 Microsoft Visual Studio 2010과 OpenCV를 이용한 검증 프로그램을 통하여 성능을 검증하였다. 또한, Verilog로 구현한 제안된 하드웨어 시스템은 FPGA와 APU를 연동하여 확인 가능한 Zynq-7000 FPGA Board를 이용하여 실시간 처리를 검증 하였다.
그림 7 은 공간 영역 안정화 모듈에 대한 시뮬레이션 결과이다. 그림 7 의 (a)는 입력 깊이 영상이고 영상에 도시된 Start Point (height=450)와 End Point (height=350)는 수직 방향의 깊이 정보 변화를 측정하기 위한 영역이다 . 그림 7 의 (b)는 입력되는 깊이 영상의 수직 방향깊이 정보이고 그림 7 의 (c)는 공간 영역 안정화의 수직방향 깊이 정보를 나타낸 그래프이다. 그래프의 x축은 깊이 영상의 Height를 나타내고 y축은 깊이 정보이다. 그림 7 의 (b)에 나타난 수직 방향 깊이 정보의 증가 폭은 크게 나타나지만 그림 7 의 (c)는 상대적으로 증가폭이 감소 한 것을 알 수 있다. 따라서 공간 영역 안정화는 동일 프레임 내에서 발생하는 노이즈를 효과적으로 제거 가능한 것을 확인 할 수 있다.
PPT Slide
Lager Image
공간 영역 안정화 시뮬레이션 결과 (a) 입력 깊이 영상(b) 원본 깊이 정보 (c) 공간 영역 안정화된 수직 방향 깊이 정보 Fig. 7 Simulation result of spatial domain stabilization (a) Input depth image (b) Original depth data (c) Spatial domain stabilization depth data
그림 8 은 시간 영역 안정화 시뮬레이션 결과이다. 시간 영역 안정화의 성능 비교를 위하여 100프레임의 연속된 깊이 영상에서 동일한 한 지점의 깊이 정보 변화를 측정한 것이다. 깊이 정보 변화 그래프의 x축은 프레임을 나타낸 것이고, y축은 깊이 정보를 나타낸 것이다. 그림 8 의 (a)는 입력 깊이 영상의 정보이고 그림 8 의 (b)는 공간 영역 안정화만 적용한 깊이 정보의 변화이다.
PPT Slide
Lager Image
시간 영역 안정화 시뮬레이션 결과 (a) 입력 깊이 정보 (b) 공간 영역 안정화를 적용한 깊이 정보 (c) 공간 및 시간 영역 안정화를 적용한 깊이 정보 Fig. 8 Simulation result of temporal domain stabilization (a) Input depth data (b) Temporal domain stabilization data (c) Spatial and temporal domain stabilization data
그림 8 의 (c)는 공간 영역 안정화와 시간 영역 안정화를 적용한 깊이 정보 변화를 나타낸 결과이다. 그림 8 의 (a)의 평균 깊이 정보 변화폭은 9.3이고 그림 8 의 (b)의 평균 깊이 정보 변화 폭은 7.2이다. 그림 8 의 (c)에서는 평균 깊이 정보 변화 폭이 1.8로써 연속된 프레임 간의 깊이 영상의 차이가 효과적으로 감소하였다.
그림 9 는 깊이 영상의 안정화 성능 판단을 위하여 모션인식을 위한 바닥 제거 시스템 [6] 에 적용한 결과이다. 그림 9 의 (a)는 컬러 영상이고 그림 9 의 (b)는 입력 깊이 영상이다. 그림 9 의 (c)는 깊이 영상 안정화를 적용하지 않은 결과 영상이고 그림 9 의 (d)는 제안한 깊이 영상 안정화 하드웨어를 적용한 결과 영상이다. 깊이 영상을 안정화를 수행하지 않았을 때 에는 바닥면의 일부분이 가능 영역의 최대지점까지 바닥면이 제거 되었다. 이를 통해 공간 필터와 시간필터를 직렬로 연결함으로써 깊이 영상을 안정화 시키고 시스템의 신뢰성이 향상됨을 알 수 있다.
PPT Slide
Lager Image
시뮬레이션 결과 (a) 컬러 영상 (b) 입력 깊이 영상 (c) 깊이 영상 안정화를 적용하지 않은 결과 영상 (d) 제안한 방법 결과 영상 Fig. 9 Simulation result (a) Color image (b) Input depth image (c) Original algorithm output image (d) Proposed stabilization output image
Ⅴ. 결 론
본 논문에서는 깊이 측정 센서에서 발생하는 노이즈를 억제하고 깊이 영상 기반의 시스템의 성능 향상을 위한 깊이 영상 안정화 하드웨어 구현방법을 제안하였다. 제안한 방법은 공간 영역과 시간 영역에서 안정화를 수행함으로써 깊이 영상의 노이즈를 효과적으로 제거 가능함을 시뮬레이션 결과를 통하여 확인 할 수 있다. 또한 Verilog를 이용하여 설계한 하드웨어 시스템은 CPU와 FPGA를 연동하여 검증 가능한 환경에서 실제 동작을 확인하였다. 본 논문에서 제안한 하드웨어 구조는 메모리와 연산 로직을 효율적으로 구현하여 1% 미만의 하드웨어 자원을 소모 하였고 Zynq-7000 FPGA Board로 합성 시 최대 동작주파수가 202.184MHz로 실시간 처리가 가능 한 것을 확인 하였다.
Acknowledgements
This paper was supportedby research funds from Dong-A University
BIO
김근준(Geun-Jun Kim)
2013년 2월 동아대학교 전자공학과 (공학사)
2013년 3월 ~ 현재 동아대학교 전자공학과 석·박사 통합 과정
※관심분야 : 영상 신호처리, VLSI architecture design
강봉순(Bongsoon Kang)
1985년 연세대학교 전자공학과 (공학사)
1987년 미국 University of Pennsylvania 전기공학과 (공학석사)
1990년 미국 Drexel University 전기 및 컴퓨터 공학과 (공학박사)
1989년 ~ 1999년 삼성전자 반도체 수석연구원
1999년 ~ 현재 동아대학교 전자공학과 교수
2006년 ~ 2011년 멀티미디어 연구센터 소장
2006년 ~ 2013년 2단계 BK21 사업팀장
2013년 ~ 현재 BK21 Plus 사업팀장
※관심분야 : 영상신호처리, SoC설계 및 무선통신
References
Han Jungong , Shao Ling , Xu Dong 2013 “Enhanced computer vision with microsoft kinect sensor: A Review,” IEEE Transactions on Cybernetics 43 (5) 1318 - 1334    DOI : 10.1109/TCYB.2013.2265378
Lee Jichan , Lim S. , Kim J. , Kim B. "Moving object detection using background subtraction and motion depth detectionin depth image sequences," in proceeding of the IEEE International Symposium on Consumer Electronics Jeju June. 2014 1 - 2
Zhang Chenyang , Tian YingLi "Edge Enhanced Depth Motion map for Dynamic Hand Gesture Recognition," in proceeding of the IEEE Conference on Computer Vision and Pattern Recognition Workshops Portland June. 2013 500 - 505
Mallick T. , Das P.P , Majumdar A.K 2014 “Characterizations of noise in Kinect depth images: A Review,” IEEE Sensors journal 14 (6) 1731 - 1740    DOI : 10.1109/JSEN.2014.2309987
Xu Tatong , Jin Xin , Dai Qionghai “Spatial-temporal depth de-noising for Kinect based on texture edge-assisted depth classification,” in proceeding of the 19th International Conference on Digital Signal Processing Hong Kong Aug. 2014 327 - 332
Matyunin S , Vatolin D , Berdnikov Y , Smirnov M “Temporal filtering for depth maps generated by Kinect depth camera,” in proceeding of the 3DTV Conference Antalya May. 2011 1 - 4
Kim Geun-Jun , Jo Gippeum , Cho Hosang , Kang Bongsoon “Depth data smoothing method for the motion recognition pre-processing system,” in proceeding of the Information and Control Symposium Seoul April. 2014 22 - 23
Jang Kyounghoon , Cho Hosang , Kim Geun-Jun , Kang Bongsoon “A Floor Plane Removal System Using Depth Information for Motion Recognition System,” in proceeding of the International Conference on Information Technology Convergence and Services Taiwan Oct. 2014 33 - 38