KR101713986B1 - 이동체 검출을 위한 광학흐름 추정 장치 및 방법 - Google Patents

이동체 검출을 위한 광학흐름 추정 장치 및 방법 Download PDF

Info

Publication number
KR101713986B1
KR101713986B1 KR1020160018408A KR20160018408A KR101713986B1 KR 101713986 B1 KR101713986 B1 KR 101713986B1 KR 1020160018408 A KR1020160018408 A KR 1020160018408A KR 20160018408 A KR20160018408 A KR 20160018408A KR 101713986 B1 KR101713986 B1 KR 101713986B1
Authority
KR
South Korea
Prior art keywords
unit
matrix
motion vector
convolution
calculating
Prior art date
Application number
KR1020160018408A
Other languages
English (en)
Inventor
정윤호
오병태
윤경한
정용철
조재찬
Original Assignee
한국항공대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국항공대학교산학협력단 filed Critical 한국항공대학교산학협력단
Priority to KR1020160018408A priority Critical patent/KR101713986B1/ko
Application granted granted Critical
Publication of KR101713986B1 publication Critical patent/KR101713986B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06K9/00791
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

본 발명은 차량이나 무인기의 충돌회피를 위한 광학흐름 추정 장치를 광역 최적화 기법을 이용하여 설계하면서도 복잡도나 전력소모 증가를 최소화함과 아울러 추정 성능을 향상시킬 수 있도록 한 이동체 검출을 위한 광학흐름 추정 장치 및 방법에 관한 것으로, 프레임 전체에 대한 에너지 범함수를 정의하고 이를 최소화하는 움직임 벡터를 연산하는 광역 최적화 알고리즘을 적용하면서도 그에 필요한 많은 연산량을 공유 구조를 이용한 컨볼루션 유닛(CU:Convolution Unit)과, 메모리 재사용 및 촐레스키 분해(cholesky factorization)를 적용한 해상도 처리 유닛(RPU:Resolution Process Unit)을 적용하여 하드웨어 복잡도를 낮추고 연산량을 줄여 전력소모량을 최소화하도록 함으로써 취득 영상 기준 95%의 검출률을 보이는 수준의 성능을 제공하면서도 복잡도나 전력소모량 증가를 최소화하여 FPGA 디바이스에서 SXGA급 해상도의 30 프레임 영상을 250MHz 동작 주파수로 실시간 처리가 가능할 정도로 최적화 한 효과가 있다.

Description

이동체 검출을 위한 광학흐름 추정 장치 및 방법{Optical flow estimator for moving object detection and method thereof}
본 발명은 이동체 검출을 위한 광학흐름 추정 장치 및 방법에 관한 것으로, 차량이나 무인기의 충돌회피를 위한 광학흐름 추정 장치를 광역 최적화 기법을 이용하여 설계하면서도 복잡도나 전력소모 증가를 최소화함과 아울러 추정 성능을 향상시킬 수 있도록 한 이동체 검출을 위한 광학흐름 추정 장치 및 방법에 관한 것이다.
최근 운전이 필요한 각종 환경에서 안전을 담보하기 위한 첨단 운전자 보조 시스템(ADAS; advanced driver assistance system)에 대한 연구 개발이 활발히 진행되고 있다. ADAS 시스템에 활용되는 기술으로는 BSD (blind spot detection), LCA (lane change assistance) 등이 있는데, 해당 기술들을 구현하기 위해서는 영상처리, 레이더 (radar), 라이다 (laser radar) 기법 등이 적용될 수 있다. 이 중 영상처리 기반 기술은 사용할 수 있는 알고리즘이 다양하며, 직관적이고 다른 기술에 비해 저렴하다는 장점이 있어 다양하게 응용되고 있다.
영상처리 기반 ADAS는 보편적으로 이동 객체 검출 (MOD; moving object detection) 기능을 수행하여 운전자를 보조하며, MOD에 활용되는 알고리즘으로는 대표적으로 FD (frame difference), GMM (Gaussiann mixture model) 기반 BS (background subtraction), 광학흐름추정 (OFE; optical flow estimation) 기법이 존재한다.
이 중에서 전통적인 객체 추정 알고리즘으로 사용되는 FD 방식은 입력 화면과 이전 화면의 픽셀 차이를 이용하여 객체를 검출하는 것으로, 가장 간단한 방식에 해당한다. 이전 화면과 입력 화면과의 차이를 이용하여 블럽을 객체로 통합하고 이전 객체의 움직임 벡터를 칼만 필터 등으로 파악하여 동일 객체의 움직임으로 파악하는 방법으로 사용하게 되는데, 그림자의 움직임이나 프레임 간 픽셀차이의 노이즈 등에 의해 오랜 시간 백그라운드 정보를 수집하여 백그라운드를 모델링하는 절차가 필요하여 고정된 카메라를 이용한 지능형 영상 보안에는 적합하지만, 관찰 카메라가 이동하는 상황에서는 적용하기가 어렵다.
이러한 백그라운드 모델링 방식을 개선한 것으로 각 화소의 분포를 다수의 가우시안 혼합 분포로 정의하여 영상이 입력됨에 따라 분포를 갱신함으로써 배경을 추정하고, 추정된 배경과 입력된 화면의 차이로 이동 객체를 검출하는 GMM 기반 BS 알고리즘이 있으나, 이 역시 고정 카메라 환경에서는 성능이 우수하지만 관찰 카메라가 이동하는 환경에서는 성능이 크게 낮아지는 한계가 있다.
따라서, 이동체에 구성되는 카메라를 이용하여 객체를 추정하는 방법으로 전통적인 고정 카메라 기반 객체 추정 알고리즘을 사용하기 어려우며, 이러한 문제를 해결하기 위해 각 화소의 움직임을 추적하여 화소이동의 크기로 이동 객체를 추정하는 광학흐름 추정 알고리즘이 사용되고 있다.
광학흐름 추정 알고리즘은 국소 지역의 움직임이 동일하다는 전제 하에 움직임 벡터(u, v)를 추정하는 국소 최적화(local optimization) 기반 알고리즘과 프레임 전체에 대한 에너지 범함수(energy functional)를 정의하고 이 에너지 범함수를 최소화하는 움직임 벡터(u, v)를 연산하는 광역 최적화(global optimization) 기반 알고리즘으로 분류되며, 이 두 기법이 발표된 이후 이를 보완한 다양한 알고리즘이 제안되고 있다.
이러한 두 가지 방식 중에서, 국소 최적화 기반 알고리즘은 비교적 적은 연산량이 요구되어 낮은 수준의 하드웨어로 구성할 수 있어 차량용 운전자 보조 시스템(ADAS)에 적용되고 있으며, 드론 등의 무인 비행체의 충돌 방지용 장치로 적용하기 위해 연구되고 있으나, 현실적으로 국소 지역의 움직임이 동일하지 않은 상황이 빈번하기 때문에 성능에 한계가 있어 운전에 직접적 영향을 주는 운전 보조용으로 적용하기에는 신뢰성이 낮다.
따라서, 좀 더 높은 성능을 제공하는 광역 최적화 기반 알고리즘을 적용한 광학흐름 추정 알고리즘을 통해 이동체를 검출하는 것이 바람직하지만, 연산이 복잡하여 하드웨어 복잡도가 증가하며 전력소모가 크다는 점 때문에 구현이 쉽지 않은 문제가 있다.
하지만, 실질적으로 운전을 보조할 수 있을 정도의 신뢰성을 제공하기 위해서는 광역 최적화 기반 광학흐름 추정 알고리즘을 적용해야 한다는 점은 논란의 여지가 없으므로, 이러한 광역 최적화 기반 광학흐름 추정 알고리즘을 적용하면서도 하드웨어 복잡도나 전력소모 증가를 최소화함과 아울러 광역 최적화 기법의 특성 중 하나인 에너지 범함수가 국소 최소값에 이르는 문제를 수정하여 추정 성능을 향상시킬 수 있는 새로운 광학흐름 추정 장치 및 방법이 필요한 실정이다.
한국 등록 특허 제10-1464489호 [영상 인식 기반의 차량 접근 장애물 감지 방법 및 시스템]
전술한 문제점을 개선하기 위한 본 발명 실시예들의 목적은 차량이나 무인기 등의 이동체에서 외부의 이동 객체를 검출하기 위한 광학흐름 추정 장치로서 비교적 구현이 용이하나 성능이 낮은 국소 최적화 기반 알고리즘(1981년 발표된 Lucas-Kanade 알고리즘을 기반으로 하는 다양한 개선 알고리즘:선행 기술)을 적용하는 대신 프레임 전체에 대한 에너지 범함수를 정의하고 이를 최소화하는 움직임 벡터를 연산하는 광역 최적화 알고리즘을 적용하면서도 그에 필요한 많은 연산량을 공유 구조를 이용한 컨볼루션 유닛(CU:Convolution Unit)과, 메모리 재사용 및 촐레스키 분해(cholesky factorization)를 적용한 해상도 처리 유닛(RPU:Resolution Process Unit)을 적용하여 하드웨어 복잡도를 낮추고 연산량을 줄여 전력소모량을 최소화하도록 함으로써 성능을 개선하면서도 복잡도나 전력소모량 증가를 최소화하도록 한 이동체 검출을 위한 광학흐름 추정 장치 및 방법을 제공하는 것이다.
본 발명 실시예들의 다른 목적은 해상도 처리 유닛의 이전 연산값을 이용하여 프레임 전체의 리사이즈 비율을 변경하면서 연산을 반복하는 피라미드 알고리즘을 적용하여 에너지 범함수가 국소 최소값에 빠지는 오류를 줄임으로써 성능을 개선하도록 한 이동체 검출을 위한 광학흐름 추정 장치 및 방법을 제공하는 것이다.
본 발명 실시예들의 또 다른 목적은 움직임 벡터를 구하는 연산 수행 시 필요한 역행렬 연산의 메모리 접근회수 증가를 줄이기 위해 시프트 레지스터 뱅크를 적용하며 이를 통해서 메모리 접근회수를 극단적으로 줄일 수 있도록 한 이동체 검출을 위한 광학흐름 추정 장치 및 방법을 제공하는 것이다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 이동체 검출을 위한 광학흐름 추정 장치는 입력 프레임에 대한 변화도(gradient) 계수를 연산하기 위한 컨볼루션 유닛부(CU:Convolution Unit)와; 컨볼루션 유닛부의 연산값을 통해 선형 분해를 수행하여 오일러-라그랑주 방정식이 적용된 에너지 범함수의 움직임 벡터값을 산출하는 해상도 처리 유닛부(RPU:Resolution Process Unit)를 포함하되, 컨볼루션 유닛부는 가우시안 평활화부, 이미지 크기 변환부, 변화도 연산부 및 왜곡부와 이들의 연산이 공유 처리되는 컨볼루션 유닛을 포함하고, 해상도 처리 유닛부는 오일러-라그랑주 방정식이 적용된 에너지 범함수를 최소화하는 움직임 벡터를 산출하기 위한 L-매트릭스 연산부를 포함하며, 해당 L-매트릭스 연산부는 역행렬 연산에 촐레스키 분해를 적용하고, 메모리 접근을 줄이기 위해 복수의 쉬프트 레지스터들로 구성되는 레지스터 뱅크를 포함하여 구성된다.
컨볼루션 유닛부에 제공할 입력 프레임을 일시 저장하는 프레임 버퍼부를 포함할 수 있다.
컨볼루션 유닛부에서 연산된 이미지 변화도를 저장하는 변화도 메모리부를 포함할 수 있다.
해상도 처리 유닛부에서 산출되는 움직임 벡터값(u, v) 을 저장하는 움직임 벡터 메모리부를 더 포함할 수 있다. 여기서, 컨볼루션 유닛부는 해상도 처리 유닛부에서 연산한 움직임 벡터값을 이용하여 입력 이미지 프레임을 축소 및 왜곡하며, 상기 움직임 벡터 메모리부는 복수의 왜곡된 이미지에 대해 해상도 처리 유닛부에서 추정한 움직임 벡터값을 누적하여 전체 화소의 움직임 벡터를 생성하여 출력할 수 있다.
컨볼루션 유닛부는 가우시안 평활화부 및 변화도 연산부의 콘볼루션 연산을 위해 덧셈 및 뺄셈 연산을 수행한 후 곱셈연산을 수행하는 좌우 대칭형 필터를 포함하는 컨볼루션 유닛을 포함할 수 있다.
해상도 처리 유닛부는
Figure 112016015711680-pat00001
와 같은 에너지 범함수 연산을 위해서
Figure 112016015711680-pat00002
항 연산부,
Figure 112016015711680-pat00003
항 연산부, 상기 각 항의 연산 결과를 통해 오일러-라그랑주 방정식의 해를 구하기 위한 행렬값을 산출하는 A/b 연산부, 상기 A/b 연산부의 출력인 행렬 A와 b를 연산하여 오일러-라그랑주 방정식의 해를 구하는 L-매트릭스 연산부와 전진/후진 대입부(Forward/Backward Substituter)를 포함할 수 있다.
해상도 처리 유닛부는
Figure 112016015711680-pat00004
항 연산부를 위한 움직임 벡터의 편미분 메모리와 전진/후진 대입부를 위한 L메모리 및 산출 결과 메모리를 포함할 수 있다.
Figure 112016015711680-pat00005
항 연산부는 반복되는 연산을 처리하는 공유부를 포함할 수 있다.
A/b 연산부는 전체 화소 수가 wh일 때 2wh × 2wh의 크기를 가지는 A행렬의 값을 연산하는 부분과 b벡터 값을 연산하는 부분을 포함하고, A행렬의 값을 연산하는 부분은 유사한 식을 연산하기 위한 공유부를 포함하며, A행렬이 에르미트 양의 정부호(Hermitian positive-definite) 행렬이 되도록 한다.
L-매트릭스 연산부는 A행렬이 에르미트 양의 정부호 조건을 만족함에 따라 촐레스키 분해에 따른 식을 통해 행렬식의 해를 구하도록 구성될 수 있다.
여기서, L-매트릭스 연산부는 순차적인 길이를 가지는 복수의 시프트 레지스터로 이루어진 시프트 레지스터 뱅크를 포함하는 것이 바람직하다.
본 발명의 다른 실시예에 따른 이동체 검출을 위한 광학흐름 추정 장치는 가우시안 평활화부, 이미지 크기 변환부, 변화도 연산부 및 왜곡부와 이들의 연산이 공유 처리되는 컨볼루션 유닛을 포함하여 피라미드 알고리즘에 따라 크기와 왜곡도가 가변되는 입력 프레임에 대한 변화도 계수를 연산하는 컨볼루션 유닛부와; 컨볼루션 유닛부의 연산값을 통해 선형 분해를 수행하여 오일러-라그랑주 방정식이 적용된 에너지 범함수의 움직임 벡터값을 산출하는 해상도 처리 유닛부; 상기 해상도 처리 유닛부에서 산출되는 움직임 벡터값(u, v) 을 저장하는 움직임 벡터 메모리부를 더 포함하되, 상기 컨볼루션 유닛부의 컨볼루션 유닛은 가우시안 평활화부 및 변화도 연산부의 콘볼루션 연산을 위해 덧셈 및 뺄셈 연산을 수행한 후 곱셈연산을 수행하는 좌우 대칭형 필터를 포함하고, 상기 해상도 처리 유닛부는 오일러-라그랑주 방정식이 적용된 에너지 범함수를 최소화하는 움직임 벡터를 산출하기 위한 L-매트릭스 연산부를 포함하며, 해당 L-매트릭스 연산부는 역행렬 연산에 촐레스키 분해를 적용하고, 메모리 접근을 줄이기 위해 복수의 쉬프트 레지스터들로 구성되는 레지스터 뱅크를 포함하여 구성되며, 상기 컨볼루션 유닛부는 해상도 처리 유닛부에서 연산한 움직임 벡터값을 이용하여 입력 이미지 프레임을 축소 및 왜곡하고, 상기 움직임 벡터 메모리부는 복수의 왜곡된 이미지에 대해 해상도 처리 유닛부에서 추정한 움직임 벡터값을 누적하여 전체 화소의 움직임 벡터를 생성하여 출력한다.
피라미드 알고리즘에 따른 입력 이미지 프레임의 축소 및 왜곡과 그에 따른 움직임 벡터값 추정 및 누적은 두 번 수행할 수 있다.
컨볼루션 유닛부에 제공할 입력 프레임을 일시 저장하는 프레임 버퍼부를 포함할 수 있다.
컨볼루션 유닛부에서 연산된 이미지 변화도를 저장하는 변화도 메모리부를 포함할 수 있다.
해상도 처리 유닛부는
Figure 112016015711680-pat00006
와 같은 에너지 범함수 연산을 위해서
Figure 112016015711680-pat00007
항 연산부,
Figure 112016015711680-pat00008
항 연산부, 상기 각 항의 연산 결과를 통해 오일러-라그랑주 방정식의 해를 구하기 위한 행렬값을 산출하는 A/b 연산부, 상기 A/b 연산부의 출력인 행렬 A와 b를 연산하여 오일러-라그랑주 방정식의 해를 구하는 L-매트릭스 연산부와 전진/후진 대입부를 포함할 수 있다.
해상도 처리 유닛부는
Figure 112016015711680-pat00009
항 연산부를 위한 움직임 벡터의 편미분 메모리와 전진/후진 대입부를 위한 L메모리 및 산출 결과 메모리를 포함할 수 있다.
Figure 112016015711680-pat00010
항 연산부는 반복되는 연산을 처리하는 공유부를 포함할 수 있다.
A/b 연산부는 전체 화소 수가 wh일 때 2wh × 2wh의 크기를 가지는 A행렬의 값을 연산하는 부분과 b벡터 값을 연산하는 부분을 포함하며, A행렬의 값을 연산하는 부분은 유사한 식을 연산하기 위한 공유부를 포함하며, A행렬이 에르미트 양의 정부호(Hermitian positive-definite) 행렬이 되도록 할 수 있다.
L-매트릭스 연산부는 A행렬이 에르미트 양의 정부호 조건을 만족함에 따라 촐레스키 분해에 따른 식을 통해 행렬식의 해를 구하도록 구성될 수 있다.
여기서, L-매트릭스 연산부는 순차적인 길이를 가지는 복수의 레지스터로 이루어진 시프트 레지스터 뱅크를 포함하는 것이 바람직하다.
본 발명의 또 다른 실시예에 따른 이동체 검출을 위한 광학흐름 추정 방법은 입력 프레임의 움직임 벡터를 추적하는 광학흐름 추정기를 이용하는 것으로서, 입력 프레임에 대한 변화도 계수를 연산하는 컨볼루션 연산 단계; 컨볼루션 연산 단계를 통해 연산된 변화도를 이용하여 오일러-라그랑주 방정식이 적용된 에너지 범함수의 움직임 벡터값을 산출하는 해상도 처리 단계를 포함하며, 상기 해상도 처리 단계는 오일러-라그랑주 방정식이 적용된 에너지 범함수를 최소화하는 움직임 벡터를 산출하기 위한 L-매트릭스 연산 단계를 포함하며, L-매트릭스 연산 단계는 역행렬 연산에 촐레스키 분해를 적용하고, 메모리 접근을 줄이기 위해 복수의 쉬프트 레지스터들로 구성되는 레지스터 뱅크를 통해 연산을 수행하는 단계를 포함한다.
컨볼루션 연산 단계는 입력 프레임을 가우시안 평활화, 이미지 크기 변환, 변화도 연산 및 왜곡을 수행하며, 이러한 과정을 연산 공유를 위한 컨볼루션 유닛을 통해 공유 방식으로 수행할 수 있다.
컨볼루션 연산 단계는 입력 프레임을 버퍼링하고 입력 프레임을 설정된 크기로 축소하고 왜곡한 프레임에 대한 변화도를 연산하고, 상기 해상도 처리 단계를 통해 움직임 벡터를 추정한 후 추정된 움직임 벡터를 이용하여 컨볼루션 연산 단계를 재수행하며, 추정된 움직임 벡터를 누적하여 전체 화소의 움직임 벡터를 추정하는 프라미드 알고리즘 적용 단계를 더 포함할 수 있다.
컨볼루션 연산 단계는 덧셈 및 뺄셈 연산을 수행한 후 곱셈연산을 수행하는 좌우 대칭형 필터를 포함하는 컨볼루션 유닛을 공유하여 가우시안 평활화 및 변화도 연산의 콘볼루션 연산을 수행할 수 있다.
해상도 처리 단계는
Figure 112016015711680-pat00011
와 같은 에너지 범함수 연산을 위해서
Figure 112016015711680-pat00012
항 연산과
Figure 112016015711680-pat00013
항 연산을 수행하는 단계, 상기 각 항의 연산 결과를 통해 오일러-라그랑주 방정식의 해를 구하기 위한 행렬값을 산출하는 A/b 연산을 수행하는 단계, 상기 A/b 연산 수행 결과인 행렬 A와 벡터 b를 연산하여 오일러-라그랑주 방정식의 해를 구하는 L-매트릭스 연산 및 전진/후진 대입 단계를 포함할 수 있다.
해상도 처리 단계는
Figure 112016015711680-pat00014
항 연산부를 위한 움직임 벡터의 편미분 메모리와 전진/후진 대입부를 위한 L메모리 및 산출 결과 메모리를 포함한다.
Figure 112016015711680-pat00015
항 연산을 수행하는 단계는 공유부를 통해 반복되는 연산을 처리할 수 있다.
A/b 연산 단계는 전체 화소 수가 wh일 때 2wh × 2wh의 크기를 가지는 A행렬의 값을 연산하는 과정과 b벡터 값을 연산하는 과정을 포함하며, A행렬의 값을 연산할 경우 유사한 식을 연산하기 위한 공유부를 통해 연산을 수행하며, A행렬이 에르미트 양의 정부호 행렬이 되도록 한다.
L-매트릭스 연산 단계는 A행렬이 에르미트 양의 정부호 조건을 만족함에 따라 촐레스키 분해에 따른 식을 통해 행렬식의 해를 구한다.
L-매트릭스 연산 단계는 순차적인 길이를 가지는 복수의 시프트 레지스터로 이루어진 시프트 레지스터 뱅크를 이용하여 연산을 수행할 수 있다.
본 발명 실시예에 따른 이동체 검출을 위한 광학흐름 추정 장치 및 방법은 프레임 전체에 대한 에너지 범함수를 정의하고 이를 최소화하는 움직임 벡터를 연산하는 광역 최적화 알고리즘을 적용하면서도 그에 필요한 많은 연산량을 공유 구조를 이용한 컨볼루션 유닛(CU:Convolution Unit)과, 메모리 재사용 및 촐레스키 분해(cholesky factorization)를 적용한 해상도 처리 유닛(RPU:Resolution Process Unit)을 적용하여 하드웨어 복잡도를 낮추고 연산량을 줄여 전력소모량을 최소화하도록 함으로써 취득 영상 기준 95%의 검출률을 보이는 수준의 성능을 제공하면서도 복잡도나 전력소모량 증가를 최소화하여 FPGA 디바이스에서 SXGA급 해상도의 30 프레임 영상을 250MHz 동작 주파수로 실시간 처리가 가능할 정도로 최적화 한 효과가 있다.
본 발명 실시예에 따른 이동체 검출을 위한 광학흐름 추정 장치 및 방법은 해상도 처리 유닛의 이전 연산값을 이용하여 프레임 전체의 리사이즈 비율을 변경하면서 연산을 반복하는 피라미드 알고리즘을 적용하여 에너지 범함수가 국소 최소값에 빠지는 오류를 줄임으로써 성능을 개선하는 효과가 있다.
본 발명 실시예에 따른 이동체 검출을 위한 광학흐름 추정 장치 및 방법은 움직임 벡터를 구하는 연산 수행 시 필요한 역행렬 연산의 메모리 접근회수 증가를 줄이기 위해 시프트 레지스터 뱅크를 적용하며 이를 통해서 메모리 접근회수를 97% 이상 줄이는 효과가 있다.
도 1은 본 발명의 실시예에 따른 광학흐름 추정기의 블록도.
도 2는 본 발명의 실시예에 따른 컨볼루션 유닛의 구성도.
도 3은 본 발명의 실시예에 따른 해상도 처리 유닛부의 구성도.
도 4는 본 발명의 실시예에 따른 E_Data 연산부 구성도.
도 5는 본 발명의 실시예에 따른 E_Smooth 연산부 구성도.
도 6은 본 발명의 실시예에 따른 A/b 연산부 구성도.
도 7은 본 발명의 실시예에 따른 L-매트릭스 연산부 구성도.
도 8은 본 발명의 실시예에 따른 광학흐름 추정기의 이동 객체 검출 결과 예시.
상기한 바와 같은 본 발명을 첨부된 도면들과 실시예들을 통해 상세히 설명하도록 한다.
본 발명에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 발명에서 사용되는 기술적 용어는 본 발명에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 발명에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
또한, 본 발명에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 발명에서, "구성된다" 또는 "포함한다" 등의 용어는 발명에 기재된 여러 구성 요소들, 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 발명에서 사용되는 제 1, 제 2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성 요소는 제 2 구성 요소로 명명될 수 있고, 유사하게 제 2 구성 요소도 제 1 구성 요소로 명명될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.
도 1은 본 발명의 실시예에 따른 광학흐름 추정기의 블록도로서, 도시된 바와 같이 입력 프레임에 대한 변화도(gradient) 계수를 연산하기 위한 컨볼루션 유닛부(CU:Convolution Unit)(100)와, 컨볼루션 유닛부(100)의 연산값을 통해 선형 분해를 수행하여 오일러-라그랑주(Euler-Lagrange) 방정식이 적용된 에너지 범함수(Energy Functional)의 움직임 벡터값을 산출하는 해상도 처리 유닛부(RPU:Resolution Process Unit)(300)를 포함한다.
이러한 컨볼루션 유닛부(100)는 가우시안 평활화부(120), 이미지 크기 변환부(130), 변화도 연산부(140) 및 왜곡부(150)와 이들의 연산이 공유 처리되는 컨볼루션 유닛(110)을 포함한다.
또한, 컨볼루션 유닛부(100)에 제공할 입력 프레임을 일시 저장하는 프레임 버퍼부(50)와 해당 프레임 버퍼부(50)에 새로운 이미지 프레임을 제공하거나 기 저장된 이미지 프레임을 다시 제공하도록 제어하는 프레임 버퍼 제어부(55)를 포함한다.
그리고, 컨볼루션 유닛부(100)에서 연산된 이미지 변화도를 저장하는 변화도 메모리부(200)와, 해상도 처리 유닛부(300)에서 산출되는 움직임 벡터값(u, v)을 누적 저장하는 움직임 벡터 메모리부(410, 420)를 포함한다.
이러한 본 발명의 실시예에 따른 광학흐름 추정기(10)는 차량이나 무인기 등의 이동체에서 외부의 이동 객체를 검출하기 위한 광학흐름 추정 장치로서 비교적 구현이 용이하나 성능이 낮은 국소 최적화 기반 알고리즘을 적용하는 대신 프레임 전체에 대한 에너지 범함수를 정의하고 이를 최소화하는 움직임 벡터를 연산하는 광역 최적화(Global Optimization) 알고리즘을 적용한 것이다. 이렇게 프레임의 모든 픽셀을 대상으로 함에 따라 연산량이 증가하고 필요한 메모리 접근이 빈번하며, 전력소모가 큰 광역 최적화 알고리즘을 이용하면서도 본 발명의 실시예에서는 복잡도를 낮추고, 메모리 접근을 극단적으로 줄일 수 있도록 하여 전력소모를 줄일 수 있도록 한다.
이를 위해서, 본 발명의 실시예에서는 컨볼루션 유닛(100)과 해상도 처리 유닛(300)에 대응하여 원하는 해를 구하기 위한 수식을 가급적이면 반복적인 연산 항목이 나열되도록 전개한다. 이렇게 반복적 연산 항목은 공유 구조로 구현하여 연산부를 줄인다.
또한, 본 발명의 실시예에서는 실질적으로 에너지 범함수의 최소값을 만족하는 움직임 벡터를 구하기 위해서 오일러-라그랑주 방정식이 적용된 에너지 범함수의 연산을 위해 산출되는 행렬이 에르미트 양의 정부호(Hermitian positive-definite)를 만족하도록 하여 행렬 연산 방식 중에서 연산 처리량이 일정하고 실시간 하드웨어 설계와 구현이 용이한 촐레스키 분해(cholesky factorization)를 적용할 수 있도록 하며, 해당 행렬 연산을 구현함에 있어 이미지 행렬의 과도한 크기에 의한 메모리 접근을 시프트레지스터 뱅크의 적용을 통해 극단적으로 줄인다.
도 1에 도시된 실시예의 구성 및 해당 각 구성 요소의 세부 구조를 설계하기 위한 수학적 접근 과정을 먼저 설명한다. 이러한 설명을 통해서 광역 최적화 방식을 이용하면서도 비선형성을 줄이고 연산량을 줄일 수 있는 방향으로 전개되는 수학적 접근 방식을 알 수 있을 것이다.
먼저, 광학흐름 추정은 입력되는 영상 프레임의 각 화소 명암 값이 이동한 다음 화면에서도 같은 값을 가진다는 것을 전제로 한다. 다음의 수학식 1은 이러한 항상성을 나타내는 것이다.
Figure 112016015711680-pat00016
수학식 1에 적용된 전제만으로는 작은 밝기 변화에서 정확한 광학흐름 추정이 용이하지 않으므로 수학식 1에 편미분을 적용한 다음의 수학식 2를 이용한다.
Figure 112016015711680-pat00017
여기서 ▽는 편미분 연산자
Figure 112016015711680-pat00018
이다.
일반적으로 근접한 화소는 유사한 움직임을 가진다. 벡터의 평탄성을 의미하는 이 개념(항상성 변화도)은 근접한 화소의 움직임이 동일하다는 의미이며, 다음의 수학식 3과 같이 표현된다.
Figure 112016015711680-pat00019
광역 최적화 알고리즘은 프레임 전체에 대한 에너지 범함수를 정의하고 이를 최소화하는 움직임 벡터(u,v)를 연산하는 과정이다.
다음의 수학식 4는 광역 최적화 기반 광학흐름 추정 알고리즘의 기본적인 에너지 범함수를 나타낸다(이는 브록스 알고리즘(Brox algorithm)으로 알려져 있다).
Figure 112016015711680-pat00020
여기서, 에너지 범함수를 정의하는 E_Data 항과 E_Smooth항은 다음과 같이 정의된다.
Figure 112016015711680-pat00021
Figure 112016015711680-pat00022
여기서,
Figure 112016015711680-pat00023
는 제곱항의 영향을 상쇄하기 위해 도입되었으며, ε의 값은 일반적으로 10-3과 같이 작은 값을 사용한다. χ와 ω는
Figure 112016015711680-pat00024
이고,
Figure 112016015711680-pat00025
Figure 112016015711680-pat00026
는 가중치를 의미한다. E_Data항은 수학식 1의 항상성과 수학식 2의 항상성 변화도의 합으로 구성되며, E_Smooth는 평탄성값으로 구성된다. 에너지 범함수 E(u,v)가 최소값을 가질 때의 움직임 벡터(u,v)값이 수학식 4의 해가 된다.
이러한 에너지 범함수(수학식 4)를 만족시키는 움직임 벡터(u,v)를 찾기 위해서 오일러-라그랑주 방정식이 적용된다. 다음의 수학식 7과 8은 수학식 4에 오일러-라그랑주 방정식을 적용한 결과를 보인 것이다.
Figure 112016015711680-pat00027
Figure 112016015711680-pat00028
여기서, Ix, Iy, Iz, Ixx, Ixy, Iyy, Ixz 그리고 Iyz는 다음의 수학식 9와 같다.
Figure 112016015711680-pat00029
이렇게 수학식 7 및 8에 나타낸 오일러-라그랑주 방정식은 움직임 벡터(u,v)에 대해 높은 비선형성을 가진다.
본 발명의 실시예에서는 이를 선형화 하기 위해
Figure 112016015711680-pat00030
이고,
Figure 112016015711680-pat00031
라 하여 수학식 10 및 11을 전개한다.
Figure 112016015711680-pat00032
Figure 112016015711680-pat00033
여기서,
Figure 112016015711680-pat00034
이고, 미지수 벡터
Figure 112016015711680-pat00035
를 구하고, 수학식 10과 11에서 남아있는 비선형성을 소거하기 위해 미분 계수에 테일러 확장을 수행한다.
Figure 112016015711680-pat00036
미분 계수를 테일러 확장으로 전개한 수학식 12와
Figure 112016015711680-pat00037
을 수학식 10과 11에 대입하면 다음의 수학식 13 및 14를 얻을 수 있다.
Figure 112016015711680-pat00038
Figure 112016015711680-pat00039
여기서
Figure 112016015711680-pat00040
는 수학식 15 및 16과 같이 전개된다.
Figure 112016015711680-pat00041
Figure 112016015711680-pat00042
수학식 13과 14를 행렬 형태로 변환하면 수학식 17과 같이 변환된다.
Figure 112016015711680-pat00043
이렇게 구한 수학식 17을 한 프레임 내 전체 픽셀에 대해 행렬 형태로 변환하여 에너지 범함수를 만족시키는 움직임 벡터(u,v)를 찾기 위한 연산을 진행한다. 해당 변환을 통해서 전체 화소수가 wh일 때 2wh×2wh의 크기를 가지는 행렬을 A, du, dv로 구성된 벡터를 x, 그리고 수학식 17의 오른쪽 항으로 표기된 벡터를 b라 한다면 Ax=b 형태의 행렬식이 생성된다.
이와 같이 생성된 행렬식의 해를 구하기 위한 방법으로 다양한 방법들이 있지만, 위 수학식의 전개를 통해 얻는 행렬 A는 에르미트 양의 정부호(Hermitian positive-definite) 조건을 만족하기 때문에 연산 처리량이 일정하여 실시간 하드웨어 설계 및 구현이 용이한 촐레스키 분해(Cholesky factorization)를 이용하여 해를 찾는다. 다음의 수학식 18 및 19는 촐레스키 분해의 연산과정을 나타낸 것이다.
Figure 112016015711680-pat00044
Figure 112016015711680-pat00045
이렇게 수학식을 통해 전개한 바와 같이, 도 1을 통해 나타낸 본 발명의 실시예에 따른 해상도 처리 유닛부(300)는 촐레스키 분해를 통해서 오일러-라그랑주 방정식이 적용된 에너지 범함수의 비선형성을 제거하고 움직임 벡터값(u,v)을 추정한다.
한편, 광역 최적화를 이용하는 광학흐름 추정 알고리즘은 한 프레임에서 한 화소 이상의 움직임 벡터(u,v)를 추적하는 과정에서 에너지 범함수가 국소 최저치에 빠질 수 있기 때문에 입력 프레임 이미지의 크기를 줄이고 왜곡하여 움직임 벡터를 반복 추정하는 피라미드 알고리즘을 적용하는 것이 바람직하다. 예를 들어, 입력 프레임 이미지를 1/2n 크기로 축소하여 움직임 벡터(u,v)를 추정한 후 추정한 움직임 벡터(u,v)로 1/2n-1 크기로 축소한 이미지를 왜곡하여 이미지의 차이를 줄인다. 이를 반복하여 추정한 움직임 벡터(u,v)를 누적함으로써 전체 화소의 움직임 벡터(u,v)를 추정한다.
도 1의 컨볼루션 유닛부(100)는 입력 프레임에서 변화도를 연산하여 이를 해상도 처리 유닛(300)으로 제공하는데, 피라미드 알고리즘 적용을 위해 입력되는 프레임의 가우시안 크기 변화를 위한 가우시안 평활화부(120) 및 이미지 크기 변환부(130)와 변화도 연산부(140) 및 왜곡부(150)를 포함한다.
해상도 처리 유닛부(300)에서 산출되는 움직임 벡터값(u, v)은 움직임 벡터 메모리부(410, 420)에 저장되며, 해당 산출된 움직임 벡터(u, v)는 컨볼루션 유닛부(100)에 제공되어 다음의 축소 이미지 왜곡에 사용된다. 이러한 과정이 복수회 수행되어 누적된 움직임 벡터로 전체 화소의 움직임 벡터를 추정한다. 도시된 실시예에서, 실시간 광학흐름 추정을 위해 두 번째 피라미드까지 이용하여 움직임 벡터를 누적 추정하며, 이러한 사용 피라미드 숫자는 필요에 따라 증가시킬 수 있다.
도 1에 도시된 바와 같이 컨볼루션 유닛부(100)에 포함된 가우시안 평활화부(120), 이미지 크기 변환부(130), 변화도 연산부(140) 및 왜곡부(150)는 컨볼루션 유닛(110)을 공유하여 연산을 수행한다. 이러한 연산들은 파이프라이닝이 불가능하기 때문에 컨볼루션 유닛(110)을 공유하도록 하여 필요한 연산기의 수를 줄일 수 있다.
도 2는 본 발명의 실시예에 따른 컨볼루션 유닛(110)의 구성도를 보인 것이다. 가우시안 평활화부(120) 및 변화도 연산부(140)의 경우 컨볼루션 연산을 수행하며, 각각의 연산에 사용되는 필터는 좌우 대칭 형태이기 때문에 곱셈 연산 이전에 덧셈 및 뺄셈 연산을 수행하여 곱셈기의 수를 줄일 수 있다. 또한, 이미지 크기 변환부(130)와 왜곡부(150) 역시 컨볼루션 유닛(110)을 공유하여 연산을 수행한다.
본 발명의 실시예와 같은 컨볼루션 유닛(110) 공유 구조를 적용함으로써 단순히 수학식을 그대로 구현한 경우에 비해 곱셈기를 8개, 덧셈기를 13개 줄일 수 있다.
도 3은 본 발명의 실시예에 따른 해상도 처리 유닛부(300)의 구조를 보인 것으로, 도시된 바와 같이 컨볼루션 유닛부(300)의 연산값을 통해 선형 분해를 수행하여 오일러-라그랑주 방정식이 적용된 에너지 범함수의 이동 벡터값을 산출한다.
도시된 바와 같이, 에너지 범함수 연산을 위해서
Figure 112016015711680-pat00046
항 연산부(310),
Figure 112016015711680-pat00047
항 연산부(320), 상기 각 항의 연산 결과를 통해 오일러-라그랑주 방정식의 해를 구하기 위한 행렬값을 산출하는 A/b 연산부(330), 상기 A/b 연산부의 출력인 행렬 A와 벡터 b를 연산하여 오일러-라그랑주 방정식의 해를 구하는 L-매트릭스 연산부(340)와 전진/후진 대입부(Forward/Backward Substituter)(350)를 포함한다.
또한,
Figure 112016015711680-pat00048
항 연산부(320)를 위한 이동 벡터의 편미분 메모리와, 전진/후진 대입부(350)를 위한 L메모리 및 z, du, dv(산출 결과) 메모리를 포함하는 메모리부(360)를 포함한다.
이러한 해상도 처리 유닛부(300)의 구성부를 도 4 내지 도 7을 참조하여 좀 더 구체적으로 살펴본다.
도 4는 본 발명의 실시예에 따른
Figure 112016015711680-pat00049
항 연산부(310) 구성도로서, 앞서 수학식 15로 표현된
Figure 112016015711680-pat00050
을 구현한 것이다. 도시된 바와 같이 공유부(311)와 제어부(312)를 포함한다. 수학식 15는 항목 (I1+I2du+I3dv)2형태가 반복되기 때문에 해당 항목을 연산하는 공유부(311)를 구성하여 6개의 곱셈기와 6개의 덧셈기를 줄인다.
도 5는 본 발명의 실시예에 따른
Figure 112016015711680-pat00051
항 연산부(320) 구성도로서, 도시된 바와 같이
Figure 112016015711680-pat00052
항 연산부(320)는
Figure 112016015711680-pat00053
항의 u파트 연산부(321)를 포함하며, 메모리부(360) 중 편미분 메모리(361)를 이용한다.
Figure 112016015711680-pat00054
항 연산부(320)는 수학식 16으로 표현된
Figure 112016015711680-pat00055
값을 나타내기 위해 u+du, v+du의 편미분을 x,y축으로 진행한다. (u, v)를 각각 x,y축으로 편미분한 값을 ux, uy, vx, vy의 메모리는 각각의 값에 연산이 적용된 ux·pd, uy·pd, vx·pd, vy·pd값을 다시 저장하여 메모리 요구량을 576kbit 에서 388kbit 로 줄이며 4개의 곱셈기, 4개의 덧셈기를 줄인다.
도 6은 본 발명의 실시예에 따른 A/b 연산부(330)를 보인 것이다.
도시된 바와 같이 공유부(332)를 포함하여 A행렬의 값을 연산하는 A파트 연산부(331)와 b벡터의 값을 구하는 공유 구조의 b파트 연산부(335)를 포함한다.
A행렬의 경우 이미지의 전체 화소 수가 wh일 때 2wh × 2wh의 크기를 가진다.
A 행렬의 값을 연산하는 A파트 연산부(331)는 수학식 17에 나타낸 A행렬의
Figure 112016015711680-pat00056
를 나타내는 a1,1
Figure 112016015711680-pat00057
를 나타내는 a2,2가 유사한 형태이기 때문에 공유부(332)를 구성한다. 또한, a1,2와a2,1은 실질적으로 동일한 값이기 때문에 하나의 연산기 만을 사용한다. 이를 통해 얻어지는 A행렬은 에르미트 양의 정부호(Hermitian positive-definite) 행렬이 되도록 한다. 즉, 모든 고윳값이 양수가 되도록 한다. 이 경우 행렬 A에 대해 수학식 19와 같은 하삼각행렬(L)이 유일하게 존재하며 이러한 분해를 촐레스키 분해라 한다.
b파트 연산부(335)는 b벡터를 구성하는 b1, b2의 형태가 유사하므로 공유 구조로 구성한다.
이러한 구성을 이용함으로써 A/b 연산부(330)는 단순 수학식을 그대로 구현한 경우에 비해서 14개의 곱셈기, 9개의 덧셈기를 줄일 수 있다.
도 7은 본 발명의 실시예에 따른 L-매트릭스 연산부(340) 구성도를 보인 것으로, A/b 연산부(330)에서 생성한 A행렬 및 b벡터의 값을 사용하여 움직임 벡터(u,v)를 구하는 연산을 수행한다. 이 과정에서 역행렬 연산은 A행렬이 에르미트 양의 정부호 조건을 만족함에 따라 촐레스키 분해에 따른 식(수학식 19 및 20)을 이용한다.
한편, A 행렬은 이미지의 전체 화소 수가 wh일 때 2wh × 2wh의 크기를 가지며, 이 경우 메모리 접근 회수가 과도하게 증가한다(예를 들어, 기존 구성의 경우 197.74M cycle).
본 발명의 실시예에서는 이러한 메모리 접근 횟수를 줄이기 위해서 도 7에 도시된 바와 같이 순차적인 길이를 가지는 복수의 시프트 레지스터(341)로 이루어진 시프트 레지스터 뱅크를 구성한다. 이를 통해서 메모리에 대한 접근을 최소화하면서 행렬 연산이 가능하도록 한다.
결국, 촐리스키 분해와 시프트레지스터 뱅크의 도입에 의해 구성을 간소화하면서 메모리 접근 회수를 크게 줄일 수 있도록 한 것이다.
L-매트릭스 연산부(340)의 연산 결과를 이용하는 전진/후진 대입부(350)는 수신되는 L을 사용하여 z값을 구하는 전진 대입 과정과, 연산된 z값과 L*값으로 x값을 구하는 후진 대입 과정을 수행한다.
전진/후진 대입부(350)의 전진 대입 과정에서 촐레스키 분해의 A=LL* 연산은 Lz=b 연산과 동일한 순서의 값을 요구하기 때문에 동시에 진행된다. 생성된 L값은 메모리부(360)의 L 메모리에, z값은 z 메모리에 저장된다. 후진 대입 과정은 시프트 레지스터 뱅크에 포함된 곱셈기를 공유하여 사용할 수 있다.
이와 같이 L-매트릭스 연산부(340)에 시프트 레지스터 뱅크를 도입한 후 전체 메모리 접근 회수는 4.45M cycles으로 도입 이전에 비해 97.75% 감소한다.
전술한 본 발명의 실시예에 따른 광학흐름 추정기는 에너지 범함수를 연산하는 과정에서 유사한 수식이 반복되도록 한 후 각 블록에서 공유구조를 적용함으로써 하드웨어 복잡도를 낮추고, Ax=b의 역행렬 연산에서 촐레스키 분해를 도입하고 시프트 레지스터 뱅크를 적용하여 메모리 접근량을 획기적으로 감소시켰다.
다음의 표 1은 기존 구조와 본 발명의 실시예에 따른 구조에 대한 연산기, 메모리 및 메모리 접근량을 비교한 것이다.
Figure 112016015711680-pat00058
이와 같이 본 발명의 실시예에 따른 광학흐름 추정기는 기존 구성에 비해 복잡도를 크게 낮춤과 아울러 메모리 요구량과 메모리 접근량을 낮추어 크기, 비용 및 전력 소모를 최소화한다.
본 발명의 실시예에 따른 광학흐름 추정기를 Verilog-HDL을 이용하여 설계한 후 예를 들어 자일링스(Xilinx) 기반 Vertex7 FPGA 에서 구현한 결과 다음의 표 2와 같이 총 40.4K개의 로직 슬라이스와 155개의 DSP48, 11,290Kbit의 블록 메모리로 구현할 수 있었고, 이를 통해서 SXGA급 해상도(1280x1024)의 30fps 영상에 대해서 250MHz 동작 주파수로 실시간 이동객체 추적이 가능하였다.
Figure 112016015711680-pat00059
도 8은 본 발명의 실시예에 따른 광학흐름 추정기의 이동 객체 검출 결과 예시로서, 차량 환경에서 이동 객체를 검출한 경우의 예를 보인 것이다. 본 발명의 실시예에 따라 설계한 예시적 장치를 이용하여 취득한 13,727 프레임 중에서 13,021 프레임에서 이동 객체를 검출할 수 있었다. 따라서, 예시적으로 취득한 차량 기반 영상 기준으로 약 95% 이상의 이동 객체 검출 성공률을 보인다.
이상에서는 본 발명에 따른 바람직한 실시예들에 대하여 도시하고 또한 설명하였다. 그러나 본 발명은 상술한 실시예에 한정되지 아니하며, 특허 청구의 범위에서 첨부하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능할 것이다.
10: 광학흐름 추정 장치 50: 프레임 버퍼부
55: 프레임 버퍼 제어부 100: 컨볼루션 유닛부
110: 컨볼루션 유닛 120: 가우시안 평활화부
130: 이비지 크기 변환부 140: 변화도 연산부
150: 왜곡부 200: 변화도 메모리부
300: 해상도 연산 유닛부 410, 420: 움직임 벡터 메모리부

Claims (32)

  1. 입력 프레임에 대한 변화도(gradient) 계수를 연산하기 위한 컨볼루션 유닛부(CU:Convolution Unit)와;
    컨볼루션 유닛부의 연산값을 통해 선형 분해를 수행하여 오일러-라그랑주 방정식이 적용된 에너지 범함수의 움직임 벡터값을 산출하는 해상도 처리 유닛부(RPU:Resolution Process Unit)를 포함하되,
    컨볼루션 유닛부는 가우시안 평활화부, 이미지 크기 변환부, 변화도 연산부 및 왜곡부와 이들의 연산이 공유 처리되는 컨볼루션 유닛을 포함하고,
    해상도 처리 유닛부는 오일러-라그랑주 방정식이 적용된 에너지 범함수를 최소화하는 움직임 벡터를 산출하기 위한 L-매트릭스 연산부를 포함하며, 해당 L-매트릭스 연산부는 역행렬 연산에 촐레스키 분해를 적용하고, 메모리 접근을 줄이기 위해 복수의 쉬프트 레지스터들로 구성되는 레지스터 뱅크를 포함하여 구성되는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  2. 청구항 1에 있어서, 상기 컨볼루션 유닛부에 제공할 입력 프레임을 일시 저장하는 프레임 버퍼부를 더 포함하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  3. 청구항 1에 있어서, 상기 컨볼루션 유닛부에서 연산된 이미지 변화도를 저장하는 변화도 메모리부를 더 포함하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  4. 청구항 1에 있어서, 상기 해상도 처리 유닛부에서 산출되는 움직임 벡터값(u, v) 을 저장하는 움직임 벡터 메모리부를 더 포함하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  5. 청구항 4에 있어서, 상기 컨볼루션 유닛부는 해상도 처리 유닛부에서 연산한 움직임 벡터값을 이용하여 입력 이미지 프레임을 축소 및 왜곡하며, 상기 움직임 벡터 메모리부는 복수의 왜곡된 이미지에 대해 해상도 처리 유닛부에서 추정한 움직임 벡터값을 누적하여 전체 화소의 움직임 벡터를 생성하여 출력하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  6. 청구항 1에 있어서, 상기 컨볼루션 유닛부는 가우시안 평활화부 및 변화도 연산부의 콘볼루션 연산을 위해 덧셈 및 뺄셈 연산을 수행한 후 곱셈연산을 수행하는 좌우 대칭형 필터를 포함하는 컨볼루션 유닛을 포함하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  7. 청구항 1에 있어서, 상기 해상도 처리 유닛부는
    Figure 112016015711680-pat00060
    와 같은 에너지 범함수 연산을 위해서
    Figure 112016015711680-pat00061
    항 연산부,
    Figure 112016015711680-pat00062
    항 연산부, 상기 각 항의 연산 결과를 통해 오일러-라그랑주 방정식의 해를 구하기 위한 행렬값을 산출하는 A/b 연산부, 상기 A/b 연산부의 출력인 행렬 A와 b를 연산하여 오일러-라그랑주 방정식의 해를 구하는 L-매트릭스 연산부와 전진/후진 대입부(Forward/Backward Substituter)를 포함하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  8. 청구항 7에 있어서, 상기 해상도 처리 유닛부는
    Figure 112016015711680-pat00063
    항 연산부를 위한 움직임 벡터의 편미분 메모리와 전진/후진 대입부를 위한 L메모리 및 산출 결과 메모리를 포함하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  9. 청구항 7에 있어서,
    Figure 112016015711680-pat00064
    항 연산부는 반복되는 연산을 처리하는 공유부를 포함하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  10. 청구항 7에 있어서, A/b 연산부는 전체 화소 수가 wh일 때 2wh × 2wh의 크기를 가지는 A행렬의 값을 연산하는 부분과 b벡터 값을 연산하는 부분을 포함하며, A행렬의 값을 연산하는 부분은 유사한 식을 연산하기 위한 공유부를 포함하고, A행렬이 에르미트 양의 정부호(Hermitian positive-definite) 행렬이 되도록 하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  11. 청구항 10에 있어서, L-매트릭스 연산부는 A행렬이 에르미트 양의 정부호 조건을 만족함에 따라 촐레스키 분해에 따른 식을 통해 행렬식의 해를 구하도록 구성되는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  12. 청구항 11에 있어서, L-매트릭스 연산부는 순차적인 길이를 가지는 복수의 시프트 레지스터로 이루어진 시프트 레지스터 뱅크를 포함하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  13. 가우시안 평활화부, 이미지 크기 변환부, 변화도 연산부 및 왜곡부와 이들의 연산이 공유 처리되는 컨볼루션 유닛을 포함하여 피라미드 알고리즘에 따라 크기와 왜곡도가 가변되는 입력 프레임에 대한 변화도 계수를 연산하는 컨볼루션 유닛부와;
    컨볼루션 유닛부의 연산값을 통해 선형 분해를 수행하여 오일러-라그랑주 방정식이 적용된 에너지 범함수의 움직임 벡터값을 산출하는 해상도 처리 유닛부;
    상기 해상도 처리 유닛부에서 산출되는 움직임 벡터값(u, v) 을 저장하는 움직임 벡터 메모리부를 더 포함하되,
    상기 컨볼루션 유닛부의 컨볼루션 유닛은 가우시안 평활화부 및 변화도 연산부의 콘볼루션 연산을 위해 덧셈 및 뺄셈 연산을 수행한 후 곱셈연산을 수행하는 좌우 대칭형 필터를 포함하고,
    상기 해상도 처리 유닛부는 오일러-라그랑주 방정식이 적용된 에너지 범함수를 최소화하는 움직임 벡터를 산출하기 위한 L-매트릭스 연산부를 포함하며, 해당 L-매트릭스 연산부는 역행렬 연산에 촐레스키 분해를 적용하고, 메모리 접근을 줄이기 위해 복수의 쉬프트 레지스터들로 구성되는 레지스터 뱅크를 포함하여 구성되며,
    상기 컨볼루션 유닛부는 해상도 처리 유닛부에서 연산한 움직임 벡터값을 이용하여 입력 이미지 프레임을 축소 및 왜곡하고, 상기 움직임 벡터 메모리부는 복수의 왜곡된 이미지에 대해 해상도 처리 유닛부에서 추정한 움직임 벡터값을 누적하여 전체 화소의 움직임 벡터를 생성하여 출력하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  14. 청구항 13에 있어서, 상기 피라미드 알고리즘에 따른 입력 이미지 프레임의 축소 및 왜곡과 그에 따른 움직임 벡터값 추정 및 누적은 두 번 수행하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  15. 청구항 13에 있어서, 상기 컨볼루션 유닛부에 제공할 입력 프레임을 일시 저장하는 프레임 버퍼부를 더 포함하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  16. 청구항 13에 있어서, 상기 컨볼루션 유닛부에서 연산된 이미지 변화도를 저장하는 변화도 메모리부를 더 포함하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  17. 청구항 13에 있어서, 상기 해상도 처리 유닛부는
    Figure 112016015711680-pat00065
    와 같은 에너지 범함수 연산을 위해서
    Figure 112016015711680-pat00066
    항 연산부,
    Figure 112016015711680-pat00067
    항 연산부, 상기 각 항의 연산 결과를 통해 오일러-라그랑주 방정식의 해를 구하기 위한 행렬값을 산출하는 A/b 연산부, 상기 A/b 연산부의 출력인 행렬 A와 b를 연산하여 오일러-라그랑주 방정식의 해를 구하는 L-매트릭스 연산부와 전진/후진 대입부를 포함하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  18. 청구항 17에 있어서, 상기 해상도 처리 유닛부는
    Figure 112016015711680-pat00068
    항 연산부를 위한 움직임 벡터의 편미분 메모리와 전진/후진 대입부를 위한 L메모리 및 산출 결과 메모리를 포함하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  19. 청구항 17에 있어서,
    Figure 112016015711680-pat00069
    항 연산부는 반복되는 연산을 처리하는 공유부를 포함하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  20. 청구항 17에 있어서, A/b 연산부는 전체 화소 수가 wh일 때 2wh × 2wh의 크기를 가지는 A행렬의 값을 연산하는 부분과 b벡터 값을 연산하는 부분을 포함하며, A행렬의 값을 연산하는 부분은 유사한 식을 연산하기 위한 공유부를 포함하고, A행렬이 에르미트 양의 정부호 행렬이 되도록 하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  21. 청구항 20에 있어서, L-매트릭스 연산부는 A행렬이 에르미트 양의 정부호 조건을 만족함에 따라 촐레스키 분해에 따른 식을 통해 행렬식의 해를 구하도록 구성되는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  22. 청구항 21에 있어서, L-매트릭스 연산부는 순차적인 길이를 가지는 복수의 시프트 레지스터로 이루어진 시프트 레지스터 뱅크를 포함하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 장치.
  23. 입력 프레임의 움직임 벡터를 추적하는 광학흐름 추정기를 이용하는 것으로서,
    입력 프레임에 대한 변화도 계수를 연산하는 컨볼루션 연산 단계;
    컨볼루션 연산 단계를 통해 연산된 변화도를 이용하여 오일러-라그랑주 방정식이 적용된 에너지 범함수의 움직임 벡터값을 산출하는 해상도 처리 단계를 포함하며,
    상기 해상도 처리 단계는 오일러-라그랑주 방정식이 적용된 에너지 범함수를 최소화하는 움직임 벡터를 산출하기 위한 L-매트릭스 연산 단계를 포함하며, L-매트릭스 연산 단계는 역행렬 연산에 촐레스키 분해를 적용하고, 메모리 접근을 줄이기 위해 복수의 쉬프트 레지스터들로 구성되는 레지스터 뱅크를 통해 연산을 수행하는 단계를 포함하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 방법.
  24. 청구항 23에 있어서, 상기 컨볼루션 연산 단계는 입력 프레임을 가우시안 평활화, 이미지 크기 변환, 변화도 연산 및 왜곡을 수행하며, 이러한 과정을 연산 공유를 위한 컨볼루션 유닛을 통해 공유 방식으로 수행하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 방법.
  25. 청구항 23에 있어서, 상기 컨볼루션 연산 단계는 입력 프레임을 버퍼링하고 입력 프레임을 설정된 크기로 축소하고 왜곡한 프레임에 대한 변화도를 연산하고, 상기 해상도 처리 단계를 통해 움직임 벡터를 추정한 후 추정된 움직임 벡터를 이용하여 컨볼루션 연산 단계를 재수행하며, 추정된 움직임 벡터를 누적하여 전체 화소의 움직임 벡터를 추정하는 프라미드 알고리즘 적용 단계를 더 포함하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 방법.
  26. 청구항 23에 있어서, 상기 컨볼루션 연산 단계는 덧셈 및 뺄셈 연산을 수행한 후 곱셈연산을 수행하는 좌우 대칭형 필터를 포함하는 컨볼루션 유닛을 공유하여 가우시안 평활화 및 변화도 연산의 콘볼루션 연산을 수행하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 방법.
  27. 청구항 23에 있어서, 상기 해상도 처리 단계는
    Figure 112016015711680-pat00070
    와 같은 에너지 범함수 연산을 위해서
    Figure 112016015711680-pat00071
    항 연산과
    Figure 112016015711680-pat00072
    항 연산을 수행하는 단계, 상기 각 항의 연산 결과를 통해 오일러-라그랑주 방정식의 해를 구하기 위한 행렬값을 산출하는 A/b 연산을 수행하는 단계, 상기 A/b 연산 수행 결과인 행렬 A와 벡터 b를 연산하여 오일러-라그랑주 방정식의 해를 구하는 L-매트릭스 연산 및 전진/후진 대입 단계를 포함하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 방법.
  28. 청구항 27에 있어서, 상기 해상도 처리 단계는
    Figure 112016015711680-pat00073
    항 연산부를 위한 움직임 벡터의 편미분 메모리와 전진/후진 대입부를 위한 L메모리 및 산출 결과 메모리를 이용하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 방법.
  29. 청구항 27에 있어서,
    Figure 112016015711680-pat00074
    항 연산을 수행하는 단계는 공유부를 통해 반복되는 연산을 처리하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 방법.
  30. 청구항 27에 있어서, A/b 연산 단계는 전체 화소 수가 wh일 때 2wh × 2wh의 크기를 가지는 A행렬의 값을 연산하는 과정과 b벡터 값을 연산하는 과정을 포함하며, A행렬의 값을 연산할 경우 유사한 식을 연산하기 위한 공유부를 통해 연산을 수행하고, A행렬이 에르미트 양의 정부호 행렬이 되도록 하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 방법.
  31. 청구항 30에 있어서, L-매트릭스 연산 단계는 A행렬이 에르미트 양의 정부호 조건을 만족함에 따라 촐레스키 분해에 따른 식을 통해 행렬식의 해를 구하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 방법.
  32. 청구항 31에 있어서, L-매트릭스 연산 단계는 순차적인 길이를 가지는 복수의 시프트 레지스터로 이루어진 시프트 레지스터 뱅크를 이용하여 연산을 수행하는 것을 특징으로 하는 이동체 검출을 위한 광학흐름 추정 방법.
KR1020160018408A 2016-02-17 2016-02-17 이동체 검출을 위한 광학흐름 추정 장치 및 방법 KR101713986B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160018408A KR101713986B1 (ko) 2016-02-17 2016-02-17 이동체 검출을 위한 광학흐름 추정 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160018408A KR101713986B1 (ko) 2016-02-17 2016-02-17 이동체 검출을 위한 광학흐름 추정 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101713986B1 true KR101713986B1 (ko) 2017-03-08

Family

ID=58404128

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160018408A KR101713986B1 (ko) 2016-02-17 2016-02-17 이동체 검출을 위한 광학흐름 추정 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101713986B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111275746A (zh) * 2020-01-19 2020-06-12 浙江大学 一种基于fpga的稠密光流计算系统及方法
CN113610900A (zh) * 2021-10-11 2021-11-05 深圳佑驾创新科技有限公司 车尾序列尺度变化预测方法、装置和计算机设备
CN116486107A (zh) * 2023-06-21 2023-07-25 南昌航空大学 一种光流计算方法、系统、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101464489B1 (ko) 2013-05-24 2014-11-25 모본주식회사 영상 인식 기반의 차량 접근 장애물 감지 방법 및 시스템
KR20140137548A (ko) * 2013-05-23 2014-12-03 한국과학기술원 선형 판별 분석을 이용하여 복잡도를 줄인 특징 추출 방법 및 그 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140137548A (ko) * 2013-05-23 2014-12-03 한국과학기술원 선형 판별 분석을 이용하여 복잡도를 줄인 특징 추출 방법 및 그 시스템
KR101464489B1 (ko) 2013-05-24 2014-11-25 모본주식회사 영상 인식 기반의 차량 접근 장애물 감지 방법 및 시스템

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"A VLSI Architecture and Algorithm for Lucas-Kanade-Based Optical Flow Computation" Venkataraman Mahalingam, IEEE TVLSI. 2010.
Agrawal. Formulation of Euler-Lagrange equations for fractional variational problems. Journal of Mathematical Analysis and Applications, Vol. 272, No. 1, 2002년, pp. 368-379. *
Brox et al. High accuracy optical flow estimation based on a theory for warping. ECCV, 2004년, pp. 25-36. *
김종대 외 2명. 광학 흐름 추정을 위한 새로운 비선형 방법, 한국통신학회논문지, 2001년 4월, 제26권 4호, pp. 463-470. *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111275746A (zh) * 2020-01-19 2020-06-12 浙江大学 一种基于fpga的稠密光流计算系统及方法
CN111275746B (zh) * 2020-01-19 2023-05-23 浙江大学 一种基于fpga的稠密光流计算系统及方法
CN113610900A (zh) * 2021-10-11 2021-11-05 深圳佑驾创新科技有限公司 车尾序列尺度变化预测方法、装置和计算机设备
CN116486107A (zh) * 2023-06-21 2023-07-25 南昌航空大学 一种光流计算方法、系统、设备及介质
CN116486107B (zh) * 2023-06-21 2023-09-05 南昌航空大学 一种光流计算方法、系统、设备及介质

Similar Documents

Publication Publication Date Title
Jiang et al. An FPGA implementation for real-time edge detection
Dérian et al. Wavelets and optical flow motion estimation
Liu et al. A general motion model and spatio-temporal filters for computing optical flow
Kühne et al. Fast implicit active contour models
KR101713986B1 (ko) 이동체 검출을 위한 광학흐름 추정 장치 및 방법
Xu et al. A fast algorithm for cosine transform based tensor singular value decomposition
CN111275746B (zh) 一种基于fpga的稠密光流计算系统及方法
Villalpando et al. FPGA implementation of stereo disparity with high throughput for mobility applications
KR102340125B1 (ko) 드론 정지 비행을 위한 영상 기반 특징점 추적 장치 및 그 방법
Wei et al. A fast and accurate tensor-based optical flow algorithm implemented in FPGA
Nguyen et al. The FPGA implementation of a one-bit-per-pixel image registration algorithm
Kryjak et al. Real-time implementation of foreground object detection from a moving camera using the vibe algorithm
Takeda et al. Spatiotemporal video upscaling using motion-assisted steering kernel (mask) regression
Simoncelli et al. Computing optical flow distributions using spatio-temporal filters
Xiao et al. Research on uav multi-obstacle detection algorithm based on stereo vision
Micheli The centroid method for imaging through turbulence
Takeda et al. Locally adaptive kernel regression for space-time super-resolution
Johnson A high throughput fully parallel-pipelined FPGA accelerator for dense cloud motion analysis
Masrani et al. Expanding disparity range in an FPGA stereo system while keeping resource utilization low
Blachut et al. Hardware implementation of multi-scale Lucas-Kanade optical flow computation algorithm—A demo
Kalyan et al. Architectural implementation of high speed optical flow computation based on Lucas-Kanade algorithm
Hahn et al. Fast algorithms for p-elastica energy with the application to image inpainting and curve reconstruction
Belyakov et al. An FPGA-optimized architecture of variational optical flow
Camargo et al. Performance evaluation of optimization methods for super-resolution mosaicking on UAS surveillance videos
Asif et al. AGV guidance system: An application of simple active contour for visual tracking

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200221

Year of fee payment: 4