Nothing Special   »   [go: up one dir, main page]

KR102695440B1 - Method for determining camera posture and electronic device for the method - Google Patents

Method for determining camera posture and electronic device for the method Download PDF

Info

Publication number
KR102695440B1
KR102695440B1 KR1020210113922A KR20210113922A KR102695440B1 KR 102695440 B1 KR102695440 B1 KR 102695440B1 KR 1020210113922 A KR1020210113922 A KR 1020210113922A KR 20210113922 A KR20210113922 A KR 20210113922A KR 102695440 B1 KR102695440 B1 KR 102695440B1
Authority
KR
South Korea
Prior art keywords
feature point
image
camera
descriptor
coordinates
Prior art date
Application number
KR1020210113922A
Other languages
Korean (ko)
Other versions
KR20230031550A (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 KR1020210113922A priority Critical patent/KR102695440B1/en
Publication of KR20230031550A publication Critical patent/KR20230031550A/en
Application granted granted Critical
Publication of KR102695440B1 publication Critical patent/KR102695440B1/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
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W40/00Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
    • B60W40/02Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to ambient conditions
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0002Automatic control, details of type of controller or control system architecture
    • B60W2050/0004In digital systems, e.g. discrete-time systems involving sampling
    • B60W2050/0005Processor details or data handling, e.g. memory registers or chip architecture
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0062Adapting control system settings
    • B60W2050/0075Automatic parameter input, automatic initialising or calibrating means
    • B60W2050/0083Setting, resetting, calibration
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2420/00Indexing codes relating to the type of sensors based on the principle of their operation
    • B60W2420/40Photo, light or radio wave sensitive means, e.g. infrared sensors
    • B60W2420/403Image sensing, e.g. optical camera

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Analysis (AREA)

Abstract

카메라 자세를 결정하기 위해, 카메라의 제1 자세로 생성된 제1 영상 내의 제1 특징점을 검출하고, 제1 특징점에 대한 제1 기술자를 생성하고, 제1 특징점의 제1 영상 내의 좌표에 기초하여 제1 특징점을 제1 영상에 대해 설정된 제1 구 좌표계 상에 투영함으로써 제1 구 모델을 생성하고, 카메라의 제2 자세로 생성된 제2 영상 내의 제2 특징점을 검출하고, 제2 특징점에 대한 제2 기술자를 생성하고, 제2 특징점의 제2 영상 내의 좌표에 기초하여 제2 특징점을 제2 영상에 대해 설정된 제2 구 좌표계 상에 투영함으로써 제2 구 모델을 생성하고, 제1 기술자 및 제2 기술자에 기초하여 제1 특징점 및 제2 특징점을 매칭된 경우, 제2 구 모델에 기초하여 카메라의 자세를 결정할 수 있다.To determine a camera pose, a first feature point in a first image generated with a first pose of the camera is detected, a first descriptor for the first feature point is generated, and a first spherical model is generated by projecting the first feature point onto a first spherical coordinate system set for the first image based on the coordinates of the first feature point in the first image; a second feature point in a second image generated with a second pose of the camera is detected, a second descriptor for the second feature point is generated, and the second spherical model is generated by projecting the second feature point onto a second spherical coordinate system set for the second image based on the coordinates of the second feature point in the second image; and when the first feature point and the second feature point are matched based on the first descriptor and the second descriptor, the camera pose can be determined based on the second spherical model.

Description

카메라 자세 결정 및 그 방법을 수행하는 전자 장치{METHOD FOR DETERMINING CAMERA POSTURE AND ELECTRONIC DEVICE FOR THE METHOD}{METHOD FOR DETERMINING CAMERA POSTURE AND ELECTRONIC DEVICE FOR THE METHOD}

아래의 실시예들은, 카메라의 자세를 결정하는 기술에 관한 것이다.The examples below relate to techniques for determining the pose of a camera.

차량의 자율 주행의 레벨이 높아짐에 따라 차량이 자동으로 주차를 수행하는 기술들이 개발되고 있다. 예를 들어, 차량 주변에 설치된 기반 시설을 이용하여 차량이 주차 공간에 대한 정밀 맵을 수신하고, 정밀 맵에 기초하여 차량이 자율 주차를 수행하는 방식이 있을 수 있다. 이 방식은 차량 또는 운전자가 개입하여 정밀 맵을 생성하는 것은 아니며, 일반적으로 주차 공간을 운영하는 자에 의해 생성 및 제공될 수 있다. 이러한 방식은 정밀 맵을 사전에 생성해야 하는 과정이 필요하고, 정밀 맵 상의 정보에 운영자가 직접 라벨링 하는 과정이 필요하며, 주차 공간을 이용하고자 하는 차량이 정밀 맵을 수신하는 과정이 필요하다.As the level of autonomous driving of vehicles increases, technologies for vehicles to automatically perform parking are being developed. For example, there may be a method in which a vehicle receives a precise map of a parking space using infrastructure installed around the vehicle, and the vehicle performs autonomous parking based on the precise map. This method does not involve the vehicle or driver intervening to create a precise map, and it can generally be created and provided by the person operating the parking space. This method requires a process of creating a precise map in advance, a process in which the operator directly labels information on the precise map, and a process in which a vehicle wishing to use the parking space receives the precise map.

상기의 방식을 이용하기 위해, 차량에 라이다(Lidar)가 필수적으로 요구되며, 또한 정밀 맵을 제공하기 위한 기반 시설이 요구된다. 즉 정밀 맵을 이용하는 자율 주차 방식은 많은 비용이 요구된다.In order to utilize the above method, Lidar is essential for the vehicle, and infrastructure for providing a precise map is also required. In other words, the autonomous parking method using a precise map requires a lot of cost.

일 실시예는 복수의 영상들에 기초하여 카메라의 자세를 결정하는 방법 및 장치를 제공할 수 있다.One embodiment may provide a method and device for determining a pose of a camera based on a plurality of images.

다른 일 실시예는 현재 시각에 대한 영상에 기초하여 차량을 제어하는 방법 및 장치를 제공할 수 있다.Another embodiment may provide a method and device for controlling a vehicle based on an image of the current time.

일 실시예에 따른, 전자 장치에 의해 수행되는, 카메라 자세 결정 방법은, 카메라의 제1 자세로 생성된 제1 영상 내의 제1 특징점을 검출하고, 상기 제1 특징점에 대한 제1 기술자(descriptor)를 생성하는 단계, 상기 제1 특징점의 상기 제1 영상 내의 좌표에 기초하여 상기 제1 특징점을 상기 제1 영상에 대해 설정된 제1 구 좌표계 상에 투영(projecting)함으로써 제1 구 모델을 생성하는 단계 - 상기 제1 특징점이 제1 특징 구 좌표로 투영됨 -, 상기 카메라의 제2 자세로 생성된 제2 영상 내의 제2 특징점을 검출하고, 상기 제2 특징점에 대한 제2 기술자를 생성하는 단계, 상기 제2 특징점의 상기 제2 영상 내의 좌표에 기초하여 상기 제2 특징점을 상기 제2 영상에 대해 설정된 제2 구 좌표계 상에 투영함으로써 제2 구 모델을 생성하는 단계 - 상기 제2 특징점이 제2 특징 구 좌표로 투영됨 -, 상기 제1 기술자 및 상기 제2 기술자에 기초하여 상기 제1 특징점 및 상기 제2 특징점을 매칭하는 단계, 및 상기 제2 특징점이 상기 제1 특징점에 매칭된 경우, 상기 제2 구 모델에 기초하여 상기 카메라의 자세를 결정하는 단계를 포함한다In one embodiment, a camera pose determination method performed by an electronic device comprises: detecting a first feature point in a first image generated with a first pose of a camera and generating a first descriptor for the first feature point; projecting the first feature point onto a first spherical coordinate system set for the first image based on coordinates of the first feature point in the first image to generate a first spherical model, wherein the first feature point is projected into the first feature spherical coordinates; detecting a second feature point in a second image generated with a second pose of the camera and generating a second descriptor for the second feature point; projecting the second feature point onto a second spherical coordinate system set for the second image based on coordinates of the second feature point in the second image to generate a second spherical model, wherein the second feature point is projected into the second feature spherical coordinates; matching the first feature point and the second feature point based on the first descriptor and the second descriptor; and matching the second feature point to the first feature point. In this case, the step of determining the pose of the camera based on the second sphere model is included.

상기 제2 구 모델을 생성하는 단계는, 상기 카메라의 위치를 중심으로 하는 미리 설정된 반경을 갖는 상기 제2 구 좌표계를 설정하는 단계, 상기 카메라의 캘리브레이션 정보 및 상기 카메라의 회전 및 이동 정보에 기초하여 상기 제2 구 좌표계의 중심점 및 상기 제2 특징점의 상기 제2 영상 내의 좌표 간의 제2 기준 벡터를 계산하는 단계, 및 상기 제2 기준 벡터를 상기 제2 구 좌표계 상에 투영함으로써 상기 제2 구 모델을 생성하는 단계를 포함할 수 있다.The step of generating the second spherical model may include the steps of setting the second spherical coordinate system having a preset radius centered on the position of the camera, calculating a second reference vector between a center point of the second spherical coordinate system and coordinates of the second feature point in the second image based on calibration information of the camera and rotation and translation information of the camera, and generating the second spherical model by projecting the second reference vector onto the second spherical coordinate system.

상기 캘리브레이션 정보는 상기 카메라의 내부 파라미터 및 렌즈의 왜곡 정도를 포함할 수 있다.The above calibration information may include internal parameters of the camera and the degree of distortion of the lens.

상기 제1 특징점 및 상기 제2 특징점을 매칭하는 단계는, 상기 제2 영상에 대한 초기 회전 및 이동 행렬(rotation and translation matrix)을 계산하는 단계, 상기 초기 회전 및 이동 행렬에 기초하여 상기 제1 영상의 상기 제1 특징점을 상기 제2 구 좌표계 상에 투영함으로써 제1 변환 구 좌표를 결정하는 단계, 상기 제1 변환 구 좌표를 상기 제2 영상의 좌표계로 투영함으로써 제1 변환 영상 좌표를 결정하는 단계, 및 상기 제1 변환 영상 좌표에 기초하여 상기 제1 특징점 및 상기 제2 영상 내의 상기 제2 특징점을 매칭하는 단계를 포함할 수 있다.The step of matching the first feature point and the second feature point may include the steps of calculating an initial rotation and translation matrix for the second image, determining first transformed spherical coordinates by projecting the first feature point of the first image onto the second spherical coordinate system based on the initial rotation and translation matrix, determining first transformed image coordinates by projecting the first transformed spherical coordinates onto the coordinate system of the second image, and matching the first feature point and the second feature point in the second image based on the first transformed image coordinates.

상기 제1 변환 영상 좌표에 기초하여 상기 제1 특징점 및 상기 제2 영상 내의 상기 제2 특징점을 매칭하는 단계는, 상기 제1 변환 영상 좌표를 포함하 검색 범위(search range)를 상기 제2 영상 상에 설정하는 단계, 상기 검색 범위 내의 하나 이상의 특징점들 중 상기 제1 기술자에 대응하는 상기 제2 기술자를 결정하는 단계, 및 상기 제2 기술자를 갖는 상기 제2 특징점을 상기 제1 특징점과 매칭하는 단계를 포함할 수 있다.The step of matching the first feature point and the second feature point in the second image based on the first transformed image coordinates may include the step of setting a search range including the first transformed image coordinates on the second image, the step of determining the second descriptor corresponding to the first descriptor among one or more feature points within the search range, and the step of matching the second feature point having the second descriptor with the first feature point.

상기 검색 범위 내의 하나 이상의 특징점들 중 상기 제1 기술자에 대응하는 상기 제2 기술자를 결정하는 단계는, 상기 검색 범위 내의 하나 이상의 특징점들의 기술자들의 각각과 상기 제1 기술자 간의 해밍 거리들을 계산하는 단계, 및 가장 작은 해밍 거리를 갖는 기술자를 상기 제2 기술자로 결정하는 단계를 포함할 수 있다.The step of determining the second descriptor corresponding to the first descriptor among one or more feature points within the search range may include the step of calculating Hamming distances between each of the descriptors of the one or more feature points within the search range and the first descriptor, and the step of determining the descriptor having the smallest Hamming distance as the second descriptor.

상기 제2 특징점이 상기 제1 특징점에 매칭된 경우, 상기 제2 구 모델에 기초하여 상기 카메라의 자세를 결정하는 단계는, 상기 제1 특징점에 대응하는 월드 좌표계의 기준 특징점을 상기 제2 구 좌표계로 투영함으로써 제2 기준 구 좌표를 계산하는 단계, 상기 제2 특징 구 좌표 및 상기 제2 기준 구 좌표 간의 제2 차이를 계산하는 단계, 및 상기 제2 차이가 최소화되도록 상기 초기 회전 및 이동 행렬을 조정함으로써 최적 회전 및 이동 행렬을 생성하는 단계를 포함할 수 있다.If the second feature point matches the first feature point, the step of determining the pose of the camera based on the second spherical model may include the steps of calculating a second reference spherical coordinate by projecting a reference feature point in the world coordinate system corresponding to the first feature point into the second spherical coordinate system, calculating a second difference between the second feature spherical coordinate and the second reference spherical coordinate, and generating an optimal rotation and translation matrix by adjusting the initial rotation and translation matrix so that the second difference is minimized.

상기 카메라 자세 결정 방법은, 상기 카메라의 자세에 기초하여 차량의 경로를 생성하는 단계를 더 포함할 수 있다.The above camera attitude determination method may further include a step of generating a vehicle path based on the attitude of the camera.

상기 카메라 자세 결정 방법은, 상기 제1 특징점 및 상기 제2 특징점의 매칭에 기초하여 비주얼 SLAM(visual simultaneous localization and mapping)을 갱신하는 단계를 더 포함할 수 있다.The above camera pose determination method may further include a step of updating visual simultaneous localization and mapping (SLAM) based on matching of the first feature point and the second feature point.

상기 전자 장치는, 자율 주행 차량 또는 ADAS(Advanced Driver Assistance Systems)을 지원하는 차량에 탑재될 수 있다.The above electronic device can be mounted on an autonomous vehicle or a vehicle supporting ADAS (Advanced Driver Assistance Systems).

다른 일 측면에 따르면, 전자 장치는, 카메라의 자세를 결정하는 프로그램을 수행하는 프로세서, 및 상기 프로그램을 저장하는 메모리를 포함하고, 상기 프로그램은, 카메라의 제1 자세로 생성된 제1 영상 내의 제1 특징점을 검출하고, 상기 제1 특징점에 대한 제1 기술자(descriptor)를 생성하는 단계, 상기 제1 특징점의 상기 제1 영상 내의 좌표에 기초하여 상기 제1 특징점을 상기 제1 영상에 대해 설정된 제1 구 좌표계 상에 투영(projecting)함으로써 제1 구 모델을 생성하는 단계 - 상기 제1 특징점이 제1 특징 구 좌표로 투영됨 -, 상기 카메라의 제2 자세로 생성된 제2 영상 내의 제2 특징점을 검출하고, 상기 제2 특징점에 대한 제2 기술자를 생성하는 단계, 상기 제2 특징점의 상기 제2 영상 내의 좌표에 기초하여 상기 제2 특징점을 상기 제2 영상에 대해 설정된 제2 구 좌표계 상에 투영함으로써 제2 구 모델을 생성하는 단계 - 상기 제2 특징점이 제2 특징 구 좌표로 투영됨 -, 상기 제1 기술자 및 상기 제2 기술자에 기초하여 상기 제1 특징점 및 상기 제2 특징점을 매칭하는 단계, 및 상기 제2 특징점이 상기 제1 특징점에 매칭된 경우, 상기 제2 구 모델에 기초하여 상기 카메라의 자세를 결정하는 단계를 수행한다.According to another aspect, an electronic device includes a processor for executing a program for determining a pose of a camera, and a memory for storing the program, wherein the program comprises: a step of detecting a first feature point in a first image generated with a first pose of the camera and generating a first descriptor for the first feature point; a step of projecting the first feature point onto a first spherical coordinate system set for the first image based on coordinates of the first feature point in the first image to generate a first spherical model, wherein the first feature point is projected into the first feature spherical coordinates; a step of detecting a second feature point in a second image generated with a second pose of the camera and generating a second descriptor for the second feature point; a step of projecting the second feature point onto a second spherical coordinate system set for the second image based on coordinates of the second feature point in the second image to generate a second spherical model, wherein the second feature point is projected into the second feature spherical coordinates; and matching the first feature point and the second feature point based on the first descriptor and the second descriptor. Step, and if the second feature point matches the first feature point, a step of determining the pose of the camera based on the second sphere model is performed.

상기 제2 구 모델을 생성하는 단계는, 상기 카메라의 위치를 중심으로 하는 미리 설정된 반경을 갖는 상기 제2 구 좌표계를 설정하는 단계, 상기 카메라의 캘리브레이션 정보 및 상기 카메라의 회전 및 이동 정보에 기초하여 상기 제2 구 좌표계의 중심점 및 상기 제2 특징점의 상기 제2 영상 내의 좌표에 기초하여 기준 벡터를 계산하는 단계, 및 상기 기준 벡터를 상기 제2 구 좌표계 상에 투영함으로써 상기 제2 구 모델을 생성하는 단계를 포함할 수 있다.The step of generating the second spherical model may include the step of setting the second spherical coordinate system having a preset radius centered on the position of the camera, the step of calculating a reference vector based on the center point of the second spherical coordinate system and the coordinates of the second feature point within the second image based on calibration information of the camera and rotation and movement information of the camera, and the step of generating the second spherical model by projecting the reference vector onto the second spherical coordinate system.

상기 캘리브레이션 정보는 상기 카메라의 내부 파라미터 및 렌즈의 왜곡 정도를 포함할 수 있다.The above calibration information may include internal parameters of the camera and the degree of distortion of the lens.

상기 제1 특징점 및 상기 제2 특징점을 매칭하는 단계는, 상기 제2 영상에 대한 초기 회전 및 이동 행렬(rotation and translation matrix)을 계산하는 단계, 상기 초기 회전 및 이동 행렬에 기초하여 상기 제1 영상의 상기 제1 특징점을 상기 제2 구 좌표계 상에 투영함으로써 제1 변환 구 좌표를 결정하는 단계, 상기 제1 변환 구 좌표를 상기 제2 영상의 좌표계로 투영함으로써 제1 변환 영상 좌표를 결정하는 단계, 및 상기 제1 변환 영상 좌표에 기초하여 상기 제1 특징점 및 상기 제2 영상 내의 상기 제2 특징점을 매칭하는 단계를 포함할 수 있다.The step of matching the first feature point and the second feature point may include the steps of calculating an initial rotation and translation matrix for the second image, determining first transformed spherical coordinates by projecting the first feature point of the first image onto the second spherical coordinate system based on the initial rotation and translation matrix, determining first transformed image coordinates by projecting the first transformed spherical coordinates onto the coordinate system of the second image, and matching the first feature point and the second feature point in the second image based on the first transformed image coordinates.

상기 제1 변환 영상 좌표에 기초하여 상기 제1 특징점 및 상기 제2 영상 내의 상기 제2 특징점을 매칭하는 단계는, 상기 제1 변환 영상 좌표를 포함하는 검색 범위(search range)를 상기 제2 영상 상에 설정하는 단계, 및 상기 검색 범위 내의 하나 이상의 특징점들 중 상기 제1 기술자에 대응하는 상기 제2 기술자를 결정하는 단계, 상기 제2 기술자를 갖는 상기 제2 특징점을 상기 제1 특징점과 매칭하는 단계를 포함할 수 있다.The step of matching the first feature point and the second feature point in the second image based on the first transformed image coordinates may include the step of setting a search range including the first transformed image coordinates on the second image, the step of determining the second descriptor corresponding to the first descriptor among one or more feature points within the search range, and the step of matching the second feature point having the second descriptor with the first feature point.

상기 검색 범위 내의 하나 이상의 특징점들 중 상기 제1 기술자에 대응하는 상기 제2 기술자를 결정하는 단계는, 상기 검색 범위 내의 하나 이상의 특징점들의 기술자들의 각각과 상기 제1 기술자 간의 해밍 거리들을 계산하는 단계, 및 가장 작은 해밍 거리를 갖는 기술자를 상기 제2 기술자로 결정하는 단계를 포함할 수 있다.The step of determining the second descriptor corresponding to the first descriptor among one or more feature points within the search range may include the step of calculating Hamming distances between each of the descriptors of the one or more feature points within the search range and the first descriptor, and the step of determining the descriptor having the smallest Hamming distance as the second descriptor.

상기 제2 특징점이 상기 제1 특징점에 매칭된 경우, 상기 제2 구 모델에 기초하여 상기 카메라의 자세를 결정하는 단계는, 상기 제1 특징점에 대응하는 월드 좌표계의 기준 특징점을 상기 제2 구 좌표계로 투영함으로써 제2 기준 구 좌표를 계산하는 단계, 상기 제2 특징 구 좌표 및 상기 제2 기준 구 좌표 간의 제2 차이를 계산하는 단계, 및 상기 제2 차이가 최소화되도록 상기 초기 회전 및 이동 행렬을 조정함으로써 최적 회전 및 이동 행렬을 생성하는 단계를 포함할 수 있다.If the second feature point matches the first feature point, the step of determining the pose of the camera based on the second spherical model may include the steps of calculating a second reference spherical coordinate by projecting a reference feature point in the world coordinate system corresponding to the first feature point into the second spherical coordinate system, calculating a second difference between the second feature spherical coordinate and the second reference spherical coordinate, and generating an optimal rotation and translation matrix by adjusting the initial rotation and translation matrix so that the second difference is minimized.

상기 프로그램은, 상기 카메라의 자세에 기초하여 차량의 경로를 생성하는 단계를 더 수행할 수 있다.The above program may further perform a step of generating a path of the vehicle based on the attitude of the camera.

상기 프로그램은, 상기 제1 특징점 및 상기 제2 특징점의 매칭에 기초하여 비주얼 SLAM(visual simultaneous localization and mapping)의 맵을 갱신하는 단계를 더 포함할 수 있다.The above program may further include a step of updating a visual simultaneous localization and mapping (SLAM) map based on the matching of the first feature point and the second feature point.

상기 전자 장치는, 자율 주행 차량 또는 ADAS(Advanced Driver Assistance Systems)을 지원하는 차량에 탑재될 수 있다.The above electronic device can be mounted on an autonomous vehicle or a vehicle supporting ADAS (Advanced Driver Assistance Systems).

복수의 영상들에 기초하여 카메라의 자세를 결정하는 방법 및 장치가 제공될 수 있다.A method and device for determining a pose of a camera based on multiple images can be provided.

카메라의 자세에 기초하여 차량을 제어하는 방법 및 장치가 제공될 수 있다.A method and device for controlling a vehicle based on the attitude of a camera may be provided.

도 1은 일 예에 따른 전자 장치를 포함하는 차량을 도시한다.
도 2는 일 실시 예에 따른 전자 장치의 구성도이다.
도 3는 일 실시 예에 따른 카메라의 자세를 결정하는 방법의 흐름도이다.
도 4는 일 예에 따른 제1 구 모델을 생성하는 방법의 흐름도이다.
도 5는 일 예에 따른 기준 벡터에 기초하여 생성된 구 모델을 도시한다.
도 6은 일 예에 따른 제1 영상의 제1 특징점 및 제2 영상의 제2 특징점을 매칭하는 방법의 흐름도이다.
도 7은 일 예에 따른 제1 기술자 및 제2 기술자에 기초하여 제1 특징점 및 제2 특징점을 매칭하는 방법의 흐름도이다.
도 8은 일 예에 따른 제1 특징점에 대한 제1 변환 구 좌표를 제2 영상의 좌표계로 투영함으로써 제1 변환 영상 좌표를 결정하는 방법을 도시한다.
도 9는 일 예에 따른 제2 영상 상에 설정된 제1 변환 영상 좌표를 포함하는 검색 범위를 도시한다.
도 10은 일 예에 따른 제2 기술자를 결정하는 방법의 흐름도이다.
도 11은 일 예에 따른 제1 구 모델 및 제2 구 모델에 기초하여 카메라의 자세를 결정하는 방법의 흐름도이다.
도 12는 일 예에 따른 특징 구 좌표 및 기준 구 좌표 간의 차이를 계산하는 방법을 도시한다.
도 13은 일 예에 따른 결정된 카메라의 자세에 기초하여 수행되는 추가 동작들을 도시한다.
FIG. 1 illustrates a vehicle including an electronic device according to an example.
Figure 2 is a block diagram of an electronic device according to one embodiment.
FIG. 3 is a flowchart of a method for determining a pose of a camera according to one embodiment.
Figure 4 is a flowchart of a method for generating a first sphere model according to an example.
Figure 5 illustrates a sphere model generated based on a reference vector according to an example.
FIG. 6 is a flowchart of a method for matching a first feature point of a first image and a second feature point of a second image according to an example.
FIG. 7 is a flowchart of a method for matching a first feature point and a second feature point based on a first technician and a second technician according to an example.
FIG. 8 illustrates a method for determining first transformed image coordinates by projecting first transformed spherical coordinates for a first feature point according to an example into the coordinate system of a second image.
FIG. 9 illustrates a search range including first transformed image coordinates set on a second image according to an example.
Figure 10 is a flowchart of a method for determining a second technician according to an example.
FIG. 11 is a flowchart of a method for determining a camera pose based on a first sphere model and a second sphere model according to an example.
Figure 12 illustrates a method for calculating the difference between feature sphere coordinates and reference sphere coordinates according to an example.
Figure 13 illustrates additional operations performed based on the determined camera pose according to an example.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, embodiments will be described in detail with reference to the attached drawings. However, since various modifications may be made to the embodiments, the scope of rights of the patent application is not limited or restricted by these embodiments. It should be understood that all modifications, equivalents, or substitutes to the embodiments are included in the scope of rights.

실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are for the purpose of description only and should not be construed as limiting. The singular expression includes the plural expression unless the context clearly indicates otherwise. In this specification, the terms "comprises" or "has" and the like are intended to specify the presence of a feature, number, step, operation, component, part or combination thereof described in the specification, but should be understood to not exclude in advance the possibility of the presence or addition of one or more other features, numbers, steps, operations, components, parts or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiments belong. Terms defined in commonly used dictionaries, such as those defined in common usage dictionaries, should be interpreted as having a meaning consistent with the meaning they have in the context of the relevant art, and will not be interpreted in an idealized or overly formal sense unless expressly defined in this application.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, when describing with reference to the attached drawings, the same components will be given the same reference numerals regardless of the drawing numbers, and redundant descriptions thereof will be omitted. When describing an embodiment, if it is determined that a specific description of a related known technology may unnecessarily obscure the gist of the embodiment, the detailed description thereof will be omitted.

또한, 실시 예의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다. Also, in describing components of the embodiments, terms such as first, second, A, B, (a), (b), etc. may be used. These terms are only intended to distinguish the components from other components, and the nature, order, or sequence of the components are not limited by the terms. When it is described that a component is "connected," "coupled," or "connected" to another component, it should be understood that the component may be directly connected or connected to the other component, but another component may also be "connected," "coupled," or "connected" between each component.

어느 하나의 실시 예에 포함된 구성요소와, 공통적인 기능을 포함하는 구성요소는, 다른 실시 예에서 동일한 명칭을 사용하여 설명하기로 한다. 반대되는 기재가 없는 이상, 어느 하나의 실시 예에 기재한 설명은 다른 실시 예에도 적용될 수 있으며, 중복되는 범위에서 구체적인 설명은 생략하기로 한다.Components included in one embodiment and components that have common functions will be described using the same names in other embodiments. Unless otherwise stated, descriptions made in one embodiment can be applied to other embodiments, and specific descriptions will be omitted to the extent of overlap.

도 1은 일 예에 따른 전자 장치를 포함하는 차량을 도시한다.FIG. 1 illustrates a vehicle including an electronic device according to an example.

일 실시 예에 따르면, 전자 장치(110)는 자율 주행을 지원하는 차량(100) 또는 ADAS(advanced driver assistance system)을 지원하는 차량(100)에 포함될 수 있다. According to one embodiment, the electronic device (110) may be included in a vehicle (100) that supports autonomous driving or a vehicle (100) that supports an advanced driver assistance system (ADAS).

일 측면에 따른, 차량(100)은 운전자로부터의 입력이 거의 없거나 또는 전혀 없는 상황에서도, 인지된 주행 환경에 따라서 자율 모드(autonomous mode)로 주행할 수 있다. 주행 환경은 차량(100)에 부착 또는 설치된 하나 이상의 센서들을 통해 인지될 수 있다. 예를 들어, 하나 이상의 센서들은 카메라, 라이다, 레이더 및 음성 인식 센서들을 포함할 수 있고, 기재된 예들로 제한되는 것은 아니다. 주행 환경은 도로, 도로의 상태, 차선의 종류, 주변 차량의 유무, 근접한 차량과의 거리, 날씨, 장애물의 유무 등을 포함할 수 있고, 기재된 예들로 제한되는 것은 아니다.According to one aspect, the vehicle (100) can drive in an autonomous mode according to a recognized driving environment even in a situation where there is little or no input from a driver. The driving environment can be recognized through one or more sensors attached or installed to the vehicle (100). For example, the one or more sensors can include a camera, a lidar, a radar, and a voice recognition sensor, but are not limited to the examples described. The driving environment can include a road, a condition of the road, a type of lane, the presence or absence of surrounding vehicles, a distance from a nearby vehicle, the weather, the presence or absence of obstacles, and the like, but are not limited to the examples described.

차량(100)은 주행 환경을 인식하고, 주행 환경에 적합한 자율 주행 경로를 생성한다. 자율 주행 경로를 따라가도록 자율 주행 차량은 내외부의 기계적인 요소들을 제어한다. 차량(100)은 자율 주행 경로를 주기적으로 생성할 수 있다.The vehicle (100) recognizes the driving environment and generates an autonomous driving path suitable for the driving environment. The autonomous vehicle controls internal and external mechanical elements to follow the autonomous driving path. The vehicle (100) can periodically generate an autonomous driving path.

다른 일 측면에 따른, 차량(100)은 ADAS를 이용하여 운전자의 운전을 보조할 수 있다. ADAS는 충돌 위험시 운전자가 제동장치를 밟지 않아도 스스로 속도를 줄이거나 멈추는 자동 긴급제동 시스템(Autonomous Emergency Braking: AEB), 차선 이탈 시 주행 방향을 조절해 차선을 유지하는 주행 조향보조 시스템(Lane Keep Assist System: LKAS), 사전에 정해 놓은 속도로 달리면서도 앞차와 간격을 알아서 유지하는 어드밴스드 스마트 크루즈 컨트롤(Advanced Smart Cruise Control: ASCC), 사각지대 충돌 위험을 감지해 안전한 차로 변경을 돕는 후측방 충돌 회피 지원 시스템(Active Blind Spot Detection: ABSD), 차량 주변 상황을 시각적으로 보여주는 어라운드 뷰 모니터링 시스템(Around View Monitor: AVM) 등을 포함한다.According to another aspect, the vehicle (100) can assist the driver's driving by using ADAS. ADAS includes an Autonomous Emergency Braking (AEB) system that reduces speed or stops the vehicle by itself without the driver stepping on the brakes when there is a risk of collision, a Lane Keep Assist System (LKAS) that controls the driving direction when the vehicle departs from the lane to maintain the lane, an Advanced Smart Cruise Control (ASCC) that automatically maintains a distance from the vehicle in front while driving at a preset speed, an Active Blind Spot Detection (ABSD) system that detects a risk of collision in a blind spot and assists in a safe lane change, and an Around View Monitor (AVM) system that visually displays the situation around the vehicle.

차량(100)에 포함된 전자 장치(110)는 차량(100)의 기계적 장치를 제어하여, 자율 주행하거나 운전자의 운전을 보조할 수 있고, 기재된 실시예 이외의 ECU, BCM 및 다양한 종류의 컨트롤러나 센서 등에 사용될 수 있다.The electronic device (110) included in the vehicle (100) controls the mechanical device of the vehicle (100) to enable autonomous driving or assist driving of the driver, and can be used in ECUs, BCMs, and various types of controllers or sensors other than those described in the embodiments.

일 실시 예에 따르면, 전자 장치(110)는 카메라를 이용하여 차량(100)의 일 측면(예: 전방)을 촬영함으로써 영상을 생성할 수 있다. 전자 장치(110)는 영상 내의 오브젝트의 특징점을 검출하고, 검출된 특징점에 기초하여 차량(100) 주변의 맵을 생성할 수 있다. 예를 들어, 맵은 SLAM(Simultaneous Localization And Mapping)에 기초하여 생성될 수 있다. 예를 들어, 시각적인 영상 정보에 기초하여 수행되는 VSLAM(visual SLAM)에 기초하여 맵이 생성될 수 있다. VSLAM에 기초하여 생성되는 맵은 포인트 클라우드(point cloud)의 형태로 구현될 수 있고, 맵 내의 포인트는 복수의 프레임들 각각의 특징점(feature point)에 대응할 수 있다. 맵의 좌표계는 월드 좌표계로 일 수 있다. 전자 장치(110)는 맵을 이용하여 차량(100)이 주행(또는, 주차)하는 경로를 생성하고, 차량(110)이 경로를 따라 이동하도록 차량(110)의 움직임을 제어할 수 있다.According to one embodiment, the electronic device (110) may generate an image by photographing one side (e.g., the front) of the vehicle (100) using a camera. The electronic device (110) may detect feature points of an object in the image and generate a map around the vehicle (100) based on the detected feature points. For example, the map may be generated based on SLAM (Simultaneous Localization And Mapping). For example, the map may be generated based on VSLAM (visual SLAM) performed based on visual image information. The map generated based on VSLAM may be implemented in the form of a point cloud, and points in the map may correspond to feature points of each of a plurality of frames. The coordinate system of the map may be a world coordinate system. The electronic device (110) may generate a path along which the vehicle (100) drives (or parks) using the map, and control the movement of the vehicle (110) so that the vehicle (110) moves along the path.

일 실시 예에 따르면, 맵은 하나 이상의 영상들에 기초하여 생성될 수 있다. 하나 이상의 영상들은 동일한 시각(time)에서 촬영된 서로 다른 시점(viewpoint)의 영상들 및 서로 다른 시각에서 촬영된 영상들을 포함할 수 있다. 예를 들어, 영상 내의 특징점을 맵의 월드 좌표계 내에 표시하는 포인트 클라우드의 형태로 맵이 생성될 수 있다. 기존의 맵 내의 특징점(또는, 포인트)에 대응하지 않는 새로운 특징점이 영상에서 검출되는 경우, 새로운 특징점을 맵에 추가함으로써 맵이 갱신될 수 있다.In one embodiment, the map can be generated based on one or more images. The one or more images can include images taken at different viewpoints at the same time and images taken at different times. For example, the map can be generated in the form of a point cloud that displays feature points in the image in the world coordinate system of the map. If a new feature point that does not correspond to a feature point (or point) in the existing map is detected in the image, the map can be updated by adding the new feature point to the map.

전자 장치(110)가 차량(100)을 움직임을 제어하기 위해서는 차량(100)의 현재 자세가 정확하게 결정되어야 한다. 예를 들어, 전자 장치(110)는 촬영된 영상에 기초하여 카메라의 자세를 결정함으로써 차량(100)의 자세를 결정할 수 있다. 아래에서 도 2 내지 도 12를 참조하여 카메라의 자세를 결정하는 방법에 대해 상세하게 설명된다.In order for the electronic device (110) to control the movement of the vehicle (100), the current attitude of the vehicle (100) must be accurately determined. For example, the electronic device (110) can determine the attitude of the vehicle (100) by determining the attitude of the camera based on the captured image. A method for determining the attitude of the camera is described in detail below with reference to FIGS. 2 to 12.

도 2는 일 실시 예에 따른 전자 장치의 구성도이다.Figure 2 is a block diagram of an electronic device according to one embodiment.

일 측면에 따른, 전자 장치(200)(는 통신부(210), 프로세서(220), 메모리(230) 및 카메라(240)를 포함한다. 전자 장치(200)(예: 도 1의 전자 장치(110))는 차량(예: 도 1의 차량(100)) 내에 포함될 수 있다. 예를 들어, 전자 장치(200)는 ECU(electronic control unit) 또는 BCM(body control module)과 같은 장치일 수 있다. 와 같은 장치일 수 있다. 다른 예로, 전자 장치(200)는 ECU/BCM와 연결된 독립적인 장치일 수 있다.According to one aspect, an electronic device (200) includes a communication unit (210), a processor (220), a memory (230), and a camera (240). The electronic device (200) (e.g., the electronic device (110) of FIG. 1) may be included in a vehicle (e.g., the vehicle (100) of FIG. 1). For example, the electronic device (200) may be a device such as an electronic control unit (ECU) or a body control module (BCM). As another example, the electronic device (200) may be an independent device connected to an ECU/BCM.

통신부(210)는 프로세서(220), 메모리(230) 및 카메라(240)와 연결되어 데이터를 송수신한다. 통신부(210)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다. 이하에서 "A"를 송수신한다라는 표현은 "A를 나타내는 정보(information) 또는 데이터"를 송수신하는 것을 나타낼 수 있다.The communication unit (210) is connected to the processor (220), memory (230), and camera (240) to transmit and receive data. The communication unit (210) can be connected to another external device to transmit and receive data. Hereinafter, the expression "transmitting and receiving" "A" can indicate transmitting and receiving "information or data representing A."

통신부(210)는 전자 장치(200) 내의 회로망(circuitry)으로 구현될 수 있다. 예를 들어, 통신부(210)는 내부 버스(internal bus) 및 외부 버스(external bus)를 포함할 수 있다. 다른 예로, 통신부(210)는 전자 장치(200)와 외부의 장치를 연결하는 요소일 수 있다. 통신부(210)는 인터페이스(interface)일 수 있다. 통신부(210)는 외부의 장치로부터 데이터를 수신하여, 프로세서(220) 및 메모리(230)에 데이터를 전송할 수 있다.The communication unit (210) may be implemented as a circuitry within the electronic device (200). For example, the communication unit (210) may include an internal bus and an external bus. As another example, the communication unit (210) may be an element that connects the electronic device (200) and an external device. The communication unit (210) may be an interface. The communication unit (210) may receive data from an external device and transmit the data to the processor (220) and the memory (230).

프로세서(220)는 통신부(210)가 수신한 데이터 및 메모리(230)에 저장된 데이터를 처리한다. "프로세서"는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다. 예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.The processor (220) processes data received by the communication unit (210) and data stored in the memory (230). The “processor” may be a data processing device implemented as hardware having a circuit having a physical structure for executing desired operations. For example, the desired operations may include code or instructions included in a program. For example, the data processing device implemented as hardware may include a microprocessor, a central processing unit, a processor core, a multi-core processor, a multiprocessor, an ASIC (Application-Specific Integrated Circuit), and an FPGA (Field Programmable Gate Array).

프로세서(220)는 메모리(예를 들어, 메모리(230))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(220)에 의해 유발된 인스트럭션들을 실행한다.The processor (220) executes computer-readable code (e.g., software) stored in memory (e.g., memory (230)) and instructions issued by the processor (220).

메모리(230)는 통신부(210)가 수신한 데이터 및 프로세서(220)가 처리한 데이터를 저장한다. 예를 들어, 메모리(230)는 프로그램(또는 어플리케이션, 소프트웨어)을 저장할 수 있다. 저장되는 프로그램은 카메라의 자세를 결정할 수 있도록 코딩되어 프로세서(220)에 의해 실행 가능한 신텍스(syntax)들의 집합일 수 있다.The memory (230) stores data received by the communication unit (210) and data processed by the processor (220). For example, the memory (230) may store a program (or application, software). The stored program may be a set of syntaxes that are coded to determine the attitude of the camera and can be executed by the processor (220).

일 측면에 따르면, 메모리(230)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM(Random Access Memory), 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to one aspect, the memory (230) may include one or more volatile memory, nonvolatile memory, and random access memory (RAM), flash memory, a hard disk drive, and an optical disk drive.

메모리(230)는 전자 장치(200)를 동작 시키는 명령어 세트(예를 들어, 소프트웨어)를 저장한다. 전자 장치(200)를 동작 시키는 명령어 세트는 프로세서(220)에 의해 실행된다.The memory (230) stores a set of instructions (e.g., software) for operating the electronic device (200). The set of instructions for operating the electronic device (200) is executed by the processor (220).

카메라(240)는 장면을 촬영함으로써 영상을 생성한다. 카메라(240)는 복수의 카메라들을 포함할 수 있다. 예를 들어, 복수의 카메라들은 차량의 전방, 후방, 좌측 및 우측에 각각 배치될 수 있다.The camera (240) generates an image by photographing a scene. The camera (240) may include multiple cameras. For example, the multiple cameras may be positioned respectively on the front, rear, left, and right sides of the vehicle.

일 실시 예에 따르면, 카메라(240)의 렌즈는 어안 렌즈(fish lens)일 수 있다.According to one embodiment, the lens of the camera (240) may be a fish-eye lens.

통신부(210), 프로세서(220), 메모리(230) 및 카메라(240)에 대해, 아래에서 도 3 내지 도 13을 참조하여 상세히 설명된다.The communication unit (210), processor (220), memory (230), and camera (240) are described in detail with reference to FIGS. 3 to 13 below.

도 3는 일 실시 예에 따른 카메라의 자세를 결정하는 방법의 흐름도이다.FIG. 3 is a flowchart of a method for determining a pose of a camera according to one embodiment.

아래의 단계들(310 내지 360)은 도 2를 참조하여 전술된 전자 장치(200)에 의해 수행된다.The steps (310 to 360) below are performed by the electronic device (200) described above with reference to FIG. 2.

단계(310)에서, 전자 장치(200)는 카메라(240)의 제1 자세로 생성된 제1 영상 내의 제1 특징점을 검출하고, 제1 특징점에 대한 제1 기술자(descriptor)를 생성한다. 제1 영상에 기초하여 하나 이상의 특징점들이 검출될 수 있다. 특징점들 중 어느 하나가 제1 특징점으로 지칭될 수 있다. 제1 영상은 제1 시각에서 촬영된 영상일 수 있다.In step (310), the electronic device (200) detects a first feature point in a first image generated in a first pose of the camera (240) and generates a first descriptor for the first feature point. One or more feature points may be detected based on the first image. Any one of the feature points may be referred to as the first feature point. The first image may be an image captured at a first viewpoint.

단계(320)에서, 전자 장치(200)는 제1 특징점의 제1 영상 내의 좌표에 기초하여 제1 특징점을 제1 영상에 대해 설정된 제1 구 좌표계 상에 투영(projecting)함으로써 제1 구 모델(sphere model)을 생성한다. 제1 구 모델은 검출된 제1 영상의 하나 이상의 특징점들을 제1 구 좌표계에 투영함으로써 생성될 수 있다. 제1 구 좌표계로 투영된 제1 특징점의 좌표는 제1 특징 구 좌표로 명명될 수 있다. 제1 구 좌표계는 제1 시각에서의 카메라(240)의 위치에 기초하여 결정되는 구의 중심 및 미리 설정된 반경에 기초하여 설정될 수 있다. 예를 들어, 반경은 카메라(240)의 렌즈의 왜곡 정도에 따라 미리 설정될 수 있다.In step (320), the electronic device (200) generates a first sphere model by projecting the first feature point onto a first spherical coordinate system set for the first image based on the coordinates of the first feature point in the first image. The first sphere model can be generated by projecting one or more feature points of the detected first image onto the first spherical coordinate system. The coordinates of the first feature point projected onto the first spherical coordinate system can be referred to as first feature sphere coordinates. The first spherical coordinate system can be set based on the center of a sphere determined based on the position of the camera (240) at the first viewpoint and a preset radius. For example, the radius can be preset according to the degree of distortion of a lens of the camera (240).

제1 구 모델을 생성하는 방법에 대해, 아래에서 도 4 및 도 5를 참조하여 상세히 설명된다.The method of generating the first sphere model is described in detail below with reference to FIGS. 4 and 5.

단계(330)에서, 전자 장치(200)는 카메라(240)의 제2 자세로 생성된 제2 영상 내의 제2 특징점을 검출하고, 제2 특징점에 대한 제2 기술자를 생성한다. 제2 영상에 기초하여 하나 이상의 특징점들이 검출될 수 있다. 특징점들 중 어느 하나가 제2 특징점으로 지칭될 수 있다. 제2 영상은 제1 시각 보다 후행하는 제2 시각에서 촬영된 영상일 수 있다.In step (330), the electronic device (200) detects a second feature point in a second image generated in a second pose of the camera (240) and generates a second descriptor for the second feature point. One or more feature points may be detected based on the second image. Any one of the feature points may be referred to as the second feature point. The second image may be an image captured at a second time point that follows the first time point.

단계(340)에서, 전자 장치(200)는 제2 특징점의 제2 영상 내의 좌표에 기초하여 제2 특징점을 제2 영상에 대해 설정된 제2 구 좌표계 상에 투영함으로써 제2 구 모델을 생성한다. 제2 구 모델은 검출된 제2 영상의 하나 이상의 특징점들을 제2 구 좌표계에 투영함으로써 생성될 수 있다. 제2 구 좌표계로 투영된 제2 특징점의 좌표는 제2 특징 구 좌표로 명명될 수 있다. 제2 구 좌표계는 제2 시각에서의 카메라(240)의 위치에 기초하여 결정되는 구의 중심 및 미리 설정된 반경에 기초하여 설정될 수 있다.In step (340), the electronic device (200) generates a second spherical model by projecting the second feature point onto a second spherical coordinate system set for the second image based on the coordinates of the second feature point in the second image. The second spherical model can be generated by projecting one or more feature points of the detected second image onto the second spherical coordinate system. The coordinates of the second feature point projected onto the second spherical coordinate system can be referred to as second feature spherical coordinates. The second spherical coordinate system can be set based on a center of a sphere determined based on a position of the camera (240) at the second viewpoint and a preset radius.

단계(350)에서, 전자 장치(200)는 제1 기술자 및 제2 기술자에 기초하여 제1 특징점 및 제2 특징점을 매칭한다. 예를 들어, 제1 특징점을 제2 영상의 좌표계로 투영함으로써 제1 특징점 및 제2 특징점을 매칭할 수 있다. 아래에서 도 6 내지 도 10을 참조하여 제1 특징점 및 제2 특징점을 매칭하는 방법에 대해 상세히 설명된다.In step (350), the electronic device (200) matches the first feature point and the second feature point based on the first descriptor and the second descriptor. For example, the first feature point and the second feature point can be matched by projecting the first feature point into the coordinate system of the second image. A method of matching the first feature point and the second feature point is described in detail with reference to FIGS. 6 to 10 below.

단계(360)에서, 전자 장치(200)는 제1 특징점 및 제2 특징점이 매칭된 경우, 제1 구 모델 및 제2 구 모델에 기초하여 카메라(240)의 자세를 결정한다. 카메라(240)의 자세를 결정하는 방법에 대해, 아래에서 도 11 및 도 12를 참조하여 상세히 설명된다.In step (360), the electronic device (200) determines the pose of the camera (240) based on the first sphere model and the second sphere model when the first feature point and the second feature point are matched. A method for determining the pose of the camera (240) is described in detail below with reference to FIGS. 11 and 12.

도 4는 일 예에 따른 제1 구 모델을 생성하는 방법의 흐름도이다.Figure 4 is a flowchart of a method for generating a first sphere model according to an example.

일 실시 예에 따르면, 도 3을 참조하여 전술된 단계(320)는 단계들(410 내지 430)을 포함할 수 있다.According to one embodiment, step (320) described above with reference to FIG. 3 may include steps (410 to 430).

단계(410)에서, 전자 장치(200)는 카메라(240)의 위치를 중심으로 하는 미리 설정된 반경을 갖는 제1 구 좌표계를 설정한다.In step (410), the electronic device (200) sets a first spherical coordinate system having a preset radius centered on the position of the camera (240).

단계(420)에서, 전자 장치(200)는 카메라(240)의 캘리브레이션 정보 및 카메라(240)의 회전 및 이동(rotation and translation) 정보에 기초하여 제1 구 좌표계의 중심점 및 제1 특징점의 제1 영상 내의 좌표 간의 제1 기준 벡터를 계산한다. 예를 들어, 카메라(240)의 캘리브레이션 정보 및 카메라(240)의 회전 및 이동 정보에 기초하여 제1 영상이 제1 구 좌표계 상에 설정될 수 있고, 제1 구 좌표계의 중심점 및 제1 특징점의 제1 영상 내의 좌표에 기초하여 제1 기준 벡터가 계산될 수 있다.In step (420), the electronic device (200) calculates a first reference vector between the center point of the first spherical coordinate system and the coordinates of the first feature point in the first image based on the calibration information of the camera (240) and the rotation and translation information of the camera (240). For example, the first image may be set on the first spherical coordinate system based on the calibration information of the camera (240) and the rotation and translation information of the camera (240), and the first reference vector may be calculated based on the center point of the first spherical coordinate system and the coordinates of the first feature point in the first image.

단계(430)에서, 전자 장치(200)는 제1 기준 벡터를 제1 구 좌표계 상에 투영함으로써 제1 구 모델을 생성한다. 제1 영상 내의 하나 이상의 특징점들이 제1 구 좌표계 상에 투영될 수 있다.In step (430), the electronic device (200) generates a first spherical model by projecting the first reference vector onto the first spherical coordinate system. One or more feature points within the first image may be projected onto the first spherical coordinate system.

도 5는 일 예에 따른 기준 벡터에 기초하여 생성된 구 모델을 도시한다.Figure 5 illustrates a sphere model generated based on a reference vector according to an example.

일 실시 예에 따르면, 전자 장치(200)는 카메라(240)의 제1 시각에서의 위치에 기초하여 중심점(501)을 설정하고, 중심점(501)을 기준으로 미리 설정된 반경을 갖는 제1 구 좌표계(502)를 설정할 수 있다. 전자 장치(400)는 카메라(240)의 캘리브레이션 정보 및 카메라(240)의 회전 및 이동 정보에 기초하여 제1 영상(510)을 제1 구 좌표계 상에 설정할 수 있다. 전자 장치(200)는 중심점(501) 및 제1 특징점의 제1 영상 내의 좌표(511)에 기초하여 제1 기준 벡터(520)가 계산할 수 있다. 전자 장치(200)는 제1 기준 벡터(520)를 제1 구 좌표계(502) 상에 투영함으로써 제1 구 모델을 생성할 수 있다. 예를 들어, 제1 기준 벡터(520)가 제1 구 좌표계(502) 상으로 확장(530)됨으로써 제1 특징점에 대응하는 제1 특징 구 좌표(531)가 결정될 수 있다.According to one embodiment, the electronic device (200) can set a center point (501) based on a position of the camera (240) at a first viewpoint, and set a first spherical coordinate system (502) having a preset radius based on the center point (501). The electronic device (400) can set a first image (510) on the first spherical coordinate system based on calibration information of the camera (240) and rotation and movement information of the camera (240). The electronic device (200) can calculate a first reference vector (520) based on coordinates (511) of the center point (501) and the first feature point in the first image. The electronic device (200) can generate a first spherical model by projecting the first reference vector (520) onto the first spherical coordinate system (502). For example, a first feature sphere coordinate (531) corresponding to a first feature point can be determined by extending (530) a first reference vector (520) onto a first sphere coordinate system (502).

상기의 설명은 제1 구 모델을 생성하는 방법에 관한 것이지만, 제2 구 모델을 생성하는 방법에 대한 설명으로도 대체될 수 있으므로, 중복되는 설명은 이하에서 생략한다.The above description relates to a method for generating a first sphere model, but can also be replaced with a description of a method for generating a second sphere model, so any redundant description is omitted below.

도 6은 일 예에 따른 제1 영상의 제1 특징점 및 제2 영상의 제2 특징점을 매칭하는 방법의 흐름도이다.FIG. 6 is a flowchart of a method for matching a first feature point of a first image and a second feature point of a second image according to an example.

일 실시 예에 따르면, 도 3을 참조하여 전술된 단계(350)는 단계들(610 내지 640)을 포함할 수 있다.According to one embodiment, step (350) described above with reference to FIG. 3 may include steps (610 to 640).

단계(610)에서, 전자 장치(200)는 제2 영상에 대한 초기 회전 및 이동 행렬(rotation and translation matrix) [R|t]를 계산한다.In step (610), the electronic device (200) calculates an initial rotation and translation matrix [R|t] for the second image.

일 실시 예에 따르면, 제2 영상이 k 번째 프레임인 경우, k-2 번째 프레임의 회전 및 이동 행렬 및 k-1 번째 프레임의 회전 및 이동 행렬에 기초하여 제2 영상에 대한 초기 회전 및 이동 행렬이 계산(또는, 추정)될 수 있다. 예를 들어, 이전 프레임들의 회전 및 이동 행렬들의 변화 추이에 기초하여 현재 프레임(즉, 제2 영상)에 대한 초기 회전 및 이동 행렬이 계산될 수 있다.In one embodiment, when the second image is the k-th frame, an initial rotation and translation matrix for the second image can be calculated (or estimated) based on the rotation and translation matrix of the k-2-th frame and the rotation and translation matrix of the k-1-th frame. For example, an initial rotation and translation matrix for the current frame (i.e., the second image) can be calculated based on a change trend of the rotation and translation matrices of previous frames.

다른 일 실시 예에 따르면, k 번째 프레임이 두 번째 프레임과 같이 초기의 프레임인 경우, 첫 번째 프레임 및 두 번째 프레임의 특징점들이 매칭되고, 매칭 쌍 정보를 이용하여 기본 행렬(essential matrix)이 계산될 수 있다. 기본 행렬을 분해함으로써 카메라의 초기 회전 및 이동 행렬이 계산될 수 있다.In another embodiment, if the k-th frame is an initial frame, such as the second frame, the feature points of the first frame and the second frame are matched, and an essential matrix can be computed using the matching pair information. By decomposing the essential matrix, the initial rotation and translation matrices of the camera can be computed.

단계(620)에서, 전자 장치(200)는 초기 회전 및 이동 행렬에 기초하여 제1 영상의 제1 특징점을 제2 구 좌표계 상에 투영함으로써 제1 변환 구 좌표를 결정한다. 예를 들어, 전자 장치(200)는 제1 특징점에 대응하는 제1 구 좌표계 상의 좌표를 초기 회전 및 이동 행렬에 기초하여 제2 구 좌표계 상의 좌표로 투영할 수 있다.In step (620), the electronic device (200) determines the first transformed spherical coordinates by projecting the first feature point of the first image onto the second spherical coordinate system based on the initial rotation and translation matrix. For example, the electronic device (200) can project the coordinates on the first spherical coordinate system corresponding to the first feature point into coordinates on the second spherical coordinate system based on the initial rotation and translation matrix.

단계(630)에서, 전자 장치(200)는 제1 변환 구 좌표를 제2 영상의 좌표계로 투영함으로써 제1 변환 영상 좌표를 결정한다. 제2 영상의 좌표계는 제2 영상의 평면일 수 있다. 제1 변환 영상 좌표를 결정하는 방법에 대해, 아래에서 도 7을 참조하여 상세히 설명된다.In step (630), the electronic device (200) determines the first transformed image coordinates by projecting the first transformed spherical coordinates into the coordinate system of the second image. The coordinate system of the second image may be a plane of the second image. A method for determining the first transformed image coordinates is described in detail below with reference to FIG. 7.

단계(640)에서, 전자 장치(200)는 제1 변환 영상 좌표, 제1 기술자 및 제2 기술자에 기초하여 제1 특징점 및 제2 특징점을 매칭한다. 제1 변환 영상 좌표, 제1 기술자 및 제2 기술자에 기초하여 제1 특징점 및 제2 특징점을 매칭하는 방법에 대해, 아래에서 도 8 내지 도 10을 참조하여 상세히 설명된다.In step (640), the electronic device (200) matches the first feature point and the second feature point based on the first transformed image coordinates, the first descriptor, and the second descriptor. A method of matching the first feature point and the second feature point based on the first transformed image coordinates, the first descriptor, and the second descriptor is described in detail below with reference to FIGS. 8 to 10.

도 7은 일 예에 따른 제1 기술자 및 제2 기술자에 기초하여 제1 특징점 및 제2 특징점을 매칭하는 방법의 흐름도이다.FIG. 7 is a flowchart of a method for matching a first feature point and a second feature point based on a first technician and a second technician according to an example.

일 실시 예에 따르면, 전자 장치(200)는 중심점(701)을 중심으로 하는 제2 구 좌표계(702) 상에 결정된 제1 변환 구 좌표(720)(제1 특징점에 대응함)를 제2 영상(710)의 좌표계로 투영함으로써 제1 변환 영상 좌표(730)를 결정할 수 있다.According to one embodiment, the electronic device (200) can determine the first transformed image coordinates (730) by projecting the first transformed spherical coordinates (720) (corresponding to the first feature point) determined on the second spherical coordinate system (702) centered on the center point (701) into the coordinate system of the second image (710).

도 8은 일 예에 따른 제1 특징점에 대한 제1 변환 구 좌표를 제2 영상의 좌표계로 투영함으로써 제1 변환 영상 좌표를 결정하는 방법을 도시한다.FIG. 8 illustrates a method for determining first transformed image coordinates by projecting first transformed spherical coordinates for a first feature point according to an example into the coordinate system of a second image.

일 실시 예에 따르면, 도 6을 참조하여 전술된 단계(640)는 단계들(810 내지 830)을 포함할 수 있다.According to one embodiment, step (640) described above with reference to FIG. 6 may include steps (810 to 830).

단계(810)에서, 전자 장치(200)는 제1 변환 영상 좌표를 포함하는 검색 범위를 제2 영상 상에 설정한다. 예를 들어, 제1 변환 영상 좌표를 중심으로 일정 반경을 갖는 검색 범위가 제2 영상 상에 설정될 수 있다.In step (810), the electronic device (200) sets a search range including the first transformed image coordinates on the second image. For example, a search range having a certain radius centered on the first transformed image coordinates may be set on the second image.

일 실시 예에 따르면, 검색 범위의 반경은 제1 변환 영상 좌표에 기초하여 다르게 설정될 수 있다. 예를 들어, 제1 변환 영상 좌표가 제2 영상의 외곽에 위치할수록 반경이 크게 설정될 수 있다.According to one embodiment, the radius of the search range may be set differently based on the first transformed image coordinates. For example, the radius may be set larger as the first transformed image coordinates are located at the outer edge of the second image.

단계(820)에서, 전자 장치(200)는 검색 범위 내의 하나 이상의 특징점들(즉, 제2 특징점들) 중 제1 기술자에 대응하는 제2 기술자를 결정한다. 제1 기술자에 대응하는 제2 기술자를 결정하는 방법에 대해 아래에서 도 10을 참조하여 상세히 설명된다.In step (820), the electronic device (200) determines a second descriptor corresponding to the first descriptor among one or more feature points (i.e., second feature points) within the search range. A method for determining the second descriptor corresponding to the first descriptor is described in detail below with reference to FIG. 10.

단계(830)에서, 전자 장치(200)는 제2 기술자를 갖는 제2 특징점을 제1 특징점과 매칭한다.At step (830), the electronic device (200) matches a second feature point having a second descriptor with the first feature point.

도 9는 일 예에 따른 제2 영상 상에 설정된 제1 변환 영상 좌표를 포함하는 검색 범위를 도시한다.FIG. 9 illustrates a search range including first transformed image coordinates set on a second image according to an example.

도 7를 참조하여 설명된 실시 예에서, 제1 변환 영상 좌표(730)을 포함하는 검색 범위(910)가 제2 영상(710) 상에 설정될 수 있다. 검색 범위(910)의 크기는 제1 변환 영상 좌표(730)에 기초하여 결정될 수 있다. 예를 들어, 제1 변환 영상 좌표(730)가 제2 영상(710)의 외곽에 위치할수록 검색 범위(910)가 크게 설정될 수 있다.In the embodiment described with reference to FIG. 7, a search range (910) including the first transformed image coordinates (730) may be set on the second image (710). The size of the search range (910) may be determined based on the first transformed image coordinates (730). For example, the search range (910) may be set larger as the first transformed image coordinates (730) are located further out from the second image (710).

도 10은 일 예에 따른 제2 기술자를 결정하는 방법의 흐름도이다.Figure 10 is a flowchart of a method for determining a second technician according to an example.

일 실시 예에 따르면, 도 8을 참조하여 전술된 단계(820)는 단계들(1010 및 1020)을 포함할 수 있다.According to one embodiment, step (820) described above with reference to FIG. 8 may include steps (1010 and 1020).

단계(1010)에서, 전자 장치(200)는 검색 범위(예: 도9의 검색 범위(910)) 내의 하나 이상의 특징점들의 기술자들의 각각과 제1 기술자 간의 해밍 거리(Hamming distance)들을 계산한다.In step (1010), the electronic device (200) calculates Hamming distances between each of the descriptors of one or more feature points within a search range (e.g., the search range (910) of FIG. 9) and the first descriptor.

단계(1020)에서, 전자 장치(200)는 가장 작은 해밍 거리를 갖는 기술자를 제2 기술자로 결정한다.In step (1020), the electronic device (200) determines the descriptor with the smallest Hamming distance as the second descriptor.

도 11은 일 예에 따른 제1 구 모델 및 제2 구 모델에 기초하여 카메라의 자세를 결정하는 방법의 흐름도이다.FIG. 11 is a flowchart of a method for determining a camera pose based on a first sphere model and a second sphere model according to an example.

일 실시 예에 따르면, 도 3을 참조하여 전술된 단계(360)는 단계들(1110 내지 1150)을 포함할 수 있다. 예를 들어, 단계(1110)는 도 10을 참조하여 전술된 단계(1020)가 수행된 후 수행될 수 있다.According to one embodiment, step (360) described above with reference to FIG. 3 may include steps (1110 to 1150). For example, step (1110) may be performed after step (1020) described above with reference to FIG. 10 is performed.

단계(1110)에서, 전자 장치(200)는 제1 특징점에 대응하는 월드 좌표계의 기준 특징점을 제2 구 좌표계로 투영함으로써 제2 기준 구 좌표를 계산한다. 예를 들어, 월드 좌표계는 미리 생성된(또는, 갱신되는) 맵의 좌표계일 수 있다.In step (1110), the electronic device (200) calculates a second reference spherical coordinate by projecting a reference feature point of the world coordinate system corresponding to the first feature point into a second spherical coordinate system. For example, the world coordinate system may be a coordinate system of a pre-generated (or updated) map.

단계(1120)에서, 전자 장치(200)는 제2 특징 구 좌표 및 제2 기준 구 좌표 간의 제2 차이를 계산한다. 제2 차이를 계산하는 방법에 대해, 아래에서 도 12를 참조하여 상세히 설명된다.In step (1120), the electronic device (200) calculates a second difference between the second feature sphere coordinates and the second reference sphere coordinates. A method for calculating the second difference is described in detail below with reference to FIG. 12.

단계(1130)에서, 전자 장치(200)는 제2 차이가 최소화되도록 초기 회전 및 이동 행렬을 조정함으로써 최적 회전 및 이동 행렬을 생성한다. 최적 회전 및 이동 행렬을 생성하는 방법에 대해 아래에서 도 12를 참조하여 상세히 설명된다.In step (1130), the electronic device (200) generates an optimal rotation and translation matrix by adjusting the initial rotation and translation matrix so that the second difference is minimized. A method for generating an optimal rotation and translation matrix is described in detail below with reference to FIG. 12.

단계들(1110 내지 1130)은 제1 영상 내의 특징점들의 개수만큼 반복적으로 수행될 수 있다. 즉, 제1 영상 내의 모든 특징점들 각각에 대해 단계들(1110 내지 1130)이 수행될 수 있다. 예를 들어, 단계(1130)에서, 전자 장치(200)는 계산된 복수의 제2 차이들이 최소화되도록 반복적으로 초기 회전 및 이동 행렬을 조정함으로써 최적 회전 및 이동 행렬을 생성할 수 있다.Steps (1110 to 1130) may be repeatedly performed as many times as the number of feature points in the first image. That is, steps (1110 to 1130) may be performed for each of all feature points in the first image. For example, in step (1130), the electronic device (200) may generate an optimal rotation and translation matrix by repeatedly adjusting the initial rotation and translation matrix so that the calculated plurality of second differences are minimized.

일 실시 예에 따르면, 제1 영상에 기초하여 생성된 맵 상의 기본 특징점 뿐만 아니라, 제1 영상의 이전 영상에 기초하여 생성된 맵 상의 특징점이 제2 특징점과 매칭될 수 있다. 상기의 매칭을 이용하여 회전 및 이동 행렬이 더욱 최적화될 수 있다. 즉, 더욱 정확한 회전 및 이동 행렬을 획득하기 위해 추가의 이전 영상이 이용될 수 있다.In one embodiment, not only the basic feature points on the map generated based on the first image, but also the feature points on the map generated based on the previous image of the first image can be matched with the second feature points. Using the above matching, the rotation and translation matrices can be further optimized. That is, additional previous images can be used to obtain more accurate rotation and translation matrices.

도 12는 일 예에 따른 특징 구 좌표 및 기준 구 좌표 간의 차이를 계산하는 방법을 도시한다.Figure 12 illustrates a method for calculating the difference between feature sphere coordinates and reference sphere coordinates according to an example.

일 실시예에 따르면, 회전 및 이동 행렬을 최적화하기 위해 g2o(general graph optimization)가 이용될 수 있다. 예를 들어, g2o에서 이용되는 재투영 에러(reprojection error)에 대한 수학식이 구 모델에 맞도록 변형될 수 있다.In one embodiment, general graph optimization (g2o) can be used to optimize the rotation and translation matrices. For example, the mathematical expression for reprojection error used in g2o can be modified to fit the spherical model.

[수학식 1][Mathematical formula 1]

[수학식 1]에서, p는 카메라의 자세를 나타내고, i는 전체의 특징점들 중 i번째의 특징점을 나타내고, Mi(1210)는 기준 특징점의 월드 좌표계의 좌표이고, mi(1211)는 Mi(1210)가 중심점(1201)을 중심으로 하는 제2 구 좌표계(1202) 상에 투영된 좌표이고, Proj(Mi)(1220)는 제2 특징점이 제2 구 좌표계(1202)에 투영된 제2 특징 구 좌표이고, 는 p에 대한 재투영 에러 값을 나타낸다. mi(1211) 및 Proj(Mi)(1220) 간의 차이가 제2 차이(1230)로 계산될 수 있다.In [Mathematical Formula 1], p represents the pose of the camera, i represents the ith feature point among all feature points, M i (1210) is the coordinate of the reference feature point in the world coordinate system, m i (1211) is the coordinate projected on the second spherical coordinate system (1202) centered on the center point (1201) of M i (1210), Proj(M i )(1220) is the second feature spherical coordinate projected on the second feature point in the second spherical coordinate system (1202), represents the reprojection error value for p. The difference between m i (1211) and Proj(M i )(1220) can be computed as the second difference (1230).

[수학식 2]는 [수학식 1]을 카메라 자세로 편미분한 자코비언 에러(Jacobian error)의 수학식일 수 있다.[Mathematical expression 2] may be a mathematical expression of the Jacobian error obtained by partially differentiating [Mathematical expression 1] with respect to the camera pose.

[수학식 2][Mathematical formula 2]

[수학식 2]의 는 아래의 [수학식 3]으로 표현될 수 있다.[Mathematical formula 2] can be expressed by [Mathematical Formula 3] below.

[수학식 3][Mathematical formula 3]

[수학식 3]에서, 는 카메라의 자세를 이용하여 월드 좌표계의 기준 특징점을 카메라의 좌표계로 변환하는 함수이고, 는 카메라 좌표계의 특징점을 구 좌표계로 투영하는 함수이고, 이고, r은 구의 반지름이고, X, Y, Z는 카메라의 좌표계로 변환된 기준 특징점의 좌표일 수 있다.In [Mathematical Formula 3], is a function that converts the reference feature points of the world coordinate system into the camera coordinate system using the camera's pose. is a function that projects feature points from the camera coordinate system to the spherical coordinate system. , r is the radius of the sphere, and X, Y, and Z can be the coordinates of the reference feature points converted to the camera's coordinate system.

상기의 수학식들을 이용하여 3차원의 구 모델들 간의 위치 관계를 활용하여 카메라 자세가 추정되므로, 두 평면 모델들 간의 위치 관계를 활용하여 카메라 자세를 추정하는 기존 방법(예: cubemap SLAM) 보다는 추정 오차를 감소시킬 수 있다.Since the camera pose is estimated by utilizing the positional relationship between three-dimensional spherical models using the mathematical formulas above, the estimation error can be reduced compared to existing methods (e.g., cubemap SLAM) that estimate the camera pose by utilizing the positional relationship between two planar models.

도 13은 일 예에 따른 결정된 카메라의 자세에 기초하여 수행되는 추가 동작들을 도시한다.Figure 13 illustrates additional operations performed based on the determined camera pose according to an example.

아래의 단계들(1310 및 1320)의 각각은 단계(360)가 수행된 후에 수행될 수 있다.Each of the steps (1310 and 1320) below may be performed after step (360) is performed.

단계(1310)에서, 전자 장치(200)는 카메라의 자세에 기초하여 차량의 경로를 생성한다. 예를 들어, 전자 장치(200)는 카메라의 자세에 기초하여 카메라(또는, 차량)의 맵 상의 위치 및 자세를 결정하고, 이에 기초하여 목적지까지의 경로를 생성할 수 있다. 전자 장치(200)는 경로를 따라 진행하도록 차량을 제어할 수 있다.In step (1310), the electronic device (200) generates a path for the vehicle based on the attitude of the camera. For example, the electronic device (200) can determine the position and attitude of the camera (or vehicle) on the map based on the attitude of the camera, and generate a path to the destination based on this. The electronic device (200) can control the vehicle to proceed along the path.

단계(1320)에서, 전자 장치(200)는 제1 특징점 및 제2 특징점의 매칭에 기초하여 비주얼 SLAM의 맵을 갱신한다. 예를 들어, 전자 장치(200)는 제2 영상의 특징점들 중 이전의 영상에 의해 검출된 특징점에 매칭되지 않은 추가 특징점을 맵 상에 표시함으로써 맵을 갱신할 수 있다. 전자 장치(200)는 현재 시각의 카메라의 자세 및 제2 영상 내의 추가 특징점의 좌표에 기초하여 추가 특징점을 맵에 추가시킬 수 있다. 도 2 내지 도 12를 참조하여 설명된 카메라 자세 결정 방법을 이용하여 수행된 SLAM은 O2RB(Omnidirectional Oriented FAST and Rotated BRIEF) SLAM으로 명명될 수 있다.In step (1320), the electronic device (200) updates the map of the visual SLAM based on the matching of the first feature point and the second feature point. For example, the electronic device (200) can update the map by displaying on the map additional feature points that do not match feature points detected by the previous image among the feature points of the second image. The electronic device (200) can add the additional feature points to the map based on the pose of the camera at the current time and the coordinates of the additional feature points in the second image. The SLAM performed using the camera pose determination method described with reference to FIGS. 2 to 12 can be named O2RB (Omnidirectional Oriented FAST and Rotated BRIEF) SLAM.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program commands that can be executed through various computer means and recorded on a computer-readable medium. The computer-readable medium may include program commands, data files, data structures, etc., alone or in combination. The program commands recorded on the medium may be those specially designed and configured for the embodiment or may be those known to and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, and hardware devices specially configured to store and execute program commands such as ROMs, RAMs, flash memories, etc. Examples of the program commands include not only machine language codes generated by a compiler but also high-level language codes that can be executed by a computer using an interpreter, etc. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiment, and vice versa.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing device to perform a desired operation or may, independently or collectively, command the processing device. The software and/or data may be permanently or temporarily embodied in any type of machine, component, physical device, virtual equipment, computer storage medium or device, or transmitted signal waves, for interpretation by the processing device or for providing instructions or data to the processing device. The software may also be distributed over network-connected computer systems and stored or executed in a distributed manner. The software and data may be stored on one or more computer-readable recording media.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described with limited drawings as described above, those skilled in the art can apply various technical modifications and variations based on the above. For example, appropriate results can be achieved even if the described techniques are performed in a different order than the described method, and/or components of the described system, structure, device, circuit, etc. are combined or combined in a different form than the described method, or are replaced or substituted by other components or equivalents.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also included in the scope of the claims described below.

200: 전자 장치
210: 통신부
220: 프로세서
230: 메모리
240: 카메라
200: Electronic devices
210: Communications Department
220: Processor
230: Memory
240: Camera

Claims (21)

전자 장치에 의해 수행되는, 카메라 자세 결정 방법은,
카메라의 제1 자세로 생성된 제1 영상 내의 제1 특징점을 검출하고, 상기 제1 특징점에 대한 제1 기술자(descriptor)를 생성하는 단계;
상기 제1 특징점의 상기 제1 영상 내의 좌표에 기초하여 상기 제1 특징점을 상기 제1 영상에 대해 설정된 제1 구 좌표계 상에 투영(projecting)함으로써 제1 구 모델을 생성하는 단계 - 상기 제1 특징점이 제1 특징 구 좌표로 투영됨 -;
상기 카메라의 제2 자세로 생성된 제2 영상 내의 제2 특징점을 검출하고, 상기 제2 특징점에 대한 제2 기술자를 생성하는 단계;
상기 제2 특징점의 상기 제2 영상 내의 좌표에 기초하여 상기 제2 특징점을 상기 제2 영상에 대해 설정된 제2 구 좌표계 상에 투영함으로써 제2 구 모델을 생성하는 단계 - 상기 제2 특징점이 제2 특징 구 좌표로 투영됨 -;
상기 제1 기술자 및 상기 제2 기술자에 기초하여 상기 제1 특징점 및 상기 제2 특징점을 매칭하는 단계; 및
상기 제2 특징점이 상기 제1 특징점에 매칭된 경우, 상기 제2 구 모델에 기초하여 상기 카메라의 자세를 결정하는 단계
를 포함하고,
상기 제1 특징점 및 상기 제2 특징점을 매칭하는 단계는,
상기 제2 영상에 대한 초기 회전 및 이동 행렬(rotation and translation matrix)을 계산하는 단계;
상기 초기 회전 및 이동 행렬에 기초하여 상기 제1 영상의 상기 제1 특징점을 상기 제2 구 좌표계 상에 투영함으로써 제1 변환 구 좌표를 결정하는 단계;
상기 제1 변환 구 좌표를 상기 제2 영상의 좌표계로 투영함으로써 제1 변환 영상 좌표를 결정하는 단계; 및
상기 제1 변환 영상 좌표에 기초하여 상기 제1 특징점 및 상기 제2 영상 내의 상기 제2 특징점을 매칭하는 단계
를 포함하고,
상기 제2 특징점이 상기 제1 특징점에 매칭된 경우, 상기 제2 구 모델에 기초하여 상기 카메라의 자세를 결정하는 단계는,
상기 제1 특징점에 대응하는 월드 좌표계의 기준 특징점을 상기 제2 구 좌표계로 투영함으로써 제2 기준 구 좌표를 계산하는 단계;
상기 제2 특징 구 좌표 및 상기 제2 기준 구 좌표 간의 제2 차이를 계산하는 단계; 및
상기 제2 차이가 최소화되도록 상기 초기 회전 및 이동 행렬을 조정함으로써 최적 회전 및 이동 행렬을 생성하는 단계
를 포함하는,
카메라 자세 결정 방법.
A method for determining camera attitude, performed by an electronic device,
A step of detecting a first feature point in a first image generated in a first pose of a camera and generating a first descriptor for the first feature point;
A step of generating a first spherical model by projecting the first feature point onto a first spherical coordinate system set for the first image based on coordinates of the first feature point within the first image, wherein the first feature point is projected onto the first feature spherical coordinate;
A step of detecting a second feature point in a second image generated in a second pose of the camera and generating a second descriptor for the second feature point;
A step of generating a second spherical model by projecting the second feature point onto a second spherical coordinate system set for the second image based on the coordinates of the second feature point within the second image, wherein the second feature point is projected onto the second feature spherical coordinates;
A step of matching the first feature point and the second feature point based on the first technician and the second technician; and
A step of determining the pose of the camera based on the second sphere model when the second feature point matches the first feature point.
Including,
The step of matching the first feature point and the second feature point is:
A step of calculating an initial rotation and translation matrix for the second image;
A step of determining a first transformed spherical coordinate by projecting the first feature point of the first image onto the second spherical coordinate system based on the initial rotation and translation matrix;
A step of determining the first transformed image coordinate by projecting the first transformed spherical coordinate into the coordinate system of the second image; and
A step of matching the first feature point and the second feature point in the second image based on the first transformed image coordinates.
Including,
If the second feature point matches the first feature point, the step of determining the pose of the camera based on the second sphere model is:
A step of calculating a second reference spherical coordinate by projecting a reference feature point of the world coordinate system corresponding to the first feature point into the second spherical coordinate system;
a step of calculating a second difference between the second feature sphere coordinates and the second reference sphere coordinates; and
A step of generating an optimal rotation and translation matrix by adjusting the initial rotation and translation matrix so that the second difference is minimized.
Including,
How to determine camera pose.
제1항에 있어서,
상기 제2 구 모델을 생성하는 단계는,
상기 카메라의 위치를 중심으로 하는 미리 설정된 반경을 갖는 상기 제2 구 좌표계를 설정하는 단계;
상기 카메라의 캘리브레이션 정보 및 상기 카메라의 회전 및 이동 정보에 기초하여 상기 제2 구 좌표계의 중심점 및 상기 제2 특징점의 상기 제2 영상 내의 좌표 간의 제2 기준 벡터를 계산하는 단계; 및
상기 제2 기준 벡터를 상기 제2 구 좌표계 상에 투영함으로써 상기 제2 구 모델을 생성하는 단계
를 포함하는,
카메라 자세 결정 방법.
In the first paragraph,
The step of generating the above second sphere model is:
A step of setting the second spherical coordinate system having a preset radius centered on the position of the camera;
A step of calculating a second reference vector between the center point of the second spherical coordinate system and the coordinates of the second feature point in the second image based on the calibration information of the camera and the rotation and movement information of the camera; and
A step of generating the second sphere model by projecting the second reference vector onto the second sphere coordinate system.
Including,
How to determine camera pose.
제2항에 있어서,
상기 캘리브레이션 정보는 상기 카메라의 내부 파라미터 및 렌즈의 왜곡 정도를 포함하는,
카메라 자세 결정 방법.
In the second paragraph,
The above calibration information includes the internal parameters of the camera and the degree of distortion of the lens.
How to determine camera pose.
삭제delete 제1항에 있어서,
상기 제1 변환 영상 좌표에 기초하여 상기 제1 특징점 및 상기 제2 영상 내의 상기 제2 특징점을 매칭하는 단계는,
상기 제1 변환 영상 좌표를 포함하는 검색 범위(search range)를 상기 제2 영상 상에 설정하는 단계;
상기 검색 범위 내의 하나 이상의 특징점들 중 상기 제1 기술자에 대응하는 상기 제2 기술자를 결정하는 단계; 및
상기 제2 기술자를 갖는 상기 제2 특징점을 상기 제1 특징점과 매칭하는 단계
를 포함하는,
카메라 자세 결정 방법.
In the first paragraph,
The step of matching the first feature point and the second feature point in the second image based on the first transformed image coordinates is:
A step of setting a search range including the first transformed image coordinates on the second image;
A step of determining the second descriptor corresponding to the first descriptor among one or more feature points within the search range; and
A step of matching the second feature point having the second descriptor with the first feature point.
Including,
How to determine camera pose.
제5항에 있어서,
상기 검색 범위 내의 하나 이상의 특징점들 중 상기 제1 기술자에 대응하는 상기 제2 기술자를 결정하는 단계는,
상기 검색 범위 내의 하나 이상의 특징점들의 기술자들의 각각과 상기 제1 기술자 간의 해밍 거리들을 계산하는 단계; 및
가장 작은 해밍 거리를 갖는 기술자를 상기 제2 기술자로 결정하는 단계
를 포함하는,
카메라 자세 결정 방법.
In paragraph 5,
The step of determining the second descriptor corresponding to the first descriptor among one or more feature points within the search range is:
A step of calculating Hamming distances between each of the descriptors of one or more feature points within the search range and the first descriptor; and
A step of determining the descriptor with the smallest Hamming distance as the second descriptor
Including,
How to determine camera pose.
삭제delete 제1항에 있어서,
상기 카메라의 자세에 기초하여 차량의 경로를 생성하는 단계
를 더 포함하는,
카메라 자세 결정 방법.
In the first paragraph,
Step of generating a vehicle path based on the attitude of the above camera
Including more,
How to determine camera pose.
제1항에 있어서,
상기 제1 특징점 및 상기 제2 특징점의 매칭에 기초하여 비주얼 SLAM(visual simultaneous localization and mapping)의 맵을 갱신하는 단계
를 더 포함하는,
카메라 자세 결정 방법.
In the first paragraph,
A step of updating a map of visual simultaneous localization and mapping (SLAM) based on matching of the first feature point and the second feature point.
Including more,
How to determine camera pose.
제1항에 있어서,
상기 전자 장치는, 자율 주행 차량 또는 ADAS(Advanced Driver Assistance Systems)을 지원하는 차량에 탑재되는,
카메라 자세 결정 방법.
In the first paragraph,
The above electronic device is installed in a vehicle that supports autonomous vehicles or ADAS (Advanced Driver Assistance Systems).
How to determine camera pose.
제1항, 제2항, 제3항, 제5항, 제6항, 제8항, 제9항, 및 제10항 중 어느 한 항의 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
A computer-readable recording medium containing a program for performing the method of any one of claims 1, 2, 3, 5, 6, 8, 9, and 10.
전자 장치는,
카메라의 자세를 결정하는 프로그램을 수행하는 프로세서; 및
상기 프로그램을 저장하는 메모리
를 포함하고,
상기 프로그램은,
카메라의 제1 자세로 생성된 제1 영상 내의 제1 특징점을 검출하고, 상기 제1 특징점에 대한 제1 기술자(descriptor)를 생성하는 단계;
상기 제1 특징점의 상기 제1 영상 내의 좌표에 기초하여 상기 제1 특징점을 상기 제1 영상에 대해 설정된 제1 구 좌표계 상에 투영(projecting)함으로써 제1 구 모델을 생성하는 단계 - 상기 제1 특징점이 제1 특징 구 좌표로 투영됨 -;
상기 카메라의 제2 자세로 생성된 제2 영상 내의 제2 특징점을 검출하고, 상기 제2 특징점에 대한 제2 기술자를 생성하는 단계;
상기 제2 특징점의 상기 제2 영상 내의 좌표에 기초하여 상기 제2 특징점을 상기 제2 영상에 대해 설정된 제2 구 좌표계 상에 투영함으로써 제2 구 모델을 생성하는 단계 - 상기 제2 특징점이 제2 특징 구 좌표로 투영됨 -;
상기 제1 기술자 및 상기 제2 기술자에 기초하여 상기 제1 특징점 및 상기 제2 특징점을 매칭하는 단계; 및
상기 제2 특징점이 상기 제1 특징점에 매칭된 경우, 상기 제2 구 모델에 기초하여 상기 카메라의 자세를 결정하는 단계
를 수행하고,
상기 제1 특징점 및 상기 제2 특징점을 매칭하는 단계는,
상기 제2 영상에 대한 초기 회전 및 이동 행렬(rotation and translation matrix)을 계산하는 단계;
상기 초기 회전 및 이동 행렬에 기초하여 상기 제1 영상의 상기 제1 특징점을 상기 제2 구 좌표계 상에 투영함으로써 제1 변환 구 좌표를 결정하는 단계;
상기 제1 변환 구 좌표를 상기 제2 영상의 좌표계로 투영함으로써 제1 변환 영상 좌표를 결정하는 단계; 및
상기 제1 변환 영상 좌표에 기초하여 상기 제1 특징점 및 상기 제2 영상 내의 상기 제2 특징점을 매칭하는 단계
를 포함하고,
상기 제2 특징점이 상기 제1 특징점에 매칭된 경우, 상기 제2 구 모델에 기초하여 상기 카메라의 자세를 결정하는 단계는,
상기 제1 특징점에 대응하는 월드 좌표계의 기준 특징점을 상기 제2 구 좌표계로 투영함으로써 제2 기준 구 좌표를 계산하는 단계;
상기 제2 특징 구 좌표 및 상기 제2 기준 구 좌표 간의 제2 차이를 계산하는 단계; 및
상기 제2 차이가 최소화되도록 상기 초기 회전 및 이동 행렬을 조정함으로써 최적 회전 및 이동 행렬을 생성하는 단계
를 포함하는,
전자 장치.
Electronic devices,
a processor that executes a program that determines the attitude of the camera; and
Memory for storing the above program
Including,
The above program is,
A step of detecting a first feature point in a first image generated in a first pose of a camera and generating a first descriptor for the first feature point;
A step of generating a first spherical model by projecting the first feature point onto a first spherical coordinate system set for the first image based on coordinates of the first feature point within the first image, wherein the first feature point is projected onto the first feature spherical coordinate;
A step of detecting a second feature point in a second image generated in a second pose of the camera and generating a second descriptor for the second feature point;
A step of generating a second spherical model by projecting the second feature point onto a second spherical coordinate system set for the second image based on the coordinates of the second feature point within the second image, wherein the second feature point is projected onto the second feature spherical coordinates;
A step of matching the first feature point and the second feature point based on the first technician and the second technician; and
A step of determining the pose of the camera based on the second sphere model when the second feature point matches the first feature point.
To perform,
The step of matching the first feature point and the second feature point is:
A step of calculating an initial rotation and translation matrix for the second image;
A step of determining a first transformed spherical coordinate by projecting the first feature point of the first image onto the second spherical coordinate system based on the initial rotation and translation matrix;
A step of determining the first transformed image coordinate by projecting the first transformed spherical coordinate into the coordinate system of the second image; and
A step of matching the first feature point and the second feature point in the second image based on the first transformed image coordinates.
Including,
If the second feature point matches the first feature point, the step of determining the pose of the camera based on the second sphere model is:
A step of calculating a second reference spherical coordinate by projecting a reference feature point of the world coordinate system corresponding to the first feature point into the second spherical coordinate system;
a step of calculating a second difference between the second feature sphere coordinates and the second reference sphere coordinates; and
A step of generating an optimal rotation and translation matrix by adjusting the initial rotation and translation matrix so that the second difference is minimized.
Including,
Electronic devices.
제12항에 있어서,
상기 제2 구 모델을 생성하는 단계는,
상기 카메라의 위치를 중심으로 하는 미리 설정된 반경을 갖는 상기 제2 구 좌표계를 설정하는 단계;
상기 카메라의 캘리브레이션 정보 및 상기 카메라의 회전 및 이동 정보에 기초하여 상기 제2 구 좌표계의 중심점 및 상기 제2 특징점의 상기 제2 영상 내의 좌표 간의 제2 기준 벡터를 계산하는 단계; 및
상기 제2 기준 벡터를 상기 제2 구 좌표계 상에 투영함으로써 상기 제2 구 모델을 생성하는 단계
를 포함하는,
전자 장치.
In Article 12,
The step of generating the above second sphere model is:
A step of setting the second spherical coordinate system having a preset radius centered on the position of the camera;
A step of calculating a second reference vector between the center point of the second spherical coordinate system and the coordinates of the second feature point in the second image based on the calibration information of the camera and the rotation and movement information of the camera; and
A step of generating the second sphere model by projecting the second reference vector onto the second sphere coordinate system.
Including,
Electronic devices.
제13항에 있어서,
상기 캘리브레이션 정보는 상기 카메라의 내부 파라미터 및 렌즈의 왜곡 정도를 포함하는,
전자 장치.
In Article 13,
The above calibration information includes the internal parameters of the camera and the degree of distortion of the lens.
Electronic devices.
삭제delete 제12항에 있어서,
상기 제1 변환 영상 좌표에 기초하여 상기 제1 특징점 및 상기 제2 영상 내의 상기 제2 특징점을 매칭하는 단계는,
상기 제1 변환 영상 좌표를 포함하는 검색 범위(search range)를 상기 제2 영상 상에 설정하는 단계; 및
상기 검색 범위 내의 하나 이상의 특징점들 중 상기 제1 기술자에 대응하는 상기 제2 기술자를 결정하는 단계;
상기 제2 기술자를 갖는 상기 제2 특징점을 상기 제1 특징점과 매칭하는 단계
를 포함하는,
전자 장치.
In Article 12,
The step of matching the first feature point and the second feature point in the second image based on the first transformed image coordinates is:
A step of setting a search range including the first transformed image coordinates on the second image; and
A step of determining the second descriptor corresponding to the first descriptor among one or more feature points within the search range;
A step of matching the second feature point having the second descriptor with the first feature point.
Including,
Electronic devices.
제16항에 있어서,
상기 검색 범위 내의 하나 이상의 특징점들 중 상기 제1 기술자에 대응하는 상기 제2 기술자를 결정하는 단계는,
상기 검색 범위 내의 하나 이상의 특징점들의 기술자들의 각각과 상기 제1 기술자 간의 해밍 거리들을 계산하는 단계; 및
가장 작은 해밍 거리를 갖는 기술자를 상기 제2 기술자로 결정하는 단계
를 포함하는,
전자 장치.
In Article 16,
The step of determining the second descriptor corresponding to the first descriptor among one or more feature points within the search range is:
A step of calculating Hamming distances between each of the descriptors of one or more feature points within the search range and the first descriptor; and
A step of determining the descriptor with the smallest Hamming distance as the second descriptor
Including,
Electronic devices.
삭제delete 제12항에 있어서,
상기 프로그램은,
상기 카메라의 자세에 기초하여 차량의 경로를 생성하는 단계
를 더 수행하는,
전자 장치.
In Article 12,
The above program is,
Step of generating a vehicle path based on the attitude of the above camera
to perform more,
Electronic devices.
제12항에 있어서,
상기 프로그램은,
상기 제1 특징점 및 상기 제2 특징점의 매칭에 기초하여 비주얼 SLAM(visual simultaneous localization and mapping)의 맵을 갱신하는 단계
를 더 포함하는,
전자 장치.
In Article 12,
The above program is,
A step of updating a map of visual simultaneous localization and mapping (SLAM) based on matching of the first feature point and the second feature point.
Including more,
Electronic devices.
제12항에 있어서,
상기 전자 장치는, 자율 주행 차량 또는 ADAS(Advanced Driver Assistance Systems)을 지원하는 차량에 탑재되는,
전자 장치.
In Article 12,
The above electronic device is installed in a vehicle that supports autonomous vehicles or ADAS (Advanced Driver Assistance Systems).
Electronic devices.
KR1020210113922A 2021-08-27 2021-08-27 Method for determining camera posture and electronic device for the method KR102695440B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210113922A KR102695440B1 (en) 2021-08-27 2021-08-27 Method for determining camera posture and electronic device for the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210113922A KR102695440B1 (en) 2021-08-27 2021-08-27 Method for determining camera posture and electronic device for the method

Publications (2)

Publication Number Publication Date
KR20230031550A KR20230031550A (en) 2023-03-07
KR102695440B1 true KR102695440B1 (en) 2024-08-19

Family

ID=85512407

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210113922A KR102695440B1 (en) 2021-08-27 2021-08-27 Method for determining camera posture and electronic device for the method

Country Status (1)

Country Link
KR (1) KR102695440B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116962884B (en) * 2023-09-19 2024-03-15 北京凯视达科技股份有限公司 Display screen detection device, method and equipment, storage medium and electronic equipment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170347030A1 (en) * 2015-02-16 2017-11-30 Applications Solutions (Electronic and Vision) Ltd Method and device for stabilization of a surround view image

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3084719B1 (en) * 2013-12-19 2019-11-20 Apple Inc. Slam on a mobile device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170347030A1 (en) * 2015-02-16 2017-11-30 Applications Solutions (Electronic and Vision) Ltd Method and device for stabilization of a surround view image

Also Published As

Publication number Publication date
KR20230031550A (en) 2023-03-07

Similar Documents

Publication Publication Date Title
EP3627180B1 (en) Sensor calibration method and device, computer device, medium, and vehicle
EP3324332B1 (en) Method and system to predict vehicle traffic behavior for autonomous vehicles to make driving decisions
US11042157B2 (en) Lane/object detection and tracking perception system for autonomous vehicles
CN111532257B (en) Method and system for compensating for vehicle calibration errors
CN110345955B (en) Perception and planning collaboration framework for autopilot
EP3315388B1 (en) Spring system-based change lane approach for autonomous vehicles
CN113561963B (en) Parking method and device and vehicle
US10409280B2 (en) Control dominated planning and control system for autonomous driving vehicles
US10369993B2 (en) Method and device for monitoring a setpoint trajectory to be traveled by a vehicle for being collision free
CN110390240B (en) Lane post-processing in an autonomous vehicle
US10909377B2 (en) Tracking objects with multiple cues
US20210158547A1 (en) Coordinate gradient method for point cloud registration for autonomous vehicles
US20220119007A1 (en) Method and Device for Operating a Robot with Improved Object Detection
CN107728646B (en) Method and system for automatically controlling camera of automatic driving vehicle
CN111201420A (en) Information processing device, self-position estimation method, program, and moving object
KR20220150212A (en) Method and assistance device for supporting driving operation of a motor vehicle and motor vehicle
CN112298168A (en) Parking space detection method and device and automatic parking method and device
KR102695440B1 (en) Method for determining camera posture and electronic device for the method
US20230306639A1 (en) Vehicle and control method thereof
KR101875517B1 (en) Method and apparatus for processing a image
US10788839B2 (en) Planning-control collaboration design for low cost autonomous driving technology
US20240371172A1 (en) Object detection method and electronic device for performing same method
KR102614325B1 (en) Electronic device for analyzing an accident event of vehicle and operating method thereof
WO2022034815A1 (en) Vehicle surroundings recognition device
US20230266451A1 (en) Online lidar-to-ground alignment

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right