Publications

Detailed Information

SIFT 기반 영상 인식을 위한 SOC 설계 : An SOC Design for SIFT-based Computer Vision

Cited 0 time in Web of Science Cited 0 time in Scopus
Authors

김응섭

Advisor
이혁재
Major
전기·컴퓨터공학부
Issue Date
2012-02
Publisher
서울대학교 대학원
Abstract
물체의 두드러지는 포인트인 keypoint와 그것 주변의 local patch에 대한 descriptor로써 이미지를 표현하는 local feature들 중에서, SIFT (Scale-Invariant Feature Transform)[1]가, 여러 가지 이미지 변형에서도 강인한 특성을 보이기 때문에, 널리 사용되고 있다. 하지만, SIFT는 많은 연산을 요구할 뿐만 아니라, 많은 양의 메모리가 필요하기 때문에, 실시간으로 구현하는데 어려움이 있다. Bonato[2]는 320x240 크기의 프레임 하나에 대한 SIFT 연산을 33ms에 수행하는 SoC를 FPGA를 통해 구현하였다. 하지만, 이 구현은 많은 메모리를 필요로 하는 문제점을 갖고 있다.
본 논문에서는, SIFT 알고리즘을 효율적으로 구현하기 위한 방법들을 제안한다. 이를 위해, 적은 비용으로 SIFT 하드웨어를 구현하는 방법과, 동영상에서 descriptor를 재사용 함으로써 연산량을 줄이는 방법을 제안한다.
첫 번째로, 적은 비용으로 SIFT 하드웨어를 구현하는 방법으로서, Parallel Gaussian filter bank, 블럭 단위 연산, Gaussian regeneration filter를 제안한다. 내부 메모리를 과다하게 사용하는 문제점을 개선하기 위해서, Parallel Gaussian filter bank를 적용한다. 이것으로 Gaussian filter bank에 사용되는 Line memory 수를 기존 연구에 비해 80% 이상을 감소시킨다. 또한, 입력 이미지를 나누어, 블럭 단위로 연산을 하도록 연산 순서를 변경하여, 내부 Line memory 대신에 블럭 memory를 사용하도록 함으로써 내부 메모리를 줄이는 방법을 제안한다. 또한, descriptor를 만들 때, 단일 scale의 Gaussian-blurred image를 저장하여 메모리를 줄이면서도, Gaussian regeneration filter를 통해 descriptor의 성능 저하를 막는 방법을 제안한다. 이 방법은 원래의 SIFT 알고리즘과 동일한 성능을 보이며, 기존 구현[2]에 비해 descriptor 성능을 15~28% 개선되는 것을 보인다.
두 번째로, 동영상에서 인접한 프레임간의 temporal correlation을 이용하여 SIFT 연산량을 줄이는 방법을 제안한다. 고정된 카메라에서 찍은 영상의 배경 부분에서는, 이전 프레임과 동일한 위치에 keypoint들이 검출될 확률이 높기 때문에, 이전 프레임에서 계산된 descriptor를 재사용 함으로써 연산량을 줄일 수 있다. 또한, 재사용으로 인한 descriptor의 오류를 방지하기 위해, dominant orientation을 구할 때 생성하는 orientation histogram의 변화율로부터, 재사용 오류가 큰 descriptor를 검출하여 재사용 시 발생할 수 있는 오류를 최소화 하는 방법을 제안한다. 또한, keypoint에 lifetime을 부여하여, lifetime이 다할 때까지 재사용 가능하게 함으로써, keypoint가 안정되게 검출되지 않은 경우에도 재사용율을 높일 수 있도록 확장된 descriptor 재사용 방법도 제안한다. 이 방법을 통해 원래 알고리즘으로 생성한 SIFT descriptor와의 차이를 거의 내지 않으면서도, 연산량을 줄일 수 있음을 보인다.
SIFT (Scale-Invariant Feature Transform) [1] is a widely used local feature algorithm, since it is robust enough for various image transformations including rotation and scaling. However, because of its excessive computations and memory requirements, SIFT is a difficult algorithm to implement. In this paper, several new methods are proposed to implement the SIFT algorithm more efficiently. To this end, methods for a low-cost SIFT hardware implementation, and ways to reduce the number of computations by reusing descriptors that had been already computed in the case of moving pictures are proposed.
First, parallel Gaussian filter bank adoption, block-by-block operations, and Gaussian regeneration filter are proposed for a low-cost SIFT hardware implementation. In order to avoid the excessive use of internal memory, a parallel Gaussian filter bank is used, which decreases the number of internal line memories by more than 80% of what the previous work uses [2]. Besides, partitioning an input image into fixed-sized blocks and changing the computation order to deal with a block as an operation unit further reduce the amount of internal memory, replacing the line memory with a block memory, the size of which is much lower than that of the line memory. In addition, the Gaussian regeneration filter prevents the quality of the descriptors from being degraded although it redueces the amount of memory by storing only a single scale Gaussian-blurred image.
Second, methods for reducing the number of computations to generate SIFT descriptors exploiting the temporal correlation between adjacent frames in moving pictures are proposed. For the background region in moving pictures captured by an immobile camera, it is likely that keypoints are detected at the same points as those of the previous frame; therefore, reusing the already computed descriptors for the previous frame decreases the number of computations for the current frame. In addtion, to suppress an error due to the reuse of a descriptor, a method to detect error-prone descriptors is proposed using the change rate of its orientation histogram, which is generated to find the dominant orientation.
In conclusion, this paper proposes the methods for a low-cost SIFT hardware implementation and the ways of reducing the number of computations in generating SIFT descriptors by reusing the already computed descriptors.
Language
kor
URI
https://hdl.handle.net/10371/156619

http://dcollection.snu.ac.kr:80/jsp/common/DcLoOrgPer.jsp?sItemId=000000001036
Files in This Item:
There are no files associated with this item.
Appears in Collections:

Altmetrics

Item View & Download Count

  • mendeley

Items in S-Space are protected by copyright, with all rights reserved, unless otherwise indicated.

Share