KR20210051707A - Apparatus for tracking feature point based on image for drone hovering and method thereof - Google Patents

Apparatus for tracking feature point based on image for drone hovering and method thereof Download PDF

Info

Publication number
KR20210051707A
KR20210051707A KR1020190137314A KR20190137314A KR20210051707A KR 20210051707 A KR20210051707 A KR 20210051707A KR 1020190137314 A KR1020190137314 A KR 1020190137314A KR 20190137314 A KR20190137314 A KR 20190137314A KR 20210051707 A KR20210051707 A KR 20210051707A
Authority
KR
South Korea
Prior art keywords
feature point
image
point tracking
output
unit
Prior art date
Application number
KR1020190137314A
Other languages
Korean (ko)
Other versions
KR102340125B1 (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 KR1020190137314A priority Critical patent/KR102340125B1/en
Publication of KR20210051707A publication Critical patent/KR20210051707A/en
Application granted granted Critical
Publication of KR102340125B1 publication Critical patent/KR102340125B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64DEQUIPMENT FOR FITTING IN OR TO AIRCRAFT; FLIGHT SUITS; PARACHUTES; ARRANGEMENT OR MOUNTING OF POWER PLANTS OR PROPULSION TRANSMISSIONS IN AIRCRAFT
    • B64D47/00Equipment not otherwise provided for
    • B64D47/08Arrangements of cameras
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/04Control of altitude or depth
    • G05D1/042Control of altitude or depth specially adapted for aircraft
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20024Filtering details

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Multimedia (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Image Analysis (AREA)

Abstract

The present invention discloses an apparatus for tracking a feature point based on an image for drone hovering and a method thereof. That is, the apparatus detects a plurality of feature points based on a plurality of continuous images acquired from a drone and performs tracking of the detected feature points for the continuous images, thereby reducing complexity through simplification without degradation of performance. The apparatus includes a frame buffer, a control unit, a first mux, a Hessian matrix calculation unit, a feature point detection unit, a second mux, and a feature point tracking unit.

Description

드론 정지 비행을 위한 영상 기반 특징점 추적 장치 및 그 방법{Apparatus for tracking feature point based on image for drone hovering and method thereof}BACKGROUND OF THE INVENTION 1. Apparatus for tracking feature point based on image for drone hovering and method thereof

본 발명은 드론 정지 비행을 위한 영상 기반 특징점 추적 장치 및 그 방법에 관한 것으로서, 특히 드론으로부터 획득된 연속된 복수의 영상을 근거로 복수의 특징점을 검출하고, 연속된 영상에 대해 검출된 특징점에 대한 추적을 수행하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치 및 그 방법에 관한 것이다.The present invention relates to an image-based feature point tracking apparatus and method for stationary flight of a drone, in particular, detecting a plurality of feature points based on a plurality of consecutive images acquired from a drone, and The present invention relates to an image-based feature point tracking apparatus and method for a drone stationary flight that performs tracking.

최근 드론은 군사용 외에 산업용, 학술용, 레저용 등 다양한 분야에서 활용되며 그 수요가 급증하고 있다.Recently, drones are used in various fields such as industrial, academic, leisure, etc. besides military use, and their demand is increasing rapidly.

상기 드론은 분야별로 목적에 따라 다양한 환경에 활용될 수 있는데, 드론을 실외에서 사용할 경우 위성 항법 장치(Global Positioning System: GPS)를 활용하여 정확한 호버링(hovering)이 가능하다.The drone can be used in various environments depending on the purpose of each field. When the drone is used outdoors, accurate hovering is possible by using a global positioning system (GPS).

하지만, 실내에서 사용할 경우, GPS 신호의 수신이 어렵고, 실내 구조물에 의한 장애물이 많아 안정적인 비행에 어려움이 존재한다.However, when used indoors, it is difficult to receive GPS signals, and there are many obstacles caused by indoor structures, so there is difficulty in stable flight.

따라서, 실내에서 드론을 제어할 경우, 여러 동작의 안정성과 실험자 및 기체의 안전을 위해 자체적인 정지 비행 기술이 필요하다.Therefore, when controlling a drone indoors, its own stationary flight technology is required for the stability of various operations and the safety of the experimenter and the aircraft.

한국등록특허 제10-1303124호 [제목: 특징점 기술자에 의한 객체 추적장치 및 방법, 그리고 에러 특징점 제거장치 및 방법]Korean Patent Registration No. 10-1303124 [Title: Object tracking device and method by feature point descriptor, and error feature point removal device and method]

본 발명의 목적은 드론으로부터 획득된 연속된 복수의 영상을 근거로 복수의 특징점을 검출하고, 연속된 영상에 대해 검출된 특징점에 대한 추적을 수행하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치 및 그 방법을 제공하는 데 있다.It is an object of the present invention to detect a plurality of feature points based on a plurality of consecutive images acquired from a drone, and an image-based feature point tracking device for stopping flight of a drone that performs tracking on the detected feature points for the continuous images, and the like. There is a way to provide

본 발명의 다른 목적은 특징점 검출과 특징점 추적 알고리즘에 공통으로 사용되는 연산 기능을 공유하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치 및 그 방법을 제공하는 데 있다.Another object of the present invention is to provide an image-based feature point tracking apparatus and method for a drone stationary flight that shares a common computation function for feature point detection and feature point tracking algorithms.

본 발명의 또 다른 목적은 모션 벡터 값을 구하는 과정에서 연산 특성을 고려한 효율적인 나눗셈기를 제공하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치 및 그 방법을 제공하는 데 있다.Another object of the present invention is to provide an image-based feature point tracking apparatus and method for a drone stationary flight that provides an efficient divider in consideration of computational characteristics in a process of obtaining a motion vector value.

본 발명의 실시예에 따른 드론 정지 비행을 위한 영상 기반 특징점 추적 장치는 드론으로부터 획득되는 연속된 복수의 이미지를 임시 저장하는 프레임 버퍼; 상기 프레임 버퍼를 포함하는 영상 기반 특징점 추적 장치의 동작 모드를 특징점 검출 모드 또는 특징점 추적 모드로 설정하는 제어부; 상기 프레임 버퍼로부터 제공되는 연속된 복수의 이미지 중에서 첫 번째 이미지를 출력하는 제 1 먹스; 상기 제 1 먹스로부터 출력되는 첫 번째 이미지 또는 특징점 추적부로부터 출력되는 보간된 첫 번째 이미지로부터 특징점 검출 과정과 특징점 추적 과정에서의 동일한 행렬의 원소를 계산하는 헤시안 행렬 연산부(Hessian-matrix calculation unit); 상기 첫 번째 이미지로부터 복수의 특징점을 검출하는 특징점 검출부; 상기 프레임 버퍼로부터 제공되는 연속된 복수의 이미지 중에서 현재 시점의 이미지를 출력하는 제 2 먹스; 및 상기 연속된 복수의 이미지에 포함된 이전 이미지 및 현재 이미지에 대해 특징점을 추적하여 모션 벡터를 산출하는 상기 특징점 추적부를 포함할 수 있다.An image-based feature point tracking apparatus for a still flight of a drone according to an embodiment of the present invention includes: a frame buffer temporarily storing a plurality of consecutive images acquired from a drone; A control unit for setting an operation mode of the image-based feature point tracking device including the frame buffer to a feature point detection mode or a feature point tracking mode; A first mux outputting a first image from among a plurality of consecutive images provided from the frame buffer; A Hessian-matrix calculation unit that calculates elements of the same matrix in a feature point detection process and a feature point tracking process from the first image output from the first mux or the interpolated first image output from the feature point tracking unit ; A feature point detector for detecting a plurality of feature points from the first image; A second mux outputting an image of a current viewpoint from among a plurality of consecutive images provided from the frame buffer; And the feature point tracking unit for calculating a motion vector by tracking feature points for a previous image and a current image included in the plurality of consecutive images.

본 발명의 실시예에 따른 드론 정지 비행을 위한 영상 기반 특징점 추적 방법은 프레임 버퍼에 의해, 드론으로부터 획득되는 연속된 복수의 이미지를 임시 저장하는 단계; 제어부에 의해, 상기 제어부를 포함하는 영상 기반 특징점 추적 장치의 동작 모드를 특징점 검출 모드로 설정하는 단계; 제 1 먹스에 의해, 상기 프레임 버퍼로부터 제공되는 연속된 복수의 이미지 중에서 첫 번째 이미지를 출력하는 단계; 헤시안 행렬 연산부에 의해, 상기 제 1 먹스로부터 출력되는 첫 번째 이미지 또는 특징점 추적부로부터 출력되는 보간된 첫 번째 이미지로부터 특징점 검출 과정과 특징점 추적 과정에서의 동일한 행렬의 원소를 계산하는 단계; 특징점 검출부에 의해, 상기 첫 번째 이미지로부터 복수의 특징점을 검출하는 단계; 상기 제어부에 의해, 상기 영상 기반 특징점 추적 장치의 동작 모드를 특징점 검출 모드에서 특징점 추적 모드로 변환하는 단계; 제 2 먹스에 의해, 상기 프레임 버퍼로부터 제공되는 연속된 복수의 이미지 중에서 현재 시점의 이미지를 출력하는 단계; 및 상기 특징점 추적부에 의해, 상기 연속된 복수의 이미지에 포함된 이전 이미지 및 현재 이미지에 대해 특징점을 추적하여 모션 벡터를 산출하는 단계를 포함할 수 있다.An image-based feature point tracking method for a still flight of a drone according to an embodiment of the present invention includes the steps of temporarily storing a plurality of consecutive images acquired from a drone by a frame buffer; Setting, by a control unit, an operation mode of the image-based feature point tracking device including the control unit as a feature point detection mode; Outputting, by a first mux, a first image from among a plurality of consecutive images provided from the frame buffer; Calculating, by a Hessian matrix operator, an element of the same matrix in a feature point detection process and a feature point tracking process from a first image output from the first mux or an interpolated first image output from a feature point tracking unit; Detecting, by a feature point detection unit, a plurality of feature points from the first image; Converting, by the control unit, an operation mode of the image-based feature point tracking device from a feature point detection mode to a feature point tracking mode; Outputting, by a second mux, an image of a current viewpoint from among a plurality of consecutive images provided from the frame buffer; And calculating, by the feature point tracking unit, a motion vector by tracking feature points for a previous image and a current image included in the continuous plurality of images.

본 발명의 실시예에 따른 드론 정지 비행을 위한 영상 기반 특징점 추적 장치는 미리 설정된 개수 단위의 연속된 복수의 이미지 중에서 첫 번째 이미지를 출력하는 제 1 먹스; 상기 제 1 먹스로부터 출력되는 첫 번째 이미지 또는 특징점 추적부로부터 출력되는 보간된 첫 번째 이미지로부터 특징점 검출 과정과 특징점 추적 과정에서의 동일한 행렬의 원소를 계산하는 헤시안 행렬 연산부; 상기 첫 번째 이미지로부터 복수의 특징점을 검출하는 특징점 검출부; 상기 연속된 복수의 이미지 중에서 현재 시점의 이미지를 출력하는 제 2 먹스; 및 상기 연속된 복수의 이미지에 포함된 이전 이미지 및 현재 이미지에 대해 특징점을 추적하여 모션 벡터를 산출하는 상기 특징점 추적부를 포함할 수 있다.An image-based feature point tracking apparatus for a stop flight of a drone according to an embodiment of the present invention includes: a first mux for outputting a first image among a plurality of consecutive images of a predetermined number unit; A Hessian matrix calculator for calculating elements of the same matrix in a feature point detection process and a feature point tracking process from the first image output from the first mux or the interpolated first image output from the feature point tracking unit; A feature point detector for detecting a plurality of feature points from the first image; A second mux for outputting an image of a current viewpoint from among the plurality of consecutive images; And the feature point tracking unit for calculating a motion vector by tracking feature points for a previous image and a current image included in the plurality of consecutive images.

본 발명은 드론으로부터 획득된 연속된 복수의 영상을 근거로 복수의 특징점을 검출하고, 연속된 영상에 대해 검출된 특징점에 대한 추적을 수행함으로써, 성능 저하가 없으면서도 간소화를 통해 복잡도를 줄일 수 있는 효과가 있다.The present invention detects a plurality of feature points based on a plurality of consecutive images acquired from a drone, and performs tracking of the detected feature points on the continuous images, thereby reducing complexity through simplification without degrading performance. It works.

또한, 본 발명은 특징점 검출과 특징점 추적 알고리즘에 공통으로 사용되는 연산 기능을 공유함으로써, 저전력 및 저면적으로도 우수한 추적 성능 지원이 가능할 수 있는 효과가 있다.In addition, the present invention has an effect that it is possible to support excellent tracking performance even in low power and low area by sharing a calculation function commonly used in the feature point detection and feature point tracking algorithm.

또한, 본 발명은 모션 벡터 값을 구하는 과정에서 연산 특성을 고려한 효율적인 나눗셈기를 제공함으로써, 기존의 나눗셈기 대신 연산량을 줄여 효율적인 시스템 운영이 가능한 효과가 있다.In addition, the present invention provides an efficient divider in consideration of computational characteristics in the process of obtaining a motion vector value, thereby reducing the amount of computation instead of the conventional divider, thereby enabling efficient system operation.

도 1 및 도 2는 본 발명의 실시예에 따른 드론 정지 비행을 위한 영상 기반 특징점 추적 장치의 구성을 나타낸 블록도이다.
도 3은 본 발명의 실시예에 따른 PLK 알고리즘의 예를 나타낸 도이다.
도 4는 본 발명의 실시예에 따른 가우시안 필터의 구성을 나타낸 블록도이다.
도 5는 본 발명의 실시예에 따른 영역 확인부의 구성을 나타낸 블록도이다.
도 6은 본 발명의 실시예에 따른 보간부의 구성을 나타낸 블록도이다.
도 7은 본 발명의 실시예에 따른 윈도우 영역 추출기의 구성을 나타낸 블록도이다.
도 8은 본 발명의 실시예에 따른 보간 계산기의 구성을 나타낸 블록도이다.
도 9는 본 발명의 실시예에 따른 모션 벡터 연산부의 구성을 나타낸 블록도이다.
도 10은 본 발명의 실시예에 따른 디바이더 유닛의 동작 순서를 나타낸 흐름도이다.
도 11은 본 발명의 실시예에 따른 실험에 사용된 DJI phantom4 drone을 나타낸 도이다.
도 12 내지 도 14는 본 발명의 실시예에 따른 드론으로 획득한 하방 영상과 관련한 예를 나타낸 도이다.
도 15 내지 도 17은 본 발명의 실시예에 따른 각 실험 환경에서의 영상 기반 특징점 추적 장치의 출력을 누적시킨 결과와 GPS 좌표정보를 기반으로 획득한 이동경로의 비교 예를 나타낸 도이다.
도 18은 본 발명의 실시예에 따른 드론 정지 비행을 위한 영상 기반 특징점 추적 방법을 나타낸 흐름도이다.
1 and 2 are block diagrams showing the configuration of an image-based feature point tracking apparatus for a stationary drone flight according to an embodiment of the present invention.
3 is a diagram showing an example of a PLK algorithm according to an embodiment of the present invention.
4 is a block diagram showing the configuration of a Gaussian filter according to an embodiment of the present invention.
5 is a block diagram showing the configuration of an area check unit according to an embodiment of the present invention.
6 is a block diagram showing the configuration of an interpolation unit according to an embodiment of the present invention.
7 is a block diagram showing the configuration of a window area extractor according to an embodiment of the present invention.
8 is a block diagram showing the configuration of an interpolation calculator according to an embodiment of the present invention.
9 is a block diagram showing the configuration of a motion vector calculator according to an embodiment of the present invention.
10 is a flowchart showing an operation sequence of a divider unit according to an embodiment of the present invention.
11 is a diagram showing a DJI phantom4 drone used in an experiment according to an embodiment of the present invention.
12 to 14 are diagrams showing an example of a downward image acquired by a drone according to an embodiment of the present invention.
15 to 17 are diagrams illustrating an example of a comparison between a result of accumulating the output of an image-based feature point tracking device in each experimental environment according to an embodiment of the present invention and a movement path obtained based on GPS coordinate information.
18 is a flowchart illustrating an image-based feature point tracking method for stationary drone flight according to an embodiment of the present invention.

본 발명에서 사용되는 기술적 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 발명에서 사용되는 기술적 용어는 본 발명에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 발명에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.It should be noted that the technical terms used in the present invention are only used to describe specific embodiments, and are not intended to limit the present invention. In addition, the technical terms used in the present invention should be interpreted as generally understood by those of ordinary skill in the technical field to which the present invention belongs, unless otherwise defined in the present invention, and is excessively comprehensive. It should not be construed as a human meaning or an excessively reduced meaning. In addition, when a technical term used in the present invention is an incorrect technical term that does not accurately express the spirit of the present invention, it should be replaced with a technical term that can be correctly understood by those skilled in the art. In addition, general terms used in the present invention should be interpreted as defined in the dictionary or according to the context before and after, and should not be interpreted as an excessively reduced meaning.

또한, 본 발명에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 발명에서 "구성된다" 또는 "포함한다" 등의 용어는 발명에 기재된 여러 구성 요소들 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.In addition, the singular expression used in the present invention includes a plurality of expressions unless the context clearly indicates otherwise. In the present invention, terms such as “consisting of” or “comprising” should not be construed as necessarily including all of the various components or steps described in the invention, and some components or some steps may not be included. It is to be construed that it may or may further include additional components or steps.

또한, 본 발명에서 사용되는 제 1, 제 2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성 요소는 제 2 구성 요소로 명명될 수 있고, 유사하게 제 2 구성 요소도 제 1 구성 요소로 명명될 수 있다.In addition, terms including ordinal numbers such as first and second used in the present invention may be used to describe the elements, but the elements should not be limited by the terms. The terms are used only to distinguish one component from another. For example, without departing from the scope of the present invention, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element.

이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings, but the same or similar components are assigned the same reference numerals regardless of the reference numerals, and redundant descriptions thereof will be omitted.

또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.In addition, in describing the present invention, when it is determined that a detailed description of a related known technology may obscure the subject matter of the present invention, a detailed description thereof will be omitted. In addition, it should be noted that the accompanying drawings are only for easily understanding the spirit of the present invention and should not be construed as limiting the spirit of the present invention by the accompanying drawings.

도 1 및 도 2는 본 발명의 실시예에 따른 드론 정지 비행을 위한 영상 기반 특징점 추적 장치(10)의 구성을 나타낸 블록도이다.1 and 2 are block diagrams showing the configuration of an image-based feature point tracking apparatus 10 for a stationary drone flight according to an embodiment of the present invention.

도 1 및 도 2에 도시한 바와 같이, 드론 정지 비행을 위한 영상 기반 특징점 추적 장치(10)는 프레임 버퍼(100), 제 1 먹스(200), 헤시안 행렬 연산부(300), 특징점 검출부(400), 제 2 먹스(500), 특징점 추적부(600), 메모리(700) 및 제어부(800)로 구성된다. 도 1 및 도 2에 도시된 영상 기반 특징점 추적 장치(10)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 1 및 도 2에 도시된 구성 요소보다 많은 구성 요소에 의해 영상 기반 특징점 추적 장치(10)가 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 영상 기반 특징점 추적 장치(10)가 구현될 수도 있다.As shown in FIGS. 1 and 2, the image-based feature point tracking device 10 for a stop flight of a drone includes a frame buffer 100, a first mux 200, a Hessian matrix operation unit 300, and a feature point detection unit 400. ), a second mux 500, a feature point tracking unit 600, a memory 700, and a control unit 800. Not all components of the image-based feature point tracking device 10 shown in FIGS. 1 and 2 are essential components, and an image-based feature point tracking device ( 10) may be implemented, or the image-based feature point tracking apparatus 10 may be implemented with fewer components.

드론(drone)의 호버링(hovering, 정지 비행) 기술에는 IMU 센서 기반 방식, 레이더 기반 방식, 영상 기반 방식 등이 적용될 수 있다.IMU sensor-based method, radar-based method, image-based method, etc. can be applied to the drone's hovering (stationary flight) technology.

이 중 드론의 동체에 탑재된 하방 카메라 모듈을 활용한 영상 기반 호버링 방식은 레이더 등의 여타 능동적 센서 기반 방식들과 달리 전력 소모, 탑재 중량이 적으면서도 우수한 성능을 지원 가능하기 때문에 소형 기체인 드론에 적용하기 용이하다.Among them, the image-based hovering method using the lower camera module mounted on the body of the drone is unlike other active sensor-based methods such as radar, and has low power consumption and loading weight while supporting excellent performance, so it is suitable for drones, which are small aircraft. It is easy to apply.

상기 영상 기반 호버링 방식은 드론으로부터 취득한 하방 영상을 통해 드론의 움직임을 추적한 후, 추적된 움직임만큼 보정하는 방식으로 호버링을 수행한다.The image-based hovering method performs hovering by tracking a motion of a drone through a downward image acquired from a drone, and then correcting as much as the tracked motion.

이에 하방 영상 정보를 활용하여 드론의 움직임을 정확히 추적하는 것은 호버링 기능 지원에 있어 필수적인 요소라 할 수 있다.Therefore, it can be said that accurately tracking the movement of the drone by using the lower image information is an essential factor in supporting the hovering function.

이러한 영상 기반 호버링 방식에 대표적으로 활용되는 알고리즘으로 블록 매칭 알고리즘(block matching algorithm), 특징 기술자 매칭 알고리즘(feature descriptor matching algorithm), KLT(Kanade Lucas Tomasi) 특징 추적 알고리즘 등이 존재한다.Algorithms that are representatively used for such an image-based hovering method include a block matching algorithm, a feature descriptor matching algorithm, and a Kanade Lucas Tomasi (KLT) feature tracking algorithm.

이 중, KLT 특징 추적 알고리즘은 영상 내 모든 픽셀에 대해 움직임을 추정하게 되면 입력 영상의 해상도에 따라 연산량이 기하급수적으로 증가하기 때문에, 영상 내 주요한 특징점을 찾는 검출(detection, 추출) 과정과 연속된 영상에서 검출된 특징점의 변위를 계산하는 추적(tracking) 과정으로 나뉜다. 각 과정마다 다양한 알고리즘이 존재한다.Among them, the KLT feature tracking algorithm, when estimating motion for all pixels in an image, increases exponentially according to the resolution of the input image. It is divided into a tracking process that calculates the displacement of the feature point detected in the image. There are various algorithms for each process.

상기 영상 기반 특징점 추적 장치(10)는 검출 과정에서 좋은 성능을 나타내는 Shi-Tomasi 알고리즘을 적용하고, 추적 과정에서 좋은 성능을 나타내는 PLK(Pyramidal Lucas-Kanade) 알고리즘을 적용한다.The image-based feature point tracking device 10 applies a Shi-Tomasi algorithm that shows good performance in a detection process, and applies a Pyramidal Lucas-Kanade (PLK) algorithm that shows good performance in a tracking process.

여기서, 상기 Shi-Tomasi 알고리즘은 추적 과정에서 사용되는 행렬의 고윳값이 큰 지점을 특징점으로 선별하는 방법으로 추적에 유리한 지점을 특징점으로 검출한다.Here, the Shi-Tomasi algorithm detects a point advantageous for tracking as a feature point by selecting a point with a large high value of the matrix used in the tracking process as a feature point.

즉, 상기 Shi-Tomasi 알고리즘은 전체 명암 영상에서 특징점이 될 작은 크기의 이미지 패치를 찾는 지역 특징 검출 방법 중 하나로, 상기 KLT 특징 추적 알고리즘에서 특징점 검출 단계로 제안되었다.That is, the Shi-Tomasi algorithm is one of the local feature detection methods for finding a small-sized image patch that will be a feature point in the entire contrast image, and is proposed as a feature point detection step in the KLT feature tracking algorithm.

또한, 상기 Shi-Tomasi 알고리즘은 기존의 특징점 검출 및 추적 알고리즘과 같이 단순히 평행 이동만 가정한 것이 아닌 어파인(affine) 변환까지 고려하여 다양한 추적 응용에서 우수한 성능을 나타내고 있다.In addition, the Shi-Tomasi algorithm shows excellent performance in various tracking applications by considering the affine transformation rather than simply assuming parallel movement, like the conventional feature point detection and tracking algorithm.

객체 추적에 강건한 특징점을 검출하기 위해서는 이미지 패치 단위에 적용된 계수 행렬 H가 영상 잡음 정도보다 커야한다. 상기 계수 행렬 H는 가로와 세로 방향으로의 명암값 변화에 따른 자기 상관 함수 행렬이며, 다음의 [수학식 1]로 나타낸다.In order to detect feature points that are robust to object tracking, the coefficient matrix H applied to the image patch unit must be larger than the image noise level. The coefficient matrix H is an autocorrelation function matrix according to changes in intensity values in the horizontal and vertical directions, and is represented by the following [Equation 1].

Figure pat00001
Figure pat00001

여기서, 상기 n은 탐색 윈도우의 크기를 나타내고, 상기 i는 상기 탐색 윈도우 중 임의의 요소를 나타내고, 상기 dx 및 dy는 이미지 패치를 각각 x 방향과 y 방향으로 미분한 값을 나타낸다.Here, n denotes the size of the search window, i denotes an arbitrary element of the search window, and dx and dy denote values obtained by differentiating the image patch in the x and y directions, respectively.

이때, 상기 [수학식 1]에 따른 계수 행렬 H는 입력 영상에서 잡음의 영향과 일정 크기 이하의 추적하기 힘든 특징이 있을 수 있다.In this case, the coefficient matrix H according to [Equation 1] may have an effect of noise in the input image and a characteristic that is difficult to track down to a predetermined size or less.

이러한 특징에 대응하며 정확도를 높이기 위해서, 상기 [수학식 1]의 계수 행렬 H의 각각의 원소에 가중치(wi)를 적용하면, 다음의 [수학식 2]와 같이 변형된다.In order to respond to these characteristics and increase the accuracy, when a weight (wi) is applied to each element of the coefficient matrix H of [Equation 1], it is transformed as shown in [Equation 2] below.

Figure pat00002
Figure pat00002

또한, 명암 변화가 작은 경우, 계수 행렬 H는 잡음에 큰 영향을 받기 때문에, 추적에 유리한 특징점이라 할 수 없다. 따라서, 이러한 픽셀을 배제하고 추적에 유리한 특징점을 검출하기 위해서, 다음의 [수학식 3]과 같이, 상기 계수 행렬 H의 고윳값을 확인하는 과정을 수행한다.In addition, when the change in brightness and darkness is small, since the coefficient matrix H is greatly affected by noise, it cannot be said to be an advantageous feature point for tracking. Therefore, in order to exclude such pixels and detect a feature point advantageous for tracking, a process of confirming the high value of the coefficient matrix H is performed as shown in [Equation 3] below.

Figure pat00003
Figure pat00003

즉, 상기 계수 행렬 H의 두 고윳값 중 작은 값이 특징점을 결정하는 기준이 되며, 상기 두 고윳값 중 작은 값을 임계값(threshold)과 비교하여, 클 경우 해당 픽셀을 특징점 후보로 선정한다.That is, the smaller of the two high-value values of the coefficient matrix H serves as a criterion for determining the feature point, and the smaller of the two high-value values is compared with a threshold value, and if large, a corresponding pixel is selected as a feature point candidate.

또한, 특징점 후보군을 선별하기 위해서 앞선 [수학식 3]에서 행렬의 고윳값 계산 및 비교가 필요하지만, 행렬의 고유 다항식과 이차 방정식 근의 공식을 사용하면 이를 하나의 식으로 간소화할 수 있다.In addition, in order to select a candidate feature point group, it is necessary to calculate and compare the high eigenvalue of the matrix in [Equation 3], but it can be simplified into a single equation by using the eigen polynomial of the matrix and the formula of the quadratic equation.

즉, 상기 [수학식 2]의 2×2 행렬 각각의 원소를 순서대로 p, r, r, q라 하면, 고유 다항식은 다음의 [수학식 4]와 같이 나타낼 수 있다.That is, if the elements of each of the 2×2 matrix in [Equation 2] are in order p, r, r, and q, the eigen polynomial can be expressed as the following [Equation 4].

Figure pat00004
Figure pat00004

상기 [수학식 4]를 근의 공식에 대입하여 정리하면, 최소 고윳값을 다음의 [수학식 5]로 나타낼 수 있으며, 이에 따라 특징점 후보군 선정 과정을 간단하게 구현할 수 있다.By substituting the [Equation 4] into the root formula and arranging it, the minimum high value can be expressed by the following [Equation 5], and accordingly, the process of selecting a candidate feature point group can be easily implemented.

Figure pat00005
Figure pat00005

상기 [수학식 5]를 통해 선정된 특징점 중에서 서로 근접한 특징점들은 동일 객체를 나타내거나 유사한 움직임을 보이기 때문에, 추적 과정에서 불필요한 연산을 발생시킨다. 따라서, 성능 향상을 위해 추적 과정에 사용될 특징점들을 선별하는 과정이 추가로 요구되며, 이에 따라 상기 Shi-Tomasi 알고리즘은 앞서 계산한 고윳값을 윈도우 내에서 내림차순으로 정렬하고, 내림차순으로 정렬된 복수의 고윳값 중에서 값이 큰 지점만 특징점으로 유지시키는 과정을 적용한 후, 일정 거리 내의 후보군을 추가로 제외하는 과정으로 최종 특징점을 선별한다.Among the feature points selected through [Equation 5], since feature points that are close to each other represent the same object or show similar motion, unnecessary calculations are generated in the tracking process. Therefore, in order to improve performance, a process of selecting the feature points to be used in the tracking process is additionally required, and accordingly, the Shi-Tomasi algorithm sorts the previously calculated high values in descending order within the window, and a plurality of high values sorted in descending order. The final feature point is selected by applying a process of maintaining only the point with a large value among the yu values as feature points, and then additionally excluding a candidate group within a certain distance.

상기 PLK 알고리즘(또는 PLK Optical Flow Estimation 알고리즘)은 연속된 두 장의 이미지에서 같은 위치의 픽셀은 같은 명암값을 갖는다는 가정하에 다음의 [수학식 6]으로 모델링되고, Taylor series expansion에 따라 다음의 [수학식 7]로 나타낼 수 있다.The PLK algorithm (or PLK Optical Flow Estimation Algorithm) is modeled by the following [Equation 6] under the assumption that pixels at the same location in two consecutive images have the same intensity value, and according to the Taylor series expansion, the following [ It can be represented by Equation 7].

Figure pat00006
Figure pat00006

Figure pat00007
Figure pat00007

여기서, 상기 좌변의 I는 현재 이미지에서의 해당 픽셀의 밝기값을 나타내고, 상기 우변의 I는 다음 이미지에서의 해당 픽셀의 밝기값을 나타낸다.Here, I on the left side represents the brightness value of the corresponding pixel in the current image, and I on the right side represents the brightness value of the corresponding pixel in the next image.

한 윈도우 내의 픽셀들은 같은 광류를 갖는다고 가정하면, 윈도우 내의 모든 화소가 상기 [수학식 7]을 만족해야 하므로, 행렬 형태의 다음의 [수학식 8]로 나타낼 수 있다.Assuming that the pixels in one window have the same light flow, all pixels in the window must satisfy the above [Equation 7], so it can be expressed by the following [Equation 8] in the form of a matrix.

Figure pat00008
Figure pat00008

여기서, 상기 v는 (u,v)로 나타내는 모션 벡터(motion vector)를 의미하고, 상기 A 행렬과 상기 b 벡터는 각각 다음의 [수학식 9]와 같이 나타낸다.Here, v denotes a motion vector represented by (u,v), and the A matrix and the b vector are respectively represented by the following [Equation 9].

Figure pat00009
Figure pat00009

상기 [수학식 8]로부터 A 행렬의 역행렬을 구하기 위해 행렬식을 바꿔 쓰면 다음의 [수학식 10]으로 나타낼 수 있다.If the determinant is rewritten to obtain the inverse matrix of the matrix A from [Equation 8], it can be expressed as the following [Equation 10].

Figure pat00010
Figure pat00010

상기 [수학식 10]을 풀고, 더 나은 품질의 모션 벡터 값을 위해 가중치 함수를 적용하면 다음의 [수학식 11]과 같이 2×2 행렬과 2×1 행렬의 곱으로 모션 벡터를 계산할 수 있다.If [Equation 10] is solved and a weight function is applied for a motion vector value of better quality, a motion vector can be calculated by multiplying a 2×2 matrix and a 2×1 matrix as shown in [Equation 11] below. .

Figure pat00011
Figure pat00011

여기서, 상기 u는 x축 방향의 움직임을 나타내고, 상기 v는 y축 방향의 움직임을 나타낸다.Here, u denotes motion in the x-axis direction, and v denotes motion in the y-axis direction.

또한, 상기 영상 기반 특징점 추적 장치(10)는 더 정밀한 모션 벡터를 얻기 위해 계산된 모션 벡터(u,v)를 통해 특징점의 위치를 보정한 뒤, 반복(iteration)을 통해 최종적인 변위(또는 모션 벡터)를 계산한다. 여기서, 상기 보정 과정은 동일한 지점(또는 픽셀)에 대해서 상기 계산된 모션 벡터를 메모리(700)에 저장된 특징점의 좌표값과 더하는 과정일 수 있다.In addition, the image-based feature point tracking device 10 corrects the position of the feature point through motion vectors (u, v) calculated to obtain a more precise motion vector, and then performs a final displacement (or motion) through iteration. Vector). Here, the correction process may be a process of adding the calculated motion vector for the same point (or pixel) to the coordinate value of the feature point stored in the memory 700.

또한, 탐색 윈도우의 크기가 작은 경우 움직임이 큰 변위를 추적하지 못해 강건성이 낮아지며, 큰 탐색 윈도우를 사용할 경우 작은 변위에 대한 정확성이 저하되고, 연산량 또한 증가하게 되는 한계를 갖는다.In addition, when the size of the search window is small, it is not possible to track a large displacement, so that the robustness decreases. When a large search window is used, the accuracy for a small displacement decreases and the computational amount is also increased.

도 3에 도시된 바와 같이, 이를 해결하기 위해 제안된 PLK 알고리즘은 데시메이션 필터(decimation filter)를 통해 획득한 계층 영상

Figure pat00012
중 가장 낮은 해상도를 갖는 영상
Figure pat00013
에서 모션 벡터값
Figure pat00014
이 계산되었다고 가정하면, 상기 모션 벡터값(
Figure pat00015
)은 다음의 [수학식 12]와 같이 계산되고, 새로운 초기 추정값으로 사용됨으로써 다음 레벨(L-1)로 전달된다.As shown in FIG. 3, the PLK algorithm proposed to solve this problem is a hierarchical image obtained through a decimation filter.
Figure pat00012
The image with the lowest resolution among
Figure pat00013
Motion vector value at
Figure pat00014
Assuming that is calculated, the motion vector value (
Figure pat00015
) Is calculated as in the following [Equation 12], and is transferred to the next level (L-1) by being used as a new initial estimate.

Figure pat00016
Figure pat00016

여기서, 상기 v는 모션 벡터를 나타낸다.Here, v represents a motion vector.

이러한 전달 과정이 반복되어 최종 레벨인

Figure pat00017
에서의 계산이 끝나면, 최종 모션 벡터는 다음의 [수학식 13]으로 정의된다.This delivery process is repeated and the final level
Figure pat00017
After the calculation in is completed, the final motion vector is defined by the following [Equation 13].

Figure pat00018
Figure pat00018

여기서, 상기 d는 최종 모션 벡터를 나타낸다.Here, d represents the final motion vector.

이와 같이, 상기 영상 기반 특징점 추적 장치(10)는 최초 이미지로부터 특징점 검출 과정을 수행하고, 이후 입력되는 이미지로부터 추적 과정을 수행한다.In this way, the image-based feature point tracking device 10 performs a feature point detection process from an initial image, and then performs a tracking process from an input image.

또한, 상기 영상 기반 특징점 추적 장치(10)는 프레임마다(또는 이미지마다) 계산된 모션 벡터값을 드론의 F/C(Fight Controller)로 전달하여, 드론의 움직임을 제어한다.In addition, the image-based feature point tracking device 10 controls the motion of the drone by transferring the calculated motion vector value for each frame (or for each image) to the drone's F/C (Fight Controller).

또한, 상기 영상 기반 특징점 추적 장치(10)는 미리 설정된 개수의 이미지(예를 들어 N장의 이미지)에서 특징점 추출 및 추적 과정이 끝나면, 다시 그 다음으로 입력되는 이미지들로부터 특징점 추출 및 추적 과정을 반복적으로 수행한다.In addition, after the process of extracting and tracking feature points from a preset number of images (for example, N images) is finished, the image-based feature point tracking device 10 repeats the process of extracting and tracking feature points from the next input images. It is done with.

상기 프레임 버퍼(100)는 드론(미도시)으로부터 획득되는 연속된 복수의 이미지(또는 복수의 영상/하방 영상)를 임시 저장한다. 이때, 상기 드론으로부터 획득되는 이미지는 상기 드론의 하부에 구비된 카메라(미도시)를 통해 해당 드론이 위치하는(또는 이동하는) 지역의 하방에 대응하는 이미지일 수 있다.The frame buffer 100 temporarily stores a plurality of consecutive images (or a plurality of images/bottom images) acquired from a drone (not shown). In this case, the image obtained from the drone may be an image corresponding to a lower portion of an area in which the drone is located (or moved) through a camera (not shown) provided under the drone.

또한, 상기 프레임 버퍼(100)는 상기 제어부(800)의 제어에 의해, 상기 프레임 버퍼(100)에 임시 저장되는 연속된 복수의 이미지 중 적어도 하나의 이미지를 상기 제 1 먹스(200) 및 상기 제 2 먹스(500)에 각각 제공(또는 출력/전송)한다.In addition, the frame buffer 100 converts at least one image from among a plurality of consecutive images temporarily stored in the frame buffer 100 under the control of the controller 800 to the first mux 200 and the first 2 Each is provided (or output/transmitted) to the mux 500.

상기 제 1 먹스(200)는 상기 프레임 버퍼(100)로부터 제공되는 연속된 복수의 이미지 중에서 첫 번째 이미지를 출력한다. 여기서, 상기 첫 번째 이미지는 미리 설정된 단위 개수 이미지(예를 들어 10개 단위, 50개 단위, 100개 단위 등 포함)를 근거로 상기 복수의 이미지 중에서 첫 번째 이미지(예를 들어 50개 단위를 기준으로 하는 경우, 연속된 50개의 이미지 중에서 첫 번째 이미지)를 나타낸다.The first mux 200 outputs a first image from among a plurality of consecutive images provided from the frame buffer 100. Here, the first image is based on a preset number of units images (eg, including 10 units, 50 units, 100 units, etc.), and the first image (eg, 50 units) among the plurality of images. In the case of, the first image of 50 consecutive images) is indicated.

상기 도 2에 도시한 바와 같이, 상기 헤시안 행렬 연산부(Hessian-matrix calculation unit: HSU)(300)는 제 3 먹스(310), 미분기(320), 복수의 곱셈기(330) 및 복수의 가우시안 필터(340)로 구성된다. 상기 도 2에 도시된 헤시안 행렬 연산부(300)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 2에 도시된 구성 요소보다 많은 구성 요소에 의해 헤시안 행렬 연산부(300)가 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 헤시안 행렬 연산부(300)가 구현될 수도 있다.As shown in FIG. 2, the Hessian-matrix calculation unit (HSU) 300 includes a third mux 310, a differentiator 320, a plurality of multipliers 330, and a plurality of Gaussian filters. It consists of 340. Not all elements of the Hessian matrix operator 300 shown in FIG. 2 are essential elements, and the Hessian matrix operator 300 may be implemented by more elements than those shown in FIG. In addition, the Hessian matrix operator 300 may be implemented by using fewer components.

상기 헤시안 행렬 연산부(300)는 특징점 검출 과정에 사용되는 Shi-Tomasi 알고리즘과 특징점 추적 과정에 사용되는 PLK 알고리즘의 동일한 행렬의 원소를 계산(또는 산출)한다.The Hessian matrix operator 300 calculates (or calculates) elements of the same matrix of the Shi-Tomasi algorithm used in the feature point detection process and the PLK algorithm used in the feature point tracking process.

상기 제 3 먹스(310)는 상기 제 1 먹스(200)로부터 출력되는 첫 번째 이미지 또는 상기 특징점 추적부(600)로부터 출력되는 보간된 첫 번째 이미지에 대해서 상기 제어부(800)에 의해 설정된 상기 영상 기반 특징점 추적 장치(10)의 동작 모드에 따라 상기 제 1 먹스(200)로부터 출력되는 첫 번째 이미지 또는 상기 특징점 추적부(600)로부터 출력되는 보간된 첫 번째 이미지를 출력한다.The third mux 310 is based on the image set by the controller 800 for the first image output from the first mux 200 or the interpolated first image output from the feature point tracking unit 600 A first image output from the first mux 200 or an interpolated first image output from the feature point tracking unit 600 is output according to an operation mode of the feature point tracking device 10.

즉, 상기 제어부(800)에 의해 설정된 상기 영상 기반 특징점 추적 장치(10)의 동작 모드가 특징점 검출 모드일 때, 상기 제 3 먹스(310)는 상기 제 1 먹스(200)로부터 출력되는 첫 번째 이미지 또는 상기 특징점 추적부(600)로부터 출력되는 보간된 첫 번째 이미지 중에서 상기 제 1 먹스(200)로부터 출력되는 첫 번째 이미지를 상기 제 3 먹스(310)의 출력값으로 출력한다.That is, when the operation mode of the image-based feature point tracking device 10 set by the control unit 800 is the feature point detection mode, the third mux 310 is the first image output from the first mux 200 Alternatively, the first image output from the first mux 200 among the interpolated first images output from the feature point tracking unit 600 is output as an output value of the third mux 310.

또한, 상기 제어부(800)에 의해 설정된 상기 영상 기반 특징점 추적 장치(10)의 동작 모드가 특징점 추적 모드일 때, 상기 제 3 먹스(310)는 상기 제 1 먹스(200)로부터 출력되는 첫 번째 이미지 또는 상기 특징점 추적부(600)로부터 출력되는 보간된 첫 번째 이미지 중에서 상기 특징점 추적부(600)로부터 출력되는 보간된 첫 번째 이미지를 상기 제 3 먹스(310)의 출력값으로 출력한다.In addition, when the operation mode of the image-based feature point tracking device 10 set by the control unit 800 is a feature point tracking mode, the third mux 310 is a first image output from the first mux 200 Alternatively, among the interpolated first images output from the feature point tracking unit 600, the interpolated first image output from the feature point tracking unit 600 is output as an output value of the third mux 310.

상기 미분기(Differentiator)(320)는 상기 제 3 먹스(310)의 출력값을 소벨 필터(sobel filter)를 사용하여 x 방향과 y 방향으로의 명암차를 계산한다.The differentiator 320 calculates the contrast between the x and y directions on the output value of the third mux 310 using a sobel filter.

즉, 상기 미분기(320)는 상기 제 3 먹스(310)로부터 출력되는 첫 번째 이미지 또는 보간된 첫 번째 이미지로부터 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy)를 계산한다.That is, the differentiator 320 calculates the contrast difference dx in the x direction and the contrast dy in the y direction from the first image output from the third mux 310 or the interpolated first image. .

상기 복수의 곱셈기(330)는 상기 미분기(320)에서 계산된 첫 번째 이미지(또는 보간된 첫 번째 이미지)와 관련한 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy)에 대해 곱셈 기능을 적용하여 상기 특징점 검출 과정과 특징점 추적 과정에서 동일하게 사용되는 복수의 변수를 생성한다.The plurality of multipliers 330 are configured with respect to the difference in intensity in the x direction (dx) and the difference in intensity in the y direction (dy) in relation to the first image (or interpolated first image) calculated by the differentiator 320. A multiplication function is applied to generate a plurality of variables that are used equally in the process of detecting the feature point and the process of tracking the feature point.

즉, 제 1 곱셈기(331)는 상기 미분기(320)에서 계산된 첫 번째 이미지(또는 보간된 첫 번째 이미지)와 관련한 x 방향으로의 명암차(dx)를 두 입력으로 하여 곱셈 기능을 수행하여, 상기 제 1 곱셈기(331)의 출력값(예를 들어 dx2)을 출력한다.That is, the first multiplier 331 performs a multiplication function by taking two inputs of the contrast difference dx in the x direction with respect to the first image (or interpolated first image) calculated by the differentiator 320, An output value (eg, dx 2 ) of the first multiplier 331 is output.

또한, 제 2 곱셈기(332)는 상기 미분기(320)에서 계산된 첫 번째 이미지(또는 보간된 첫 번째 이미지)와 관련한 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy)를 두 입력으로 하여 곱셈 기능을 수행하여, 상기 제 2 곱셈기(332)의 출력값(예를 들어 dxdy)을 출력한다.In addition, the second multiplier 332 calculates the contrast (dx) in the x direction and the contrast (dy) in the y direction with respect to the first image (or interpolated first image) calculated by the differentiator 320. By performing a multiplication function using two inputs, an output value (eg, dxdy) of the second multiplier 332 is output.

또한, 제 3 곱셈기(333)는 상기 미분기(320)에서 계산된 첫 번째 이미지(또는 보간된 첫 번째 이미지)와 관련한 y 방향으로의 명암차(dy)를 두 입력으로 하여 곱셈 기능을 수행하여, 상기 제 3 곱셈기(333)의 출력값(예를 들어 dy2)을 출력한다.In addition, the third multiplier 333 performs a multiplication function by taking as two inputs the contrast difference dy in the y direction related to the first image (or interpolated first image) calculated by the differentiator 320, An output value (for example, dy 2 ) of the third multiplier 333 is output.

이와 같이, 상기 복수의 곱셈기(330)는 상기 미분기(320)에서 계산된 첫 번째 이미지(또는 보간된 첫 번째 이미지)와 관련한 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy)를 근거로 상기 특징점 검출 과정과 특징점 추적 과정에서 동일하게 사용되는 복수의 변수를 생성한다.In this way, the plurality of multipliers 330 are in the x-direction relative to the first image (or interpolated first image) calculated by the differentiator 320 (dx) and the contrast in the y-direction (dy ), a plurality of variables that are used identically in the feature point detection process and the feature point tracking process are generated.

상기 복수의 가우시안 필터(Gaussian Filter)(340)는 상기 복수의 곱셈기(330)에서 생성된 복수의 변수에 대해서 영상의 스무딩 처리를 수행한다.The plurality of Gaussian filters 340 perform image smoothing on a plurality of variables generated by the plurality of multipliers 330.

즉, 제 1 가우시안 필터(341)는 상기 제 1 곱셈기(331)로부터 출력되는 상기 제 1 곱셈기(331)의 출력값(예를 들어 dx2)에 가중치를 적용한 후, 가우시안 필터를 적용한다. That is, the first Gaussian filter 341 applies a weight to the output value (eg, dx 2 ) of the first multiplier 331 output from the first multiplier 331 and then applies the Gaussian filter.

또한, 제 2 가우시안 필터(342)는 상기 제 2 곱셈기(332)로부터 출력되는 상기 제 2 곱셈기(332)의 출력값(예를 들어 dxdy)에 가중치를 적용한 후, 가우시안 필터를 적용한다.In addition, the second Gaussian filter 342 applies a weight to an output value (eg, dxdy) of the second multiplier 332 output from the second multiplier 332 and then applies a Gaussian filter.

또한, 제 3 가우시안 필터(343)는 상기 제 3 곱셈기(333)로부터 출력되는 상기 제 3 곱셈기(333)의 출력값(예를 들어 dy2)에 가중치를 적용한 후, 가우시안 필터를 적용한다. In addition, the third Gaussian filter 343 applies a weight to the output value (eg, dy 2 ) of the third multiplier 333 output from the third multiplier 333 and then applies a Gaussian filter.

이와 같이, 상기 복수의 가우시안 필터(340)는 영상에 대한 스무딩 처리를 수행하여, 해당 가우시안 필터(340)의 출력값(또는 상기 헤시안 행렬 연산부(300)의 출력값/가우시안 필터링된 상기 헤시안 행렬 연산부(300)의 출력값)(예를 들어 가중치가 적용된 widx2, widxdy, widy2)을 상기 특징점 검출부(400) 및 상기 특징점 추적부(600)에 제공한다.In this way, the plurality of Gaussian filters 340 perform a smoothing process on an image, and the output value of the corresponding Gaussian filter 340 (or the output value of the Hessian matrix operator 300 / the Gaussian-filtered Hessian matrix operator) An output value of 300) (for example, weighted widx 2 , widxdy, widy 2 ) is provided to the feature point detection unit 400 and the feature point tracking unit 600.

도 4는 가우시안 필터(340)의 하드웨어 구조로, 라인 버퍼(line buffer), 시프트 레지스터(shift register) 및 어큐뮬레이션 유닛(accumulation unit)으로 구성된다.4 is a hardware structure of the Gaussian filter 340, which is composed of a line buffer, a shift register, and an accumulation unit.

상기 미분기(320)와 상기 가우시안 필터(340)는 3×3 필터 마스크(filter mask)에 포함되는 영역의 픽셀 값들이 필요하다. 이때, 이미지 데이터 스트림(image data stream)은 로우(row) 방향으로 순차로 입력되기 때문에, 2개의 라인 버퍼 및 9개의 시프트 레지스터를 활용하여 3×3 필터 마스크에 포함되는 값이 동시에 어큐뮬레이션 유닛에 입력되도록 구성한다.The differentiator 320 and the Gaussian filter 340 require pixel values of a region included in a 3×3 filter mask. At this time, since the image data streams are sequentially input in the row direction, the values included in the 3×3 filter mask are simultaneously stored in the accumulation unit using two line buffers and nine shift registers. Organize to be input.

이로 인해, 본 발명의 실시예에 따른 가우시안 필터(340)는 별도의 여분의 프레임 버퍼와 클록 사이클(clock cycles) 없이 3×3 이미지 필터 연산이 가능하며, 가우시안 필터 탭(Gaussian filter tap)이 1/16, 1/8, 1/4로 구성되기 때문에, 별도의 곱셈기(mutiplier)없이 비트 시프트(bit shift) 연산과 누적(accumulation) 연산으로 구현할 수 있다.Accordingly, the Gaussian filter 340 according to an embodiment of the present invention can perform a 3×3 image filter operation without an extra frame buffer and clock cycles, and a Gaussian filter tap is 1 Since it is composed of /16, 1/8, and 1/4, it can be implemented as a bit shift operation and an accumulation operation without a separate multiplier.

또한, 상기 가우시안 필터(340) 이외에도 상기 미분기(320)나 상기 특징점 추적부(600)에 포함된 보간부도 같은 콘볼루션(convolution) 연산으로 이루어지기 때문에 동일한 라인 버퍼 기반 구조를 갖는다.In addition, in addition to the Gaussian filter 340, the differentiator 320 and the interpolation unit included in the feature point tracking unit 600 have the same line buffer-based structure because they are performed by the same convolution operation.

따라서, 상기 헤시안 행렬 연산부(300)를 적용함으로써, 기존 구조 대비 4개의 라인 버퍼, 9개의 곱셈기와 가산기, 18개의 8-비트 레지스터를 줄일 수 있다.Therefore, by applying the Hessian matrix operator 300, it is possible to reduce 4 line buffers, 9 multipliers and adders, and 18 8-bit registers compared to the existing structure.

이와 같이, 상기 헤시안 행렬 연산부(300)를 통해 Shi-Tomasi 특징점 검출 알고리즘과 PLK(Pyramidal Lucas-Kanade) 알고리즘에서 공통으로 연산되는 부분을 공유하고 각 알고리즘을 간소화 및 개선함으로써, 저면적으로도 우수한 추적 성능을 제공하여, 탑재 중량 및 소모 전력이 엄격히 제한되는 드론에 적용하기에 용이할 수 있다.In this way, through the Hessian matrix operation unit 300, the Shi-Tomasi feature point detection algorithm and the Pyramidal Lucas-Kanade (PLK) algorithm share a common calculation and simplify and improve each algorithm. By providing tracking performance, it can be easy to apply to drones where the payload weight and power consumption are strictly limited.

상기 도 2에 도시한 바와 같이, 상기 특징점 검출부(Feature point Detection Unit: FDU)(400)는 특징점 가능성 연산부(410), 경계 및 임계치 확인부(420), 비최대 억제부(430) 및 영역 확인부(440)로 구성된다. 상기 도 2에 도시된 특징점 검출부(400)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 2에 도시된 구성 요소보다 많은 구성 요소에 의해 특징점 검출부(400)가 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 특징점 검출부(400)가 구현될 수도 있다.As shown in FIG. 2, the feature point detection unit (FDU) 400 includes a feature point possibility calculation unit 410, a boundary and threshold check unit 420, a non-maximum suppression unit 430, and a region check. It consists of a section 440. Not all of the components of the feature point detection unit 400 shown in FIG. 2 are essential components, and the feature point detection unit 400 may be implemented by more components than the components shown in FIG. 2, or fewer components. The feature point detection unit 400 may also be implemented by an element.

상기 특징점 검출부(400)는 상기 헤시안 행렬 연산부(300)의 출력값을 이용해서 상기 첫 번째 이미지로부터 복수의 특징점을 검출(또는 추출)한다.The feature point detection unit 400 detects (or extracts) a plurality of feature points from the first image using an output value of the Hessian matrix calculator 300.

상기 특징점 가능성 연산부(Corner Possibility Calculator)(410)는 상기 헤시안 행렬 연산부(300)로부터의 출력값(또는 가우시안 필터링된 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy))에 대해 고윳값을 계산한다.The corner possibility calculator 410 is applied to an output value from the Hessian matrix calculator 300 (or a Gaussian-filtered contrast difference in the x direction (dx) and the contrast difference in the y direction (dy)). Calculate the high value.

즉, 상기 특징점 가능성 연산부(410)는 앞선 [수학식 5]의 연산을 통해 고윳값을 계산한다.That is, the feature point probability calculator 410 calculates a high value through the calculation of [Equation 5].

상기 경계 및 임계치 확인부(Boundary/Threshold Checking Unit)(420)는 상기 특징점 가능성 연산부(410)에 의해 계산된 고윳값을 근거로 영상 경계에 있지 않으면서도 고윳값이 임계값 이상인 지점을 특징점 후보군으로 선정한다.The boundary/threshold checking unit 420 selects a point having a high gamma value equal to or greater than a threshold value without being at an image boundary based on the high gamma value calculated by the feature point probability calculating unit 410 as a feature point candidate group. Select.

즉, 상기 특징점 가능성 연산부(410)는 상기 계산된 복수의 고윳값을 내림차순으로 정렬한다.That is, the feature point probability calculator 410 sorts the calculated plurality of high values in descending order.

또한, 상기 특징점 가능성 연산부(410)는 상기 내림차순으로 정렬된 복수의 고윳값 중에서 영상 경계에 있지 않으면서도 고윳값이 임계값 이상인 지점을 특징점 후보군으로 선정한다. 이때, 상기 경계 및 임계치 확인부(420)는 상기 내림차순으로 정렬된 복수의 고윳값 중에서 고윳값이 높은 순으로 미리 설정된 개수(예를 들어 128개)를 상기 특징점 후보군으로 선정할 수도 있다.In addition, the feature point possibility calculating unit 410 selects a point that is not at an image boundary and has a high eigen value equal to or greater than a threshold value among the plurality of high eigen values arranged in the descending order as a feature point candidate group. In this case, the boundary and threshold checking unit 420 may select a preset number (for example, 128) as the feature point candidate group in the order of the highest high yin values among the plurality of high yin values arranged in the descending order.

여기서, 계산되는 고윳값의 범위는 영상 밝기에 따라 변화하는데, 이에 적용되는 임계값 또한 유동적으로 바뀌어야 하므로, 가변 가능하도록 구성할 수 있다.Here, the range of the calculated high value varies according to the image brightness, and since the threshold value applied thereto must also be changed flexibly, it can be configured to be variable.

상기 비최대 억제부(Non-maximum Suppression Unit)(430)는 상기 선정된 특징점 후보군에 포함된 다수의 특징점 중에서 고윳값 비교를 통해 근접 후보군에 대한 배제 처리 기능을 수행한다.The non-maximum suppression unit 430 performs an exclusion processing function for a proximity candidate group by comparing a high value among a plurality of feature points included in the selected feature point candidate group.

상기 영역 확인부(Region Checking Unit)(440)는 상기 선정된 특징점 후보군에 포함된 다수의 특징점 중에서 일정 거리 내의 특징점을 제외(또는 영역 내 중복 후보군 배제 처리 기능을 수행)하여 최종적인 복수의 특징점을 선정(또는 선별)한다. 이때, 상기 영역 확인부(440)는 상기 이미지를 복수의 영역으로 나누고(또는 분할하고), 각 영역 내에서 각각 가장 먼저 입력되는 특징점 후보군 하나만을 최종 특징점에 포함시킬 수 있다.The region checking unit 440 excludes a feature point within a certain distance from among a plurality of feature points included in the selected feature point candidate group (or performs a function to exclude overlapping candidate groups within the region), and selects a final plurality of feature points. Select (or screen). In this case, the region checking unit 440 may divide (or divide) the image into a plurality of regions, and include only one of the first candidate feature point candidate groups inputted first in each region as a final feature point.

또한, 상기 영역 확인부(400)는 상기 선정된 최종적인 복수의 특징점(또는 복수의 특징점의 좌표 정보)을 상기 메모리(700)에 저장한다.In addition, the area checking unit 400 stores the selected final plurality of feature points (or coordinate information of the plurality of feature points) in the memory 700.

도 5는 상기 영역 확인부(400)의 블록도로, 각 블록을 제어하는 제어기(controller), 영역 간 중복 여부를 판별하는 N 영역 블록으로 구성된다.FIG. 5 is a block diagram of the area check unit 400, and includes a controller controlling each block and an N area block determining whether or not there is overlap between areas.

같은 크기로 구분된 N 개의 영역 내에서 각각 가장 먼저 입력받는 특징점 후보군 하나만 특징점으로 선정하도록 구성하여, 유클리드 거리 계산을 하지 않고도 일정 거리 이상이 띄어진 특징점이 검출되도록 구성할 수 있다.In the N areas divided by the same size, only one feature point candidate group, which is first input, is selected as a feature point, and feature points having a certain distance or more can be detected without calculating the Euclidean distance.

또한, 비최대 억제 처리를 거친 특징점 후보군의 신호가 순차로 상기 영역 확인부(400)에 입력될 때, 각각의 영역을 담당하는 블록은 제어기가 출력하는 제어 신호에 따라 작동한다. 이때, 상기 N 영역 블록은 픽셀 개수를 세는 로우(row)와 컬럼(column) 좌표 카운터(coordinate counter)를 활용하여 출력할 특징점의 위치를 제어할 수 있다.In addition, when signals of candidate feature point groups that have undergone non-maximum suppression processing are sequentially input to the region checking unit 400, blocks in charge of each region operate according to a control signal output from the controller. In this case, the N-area block may control the position of the feature point to be output by using a row for counting the number of pixels and a column coordinate counter.

상기 제 2 먹스(500)는 상기 프레임 버퍼(100)로부터 제공되는 연속된 복수의 이미지 중에서 첫 번째 이미지를 제외한 다른 이미지(또는 상기 연속된 복수의 이미지 중에서 현재 이미지)를 출력한다. 여기서, 상기 다른 이미지는 미리 설정된 단위 개수 이미지(예를 들어 10개 단위, 50개 단위, 100개 단위 등 포함)를 근거로 상기 복수의 이미지 중에서 첫 번째 이미지를 제외한 나머지 이미지 중에서 현재 입력된 이미지(또는 현재 이미지)(예를 들어 50개 단위를 기준으로 하는 경우, 연속된 50개의 이미지 중에서 첫 번째 이미지 다음 순서인 두 번째 이미지)를 나타낸다.The second mux 500 outputs an image other than the first image (or a current image among the plurality of consecutive images) from among a plurality of consecutive images provided from the frame buffer 100. Here, the other image is the currently input image from among the remaining images excluding the first image among the plurality of images based on a preset number of images (including, for example, 10 units, 50 units, 100 units, etc.) Or the current image) (for example, in the case of 50 units as a reference, the second image after the first image among 50 consecutive images) is displayed.

상기 도 2에 도시한 바와 같이, 상기 특징점 추적부(Feature point Tracking Unit: FTU)(600)는 복수의 보간부(610), 영상차 계산부(620), 복수의 다른 곱셈기(630), 복수의 다른 가우시안 필터(640), 모션 벡터 연산부(650), 모션 벡터 매니저(660) 및 모션 추정기(670)로 구성된다. 상기 도 2에 도시된 특징점 추적부(600)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 2에 도시된 구성 요소보다 많은 구성 요소에 의해 특징점 추적부(600)가 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 특징점 추적부(600)가 구현될 수도 있다.As shown in FIG. 2, the feature point tracking unit (FTU) 600 includes a plurality of interpolating units 610, an image difference calculation unit 620, a plurality of other multipliers 630, and a plurality of It consists of another Gaussian filter 640, a motion vector calculator 650, a motion vector manager 660, and a motion estimator 670. Not all elements of the feature point tracking unit 600 shown in FIG. 2 are essential elements, and the feature point tracking unit 600 may be implemented by more elements than those shown in FIG. The feature point tracking unit 600 may be implemented with fewer components.

상기 특징점 추적부(600)는 연속된 복수의 이미지를 근거로 앞서 추출된 특징점에 대한 추적 기능을 수행하여 모션 벡터를 생성한다.The feature point tracking unit 600 generates a motion vector by performing a tracking function on the previously extracted feature points based on a plurality of consecutive images.

기존의 PLK 알고리즘에서는 데시메이션 필터(decimation filter)를 통해 계층을 구성하고, 가장 높은 레벨에서부터 추적을 시작한다. 이때, 상기 데시메이션 필터는 콘볼루션(convolution) 연산을 요구하며 계층적 구조의 추적에 필요한 연산을 연속적으로 처리하기 위해 각 계층에 대한 결과값을 저장할 별도의 메모리 공간이 필요하다.In the existing PLK algorithm, a hierarchy is formed through a decimation filter, and tracking starts from the highest level. In this case, the decimation filter requires a convolution operation and requires a separate memory space to store result values for each layer in order to continuously process an operation required for tracking a hierarchical structure.

따라서, 본 발명의 실시예에서는 심플 다운-샘플링(simple down-sampling) 방법을 이용하여 단순히 프레임 버퍼의 제어 신호를 레벨에 따라 달리해주는 방법으로 별도의 지연시간이나 메모리없이 계층을 구성할 수 있도록 하였다.Therefore, in the embodiment of the present invention, a simple down-sampling method is used to simply change the control signal of the frame buffer according to the level, so that a layer can be configured without a separate delay time or memory. .

또한, 실험을 통해 데시메이션 필터 대신 심플 다운-샘플링 방법을 이용한 추적결과 성능 저하가 거의 없음을 확인하였다.In addition, through an experiment, it was confirmed that there was little performance degradation as a result of tracking using a simple down-sampling method instead of a decimation filter.

상기 복수의 보간부(interpolator Unit, 보간기)(610)는 상기 제 1 먹스(200)로부터 출력되는 이전 이미지, 상기 제 2 먹스(500)로부터 출력되는 현재 이미지에 대한 보간 기능을 각각 수행한다.The plurality of interpolator units 610 perform interpolation functions on a previous image output from the first mux 200 and a current image output from the second mux 500, respectively.

즉, 제 1 보간부(611)는 상기 제 1 먹스(200)로부터 출력되는 이전 이미지에 대한 보간 기능을 수행하고, 상기 수행에 따른 보간된 이전 이미지(또는 보간된 이미지)를 상기 제 3 먹스(310) 및 상기 영상차 계산부(620)에 제공한다.That is, the first interpolation unit 611 performs an interpolation function on the previous image output from the first mux 200, and converts the interpolated previous image (or interpolated image) according to the execution into the third mux ( 310) and the image difference calculation unit 620.

또한, 제 2 보간부(612)는 상기 제 2 먹스(500)로부터 출력되는 현재 이미지에 대한 보간 기능을 수행하고, 상기 수행에 따른 보간된 현재 이미지를 상기 영상차 계산부(620)에 제공한다.In addition, the second interpolation unit 612 performs an interpolation function on the current image output from the second mux 500, and provides the interpolated current image according to the execution to the image difference calculation unit 620. .

도 6은 본 발명의 실시예에 따른 보간부(610)의 블록도로, 특징점 좌표(feature coordinate, Fc)와 피라미드 레벨(pyramid level)에 따라 적합한 픽셀 정보가 입력되도록 제어하는 윈도우 영역 추출기(window region extractor)와 특징점 위치에 따른 보정을 수행하는 보간 계산기(interpolation calculator)로 구성된다.6 is a block diagram of an interpolation unit 610 according to an embodiment of the present invention, a window region extractor for controlling appropriate pixel information to be input according to a feature coordinate (Fc) and a pyramid level. It consists of an extractor and an interpolation calculator that performs correction according to the position of the feature points.

도 7은 본 발명의 실시예에 따른 윈도우 영역 추출기의 블록도로, 상기 윈도우 영역 추출기는 상기 메모리(700)에 저장되어있는 현재 특징점 좌표와 피라미드 레벨 정보를 입력받아 특징점 좌표 주변 영역의 이미지 윈도우(image window)가 상기 보간 계산기에 입력되도록 한다. 이때, 현재 피라미드 레벨에 따라서 다운-샘플링(down-sampling)까지 수행되는데, 프레임 버퍼에 이미지 데이터(image data)가 로우(row) 방향으로 저장되어 있다고 하면, 주소(address)는 다음의 [수학식 14]와 같이 계산되어 각각 먹스(MUX)에 연결되고, 현재 피라미드 레벨에 따라 선택되어 계층적 영상을 별도의 메모리 없이 얻을 수 있도록 구성(또는 설계)한다.7 is a block diagram of a window area extractor according to an embodiment of the present invention, wherein the window area extractor receives current feature point coordinates and pyramid level information stored in the memory 700, and receives an image window of an area around the feature point coordinates. window) is entered into the interpolation calculator. At this time, down-sampling is performed according to the current pyramid level. Assuming that image data is stored in the frame buffer in the row direction, the address is the following [Equation 14], each of them is connected to the MUX, and is selected according to the current pyramid level and configured (or designed) so that a hierarchical image can be obtained without a separate memory.

Figure pat00019
Figure pat00019

여기서, 상기 c1과 c2는 각각 row counter value와 column counter value를 나타내고, 상기 ws는 탐색 윈도우의 크기를 나타내고, 상기 L은 피라미드 레벨을 나타낸다.Here, c 1 and c 2 denote a row counter value and a column counter value, respectively, w s denotes the size of a search window, and L denotes a pyramid level.

도 8은 본 발명의 실시예에 따른 보간 계산기의 블록도로, 상기 보간 계산기는 계산된 모션 벡터로부터 보정된 특징점 좌표값이 정수가 아닌 실수값이기 때문에, 인접한 네 개의 픽셀의 명암값에 따른 바이리니어 보간(bilinear interpolation)을 통해 추적된 특징점 좌표의 밝기값을 계산한다. 여기서, 상기 바이리니어 보간은 x축과 y축 각각의 좌표값에 따라 가중치가 결정되는 일차원 필터와, 특징점 주변의 5×5 윈도우의 콘볼루션 연산으로 계산되며, 좌표값과 좌표값의 반올림한 값의 차의 사인 비트(sing bit)에 의하여 필터의 형태가 결정된다.8 is a block diagram of an interpolation calculator according to an embodiment of the present invention. Since the interpolation calculator is a real value rather than an integer, the coordinate value of the feature point corrected from the calculated motion vector is bilinear according to the intensity values of four adjacent pixels. The brightness value of the traced feature point coordinates is calculated through bilinear interpolation. Here, the bilinear interpolation is calculated by a one-dimensional filter whose weight is determined according to the coordinate values of each of the x-axis and y-axis, and a convolution operation of a 5×5 window around the feature point, and the coordinate value and the coordinate value are rounded off. The shape of the filter is determined by the sine bit of the difference of.

또한, 상기 보간 계산기는 라인 버퍼 구조로 설계하여, x축과 y축 각각의 일차원 보간 연산을 연속적으로 처리하도록 설계하여, 짧은 레이턴시(latency)로 별도의 추가적인 메모리 공간없이 계층 구성이 가능할 수 있다.In addition, the interpolation calculator is designed to have a line buffer structure, and is designed to continuously process one-dimensional interpolation operations for each of the x-axis and y-axis, so that a hierarchical configuration can be performed without an additional memory space with a short latency.

상기 영상차 계산부(620)는 상기 제 1 보간부(611)로부터 제공되는 보간된 이전 이미지와 상기 제 2 보간부(612)로부터 제공되는 보간된 현재 이미지 간의 명암차(dt)를 계산한다.The image difference calculation unit 620 calculates a contrast difference dt between the interpolated previous image provided from the first interpolation unit 611 and the interpolated current image provided from the second interpolation unit 612.

상기 복수의 다른 곱셈기(630)는 상기 헤시안 행렬 연산부(300)에서 계산된 이전 이미지에 대한 명암차(dx, dy)와 상기 계산된 보간된 이전 이미지와 보간된 현재 이미지 간의 명암차(dt)에 대해 곱셈 기능을 적용하여 복수의 다른 변수를 생성한다.The plurality of other multipliers 630 include a contrast difference (dx, dy) for a previous image calculated by the Hessian matrix calculator 300 and a contrast difference (dt) between the calculated interpolated previous image and the interpolated current image. Apply the multiplication function to the to generate a plurality of different variables.

즉, 제 4 곱셈기(631)는 상기 미분기(320)에서 계산된 첫 번째 이미지(또는 이전 이미지)와 관련한 x 방향으로의 명암차(dx)와 상기 영상차 계산부(620)에 의해 계산된 이미지 간의 명암차(dt)를 두 입력으로 하여 곱셈 기능을 수행하여, 상기 제 4 곱셈기(631)의 출력값(예를 들어 dxdt)을 출력한다.That is, the fourth multiplier 631 is the contrast difference dx in the x direction with respect to the first image (or previous image) calculated by the differentiator 320 and the image calculated by the image difference calculation unit 620 A multiplication function is performed by using the contrast difference dt between the two inputs, and an output value (for example, dxdt) of the fourth multiplier 631 is output.

또한, 제 5 곱셈기(632)는 상기 미분기(320)에서 계산된 첫 번째 이미지(또는 이전 이미지)와 관련한 y 방향으로의 명암차(dy)와 상기 영상차 계산부(620)에 의해 계산된 이미지 간의 명암차(dt)를 두 입력으로 하여 곱셈 기능을 수행하여, 상기 제 5 곱셈기(632)의 출력값(예를 들어 dydt)을 출력한다.In addition, the fifth multiplier 632 includes a contrast difference dy in the y direction with respect to the first image (or previous image) calculated by the differentiator 320 and the image calculated by the image difference calculation unit 620. A multiplication function is performed by using the contrast difference dt between the two inputs, and an output value (for example, dydt) of the fifth multiplier 632 is output.

이와 같이, 상기 복수의 다른 곱셈기(630)는 상기 미분기(320)에서 계산된 이전 이미지에 대한 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy) 및 상기 영상차 계산부(620)에서 계산된 보간된 이전 이미지와 보간된 현재 이미지 간의 명암차(dt)에 곱셈기를 적용한다.In this way, the plurality of other multipliers 630 include a contrast difference in the x direction (dx) and a contrast difference in the y direction (dy) with respect to the previous image calculated by the differentiator 320, and the image difference calculation unit ( 620), a multiplier is applied to the contrast difference (dt) between the interpolated previous image and the interpolated current image.

상기 복수의 다른 가우시안 필터(640)는 상기 복수의 다른 곱셈기(630)에서 생성된 복수의 다른 변수에 대해서 영상의 스무딩 처리를 수행한다.The plurality of different Gaussian filters 640 perform image smoothing on a plurality of different variables generated by the plurality of different multipliers 630.

즉, 제 4 가우시안 필터(641)는 상기 제 4 곱셈기(631)로부터 출력되는 상기 제 4 곱셈기(631)의 출력값(예를 들어 dxdt)에 가중치를 적용한 후, 가우시안 필터를 적용한다.That is, the fourth Gaussian filter 641 applies a weight to the output value (eg, dxdt) of the fourth multiplier 631 output from the fourth multiplier 631 and then applies a Gaussian filter.

또한, 제 5 가우시안 필터(642)는 상기 제 5 곱셈기(632)로부터 출력되는 상기 제 5 곱셈기(632)의 출력값(예를 들어 dxdy)에 가중치를 적용한 후, 가우시안 필터를 적용한다.In addition, the fifth Gaussian filter 642 applies a weight to the output value (eg, dxdy) of the fifth multiplier 632 output from the fifth multiplier 632 and then applies a Gaussian filter.

이와 같이, 상기 복수의 다른 가우시안 필터(640)는 영상에 대한 스무딩 처리를 수행하여, 해당 다른 가우시안 필터(640)의 출력값(예를 들어 가중치가 적용된 widxdt, widydt)을 상기 모션 벡터 연산부(650)에 제공한다.In this way, the plurality of different Gaussian filters 640 perform smoothing processing on an image, and output values (for example, weighted widxdt, widydt) of the corresponding other Gaussian filters 640 are calculated by the motion vector calculator 650 To provide.

상기 모션 벡터 연산부(Motion Vector Calculator)(650)는 상기 복수의 다른 가우시안 필터(640)의 출력값(예를 들어 widxdt, widydt)과, 상기 헤시안 행렬 연산부(300)에서의 출력값(예를 들어 widx2, widxdy, widy2)을 근거로 모션 벡터(예를 들어 (u,v))를 산출한다.The motion vector calculator 650 includes output values (eg, widxdt, widydt) of the plurality of other Gaussian filters 640 and output values (eg, widxdt) from the Hessian matrix calculator 300 (eg, widx 2 , widxdy, widy 2 ) to calculate a motion vector (e.g. (u,v)).

도 9는 상기 모션 벡터 연산부의 블록도로, 상기 모션 벡터 연산부는 계산된 영상 차 값과 그래디언트(gradient) 값에 각각 가중치가 곱해진 값들을 이용하여 앞선 [수학식 11]을 연산한다. 이때, 연산은 영상 차 값과 그래디언트 값들의 덧셈(summation) 및 2×2 인버스 매트릭스(inverse matrix) 연산으로 이루어지므로, 입력되는 영상 차 값과 그래디언트 값들이 어큐뮬레이터 세트(accumulator)로 입력되어 덧셈값을 연산하며, 2×2 인버스 매트릭스 연산을 위해 나눗수(제수, divisor) 계산기 및 나뉨수(피제수, dividend) 계산기와 분할자(divider)를 통해 인버스 매트릭스 연산이 수행되어 최종 모션 벡터 값이 출력된다.9 is a block diagram of the motion vector calculator, and the motion vector calculator calculates [Equation 11] using values obtained by multiplying a calculated image difference value and a gradient value by weights, respectively. At this time, since the operation is performed by summation of image difference values and gradient values and a 2×2 inverse matrix operation, the input image difference values and gradient values are input to an accumulator set to obtain the added value. For the 2×2 inverse matrix operation, the inverse matrix operation is performed through a divider (divisor) calculator, a dividend calculator, and a divider, and the final motion vector value is output.

하지만, 모션 벡터 값을 구하는 과정에서 2×2 인버스 매트릭스 연산이 이뤄지게 되기 때문에, 행렬의 행렬식(determinant)으로 나눠주는 연산이 필요하다. 이때, 일반적인 나눗셈기를 활용하는 경우, 복잡한 알고리즘을 사용하여 상당한 연산량이 요구된다.However, since a 2×2 inverse matrix operation is performed in the process of obtaining a motion vector value, it is necessary to divide it by a determinant of the matrix. In this case, when a general divider is used, a considerable amount of computation is required using a complex algorithm.

본 발명의 실시예에서는 상기 일반적인 나눗셈기 대신, 연산 특성을 고려한 효율적인 디바이더 유닛(divider unit)을 사용하여, 상기 디바이더 유닛은 다음의 도 10의 순서도에 따라 동작한다.In an exemplary embodiment of the present invention, an efficient divider unit in consideration of operation characteristics is used instead of the general divider, and the divider unit operates according to the flowchart of FIG. 10 below.

여기서, 상기 z는 나뉨수, 상기 d는 나눗수, 상기 i는 몫의 정수값, 상기 f는 소수점 자릿수를 나타낸다.Here, z is the number of divisions, d is the number of divisions, i is the integer value of the quotient, and f is the number of decimal places.

즉, 상기 도 10에 도시된 인테저 파트(integer part)는 상기 z가 상기 d보다 작거나 같을 때까지 상기 z를 상기 d로 빼주면서 몫을 누적하여, 몫을 구하고, 플랙션 파트(fraction part)는 나머지를 소수점으로 구한다.That is, the integer part shown in FIG. 10 accumulates the quotient while subtracting z by the d until the z is less than or equal to the d to obtain the quotient, and the fraction part ) Returns the remainder to the decimal point.

상기 디바이더 유닛은 몫의 크기에 따라 레이턴시가 비례하는 특성이 있지만, 모션 벡터를 추정하는 윈도우가 고정된 5×5 크기를 갖기 때문에, 계산된 모션 벡터 결과는 5 이하의 값을 얻게 된다.The divider unit has a characteristic in which the latency is proportional according to the size of the quotient, but since the window for estimating the motion vector has a fixed size of 5×5, the calculated motion vector result is 5 or less.

따라서 10 클록 사이클(clock cycles) 이내로 나눗셈 연산이 가능하기 때문에, 높은 하드웨어 리소스를 갖는 일반적인 나눗셈기 대신, 시프터(shifter)와 감산기(subtractor)만을 사용하여 간단하게 구현 가능하며, 적은 지연시간과 저면적으로 성능 열화없이 인버스 매트릭스 연산이 가능할 수 있다.Therefore, since division operation is possible within 10 clock cycles, it can be implemented simply by using only a shifter and a subtractor instead of a general divider with high hardware resources, and has low latency and low area. As a result, inverse matrix operation can be performed without performance degradation.

또한, 계산이 끝난 모션 벡터 값은 이전의 메모리(700)에 저장되어 있던 값과 더해져 다시 저장되며, 새 저장된 특징점 위치로부터 다시 모션 벡터를 계산하는 과정이 반복된다.In addition, the calculated motion vector value is added to the previously stored value in the memory 700 and stored again, and the process of calculating the motion vector again from the newly stored feature point position is repeated.

해당 과정은 설정된 반복(iteration) 횟수만큼 반복되며, 반복이 끝난 뒤, 계층적 방법을 적용함으로써, 최종 모션 벡터가 계산된다.This process is repeated as many times as a set number of iterations, and after the iteration is over, a final motion vector is calculated by applying a hierarchical method.

이와 같이, 상기 영상 기반 특징점 추적 장치(10)는 모든 특징점에 대해 이러한 추적 과정이 끝났을 때, 다음 프레임의 추적을 진행하는 과정을 반복하여, 매 프레임에서의 모션 벡터들의 평균치를 실시간으로 출력한다.In this way, the image-based feature point tracking device 10 repeats the process of tracking the next frame when the tracking process is completed for all feature points, and outputs an average value of motion vectors in each frame in real time.

상기 모션 벡터 매니저(Motion Vector manager)(660)는 상기 모션 벡터 연산부(650)로부터 산출된 모션 벡터와 상기 메모리(700)에 저장된 특징점의 좌표 정보(또는 좌표값)를 서로 가산하여 보정된 특징점의 좌표 정보를 생성한다.The motion vector manager 660 adds the motion vector calculated from the motion vector calculation unit 650 and the coordinate information (or coordinate values) of the feature points stored in the memory 700 to each other to determine the corrected feature points. Generate coordinate information.

또한, 상기 모션 벡터 매니저(660)는 상기 생성된 보정된 특징점의 좌표 정보를 상기 메모리(700)에 저장한다.In addition, the motion vector manager 660 stores coordinate information of the generated corrected feature point in the memory 700.

이와 같이, 상기 모션 벡터 매니저(660)는 현재 특징점에서 계산된 모션 벡터를 보정한다.In this way, the motion vector manager 660 corrects the motion vector calculated from the current feature point.

상기 모션 추정기(Motion Estimator)(670)는 복수의 상기 보정된 특징점의 좌표 정보(또는 복수의 모션 벡터)에 대한 평균치를 계산한다.The motion estimator 670 calculates an average value of coordinate information (or a plurality of motion vectors) of a plurality of the corrected feature points.

또한, 상기 모션 추정기(670)는 상기 계산된 복수의 보정된 특징점의 좌표 정보에 대한 평균치(u,v 형태로 표현)를 상기 드론의 호버링을 위해서 상기 드론에 제공한다.In addition, the motion estimator 670 provides an average value (expressed in the form of u,v) of the calculated coordinate information of the plurality of corrected feature points to the drone for hovering of the drone.

상기 메모리(700)는 플래시 메모리 타입(Flash Memory Type), 하드 디스크 타입(Hard Disk Type), 멀티미디어 카드 마이크로 타입(Multimedia Card Micro Type), 카드 타입의 메모리(예를 들면, SD 또는 XD 메모리 등), 자기 메모리, 자기 디스크, 광디스크, 램(Random Access Memory: RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory: ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory) 중 적어도 하나의 저장매체를 포함할 수 있다.The memory 700 is a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (eg, SD or XD memory, etc.) , Magnetic memory, magnetic disk, optical disk, RAM (Random Access Memory: RAM), SRAM (Static Random Access Memory), ROM (Read-Only Memory: ROM), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Only Memory) may include at least one storage medium.

또한, 상기 메모리(700)는 상기 특징점 검출부(400)로부터 검출된 복수의 특징점(또는 복수의 특징점의 좌표 정보)을 저장한다.In addition, the memory 700 stores a plurality of feature points (or coordinate information of a plurality of feature points) detected by the feature point detection unit 400.

또한, 상기 메모리(700)는 상기 특징점 추적부(600)에 의해 산출된 모션 벡터와 미리 저장된 특징점의 좌표 정보를 가산하여, 가산된 특징점의 좌표 정보(또는 보정된 특징점의 좌표 정보)를 저장한다.In addition, the memory 700 adds the motion vector calculated by the feature point tracking unit 600 and the coordinate information of the previously stored feature point, and stores coordinate information of the added feature point (or coordinate information of the corrected feature point). .

상기 제어부(800)는 상기 영상 기반 특징점 추적 장치(10)의 전반적인 제어 기능을 수행한다.The controller 800 performs an overall control function of the image-based feature point tracking device 10.

또한, 상기 제어부(800)는 상기 메모리(700)에 저장된 프로그램 및 데이터를 이용하여 영상 기반 특징점 추적 장치(10)의 전반적인 제어 기능을 실행한다. 상기 제어부(800)는 RAM, ROM, CPU, GPU, 버스를 포함할 수 있으며, RAM, ROM, CPU, GPU 등은 버스를 통해 서로 연결될 수 있다. CPU는 상기 메모리(700)에 액세스하여, 상기 메모리(700)에 저장된 O/S를 이용하여 부팅을 수행할 수 있으며, 상기 메모리(700)에 저장된 각종 프로그램, 콘텐츠, 데이터 등을 이용하여 다양한 동작을 수행할 수 있다.In addition, the controller 800 executes an overall control function of the image-based feature point tracking device 10 using programs and data stored in the memory 700. The controller 800 may include RAM, ROM, CPU, GPU, and bus, and RAM, ROM, CPU, GPU, and the like may be connected to each other through a bus. The CPU can access the memory 700 and perform booting using the O/S stored in the memory 700, and various operations using various programs, contents, data, etc. stored in the memory 700 You can do it.

또한, 상기 제어부(800)는 미리 설정된 개수의 이미지(예를 들어 N장의 이미지)에서 특징점 추출 및 추적 과정이 끝나면, 다시 그 다음으로 입력되는 이미지들로부터 특징점 추출 및 추적 과정을 반복적으로 수행하도록 상기 영상 기반 특징점 추적 장치(10)에 포함된 다양한 구성 요소들을 제어한다.In addition, when the process of extracting and tracking feature points from a preset number of images (for example, N images) is finished, the controller 800 repeats the process of extracting and tracking feature points from the next input images. Various components included in the image-based feature point tracking device 10 are controlled.

또한, 상기 제어부(800)는 미리 설정된 개수의 이미지(예를 들어 N장의 이미지) 중에서 첫 번째 이미지에 대해서 특징점 추출 과정이 수행되도록 상기 영상 기반 특징점 추적 장치(10)의 동작 모드를 특징점 검출 모드로 설정(또는 특징점 추적 모드에서 특징점 검출 모드로 전환/변환)한다.In addition, the control unit 800 sets the operation mode of the image-based feature point tracking device 10 as a feature point detection mode so that a feature point extraction process is performed for the first image among a preset number of images (for example, N images). Set (or switch/convert from feature point tracking mode to feature point detection mode).

또한, 상기 제어부(800)는 미리 설정된 개수의 이미지(예를 들어 N장의 이미지) 중에서 첫 번째 이미지를 제외한 나머지 이미지에 대해서 특징점 추적 과정이 수행되도록 상기 영상 기반 특징점 추적 장치(10)의 동작 모드를 특징점 추적 모드로 설정(또는 특징점 검출 모드에서 특징점 추적 모드로 전환/변환)한다.In addition, the control unit 800 sets the operation mode of the image-based feature point tracking device 10 so that the feature point tracking process is performed for the remaining images other than the first image among a preset number of images (for example, N images). Set to the feature point tracking mode (or switch/convert from the feature point detection mode to the feature point tracking mode).

또한, 상기 제어부(800)는 상기 프레임 버퍼(100), 상기 제 1 먹스(200), 상기 헤시안 행렬 연산부(300), 상기 특징점 검출부(400), 상기 제 2 먹스(500), 상기 특징점 추적부(600) 및 상기 메모리(700)의 동작을 제어하여, 미리 설정된 이미지 개수 단위로, 해당 이미지로부터 복수의 특징점을 검출하는 과정, 연속된 복수의 이미지에 대해 특징점을 추적하여 모션 벡터를 산출하는 과정을 반복 수행한다.In addition, the control unit 800 includes the frame buffer 100, the first mux 200, the Hessian matrix operator 300, the feature point detection unit 400, the second mux 500, and the feature point tracking. Controlling the operation of the unit 600 and the memory 700 to detect a plurality of feature points from a corresponding image in units of a preset number of images, and calculating a motion vector by tracking feature points for a plurality of consecutive images. Repeat the process.

이와 같이, 드론으로부터 획득된 연속된 복수의 영상을 근거로 복수의 특징점을 검출하고, 연속된 영상에 대해 검출된 특징점에 대한 추적을 수행할 수 있다.In this way, a plurality of feature points may be detected based on a plurality of consecutive images acquired from a drone, and the detected feature points may be tracked for the continuous images.

또한, 이와 같이, 특징점 검출과 특징점 추적 알고리즘에 공통으로 사용되는 연산 기능을 공유할 수 있다.In addition, as described above, a computation function commonly used in the feature point detection and feature point tracking algorithms can be shared.

또한, 이와 같이, 모션 벡터 값을 구하는 과정에서 연산 특성을 고려한 효율적인 나눗셈기를 제공할 수 있다.In addition, as described above, it is possible to provide an efficient divider in consideration of computational characteristics in the process of obtaining a motion vector value.

또한, 상기 영상 기반 특징점 추적 장치(10)는 성능 평가를 위해 도 11에 나타낸 DJI phantom4 drone을 활용하였다.In addition, the image-based feature point tracking device 10 utilized the DJI phantom4 drone shown in FIG. 11 for performance evaluation.

다양한 시나리오에 대해 비행 동작을 수행한 후, 각 시나리오별로 드론 하방 카메라로 촬영된 영상과 GPS 좌표 정보를 추출하였다.After performing flight motions for various scenarios, images captured by the drone's lower camera and GPS coordinate information were extracted for each scenario.

촬영된 영상에 대해 제안된 영상 기반 특징점 추적 장치(10)의 추적 결과를 누적시킨 경로와 추출된 GPS 좌표 정보 기반 이동경로를 비교하는 방법으로 추적 성능 평가를 수행하였다.Tracking performance evaluation was performed by comparing a route obtained by accumulating the tracking result of the proposed image-based feature point tracking device 10 for a captured image and a moving route based on the extracted GPS coordinate information.

도 12 내지 도 14에 도시된 바와 같이, 잔디밭, 아스팔트 및 보도블록 환경에서, 실내 환경을 고려한 2m 이하의 고도에서 각각 10초간 비행을 통해 얻은 데이터로 실험을 진행하였다.As shown in FIGS. 12 to 14, experiments were conducted with data obtained by flying for 10 seconds each at an altitude of 2 m or less in consideration of the indoor environment in the environment of a lawn, asphalt and sidewalk block.

비행 영상은 30 fps로 획득되고, GPS 기록은 0.1초 단위로 기록되어 위도 및 경도 데이터로 저장하였다. 이때, 제안된 영상 기반 특징점 추적 장치(10)의 결과는 픽셀 단위로 출력되기 때문에, GPS 기반 이동경로와 비교하기 위해선 각 출력값에 대한 단위 변환이 필요하다. 따라서, 다음의 [수학식 15]를 통해 각 출력값을 메트릭 유닛(metric unit)으로 변환하여 비교 검증을 수행하였다.Flight images were acquired at 30 fps, and GPS records were recorded in 0.1 second increments and stored as latitude and longitude data. In this case, since the result of the proposed image-based feature point tracking device 10 is output in pixel units, unit conversion for each output value is required in order to compare with the GPS-based movement path. Accordingly, comparison verification was performed by converting each output value into a metric unit through the following [Equation 15].

Figure pat00020
Figure pat00020

여기서, 상기 h는 드론의 고도를 나타내고, 상기 wx와 wy는 이미지 센서의 가로 길이 및 세로 길이를 각각 나타내고, 상기 f는 초점 거리를 나타내고, 상기 Rx 및 Ry는 수평 해상도 및 수직 해상도를 각각 나타낸다.Here, h denotes the altitude of the drone, w x and w y denotes the horizontal and vertical lengths of the image sensor, respectively, f denotes the focal length, and R x and R y denotes the horizontal resolution and the vertical resolution. Respectively.

상기 메트릭 유닛으로 변환된 영상 기반 특징점 추적 장치(10)의 출력을 누적시킨 결과와 GPS 좌표정보를 기반으로 획득한 이동경로를 도 15 내지 도 17에 나타내었다.15 to 17 show a result of accumulating the output of the image-based feature point tracking apparatus 10 converted into the metric unit and a movement path obtained based on GPS coordinate information.

본 발명의 실시예에 따른 상기 영상 기반 특징점 추적 장치(10)는 모든 실험 환경에 대해 GPS 기반 결과와 유사한 이동 궤적을 갖는 것을 상기 도 15 내지 도 17을 통해 확인할 수 있다.It can be seen from FIGS. 15 to 17 that the image-based feature point tracking apparatus 10 according to an embodiment of the present invention has a movement trajectory similar to a GPS-based result for all experimental environments.

또한, GPS 기반으로 획득한 이동경로와 상기 영상 기반 특징점 추적 장치(10)의 출력결과에 대한 RMSE를 다음의 [표 1]에 나타내었다.In addition, the RMSE for the movement path acquired based on GPS and the output result of the image-based feature point tracking device 10 are shown in Table 1 below.

EnvironmentEnvironment RMSE [meter]RMSE [meter] grassygrassy 0.370.37 asphaltasphalt 0.640.64 sidewalk blocksidewalk block 0.200.20

상기 [표 1]과 같이, 상기 영상 기반 특징점 추적 장치(10)는 GPS와 유사한 추적 성능 결과를 보임으로써, 실내 환경 등 GPS가 제한된 상황에서도 상기 영상 기반 특징점 추적 장치(10)를 이용하여 호버링이 가능함을 확인할 수 있다.As shown in [Table 1], the image-based feature point tracking device 10 shows a tracking performance result similar to that of GPS, and thus hovering is performed using the image-based feature point tracking device 10 even in a situation where GPS is limited, such as an indoor environment. You can see that it is possible.

또한, 상기 영상 기반 특징점 추적 장치(10)는 Verilog HDL을 이용하여 설계되었으며, 설계 후 Xilinx Virtex-7 xe7vx1140tflg1930-1 FPGA(Field Programmable Gate Array) 디바이스에서 구현 및 검증하였다.In addition, the image-based feature point tracking device 10 was designed using Verilog HDL, and after design, it was implemented and verified in a Xilinx Virtex-7 xe7vx1140tflg1930-1 FPGA (Field Programmable Gate Array) device.

다음의 [표 2]에 상기 영상 기반 특징점 추적 장치(10)의 구현 결과를 나타내었다. 최대 130MHz의 동작 주파수로 총 2744개의 Slice와 25개의 DSP, 11.5개의 block RAM으로 구현 가능함을 확인하였다.Table 2 below shows the implementation results of the image-based feature point tracking device 10. It was confirmed that it can be implemented with a total of 2744 slices, 25 DSPs, and 11.5 block RAMs with an operating frequency of up to 130MHz.

영상 기반 특징점 추적 장치(10)Image-based feature point tracking device (10) FPGA DeviceFPGA Device Xilinx Virtex-7
xc7vx1140tflg1930-1
Xilinx Virtex-7
xc7vx1140tflg1930-1
SliceSlice 27442744 Slice RegistersSlice Registers 55345534 Slice LUTsSlice LUTs 76337633 DSPDSP 2525 Block RAMBlock RAM 11.5 (92.85Kb)11.5 (92.85Kb) FrequencyFrequency 130MHz130 MHz

다음의 [표 3]은 기존 FPGA 기반 PLK 특징점 추적기 설계와 하드웨어 리소스(hardware resource) 비교 결과로, 상기 영상 기반 특징점 추적 장치(10)는 기존 피라미달(pyramidal) KLT 특징점 추적기 대비 70% 이상의 면적 감소를 보였다.The following [Table 3] is a result of comparing the design of the conventional FPGA-based PLK feature point tracker and hardware resource. The image-based feature point tracking device 10 has an area reduction of more than 70% compared to the existing pyramidal KLT feature point tracker. Showed.

Slice RegisterSlice Register Slice LUTSlice LUT Block RAMBlock RAM 본 발명The present invention 55345534 76337633 11.511.5 피라미달 KLTPyramidal KLT 2412724127 2400224002 5151 ImprovementImprovement 76.8%76.8% 68.2%68.2% 78.4%78.4%

또한, 한 장의 영상을 리드(read)하는데 걸리는 클록 사이클(clock cycle)을 프레임 사이클(frame cycle)이라 하면, 상기 영상 기반 특징점 추적 장치(10)의 경우, 특징점 검출 과정에서는 약 1.01 프레임 사이클이 소요되고, 특징점 추적에서는 특징점 하나당 평균 2550 클록 사이클이 소요된다.In addition, if the clock cycle taken to read one image is called a frame cycle, in the case of the image-based feature point tracking device 10, about 1.01 frame cycle is required in the feature point detection process. In the feature point tracking, an average of 2550 clock cycles per feature point is required.

따라서, 130MHz의 동작 주파수에서 640×480 VGA 영상에 대해 386 fps의 처리가 가능하고, 최대 122개의 특징점에 대해 추적이 가능하다.Therefore, it is possible to process 386 fps for a 640×480 VGA image at an operating frequency of 130 MHz, and to track a maximum of 122 feature points.

다음의 [표 4]는 기존 FPGA 기반 특징점 추적기들과의 처리 속도 및 특징점 추적 가능 개수 비교 결과로, 상기 영상 기반 특징점 추적 장치(10)는 기존 대비 더 빠른 속도로 처리 가능함을 나타내었다.The following [Table 4] is a result of comparing the processing speed and the number of feature points traceable with the existing FPGA-based feature point trackers, and it is shown that the image-based feature point tracking device 10 can process at a higher speed than the conventional one.

ResolutionResolution FPSFPS FrequencyFrequency Number of feature pointNumber of feature point 비교 대상 1Compare object 1 480×720480×720 6060 209.25209.25 100100 비교 대상 2Compare object 2 320×240320×240 6060 125.36125.36 -- 비교 대상 3Comparison target 3 1024×7681024×768 182182 182.29182.29 10001000 본발명The present invention 640×480640×480 386386 130130 122122 scalingscaling 1024×7681024×768 153153 130130 11651165

여기서, 상기 비교 대상 1은 G. K. Wonjun Jang, Sungchanoh, "A hardwar implementation of pyramidal KLT feature tracker for driving assistance system," in Proceedings of the 12th International IEEE Conference on Intelligent Transportation Systems, St Louis, MO, USA, Oct. 2009, pp. 220-225.이고, 상기 비교 대상 2는 Y. C. Ham, Y. Shi, "Developing a smart camera for gesture recognition in HCI applications", Proc. 13th IEEE Int. Symp. Consumer Electron. (ISCE), pp. 994-998, May 2009.이고, 상기 비교 대상 3은 Zhilei Chai, Jianbo Shi, "Improving KLT in Embedded Systems by Processing Oversampling Video Sequence in Real-Time", RECONFIG 2011 Reconfigurable Computing and FPGAs International Conference on Reconfigurable Computing and FPGAs International Conference on 2011, pp. 297-302이다.Here, the comparison object 1 is G. K. Wonjun Jang, Sungchanoh, "A hardwar implementation of pyramidal KLT feature tracker for driving assistance system," in Proceedings of the 12th International IEEE Conference on Intelligent Transportation Systems, St Louis, MO, USA, Oct. 2009, pp. 220-225., the comparison object 2 is Y. C. Ham, Y. Shi, "Developing a smart camera for gesture recognition in HCI applications", Proc. 13th IEEE Int. Symp. Consumer Electron. (ISCE), pp. 994-998, May 2009. The comparison target 3 is Zhilei Chai, Jianbo Shi, "Improving KLT in Embedded Systems by Processing Oversampling Video Sequence in Real-Time", RECONFIG 2011 Reconfigurable Computing and FPGAs International Conference on Reconfigurable Computing and FPGAs International Conference on 2011, pp. It is 297-302.

이와 같이, 상기 영상 기반 특징점 추적 장치(10)는 드론의 호버링을 위한 효율적인 구조의 KLT 특징점 추적 장치를 제공하고, 이의 하드웨어 구조 설계 결과를 제공한다.As described above, the image-based feature point tracking device 10 provides a KLT feature point tracking device having an efficient structure for hovering a drone, and provides a hardware structure design result thereof.

또한, 상기 영상 기반 특징점 추적 장치(10)는 Shi-Tomasi 특징점 검출 알고리즘과 PLK 특징점 추적 알고리즘을 간소화하고, 효율적인 하드웨어 설계 및 특징점 검출부와 특징점 추적부의 연산 공유 구조를 통해 저면적, 저전력의 효율적인 구조를 제공한다.In addition, the image-based feature point tracking device 10 simplifies the Shi-Tomasi feature point detection algorithm and the PLK feature point tracking algorithm, and provides an efficient structure of low area and low power through an efficient hardware design and an operation sharing structure of the feature point detection unit and the feature point tracking unit. to provide.

또한, 상기 영상 기반 특징점 추적 장치(10)는 실제 드론환경에서 실험 및 검증을 수행한 결과, 드론에 탑재된 GPS 정보 기반 결과와 유사한 성능을 갖는 것을 확인하였으며, 이의 실시간 검증을 위해 하드웨어 구조 설계를 진행하였다. FPGA 기반 구현 결과, 최대 130MHz의 동작 주파수로 총 2744개의 Slice와 25개의 DSP, 92.85Kbit의 on chip memory로 구현 가능함을 확인하였다. 또한, 640×480 VGA 영상에 대해 최대 386fps로 실시간 동작 가능함을 확인하였다.In addition, the image-based feature point tracking device 10 was confirmed to have similar performance to the GPS information-based result mounted on the drone as a result of performing the experiment and verification in an actual drone environment. Proceeded. As a result of the FPGA-based implementation, it was confirmed that a total of 2744 slices, 25 DSPs, and 92.85Kbit on chip memory can be implemented with an operating frequency of up to 130MHz. In addition, it was confirmed that real-time operation is possible at a maximum of 386 fps for 640×480 VGA video.

이하에서는, 본 발명에 따른 드론 정지 비행을 위한 영상 기반 특징점 추적 방법을 도 1 내지 도 18을 참조하여 상세히 설명한다.Hereinafter, an image-based feature point tracking method for a stop flight of a drone according to the present invention will be described in detail with reference to FIGS. 1 to 18.

도 18은 본 발명의 실시예에 따른 드론 정지 비행을 위한 영상 기반 특징점 추적 방법을 나타낸 흐름도이다.18 is a flowchart illustrating an image-based feature point tracking method for stationary flight of a drone according to an embodiment of the present invention.

먼저, 프레임 버퍼(100)는 드론(미도시)으로부터 획득되는 연속된 복수의 이미지(또는 복수의 영상/하방 영상)를 임시 저장한다. 이때, 상기 드론으로부터 획득되는 이미지는 상기 드론의 하부에 구비된 카메라(미도시)를 통해 해당 드론이 위치하는(또는 이동하는) 지역의 하방에 대응하는 이미지일 수 있다.First, the frame buffer 100 temporarily stores a plurality of consecutive images (or a plurality of images/bottom images) acquired from a drone (not shown). In this case, the image obtained from the drone may be an image corresponding to a lower portion of an area in which the drone is located (or moved) through a camera (not shown) provided under the drone.

또한, 제어부(800)는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치(10)의 동작 모드를 특징점 검출 모드로 설정한다.In addition, the control unit 800 sets an operation mode of the image-based feature point tracking device 10 for a stop flight of a drone as a feature point detection mode.

일 예로, 상기 프레임 버퍼(100)는 상기 드론으로부터 획득되는 연속된 제 1 이미지 내지 제 10 이미지를 임시 저장한다.For example, the frame buffer 100 temporarily stores consecutive first to tenth images obtained from the drone.

또한, 상기 제어부(800)는 상기 영상 기반 특징점 추적 장치(10)의 동작 모드를 특징점 검출 모드로 설정한다(S1810).In addition, the control unit 800 sets the operation mode of the image-based feature point tracking device 10 as a feature point detection mode (S1810).

이후, 제 1 먹스(200)는 상기 프레임 버퍼(100)로부터 제공되는 연속된 복수의 이미지 중에서 첫 번째 이미지를 출력한다.Thereafter, the first mux 200 outputs a first image from among a plurality of consecutive images provided from the frame buffer 100.

일 예로, 상기 제 1 먹스(200)는 상기 프레임 버퍼(100)로부터 출력되는 제 1 이미지 내지 제 3 이미지 중에서 첫 번째 이미지인 제 1 이미지를 출력한다(S1820).For example, the first mux 200 outputs a first image, which is a first image from among the first to third images output from the frame buffer 100 (S1820).

이후, 헤시안 행렬 연산부(Hessian-matrix calculation unit: HSU)(300)는 상기 제 1 먹스(200)로부터 출력되는 첫 번째 이미지 또는 특징점 추적부(600)로부터 출력되는 보간된 첫 번째 이미지로부터 특징점 검출(또는 특징점 추출) 과정과 특징점 추적 과정에서의 동일한 행렬의 원소를 계산(또는 산출)한다.Thereafter, the Hessian-matrix calculation unit (HSU) 300 detects feature points from the first image output from the first mux 200 or the interpolated first image output from the feature point tracking unit 600. In the (or feature point extraction) process and the feature point tracking process, the elements of the same matrix are calculated (or calculated).

즉, 상기 헤시안 행렬 연산부(300)는 상기 제 1 먹스(200)로부터 출력되는 첫 번째 이미지 또는 상기 특징점 추적부(600)로부터 출력되는 보간된 첫 번째 이미지에 대해서 상기 영상 기반 특징점 추적 장치(10)의 동작 모드에 따라 상기 제 1 먹스(200)로부터 출력되는 첫 번째 이미지 또는 상기 특징점 추적부(600)로부터 출력되는 보간된 첫 번째 이미지로부터 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy)를 계산한다.That is, the Hessian matrix operation unit 300 is the image-based feature point tracking device 10 for the first image output from the first mux 200 or the interpolated first image output from the feature point tracking unit 600. ) From the first image output from the first mux 200 or the interpolated first image output from the feature point tracking unit 600 according to the operation mode of the x-direction (dx) and the y-direction. Calculate the contrast (dy).

또한, 상기 헤시안 행렬 연산부(300)는 상기 계산된 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy)에 복수의 곱셈기를 적용하여 상기 특징점 검출 과정과 특징점 추적 과정에서 동일하게 사용되는 복수의 변수를 생성하고, 상기 생성된 복수의 변수에 대해 가중치를 각각 적용한 후 가우시안 필터링하여, 헤시안 행렬 연산부(300)의 출력값(또는 가우시안 필터링된 상기 헤시안 행렬 연산부(300)의 출력값)(예를 들어 가중치가 적용된 widx2, widxdy, widy2)을 생성(또는 출력)한다.In addition, the Hessian matrix operator 300 applies a plurality of multipliers to the calculated contrast difference in the x direction (dx) and the contrast difference in the y direction (dy) to be the same in the process of detecting the feature point and the process of tracking the feature point. A plurality of variables that are used in the same manner are generated, weights are applied to the generated variables, and then Gaussian filtering is performed, and an output value of the Hessian matrix operator 300 (or the Gaussian filtered Hessian matrix operator 300) Output value) (for example, weighted widx 2 , widxdy, widy 2 ) is generated (or output).

일 예로, 사기 특징점 추적부(600)는 상기 제 1 먹스(200)로부터 출력되는 제 1 이미지에 대해 보간 연산을 수행하고, 보간된 제 1 이미지를 상기 헤시안 행렬 연산부(300)로 출력한다.For example, the fraudulent feature point tracking unit 600 performs an interpolation operation on a first image output from the first mux 200 and outputs the interpolated first image to the Hessian matrix calculator 300.

또한, 상기 영상 기반 특징점 추적 장치(10)의 동작 모드가 특징점 검출 모드인 상태에서, 상기 헤시안 행렬 연산부(300)는 상기 제 1 먹스(200)로부터 출력되는 제 1 이미지와 상기 특징점 추적부(600)로부터 출력되는 보간된 제 1 이미지 중에서 상기 특징점 검출 모드에 따라 상기 제 1 먹스(200)로부터 출력되는 제 1 이미지를 선택한다.In addition, in a state in which the operation mode of the image-based feature point tracking device 10 is a feature point detection mode, the Hessian matrix calculating unit 300 includes a first image output from the first mux 200 and the feature point tracking unit ( From among the interpolated first images output from 600), a first image output from the first mux 200 is selected according to the feature point detection mode.

또한, 상기 헤시안 행렬 연산부(300)는 상기 선택된 제 1 이미지로부터 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy)를 계산한다.In addition, the Hessian matrix operator 300 calculates a contrast difference dx in the x direction and a contrast difference dy in the y direction from the selected first image.

또한, 상기 헤시안 행렬 연산부(300)는 상기 계산된 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy)에 곱셈기를 각각 적용하여 복수의 변수를 생성하고, 상기 생성된 복수의 변수에 대해 가중치를 적용한 후 가우시안 필터링하여, 헤시안 행렬 연산부(300)의 출력값(예를 들어 widx2, widxdy, widy2)을 생성(또는 출력)한다.In addition, the Hessian matrix operator 300 generates a plurality of variables by applying a multiplier to the calculated contrast difference in the x direction (dx) and the contrast difference in the y direction (dy), and the generated plurality After applying a weight to the variable of, Gaussian filtering is performed to generate (or output) an output value (eg, widx 2 , widxdy, widy 2) of the Hessian matrix operator 300.

다른 일 예로, 상기 특징점 추적부(600)는 상기 제 1 먹스(200)로부터 출력되는 제 2 이미지에 대해 보간 연산을 수행하고, 보간된 제 2 이미지를 상기 헤시안 행렬 연산부(300)로 출력한다.As another example, the feature point tracking unit 600 performs an interpolation operation on the second image output from the first mux 200, and outputs the interpolated second image to the Hessian matrix operator 300. .

또한, 상기 영상 기반 특징점 추적 장치(10)의 동작 모드가 특징점 추적 모드인 상태에서, 상기 헤시안 행렬 연산부(300)는 상기 제 1 먹스(200)로부터 출력되는 제 2 이미지와 상기 특징점 추적부(600)로부터 출력되는 보간된 제 2 이미지 중에서 상기 특징점 추적 모드에 따라 상기 특징점 추적부(600)로부터 출력되는 보간된 제 2 이미지를 선택한다.In addition, in a state in which the operation mode of the image-based feature point tracking device 10 is a feature point tracking mode, the Hessian matrix calculating unit 300 includes a second image output from the first mux 200 and the feature point tracking unit ( Among the interpolated second images output from 600), an interpolated second image output from the feature point tracking unit 600 is selected according to the feature point tracking mode.

또한, 상기 헤시안 행렬 연산부(300)는 상기 선택된 보간된 제 2 이미지로부터 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy)를 계산한다.In addition, the Hessian matrix operator 300 calculates a contrast difference dx in the x direction and a contrast difference dy in the y direction from the selected interpolated second image.

또한, 상기 헤시안 행렬 연산부(300)는 상기 계산된 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy)에 곱셈기를 각각 적용하여 복수의 변수를 생성하고, 상기 생성된 복수의 변수에 대해 가중치를 적용한 후 가우시안 필터링하여, 헤시안 행렬 연산부(300)의 출력값을 생성(또는 출력)한다(S1830).In addition, the Hessian matrix operator 300 generates a plurality of variables by applying a multiplier to the calculated contrast difference in the x direction (dx) and the contrast difference in the y direction (dy), and the generated plurality After applying a weight to the variable of, Gaussian filtering is performed to generate (or output) an output value of the Hessian matrix operator 300 (S1830).

이후, 특징점 검출부(400)는 상기 첫 번째 이미지로부터 복수의 특징점을 검출한다.Thereafter, the feature point detection unit 400 detects a plurality of feature points from the first image.

즉, 상기 특징점 검출부(400)는 상기 헤시안 행렬 연산부(300)로부터의 출력값(또는 가우시안 필터링된 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy))에 대해 고윳값을 계산한다.That is, the feature point detection unit 400 calculates a high value for the output value from the Hessian matrix operation unit 300 (or the Gaussian-filtered contrast difference in the x direction (dx) and the contrast difference in the y direction (dy)). Calculate.

또한, 상기 특징점 검출부(400)는 상기 계산된 복수의 고윳값을 내림차순으로 정렬한다.In addition, the feature point detection unit 400 sorts the calculated plurality of high Yu values in descending order.

또한, 상기 특징점 검출부(400)는 내림차순으로 정렬된 복수의 고윳값 중에서 영상 경계에 있지 않으면서도 고윳값이 임계값 이상인 지점을 특징점 후보군으로 선정한다. 이때, 상기 특징점 검출부(400)는 상기 내림차순으로 정렬된 복수의 고윳값 중에서 고윳값이 높은 순으로 미리 설정된 개수(예를 들어 128개)를 상기 특징점 후보군으로 선정할 수도 있다.In addition, the feature point detection unit 400 selects, as a feature point candidate group, a point that is not at an image boundary and has a high eigen value equal to or greater than a threshold value among a plurality of high eigen values arranged in descending order. In this case, the feature point detection unit 400 may select a preset number (for example, 128) as the feature point candidate group in the order of highest high yin values among a plurality of high yin values arranged in the descending order.

또한, 상기 특징점 검출부(400)는 상기 선정된 특징점 후보군에 포함된 다수의 특징점 중에서 일정 거리 내의 특징점을 제외하여 최종적인 복수의 특징점을 선정(또는 선별)한다. 이때, 상기 특징점 검출부(400)는 상기 이미지를 복수의 영역으로 나누고(또는 분할하고), 각 영역 내에서 각각 가장 먼저 입력되는 특징점 후보군 하나만을 최종 특징점에 포함시킬 수 있다.In addition, the feature point detection unit 400 selects (or selects) a final plurality of feature points excluding feature points within a predetermined distance from among a plurality of feature points included in the selected feature point candidate group. In this case, the feature point detection unit 400 may divide (or divide) the image into a plurality of regions, and include only one feature point candidate group inputted first in each region as a final feature point.

또한, 상기 특징점 검출부(400)는 상기 선정된(또는 선별된) 복수의 특징점(또는 복수의 특징점의 좌표 정보)을 메모리(700)에 저장한다.In addition, the feature point detection unit 400 stores the selected (or selected) plurality of feature points (or coordinate information of the plurality of feature points) in the memory 700.

또한, 상기 제어부(800)는 상기 영상 기반 특징점 추적 장치(10)의 동작 모드를 특징점 검출 모드에서 특징점 추적 모드로 변환(또는 설정)한다.In addition, the controller 800 converts (or sets) an operation mode of the image-based feature point tracking device 10 from a feature point detection mode to a feature point tracking mode.

일 예로, 상기 특징점 검출부(400)는 상기 헤시안 행렬 연산부(300)로부터의 출력값에 대해 고윳값을 계산한다.For example, the feature point detection unit 400 calculates a high value for the output value from the Hessian matrix calculator 300.

또한, 상기 특징점 검출부(400)는 상기 계산된 복수의 고윳값을 내림차순으로 정렬한다.In addition, the feature point detection unit 400 sorts the calculated plurality of high Yu values in descending order.

또한, 상기 특징점 검출부(400)는 내림차순으로 정렬된 복수의 고윳값 중에서 미리 설정된 128개를 상기 특징점 후보군으로 선정한다.In addition, the feature point detection unit 400 selects 128 preset values from among a plurality of high values arranged in descending order as the feature point candidate group.

또한, 상기 특징점 검출부(400)는 상기 선정된 특징점 후보군에 포함된 128개의 특징점 중에서 일정 거리 내의 특징점을 제외하여 최종적인 복수의 특징점(예를 들어 100개의 특징점)을 선정한다.In addition, the feature point detection unit 400 selects a final plurality of feature points (eg, 100 feature points) excluding feature points within a predetermined distance from among 128 feature points included in the selected feature point candidate group.

또한, 상기 특징점 검출부(400)는 상기 선정된 100개의 특징점(또는 100개의 특징점의 좌표 정보/좌표값)을 상기 메모리(700)에 저장한다.In addition, the feature point detection unit 400 stores the selected 100 feature points (or coordinate information/coordinate values of 100 feature points) in the memory 700.

또한, 상기 제어부(800)는 상기 영상 기반 특징점 추적 장치(10)의 동작 모드를 특징점 검출 모드에서 특징점 추적 모드로 변환한다(S1840).In addition, the controller 800 converts the operation mode of the image-based feature point tracking device 10 from a feature point detection mode to a feature point tracking mode (S1840).

이후, 제 2 먹스(500)는 상기 프레임 버퍼(100)로부터 제공되는 연속된 복수의 이미지 중에서 현재 시점의 이미지(또는 앞서 상기 제 1 먹스(200)에서의 출력 이미지 다음 순서의 이미지)를 출력한다.Thereafter, the second mux 500 outputs an image of the current viewpoint (or an image in the order following the output image from the first mux 200 earlier) from among a plurality of consecutive images provided from the frame buffer 100. .

일 예로, 상기 제 2 먹스(500)는 상기 제 1 프레임 버퍼로부터 출력되는 제 1 이미지 내지 제 3 이미지 중에서 첫 번째 이미지인 상기 제 1 이미지 다음 순서인 제 2 이미지를 출력한다(S1850).As an example, the second mux 500 outputs a second image, which is a first image, which is a second image in order after the first image, from among the first to third images output from the first frame buffer (S1850).

이후, 상기 특징점 추적부(600)는 연속된 복수의 이미지(예를 들어 이전 이미지 및 현재 이미지)에 대해 특징점을 추적하여 모션 벡터를 산출한다.Thereafter, the feature point tracking unit 600 calculates a motion vector by tracking feature points for a plurality of consecutive images (for example, a previous image and a current image).

즉, 상기 특징점 추적부(600)는 상기 제 1 먹스(200)로부터 출력되는 이전 이미지를 보간 처리하고, 상기 제 2 먹스(500)로부터 출력되는 현재 이미지를 보간 처리한다.That is, the feature point tracking unit 600 interpolates the previous image output from the first mux 200 and interpolates the current image output from the second mux 500.

또한, 상기 특징점 추적부(600)는 상기 보간된 이전 이미지와 상기 보간된 현재 이미지 간의 명암차(dt)를 계산한다.In addition, the feature point tracking unit 600 calculates a contrast difference (dt) between the interpolated previous image and the interpolated current image.

또한, 상기 특징점 추적부(600)는 상기 헤시안 행렬 연산부(300)에서 계산된 이전 이미지에 대한 x 방향으로의 명암차(dx)와 상기 계산된 명암차(dt)에 가중치와 곱셈기를 적용한 후 가우시안 필터링하고, 상기 헤시안 행렬 연산부(300)에서 계산된 이전 이미지에 대한 y 방향으로의 명암차(dy)와 상기 계산된 명암차(dt)에 가중치와 곱셈기를 적용한 후 가우시안 필터링한다.In addition, the feature point tracking unit 600 applies a weight and a multiplier to the x-direction contrast (dx) and the calculated contrast (dt) with respect to the previous image calculated by the Hessian matrix calculation unit 300. After Gaussian filtering is performed, a weight and a multiplier are applied to the intensity difference dy in the y direction of the previous image calculated by the Hessian matrix operator 300 and the calculated contrast difference dt, and then Gaussian filtering is performed.

또한, 상기 특징점 추적부(600)는 상기 가우시안 필터링된 값(예를 들어 widxdt, widydt)과, 상기 헤시안 행렬 연산부(300)에서의 출력값(예를 들어 widx2, widxdy, widy2)을 근거로 모션 벡터(예를 들어 (u,v))를 산출한다.In addition, the feature point tracking unit 600 is based on the Gaussian filtered value (eg, widxdt, widydt) and an output value (eg, widx 2 , widxdy, widy 2 ) from the Hessian matrix operator 300 Calculate a motion vector (e.g. (u,v)) with.

또한, 상기 특징점 추적부(600)는 상기 산출된 모션 벡터와 상기 메모리(700)에 저장된 특징점의 좌표 정보(또는 좌표값)를 서로 가산하여 보정된 특징점의 좌표 정보를 상기 메모리(700)에 저장한다.In addition, the feature point tracking unit 600 stores coordinate information of the corrected feature point in the memory 700 by adding the calculated motion vector and coordinate information (or coordinate value) of the feature point stored in the memory 700 to each other. do.

또한, 상기 특징점 추적부(600)는 상기 보정된 특징점의 좌표 정보를 입력값으로 하여 미리 설정된 횟수(예를 들어 5회)만큼 모션 벡터를 산출하는 과정을 반복 수행하여 최종적인 모션 벡터를 산출한다.In addition, the feature point tracking unit 600 repeatedly performs a process of calculating a motion vector for a preset number of times (for example, 5 times) using coordinate information of the corrected feature point as an input value to calculate a final motion vector. .

또한, 상기 특징점 추적부(600)는 상기 드론에서 호버링 기능을 수행할 수 있도록 상기 산출된 모션 벡터를 상기 드론에 제공한다. 이에 따라, 상기 드론은 상기 특징점 추적부(600)로부터 제공되는 모션 벡터를 근거로 해당 드론의 동작을 제어하여 호버링 기능을 수행할 수 있다.In addition, the feature point tracking unit 600 provides the calculated motion vector to the drone so that the drone can perform a hovering function. Accordingly, the drone may perform a hovering function by controlling an operation of a corresponding drone based on a motion vector provided from the feature point tracking unit 600.

일 예로, 상기 특징점 추적부(600)는 상기 제 1 먹스(200)로부터 출력되는 제 1 이미지를 보간 처리하고, 상기 제 2 먹스(500)로부터 출력되는 제 2 이미지를 보간 처리한다.For example, the feature point tracking unit 600 interpolates a first image output from the first mux 200 and interpolates a second image output from the second mux 500.

또한, 상기 특징점 추적부(600)는 상기 보간된 제 1 이미지와 상기 보간된 제 2 이미지 간의 명암차(dt)를 계산한다.In addition, the feature point tracking unit 600 calculates a contrast difference dt between the interpolated first image and the interpolated second image.

또한, 상기 특징점 추적부(600)는 상기 헤시안 행렬 연산부(300)에서 계산된 제 1 이미지에 대한 x 방향으로의 명암차(dx)와 상기 계산된 명암차(dt)에 곱셈기를 적용하여 다른 변수(예를 들어 dxdt)를 생성하고, 상기 생성된 다른 변수에 대해 가중치를 적용한 후 가우시안 필터링하고, 상기 헤시안 행렬 연산부(300)에서 계산된 제 1 이미지에 대한 y 방향으로의 명암차(dy)와 상기 계산된 명암차(dt)에 곱셈기를 적용하여 다른 변수(예를 들어 dydt)를 생성하고, 상기 생성된 다른 변수에 대해 가중치를 적용한 후 가우시안 필터링한다.In addition, the feature point tracking unit 600 applies a multiplier to the contrast difference (dx) in the x direction of the first image calculated by the Hessian matrix calculation unit (300) and the calculated contrast difference (dt). A variable (for example, dxdt) is generated, a weight is applied to the generated other variable, and then Gaussian filtering is performed, and the contrast (dy) in the y direction for the first image calculated by the Hessian matrix operator 300 ) And the calculated contrast (dt) to generate another variable (for example, dydt), and apply a weight to the generated other variable, followed by Gaussian filtering.

또한, 상기 특징점 추적부(600)는 상기 가우시안 필터링된 값(예를 들어 widxdt, widydt)과, 상기 헤시안 행렬 연산부(300)에서의 가우시안 필터링된 값(예를 들어 widx2, widxdy, widy2)을 근거로 모션 벡터를 산출한다.In addition, the feature point tracking unit 600 includes the Gaussian filtered values (eg, widxdt, widydt) and the Gaussian filtered values (eg, widx 2 , widxdy, widy 2) in the Hessian matrix calculator 300. ) To calculate the motion vector.

또한, 상기 특징점 추적부(600)는 상기 산출된 모션 벡터와 상기 메모리(700)에 저장된 특징점의 좌표 정보(또는 좌표값)를 서로 가산하여 보정된 특징점의 좌표 정보를 상기 메모리(700)에 저장한다.In addition, the feature point tracking unit 600 stores coordinate information of the corrected feature point in the memory 700 by adding the calculated motion vector and coordinate information (or coordinate value) of the feature point stored in the memory 700 to each other. do.

또한, 상기 특징점 추적부(600)는 상기 보정된 특징점의 좌표 정보를 입력값으로 하여 미리 설정된 횟수인 5회만큼 모션 벡터를 산출하는 과정을 반복 수행하여 최종적인 모션 벡터를 산출한다.In addition, the feature point tracking unit 600 calculates a final motion vector by repeatedly performing a process of calculating a motion vector five times, which is a preset number of times, using coordinate information of the corrected feature point as an input value.

또한, 상기 특징점 추적부(600)는 상기 드론에서 호버링 기능을 수행할 수 있도록 상기 산출된 모션 벡터를 상기 드론에 제공한다(S1860).In addition, the feature point tracking unit 600 provides the calculated motion vector to the drone so that the drone can perform a hovering function (S1860).

이후, 상기 제어부(800)는 상기 프레임 버퍼(100), 상기 제 1 먹스(200), 상기 헤시안 행렬 연산부(300), 상기 특징점 검출부(400), 상기 제 2 먹스(500), 상기 특징점 추적부(600) 및 상기 메모리(700)의 동작을 제어하여, 미리 설정된 이미지 개수 단위로, 해당 이미지로부터 복수의 특징점을 검출하는 과정, 연속된 복수의 이미지에 대해 특징점을 추적하여 모션 벡터를 산출하는 과정을 반복 수행한다.Thereafter, the control unit 800 tracks the frame buffer 100, the first mux 200, the Hessian matrix operator 300, the feature point detection unit 400, the second mux 500, and the feature point. Controlling the operation of the unit 600 and the memory 700 to detect a plurality of feature points from a corresponding image in units of a preset number of images, and calculating a motion vector by tracking feature points for a plurality of consecutive images. Repeat the process.

일 예로, 상기 프레임 버퍼(100), 상기 제 1 먹스(200), 상기 헤시안 행렬 연산부(300), 상기 특징점 검출부(400), 상기 제 2 먹스(500), 상기 특징점 추적부(600) 및 상기 메모리(700)는 상기 제어부(800)의 제어에 의해, 미리 설정된 이미지 개수인 10개 단위로, 10개의 이미지 중 첫 번째 이미지에 대해서 특징점을 검출하는 과정을 수행하고, 10개의 이미지 중 연속된 2개의 이미지에 대해서 특징점을 추적하는 과정을 수행한다(S1870).For example, the frame buffer 100, the first mux 200, the Hessian matrix calculator 300, the feature point detection section 400, the second mux 500, the feature point tracking section 600, and The memory 700 performs a process of detecting a feature point for the first image among 10 images in units of 10 preset images under the control of the controller 800, and A process of tracking feature points for two images is performed (S1870).

본 발명의 실시예는 앞서 설명된 바와 같이, 드론으로부터 획득된 연속된 복수의 영상을 근거로 복수의 특징점을 검출하고, 연속된 영상에 대해 검출된 특징점에 대한 추적을 수행하여, 성능 저하가 없으면서도 간소화를 통해 복잡도를 줄일 수 있다.As described above, the embodiment of the present invention detects a plurality of feature points based on a plurality of consecutive images acquired from a drone, and performs tracking on the detected feature points for consecutive images, without deteriorating performance. Complexity can be reduced through simplification.

또한, 본 발명의 실시예는 앞서 설명된 바와 같이, 특징점 검출과 특징점 추적 알고리즘에 공통으로 사용되는 연산 기능을 공유하여, 저전력 및 저면적으로도 우수한 추적 성능 지원이 가능할 수 있다.In addition, as described above, the embodiment of the present invention shares an operation function commonly used for feature point detection and feature point tracking algorithms, so that excellent tracking performance can be supported even with low power consumption and low area.

또한, 본 발명의 실시예는 앞서 설명된 바와 같이, 모션 벡터 값을 구하는 과정에서 연산 특성을 고려한 효율적인 나눗셈기를 제공하여, 기존의 나눗셈기 대신 연산량을 줄여 효율적인 시스템 운영이 가능할 수 있다.In addition, as described above, an exemplary embodiment of the present invention provides an efficient divider in consideration of arithmetic characteristics in the process of obtaining a motion vector value, so that an efficient system operation may be possible by reducing an amount of computation instead of a conventional divider.

전술된 내용은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above-described contents may be modified and modified without departing from the essential characteristics of the present invention by those of ordinary skill in the technical field to which the present invention pertains. Accordingly, the embodiments disclosed in the present invention are not intended to limit the technical idea of the present invention, but to explain the technical idea, and the scope of the technical idea of the present invention is not limited by these embodiments. The scope of protection of the present invention should be construed by the following claims, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of the present invention.

10: 드론 정지 비행을 위한 영상 기반 특징점 추적 장치
100: 프레임 버퍼 200: 제 1 먹스
300: 헤시안 행렬 연산부 400: 특징점 검출부
500: 제 2 먹스 600: 특징점 추적부
700: 메모리 800: 제어부
310: 제 3 먹스 320: 미분기
330: 복수의 곱셈기 340: 복수의 가우시안 필터
410: 특징점 가능성 연산부 420: 경계 및 임계치 확인부
430: 비최대 억제부 440: 영역 확인부
610: 복수의 보간부 620: 영상차 계산부
630: 복수의 다른 곱셈기 640: 복수의 다른 가우시안 필터
650: 모션 벡터 연산부 660: 모션 벡터 매니저
670: 모션 추정기
10: Image-based feature point tracking device for stationary drone flight
100: frame buffer 200: first mux
300: Hessian matrix operation unit 400: feature point detection unit
500: second mux 600: feature point tracking unit
700: memory 800: control unit
310: third mux 320: differentiator
330: multiple multipliers 340: multiple Gaussian filters
410: feature point possibility calculation unit 420: boundary and threshold check unit
430: non-maximum suppression unit 440: area check unit
610: a plurality of interpolation units 620: image difference calculation unit
630: multiple different multipliers 640: multiple different Gaussian filters
650: motion vector operation unit 660: motion vector manager
670: motion estimator

Claims (36)

드론으로부터 획득되는 연속된 복수의 이미지를 임시 저장하는 프레임 버퍼;
상기 프레임 버퍼를 포함하는 영상 기반 특징점 추적 장치의 동작 모드를 특징점 검출 모드 또는 특징점 추적 모드로 설정하는 제어부;
상기 프레임 버퍼로부터 제공되는 연속된 복수의 이미지 중에서 첫 번째 이미지를 출력하는 제 1 먹스;
상기 제 1 먹스로부터 출력되는 첫 번째 이미지 또는 특징점 추적부로부터 출력되는 보간된 첫 번째 이미지로부터 특징점 검출 과정과 특징점 추적 과정에서의 동일한 행렬의 원소를 계산하는 헤시안 행렬 연산부(Hessian-matrix calculation unit);
상기 첫 번째 이미지로부터 복수의 특징점을 검출하는 특징점 검출부;
상기 프레임 버퍼로부터 제공되는 연속된 복수의 이미지 중에서 현재 시점의 이미지를 출력하는 제 2 먹스; 및
상기 연속된 복수의 이미지에 포함된 이전 이미지 및 현재 이미지에 대해 특징점을 추적하여 모션 벡터를 산출하는 상기 특징점 추적부를 포함하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
A frame buffer temporarily storing a plurality of consecutive images obtained from the drone;
A control unit for setting an operation mode of the image-based feature point tracking device including the frame buffer to a feature point detection mode or a feature point tracking mode;
A first mux outputting a first image from among a plurality of consecutive images provided from the frame buffer;
A Hessian-matrix calculation unit that calculates elements of the same matrix in a feature point detection process and a feature point tracking process from the first image output from the first mux or the interpolated first image output from the feature point tracking unit ;
A feature point detector for detecting a plurality of feature points from the first image;
A second mux outputting an image of a current viewpoint from among a plurality of consecutive images provided from the frame buffer; And
An image-based feature point tracking device for a drone stop flight, including the feature point tracking unit for calculating a motion vector by tracking feature points with respect to a previous image and a current image included in the plurality of consecutive images.
제 1 항에 있어서,
상기 복수의 이미지는,
상기 드론의 하부에 구비된 카메라를 통해 상기 드론이 위치하는 지역의 하방에 대응하는 이미지인 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 1,
The plurality of images,
An image-based feature point tracking device for a drone stop flight, characterized in that the image corresponding to a lower portion of an area in which the drone is located through a camera provided under the drone.
제 1 항에 있어서,
상기 헤시안 행렬 연산부는,
상기 제 1 먹스로부터 출력되는 첫 번째 이미지 또는 상기 특징점 추적부로부터 출력되는 보간된 첫 번째 이미지에 대해서 상기 영상 기반 특징점 추적 장치의 동작 모드가 특징점 검출 모드일 때, 상기 제 1 먹스로부터 출력되는 첫 번째 이미지로부터 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy)를 계산하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 1,
The Hessian matrix operation unit,
When the operation mode of the image-based feature point tracking device is a feature point detection mode for a first image output from the first mux or an interpolated first image output from the feature point tracking unit, a first output from the first mux An image-based feature point tracking device for stationary drone flight, characterized in that calculating a contrast difference (dx) in the x direction and a contrast difference (dy) in the y direction from the image.
제 3 항에 있어서,
상기 헤시안 행렬 연산부는,
상기 제 1 먹스로부터 출력되는 첫 번째 이미지 또는 상기 특징점 추적부로부터 출력되는 보간된 첫 번째 이미지에 대해서 상기 영상 기반 특징점 추적 장치의 동작 모드가 특징점 추적 모드일 때, 상기 특징점 추적부로부터 출력되는 보간된 첫 번째 이미지로부터 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy)를 계산하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 3,
The Hessian matrix operation unit,
With respect to the first image output from the first mux or the interpolated first image output from the feature point tracking unit, when the operation mode of the image-based feature point tracking device is a feature point tracking mode, the interpolated output from the feature point tracking unit An image-based feature point tracking device for stationary drone flight, characterized in that calculating a contrast difference (dx) in the x direction and a contrast difference (dy) in the y direction from the first image.
제 4 항에 있어서,
상기 헤시안 행렬 연산부는,
상기 계산된 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy)에 복수의 곱셈기를 적용하여 상기 특징점 검출 과정과 특징점 추적 과정에서 동일하게 사용되는 복수의 변수를 생성하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 4,
The Hessian matrix operation unit,
A plurality of multipliers are applied to the calculated contrast difference in the x direction (dx) and the contrast difference in the y direction (dy) to generate a plurality of variables that are used equally in the process of detecting the feature point and the process of tracking the feature point. Image-based feature point tracking device for stationary flight of drones.
제 5 항에 있어서,
상기 헤시안 행렬 연산부는,
상기 생성된 복수의 변수에 대해 가중치를 각각 적용한 후 가우시안 필터링하여 상기 동일한 행렬의 원소인 상기 헤시안 행렬 연산부의 출력값을 생성하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 5,
The Hessian matrix operation unit,
The image-based feature point tracking apparatus for drone stop flight, characterized in that for generating an output value of the Hessian matrix operator, which is an element of the same matrix, by applying a weight to each of the generated variables and then Gaussian filtering.
제 1 항에 있어서,
상기 특징점 검출부는,
상기 헤시안 행렬 연산부로부터의 출력값에 대해 고윳값을 계산하고, 상기 계산된 복수의 고윳값을 내림차순으로 정렬하고, 상기 내림차순으로 정렬된 복수의 고윳값 중에서 고윳값이 높은 순으로 미리 설정된 개수를 특징점 후보군으로 선정하고, 상기 선정된 특징점 후보군에 포함된 다수의 특징점 중에서 일정 거리 내의 특징점을 제외하여 최종적인 복수의 특징점을 선정하고, 상기 선정된 복수의 특징점의 좌표 정보를 메모리에 저장하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 1,
The feature point detection unit,
Calculate a high eigen value for the output value from the Hessian matrix operator, sort the calculated plurality of high eigen values in descending order, and feature a preset number in the order of high eigen value among the plurality of high eigen values sorted in the descending order. Selecting as a candidate group, selecting a final plurality of feature points excluding feature points within a certain distance from among a plurality of feature points included in the selected feature point candidate group, and storing coordinate information of the selected plurality of feature points in a memory. A video-based feature point tracking device for stopping flying drones.
제 7 항에 있어서,
상기 특징점 검출부는,
상기 첫 번째 이미지를 복수의 영역으로 나누고, 각 영역 내에서 각각 가장 먼저 입력되는 특징점 후보군 하나만을 최종 특징점에 포함시키는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 7,
The feature point detection unit,
Dividing the first image into a plurality of regions, and including only one of the first feature point candidate group inputted first in each region as a final feature point.
제 1 항에 있어서,
상기 특징점 추적부는,
상기 제 1 먹스로부터 출력되는 이전 이미지를 보간 처리하고, 상기 제 2 먹스로부터 출력되는 현재 이미지를 보간 처리하고, 상기 보간된 이전 이미지와 상기 보간된 현재 이미지 간의 명암차(dt)를 계산하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 1,
The feature point tracking unit,
Interpolating a previous image output from the first mux, interpolating a current image output from the second mux, and calculating a contrast difference (dt) between the interpolated previous image and the interpolated current image Image-based feature point tracking device for stationary flight of drones.
제 9 항에 있어서,
상기 특징점 추적부는,
상기 헤시안 행렬 연산부에서 계산된 이전 이미지에 대한 x 방향으로의 명암차(dx)와 상기 계산된 명암차(dt)에 가중치와 곱셈기를 적용한 후 가우시안 필터링하고, 상기 헤시안 행렬 연산부에서 계산된 이전 이미지에 대한 y 방향으로의 명암차(dy)와 상기 계산된 명암차(dt)에 가중치와 곱셈기를 적용한 후 가우시안 필터링하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 9,
The feature point tracking unit,
After applying a weight and a multiplier to the x-direction contrast (dx) and the calculated contrast (dt) with respect to the previous image calculated by the Hessian matrix calculation unit, Gaussian filtering is performed, and the previous calculated by the Hessian matrix calculation unit An image-based feature point tracking device for stationary drone flight, comprising applying a weight and a multiplier to the contrast (dy) in the y direction of the image and the calculated contrast (dt), and then performing Gaussian filtering.
제 10 항에 있어서,
상기 특징점 추적부는,
상기 가우시안 필터링된 값과 상기 헤시안 행렬 연산부에서의 출력값을 근거로 모션 벡터를 산출하고, 상기 산출된 모션 벡터와 메모리에 저장된 특징점의 좌표 정보를 서로 가산하여 보정된 특징점의 좌표 정보를 상기 메모리에 저장하고, 상기 보정된 특징점의 좌표 정보를 입력값으로 하여 미리 설정된 횟수만큼 모션 벡터를 산출하는 과정을 반복 수행하여 최종적인 모션 벡터를 산출하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 10,
The feature point tracking unit,
A motion vector is calculated based on the Gaussian filtered value and an output value from the Hessian matrix calculator, and the calculated coordinate information of the feature point is added to the memory by adding the calculated motion vector and the coordinate information of the feature point stored in the memory to each other. An image-based feature point tracking device for drone stationary flight, characterized in that the process of calculating a motion vector by a predetermined number of times is repeatedly performed by storing the coordinate information of the corrected feature point as an input value and calculating a final motion vector. .
프레임 버퍼에 의해, 드론으로부터 획득되는 연속된 복수의 이미지를 임시 저장하는 단계;
제어부에 의해, 상기 제어부를 포함하는 영상 기반 특징점 추적 장치의 동작 모드를 특징점 검출 모드로 설정하는 단계;
제 1 먹스에 의해, 상기 프레임 버퍼로부터 제공되는 연속된 복수의 이미지 중에서 첫 번째 이미지를 출력하는 단계;
헤시안 행렬 연산부에 의해, 상기 제 1 먹스로부터 출력되는 첫 번째 이미지 또는 특징점 추적부로부터 출력되는 보간된 첫 번째 이미지로부터 특징점 검출 과정과 특징점 추적 과정에서의 동일한 행렬의 원소를 계산하는 단계;
특징점 검출부에 의해, 상기 첫 번째 이미지로부터 복수의 특징점을 검출하는 단계;
상기 제어부에 의해, 상기 영상 기반 특징점 추적 장치의 동작 모드를 특징점 검출 모드에서 특징점 추적 모드로 변환하는 단계;
제 2 먹스에 의해, 상기 프레임 버퍼로부터 제공되는 연속된 복수의 이미지 중에서 현재 시점의 이미지를 출력하는 단계; 및
상기 특징점 추적부에 의해, 상기 연속된 복수의 이미지에 포함된 이전 이미지 및 현재 이미지에 대해 특징점을 추적하여 모션 벡터를 산출하는 단계를 포함하는 드론 정지 비행을 위한 영상 기반 특징점 추적 방법.
Temporarily storing a plurality of consecutive images obtained from the drone by the frame buffer;
Setting, by a control unit, an operation mode of the image-based feature point tracking device including the control unit as a feature point detection mode;
Outputting, by a first mux, a first image from among a plurality of consecutive images provided from the frame buffer;
Calculating, by a Hessian matrix operator, an element of the same matrix in a feature point detection process and a feature point tracking process from a first image output from the first mux or an interpolated first image output from a feature point tracking unit;
Detecting, by a feature point detection unit, a plurality of feature points from the first image;
Converting, by the control unit, an operation mode of the image-based feature point tracking device from a feature point detection mode to a feature point tracking mode;
Outputting, by a second mux, an image of a current viewpoint from among a plurality of consecutive images provided from the frame buffer; And
And calculating, by the feature point tracking unit, a motion vector by tracking feature points for a previous image and a current image included in the plurality of consecutive images.
제 12 항에 있어서,
상기 복수의 이미지는,
상기 드론의 하부에 구비된 카메라를 통해 상기 드론이 위치하는 지역의 하방에 대응하는 이미지인 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 방법.
The method of claim 12,
The plurality of images,
An image-based feature point tracking method for a stationary flight of a drone, characterized in that an image corresponding to a lower portion of an area in which the drone is located through a camera provided under the drone.
제 12 항에 있어서,
상기 동일한 행렬의 원소를 계산하는 단계는,
상기 제 1 먹스로부터 출력되는 첫 번째 이미지 또는 상기 특징점 추적부로부터 출력되는 보간된 첫 번째 이미지에 대해서 상기 영상 기반 특징점 추적 장치의 동작 모드가 특징점 검출 모드일 때, 상기 제 1 먹스로부터 출력되는 첫 번째 이미지로부터 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy)를 계산하는 과정;
상기 제 1 먹스로부터 출력되는 첫 번째 이미지 또는 상기 특징점 추적부로부터 출력되는 보간된 첫 번째 이미지에 대해서 상기 영상 기반 특징점 추적 장치의 동작 모드가 특징점 추적 모드일 때, 상기 특징점 추적부로부터 출력되는 보간된 첫 번째 이미지로부터 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy)를 계산하는 과정;
상기 계산된 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy)에 복수의 곱셈기를 적용하여 상기 특징점 검출 과정과 특징점 추적 과정에서 동일하게 사용되는 복수의 변수를 생성하는 과정; 및
상기 생성된 복수의 변수에 대해 가중치를 각각 적용한 후 가우시안 필터링하여 상기 동일한 행렬의 원소인 상기 헤시안 행렬 연산부의 출력값을 생성하는 과정을 포함하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 방법.
The method of claim 12,
The step of calculating the elements of the same matrix,
When the operation mode of the image-based feature point tracking device is a feature point detection mode for a first image output from the first mux or an interpolated first image output from the feature point tracking unit, a first output from the first mux Calculating a contrast difference in the x direction (dx) and a contrast difference in the y direction (dy) from the image;
With respect to the first image output from the first mux or the interpolated first image output from the feature point tracking unit, when the operation mode of the image-based feature point tracking device is a feature point tracking mode, the interpolated output from the feature point tracking unit Calculating a contrast difference (dx) in the x direction and a contrast difference (dy) in the y direction from the first image;
Generating a plurality of variables equally used in the feature point detection process and feature point tracking process by applying a plurality of multipliers to the calculated contrast difference in the x direction (dx) and the contrast difference in the y direction (dy); And
And generating an output value of the Hessian matrix operator, which is an element of the same matrix, by applying a weight to each of the generated variables and then performing Gaussian filtering. .
제 12 항에 있어서,
상기 첫 번째 이미지로부터 복수의 특징점을 검출하는 단계는,
상기 헤시안 행렬 연산부로부터의 출력값에 대해 고윳값을 계산하는 과정;
상기 계산된 복수의 고윳값을 내림차순으로 정렬하는 과정;
상기 내림차순으로 정렬된 복수의 고윳값 중에서 고윳값이 높은 순으로 미리 설정된 개수를 특징점 후보군으로 선정하는 과정;
상기 선정된 특징점 후보군에 포함된 다수의 특징점 중에서 일정 거리 내의 특징점을 제외하여 최종적인 복수의 특징점을 선정하는 과정; 및
상기 선정된 복수의 특징점의 좌표 정보를 메모리에 저장하는 과정을 포함하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 방법.
The method of claim 12,
The step of detecting a plurality of feature points from the first image,
Calculating a high value for an output value from the Hessian matrix operator;
Sorting the calculated plurality of high values in descending order;
Selecting a pre-set number as a feature point candidate group in the order of the highest high value among the plurality of high Y values arranged in descending order;
Selecting a final plurality of feature points by excluding feature points within a predetermined distance from among a plurality of feature points included in the selected feature point candidate group; And
And storing coordinate information of the selected plurality of feature points in a memory.
제 15 항에 있어서,
상기 최종적인 복수의 특징점을 선정하는 과정은,
상기 첫 번째 이미지를 복수의 영역으로 나누고, 각 영역 내에서 각각 가장 먼저 입력되는 특징점 후보군 하나만을 최종 특징점에 포함시키는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 방법.
The method of claim 15,
The process of selecting the final plurality of feature points,
Dividing the first image into a plurality of regions, and including only one of the first feature point candidate group inputted first in each region as a final feature point.
제 12 항에 있어서,
상기 모션 벡터를 산출하는 단계는,
상기 제 1 먹스로부터 출력되는 이전 이미지를 보간 처리하고, 상기 제 2 먹스로부터 출력되는 현재 이미지를 보간 처리하는 과정;
상기 보간된 이전 이미지와 상기 보간된 현재 이미지 간의 명암차(dt)를 계산하는 과정;
상기 헤시안 행렬 연산부에서 계산된 이전 이미지에 대한 x 방향으로의 명암차(dx)와 상기 계산된 명암차(dt)에 가중치와 곱셈기를 적용한 후 가우시안 필터링하고, 상기 헤시안 행렬 연산부에서 계산된 이전 이미지에 대한 y 방향으로의 명암차(dy)와 상기 계산된 명암차(dt)에 가중치와 곱셈기를 적용한 후 가우시안 필터링하는 과정;
상기 가우시안 필터링된 값과 상기 헤시안 행렬 연산부에서의 출력값을 근거로 모션 벡터를 산출하는 과정;
상기 산출된 모션 벡터와 메모리에 저장된 특징점의 좌표 정보를 서로 가산하여 보정된 특징점의 좌표 정보를 상기 메모리에 저장하는 과정; 및
상기 보정된 특징점의 좌표 정보를 입력값으로 하여 미리 설정된 횟수만큼 모션 벡터를 산출하는 과정을 반복 수행하여 최종적인 모션 벡터를 산출하는 과정을 포함하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 방법.
The method of claim 12,
The step of calculating the motion vector,
Interpolating a previous image output from the first mux and interpolating a current image output from the second mux;
Calculating a contrast difference (dt) between the interpolated previous image and the interpolated current image;
After applying a weight and a multiplier to the x-direction contrast (dx) and the calculated contrast (dt) with respect to the previous image calculated by the Hessian matrix calculation unit, Gaussian filtering is performed, and the previous calculated by the Hessian matrix calculation unit Applying a weight and a multiplier to the contrast (dy) in the y direction of the image and the calculated contrast (dt), followed by Gaussian filtering;
Calculating a motion vector based on the Gaussian filtered value and an output value from the Hessian matrix operator;
Adding the calculated motion vector and coordinate information of the feature point stored in the memory to each other and storing the corrected coordinate information of the feature point in the memory; And
And a process of calculating a final motion vector by repeating a process of calculating a motion vector as many times as a preset number of times using the coordinate information of the corrected feature point as an input value, and calculating a final motion vector. Way.
미리 설정된 개수 단위의 연속된 복수의 이미지 중에서 첫 번째 이미지를 출력하는 제 1 먹스;
상기 제 1 먹스로부터 출력되는 첫 번째 이미지 또는 특징점 추적부로부터 출력되는 보간된 첫 번째 이미지로부터 특징점 검출 과정과 특징점 추적 과정에서의 동일한 행렬의 원소를 계산하는 헤시안 행렬 연산부;
상기 첫 번째 이미지로부터 복수의 특징점을 검출하는 특징점 검출부;
상기 연속된 복수의 이미지 중에서 현재 시점의 이미지를 출력하는 제 2 먹스; 및
상기 연속된 복수의 이미지에 포함된 이전 이미지 및 현재 이미지에 대해 특징점을 추적하여 모션 벡터를 산출하는 상기 특징점 추적부를 포함하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
A first mux for outputting a first image from among a plurality of consecutive images of a preset number unit;
A Hessian matrix calculator for calculating elements of the same matrix in a feature point detection process and a feature point tracking process from the first image output from the first mux or the interpolated first image output from the feature point tracking unit;
A feature point detector for detecting a plurality of feature points from the first image;
A second mux for outputting an image of a current viewpoint from among the plurality of consecutive images; And
An image-based feature point tracking device for a drone stop flight, including the feature point tracking unit for calculating a motion vector by tracking feature points with respect to a previous image and a current image included in the plurality of consecutive images.
제 18 항에 있어서,
상기 헤시안 행렬 연산부는,
상기 제 1 먹스로부터 출력되는 첫 번째 이미지 또는 상기 특징점 추적부로부터 출력되는 보간된 첫 번째 이미지를 상기 영상 기반 특징점 추적 장치의 동작 모드에 따라 선택적으로 출력하는 제 3 먹스;
상기 제 3 먹스로부터 출력되는 상기 첫 번째 이미지 또는 상기 보간된 첫 번째 이미지로부터 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy)를 계산하는 미분기;
상기 미분기에서 계산된 첫 번째 이미지 또는 보간된 첫 번째 이미지와 관련한 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy)에 대해 곱셈 기능을 적용하여 상기 특징점 검출 과정과 특징점 추적 과정에서 동일하게 사용되는 복수의 변수를 생성하는 복수의 곱셈기; 및
상기 복수의 곱셈기에서 생성된 복수의 변수에 대해서 영상의 스무딩 처리를 수행하여 상기 동일한 행렬의 원소를 계산하는 복수의 가우시안 필터를 포함하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 18,
The Hessian matrix operation unit,
A third mux selectively outputting a first image output from the first mux or an interpolated first image output from the feature point tracking unit according to an operation mode of the image-based feature point tracking device;
A differentiator for calculating a contrast difference (dx) in the x direction and a contrast difference (dy) in the y direction from the first image output from the third mux or the interpolated first image;
The feature point detection process and feature point tracking process by applying a multiplication function to the contrast difference (dx) in the x direction and the contrast difference (dy) in the y direction related to the first image or interpolated first image calculated by the differentiator A plurality of multipliers for generating a plurality of variables used in the same manner; And
And a plurality of Gaussian filters for calculating the elements of the same matrix by performing image smoothing on a plurality of variables generated by the plurality of multipliers.
제 19 항에 있어서,
상기 미분기는,
상기 제 3 먹스의 출력값을 소벨 필터를 사용하여 x 방향과 y 방향으로의 명암차를 계산하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 19,
The differentiator,
An image-based feature point tracking device for stopping flight of a drone, characterized in that for calculating the contrast between the x-direction and the y-direction using a Sobel filter on the output value of the third mux.
제 19 항에 있어서,
상기 복수의 곱셈기는,
상기 미분기에서 계산된 첫 번째 이미지 또는 보간된 첫 번째 이미지와 관련한 x 방향으로의 명암차(dx)를 두 입력으로 하여 곱셈 기능을 수행하여 제 1 출력값(dx2)을 출력하는 제 1 곱셈기;
상기 미분기에서 계산된 첫 번째 이미지 또는 보간된 첫 번째 이미지와 관련한 x 방향으로의 명암차(dx)와 y 방향으로의 명암차(dy)를 두 입력으로 하여 곱셈 기능을 수행하여 제 2 출력값dxdy)을 출력하는 제 2 곱셈기; 및
상기 미분기에서 계산된 첫 번째 이미지 또는 보간된 첫 번째 이미지와 관련한 y 방향으로의 명암차(dy)를 두 입력으로 하여 곱셈 기능을 수행하여 제 3 출력값(dy2)을 출력하는 제 3 곱셈기를 포함하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 19,
The plurality of multipliers,
A first multiplier for outputting a first output value (dx 2 ) by performing a multiplication function by taking two inputs of the first image calculated by the differentiator or the contrast difference (dx) in the x direction related to the first interpolated image;
The second output value dxdy by performing a multiplication function with two inputs of the first image calculated by the differentiator or the contrast difference in the x direction (dx) and the contrast difference in the y direction (dy) related to the first image interpolated) A second multiplier that outputs a; And
A third multiplier for outputting a third output value (dy 2 ) by performing a multiplication function by using the first image calculated by the differentiator or the contrast difference (dy) in the y direction related to the first interpolated image as two inputs. An image-based feature point tracking device for stationary drone flight, characterized in that.
제 21 항에 있어서,
상기 복수의 가우시안 필터는,
상기 제 1 곱셈기로부터 출력되는 상기 제 1 곱셈기의 출력값(dx2)에 가중치를 적용한 후, 가우시안 필터를 적용하여 출력하는 제 1 가우시안 필터;
상기 제 2 곱셈기로부터 출력되는 상기 제 2 곱셈기의 출력값(dxdy)에 가중치를 적용하여 출력하는 제 2 가우시안 필터; 및
상기 제 3 곱셈기로부터 출력되는 상기 제 3 곱셈기의 출력값(dy2)에 가중치를 적용하여 출력하는 제 3 가우시안 필터를 포함하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 21,
The plurality of Gaussian filters,
A first Gaussian filter that applies a weight to the output value (dx 2 ) of the first multiplier output from the first multiplier and then applies a Gaussian filter to output it;
A second Gaussian filter for outputting by applying a weight to the output value dxdy of the second multiplier output from the second multiplier; And
And a third Gaussian filter for outputting by applying a weight to the output value dy 2 of the third multiplier output from the third multiplier.
제 18 항에 있어서,
상기 헤시안 행렬 연산부는,
특징점 검출 과정에 사용되는 Shi-Tomasi 알고리즘과 특징점 추적 과정에 사용되는 PLK(Pyramidal Lucas-Kanade) 알고리즘의 동일한 행렬의 원소를 계산하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 18,
The Hessian matrix operation unit,
An image-based feature point tracking device for drone stationary flight, characterized in that calculating elements of the same matrix of the Shi-Tomasi algorithm used in the feature point detection process and the Pyramidal Lucas-Kanade (PLK) algorithm used in the feature point tracking process.
제 18 항에 있어서,
상기 특징점 검출부는,
상기 헤시안 행렬 연산부로부터의 출력값에 대해 고윳값을 계산하는 특징점 가능성 연산부;
상기 특징점 가능성 연산부에 의해 계산된 고윳값을 근거로 영상 경계에 있지 않으면서도 고윳값이 임계값 이상인 지점을 특징점 후보군으로 선정하는 경계 및 임계치 확인부;
상기 선정된 특징점 후보군에 포함된 다수의 특징점 중에서 고윳값 비교를 통해 근접 후보군에 대한 배제 처리 기능을 수행하는 비최대 억제부; 및
상기 선정된 특징점 후보군에 포함된 다수의 특징점 중에서 일정 거리 내의 특징점을 제외하여 최종적인 복수의 특징점을 선정하는 영역 확인부를 포함하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 18,
The feature point detection unit,
A feature point probability calculator that calculates a high value for the output value from the Hessian matrix calculator;
A boundary and threshold checking unit that selects a point having a high eigen value equal to or greater than a threshold value without being at an image boundary based on the high eigenvalue calculated by the feature point possibility calculating unit as a feature point candidate group;
A non-maximum suppressor for performing an exclusion processing function for a neighboring candidate group by comparing a high value among a plurality of feature points included in the selected feature point candidate group; And
An image-based feature point tracking apparatus for a drone stop flight, comprising: a region checking unit for selecting a final plurality of feature points excluding feature points within a predetermined distance from among a plurality of feature points included in the selected feature point candidate group.
제 24 항에 있어서,
상기 경계 및 임계치 확인부는,
상기 계산된 복수의 고윳값을 내림차순으로 정렬하고, 상기 내림차순으로 정렬된 복수의 고윳값 중에서 영상 경계에 있지 않으면서도 고윳값이 임계값 이상인 지점을 특징점 후보군으로 선정하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 24,
The boundary and threshold checking unit,
Drone stop flight, characterized in that, among the plurality of calculated high-yield values, sorted in descending order, and selected as a feature point candidate group, a point having a high-yield value equal to or greater than a threshold value without being at an image boundary among the plurality of high-yield values arranged in descending order An image-based feature point tracking device for
제 25 항에 있어서,
상기 경계 및 임계치 확인부는,
상기 내림차순으로 정렬된 복수의 고윳값 중에서 고윳값이 높은 순으로 미리 설정된 개수를 상기 특징점 후보군으로 선정하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 25,
The boundary and threshold checking unit,
An image-based feature point tracking apparatus for a drone stop flight, comprising selecting a preset number of feature point candidates in the order of highest high yield value among a plurality of high yield values arranged in descending order as the feature point candidate group.
제 24 항에 있어서,
상기 영역 확인부는,
상기 첫 번째 이미지를 복수의 영역으로 나누고, 각 영역 내에서 각각 가장 먼저 입력되는 특징점 후보군 하나만을 최종 특징점에 포함시키는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 24,
The area check unit,
Dividing the first image into a plurality of regions, and including only one of the first feature point candidate group inputted first in each region as a final feature point.
제 18 항에 있어서,
상기 특징점 추적부는,
상기 제 1 먹스로부터 출력되는 이전 이미지 및 상기 제 2 먹스로부터 출력되는 현재 이미지에 대한 보간 기능을 각각 수행하는 복수의 보간부;
상기 복수의 보간부로부터 제공되는 보간된 이전 이미지와 보간된 현재 이미지 간의 명암차(dt)를 계산하는 영상차 계산부;
상기 헤시안 행렬 연산부에서 계산된 이전 이미지에 대한 명암차(dx, dy)와 상기 계산된 보간된 이전 이미지와 보간된 현재 이미지 간의 명암차(dt)에 대해 곱셈 기능을 적용하여 복수의 다른 변수를 생성하는 복수의 다른 곱셈기;
상기 복수의 다른 곱셈기에서 생성된 복수의 다른 변수에 대해서 영상의 스무딩 처리를 수행하는 복수의 다른 가우시안 필터; 및
상기 복수의 다른 가우시안 필터의 출력값(widxdt, widydt)과, 상기 헤시안 행렬 연산부에서의 출력값(widx2, widxdy, widy2)을 근거로 모션 벡터를 산출하는 모션 벡터 연산부를 포함하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 18,
The feature point tracking unit,
A plurality of interpolation units each performing an interpolation function on a previous image output from the first mux and a current image output from the second mux;
An image difference calculator configured to calculate a contrast difference (dt) between the interpolated previous image and the interpolated current image provided from the plurality of interpolating units;
A multiplication function is applied to the contrast difference (dx, dy) of the previous image calculated by the Hessian matrix operator and the contrast difference (dt) between the interpolated previous image and the interpolated current image. A plurality of different multipliers to generate;
A plurality of different Gaussian filters for performing image smoothing on a plurality of different variables generated by the plurality of different multipliers; And
And a motion vector calculator that calculates a motion vector based on the output values (widxdt, widydt) of the plurality of different Gaussian filters and the output values (widx 2 , widxdy, widy 2) of the Hessian matrix calculator. Image-based feature point tracking device for stationary drone flight.
제 28 항에 있어서,
상기 복수의 보간부는,
상기 제 1 먹스로부터 출력되는 이전 이미지에 대한 보간 기능을 수행하고, 상기 수행에 따른 보간된 이전 이미지를 상기 헤시안 행렬 연산부에 포함된 제 3 먹스 및 상기 영상차 계산부에 제공하는 제 1 보간부; 및
상기 제 2 먹스로부터 출력되는 현재 이미지에 대한 보간 기능을 수행하고, 상기 수행에 따른 보간된 현재 이미지를 상기 영상차 계산부에 제공하는 제 2 보간부를 포함하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 28,
The plurality of interpolation units,
A first interpolation unit that performs an interpolation function on a previous image output from the first mux, and provides a third mux included in the Hessian matrix operation unit and the image difference calculation unit with the interpolated previous image according to the execution ; And
And a second interpolation unit that performs an interpolation function on the current image output from the second mux, and provides the interpolated current image according to the execution to the image difference calculation unit. Image-based feature point tracking device.
제 28 항에 있어서,
상기 보간부는,
특징점 좌표와 피라미드 레벨에 따라 픽셀 정보가 입력되도록 제어하는 윈도우 영역 추출기; 및
특징점 위치에 따른 보정을 수행하는 보간 계산기를 포함하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 28,
The interpolation unit,
A window area extractor that controls pixel information to be input according to the coordinates of the feature point and the pyramid level; And
An image-based feature point tracking device for drone stationary flight, comprising: an interpolation calculator that performs correction according to the feature point position.
제 30 항에 있어서,
상기 윈도우 영역 추출기는,
메모리에 저장되어있는 현재 특징점 좌표와 피라미드 레벨 정보를 입력받아 특징점 좌표 주변 영역의 이미지 윈도우를 상기 보간 계산기에 입력하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 30,
The window area extractor,
An image-based feature point tracking apparatus for a drone stop flight, characterized in that receiving current feature point coordinates and pyramid level information stored in a memory and inputting an image window of a region around the feature point coordinates into the interpolation calculator.
제 30 항에 있어서,
상기 보간 계산기는,
계산된 모션 벡터로부터 보정된 특징점 좌표값이 정수가 아닌 실수값이기 때문에, 인접한 네 개의 픽셀의 명암값에 따른 바이리니어 보간(bilinear interpolation)을 통해 추적된 특징점 좌표의 밝기값을 계산하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 30,
The interpolation calculator,
Since the corrected feature point coordinate value from the calculated motion vector is a real value rather than an integer, the brightness value of the tracked feature point coordinates is calculated through bilinear interpolation according to the intensity values of four adjacent pixels. A video-based feature point tracking device for stopping flying drones.
제 30 항에 있어서,
상기 보간 계산기는,
x축과 y축 각각의 일차원 보간 연산을 연속적으로 처리하도록 라인 버퍼 구조로 설계하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 30,
The interpolation calculator,
An image-based feature point tracking device for drone stationary flight, characterized in that the line buffer structure is designed to continuously process one-dimensional interpolation operations of each of the x-axis and y-axis.
제 28 항에 있어서,
상기 복수의 다른 곱셈기는,
상기 헤시안 행렬 연산부에 포함된 미분기에서 계산된 첫 번째 이미지 또는 이전 이미지와 관련한 x 방향으로의 명암차(dx)와, 상기 영상차 계산부에 의해 계산된 이미지 간의 명암차(dt)를 두 입력으로 하여 곱셈 기능을 수행하여 제 4 출력값(dxdt)을 출력하는 제 4 곱셈기; 및
상기 미분기에서 계산된 첫 번째 이미지 또는 이전 이미지와 관련한 y 방향으로의 명암차(dy)와 상기 영상차 계산부에 의해 계산된 이미지 간의 명암차(dt)를 두 입력으로 하여 곱셈 기능을 수행하여 제 5 출력값(dydt)을 출력하는 제 5 곱셈기를 포함하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 28,
The plurality of different multipliers,
Two inputs are the contrast difference (dx) in the x direction with respect to the first image or previous image calculated by the differentiator included in the Hessian matrix calculation unit and the contrast difference (dt) between the images calculated by the image difference calculation unit. A fourth multiplier that performs a multiplication function and outputs a fourth output value dxdt; And
A multiplication function is performed using two inputs, the contrast difference (dy) in the y direction relative to the first image or the previous image calculated by the differentiator and the contrast difference (dt) between the images calculated by the image difference calculator. An image-based feature point tracking device for a drone stationary flight, comprising: a fifth multiplier that outputs 5 output values (dydt).
제 34 항에 있어서,
상기 복수의 다른 가우시안 필터는,
상기 제 4 곱셈기로부터 출력되는 상기 제 4 곱셈기의 출력값(dxdt)에 가중치를 적용한 후, 가우시안 필터를 적용하여 출력하는 제 4 가우시안 필터; 및
상기 제 5 곱셈기로부터 출력되는 상기 제 5 곱셈기의 출력값(dxdy)에 가중치를 적용하여 출력하는 제 5 가우시안 필터를 포함하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 34,
The plurality of different Gaussian filters,
A fourth Gaussian filter that applies a weight to the output value (dxdt) of the fourth multiplier output from the fourth multiplier and then applies a Gaussian filter to output it; And
And a fifth Gaussian filter for outputting by applying a weight to the output value (dxdy) of the fifth multiplier output from the fifth multiplier.
제 28 항에 있어서,
상기 특징점 추적부는,
상기 모션 벡터 연산부로부터 산출된 모션 벡터와 메모리에 저장된 특징점의 좌표 정보를 서로 가산하여 보정된 특징점의 좌표 정보를 생성하는 모션 벡터 매니저; 및
복수의 상기 보정된 특징점의 좌표 정보에 대한 평균치를 계산하고, 상기 계산된 평균치를 드론에 제공하는 모션 추정기를 더 포함하는 것을 특징으로 하는 드론 정지 비행을 위한 영상 기반 특징점 추적 장치.
The method of claim 28,
The feature point tracking unit,
A motion vector manager for generating coordinate information of the corrected feature point by adding the motion vector calculated from the motion vector calculating unit and the coordinate information of the feature point stored in the memory; And
And a motion estimator for calculating an average value of the coordinate information of the plurality of corrected feature points and providing the calculated average value to the drone.
KR1020190137314A 2019-10-31 2019-10-31 Apparatus for tracking feature point based on image for drone hovering and method thereof KR102340125B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190137314A KR102340125B1 (en) 2019-10-31 2019-10-31 Apparatus for tracking feature point based on image for drone hovering and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190137314A KR102340125B1 (en) 2019-10-31 2019-10-31 Apparatus for tracking feature point based on image for drone hovering and method thereof

Publications (2)

Publication Number Publication Date
KR20210051707A true KR20210051707A (en) 2021-05-10
KR102340125B1 KR102340125B1 (en) 2021-12-16

Family

ID=75917726

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190137314A KR102340125B1 (en) 2019-10-31 2019-10-31 Apparatus for tracking feature point based on image for drone hovering and method thereof

Country Status (1)

Country Link
KR (1) KR102340125B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230058788A (en) * 2021-10-25 2023-05-03 한남대학교 산학협력단 Method for controlling shooting image of drone for improving quality of restoring volume metry 3d model
KR20230070970A (en) * 2021-11-15 2023-05-23 국방과학연구소 Method of calculating flight path, apparatus for calculating flight path, and computer program for the method
CN116560394A (en) * 2023-04-04 2023-08-08 武汉理工大学 Unmanned aerial vehicle group pose follow-up adjustment method and device, electronic equipment and medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101303124B1 (en) 2012-05-31 2013-09-09 삼성에스디에스 주식회사 Apparatus and method for object tracking using feature descriptor, and apparatus and method for removing garbage feature

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101303124B1 (en) 2012-05-31 2013-09-09 삼성에스디에스 주식회사 Apparatus and method for object tracking using feature descriptor, and apparatus and method for removing garbage feature

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Louis H.Buck, "Resource-Constrained Machine Vision on a Micro Air Vehicle", (2013.07.31.) 1부.* *
Zhilei Chai외 1인, "Improving KLT in Embedded Systems by Processing Oversampling Video Sequence in real-time", 2011 International Conference on Reconfigurable Computing and FPGAs, (2011.12.02.) 1부.* *
한동일외 1인, "실시간 고성능 특징점 추출 엔진을 위한 효율적인 메모리 구조 설계", 대한전자공학회 학술대회, (2012.06.30.) 1부.* *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230058788A (en) * 2021-10-25 2023-05-03 한남대학교 산학협력단 Method for controlling shooting image of drone for improving quality of restoring volume metry 3d model
KR20230070970A (en) * 2021-11-15 2023-05-23 국방과학연구소 Method of calculating flight path, apparatus for calculating flight path, and computer program for the method
CN116560394A (en) * 2023-04-04 2023-08-08 武汉理工大学 Unmanned aerial vehicle group pose follow-up adjustment method and device, electronic equipment and medium
CN116560394B (en) * 2023-04-04 2024-06-07 武汉理工大学 Unmanned aerial vehicle group pose follow-up adjustment method and device, electronic equipment and medium

Also Published As

Publication number Publication date
KR102340125B1 (en) 2021-12-16

Similar Documents

Publication Publication Date Title
CN111640140B (en) Target tracking method and device, electronic equipment and computer readable storage medium
Engel et al. Direct sparse odometry
US10672131B2 (en) Control method, non-transitory computer-readable storage medium, and control apparatus
CN110945565B (en) Dense visual SLAM with probability bin map
Barranco et al. Parallel architecture for hierarchical optical flow estimation based on FPGA
KR102340125B1 (en) Apparatus for tracking feature point based on image for drone hovering and method thereof
Badenas et al. Motion-based segmentation and region tracking in image sequences
Xu et al. A segmentation based variational model for accurate optical flow estimation
CN110631554A (en) Robot posture determining method and device, robot and readable storage medium
Jellal et al. LS-ELAS: Line segment based efficient large scale stereo matching
CN102509071B (en) Optical flow computation system and method
CN103106667A (en) Motion target tracing method towards shielding and scene change
Ttofis et al. Towards accurate hardware stereo correspondence: A real-time fpga implementation of a segmentation-based adaptive support weight algorithm
Ali et al. Hardware/software co-design of a real-time kernel based tracking system
CN110390685B (en) Feature point tracking method based on event camera
Liu et al. EDFLOW: Event driven optical flow camera with keypoint detection and adaptive block matching
US20180005039A1 (en) Method and apparatus for generating an initial superpixel label map for an image
KR20160123871A (en) Method and apparatus for estimating image optical flow
El‐Shafie et al. Survey on hardware implementations of visual object trackers
CN111914756A (en) Video data processing method and device
Bu et al. Semi-direct tracking and mapping with RGB-D camera for MAV
Firouznia et al. Chaotic particle filter for visual object tracking
Szeliski et al. A parallel feature tracker for extended image sequences
Truong et al. Single object tracking using particle filter framework and saliency-based weighted color histogram
CN114612572A (en) Laser radar and camera external parameter calibration method and device based on deep learning

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant