KR102559203B1 - 포즈 정보를 출력하는 방법 및 장치 - Google Patents

포즈 정보를 출력하는 방법 및 장치 Download PDF

Info

Publication number
KR102559203B1
KR102559203B1 KR1020180116785A KR20180116785A KR102559203B1 KR 102559203 B1 KR102559203 B1 KR 102559203B1 KR 1020180116785 A KR1020180116785 A KR 1020180116785A KR 20180116785 A KR20180116785 A KR 20180116785A KR 102559203 B1 KR102559203 B1 KR 102559203B1
Authority
KR
South Korea
Prior art keywords
vertices
information
rotation information
frames
filter
Prior art date
Application number
KR1020180116785A
Other languages
English (en)
Other versions
KR20200037502A (ko
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 KR1020180116785A priority Critical patent/KR102559203B1/ko
Priority to US16/283,898 priority patent/US10866427B2/en
Priority to EP19166616.3A priority patent/EP3633616A1/en
Priority to CN201910282882.8A priority patent/CN110992405A/zh
Priority to JP2019114797A priority patent/JP7365148B2/ja
Publication of KR20200037502A publication Critical patent/KR20200037502A/ko
Application granted granted Critical
Publication of KR102559203B1 publication Critical patent/KR102559203B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/277Analysis of motion involving stochastic approaches, e.g. using Kalman filters
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • G01C21/1656Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with passive imaging devices, e.g. cameras
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0179Display position adjusting means not related to the information to be displayed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/60Rotation of a whole image or part thereof
    • G06T5/80
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/20Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of display used
    • B60R2300/205Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of display used using a head-up display
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/30Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of image processing
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0138Head-up displays characterised by optical features comprising image capture systems, e.g. camera
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0141Head-up displays characterised by optical features characterised by the informative content of the display
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0179Display position adjusting means not related to the information to be displayed
    • G02B2027/0183Adaptation to parameters characterising the motion of the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • 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/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2016Rotation, translation, scaling

Abstract

일 실시예에 따른 포즈 정보를 출력하는 방법 및 장치는 제1 센서에서 촬영된 복수의 프레임들로부터 제1 정점들을 선택하고, 제2 센서에서 감지된 움직임 정보를 기초로 복수의 프레임들 간의 회전 정보를 추정하고, 제1 정점들 중 동적 객체에 해당하는 제2 정점들을 제외한 제3 정점들을 기초로 추정된 회전 정보를 보정하고, 제3 정점들 및 보정된 회전 정보를 기초로, 복수의 프레임들 간의 이동 정보를 산출하며, 보정된 회전 정보 및 이동 정보를 출력한다.

Description

포즈 정보를 출력하는 방법 및 장치{METHOD AND APPARATUS OF OUTPUTTING POSE INFORMATION}
아래의 실시예들은 시각 관성 거리계(Visual Inertial Odometry; VIO) 기반의 포즈 정보를 출력하는 방법 및 장치에 관한 것이다.
영상에 기반한 측위 방법에는 예를 들어, SfM(Structure from Motion), SLAM(Simultaneous Localization and Mapping), VO(Visual Odometry) 등과 같이 다양한 방법들이 존재한다. 이러한 측위 방법들은 주로 호모그래피(Homography)를 이용하여 영상을 촬영한 카메라의 위치 및 촬영된 영상에서의 각 픽셀의 깊이값(depth)을 계산하여 측위를 수행할 수 있다. 호모그래피는 카메라로 촬영한 연속적인 일련의 영상들의 픽셀 간의 상관 관계를 나타낼 수 있다. 하지만, 이러한 측위 방법들에서는 공통적으로 동적 객체(moving object)의 움직임을 추적함에 따라 발생하는 트래킹 손실(Tracking Lost) 및/또는 트래킹 성능의 저하로 인한 정확도(accuracy)의 감소가 발생할 수 있다. 뿐만 아니라, 영상들로부터 특징점을 선택할 때에 아웃라이어(Outlier)가 될 영역, 다시 말해 동적 객체에 대응하는 영역을 반복적으로 선택 및/또는 제거하는 과정에서 많은 자원(resource)이 소비될 수 있다.
일 측에 따르면, 포즈 정보를 출력하는 방법은 제1 센서에서 촬영된 복수의 프레임들로부터 제1 정점들(points)을 선택하는 단계; 제2 센서에서 감지된 움직임 정보를 기초로, 상기 복수의 프레임들 간의 회전(rotation) 정보를 추정하는 단계; 상기 제1 정점들 중 동적 객체에 해당하는 제2 정점들을 제외한 제3 정점들을 기초로, 상기 추정된 회전 정보를 보정하는 단계; 상기 제3 정점들 및 상기 보정된 회전 정보를 기초로, 상기 복수의 프레임들 간의 이동(translation) 정보를 산출하는 단계; 및 상기 보정된 회전 정보 및 상기 이동 정보를 출력하는 단계를 포함한다.
상기 회전 정보를 추정 하는 단계는 상기 움직임 정보를 기초로, 상기 복수의 프레임들에 대응하는 자체 운동(egomotion)의 상태들을 추정하는 단계; 및 상기 추정된 상태들을 기초로, 상기 복수의 프레임들 간의 회전 정보를 추정하는 단계를 포함할 수 있다.
상기 상태들을 추정하는 단계는 제1 시점의 상태와 제2 시점의 움직임 정보에 기초하여, 제2 시점의 상태를 추정하는 단계를 포함할 수 있다.
상기 자체 운동의 상태는 상기 회전 정보를 추정하기 위한 제1 상태 및 상기 이동 정보를 추정하기 위한 제2 상태를 포함할 수 있다.
상기 복수의 프레임들 간의 회전 정보를 추정하는 단계는 칼만 필터(Kalman Filter), 확장된 칼만 필터(Extended Kalman Filter), 반복되고 확장된 칼만 필터(Iterated Extended Kalman Filter), 언센티드 칼만 필터(Unscented Kalman Filter) 및 입자 필터(Particle Filter) 중 어느 하나를 이용하여 상기 복수의 프레임들 간의 회전 정보를 추정하는 단계를 포함할 수 있다.
상기 추정된 회전 정보를 보정하는 단계는 상기 추정된 회전 정보를 기초로, 상기 제1 정점들 중 동적 객체에 해당하는 제2 정점들을 제거하는 단계; 상기 제1 정점들 중 상기 제2 정점들을 제외한 제3 정점들을 기초로, 상기 복수의 프레임들 간의 회전 정보를 추정하는 단계; 및 상기 제3 정점들을 기초로 추정된 회전 정보를 이용하여, 상기 움직임 정보를 기초로 추정된 회전 정보를 보정하는 단계를 포함할 수 있다.
상기 복수의 프레임들은 제1 시점에서 촬영된 제1 프레임 및 제2 시점에서 촬영된 제2 프레임을 포함하고, 상기 제2 정점들을 제거하는 단계는 상기 제1 시점에서 추정된 제1 회전 정보와 상기 제2 시점에서 추정된 제2 회전 정보 간의 회전 변화량을 산출하는 단계; 및 상기 회전 변화량에 기초하여 상기 제1 정점들 중 동적 객체에 해당하는 제2 정점들을 제거하는 단계를 포함할 수 있다.
상기 제3 정점들을 기초로 상기 회전 정보를 추정하는 단계는 상기 제3 정점들에 대하여 PNP 함수, 가우스 뉴톤 최적화(Gauss Newton optimization) 함수, 및 레벤버르그 마콰트 최적화(levenberg marquardt optimization) 함수 중 어느 하나를 적용하여 상기 회전 정보를 추정하는 단계를 포함할 수 있다.
상기 추정된 회전 정보를 보정하는 단계는 상기 제3 정점들을 기초로 추정된 회전 정보와 상기 움직임 정보를 기초로 추정된 회전 정보 사이의 차이에 기초하여, 상기 복수의 프레임들 중 적어도 하나에 대응하는 자체 운동의 상태를 갱신하는 단계를 포함할 수 있다.
상기 이동 정보를 산출하는 단계는 상기 보정된 회전 정보를 기초로, 상기 제3 정점들이 속한 복수의 프레임들 간 강도(intensity) 차이와 관련된 에너지 함수가 미리 정해진 목표 값보다 작아지도록 상기 이동 정보를 결정하는 단계를 포함할 수 있다.
상기 에너지 함수는 가우스 뉴톤 최적화 함수, 및 레벤버르그 마콰트 최적화 함수 중 어느 하나를 포함할 수 있다.
상기 제1 정점들을 선택하는 단계는 상기 복수의 프레임들을 분할하는 블록 별로 상기 제1 정점들을 선택하는 단계; 및 상기 복수의 프레임들에 포함된 클래스 별로 상기 제1 정점들을 선택하는 단계 중 적어도 하나를 포함할 수 있다.
상기 블록 별로 상기 제1 정점들을 선택하는 단계는 상기 복수의 프레임들 각각을 일정 크기의 블록들로 균등하게 분할하는 단계; 및 상기 균등하게 분할된 블록들 각각으로부터 상기 제1 정점들을 선택하는 단계를 포함할 수 있다.
상기 클래스 별로 상기 제1 정점들을 선택하는 단계는 상기 복수의 프레임들 각각에 포함된 픽셀들의 강도 경사도(intensity gradient)의 크기, 방향, 및 상기 픽셀들과 주변 픽셀들과의 강도 관계 중 적어도 하나에 기초하여 복수의 클래스들 에 대응하는 후보 정점들을 결정하는 단계; 및 상기 복수의 클래스들 각각에 포함된 후보 정점들로부터 상기 제1 정점들을 선택하는 단계를 포함할 수 있다.
상기 제1 정점들을 선택하는 단계는 상기 복수의 프레임들 각각의 중심에 있는 정점들에 제1 가중치를 부여하는 단계; 상기 복수의 프레임들 각각의 중심에서 외곽으로 갈수록 점진적으로 상기 정점들에 상기 제1 가중치에 비해 적은 제2 가중치를 부여하는 단계; 및 상기 제1 가중치 및 상기 제2 가중치를 기초로, 상기 정점들 중 상기 제1 정점들을 선택하는 단계를 포함할 수 있다.
일 측에 따르면, 포즈 정보를 출력하는 장치는 복수의 프레임들을 촬영하는 제1 센서; 움직임 정보를 감지하는 제2 센서; 및 상기 복수의 프레임들로부터 제1 정점들을 선택하고, 상기 움직임 정보를 기초로 상기 복수의 프레임들 간의 회전 정보를 추정하며, 상기 제1 정점들 중 동적 객체에 해당하는 제2 정점들을 제외한 제3 정점들을 기초로 상기 추정된 회전 정보를 보정하고, 상기 제3 정점들 및 상기 보정된 회전 정보를 기초로 상기 복수의 프레임들 간의 이동 정보를 산출하는 적어도 하나의 프로세서를 포함한다.
상기 프로세서는 상기 움직임 정보를 기초로, 상기 복수의 프레임들에 대응하는 자체 운동의 상태들을 추정하고, 상기 추정된 상태들을 기초로, 상기 복수의 프레임들 간의 회전 정보를 추정할 수 있다.
상기 프로세서는 상기 추정된 회전 정보를 기초로, 상기 제1 정점들 중 동적 객체에 해당하는 제2 정점들을 제거하고, 상기 제1 정점들 중 상기 제2 정점들을 제외한 제3 정점들을 기초로, 상기 복수의 프레임들 간의 회전 정보를 추정하며, 상기 제3 정점들을 기초로 추정된 회전 정보를 이용하여, 상기 움직임 정보를 기초로 추정된 회전 정보를 보정할 수 있다.
상기 프로세서는 상기 보정된 회전 정보를 기초로, 상기 제3 정점들이 속한 복수의 프레임들 간 강도 차이와 관련된 에너지 함수가 미리 정해진 목표 값보다 작아지도록 상기 이동 정보를 결정할 수 있다.
도 1은 일 실시예에 따른 포즈 정보를 출력하는 과정을 설명하기 위한 도면.
도 2는 일 실시예에 따른 포즈 정보를 출력하는 방법을 나타낸 흐름도.
도 3은 일 실시예에 따라 복수의 프레임들 간의 회전 정보를 추정하는 방법을 나타낸 흐름도.
도 4a 및 도 4b는 실시예들에 따라 복수의 프레임들 간의 회전 정보를 추정하는 방법을 설명하기 위한 도면.
도 5a 및 도 5b는 실시예들에 따라 추정된 회전 정보를 보정하는 방법을 설명하기 위한 도면.
도 6은 일 실시예에 따라 복수의 프레임들 간의 이동 정보를 산출하는 방법을 설명하기 위한 도면.
도 7 내지 도 8은 실시예들에 따라 복수의 프레임들로부터 제1 정점을 선택하는 방법을 설명하기 위한 도면.
도 9는 다른 실시예에 따른 포즈 정보를 출력하는 방법을 나타낸 흐름도.
도 10은 일 실시예 따른 포즈 정보를 출력하는 장치의 블록도.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일 실시예에 따른 출력 장치가 포즈 정보를 출력하는 과정을 설명하기 위한 도면이다. 도 1을 참조하면, 일 실시예에 따라 시각 관성 거리계(Visual Inertial Odometry; VIO) 기반의 포즈 정보를 출력하는 장치(이하, '출력 장치')(100)의 구성 및 동작이 도시된다. 포즈 정보는 출력 장치의 회전에 관한 회전 정보, 출력 장치의 이동에 관한 이동 정보 또는 이들의 조합을 포함할 수 있다.
일반적으로 시각 거리계(Visual Odometry)는 시각적 기능을 사용하여 포즈 정보를 추정할 수 있다. 하지만, 영상 내 동적 객체가 존재하는 경우, 포즈 정보를 정확하게 추정할 수 없다. 카메라에서 촬영된 영상 정보만을 이용해서는 카메라가 움직인 것인지, 아니면 주변 객체가 움직인 것인지를 구분하기 어렵기 때문이다. 또한, 시각 거리계는 갑작스러운 움직임을 추정하기 어렵다. 이와 달리, IMU(Inertial Measurement Unit) 센서와 같은 관성 측정 장치는 갑작스러운 움직임을 잘 감지하는 반면, 오차가 누적되는 특성으로 인하여 긴 시간 간격에서의 움직임을 지속적으로 감지하는 데에는 부적합하다.
따라서, 일 실시예에서는 카메라가 촬영한 영상 정보와 관성 측정 장치가 감지한 움직임 정보를 함께 활용함으로써 카메라의 움직임(혹은 카메라의 움직임으로 인한 영상 내 정적 객체의 움직임)과 동적 객체의 움직임을 구분하여 포즈 정보를 보다 정확하게 산출할 수 있다. 관성 측정 장치는 영상과는 무관하게 움직임 정보를 제공할 수 있으므로, 일 실시예에서는 움직임 정보와 영상 정보를 모두 이용함으로써 포즈 정보의 정확도 및 연산 속도를 향상시킬 수 있다.
일 실시예에 따른 출력 장치(100)는 제1 센서(110), 제2 센서(120), 필터(Filter)(140), 정점 선택(Point Selection)부(130), 회전 정보(VIO's Rotation) 획득부(150) 및 이동 정보(VIO's Translation) 획득부(160)를 포함할 수 있다. 여기서, 필터(140), 정점 선택부(130), 회전 정보 획득부(150) 및 이동 정보 획득부(160)의 동작은 출력 장치(100)의 프로세서(도 10의 프로세서(1030) 참조)에 의해 수행될 수 있다.
출력 장치(100)는 시각 관성 거리계(VIO) 기반으로 영상 프레임들 간의 6 자유도(6-Degree of Freedom(DOF) 포즈(pose)의 변화량을 산출함으로써 포즈 정보를 출력할 수 있다. 이때, 6 자유도 포즈는 3차원의 이동 정보(translation; T)와 3차원의 회전 정보(orientation; R)를 포함할 수 있다. 이동 정보(T)는 위치 변화로 이해될 수 있고, 회전 정보(R)는 오리엔테이션(orientation) 변화로 이해될 수 있다.
제1 센서(110)는 복수의 영상 프레임들을 촬영한다. 제1 센서(110)는 예를 들어, 카메라, 이미지 센서 또는 비전 센서일 수 있다. 제1 센서(110)는 예를 들어, 차량의 윈드 실드(windshield), 대시 보드(dashboard), 백미러(rear-view mirror) 등과 같이 미리 정해진 위치에 고정되어 차량 전방의 주행 영상을 촬영할 수 있다. 제1 센서(110)는 예를 들어, 제1 시점에서 제1 프레임을 촬영하고, 제n 시점에서 제2 프레임을 촬영할 수 있다.
제2 센서(120)는 움직임 정보를 감지한다. 제2 센서(120)는 단수 개 일수도 있고, 복수 개일 수도 있다. 제2 센서(120)는 예를 들어, IMU 센서, GPS(Global Positioning System) 센서, OBD 등을 포함할 수 있다. 제2 센서(120)는 제1 시점에서 제1 움직임 정보를 감지하고, 제2 시점에서 제2 움직임 정보를 감지하며, 제n 시점에서 제3 움직임 정보를 감지할 수 있다.
정점 선택부(130)는 제1 센서(110)에서 촬영된 프레임들로부터 포즈 정보의 산출을 위해 사용될 영역을 선택할 수 있다. 예를 들어, 정점 선택부(130)는 프레임들로부터 시각 관성 거리계(VIO)의 계산 영역에 해당하는 정점들(예를 들어, 제1 정점들)을 선택할 수 있다.
정점 선택부(130)는 다양한 방식에 기초하여 정점들을 선택할 수 있다. 정점 선택부(130)는 예를 들어, 복수의 프레임들의 영역에서 골고루 정점들을 선택할 수 있다. 또는 정점 선택부(130)는 예를 들어, 블럽(blob), 에지(edge), 코너(corner) 등과 같이 복수의 프레임들에 포함된 다양한 클래스 별로 정점을 선택할 수 있다. 이 밖에도, 정점 선택부(130)는 프레임들을 촬영하는 카메라의 렌즈에 의한 영상 왜곡을 복원하는 과정에서 발생하는 오차를 감안해서 영상의 중심에서 가장 자리(외곽)로 갈수록 영상의 중심에 비해 적은 수의 정점들을 선택할 수 있다. 정점 선택부(130)의 동작은 아래의 도 7 내지 도 8을 참조하여 보다 구체적으로 설명한다.
필터(140)는 제2 센서(120)에서 감지된 움직임 정보를 기초로, 복수의 프레임들에 대응하는 자체 운동(ego motion)의 상태들(states)을 추정할 수 있다. 자체 운동은 환경(environment) 내 장치의 3차원 모션으로, 예를 들어 출력 장치의 회전 모션 및 이동 모션을 포함할 수 있다. 필터(140)는 관측 값인 움직임 정보에 기초하여 자체 운동의 상태를 추정하고, 추정된 상태에 기초하여 자체 운동에 관한 정보를 출력할 수 있다. 예를 들어, 필터(140)는 추정한 상태들을 기초로, 복수의 프레임들 간의 회전 정보(Rinitial)를 추정할 수 있다. 필터(140)는 회전 정보(Rinitial)를 회전 정보 획득부(150)로 전송할 수 있다.
이때, 제1 센서(110)가 복수의 영상 프레임들을 촬영하는 시점과 제2 센서(120)가 움직임 정보를 감지하는 시점 간에는 동기가 맞지 않을 수 있다. 예를 들어, 제1 센서(110)가 복수의 프레임들을 촬영하는 시점들 간의 간격이 제2 센서(120)가 움직임 정보를 감지하는 시점들 간의 간격에 비해 시간이 길 수 있다.
필터(140)는 제2 센서(120)가 움직임 정보를 감지한 복수의 시점들 중 제1 센서(110)가 복수의 프레임들을 촬영한 시점들에 대응하는 일부의 시점들을 선택하고, 선택된 시점들 간의 회전 정보를 추정 및 전송할 수 있다.
필터(140)는 제2 센서(120)에서 감지된 움직임 정보를 기초로, 예를 들어, 속도, IMU 바이어스(bias)(예를 들어, 각속도, 가속도), 절대 위치 등을 추정할 수 있다. 이때, 움직임 정보는 예를 들어, IMU 센서의 자이로스코프(gyroscope)에 의해 검출되는 피치(Pitch), 롤(Roll) 요(Yaw)의 3축 회전 정보와 가속도 센서(accelerometer)에 의해 감지되는 3차원 공간에서 전후, 상하, 좌우 3축으로의 이동 정보, GPS 위치(position), OBD 휠 오도메트리(wheel odometry), 조향각 정보, 자세 정보 등을 포함할 수 있다. 필터(140)의 동작은 아래의 도 4a 및 도 4b를 참조하여 보다 구체적으로 설명한다.
회전 정보 획득부(150)는 필터(140)로부터 회전 정보(Rinitial)를 수신한다. 회전 정보 획득부(150)는 회전 정보(Rinitial)를 이용하여 정점 선택부(130)에서 선택된 제1 정점들에서 아웃라이어에 해당하는 제2 정점들을 제외한다. 회전 정보 획득부(150)는 제1 정점들에서 제2 정점들을 제외한 나머지인 제3 정점들을 기초로 회전 정보(Restimate)를 추정한다. 회전 정보 획득부(150)는 추정된 회전 정보(Restimate)를 필터(140)로 전송할 수 있다. 여기서, 아웃라이어에 해당하는 제2 정점들은 동적 객체에 해당하는 정점들일 수 있다.
이하에서, '제1 정점들'은 제1 센서(110)에 의하여 촬영된 프레임들 내 포즈 정보의 산출을 위해 사용될 영역으로부터 선택된 정점들에 해당할 수 있다. '제2 정점'은 제1 정점들 중 동적 객체에 해당하는 정점들, 다시 말해 프레임들에 포함된 정적 객체의 움직임을 파악하기 위해 제거되어야 하는 정점들일 수 있다. 제2 정점들은 일 실시예에서 포즈 정보의 산출을 위해 배제되어야 한다는 점에서 '아웃라이어(Outlier)'라고도 부를 수 있다. '제3 정점들'은 제1 정점들에서 제2 정점들을 제거하고 남은 나머지 정점들, 다시 말해 정적 객체에 해당하는 정점들일 수 있다. 제3 정점들은 '인라이어(Inlier)'라고도 부를 수 있다.
회전 정보 획득부(150)는 아웃라이어 제거(Outlier Rejection) 과정(153) 및 회전 정보 평가(Rotation Evaluation) 과정(156)를 수행할 수 있다.
아웃라이어 제거 과정(153)에서, 회전 정보 획득부(150)는 필터(140)로부터 수신한, 움직임 정보를 기초로 추정된 회전 정보(Rinitial)를 기초로, 제1 정점들 중 아웃라이어(동적 객체에 해당하는 제2 정점들)을 제거할 수 있다.
또한, 회전 정보 평가(156)에서, 회전 정보 획득부(150)는 아웃라이어 제거(153)를 통해 전달된 제3 정점들을 기초로 복수의 프레임들 간의 회전 정보(Restimate)를 추정할 수 있다. 시각 정보를 기반으로 회전 정보를 평가(혹은 추정)하는 데에는 영상으로부터 추출된 특징(feature)을 사용하는 방법과 영상 내 정점(point)의 픽셀 강도(pixel intensity)를 직접(directly) 사용하는 방법 등이 이용될 수 있다. 일 실시예에서는 영상 내 정점의 픽셀 강도를 직접 사용하는 방법을 예로 들어 설명하지만, 반드시 이에 한정되는 것은 아니다.
회전 정보 획득부(150)는 제3 정점들을 기초로 추정된 회전 정보(Restimate)를 필터(140)로 전달할 수 있다. 회전 정보 획득부(150)의 동작은 아래의 도 5b를 참조하여 보다 구체적으로 설명한다.
필터(140)는 회전 정보 획득부(150)로부터 회전 정보(Restimate)를 수신한다. 필터(140)는 회전 정보(Restimate)를 이용하여 회전 정보(Rinitial)를 보정하여 최종적인 회전 정보(R*)를 출력할 수 있다. 예를 들어, 회전 정보 획득부(150)로부터 제3 정점들을 기초로 추정된 회전 정보(Restimate)를 수신한 필터(140)는 회전 정보(Restimate)와 움직임 정보를 기초로 추정된 회전 정보(Rinitial) 사이의 차이에 기초하여, 자체 운동의 상태를 갱신할 수 있다. 필터(140)는 갱신된 상태에 기초하여 최종적인 회전 정보(R*)를 출력할 수 있다. 회전 정보는 쿼터니언(quaternion) 또는 매트릭스(matrix) 등의 형태로 표현될 수 있다.
실시예들에 의하면, 제2 센서(120)에 기초하여 회전 정보(Rinitial)를 추정하는 필터(140)의 동작과 제1 센서(110)에 기초하여 회전 정보(Restimate)를 추정하는 회전 정보 획득부(150)의 동작이 서로 구분된다. 이러한 측면에서, 실시예들은 관성 정보를 처리하는 프로시져와 시각 정보를 처리하는 프로시져가 서로 느슨하게 결합된(loosely-coupled) 시스템의 특성을 제공한다.
또한, 실시예들에 의하면, 회전 정보(Rinitial)에 기초하여 회전 정보(Restimate)의 추정을 위한 정점들을 선택하고, 회전 정보(Restimate)에 기초하여 회전 정보(Rinitial)를 보정함으로써, 최종 회전 정보(R*)가 출력된다. 이러한 측면에서, 실시예들은 관성 정보를 처리하는 프로시져와 시각 정보를 처리하는 프로시져가 서로 밀착 결합된(tightly-coupled) 시스템의 특성을 제공한다.
결과적으로, 실시예들은 서로 느슨하게 결합된(loosely-coupled) 시스템의 장점과 서로 밀착 결합된(tightly-coupled) 시스템의 장점을 모두 포함하는 기술을 제공할 수 있다. 예를 들어, 제1 센서(110)의 영상 프레임들만으로 제거가 어려운 동적 객체 영역의 제2 정점들을 필터(140)를 통해 통합된 제2 센서(120)의 상태 정보를 이용하여 제거함으로써, 연산 속도가 개선될 수 있다. 또한, 시각 정보 기반 추정 결과가 관성 정보 기반 필터로 피드백 되어, 추정 정확도가 개선될 수 있다.
이동 정보 획득부(160)는 이동 정보의 변화량을 산출할 수 있다. 이동 정보 획득부(160)는 제3 정점들 및 필터에서 최종적으로 보정된 회전 정보(R*)를 기초로, 복수의 프레임들 간의 이동 정보(T*)를 산출할 수 있다. 이동 정보 획득부(160)의 동작은 아래의 도 6을 참조하여 보다 구체적으로 설명한다.
출력 장치(100)는 회전 정보(R*) 및 이동 정보(T*)를 출력할 수 있다.
실시예들은 스마트 차량 등의 증강 현실 내비게이션 (Augmented Reality Navigation) 시스템에서 가상 객체를 위한 포즈 정보를 제공하거나, 자율 주행 차량의 조향을 돕기 위한 시각 정보를 생성하거나, 또는 차량의 주행을 위한 다양한 제어 정보를 제공하는 데에 활용될 수 있다. 또한, 실시예들은 차량 내 주행 보조 또는 완전 자율 주행을 위해 설치된 HUD(Head Up Display) 등의 지능 시스템을 포함하는 기기에 시각 정보(visual information)를 제공하여 안전하고 쾌적한 주행을 돕는 데에 사용될 수 있다. 실시예들은 예를 들어, 자율 주행 자동차, 지능형 자동차, 스마트 폰, 및 모바일 기기 등에 적용될 수 있다.
도 2는 일 실시예에 따른 포즈 정보를 출력하는 방법을 나타낸 흐름도이다. 도 2를 참조하면, 일 실시예에 따른 포즈 정보를 출력하는 장치(이하, '출력 장치')는 제1 센서에서 촬영된 복수의 프레임들로부터 제1 정점들을 선택한다(210). 출력 장치가 제1 정점들을 선택하는 방법은 아래의 도 7 내지 도 8을 참조하여 구체적으로 설명한다.
출력 장치는 제2 센서에서 감지된 움직임 정보를 기초로, 복수의 프레임들 간의 회전(rotation) 정보를 추정한다(220). 출력 장치는 예를 들어, 칼만 필터(Kalman Filter), 확장된 칼만 필터(Extended Kalman Filter), 반복되고 확장된 칼만 필터(Iterated Extended Kalman Filter), 언센티드 칼만 필터(Unscented Kalman Filter) 및 입자 필터(Particle Filter) 등을 이용하여 복수의 프레임들 간의 회전 정보를 추정할 수 있다. 출력 장치가 자체 운동의 상태들을 기초로 복수의 프레임들 간의 회전 정보를 추정하는 방법은 아래의 도 3 내지 도 4를 참조하여 구체적으로 설명한다.
출력 장치는 제1 정점들 중 동적 객체에 해당하는 제2 정점들을 제외한 제3 정점들을 기초로, 추정된 회전 정보를 보정한다(230). 출력 장치가 추정된 회전 정보를 보정하는 방법은 아래의 도 5를 참조하여 구체적으로 설명한다.
출력 장치는 제3 정점들 및 보정된 회전 정보를 기초로, 복수의 프레임들 간의 이동(translation) 정보를 산출한다(240). 출력 장치는 보정된 회전 정보를 기초로, 제3 정점들이 속한 복수의 프레임들 간 강도 차이와 관련된 에너지 함수가 미리 정해진 목표 값보다 작아지도록 이동 정보를 결정할 수 있다. 에너지 함수는 예를 들어, 비선형 함수를 지역적으로 선형 함수로 근사하여 해를 구하는 가우스 뉴톤 최적화(Gauss Newton optimization) 함수, 및 초기해가 주어지면 초기해부터 시작하여 반복적으로 최적화된 해를 찾아가는 레벤버르그 마콰트 최적화(levenberg marquardt optimization) 함수 등을 포함할 수 있다. 가우스 뉴톤 최적화는 함수의 그레디언트와 곡률(curvature)을 같이 고려하면서 해를 구할 수 있다. 출력 장치가 이동 정보를 산출하는 과정은 아래의 도 6을 참조하여 구체적으로 설명한다.
출력 장치는 단계(230)에서 보정된 회전 정보 및 단계(240)에서 산출된 이동 정보를 출력한다(250).
도 3은 일 실시예에 따라 복수의 프레임들 간의 회전 정보를 추정하는 방법을 나타낸 흐름도이다. 도 3을 참조하면, 일 실시예에 따른 출력 장치는 움직임 정보를 기초로, 복수의 프레임들에 대응하는 자체 운동의 상태들을 추정할 수 있다(310). 출력 장치는 예를 들어, 제1 시점의 상태와 제2 시점의 움직임 정보에 기초하여, 제2 시점의 상태를 추정할 수 있다. 제2 시점은 현재 시점에 해당하고, 제1 시점은 이전 시점에 해당할 수 있다. 일 실시예에 따르면, 자체 운동의 상태는 예를 들어, 회전 정보를 추정하기 위한 제1 상태 및 이동 정보를 추정하기 위한 제2 상태를 포함할 수 있다. 이 경우, 제1 상태에 의하여 회전 정보가 추정되고, 제2 상태에 의하여 이동 정보가 추정될 수 있다.
출력 장치는 단계(310)에서 추정된 상태들을 기초로, 복수의 프레임들 간의 회전 정보를 추정할 수 있다(320). 일 실시예에 따른 출력 장치의 필터(140)가 자체 운동의 상태들을 추정하고, 프레임들 간의 회전 정보를 추정하는 방법은 아래의 도 4a 및 도 4b를 참조하여 구체적으로 설명한다.
도 4a는 일 실시예에 따라 복수의 프레임들 간의 회전 정보를 추정하는 방법을 설명하기 위한 도면이다. 도 4a를 참조하면, 복수의 프레임들에 대응하여 필터(140)가 추정한 자체 운동(ego motion)의 상태들(State i-1, State i, State i')이 도시된다.
필터(140)는 센서 입력들(Ii)을 기초로, 복수의 프레임들에 대응하는 자체 운동의 상태들을 추정할 수 있다. 여기서, 센서 입력들(Ii)은 전술한 제2 센서에서 감지된 움직임 정보에 해당할 수 있다.
필터(140)는 i-1 시점의 상태(State i-1)와 i 시점의 움직임 정보(Ii)에 기초하여, i시점의 상태(State i)를 추정할 수 있다. 필터(140)는 추정된 상태들(i-1 시점의 상태(State i-1), i시점의 상태(State i))을 기초로, 복수의 프레임들 간의 회전 정보(Rinitial)를 '추정(Estimate)'할 수 있다. 일 실시예에 따르면, 회전 정보(Rinitial)는 i-1시점의 상태(State i-1)의 출력 값과 i시점의 상태(State i)의 출력 값 사이의 회전 변화량(R)으로 계산될 수 있다. 이 경우, i-1시점의 상태(State i-1)는 제1 센서(110)에 의하여 제1 프레임이 촬영된 시점에 대응하고, i시점의 상태(State i)는 제1 센서(110)에 의하여 제2 프레임이 촬영된 시점에 대응할 수 있다.
필터(140)는 회전 정보 획득부(150)로부터 제3 정점들을 기초로 추정된 회전 정보(Restimate)를 수신할 수 있다. 이때, 제3 정점들을 기초로 추정된 회전 정보(Restimate)는 회전 정보(Rinitial)를 보정하는 데에 이용될 수 있다. 회전 정보(Restimate)는 예를 들어, i-1 시점에서 촬영된 제1 프레임과 i 시점에서 촬영된 제2 프레임 간의 회전 변화량(R)에 해당할 수 있다.
필터(140)는 회전 정보(Restimate)를 이용하여 회전 정보(Rinitial)를 '보정(Correct)'하여 최종적인 회전 정보(R*)를 출력할 수 있다. 보다 구체적으로, 필터(140)는 제3 정점들을 기초로 추정된 회전 정보(Restimate)와 움직임 정보를 기초로 추정된 회전 정보(Rinitial) 사이의 차이에 기초하여, i 시점의 자체 운동의 상태(State i)를 상태(State i')로 갱신할 수 있다. 필터(140)는 갱신된 상태(State i')에 기초하여 최종적인 회전 정보(R*)를 출력할 수 있다. 예를 들어, 최종 회전 정보(R*)는 상태(State i-1)의 출력 값(Oi - 1)과 상태(State i')의 출력 값(Oi') 사이의 회전 변화량(R)으로 계산될 수 있다.
도 4b는 일 실시예에 따른 칼만 필터(Kalman Filter)에서 회전 정보를 추정하는 방법을 설명하기 위한 도면이다. 도 4b를 참조하면, 칼만 필터에서 복수의 프레임들 간의 회전 정보(Rinitial)를 "추정(Estimate)"하는 추정 과정(410) 및 회전 정보(Rinitial)를 "보정(Correct)"하는 보정 과정(430)이 도시된다. 일 실시예에서는 설명의 편의를 위하여 필터(140)의 일 예시에 해당하는 칼만 필터의 동작을 설명하지만, 반드시 이에 한정되는 것은 아니고, 칼만 필터 이외에도 입자 필터 등과 같이 다양한 필터들이 이용될 수 있다.
추정 과정(410)에서, 칼만 필터(이하, '필터')의 동작은 다음과 같다.
필터는 이전 상태()와 현재 입력()에 기초하여, 현재 상태()를 결정할 수 있다. 필터는 오차 공분산(error covariance) 값()도 함께 계산할 수 있다. 추정 과정(410)에서, 현재 상태()에 기초하여 출력 값()이 결정되나, 필터에서 추정되는 상태는 히든(hidden) 값이므로 상태를 직접적으로 보정하기는 어렵다.
필터는 보정 과정(430)을 통해 관측값(measurement)()과 추정 과정(410)의 출력 값()의 차이에 기초하여 상태를 보정할 수 있다. 이때, 상태가 보정되는 정도는 오차 공분산()에 기초한 칼만 이득(Kalman gain)()에 따라 결정될 수 있다. 오차 공분산() 또한, 칼만 이득(Kalman gain)()에 따라 로 갱신될 수 있다.
전술한 과정을 도 1에 도시된 출력 장치의 예시에 적용시키면 다음과 같다.
예를 들어, IMU 센서는 움직임 정보에 해당하는 각속도(w)와 가속도(a)를 감지할 수 있다. 이때, 필터의 자체 운동의 상태에는 회전 정보(Rinitial)을 추정하기 위한 r상태와 이동 정보(Tinitial)를 추정하기 위한 t상태가 별도로 존재할 수 있다.
제1 시점에서 IMU 센서로부터 움직임 정보(w1, a1)가 센싱되면, 필터는 움직임 정보(w1, a1)를 기초로 r 상태와 t 상태를 갱신할 수 있다. 필터는 움직임 정보(w1, a1)를 기초로 r0 상태와 t0 상태를 r1 상태와 t1상태로 갱신할 수 있다.
제2 시점에서 IMU 센서로부터 움직임 정보(w2, a2)가 센싱되면, 필터는 움직임 정보(w2, a2)를 기초로 r1 상태와 t1 상태를 r2 상태와 t2상태로 갱신할 수 있다.
마찬가지 방식으로, 제n 시점에서 IMU 센서로부터 움직임 정보(wn, an)이 센싱되면, 필터는 움직임 정보(wn, an)를 기초로 rn-1 상태와 tn-1 상태를 rn 상태와 tn 상태로 갱신할 수 있다. IMU 센서의 동작이 시작되는 초기 시점(제0 시점)에 회전 정보(R)와 이동 정보(T)는 초기화(예를 들어, 0으로 설정)될 수 있다. 일 실시예에서는 각 시점에서 추정된 회전 정보 간의 변화량 및 이동 정보 간의 변화량을 이용하므로 초기화 값은 이후 동작에 영향을 미치지 않을 수 있다.
또한, 카메라는 제1 시점에서 제1 프레임을 촬영하고, 제n 시점에서 제2 프레임을 촬영하는 것으로 가정할 수 있다. 이 경우, 필터는 제1 시점에서 r1 상태에 의한 출력 값(O1)과 제n 시점에서 rn 상태에 의한 출력 값(On) 사이의 O 변화량을 산출하여, Rinitial을 출력할 수 있다.
출력 장치는 Rinitial을 이용하여 영상 정보로부터 동적 객체에 해당하는 아웃라이어를 제거하고, 아웃라이어가 제거된 정점들(제3 정점들)에 대하여 PNP 함수를 적용하여 Restimate를 계산할 수 있다. Restimate는 필터의 관측값으로 피드백될 수 있다.
출력 장치는 제n 시점의 r상태를 보정할 것이고, 제n 시점에서 추정된 출력 On = O1 + Rinitial 과 같이 표현할 수 있다. 또한, Zn = O1 + Restimate 과 같이 표현될 수 있다.
따라서, 제n 시점의 r상태를 보정하기 위하여, 관측값(Zn)와 출력값(On) 사이의 차가 이용될 수 있다. 여기서, Zn - On = Restimate - Rinitial 이므로, 출력 장치는 이 값(Restimate - Rinitial)을 이용하여 r상태를 보정할 수 있다. 이때, 보정된 r상태에 의하여 출력 값(On')이 결정될 수 있다.
도 5a는 일 실시예에 따라 추정된 회전 정보를 보정하는 방법을 나타낸 흐름도이다. 도 5a를 참조하면, 출력 장치는 추정된 회전 정보를 기초로, 제1 정점들 중 동적 객체에 해당하는 제2 정점들을 제거할 수 있다(510). 출력 장치는 제1 시점과 제2 시점 사이의 회전 정보(Rinitial)를 추정할 수 있다. 출력 장치는 회전 정보(Rinitial)에 기초하여 제1 정점들 중 동적 객체에 해당하는 제2 정점들을 제거할 수 있다.
출력 장치는 제1 정점들 중 제2 정점들을 제외한 제3 정점들을 기초로, 복수의 프레임들 간의 회전 정보(Restimate)를 추정할 수 있다(520). 출력 장치는 제3 정점들에 대하여 예를 들어, PNP 함수, 가우스 뉴톤 최적화 함수, 및 레벤버르그 마콰트 최적화 함수 등을 적용하여 회전 정보(Restimate)를 추정할 수 있다.
출력 장치는 제3 정점들을 기초로 추정된 회전 정보(Restimate)를 이용하여, 움직임 정보를 기초로 추정된 회전 정보(Rinitial)를 보정할 수 있다(530). 출력 장치는 제3 정점들을 기초로 추정된 회전 정보(Restimate)와, 움직임 정보를 기초로 추정된 회전 정보(Rinitial) 사이의 차이에 기초하여, 복수의 프레임들 중 적어도 하나에 대응하는 자체 운동의 상태를 갱신할 수 있다. 출력 장치는 갱신된 자체 운동의 상태에 의해 최종 회전 정보(R*)를 추정할 수 있다.
도 5b는 일 실시예에 따라 추정된 회전 정보를 보정하는 방법을 설명하기 위한 도면이다. 도 5b를 참조하면, 회전 정보를 보정하기 위한 정점 선택부(130), 필터(140), 및 회전 정보 획득부(150) 간의 동작이 도시된다.
회전 정보 획득부(150)는 정점 선택부(130)로부터 제1 정점들을 수신하고, 필터(140)로부터 회전 정보(Rinitial)를 수신할 수 있다. 회전 정보 획득부(150)는 제1 정점들과 회전 정보(Rinitial)를 기초로 아웃라이어 제거 과정(153) 및 회전 정보 평가 과정(156)를 수행할 수 있다.
아웃라이어 제거 과정(153)에서, 회전 정보 획득부(150)는 필터(140)로부터 수신한, 움직임 정보를 기초로 추정된 회전 정보(Rinitial)를 기초로, 제1 정점들 중 아웃라이어를 제거할 수 있다. 아웃라이어 제거 과정(153)의 수행을 통해 제1 정점들 중 아웃라이어가 제거된 제3 정점들이 획득될 수 있다.
일 실시예에 따르면, 회전 정보 획득부(150)는 필터(140)로부터 이동 정보(Tinitial)을 더 수신할 수 있다. 회전 정보 획득부(150)는 회전 정보(Rinitial)와 이동 정보(Tinitial)에 기초하여, 복수의 프레임들 각각에 포함된 정점들의 매칭 관계를 얻을 수 있다. 매칭 관계는 회전 정보 평가 과정(156)에서 활용될 수 있다.
회전 정보 평가 과정(156)에서, 회전 정보 획득부(150)는 아웃라이어 제거(153)를 통해 전달된 제3 정점들을 기초로 복수의 프레임들 간의 회전 정보를 추정할 수 있다.
회전 정보 획득부(150)는 제3 정점들을 기초로 회전 정보(Rinitial)의 보정을 위한 회전 정보(Restimate)를 필터(140)로 전송할 수 있다. 회전 정보 획득부(150)는 제3 정점들을 기초로 추정된 회전 정보(Restimate)가 움직임 정보를 기초로 추정된 회전 정보(Rinitial)와 얼마나 차이가 나는지, 또는 얼마의 오차를 가지는지에 의해 회전 정보를 평가할 수 있다.
회전 정보 획득부(150)는 제3 정점들을 기초로 추정된 회전 정보(Restimate)를 필터(140)로 전달할 수 있다. 필터(140)는 회전 정보(Restimate)를 이용하여 회전 정보(Rinitial)를 보정하여 최종적인 회전 정보(R*)를 출력할 수 있다.
도 6은 일 실시예에 따라 복수의 프레임들 간의 이동 정보를 산출하는 방법을 설명하기 위한 도면이다. 도 6을 참조하면, 이동 정보를 산출하기 위한 필터(140), 회전 정보 획득부(150) 및 이동 정보 획득부(160) 간의 동작이 도시된다.
이동 정보 획득부(160)는 복수의 프레임들 간의 이동 정보, 다시 말해 이동 정보의 변화량을 산출할 수 있다. 이동 정보 획득부(160)는 회전 정보 획득부(160)로부터 수신한 제3 정점들 및 필터(140)에서 최종적으로 보정된 회전 정보(R*)를 기초로, 복수의 프레임들 간의 이동 정보(T*)를 산출할 수 있다.
이동 정보 획득부(160)는 회전 정보(R*)를 기초로 제3 정점들이 속한 복수의 프레임들 간의 강도 차이와 관련된 에너지 함수가 미리 정해진 목표 값보다 작아지도록 이동 정보를 결정할 수 있다. 여기서, 에너지 함수는 '광도계 에러 함수(photometric error function)'라고도 불릴 수 있다. 에너지 함수는 예를 들어, 가우스 뉴톤 최적화 함수, 및 레벤버르그 마콰트 최적화 함수 중 어느 하나일 수 있다.
도 7은 일 실시예에 따라 복수의 프레임들로부터 제1 정점을 선택하는 과정을 설명하기 위한 도면이다. 도 7을 참조하면, 일 실시예에 따른 정점 선택부(130)가 버켓팅(Bucketing) 방법(710), 후보 선택(Candidate Selection) 방법(720), 세심한 선택(Careful Selection) 방법(730), 및 방사형 가중치(Radial Weighting) 방법(740)을 통해 제1 정점을 선택하는 과정이 도시된다. 일 실시예에서는 일 예시로서, 정점 선택부(130)가 전술한 4가지 선택 방법을 순차적으로 수행하여 제1 정점을 선택하는 것을 설명하지만, 반드시 이에 한정되는 것은 아니다. 전술한 4가지 선택 방법들은 필요에 따라서, 선택 방법들 중 일부 방법만이 사용될 수도 있고, 또한 순차적인 수행 순서가 도 7과 달라질 수도 있다. 또한, 전술한 4가지 선택 방법들은 구현 형태에 따라 서로 합쳐지거나 나누어질 수 있다.
정점 선택부(130)가 버켓팅 방법(710)에 의해, 복수의 프레임들의 영역을 일정 크기의 블록들로 균등하게 분할하고, 각 블록으로부터 골고루 정점들을 선택할 수 있다. 정점 선택부는 후보 선택 방법(720)에 의해, 블럽, 에지, 코너 등과 같은 클래스 별로 정점들을 선택할 수 있다. 정점 선택부(130)는 세심한 선택 방법(730)에 의해, 블록 및 클래스 별로 정점들이 골고루 선택되도록 할 수 있다.
마지막으로, 정점 선택부(130)는 프레임들을 촬영하는 카메라의 렌즈에 의한 영상 왜곡을 복원하는 과정에서 발생하는 오차를 감안하여 정점들을 선택할 수 있다. 정점 선택부(130)는 방사형 가중치 방법(740)에 따라, 각 블록 별 및 각 클래스 별로 골고루 선택된 정점들 중 영상의 중심에 있는 정점들에 큰 가중치를 부여하고, 중심에서 외곽에 있는 정점들에 작은 가중치를 부여함으로써 영상의 중심에 있는 정점들이 많이 선택되도록 할 수 있다.
버켓팅 방법(710), 후보 선택 방법(720), 세심한 선택 방법(730), 및 방사형 가중치 방법(740)에 따른 구체적인 동작은 아래의 도 8a 내지 도 8d를 참조하여 구체적으로 설명한다.
도 8은 실시예들에 따라 복수의 프레임들로부터 제1 정점을 선택하는 방법을 설명하기 위한 도면이다.
도 8a를 참조하면, 버켓팅(Bucketing) 방법에 의해 제1 정점들을 선택하는 방법이 도시된다. 버켓팅 방법은 복수의 프레임들(810)의 각 영역에서 제1 정점들을 골고루 선택함으로써 시각 관성 거리계(VIO)의 성능 향상에 도움이 되도록 하는 방법이다. 일 실시예에 따른 출력 장치는 예를 들어, 복수의 프레임들(810) 각각을 프레임들(820)과 같이 일정 크기의 블록들(또는 버켓(bucket))로 균등하게 분할할 수 있다. 출력 장치는 균등하게 분할된 블록들 각각으로부터 미리 정해진 수 이상의 제1 정점들을 선택할 수 있다.
도 8b를 참조하면, 후보 선택(Candidate Selection) 방법에 의해 제1 정점들을 선택하는 방법이 도시된다. 일 실시예에 따른 출력 장치는 예를 들어, 복수의 프레임들 각각에 포함된 픽셀들의 강도 경사도의 크기, 방향, 및 픽셀들과 주변 픽셀들과의 강도 관계 중 적어도 하나에 기초하여 복수의 클래스들에 대응하는 후보 정점들을 결정할 수 있다. 여기서, 복수의 클래스는 예를 들어, 코너, 블럽, 에지 등을 포함할 수 있다. 이때, 픽셀의 강도 경사도의 크기가 클수록 좋은 정점에 해당할 수 있다. 출력 장치는 복수의 클래스들 각각에 포함된 후보 정점들로부터 제1 정점들을 선택할 수 있다. 출력 장치는 예를 들어, 해당 픽셀의 강도 경사도의 방향과 주변 픽셀의 강도와의 관계를 고려하여 복수의 프레임들(830)과 같이 코너, 블럽, 에지 등 다양한 클래스의 후보 정점들로부터 제1 정점을 선택할 수 있다.
도 8c를 참조하면, 세심한 선택(Careful Selection) 방법에 의해 제1 정점들을 선택하는 방법이 도시된다. 세심한 선택 방법은 앞서, 도 8b에서 후보 선택을 통해 선택된 후보 정점들을 시각 관성 거리계(VIO)의 성능을 최적화할 수 있는 방향으로 한번 더 선별하는 방법이다.
일 실시예에 따른 출력 장치는 제1 정점들의 선별 시에 복수의 프레임들을 분할하는 블록 별 및 복수의 프레임들에 포함된 클래스 별로 후보 정점 중 제1 정점들을 선택할 수 있다. 이때, 출력 장치는 프레임들의 전 영역 및 전 클래스에서 균등하게 제1 정점들이 선택될 수 있도록 상대적으로 선택된 정점들의 개수가 낮은 블록에 우선권을 부여할 수 있다. 또한, 출력 장치는 해당 블록 내에서도 상대적으로 적게 선택된 클래스에 해당하는 정점들을 우선적으로 선택할 수 있다.
도 8d를 참조하면, 방사형 가중치(Radial Weighting) 방법에 의해 제1 정점들을 선택하는 방법이 도시된다. 일반적으로 영상을 렌즈에 의한 배럴 왜곡(barrel distortion)을 제거하는 왜곡 제거(undistortion) 과정을 거친 후, 시각 관성 거리계(VIO)에서 이용될 수 있다. 여기서, 왜곡 제거 과정은 근사 알고리즘에 의해 수행되므로 영상의 가장자리로 갈수록 오차가 커지게 된다. 그러므로, 영상의 가장자리로 갈수록 상대적으로 적은 개수의 정점들을 사용함으로써 시간 관성 거리계의 성능을 향상시킬 수 있다.
방사형 가중치 방법은 전술한 과정을 통해 선택된 제1 정점들이 영상의 가운데에서 멀리 위치할수록 적은 수가 선택되도록 조정하는 방법이다.
출력 장치는 복수의 프레임들(850) 각각의 중심에 있는 정점들에 제1 가중치를 부여할 수 있다. 출력 장치는 복수의 프레임들 각각의 중심에서 외곽으로 갈수록 점진적으로 정점들에 제1 가중치에 비해 적은 제2 가중치를 부여할 수 있다. 예를 들어, 제1 가중치가 0.8 또는 0.9 라면, 제2 가중치는 0.7보다 작은 값을 가질 수 있다. 출력 장치는 제1 가중치 및 제2 가중치를 기초로, 정점들 중 제1 정점들을 선택할 수 있다. 출력 장치는 높은 제1 가중치가 부여된 정점들을 제2 가중치가 부여된 정점들에 비해 더 많이 선택할 수 있다.
도 9는 다른 실시예에 따른 포즈 정보를 출력하는 방법을 나타낸 흐름도이다. 도 9를 참조하면, 일 실시예에 따른 출력 장치는 제1 센서에서 촬영된 영상들을 검색(retrieval)할 수 있다(910). 예를 들어, 카메라가 모노 카메라(Mono camera)인 경우, 출력 장치는 단일 뷰포인트(viewpoint)에 해당하는 영상들을 획득할 수 있다. 카메라가 스테레오 카메라(stereo camera)인 경우, 출력 장치는 좌측과 우측의 뷰포인트들(viewpoints)에 해당하는 영상들을 획득할 수 있다. 출력 장치는 단계(910)에서 검색한 영상들로부터 제1 정점들을 선택할 수 있다(920).
출력 장치는 제2 센서에서 감지된 움직임 정보를 기초로, 필터의 6 자유도 포즈 변화량을 추정할 수 있다(930). 출력 장치는 단계(930)에서 추정한 포즈 변화량에 기초하여 제1 정점들 중 동적 객체에 해당하는 제2 정점들, 다시 말해 아웃라이어를 제거할 수 있다(940).
출력 장치는 제1 정점들 중 제2 정점들을 제외한 제3 정점들, 다시 말해 인라이어를 기초로 현재 프레임들의 회전 정보를 평가하여 회전 정보를 산출할 수 있다(950). 출력 장치는 단계(950)에서 산출한 회전 정보를 기초로, 필터의 상태를 갱신할 수 있다(960). 여기서, 필터의 상태는 현재 프레임들에 대응하는 자체 운동의 상태에 해당할 수 있다.
출력 장치는 단계(960)에서 갱신된 상태 값을 이용하여 필터의 회전 정보를 추정할 수 있다(970). 출력 장치는 필터의 회전 정보에 기초하여 시각 거리계의 이동 정보를 평가(또는 추정)할 수 있다(980). 출력 장치는 인라이어를 대상으로 기 추정된 회전 정보를 이용하여, 이동 정보를 추정할 수 있다.
도 10은 일 실시예 따른 포즈 정보를 출력하는 장치의 블록도이다. 도 10을 참조하면, 일 실시예에 따른 출력 장치(1000)는 제1 센서(1013) 및 제2 센서(1016)를 포함하는 센서들(1010) 및 프로세서(1030)를 포함한다. 출력 장치(1000)는 메모리(1050), 통신 인터페이스(1070) 및 디스플레이(1090)를 더 포함할 수 있다. 센서들(1010), 프로세서(1030), 메모리(1050), 통신 인터페이스(1070) 및 디스플레이(1090)는 통신 버스(1005)를 통해 서로 통신할 수 있다.
제1 센서(1013)는 예를 들어, 이미지 센서, 또는 비전 센서일 수 있다. 제1 센서(1013)는 예를 들어, 차량의 주행 영상에 해당하는 복수의 프레임들을 촬영할 수 있다. 제2 센서(1016)는 움직임 정보를 감지한다. 제2 센서(1016)는 예를 들어, 가속도 센서, 자이로 센서, GPS(Global Positioning System) 센서, IMU 센서, 레이더(Radar), 라이다(Lidar) 등을 포함할 수 있다. 제2 센서(1016)는 예를 들어, GPS 좌표, 위치, 자세 등과 같은 측위 정보 이외에도, 속도, 가속도, 각속도, 주행 방향, 차량의 핸들 조향 각도, 및 차량의 속도 등의 센싱 정보를 감지할 수 있다.
프로세서(1030)는 도 1 내지 도 9를 통하여 전술한 동작들을 수행할 수 있다.
메모리(1050)는 제1 센서(1013)에서 촬영된 복수의 프레임들 및/또는 제2 센서(1016)에서 감지된 움직임 정보를 저장할 수 있다. 또한, 메모리(1050)는 프로세서(1030)에 의해 추정된 회전 정보, 보정된 회전 정보 및 이동 정보를 저장할 수 있다. 메모리(1050)는 상술한 프로세서(1030)에서의 처리 과정에서 생성되는 다양한 정보들을 저장할 수 있다. 이 밖에도, 메모리(1050)는 각종 데이터와 프로그램 등을 저장할 수 있다. 메모리(1050)는 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다. 메모리(1050)는 하드 디스크 등과 같은 대용량 저장 매체를 구비하여 각종 데이터를 저장할 수 있다.
출력 장치(1000)는 통신 인터페이스(1070)를 통해 복수의 프레임들 및/또는 움직임 정보를 포함하는 다양한 센서들의 센싱 정보를 획득할 수 있다. 실시예에 따라서, 통신 인터페이스(1070)는 출력 장치(1000)의 외부에 존재하는 다른 센서들로부터 센싱 정보를 수신할 수 있다.
프로세서(1030)는 통신 인터페이스(1070) 및/또는 디스플레이 장치(1090)를 통해 보정된 회전 정보 및/또는 이동 정보를 출력하거나, 또는 보정된 회전 정보 및/또는 이동 정보에 기초하여 가상 객체를 표시함으로써 증강 현실 서비스를 제공할 수 있다. 프로세서(1030)는 보정된 회전 정보 및/또는 이동 정보에 기초하여 가상 객체를 렌더링할 수도 있고, 촬영된 프레임들과 함께 표시할 수도 있다.
프로세서(1030)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다. 예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.
프로세서(1030)는 프로그램을 실행하고, 출력 장치(1000)를 제어할 수 있다. 프로세서(1030)에 의하여 실행되는 프로그램 코드는 메모리(1050)에 저장될 수 있다.
출력 장치(1000)는 예를 들어, 전술한 포즈 정보를 출력하는 방법을 수행하는 장치로서, 예를 들어, 차량일 수도 있고, 내비게이션, 스마트 폰 등과 같은 사용자 장치일 수도 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (20)

  1. 제1 센서에서 촬영된 복수의 프레임들로부터 제1 정점들(points)을 선택하는 단계;
    제2 센서에서 감지된 움직임 정보를 기초로, 상기 복수의 프레임들 간의 초기 회전 정보를 추정하는 단계;
    상기 제1 정점들 중 동적 객체에 해당하는 제2 정점들을 제외한 제3 정점들을 기초로, 상기 초기 회전 정보를 보정하는 단계;
    상기 제3 정점들 및 상기 보정된 회전 정보를 기초로, 상기 복수의 프레임들 간의 이동(translation) 정보를 산출하는 단계; 및
    상기 보정된 회전 정보 및 상기 이동 정보를 출력하는 단계
    를 포함하고,
    상기 초기 회전 정보를 추정하는 단계는
    자체 운동(ego motion)의 이전 상태 및 제2 센서에 의해 감지된 움직임 정보를 기초로, 필터를 이용하여 상기 자체 운동의 현재 상태를 추정하는 단계; 및
    상기 이전 상태에서 상기 필터의 제1 출력과 상기 현재 상태에서 상기 필터의 제2 출력 간의 회전 변화량에 의해 상기 초기 회전 정보를 산출하는 단계
    를 포함하고,
    상기 초기 회전 정보를 보정하는 단계는
    상기 복수의 프레임들 간의 이동 정보에 앞서, 상기 추정된 초기 회전 정보를 기초로, 상기 제1 정점들 중 동적 객체에 해당하는 제2 정점들을 제외한 제3 정점들을 획득함으로써 상기 초기 회전 정보를 보정하는 단계;
    상기 제3 정점들을 기초로, 상기 프레임들 간의 추가 회전 정보를 추정하는 단계;
    상기 필터를 이용하여, 상기 자체 운동의 상기 현재 상태 및 상기 추가 회전 정보에 기초하여, 상기 자체 운동의 보정된 현재 상태를 추정하는 단계; 및
    상기 이전 상태에서의 상기 필터의 제1 출력과 상기 보정된 현재 상태에서의 상기 필터의 제3 출력 간의 회전 변화량에 의해 상기 보정된 회전 정보를 산출하는 단계
    를 포함하는, 포즈 정보를 출력하는 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 복수의 프레임들 간의 초기 회전 정보를 추정하는 단계는
    칼만 필터(Kalman Filter), 확장된 칼만 필터(Extended Kalman Filter), 반복되고 확장된 칼만 필터(Iterated Extended Kalman Filter), 언센티드 칼만 필터(Unscented Kalman Filter), 및 입자 필터(Particle Filter) 중 어느 하나를 이용하여 상기 복수의 프레임들 간의 초기 회전 정보를 추정하는 단계
    를 포함하는, 포즈 정보를 출력하는 방법.
  6. 제1항에 있어서,
    상기 초기 회전 정보를 보정하는 단계는
    상기 추정된 추가 회전 정보를 이용하여, 상기 초기 회전 정보를 보정하는 단계
    를 포함하는, 포즈 정보를 출력하는 방법.
  7. 제1항에 있어서,
    상기 복수의 프레임들은
    제1 시점에서 촬영된 제1 프레임 및 제2 시점에서 촬영된 제2 프레임을 포함하고,
    상기 제2 정점들을 제거하는 단계는
    상기 제1 시점에서 추정된 제1 회전 정보와 상기 제2 시점에서 추정된 제2 회전 정보 간의 회전 변화량을 산출하는 단계; 및
    상기 회전 변화량에 기초하여 상기 제2 정점들을 제거하는 단계
    를 포함하는, 포즈 정보를 출력하는 방법.
  8. 제1항에 있어서,
    상기 추가 회전 정보를 추정하는 단계는
    상기 제3 정점들에 대하여 PNP 함수, 가우스 뉴톤 최적화(Gauss Newton optimization) 함수, 및 레벤버르그 마콰트 최적화(levenberg marquardt optimization) 함수 중 어느 하나를 적용하여 상기 추가 회전 정보를 추정하는 단계
    를 포함하는, 포즈 정보를 출력하는 방법.
  9. 제6항에 있어서,
    상기 초기 회전 정보를 보정하는 단계는
    상기 추정된 추가 회전 정보와 상기 초기 회전 정보 사이의 차이에 기초하여, 상기 복수의 프레임들 중 적어도 하나에 대응하는 자체 운동의 상태를 갱신하는 단계
    를 포함하는, 포즈 정보를 출력하는 방법.
  10. 제1항에 있어서,
    상기 이동 정보를 산출하는 단계는
    상기 보정된 회전 정보를 기초로, 상기 제3 정점들이 속한 복수의 프레임들 간 강도(intensity) 차이와 관련된 에너지 함수가 미리 정해진 목표 값보다 작아지도록 상기 이동 정보를 결정하는 단계
    를 포함하는, 포즈 정보를 출력하는 방법.
  11. 제10항에 있어서,
    상기 에너지 함수는
    가우스 뉴톤 최적화 함수, 및 레벤버르그 마콰트 최적화 함수 중 어느 하나를 포함하는, 포즈 정보를 출력하는 방법.
  12. 제1항에 있어서,
    상기 제1 정점들을 선택하는 단계는
    상기 복수의 프레임들을 분할하는 블록 별로 상기 제1 정점들을 선택하는 단계; 및
    복수의 클래스들 중 상기 복수의 프레임들에 포함된 클래스 별로 상기 제1 정점들을 선택하는 단계
    중 적어도 하나를 포함하는, 포즈 정보를 출력하는 방법.
  13. 제12항에 있어서,
    상기 블록 별로 상기 제1 정점들을 선택하는 단계는
    상기 복수의 프레임들 각각을 일정 크기의 블록들로 균등하게 분할하는 단계; 및
    상기 균등하게 분할된 블록들 각각으로부터 상기 제1 정점들을 선택하는 단계
    를 포함하는, 포즈 정보를 출력하는 방법.
  14. 제12항에 있어서,
    상기 클래스 별로 상기 제1 정점들을 선택하는 단계는
    상기 복수의 프레임들 각각에 포함된 픽셀들의 강도 경사도(intensity gradient)의 크기, 상기 픽셀들의 강도 경사도의 방향, 및 상기 픽셀들과 주변 픽셀들과의 강도 관계 중 적어도 하나에 기초하여 상기 복수의 클래스들에 대응하는 후보 정점들을 결정하는 단계; 및
    상기 복수의 클래스들 각각에 포함된 후보 정점들로부터 상기 제1 정점들을 선택하는 단계
    를 포함하는, 포즈 정보를 출력하는 방법.
  15. 제1항에 있어서,
    상기 제1 정점들을 선택하는 단계는
    복수의 정점들 중 상기 복수의 프레임들 각각의 중심에 있는 정점들에 제1 가중치를 부여하는 단계;
    상기 복수의 정점들 중 상기 복수의 프레임들 각각의 중심에서 외곽으로 갈수록 점진적으로 상기 정점들에 상기 제1 가중치에 비해 적은 제2 가중치를 부여하는 단계; 및
    상기 제1 가중치 및 상기 제2 가중치를 기초로, 상기 복수의 정점들 중 상기 제1 정점들을 선택하는 단계
    를 포함하는, 포즈 정보를 출력하는 방법.
  16. 하드웨어와 결합되어 제1항, 제5항 내지 제15항 중 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터로 판독 가능한 저장 매체에 저장된 컴퓨터 프로그램.
  17. 복수의 프레임들을 촬영하는 제1 센서
    움직임 정보를 감지하는 제2 센서; 및
    상기 복수의 프레임들로부터 제1 정점들을 선택하고,
    자체 운동(ego motion)의 이전 상태 및 상기 움직임 정보를 기초로, 필터를 이용하여 상기 자체 운동의 현재 상태를 추정하고, 상기 이전 상태에서 상기 필터의 제1 출력과 상기 현재 상태에서 상기 필터의 제2 출력 간의 회전 변화량에 의해 초기 회전 정보를 산출함으로써 상기 복수의 프레임들 간의 초기 회전 정보를 추정하며,
    상기 복수의 프레임들 간의 이동 정보에 앞서, 상기 추정된 초기 회전 정보를 기초로, 상기 제1 정점들 중 동적 객체에 해당하는 제2 정점들을 제외한 제3 정점들을 획득함으로써 상기 초기 회전 정보를 보정하고, 상기 제3 정점들을 기초로, 상기 프레임들 간의 추가 회전 정보를 추정하고, 상기 필터를 이용하여, 상기 자체 운동의 상기 현재 상태 및 상기 추가 회전 정보에 기초하여, 상기 자체 운동의 보정된 현재 상태를 추정하며, 상기 이전 상태에서의 상기 필터의 제1 출력과 상기 보정된 현재 상태에서의 상기 필터의 제3 출력 간의 회전 변화량에 의해 상기 보정된 회전 정보를 산출함으로써 상기 초기 회전 정보를 보정하고,
    상기 제3 정점들 및 상기 보정된 회전 정보를 기초로 상기 복수의 프레임들 간의 이동 정보를 산출하는
    적어도 하나의 프로세서
    를 포함하는, 포즈 정보를 출력하는 장치.
  18. 삭제
  19. 제17항에 있어서,
    상기 프로세서는
    상기 추정된 추가 회전 정보를 이용하여, 상기 추정된 추가 회전 정보를 보정하는,
    포즈 정보를 출력하는 장치.
  20. 제17항에 있어서,
    상기 프로세서는
    상기 보정된 회전 정보를 기초로, 상기 제3 정점들이 속한 복수의 프레임들 간 강도 차이와 관련된 에너지 함수가 미리 정해진 목표 값보다 작아지도록 상기 이동 정보를 결정하는, 포즈 정보를 출력하는 장치.
KR1020180116785A 2018-10-01 2018-10-01 포즈 정보를 출력하는 방법 및 장치 KR102559203B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020180116785A KR102559203B1 (ko) 2018-10-01 2018-10-01 포즈 정보를 출력하는 방법 및 장치
US16/283,898 US10866427B2 (en) 2018-10-01 2019-02-25 Method and apparatus for outputting pose information
EP19166616.3A EP3633616A1 (en) 2018-10-01 2019-04-01 Method and apparatus for outputting pose information
CN201910282882.8A CN110992405A (zh) 2018-10-01 2019-04-09 用于输出姿态信息的方法和装置
JP2019114797A JP7365148B2 (ja) 2018-10-01 2019-06-20 ポーズ情報を取得する方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180116785A KR102559203B1 (ko) 2018-10-01 2018-10-01 포즈 정보를 출력하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20200037502A KR20200037502A (ko) 2020-04-09
KR102559203B1 true KR102559203B1 (ko) 2023-07-25

Family

ID=66049108

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180116785A KR102559203B1 (ko) 2018-10-01 2018-10-01 포즈 정보를 출력하는 방법 및 장치

Country Status (5)

Country Link
US (1) US10866427B2 (ko)
EP (1) EP3633616A1 (ko)
JP (1) JP7365148B2 (ko)
KR (1) KR102559203B1 (ko)
CN (1) CN110992405A (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210036574A (ko) * 2019-09-26 2021-04-05 삼성전자주식회사 자세 추정 방법 및 장치
US11215817B1 (en) * 2020-12-03 2022-01-04 Facebook Technologies, Llc. Systems and methods for generating spectator images of an artificial reality environment
DE102021117453B3 (de) 2021-07-06 2022-10-20 Holoride Gmbh Verfahren zum Betreiben einer Datenbrille in einem Kraftfahrzeug während einer Fahrt, entsprechend betreibbare Datenbrille, Prozessorschaltung sowie Kraftfahrzeug
EP4134625A1 (en) 2021-08-11 2023-02-15 Hitachi Astemo, Ltd. Drive device, vehicle, and method for automated driving and/or assisted driving

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013242625A (ja) * 2012-05-17 2013-12-05 Fujitsu Ltd 画像処理装置、画像処理方法
JP2015121524A (ja) * 2013-11-19 2015-07-02 キヤノン株式会社 画像処理装置およびその制御方法、撮像装置、プログラム
US20150369609A1 (en) * 2014-06-19 2015-12-24 Regents Of The University Of Minnesota Efficient vision-aided inertial navigation using a rolling-shutter camera with inaccurate timestamps
JP2017005532A (ja) * 2015-06-11 2017-01-05 富士通株式会社 カメラ姿勢推定装置、カメラ姿勢推定方法およびカメラ姿勢推定プログラム

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6037988A (en) * 1996-03-22 2000-03-14 Microsoft Corp Method for generating sprites for object-based coding sytems using masks and rounding average
US6307959B1 (en) * 1999-07-14 2001-10-23 Sarnoff Corporation Method and apparatus for estimating scene structure and ego-motion from multiple images of a scene using correlation
JP2003510910A (ja) * 1999-09-21 2003-03-18 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 全体的動き推定方法
US7515173B2 (en) 2002-05-23 2009-04-07 Microsoft Corporation Head pose tracking system
US7306337B2 (en) 2003-03-06 2007-12-11 Rensselaer Polytechnic Institute Calibration-free gaze tracking under natural head movement
WO2005010817A1 (ja) 2003-07-24 2005-02-03 Olympus Corporation 画像処理装置
US7831094B2 (en) 2004-04-27 2010-11-09 Honda Motor Co., Ltd. Simultaneous localization and mapping using multiple view feature descriptors
US10809071B2 (en) * 2017-10-17 2020-10-20 AI Incorporated Method for constructing a map while performing work
US8195386B2 (en) 2004-09-28 2012-06-05 National University Corporation Kumamoto University Movable-body navigation information display method and movable-body navigation information display unit
US8422741B2 (en) * 2007-08-22 2013-04-16 Honda Research Institute Europe Gmbh Estimating objects proper motion using optical flow, kinematics and depth information
US20110012896A1 (en) 2009-06-22 2011-01-20 Ji Maengsob Image display apparatus, 3d glasses, and method for operating the image display apparatus
JP5412984B2 (ja) 2009-06-24 2014-02-12 日本電気株式会社 フォロー対象検出装置、フォロー対象検出方法およびフォロー対象検出プログラム
US8508605B2 (en) * 2009-10-14 2013-08-13 Csr Technology Inc. Method and apparatus for image stabilization
KR20120006819A (ko) 2010-07-13 2012-01-19 한국기초과학지원연구원 시선 추적 방법 및 이를 적용하는 장치
KR101220527B1 (ko) 2011-03-02 2013-01-21 한국과학기술원 센서 시스템, 이를 이용하는 환경 지도 작성 시스템 및 방법
US8594374B1 (en) 2011-03-30 2013-11-26 Amazon Technologies, Inc. Secure device unlock with gaze calibration
US8744169B2 (en) * 2011-05-31 2014-06-03 Toyota Motor Europe Nv/Sa Voting strategy for visual ego-motion from stereo
US9286678B2 (en) * 2011-12-28 2016-03-15 Pelco, Inc. Camera calibration using feature identification
WO2013111229A1 (ja) 2012-01-23 2013-08-01 日本電気株式会社 カメラ校正装置、カメラ校正方法およびカメラ校正用プログラム
JP2013225245A (ja) * 2012-04-23 2013-10-31 Sony Corp 画像処理装置、画像処理方法及びプログラム
KR20140090552A (ko) 2013-01-09 2014-07-17 엘지전자 주식회사 시선 캘리브레이션을 제공하는 헤드 마운트 디스플레이 및 그 제어 방법
JP5924295B2 (ja) 2013-03-12 2016-05-25 沖電気工業株式会社 パラメータ推定装置、パラメータ推定プログラム、機器決定システム及び機器決定プログラム
JP6154905B2 (ja) 2013-08-30 2017-06-28 クラリオン株式会社 カメラ校正装置、カメラ校正システム、及びカメラ校正方法
US10311595B2 (en) * 2013-11-19 2019-06-04 Canon Kabushiki Kaisha Image processing device and its control method, imaging apparatus, and storage medium
KR102209008B1 (ko) * 2014-02-17 2021-01-28 삼성전자주식회사 카메라 포즈 추정 장치 및 카메라 포즈 추정 방법
EP2933707B1 (en) * 2014-04-14 2017-12-06 iOnRoad Technologies Ltd. Head mounted display presentation adjustment
US9413951B2 (en) * 2014-07-31 2016-08-09 Apple Inc. Dynamic motion estimation and compensation for temporal filtering
US9969337B2 (en) * 2014-09-03 2018-05-15 Sharp Laboratories Of America, Inc. Methods and systems for mobile-agent navigation
US10719727B2 (en) * 2014-10-01 2020-07-21 Apple Inc. Method and system for determining at least one property related to at least part of a real environment
WO2016073642A1 (en) * 2014-11-04 2016-05-12 The Regents Of The University Of California Visual-inertial sensor fusion for navigation, localization, mapping, and 3d reconstruction
CN104501814B (zh) * 2014-12-12 2017-05-10 浙江大学 一种基于视觉和惯性信息的姿态与位置估计方法
EP3057061B1 (en) * 2015-02-16 2017-08-30 Application Solutions (Electronics and Vision) Limited Method and device for the estimation of car egomotion from surround view images
US10115024B2 (en) * 2015-02-26 2018-10-30 Mobileye Vision Technologies Ltd. Road vertical contour detection using a stabilized coordinate frame
JP6642972B2 (ja) * 2015-03-26 2020-02-12 修一 田山 車輌用画像表示システム及び方法
US9558424B2 (en) * 2015-06-30 2017-01-31 Mitsubishi Electric Research Laboratories, Inc. On-road stereo visual odometry without explicit pose determinations
EP3347789B1 (en) * 2015-09-11 2021-08-04 SZ DJI Technology Co., Ltd. Systems and methods for detecting and tracking movable objects
JP6332212B2 (ja) * 2015-09-18 2018-05-30 カシオ計算機株式会社 姿勢推定装置、姿勢推定方法及びプログラム
EP3193306B8 (en) * 2016-01-15 2019-01-23 Aptiv Technologies Limited A method and a device for estimating an orientation of a camera relative to a road surface
US9978180B2 (en) * 2016-01-25 2018-05-22 Microsoft Technology Licensing, Llc Frame projection for augmented reality environments
US9459692B1 (en) * 2016-03-29 2016-10-04 Ariadne's Thread (Usa), Inc. Virtual reality headset with relative motion head tracker
WO2017197651A1 (en) * 2016-05-20 2017-11-23 SZ DJI Technology Co., Ltd. Systems and methods for rolling shutter correction
JP2018004420A (ja) 2016-06-30 2018-01-11 株式会社リコー 装置、移動体装置、位置ずれ検出方法及び測距方法
US10295365B2 (en) * 2016-07-29 2019-05-21 Carnegie Mellon University State estimation for aerial vehicles using multi-sensor fusion
IL281241B (en) * 2016-08-22 2022-08-01 Magic Leap Inc An augmented reality display device with deep learning sensors
EP3563217A1 (en) 2016-09-27 2019-11-06 Tobii AB Portable eye tracking device
KR101851155B1 (ko) * 2016-10-12 2018-06-04 현대자동차주식회사 자율 주행 제어 장치, 그를 가지는 차량 및 그 제어 방법
JP6842039B2 (ja) 2017-03-02 2021-03-17 富士通株式会社 カメラ位置姿勢推定装置、方法およびプログラム
US10705598B2 (en) * 2017-05-09 2020-07-07 Microsoft Technology Licensing, Llc Tracking wearable device and handheld object poses
US10514456B2 (en) * 2017-11-29 2019-12-24 Qualcomm Incorporated Radar aided visual inertial odometry outlier removal

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013242625A (ja) * 2012-05-17 2013-12-05 Fujitsu Ltd 画像処理装置、画像処理方法
JP2015121524A (ja) * 2013-11-19 2015-07-02 キヤノン株式会社 画像処理装置およびその制御方法、撮像装置、プログラム
US20150369609A1 (en) * 2014-06-19 2015-12-24 Regents Of The University Of Minnesota Efficient vision-aided inertial navigation using a rolling-shutter camera with inaccurate timestamps
JP2017005532A (ja) * 2015-06-11 2017-01-05 富士通株式会社 カメラ姿勢推定装置、カメラ姿勢推定方法およびカメラ姿勢推定プログラム

Also Published As

Publication number Publication date
US10866427B2 (en) 2020-12-15
JP2020057358A (ja) 2020-04-09
JP7365148B2 (ja) 2023-10-19
US20200103664A1 (en) 2020-04-02
KR20200037502A (ko) 2020-04-09
EP3633616A1 (en) 2020-04-08
CN110992405A (zh) 2020-04-10

Similar Documents

Publication Publication Date Title
KR102559203B1 (ko) 포즈 정보를 출력하는 방법 및 장치
CN110084832B (zh) 相机位姿的纠正方法、装置、系统、设备和存储介质
JP6100380B2 (ja) 特に装置に係る視覚ベースの位置決めに使用される画像処理方法
US11830216B2 (en) Information processing apparatus, information processing method, and storage medium
CN110702111A (zh) 使用双事件相机的同时定位与地图创建(slam)
US9420265B2 (en) Tracking poses of 3D camera using points and planes
KR102442780B1 (ko) 장치의 자세 추정 방법 및 그 장치
US9940725B2 (en) Method for estimating the speed of movement of a camera
CN109461208B (zh) 三维地图处理方法、装置、介质和计算设备
JP3843119B2 (ja) 移動体動き算出方法および装置、並びにナビゲーションシステム
CN107735797B (zh) 用于确定第一坐标系与第二坐标系之间的运动的方法
US11082633B2 (en) Method of estimating the speed of displacement of a camera
US20140376821A1 (en) Method and system for determining position and/or orientation
JP2009266224A (ja) リアルタイム・ビジュアル・オドメトリの方法およびシステム
WO2020221307A1 (zh) 一种运动物体的追踪方法和装置
JP6229041B2 (ja) 基準方向に対する移動要素の角度偏差を推定する方法
KR20190030474A (ko) 신뢰도에 기초하여 깊이 맵을 산출하는 방법 및 장치
CN114636414A (zh) 高清晰度城市地图绘制
Luo et al. Fast terrain mapping from low altitude digital imagery
JP6905390B2 (ja) 自車位置推定用環境地図生成装置、自車位置推定装置、自車位置推定用環境地図生成プログラム、及び自車位置推定プログラム
CN113052907B (zh) 一种动态环境移动机器人的定位方法
Hong et al. Visual inertial odometry using coupled nonlinear optimization
CN111161357B (zh) 信息处理方法及装置、增强现实设备和可读存储介质
JP2007241326A (ja) 移動体動き算出装置
CN111798489A (zh) 一种特征点跟踪方法、设备、介质及无人设备

Legal Events

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