KR20230102243A - Bundle adjustment device for 2D image-based 3D maps - Google Patents

Bundle adjustment device for 2D image-based 3D maps Download PDF

Info

Publication number
KR20230102243A
KR20230102243A KR1020210192206A KR20210192206A KR20230102243A KR 20230102243 A KR20230102243 A KR 20230102243A KR 1020210192206 A KR1020210192206 A KR 1020210192206A KR 20210192206 A KR20210192206 A KR 20210192206A KR 20230102243 A KR20230102243 A KR 20230102243A
Authority
KR
South Korea
Prior art keywords
keyframe
memory
bundle adjustment
stored
map points
Prior art date
Application number
KR1020210192206A
Other languages
Korean (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 KR1020210192206A priority Critical patent/KR20230102243A/en
Publication of KR20230102243A publication Critical patent/KR20230102243A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • 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

Abstract

2D 이미지 기반 3D 맵의 번들 조정 장치가 제공된다. 본 발명의 실시예에 따른 visual SLAM을 위한 번들 조정을 수행하는 번들 조정 장치은, 키프레임들의 이미지, 특징점들, 카메라 자세, 맵포인트들이 저장되는 제1 메모리, 제1 메모리에 저장된 데이터들을 이용하여 각 키프레임들의 재투영 오차를 계산하는 계산 모듈, 계산된 각 키프레임들의 재투영 오차가 저장되는 제2 메모리, 제2 메모리에 저장된 각 키프레임들의 재투영 오차를 기초로, 제1 메모리에 저장된 각 키프레임들의 카메라 자세와 맵포인트들을 업데이트하는 최적화 모듈을 포함한다. 이에 의해, Visual SLAM의 위치 추정 알고리즘에서 가장 큰 로드를 차지하는 맵의 번들 조정을 수행하는 전용 하드웨어 장치를 통해, 저가형 CPU를 메인 프로세서로 번들 조정이 가능해지며 회로 보드 사이즈를 줄일 수 있다.An apparatus for adjusting bundles of 3D maps based on 2D images is provided. A bundle adjustment apparatus for performing bundle adjustment for visual SLAM according to an embodiment of the present invention uses a first memory in which keyframe images, feature points, camera postures, and map points are stored, and data stored in the first memory are used for each image. A calculation module for calculating reprojection errors of keyframes, a second memory for storing the calculated reprojection errors of each keyframe, and based on the reprojection errors of each keyframe stored in the second memory, each of the calculated reprojection errors of each keyframe stored in the first memory. It includes an optimization module that updates camera poses and map points at keyframes. As a result, through a dedicated hardware device that performs bundle adjustment of the map, which accounts for the largest load in the position estimation algorithm of Visual SLAM, it is possible to adjust the bundle with a low-cost CPU as a main processor and reduce the size of the circuit board.

Figure P1020210192206
Figure P1020210192206

Description

2D 이미지 기반 3D 맵의 번들 조정 장치{Bundle adjustment device for 2D image-based 3D maps}Bundle adjustment device for 2D image-based 3D maps}

본 발명은 Visual SLAM(Simultaneous Localization and Mapping) 기술에 관한 것으로, 여러 장의 2D 이미지로부터 생성된 3D 맵을 최적화하는 기술인 번들 조정을 수행하는 하드웨어 장치의 구조에 관한 것이다.The present invention relates to Visual Simultaneous Localization and Mapping (SLAM) technology, and relates to a structure of a hardware device that performs bundle adjustment, which is a technology for optimizing a 3D map generated from multiple 2D images.

Visual SLAM(Simultaneous Localization and Mapping)의 과정 중 하나인 번들 조정(Bundle Adjustment : BA)은 모든 에러의 제곱을 최소화하는 최적의 해를 반복 연산을 통해 찾는 과정으로, 높은 계산 복잡도를 가지며 이에 따라 많은 연산 리소스가 필요하다.Bundle Adjustment (BA), one of the processes of Visual SLAM (Simultaneous Localization and Mapping), is a process of finding an optimal solution that minimizes the square of all errors through iterative operations. resources are needed

알고리즘적 해결을 위한 다양한 시도들이 있었음에도, 아직도 Visual SLAM을 수행하기 위해서는 큰 용량의 메모리와 고사양의 컴퓨팅 파워를 가진 디바이스가 필요하다.Despite various attempts for algorithmic solutions, Visual SLAM still requires a device with large memory and high-end computing power.

따라서 부피가 크기 때문에 착용형 디바이스나 소형 디바이스에서 사용하기 어렵다는 문제가 있다.Therefore, there is a problem that it is difficult to use in a wearable device or a small device because of its large volume.

본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 2D 이미지에서 생성된 3D 맵을 최적화하는 번들 조정을 수행하는 하드웨어 장치를 제공함에 있다.The present invention has been made to solve the above problems, and an object of the present invention is to provide a hardware device that performs bundle adjustment to optimize a 3D map generated from a 2D image.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, visual SLAM(Simultaneous Localization and Mapping)을 위한 번들 조정을 수행하는 번들 조정 장치은, 키프레임들의 이미지, 특징점들, 카메라 자세, 맵포인트들이 저장되는 제1 메모리; 제1 메모리에 저장된 데이터들을 이용하여 각 키프레임들의 재투영 오차를 계산하는 계산 모듈; 계산된 각 키프레임들의 재투영 오차가 저장되는 제2 메모리; 제2 메모리에 저장된 각 키프레임들의 재투영 오차를 기초로, 제1 메모리에 저장된 각 키프레임들의 카메라 자세와 맵포인트들을 업데이트하는 최적화 모듈;을 포함한다.According to an embodiment of the present invention for achieving the above object, a bundle adjustment apparatus for performing bundle adjustment for visual SLAM (Simultaneous Localization and Mapping) is an image of keyframes, feature points, camera posture, and map points are stored a first memory; a calculation module that calculates a reprojection error of each key frame using data stored in the first memory; a second memory storing calculated reprojection errors of each key frame; and an optimization module that updates the camera posture and map points of each keyframe stored in the first memory based on the reprojection error of each keyframe stored in the second memory.

계산 모듈은, 맵포인트들을 키프레임의 이미지로 재투영하고, 재투영 오차들을 계산할 수 있다. 계산 모듈은, 계산된 각 재투영 오차의 가중치를 계산하고 적용할 수 있다.The calculation module may reproject the map points to the image of the keyframe and calculate reprojection errors. The calculation module may calculate and apply a weight of each calculated reprojection error.

최적화 모듈은, 각 키프레임들의 재투영 오차의 제곱값이 정해진 값에 수렴할 때까지, 제1 메모리에 저장된 각 키프레임들의 카메라 자세와 맵포인트들을 업데이트할 수 있다.The optimization module may update the camera pose and map points of each keyframe stored in the first memory until the square of the reprojection error of each keyframe converges to a predetermined value.

계산 모듈은, 최적화 모듈에 의해 각 키프레임들의 카메라 자세와 맵포인트들이 업데이트 되면, 각 키프레임들의 재투영 오차를 재계산할 수 있다.The calculation module may recalculate the reprojection error of each keyframe when the camera posture and map points of each keyframe are updated by the optimization module.

최적화 모듈은, 각 키프레임들의 재투영 오차의 제곱값이 정해진 값에 수렴하면, 아웃라이어로 판단된 맵포인트를 제거할 수 있다.The optimization module may remove the map point determined to be an outlier when the square value of the reprojection error of each key frame converges to a predetermined value.

키프레임들의 이미지들, 특징점들, 카메라 자세들, 맵포인트들은, 번들 조정 장치의 외부에 마련된 CPU에 의해 생성되어 제1 메모리에 저장될 수 있다.Images of keyframes, feature points, camera postures, and map points may be generated by a CPU provided outside the bundle adjustment device and stored in the first memory.

한편, 본 발명의 다른 실시예에 따른, 번들 조정 방법은, visual SLAM을 위한 번들 조정을 수행하는 번들 조정 장치의 번들 조정 방법은, 제1 메모리에, 키프레임들의 이미지, 특징점들, 카메라 자세, 맵포인트들이 저장되는 단계; 계산 모듈이, 제1 메모리에 저장된 데이터들을 이용하여 각 키프레임들의 재투영 오차를 계산하는 단계; 및 최적화 모듈이, 각 키프레임들의 재투영 오차를 기초로, 제1 메모리에 저장된 각 키프레임들의 카메라 자세와 맵포인트들을 업데이트하는 단계;를 포함한다.Meanwhile, according to another embodiment of the present invention, a bundle adjustment method of a bundle adjustment apparatus performing bundle adjustment for visual SLAM includes, in the first memory, images of keyframes, feature points, camera posture, storing map points; calculating, by a calculation module, a reprojection error of each keyframe using data stored in the first memory; and updating, by an optimization module, camera poses and map points of each keyframe stored in the first memory based on the reprojection error of each keyframe.

이상 설명한 바와 같이, 본 발명의 실시예들에 따르면, Visual SLAM의 위치 추정 알고리즘에서 가장 큰 로드를 차지하는 맵의 번들 조정을 수행하는 전용 하드웨어 장치를 통해, 저가형 CPU를 메인 프로세서로 번들 조정이 가능해지며 회로 보드 사이즈를 줄일 수 있다.As described above, according to the embodiments of the present invention, it is possible to bundle a low-cost CPU as a main processor through a dedicated hardware device that performs bundle adjustment of a map that accounts for the largest load in the location estimation algorithm of Visual SLAM. The circuit board size can be reduced.

또한, 본 발명의 실시예들에 따르면, 임베디드 디바이스 및 웨어러블 디바이스의 부피 및 트래킹 지연을 줄이고 저가형 CPU를 사용할 수 있도록 하며, AR 디바이스, 자율주행 로봇, 무인 비행체 등 실시간 위치 추정 기술이 필요하지만 리소스가 제한적인 임베디드 환경에서도 번들 조정을 수행할 수 있게 된다.In addition, according to the embodiments of the present invention, the volume and tracking delay of embedded devices and wearable devices can be reduced, and low-cost CPUs can be used, and real-time location estimation technologies such as AR devices, autonomous robots, and unmanned air vehicles are required, but resources are low. Bundle coordination can be performed even in a limited embedded environment.

도 1은 본 발명의 일 실시예에 따른 번들 조정 하드웨어 장치의 구성을 도시한 도면,
도 2는 본 발명의 다른 실시예에 따른 번들 조정 방법의 설명에 제공되는 흐름도이다.
1 is a diagram showing the configuration of a bundle coordination hardware device according to an embodiment of the present invention;
2 is a flowchart provided to explain a method for adjusting a bundle according to another embodiment of the present invention.

이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.Hereinafter, the present invention will be described in more detail with reference to the drawings.

본 발명은 실시예에서는 Visual SLAM(Simultaneous Localization and Mapping)에서 2D 이미지 기반 3D 맵의 번들 조정을 수행하는 하드웨어 장치를 제시한다. Visual SLAM에서 가장 큰 로드를 차지하는 맵의 번들 조정을 CPU가 아닌 전용 하드웨어 장치에서 수행하도록 하여 메인 프로세서의 로드를 줄이기 위한 기술이다.In an embodiment of the present invention, a hardware device that performs bundle adjustment of a 2D image-based 3D map in Visual Simultaneous Localization and Mapping (SLAM) is proposed. This is a technology to reduce the load on the main processor by making the map bundle adjustment, which accounts for the largest load in Visual SLAM, be performed on a dedicated hardware device instead of the CPU.

2D 이미지로부터 생성된 3D 맵에 저장된 정보는 키프레임 관련 정보와 맵포인트 정보이다. 키프레임 관련 정보는 이미지와 이미지에서 추출된 특징점 및, 해당 키프레임에서의 카메라 자세 정보 등이고, 맵포인트는 키프레임 이미지에서 추출된 특징점의 3D 투영 좌표 정보이다. The information stored in the 3D map generated from the 2D image includes keyframe related information and map point information. The keyframe-related information includes an image, feature points extracted from the image, and camera attitude information in the corresponding keyframe, and map points are 3D projected coordinate information of feature points extracted from the keyframe image.

다수의 키프레임에서 발견되는 동일한 맵포인트를 파악하여, 각 키프레임에서의 위치 간 차이를 최소화 하는 것이 번들 조정이다. 도 1은 본 발명의 일 실시예에 따른 번들 조정 하드웨어 장치의 구성을 도시한 도면이다.Bundle adjustment is to minimize the difference between locations in each keyframe by identifying the same map points found in multiple keyframes. 1 is a diagram showing the configuration of a bundle coordination hardware device according to an embodiment of the present invention.

본 발명의 실시예에 따른 번들 조정 하드웨어 장치는, 도시된 바와 같이, RAM(Random Access Memory)(110), 컨트롤러(120), 프로젝션/가중치 계산 모듈(130), 메모리(140), LUT(Look Up Table)(150), 최소자승법 최적화 모듈(160)을 포함하여 구성된다.As shown, the bundle adjustment hardware device according to an embodiment of the present invention includes a random access memory (RAM) 110, a controller 120, a projection/weight calculation module 130, a memory 140, and a LUT (Look). Up Table) (150), and a least square method optimization module (160).

RAM(110)은 번들 조정을 위해 필요한 데이터 셋이 저장되는 저장소이다. 데이터 셋에는 키프레임들의 이미지, 특징점들, 카메라 자세, 맵포인트들이 포함된다.The RAM 110 is a storage in which data sets necessary for bundle adjustment are stored. The data set includes images of keyframes, feature points, camera poses, and map points.

이 데이터 셋은 외부 구성인, 즉 본 발명의 실시예에 따른 번들 조정 하드웨어 장치의 외부에 마련된 CPU(10)가 스프트웨어로 생성/구성하여 RAM(110)에 저장한다.This data set is externally configured, that is, the CPU 10 provided outside the bundle adjustment hardware device according to the embodiment of the present invention generates/configures software and stores it in the RAM 110.

프로젝션/가중치 계산 모듈(130)은 RAM(110)에 저장되어 있는 모든 키프레임에서 발견된 맵포인트들을 해당 키프레임의 2D 이미지로 재투영하고, 재투영된 맵포인트들과 특징점들 간의 오차들을 계산한다.The projection/weight calculation module 130 re-projects the map points found in all key frames stored in the RAM 110 to the 2D image of the corresponding key frame, and calculates errors between the re-projected map points and feature points. do.

다음, 프로젝션/가중치 계산 모듈(130)은 시그마 에러를 사용하여 각 재투영 오차들의 가중치들을 계산하고 적용한다. 프로젝션/가중치 계산 모듈(130)에 의해 계산된 각 키프레임들의 재투영 오차는 메모리(140)에 저장된다.Next, the projection/weight calculation module 130 calculates and applies the weights of each reprojection error using the sigma error. The reprojection error of each key frame calculated by the projection/weight calculation module 130 is stored in the memory 140 .

최소자승법 최적화 모듈(160)은 메모리(140)에 저장된 각 키프레임들의 재투영 오차를 기초로, RAM(110)에 저장된 각 키프레임들의 카메라 자세와 맵포인트들을 업데이트하여 최적화한다.The least squares optimization module 160 updates and optimizes the camera posture and map points of each keyframe stored in the RAM 110 based on the reprojection error of each keyframe stored in the memory 140 .

구체적으로, 최소자승법 최적화 모듈(160)은 각 키프레임들의 재투영 오차의 제곱값이 정해진 값에 수렴할 때까지, 감쇠비를 수정하면서 각 키프레임들의 카메라 자세와 맵포인트들을 업데이트한다.Specifically, the least squares optimization module 160 updates the camera posture and map points of each keyframe while correcting the damping ratio until the square value of the reprojection error of each keyframe converges to a predetermined value.

최소자승법 최적화 모듈(160)에 의해 각 키프레임들의 카메라 자세와 맵포인트들이 업데이트 되면, 프로젝션/가중치 계산 모듈(130)은 각 키프레임들의 재투영 오차를 재계산한다.When the camera posture and map points of each keyframe are updated by the least squares optimization module 160, the projection/weight calculation module 130 recalculates the reprojection error of each keyframe.

즉, 최소자승법 최적화 모듈(160)에 의한 카메라 자세 및 맵포인트 업데이트와 프로젝션/가중치 계산 모듈(130)은 재투영 오차 계산은 순차적으로 반복되며, 이 과정에서 메모리(140)를 통해 중간 데이터들이 전달된다.That is, the update of the camera posture and map points by the least squares optimization module 160 and the calculation of the reprojection error by the projection/weight calculation module 130 are sequentially repeated, and intermediate data is transferred through the memory 140 during this process. do.

최적화가 완료되면, 최소자승법 최적화 모듈(160)은 아웃라이어로 판단된 맵포인트은 제거한다.When the optimization is completed, the least square method optimization module 160 removes the map points determined to be outliers.

컨트롤러(120)는 본 발명의 실시예에 따른 번들 조정 하드웨어 장치의 전반적인 제어, 즉, RAM(110)의 입/출력 제어와 프로젝션/가중치 계산 모듈(130)과 최소자승법 최적화 모듈(160)의 동작 제어를 위한 구성이다.The controller 120 controls the overall control of the bundle adjustment hardware device according to an embodiment of the present invention, that is, input/output control of the RAM 110 and operations of the projection/weight calculation module 130 and the least squares optimization module 160. configuration for control.

LUT(150)는 입/출력 제어와 프로젝션/가중치 계산 모듈(130)과 최소자승법 최적화 모듈(160)의 가속을 위한 LUT이 저장되어 있는 저장소이다.The LUT 150 is a storage in which LUTs for input/output control and acceleration of the projection/weight calculation module 130 and the least squares optimization module 160 are stored.

이와 같이, 본 발명의 실시예에 따른 번들 조정 하드웨어 장치는, 번들 조정을 위해 필요한 연산을 프로젝션/가중치 계산 모듈(130)과 최소자승법 최적화 모듈(160)이 나누어 처리하도록 하였다.As such, in the bundle adjustment hardware device according to an embodiment of the present invention, the projection/weight calculation module 130 and the least squares method optimization module 160 divide and process calculations necessary for bundle adjustment.

또한, 소프트웨어로 처리하는 것이 적정한 번들 조정에 사용할 데이터 셋의 구성은 번들 조정 하드웨어 장치의 외부 구성인 CPU(10)에서 수행되도록 하였고, 순차적이고 반복적인 후속 연산 과정은 본 발명의 실시예에 따른 번들 조정 하드웨어 장치에서 수행되도록 하였다.In addition, the configuration of the data set to be used for bundle adjustment, which is suitable for processing by software, is performed in the CPU 10, which is an external component of the bundle adjustment hardware device, and the sequential and repetitive subsequent calculation process is performed on the bundle according to the embodiment of the present invention. It was made to be performed on a coordination hardware device.

본 발명의 실시예에 따른 번들 조정 하드웨어 장치의 동작에 대해 이하에서도 2를 참조하여 상세히 설명한다. 도 2는 본 발명의 다른 실시예에 따른 번들 조정 방법의 설명에 제공되는 흐름도이다.The operation of the bundle adjustment hardware device according to an embodiment of the present invention will be described in detail with reference to 2 below. 2 is a flowchart provided to explain a method for adjusting a bundle according to another embodiment of the present invention.

먼저, 외부 구성인 CPU(10)가 번들 조정을 위해 필요한 데이터 셋(키프레임들의 이미지, 특징점들, 카메라 자세, 맵포인트들)을 구성하여 RAM(110)에 저장한다(S210).First, the CPU 10, which is an external component, configures data sets (keyframe images, feature points, camera poses, and map points) necessary for bundle adjustment and stores them in the RAM 110 (S210).

그러면, 프로젝션/가중치 계산 모듈(130)은 S210에서 저장된 데이터 셋을 구성하는 맵포인트들을 해당 키프레임의 2D 이미지로 재투영하고(S220), 재투영된 맵포인트들의 오차들을 계산한다(S230).Then, the projection/weight calculation module 130 re-projects the map points constituting the data set stored in S210 to the 2D image of the corresponding keyframe (S220), and calculates errors of the re-projected map points (S230).

다음, 프로젝션/가중치 계산 모듈(130)은 S230단계에서 계산된 각 재투영 오차들의 가중치들을 계산하고 적용한다(S240).Next, the projection/weight calculation module 130 calculates and applies the weights of each reprojection error calculated in step S230 (S240).

이후, 최소자승법 최적화 모듈(160)은 각 키프레임들의 카메라 자세와 맵포인트들을 업데이트하고(S250), 프로젝션/가중치 계산 모듈(130)은 최소자승법 최적화 모듈(160)에 의해 업데이트된 각 키프레임들의 카메라 자세와 맵포인트들에 대한 재투영 오차를 재계산한다(S260).Thereafter, the least squares optimization module 160 updates the camera posture and map points of each keyframe (S250), and the projection/weight calculation module 130 determines the values of each keyframe updated by the least squares optimization module 160. Re-projection errors for the camera posture and map points are recalculated (S260).

이 때, S260단계에서 재계산된 각 키프레임들의 재투영 오차의 제곱값이 정해진 값에 수렴하지 않으면(S270-No), 최소자승법 최적화 모듈(160)은 감쇠비를 수정하고(S280), S250단계와 S260단계를 반복한다.At this time, if the square value of the reprojection error of each keyframe recalculated in step S260 does not converge to a predetermined value (S270-No), the least squares optimization module 160 corrects the damping ratio (S280), and step S250 and steps S260 are repeated.

S260단계에서 재계산된 각 키프레임들의 재투영 오차의 제곱값이 정해진 값에 수렴하면(S270-Yes), 최소자승법 최적화 모듈(160)은 아웃라이어로 판단된 맵포인트들을 제거하고(S280), 번들 조정 절차를 종료한다. 그리고, RAM(110)에 저장되어 있는 최적화된 데이터 셋이 외부 CPU(10)로 반환된다.When the square value of the reprojection error of each keyframe recalculated in step S260 converges to a predetermined value (S270-Yes), the least squares optimization module 160 removes the map points determined to be outliers (S280), End the bundle reconciliation process. Then, the optimized data set stored in the RAM 110 is returned to the external CPU 10.

지금까지, Visual SLAM에서 2D 이미지 기반 3D 맵의 번들 조정을 수행하는 하드웨어 장치 및 그의 동작에 대해 바람직한 실시예들을 들어 상세히 설명하였다.So far, a hardware device and its operation for performing bundle adjustment of 2D image-based 3D maps in Visual SLAM have been described in detail with reference to preferred embodiments.

위치 추정 알고리즘에서 가장 큰 로드를 차지하는 맵의 번들 조정을 수행하는 전용 하드웨어를 설계함으로써, 저가형 CPU를 메인 프로세서로 채택할 수 있으며 회로 보드 사이즈를 줄일 수 있다.By designing dedicated hardware that performs bundle adjustment of the map, which accounts for the largest load in the position estimation algorithm, a low-cost CPU can be adopted as the main processor and the circuit board size can be reduced.

또한, 임베디드 디바이스 및 웨어러블 디바이스의 부피 및 트래킹 지연을 줄이고 저가형 CPU를 사용할 수 있도록 하므로, AR 디바이스, 자율주행 로봇, 무인 비행체 등 실시간 위치 추정 기술이 필요하지만 리소스가 제한적인 임베디드 환경에 적용 가능하다. In addition, it reduces the volume and tracking delay of embedded devices and wearable devices and enables the use of low-cost CPUs, so it can be applied to embedded environments that require real-time positioning technology such as AR devices, self-driving robots, and unmanned air vehicles, but have limited resources.

또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.In addition, although the preferred embodiments of the present invention have been shown and described above, the present invention is not limited to the specific embodiments described above, and the technical field to which the present invention belongs without departing from the gist of the present invention claimed in the claims. Of course, various modifications are possible by those skilled in the art, and these modifications should not be individually understood from the technical spirit or perspective of the present invention.

110 : RAM(Random Access Memory)
120 : 컨트롤러
130 : 프로젝션/가중치 계산 모듈
140 : 메모리
150 : LUT(Look Up Table)
160 : 최소자승법 최적화 모듈
110: RAM (Random Access Memory)
120: controller
130: projection/weight calculation module
140: memory
150: LUT (Look Up Table)
160: least squares optimization module

Claims (8)

visual SLAM(Simultaneous Localization and Mapping)을 위한 번들 조정을 수행하는 번들 조정 장치에 있어서,
키프레임들의 이미지, 특징점들, 카메라 자세, 맵포인트들이 저장되는 제1 메모리;
제1 메모리에 저장된 데이터들을 이용하여 각 키프레임들의 재투영 오차를 계산하는 계산 모듈;
계산된 각 키프레임들의 재투영 오차가 저장되는 제2 메모리;
제2 메모리에 저장된 각 키프레임들의 재투영 오차를 기초로, 제1 메모리에 저장된 각 키프레임들의 카메라 자세와 맵포인트들을 업데이트하는 최적화 모듈;을 포함하는 것을 특징으로 하는 번들 조정 장치.
In a bundle adjustment device that performs bundle adjustment for visual SLAM (Simultaneous Localization and Mapping),
a first memory storing keyframe images, feature points, camera postures, and map points;
a calculation module that calculates a reprojection error of each key frame using data stored in the first memory;
a second memory storing calculated reprojection errors of each key frame;
and an optimization module that updates the camera posture and map points of each keyframe stored in the first memory based on the reprojection error of each keyframe stored in the second memory.
청구항 1에 있어서,
계산 모듈은,
맵포인트들을 키프레임의 이미지로 재투영하고, 재투영 오차들을 계산하는 것을 특징으로 하는 번들 조정 장치.
The method of claim 1,
The calculation module is
A bundle adjustment device characterized by re-projecting map points to an image of a key frame and calculating re-projection errors.
청구항 1에 있어서,
계산 모듈은,
계산된 각 재투영 오차의 가중치를 계산하고 적용하는 것을 특징으로 하는 번들 조정 장치.
The method of claim 1,
The calculation module is
Bundle adjusting device, characterized in that for calculating and applying the weight of each calculated reprojection error.
청구항 1에 있어서,
최적화 모듈은,
각 키프레임들의 재투영 오차의 제곱값이 정해진 값에 수렴할 때까지, 제1 메모리에 저장된 각 키프레임들의 카메라 자세와 맵포인트들을 업데이트하는 것을 특징으로 하는 번들 조정 장치.
The method of claim 1,
Optimization module,
A bundle adjustment device characterized in that for updating the camera posture and map points of each keyframe stored in the first memory until the square value of the reprojection error of each keyframe converges to a predetermined value.
청구항 4에 있어서,
계산 모듈은,
최적화 모듈에 의해 각 키프레임들의 카메라 자세와 맵포인트들이 업데이트 되면, 각 키프레임들의 재투영 오차를 재계산하는 것을 특징으로 하는 번들 조정 장치.
The method of claim 4,
The calculation module is
When the camera posture and map points of each keyframe are updated by the optimization module, the bundle adjustment apparatus characterized in that it recalculates the reprojection error of each keyframe.
청구항 4에 있어서,
최적화 모듈은,
각 키프레임들의 재투영 오차의 제곱값이 정해진 값에 수렴하면, 아웃라이어로 판단된 맵포인트를 제거하는 것을 특징으로 하는 번들 조정 장치.
The method of claim 4,
Optimization module,
When the square of the reprojection error of each keyframe converges to a predetermined value, the bundle adjustment device characterized in that to remove the map point determined as an outlier.
청구항 1에 있어서,
키프레임들의 이미지들, 특징점들, 카메라 자세들, 맵포인트들은,
번들 조정 장치의 외부에 마련된 CPU에 의해 생성되어 제1 메모리에 저장되는 것을 특징으로 하는 번들 조정 장치.
The method of claim 1,
Images of keyframes, feature points, camera poses, map points,
A bundle adjustment device, characterized in that generated by a CPU provided outside the bundle adjustment device and stored in the first memory.
visual SLAM을 위한 번들 조정을 수행하는 번들 조정 장치의 번들 조정 방법에 있어서,
제1 메모리에, 키프레임들의 이미지, 특징점들, 카메라 자세, 맵포인트들이 저장되는 단계;
계산 모듈이, 제1 메모리에 저장된 데이터들을 이용하여 각 키프레임들의 재투영 오차를 계산하는 단계; 및
최적화 모듈이, 각 키프레임들의 재투영 오차를 기초로, 제1 메모리에 저장된 각 키프레임들의 카메라 자세와 맵포인트들을 업데이트하는 단계;를 포함하는 것을 특징으로 하는 번들 조정 방법.
A bundle adjustment method of a bundle adjustment device that performs bundle adjustment for visual SLAM,
storing keyframe images, feature points, camera poses, and map points in a first memory;
calculating, by a calculation module, a reprojection error of each keyframe using data stored in the first memory; and
An optimization module, based on the reprojection error of each keyframe, updating the camera posture and map points of each keyframe stored in the first memory; bundle adjustment method characterized by comprising a.
KR1020210192206A 2021-12-30 2021-12-30 Bundle adjustment device for 2D image-based 3D maps KR20230102243A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210192206A KR20230102243A (en) 2021-12-30 2021-12-30 Bundle adjustment device for 2D image-based 3D maps

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210192206A KR20230102243A (en) 2021-12-30 2021-12-30 Bundle adjustment device for 2D image-based 3D maps

Publications (1)

Publication Number Publication Date
KR20230102243A true KR20230102243A (en) 2023-07-07

Family

ID=87154719

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210192206A KR20230102243A (en) 2021-12-30 2021-12-30 Bundle adjustment device for 2D image-based 3D maps

Country Status (1)

Country Link
KR (1) KR20230102243A (en)

Similar Documents

Publication Publication Date Title
CN109064514B (en) Projection point coordinate regression-based six-degree-of-freedom pose estimation method
US20230281422A1 (en) Update of local features model based on correction to robot action
CN111754579B (en) Method and device for determining external parameters of multi-view camera
US6137902A (en) Linear estimation method for three-dimensional position with affine camera correction
CN108927801B (en) Method and device for adjusting tail end attitude of mechanical arm
US11024005B2 (en) Optical flow tracking device and method
JP6929123B2 (en) Camera calibration device and camera calibration program
WO2022027917A1 (en) Image processing method, apparatus and system, and electronic device and readable storage medium
CN112703511B (en) Operation accelerator and data processing method
WO2022142078A1 (en) Method and apparatus for action learning, medium, and electronic device
US11822900B2 (en) Filter processing device and method of performing convolution operation at filter processing device
WO2020019117A1 (en) Localization method and apparatus, electronic device, and readable storage medium
JPS6360920B2 (en)
Shetab-Bushehri et al. Lattice-based shape tracking and servoing of elastic objects
CN114022568A (en) Virtual and real camera pose correction method and device, storage medium and electronic equipment
KR20230102243A (en) Bundle adjustment device for 2D image-based 3D maps
CN114089316A (en) Combined calibration system, method and medium for laser radar-inertial navigation
US20240078284A1 (en) Two-way descriptor matching on deep learning accelerator
CN111062944B (en) Network model training method and device and image segmentation method and device
US11106935B2 (en) Pooling method and device, pooling system, computer-readable storage medium
CN114387197A (en) Binocular image processing method, device, equipment and storage medium
KR102358372B1 (en) Stereo matching method and apparatus
CN112801864A (en) Image filling method and device in deep learning hardware
CN110147873B (en) Convolutional neural network processor and training method
Li et al. Essential-matrix-based visual servoing of nonholonomic mobile robots without short baseline degeneration