매트릭스 패턴 영상의 관심 영역 추출 방법 및 하드웨어 구현

Region of Interest Extraction Method and Hardware Implementation of Matrix Pattern Image

  • cc icon
  • ABSTRACT

    본 논문에서는 기존의 터치 센서방법과 초음파나 레이저를 사용하는 방법이 아닌 디스플레이에 프린트된 매트릭스 패턴 영상을 이용하여 위치 정보를 추출하는 시스템의 패턴 영상의 특징점을 찾고 관심 영역의 영상을 추출하는 방법을 제안하였다. 제안하는 방법은 패턴 영상의 조도값과 패턴의 특징을 이용하여 촬영된 영상의 회전된 각도와 신뢰성 있는 특징점을 찾고 관심영역을 추출한다. 성공적인 관심 영역 추출을 위해서 다양한 각도에서 판서된 패턴영상을 이용하여 위치 관심영역 추출을 테스트하였고 성공적으로 관심영역을 추출하는 것을 확인하였다. 제안한 알고리즘은 OpenCV와 Window 프로그램을 사용하여 소프트웨어적으로 검증하고, 또한, Verilog-HDL을 사용하여 하드웨어 시스템을 설계하고, Xilinx FPGA(xc6vlx760) 보드를 이용하여 검증하였다.


    This paper presents the region of interest pattern image extraction method on a display printed matrix pattern. Proposed method can not use conventional method such as laser, ultrasonic waves and touch sensor. It searches feature point and rotation angle using luminance and pattern reliable feature points of input image, and then it extracts region of interest. In order to extract region of interest, we simulate proposed method using pattern image written various angles on display panel. The proposed method makes progress using the OpenCV and the window program, and was designed using Verilog-HDL and was verified through the FPGA Board(xc6vlx760) of Xilinx.

  • KEYWORD

    매트릭스 패턴 영상 , 특징점 , 관심 영역 , 하드웨어 구현

  • Ⅰ. 서 론

    최근 다양한 컨텐츠의 발달과 소프트웨어의 발달로 이를 이용하기 위한 스마트 패드, 전자 교탁, 전자칠판을 연동하는 스마트 스쿨 시스템, 홍보 및 전시를 위한 사용자 응답형 시스템이 상용화되었고 점차 확대되고 연구되고 있다[1,2]. 이러한 시스템의 중심은 대화면 디스플레이에 사용자가 판서하는 위치를 인식하여 해당위치의 픽셀위치에 사용자가 설정한 픽셀값을 입력하는 판서 시스템이다[3]. 사용자가 판서하는 위치를 인식하는 기술은 대표적으로 정전식과 감압식 같은 터치센서를 이용하는 방법과 초음파나 레이저를 이용하는 방법이 있다. 하지만 터치센서를 이용하는 방법은 디스플레이가 커질수록 터치 감지 정확도와 반응 속도가 느려지는 단점이 있고 초음파와 레이저를 이용한 방법은 인식 정확도가 다소 떨어지는 문제점이 있다[4,5]. 이러한 문제점을 해결하기 위해 초소형 카메라가 탑재된 디바이스와 픽셀을 표현하는 매트릭스 패턴 내부에 위치 정보가 프린트된 디스플레이를 이용하여 디바이스의 위치 추출하는 시스템이 연구되었다[6]. 그림 1은 디스플레이에서 픽셀을 표현하는 매트릭스 패턴의 예시이다.

    촬영된 매트릭스 패턴 영상에서 위치 정보를 추출하기 위해서는 디바이스의 위치 정보 패턴이 존재하는 영역을 찾는 과정과 해당 영역을 디코딩에 알맞은 크기와 방향으로 사상하는 작업이 수행되어야한다[7]. 하지만 영상 촬영 디바이스의 각도와 디스플레이 패널의 밝기정도에 따라 촬영된 영상이 왜곡되는 문제점이 발생한다. 이러한 왜곡이 발생한 영상은 패턴의 밝기가 균일하지 못하고 패턴의 모양이 뒤틀려 디코딩에 맞는 영상을 추출하지 못하게 된다. 본 논문에서는 이러한 왜곡된 영상에서도 강인한 관심 영역 검출과 관심 영역을 사상시키는 방법을 제안한다. 또한 빠른 연산 속도를 위하여 제안하는 방법을 하드웨어로 구현하였다.

    Ⅱ. 제안하는 방법

    입력되는 매트릭스 패턴 영상은 픽셀을 표현하는 패널의 화소부분이 각 행과 열에 따른 일정한 간격을 두고 분포되어 있는 특징을 가지고 있다. 관심영역 영상을 얻기 위해서는 패턴 영상의 특징을 이용하여 관심영역으로 지정할 4개의 사상점을 추출하여야 한다. 그림 2는 관심영역의 영상을 추출하기 위한 연산 흐름도이다. 연산은 입력 패턴 영상의 회전 각도를 검출하는 각도 찾기, 패턴 영상의 특징을 이용한 특징점 찾기, 특징점을 중심으로 왜곡된 영상의 패턴 영상 각도 보정, 각각의 특징점과 보정된 각도를 이용한 사상점 추출로 이루어진다.

       2.1. 각도 검출

    디바이스의 카메라에서 입력되는 패턴 영상은 판서하는 글이나 그림에 따라 회전된 패턴 영상이 촬영된다. 이러한 회전된 영상은 디바이스의 위치 정보를 추출하는 디코딩 과정을 수행하기 위해서 회전 각도를 검출하여 보정하여야 한다. 패턴 영상의 특징을 이용하여 입력 영상을 각도를 검출하기 위해 수식 (1)을 수행한다.

    image

    LS는 각도에 따른 조도값의 총합에 대한 데이터이다. deg는 패턴 영상의 회전각도를 찾기 위한 검색 각도이다. I(x,y)는 패턴 영상의 조도값이다. yx는 패턴 영상의 행의 위치와 열의 위치 정보를 나타낸다. 위치정보는 deg 값에 따라 수식 (2)와 같이 연산된다.

    image

    CPxCPy는 패턴영상의 중심을 기점으로 윈도우 영역의 밝기 평균값이 가장 작은 영역이 중심점이다. Tan은 tangent 테이블이다. 수식 (1)은 CPxCPy를 중심으로 회전하며 해당 각도의 조도값에 대한 평균이 가장 낮은 각도를 중심점 각도 CD로 선택하게 된다. 추출된 각도는 특징점을 찾는 연산에서 사용된다. 그림 3은 입력된 패턴 영상과 중심점 CPxCPy를 기준으로 각도 검출 연산을 위한 마스크와 방향을 표현한 영상이다. 그림 3의 (a)는 입력 패턴 영상, 그림 3의 (b)는 각도 검출 마스크와 각도 검색 방향을 도시하였다.

       2.2. 패턴 영상의 특징점 검출

    영상이 회전된 각도 CD를 검출했다면 패턴 영상의 특징을 이용하여 일정 범위의 간격을 가지고 있는 특징점을 검출하게 된다. 이러한 특징점은 사상점 추출 연산에서 중요한 기준점으로 사용되며 신뢰성이 높은 특징점을 검출하는 것이 이후 성공적인 관심 영역 추출에 많은 영향을 끼치게 된다.

    수식 (3)는 가로 방향 특징점을 찾기 위한 가로방향 조도값 평균 테이블 HLS에 대한 수식이다. 가로 방향 중심점 HPN를 기준으로 3×10의 가로 방향 윈도우를 사용하여 조도값에 대한 평균이 가장 낮은 지점을 가로 방향 특징점 후보로 선택하게 된다. yhxh는 가로방향 중심점 HPN를 기준으로 연산된 윈도우의 위치 정보이다.

    image

    HPN는 수식 (4)를 통해 연산된다. ODCPxCPy를 중심으로 가로 방향 중심점 HPN를 연산하기 위한 직교 각도로써 CD에 90°를 뺀 값이다. 가로 방향 특징점 후보는 CPxCPy를 중심으로 일정한 간격 사이에 존재하는 조도값에 대한 평균이 가장 낮은 지점이 선택되며 CPxCPy를 중심으로 양옆의 이웃한 구간에서 선택된 특징점 후보가 최종 가로 방향 특징점으로 선택된다.

    image

    수식 (5)는 세로 방향 조도값 평균 테이블 VLS 수식이다. 수식 (2)와 같이 10×3의 세로 방향 윈도우를 사용하여 일정 간격내의 조도값 평균이 가장 낮은 지점을 후보점으로 추출한다. 중심점과 가장 가까운 후보점 중왼쪽과 오른쪽으로 3번째 구간의 후보점을 세로 방향 특징점으로 선택한다.

    image

    VPN는 세로 방향 중심점이며 수식 (4)에서 중심점 값인 CPxCPy는 중심점에서 일정간 간격으로 이동한 값으로 대체되고 ODCD로 대체되어 연산된다. yvxv는 세로 방향 중심점 VPN를 기준으로 연산된 윈도우의 위치 정보이다.

       2.3. 보정 각도 검출 및 사상점 연산

    추출된 각도는 패턴 영상의 블러와 영상의 왜곡으로 각 라인의 패턴 마다 다른 각도를 가질 수 있으므로 보정 각도를 연산하는 과정을 거치게 된다. 보정 각도 검출 연산은 가로 방향 특징점에서 좁은 범위의 각도 내에서 각도 검출을 수행한다. 이때 사용되는 수식은 수식 (1)과 동일하고 중심점이 가로 방향 특징이 중심점으로 사용된다. 추출된 각도는 이후 사상점 연산에서 사용된다. 가로 방향과 세로 방향 특징점, 연산된 보정각도를 이용하여 각각의 특징점을 지나는 직선이 교차하는 지점을 사상점으로 선택하게 된다. 총 4개의 사상점이 선택되어 관심 영역 영상 추출을 위한 행렬 연산에 사용된다.

    그림 4는 사상점 선택 결과이다. 그림 4의 (a)는 그림 2의 (a)를 입력 패턴 영상으로 사용했을 때 검출된 특징점을 보여주고 있다. 파란색점은 가로방향 특징점이고 빨간색점은 세로방향 특징점이다. 그림 4의 (b)는 관심영역의 중심을 기준으로 이동된 사상점 (MPx1, MPy1), (MPx2, MPy2), (MPx3, MPy3), (MPx4, MPy4)과 패턴 영상의 관심 영역이 사상될 영상 면적을 빨간박스로 나타내었다. MW는 사상될 관심 영역 영상의 가로 크기이며 MH는 세로 크기이다. 사상점을 중심점으로 원점 이동한 함으로써 이후 연산될 관심 영역 사상을 위한 변환 계수 행렬 크기를 3×3에서 2×2로 최소화 할 수 있다.

       2.4. 관심 영역 영상 추출

    패턴 영상의 관심 영역을 하나의 독립적인 영상으로 추출하기 위하여 와핑(warping) 연산을 수행하게 된다. 와핑 연산은 입력 패턴 영상의 픽셀을 관심 영역 영상좌표로 대응시켜 왜곡된 영상을 보정하게 된다. 수식 (6)은 사상을 위한 변환 계수 행렬 [TM1, TM2 ; TM3, TM4]의 연산 수식이다. MWhMHh는 관심 영역 영상의 가로와 세로 크기의 1/2 값이다.

    image

    연산된 변환 행렬을 이용하여 사상시킬 위치와 대응되는 입력 영상의 픽셀 위치를 연산하여 픽셀값을 사상시킨다. 사상시킬 위치와 이에 대응되는 입력 영상의 픽셀 위치 (xm, ym)는 수식 (7)을 사용하여 연산할 수 있다. (xnew, ynew)은 관심 영역 영상의 픽셀 위치 정보이다. MPCx, MPCy는 원본 패턴 영상에서 사상점들의 중심점 위치 정보이다.

    변환행렬의 간략화 하기 위해서 원점 이동한 위치 정보를 이용하였기 때문에 다시 원점 이동한 위치를 보정하는 값으로 사용된다. 역방향 사상을 하였기 때문에 추출된 관심영역 영상은 데이터가 없는 hole이 발생하지 않게 된다.

    image

    그림 5는 추출된 관심영역 영상이다. 그림 5의 (a)는 입력 패턴 영상이고 (b)는 와핑 연산된 관심영역 영상이다. 판서되는 디바이스의 각도로 인해 관심영역이 사각형의 형태로 만들어지지 않아도 왜곡된 각도를 다시 검출과하는 과정을 거치며 각도가 보정되어 정상적으로 관심영역 영상이 추출된 것을 볼 수 있다.

    Ⅲ. 시뮬레이션 결과

    제안하는 방법이 관심 영역을 추출하는 것을 검증하기 위해서 다양한 각도에서 판서된 디바이스의 패턴 영상을 테스트하였고 디코딩을 위한 관심 영역 추출이 용이하게 이루어지는지 확인하였다.

    그림 6은 다양한 회전각도에 따른 왜곡이 발상하는 테스트 패턴 영상의 관심영역 추출 결과 영상이다. 판서하는 디바이스의 각도가 점점 증가 할수록 패턴 영상의 왜곡 정도가 커지는 현상이 나타나게 된다. 따라서 임의로 회전된 패턴 영상에 왜곡을 만든 영상으로 테스트하였다. 관심 영역 영상이 총 12개의 매트릭스를 포함하고 있다면 디코딩하기 위한 위치 정보를 정상적으로 추출한 것으로 판별하였다. 그림 6의 (a)는 카메라가 탑재된 디바이스의 판서 각도가 10°인 왜곡 패턴 영상, (b)는 20°인 왜곡 패턴 영상, (c)는 30°인 왜곡 패턴 영상, (d)는 40°인 왜곡 패턴 영상이다. 그림 6의 (e), (f), (g) 그리고 (h)는 각각 (a), (b), (c), 그리고 (d)의 관심영역 추출 영상이다. 판서되는 디바이스의 각도에 따른 왜곡에도 디바이스의 위치 정보를 얻기 위한 관심 영역 영상을 성공적으로 추출한 것을 볼 수 있다.

    표 1은 1°에서 40° 사이 1°각도로 회전된 매트릭스 패턴 영상의 이용하여 회전 보정이 정상적으로 이루어 졌는지 테스트 결과이다. 총 40 프레임을 테스트한 결과 가장 큰 오차 범위는 +0.25°로 패턴 영상의 회전 각도에 따라 정상적으로 패턴 영상의 회전 각도를 검출하였다.

    Ⅳ. 하드웨어 구현 결과

    제안하는 방법은 Verilog-HDL을 이용하여 하드웨로 구현하였으며 Xilinx FPGA (xc6vlx760)를 이용하여 하드웨어 복잡도를 평가하였다. 그림 7은 제안하는 방법의 하드웨어 블록도이다. 패턴 영상을 저장하는 메모리의 동작 주파수와 연산블록의 동작 주파수를 분리하여 사용 환경에 따라 연산 속도를 조절할 수 있게 하였다. 각도 검출에 필요한 tangent 테이블은 빠른 연산속도와 하드웨어 설계 용이함을 위해서 정수형 LUT(look up table) 형식으로 구현하였다. 각각의 로직 블록에 맞는 FSM(finite state machine)을 설계하여 상대적으로 Slice Registers의 사용도가 큰 곱셈기와 나눗셈기 같은 연산기를 공유하여 Slice Registers의 사용을 최소화 할 수 있도록 설계하였다. 표 2는 FPGA 구현 결과를 요약한 표이다. Slice Registers와 Slice LUTs은 구현을 위한 논리 영역을 나타내고 BRAMs은 메모리 사용량을 나타낸다. 제안하는 방법은 사용가능한 Slice Registers의 4%인 38,184 를 사용하였고 Slice LUTs 사용량은 사용 가능한 총량에서 6% 28,965를 사용하였다. 사용한 메모리는 총BRAMs의 1%인 962를 사용하였다. 동작속도는 최고 110.693MHz를 만족하였다.

    Ⅴ. 결 론

    본 논문에서는 초소형 카메라가 탑재된 디바이스와 특정 패턴이 프린트된 디스플레이를 이용하는 판서 시스템의 판서 디바이스 위치정보 인식을 위한 관심영역 추출 방법을 제안하고 하드웨어로 구현하였다. 다양한 각도에서 판서되는 디바이스가 촬영하는 매트릭스 패턴영상을 생성하여 회전 각도 검출을 수행한 결과 +0.25°의 오차율을 보였다. 또한 매트릭스 패턴 영상의 모양이 뒤틀린 영상의 경우에도 정상적으로 관심 영역을 추출하는 것을 실험을 통해서 확인할 수 있었다. 또한 이와 같이 관심 영역이 정상적으로 추출되면 디바이스의 위치 인식 디코딩 연산이 성공적으로 동작할 확률이 크게 상승할 것으로 보인다. 제안하는 방법은 Verilog-HDL을 사용하여 하드웨어로 설계를 하였고 FPGA보드를 이용하여 동작 주파수가 최고 110.693MHz를 만족하는 것을 확인 하였다.

  • 1. Math Shaila S, Manjula R. B, Manvi S.S., Kaunds Paul 2005 “A usability survey of a contents-based video retrieval system by combining digital video and an electronic bulletin board,” [The Internet and Higher Education] Vol.8 P.251-262 google doi
  • 2. 2012 Interactive Whiteboard (IWB): A Global Strategic Business Report. [Online]. google
  • 3. Ko Eunsang, Rhee Yang Won, Lee Chang Woo 2012 "Implementation of Commercial IWB Interface using Image Processing," [Journal of the Korea industrial information systems society] Vol.17 P.19-24 google doi
  • 4. Takeoka Yoshiki, Miyaki Takashi, Rekimoto Jun 2010 “Z-touch: an infrastructure for 3d gesture interaction in the proximity of tabletop surfaces,” [ACM International Conference on Interactive Tabletops and Surfaces] P.91-94 google
  • 5. Shotton Jamie, Fitzgibbon Andrew, Cook Mat, Sharp Toby, Finocchio Mark, Moore Richard, Kipman Alex, Blake Andrew 2011 “Real-time human pose recognition in parts from single depth images,” [Computer Vision and Pattern Recognition] Vol.56 P.116-124 google
  • 6. Kim Cheolha 2005 Pen-type position input device google
  • 7. Wolber G. 1990 “Digital Image Warping,” google
  • [그림 1.] 매트릭스 패턴 영상
    매트릭스 패턴 영상
  • [그림 2.] 관심 영역 영상 추출 흐름도
    관심 영역 영상 추출 흐름도
  • [] 
  • [] 
  • [그림 3.] 각도 검출 연산 (a) 입력 매트릭스 패턴 영상, (b) 각도 검출 윈도우
    각도 검출 연산 (a) 입력 매트릭스 패턴 영상, (b) 각도 검출 윈도우
  • [] 
  • [] 
  • [] 
  • [그림 4.] 사상점 선택 결과 (a) 입력 패턴 영상의 관심영역, (b) 연산된 사상점
    사상점 선택 결과 (a) 입력 패턴 영상의 관심영역, (b) 연산된 사상점
  • [] 
  • [] 
  • [그림 5.] 관심영역 추출 연산 (a) 입력 패턴 영상, (b) 관심 영역
    관심영역 추출 연산 (a) 입력 패턴 영상, (b) 관심 영역
  • [그림 6.] 디바이스의 각도에 따른 시뮬레이션 결과 (a) 왜곡된 10° 패턴 영상, (b) 왜곡된 20° 패턴 영상, (c) 왜곡된 30° 패턴 영상, (d) 왜곡된 40° 패턴 영상, (e) (a)의 관심 영역 영상, (f) (b)의 관심 영역 영상, (g) (c)의 관심 영역 영상, (h) (d)의 관심 영역 영상
    디바이스의 각도에 따른 시뮬레이션 결과 (a) 왜곡된 10° 패턴 영상, (b) 왜곡된 20° 패턴 영상, (c) 왜곡된 30° 패턴 영상, (d) 왜곡된 40° 패턴 영상, (e) (a)의 관심 영역 영상, (f) (b)의 관심 영역 영상, (g) (c)의 관심 영역 영상, (h) (d)의 관심 영역 영상
  • [표 1.] 매트릭스 패턴 영상의 각도 검출 결과
    매트릭스 패턴 영상의 각도 검출 결과
  • [그림 7.] 제안하는 방법의 하드웨어 블록 다이어그램
    제안하는 방법의 하드웨어 블록 다이어그램
  • [표 2.] Xilinx* FPGA 구현 결과
    Xilinx* FPGA 구현 결과