KR20210099298A - 실외 3차원 지도 정보를 기반으로 비주얼 로컬리제이션을 제공하기 위한 전자 장치 및 그의 동작 방법 - Google Patents

실외 3차원 지도 정보를 기반으로 비주얼 로컬리제이션을 제공하기 위한 전자 장치 및 그의 동작 방법 Download PDF

Info

Publication number
KR20210099298A
KR20210099298A KR1020200012972A KR20200012972A KR20210099298A KR 20210099298 A KR20210099298 A KR 20210099298A KR 1020200012972 A KR1020200012972 A KR 1020200012972A KR 20200012972 A KR20200012972 A KR 20200012972A KR 20210099298 A KR20210099298 A KR 20210099298A
Authority
KR
South Korea
Prior art keywords
information
node
map information
pose
processor
Prior art date
Application number
KR1020200012972A
Other languages
English (en)
Other versions
KR102347232B1 (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 KR1020200012972A priority Critical patent/KR102347232B1/ko
Priority to US17/166,489 priority patent/US11514645B2/en
Publication of KR20210099298A publication Critical patent/KR20210099298A/ko
Application granted granted Critical
Publication of KR102347232B1 publication Critical patent/KR102347232B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/29Graphical models, e.g. Bayesian networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/84Arrangements for image or video recognition or understanding using pattern recognition or machine learning using probabilistic graphical models from image or video features, e.g. Markov models or Bayesian networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • G06V20/182Network patterns, e.g. roads or rivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/35Categorising the entire scene, e.g. birthday party or wedding scene
    • G06V20/38Outdoor scenes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Remote Sensing (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Probability & Statistics with Applications (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Processing Or Creating Images (AREA)

Abstract

다양한 실시예들에 따른 전자 장치 및 그의 동작 방법은, 실외 3차원 지도 정보를 기반으로 비주얼 로컬리제이션을 제공하기 위한 것으로, 실외 환경에 대한 2차원 이미지 정보를 획득하고, 2차원 이미지 정보를 기반으로, 3차원 지도 정보를 생성하고, 3차원 지도 정보를 기반으로, 실외 환경에서의 측위를 수행하도록 구성될 수 있다.

Description

실외 3차원 지도 정보를 기반으로 비주얼 로컬리제이션을 제공하기 위한 전자 장치 및 그의 동작 방법{ELECTRONIC DEVICE FOR PROVIDING VISUAL LOCALIZATION BASED ON OUTDOOR THREE-DIMENSION MAP INFORMATION AND OPERATING METHOD THEREOF}
다양한 실시예들은 실외 3차원 지도 정보를 기반으로 비주얼 로컬리제이션(visual localization; VL)을 제공하기 위한 전자 장치 및 그의 동작 방법에 관한 것이다.
일반적으로 비주얼 로컬리제이션은 실내 환경에서의 내비게이션을 제공하기 위해 제안되었다. 예를 들면, 로봇은 실내 환경에 대한 지도 정보를 이용하여 비주얼 로컬리제이션을 수행하고, 이를 통해 실내에서 이동할 수 있다. 현재, 비주얼 로컬리제이션을 실외 환경으로 확장시키기 위한 연구가 이루어지고 있다. 실외 환경에서의 비주얼 로컬리제이션을 위해서는, 실외 환경에 대한 3차원 지도 정보가 필요하다. 그런데, 실외 환경은 매우 넓기 때문에, 실외 환경에 대한 3차원 지도 정보를 생성하는 데 어려움이 있다. 즉 실외 환경에 대한 3차원 지도 정보를 생성하는 데, 많은 처리량과 긴 처리 시간이 요구된다.
다양한 실시예들은, 실외 환경에 대한 3차원 지도 정보를 기반으로 실외 환경에서의 비주얼 로컬리제이션을 제공하기 위한 전자 장치 및 그의 동작 방법을 제공한다.
다양한 실시예들은, 실외 환경에 대한 3차원 지도 정보를 생성하는 데 소요되는 처리량과 처리 시간을 줄일 수 있는 전자 장치 및 그의 동작 방법을 제공한다.
다양한 실시예들은, 실외 3차원 지도 정보를 기반으로 비주얼 로컬리제이션을 제공하기 위한 전자 장치 및 그의 동작 방법을 제공한다.
다양한 실시예들에 따른 전자 장치의 동작 방법은, 실외 환경에 대한 2차원 이미지 정보를 획득하는 동작, 상기 2차원 이미지 정보를 기반으로, 3차원 지도 정보를 생성하는 동작, 및 상기 3차원 지도 정보를 기반으로, 실외 환경에서의 측위를 수행하는 동작을 포함할 수 있다.
다양한 실시예들에 따른 전자 장치는, 메모리, 및 상기 메모리와 연결되고, 상기 메모리에 저장된 적어도 하나의 명령을 실행하도록 구성된 프로세서를 포함하고, 상기 프로세서는, 실외 환경에 대한 2차원 이미지 정보를 획득하고, 상기 2차원 이미지 정보를 기반으로, 3차원 지도 정보를 생성하고, 상기 3차원 지도 정보를 기반으로, 실외 환경에서의 측위를 수행하도록 구성될 수 있다.
다양한 실시예들에 따른 컴퓨터 프로그램은 컴퓨터 장치와 결합되어 비주얼 로컬리제이션 제공 방법을 상기 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 저장되며, 상기 비주얼 로컬리제이션 제공 방법은, 실외 환경에 대한 2차원 이미지 정보를 획득하는 동작, 상기 2차원 이미지 정보를 기반으로, 3차원 지도 정보를 생성하는 동작, 및 상기 3차원 지도 정보를 기반으로, 실외 환경에서의 측위를 수행하는 동작을 포함할 수 있다.
다양한 실시예들에 따르면, 전자 장치가 실외 환경에 대한 3차원 지도 정보를 생성함으로써, 실외 환경에서의 비주얼 로컬리제이션을 제공할 수 있다. 즉 전자 장치는 실외 환경에 대한 3차원 지도 정보를 기반으로, 실외 환경에서의 측위를 수행할 수 있다. 이 때 전자 장치가 실외 환경을 복수 개의 영역들로 분할하고, 영역들 각각에 대해, 3차원 지도 정보를 생성함으로써, 실외 환경에 대한 3차원 지도 정보를 생성하는 데 소요되는 처리량과 처리 시간이 감소될 수 있다. 아울러, 전자 장치가 인접한 영역들에 대한 포즈 정보를 고려하여, 영역들 각각에 대한 3차원 지도 정보를 생성함으로써, 영역들 사이의 경계에 대응하여, 왜곡이 최소화될 수 있다.
도 1은 다양한 실시예들에 따른 전자 장치를 도시하는 도면이다.
도 2a 및 도 2b는 다양한 실시예들에 따른 전자 장치에서 생성되는 3차원 지도 정보를 나타내는 도면들이다.
도 3은 다양한 실시예들에 따른 전자 장치의 동작 방법을 도시하는 도면이다.
도 4는 도 3의 3차원 지도 정보 생성 동작을 도시하는 도면이다.
도 5, 도 6 및 도 7은 도 3의 3차원 지도 정보 생성 동작을 설명하기 위한 도면들이다.
도 8은 도 4의 각 영역에 대한 3차원 지도 정보 생성 동작을 도시하는 도면이다.
이하, 본 문서의 다양한 실시예들이 첨부된 도면을 참조하여 설명된다.
다양한 실시예들은, 실외 3차원 지도 정보를 기반으로 비주얼 로컬리제이션(visual localization; VL)을 제공하기 위한 전자 장치 및 그의 동작 방법을 제공한다. 다양한 실시예들에 따르면, 전자 장치가 실외 환경에 대한 3차원 지도 정보를 생성함으로써, 실외 환경에서의 비주얼 로컬리제이션을 제공할 수 있다. 즉 전자 장치는 실외 환경에 대한 3차원 지도 정보를 기반으로, 실외 환경에서의 측위를 수행할 수 있다. 이 때 전자 장치는 실외 환경을 복수 개의 영역들로 분할하고, 영역들 각각에 대해, 3차원 지도 정보를 생성할 수 있다. 이를 통해, 전자 장치가 실외 환경에 대한 3차원 지도 정보를 생성하는 데 소요되는 처리량과 처리 시간이 감소될 수 있다. 아울러, 전자 장치는 인접한 영역들에 대한 포즈 정보를 고려하여, 영역들 각각에 대한 3차원 지도 정보를 생성할 수 있다. 이에 따라, 실외 환경에 대한 3차원 지도 정보에서 영역들 사이의 경계에 대응하여, 왜곡이 최소화될 수 있다.
도 1은 다양한 실시예들에 따른 전자 장치(100)를 도시하는 도면이다. 도 2a 및 도 2b는 다양한 실시예들에 따른 전자 장치(100)에서 생성되는 3차원 지도 정보를 나타내는 도면들이다.
도 1을 참조하면, 다양한 실시예들에 따른 전자 장치(100)는 통신 모듈(110), 입력 모듈(120), 출력 모듈(130), 메모리(140) 또는 프로세서(150) 중 적어도 어느 하나를 포함할 수 있다. 어떤 실시예에서, 전자 장치(100)의 구성 요소들 중 적어도 어느 하나가 생략될 수 있으며, 적어도 하나의 다른 구성 요소가 추가될 수 있다. 어떤 실시예에서, 전자 장치(100)의 구성 요소들 중 적어도 어느 두 개가 하나의 통합된 회로로 구현될 수 있다. 여기서, 전자 장치(100)는 서버 또는 전자 기기 중 적어도 어느 하나를 포함할 수 있다. 예를 들면, 전자 기기는 스마트폰(smart phone), 휴대폰, 내비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(personal digital assistants), PMP(portable multimedia player), 태블릿 PC, 게임 콘솔(game console), 웨어러블 디바이스(wearable device), IoT(internet of things) 디바이스, VR(virtual reality) 디바이스, AR(augmented reality) 디바이스 또는 로봇(robot) 중 적어도 어느 하나를 포함할 수 있다.
통신 모듈(110)은 전자 장치(100)에서 외부 장치(181, 183)와 통신을 수행할 수 있다. 통신 모듈(110)은 전자 장치(100)와 외부 장치(181, 183) 간 통신 채널을 수립하고, 통신 채널을 통해, 외부 장치(181, 183)와 통신을 수행할 수 있다. 여기서, 외부 장치(181, 183)는 위성, 서버 또는 전자 기기 중 적어도 어느 하나를 포함할 수 있다. 예를 들면, 전자 기기는 스마트폰, 휴대폰, 내비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA, PMP(portable multimedia player), 태블릿 PC, 게임 콘솔, 웨어러블 디바이스, IoT 디바이스, VR(virtual reality) 디바이스, AR 디바이스 또는 로봇 중 적어도 어느 하나를 포함할 수 있다. 통신 모듈(110)은 유선 통신 모듈 또는 무선 통신 모듈 중 적어도 어느 하나를 포함할 수 있다. 유선 통신 모듈은 외부 장치(181)와 유선으로 연결되어, 유선으로 통신할 수 있다. 무선 통신 모듈은 근거리 통신 모듈 또는 원거리 통신 모듈 중 적어도 어느 하나를 포함할 수 있다. 근거리 통신 모듈은 외부 장치(181)와 근거리 통신 방식으로 통신할 수 있다. 예를 들면, 근거리 통신 방식은, 블루투스(Bluetooth), 와이파이 다이렉트(WiFi direct), 또는 적외선 통신(IrDA; infrared data association) 등을 포함할 수 있다. 원거리 통신 모듈은 외부 장치(183)와 원거리 통신 방식으로 통신할 수 있다. 여기서, 원거리 통신 모듈은 네트워크(190)를 통해 외부 장치(183)와 통신할 수 있다. 예를 들면, 네트워크(190)는 셀룰러 네트워크, 인터넷, 또는 LAN(local area network)이나 WAN(wide area network)과 같은 컴퓨터 네트워크 등을 포함할 수 있다.
입력 모듈(120)은 전자 장치(100)의 적어도 하나의 구성 요소에 사용될 신호를 입력할 수 있다. 입력 모듈(120)은, 사용자가 전자 장치(100)에 직접적으로 신호를 입력하도록 구성되는 입력 장치 또는 주변 환경을 감지하여 신호를 발생하도록 구성되는 센서 장치 중 적어도 어느 하나를 포함할 수 있다. 예를 들면, 입력 장치는 마이크로폰(microphone), 마우스(mouse) 또는 키보드(keyboard) 중 적어도 어느 하나를 포함할 수 있다. 어떤 실시예에서, 센서 장치는 터치를 감지하도록 설정된 터치 회로(touch circuitry) 또는 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 센서 회로 중 적어도 어느 하나를 포함할 수 있다.
출력 모듈(130)은 전자 장치(100)의 외부로 정보를 출력할 수 있다. 출력 모듈(130)은, 정보를 시각적으로 출력하도록 구성되는 표시 장치 또는 정보를 오디오 신호로 출력할 수 있는 오디오 출력 장치 중 적어도 어느 하나를 포함할 수 있다. 예를 들면, 표시 장치는 디스플레이, 홀로그램 장치 또는 프로젝터 중 적어도 어느 하나를 포함할 수 있다. 일 예로, 표시 장치는 입력 모듈(120)의 터치 회로 또는 센서 회로 중 적어도 어느 하나와 조립되어, 터치 스크린으로 구현될 수 있다. 예를 들면, 오디오 출력 장치는 스피커 또는 리시버 중 적어도 어느 하나를 포함할 수 있다.
메모리(140)는 전자 장치(100)의 적어도 하나의 구성 요소에 의해 사용되는 다양한 데이터를 저장할 수 있다. 예를 들면, 메모리(140)는 휘발성 메모리 또는 비휘발성 메모리 중 적어도 어느 하나를 포함할 수 있다. 데이터는 적어도 하나의 프로그램 및 이와 관련된 입력 데이터 또는 출력 데이터를 포함할 수 있다. 프로그램은 메모리(140)에 적어도 하나의 명령을 포함하는 소프트웨어로서 저장될 수 있으며, 운영 체제, 미들 웨어 또는 어플리케이션 중 적어도 어느 하나를 포함할 수 있다.
프로세서(150)는 메모리(140)의 프로그램을 실행하여, 전자 장치(100)의 적어도 하나의 구성 요소를 제어할 수 있다. 이를 통해, 프로세서(150)는 데이터 처리 또는 연산을 수행할 수 있다. 이 때 프로세서(150)는 메모리(140)에 저장된 명령을 실행할 수 있다.
다양한 실시예들에 따르면, 프로세서(150)는 실외 3차원 지도 정보를 기반으로 비주얼 로컬리제이션을 제공할 수 있다. 즉 프로세서(150)는 실외 3차원 지도 정보를 기반으로, 실외 환경에서의 측위(localization)를 수행할 수 있다. 이를 위해, 실외 환경에 대한 3차원 지도 정보가 요구될 수 있다. 즉 프로세서(150)는 3차원 지도 정보를 메모리(140)에 저장할 수 있다. 그리고, 프로세서(150)는 필요 시에, 3차원 지도 정보를 기반으로, 측위를 수행할 수 있다.
프로세서(150)는 실외 환경에 대한 2차원 이미지 정보를 기반으로, 3차원 지도 정보를 생성할 수 있다. 예를 들면, 실외 환경은 특정 지역으로 정의될 수 있다. 프로세서(150)는 실외 환경에 대한 스캐닝을 통해, 2차원 이미지 정보를 획득할 수 있다. 이 때 2차원 이미지 정보는 복수 개의 거리뷰 이미지들과 거리뷰 이미지들 각각에 대한 포즈(pose) 정보를 포함할 수 있다. 여기서, 포즈 정보는 위치, 예컨대 지피에스(GPS; global positioning system) 위치, 및 포즈, 예컨대 3축 위치 값들과 3축 방향 값들을 포함할 수 있다. 예를 들면, 프로세서(150)는 사전에 2차원 이미지 정보를 메모리(140)에 저장하고, 필요 시에, 메모리(140)로부터 2차원 이미지 정보를 획득할 수 있다. 그리고, 프로세서(150)는 SfM(structure from motion) 알고리즘을 이용하여, 2차원 이미지 정보를 기반으로, 3차원 지도 정보를 생성할 수 있다.
프로세서(150)는 실외 환경을 복수 개의 영역들로 분할하고, 영역들 각각에 대해, 2차원 이미지 정보를 기반으로, 3차원 지도 정보를 생성할 수 있다. 여기서, 프로세서(150)는 미리 정해진 사이즈 및 미리 정해진 형상으로 영역들을 분할할 수 있다. 영역들의 형상은 다각형, 예컨대 사각형 또는 육각형으로 정해질 수 있다. 일 예로, 영역들은 그리드 형태로 배열될 수 있다. 이를 통해, 프로세서(150)는 영역들 각각에 대해, 거리뷰 이미지들과 거리뷰 이미지들 각각에 대한 포즈 정보를 이용하여, 3차원 지도 정보를 생성할 수 있다. 이 때 프로세서(150)는 영역들 각각에 대해, SfM 알고리즘을 이용하여, 3차원 지도 정보를 생성할 수 있다. 예를 들면, 영역들 중 어느 하나에 대한 3차원 지도 정보가, 도 2a 또는 도 2b에 도시된 바와 같이 생성될 수 있다. 여기서, 거리뷰 이미지들 각각에 대한 포즈 정보를 기반으로, 영역들 각각에 대한 3차원 지도 정보의 포즈 및 3차원 포인트가 결정될 수 있다.
프로세서(150)가 SfM 알고리즘을 이용하여, 전체적인 실외 환경에 대한 3차원 지도 정보를 한 번에 생성하는 데, 높은 처리량과 긴 처리 시간이 요구될 수 있다. 이는, 실외 환경이 매우 넓고, 그에 따라 2차원 이미지 정보의 양이 매우 많기 때문일 수 있다. 이러한 이유로, 프로세서(150)는 실외 환경을 복수 개의 영역들로 분할하고, 영역들 각각에 대해, 3차원 지도 정보를 생성함으로써, 프로세서(150)에 요구되는 처리량과 처리 시간이 감소될 수 있다. 다만, 영역들 각각에 대한 3차원 지도 정보를 전체적인 실외 환경에 대한 3차원 지도 정보로 결합하는 경우, 영역들 사이의 경계에 대응하여, 왜곡이 발생될 수 있다. 이는, 영역들 각각에 대한 포즈 정보가 다르기 때문일 수 있다. 이러한 문제점을 방지하기 위해, 프로세서(150)는 영역들 각각에 대한 3차원 지도 정보를 생성하는 데, 인접한 다른 영역에 대한 포즈 정보를 추가로 고려할 수 있다. 이를 통해, 영역들 각각에 대한 3차원 지도 정보를 전체적인 실외 환경에 대한 3차원 지도 정보로 결합하는 경우, 영역들 사이의 경계에 대응하여, 왜곡이 최소화될 수 있다.
도 3은 다양한 실시예들에 따른 전자 장치(100)의 동작 방법을 도시하는 도면이다.
도 3을 참조하면, 전자 장치(100)는 310 동작에서 실외 환경에 대한 2차원 이미지 정보를 획득할 수 있다. 프로세서(150)는 실외 환경에 대한 스캐닝을 통해, 2차원 이미지 정보를 획득할 수 있다. 이 때 2차원 이미지 정보는 복수 개의 거리뷰 이미지들과 거리뷰 이미지들 각각에 대한 포즈 정보를 포함할 수 있다. 여기서, 포즈 정보는 위치, 예컨대 지피에스(GPS) 위치, 및 포즈, 예컨대 3축 위치 값들과 3축 방향 값들을 포함할 수 있다. 예를 들면, 프로세서(150)는 사전에 2차원 이미지 정보를 메모리(140)에 저장할 수 있다. 그리고, 프로세서(150)는 메모리(140)로부터 2차원 이미지 정보를 획득할 수 있다.
전자 장치(100)는 320 동작에서 2차원 이미지 정보를 기반으로, 실외 환경에 대한 3차원 지도 정보를 생성할 수 있다. 프로세서(150)는 2차원 이미지 정보를 기반으로, 3차원 지도 정보를 생성할 수 있다. 프로세서(150)는 SfM 알고리즘을 이용하여, 2차원 이미지 정보를 기반으로, 3차원 지도 정보를 생성할 수 있다. 이에 대해, 도 4, 도 5, 도 6 및 도 7을 참조하여, 보다 상세하게 후술될 것이다.
도 4는 도 3의 3차원 지도 정보 생성 동작을 도시하는 도면이다. 도 5, 도 6 및 도 7은 도 3의 3차원 지도 정보 생성 동작을 설명하기 위한 도면들이다.
도 4를 참조하면, 전자 장치(100)는 410 동작에서 실외 환경을 복수 개의 영역(510)들로 분할할 수 있다. 프로세서(150)는 실외 환경을 미리 정해진 사이즈 및 미리 정해진 형상의 영역(510)들로 분할할 수 있다. 영역(510)들의 형상은 다각형, 예컨대 사각형 또는 육각형으로 정해질 수 있다. 일 예로, 영역(510)들은 그리드 형태로 배열될 수 있다. 이를 통해, 영역(510)들 각각에 대해, 제 1 영역(511)과 복수 개의 제 2 영역(513)들이 결정될 수 있다. 즉 모든 영역(510)들이 각각 제 1 영역(511)로 결정될 수 있으며, 제 1 영역(511)을 중심으로, 제 1 영역(511)에 인접한 제 2 영역(513)들이 결정될 수 있다. 예를 들면, 도 5에 도시된 바와 같이 영역(510)들의 형상은 사각형이고, 영역(510)들이 그리드 형태로 배열될 수 있다. 이러한 경우, 영역(510)들로부터, 제 1 영역(511)과 제 1 영역(511)에 대한 아홉 개의 제 2 영역(513)들이 결정될 수 있다.
전자 장치(100)는 420 동작에서 각 영역(510)의 노드(node)(520)를 경계 노드(721) 또는 비경계 노드(723)로 구분할 수 있다. 프로세서(150)는 영역(510)들 각각에서, 적어도 하나의 노드(520)를 검출할 수 있다. 프로세서(150)는 2차원 이미지 정보를 기반으로, 영역(510)들 각각에서, 노드(520)를 검출할 수 있다. 이 때 프로세서(150)는 영역(510)들 각각에 대한 거리뷰 이미지들을 검출하고, 각 거리뷰 이미지에 대한 포즈 정보를 기반으로 노드(520)를 검출할 수 있다. 이를 통해, 프로세서(150)는 노드(520)를 검출하면서, 각 노드(520)의 포즈를 검출할 수 있다. 예를 들면, 도 5에 도시된 바와 같이, 복수 개의 노드(520)들이 제 1 영역(511)과 제 2 영역(513)들에 그래프(graph) 구조로 분포되며, 복수 개의 엣지(edge)(530)들을 통해 연결될 수 있다. 각 엣지(530)는 제 1 영역(511) 내에서 노드(520)들을 연결할 수 있으며, 제 1 영역(511)의 노드(520)와 제 2 영역(513)의 노드를 연결할 수 있다. 그리고, 프로세서(150)는 제 1 영역(511)에 대해, 각 노드(520)를 경계 노드(721) 또는 비경계 노드(723)로 구분할 수 있다. 제 1 영역(511)의 노드(520)가 제 2 영역(513)의 노드(520)로부터 미리 정해진 거리 이내에 존재하면, 프로세서(150)는 제 1 영역(511)의 노드(520)를 경계 노드(721)로 구분할 수 있다. 이를 기반으로, 제 2 영역(513)의 대응하는 노드(521)도 제 2 영역(513)의 경계 노드(721)로 구분될 수 있다. 한편, 제 1 영역(511)의 노드(520)가 제 2 영역(513)의 노드(520)로부터 미리 정해진 거리 이내에 존재하지 않으면, 프로세서(150)는 제 1 영역(511)의 노드(520)를 비경계 노드(723)로 구분할 수 있다. 예를 들면, 도 7에 도시된 바와 같이, 제 1 영역(511)의 노드(520)들이 경계 노드(721)들과 비경계 노드(723)들로 구분될 수 있다.
전자 장치(100)는 430 동작에서 경계 노드(721)와 비경계 노드(723)에 상이한 신뢰도를 적용할 수 있다. 프로세서(150)는 경계 노드(721)에 제 1 신뢰도를 적용하고, 비경계 노드(723)에 제 2 신뢰도를 적용할 수 있다. 이 때 제 2 신뢰도가 제 1 신뢰도 보다 낮을 수 있다. 일 실시예에 따르면, 프로세서(150)는 경계 노드(721)와 비경계 노드(723)에 상이한 가중치(weight)를 부여할 수 있다. 프로세서(150)는 경계 노드(721)에 제 1 신뢰도에 대응하는 제 1 가중치를 부여하고, 비경계 노드(723)에 제 2신뢰도에 대응하는 제 2 가중치를 부여할 수 있다. 여기서, 신뢰도 또는 가중치는 제 1 영역(511)의 노드(520)와 제 2 영역(513)의 노드(520) 사이의 상관도와 관련될 수 있다. 즉 제 1 영역(511)의 경계 노드(721)는 제 2 영역(513)의 경계 노드(721)와 인접하므로, 상관도가 높고, 이로 인해, 신뢰도 또는 가중치가 상대적으로 높을 수 있다.
전자 장치(100)는 440 동작에서 각 영역(510)에 대해, 노드(520)를 기반으로 3차원 지도 정보를 생성할 수 있다. 프로세서(150)는 SfM 알고리즘을 이용하여, 각 영역(510)에 대한 3차원 지도 정보를 생성할 수 있다. 프로세서(150)는 각 영역(510)에 대해, 각 노드(520)의 신뢰도에 따라, 3차원 지도 정보를 생성할 수 있다. 이 때 프로세서(150)는 경계 노드(721)에 대해 제 1 신뢰도에 따라, 그리고 비경계 노드(723)에 대해 제 2 신뢰도에 따라, 3차원 지도 정보를 생성할 수 있다. 구체적으로, 프로세서(150)는 각 노드(520)의 신뢰도를 기반으로, 각 노드(520)에 대한 포즈 정보를 추정할 수 있다. 여기서, 프로세서(150)는 각 영역(510)에서의 노드(520)의 포즈 정보를 기반으로, 각 엣지(530)의 오차를 검출할 수 있다. 그리고, 프로세서(150)는 엣지(530)의 오차 및 노드(510)의 신뢰도를 기반으로, 노드(520)의 포즈 정보를 추정할 수 있다. 이에 따라, 프로세서(150)는 각 노드(520)에 대한 포즈 정보를 이용하여, 3차원 지도 정보를 생성할 수 있다. 이 때 각 노드(520)에 대한 포즈 정보에 따라, 노드(520)들의 그래프 구조가 최적화될 수 있다. 이를 통해, 실외 환경에 대한 최적화된 3차원 지도 정보가 획득될 수 있다. 이에 대해, 도 8을 참조하여, 보다 상세하게 후술될 것이다.
다양한 실시예들에 따르면, 영역(510)들 각각에 대한 3차원 지도 정보를 전체적인 실외 환경에 대한 3차원 지도 정보로 결합하는 경우, 영역(510)들 사이의 경계에 대응하여, 왜곡이 최소화될 수 있다. 예를 들면, 도 5에 도시된 바와 같이 제 1 영역(511)과 제 2 영역(513)들에 그래프 구조로 분포되는 모든 노드(520)들에 동일한 신뢰도를 적용하여 3차원 지도 정보를 생성하는 경우, 도 6에 도시된 바와 같이 제 1 영역(511)과 제 2 영역(513)들 사이의 경계에 대응하여, 왜곡이 발생될 수 있다. 이는, 영역(510)들 각각에 대한 포즈 정보가 다르기 때문일 수 있다. 이를 통해, 제 1 영역(511)에 대한 3차원 지도 정보와 제 2 영역(513)들 중 적어도 어느 하나에 대한 3차원 지도 정보 사이에 부정합이 발생될 수 있다. 이에 반해, 도 5에 도시된 바와 같이 제 1 영역(511)과 제 2 영역(513)들에 그래프 구조로 분포되는 경계 노드(721)와 비경계 노드(723)에 상이한 신뢰도를 적용하여 3차원 지도 정보를 생성함으로써, 도 7에 도시된 바와 같이 제 1 영역(511)과 제 2 영역(513)들 사이의 경계에 대응하여, 왜곡이 최소화될 수 있다. 이는, 제 1 영역(511)의 경계 노드(721)의 포즈 정보가 제 2 영역(513)들 중 적어도 어느 하나의 경계 노드(721)의 포즈 정보를 기반으로 추정되기 때문일 수 있다. 즉 제 1 영역(511)에 대한 3차원 지도 정보와 제 2 영역(513)들 중 적어도 어느 하나에 대한 3차원 지도 정보 사이에서 정합이 이루어질 수 있다.
도 8은 도 4의 각 영역(510)에 대한 3차원 지도 정보 생성 동작을 도시하는 도면이다.
도 8을 참조하면, 전자 장치(100)는 810 동작에서 각 영역(510)의 포즈 정보를 확인할 수 있다. 프로세서(150)는 각 영역(510)에 대한 2차원 이미지 정보를 기반으로, 각 영역(510)의 포즈 정보를 확인할 수 있다. 이 때 2차원 이미지 정보는 각 영역(510)에 대한 적어도 하나의 거리뷰 이미지와 각 거리뷰 이미지에 대한 포즈 정보를 포함할 수 있다. 이를 통해, 프로세서(150)는 각 영역(510)의 포즈 정보로부터 각 영역(510) 내에서 각 노드(520)의 포즈 정보, 즉 제 1 포즈 정보를 결정할 수 있다. 여기서, 제 1 포즈 정보는 각 노드(520)에 대한 제 1 위치 및 제 1 포즈를 포함할 수 있다. 그리고, 프로세서(150)는 각 거리뷰 이미지에 대해서 특징점을 검출하고, 적어도 두 개의 거리뷰 이미지들 사이에서 특징점 매칭을 수행하여, 그 연관 관계를 얻을 수 있다. 또한, 프로세서(150)는 삼각측량(triangulation) 기법을 통해, 적어도 두 개의 거리뷰 이미지들의 포즈 정보를 기반으로, 3차원 포인트를 생성하고, 이로부터 제 1 3차원 포인트 정보를 획득할 수 있다.
전자 장치(100)는 820 동작에서 각 노드(520)에 연결된 적어도 하나의 엣지(530)의 오차(error)(
Figure pat00001
)를 각각 검출할 수 있다. 이 때 각 엣지(530)의 오차는 포즈 오차 또는 프로젝션 오차 중 적어도 어느 하나를 포함할 수 있다. 일 실시예에 따르면, 프로세서(150)는, 하기 [수학식 1]과 같이 각 노드(520)의 제 1 포즈를 기반으로, 각 엣지(530)의 포즈 오차를 검출할 수 있다. 다른 실시예에 따르면, 프로세서(150)는, 하기 [수학식 3]과 같이 각 노드(520)의 제 1 포즈를 기반으로, 각 엣지(530)의 프로젝션 오차를 검출할 수 있다.
Figure pat00002
여기서,
Figure pat00003
는 각 노드(520)의 포즈, 즉 제 1 포즈를 나타내고,
Figure pat00004
는 각 노드(520)에 연결된 다른 노드(520)의 포즈를 나타내고,
Figure pat00005
는 엣지(725)로 연결된 노드(520)들의 포즈들 사이의 차이와 관련되고,
Figure pat00006
은 회전 행렬(rotation matrix)를 나타내고,
Figure pat00007
는 병진 벡터(translation vector)를 나타내며,
Figure pat00008
는 벡터화 함수(vectorize function)를 나타낼 수 있다. 예를 들면,
Figure pat00009
Figure pat00010
Figure pat00011
에 따른 변환 행렬(transformation matrix)을 1×6 벡터로 변경하는 함수로서, 주로, 하기 [수학식 2]와 같이 정의되는 스크류 변위(screw displacement) 기법을 사용할 수 있다.
Figure pat00012
Figure pat00013
여기서,
Figure pat00014
는 변환 행렬을 나타내고,
Figure pat00015
는 트위스트 행렬(twist matrix)을 나타내고,
Figure pat00016
는 트위스트 벡터(twist vector)를 나타내고,
Figure pat00017
는 회전 속도(rotation velocity)를 나타내고,
Figure pat00018
는 병진 속도(translation velocity)를 나타낼 수 있다.
Figure pat00019
여기서,
Figure pat00020
는 특징점 매칭을 통해 생성된 3차원 포인트를 나타내고,
Figure pat00021
는 각 노드(520)의 포즈와 관련된 카메라 행렬(camera matrix)을 나타내고,
Figure pat00022
는, 생성된 3차원 포인트가 2차원으로 프로젝션 될 때의 대응되는 픽셀 좌표(pixel coordinate)를 나타낼 수 있다.
전자 장치(100)는 830 동작에서 각 노드(520)의 신뢰도를 기반으로, 각 노드(520)에 연결된 엣지(530)의 오차를 합산할 수 있다. 프로세서(150)는 하기 [수학식 1]과 같은 그래프 오차 함수(graph error function)을 기반으로, 그래프 구조에 따라 각 노드(520)에 연결된 적어도 하나의 엣지(530)에 대한 오차를 합산할 수 있다. 예를 들면, 각 노드(520)의 신뢰도에 따라, 하기 [수학식 4]와 같은 그래프 오차 함수에서의 공분산(covariance)이 다르게 설정될 수 있다. 이 때 경계 노드(721)에 대해 설정되는 공분산이 비경계 노드(723)에 대해 설정되는 공분산 보다 작을 수 있다. 여기서, 프로세서(150)는 경계 노드(721)에 대해 제 1 신뢰도에 대응하는 제 1 공분산을 적용하고, 비경계 노드(723)에 대해 제 2 신뢰도에 대응하는 제 2 공분산을 적용할 수 있다. 즉 제 1 공분산이 제 2 공분산 보다 작을 수 있다.
Figure pat00023
여기서,
Figure pat00024
는 그래프 오차 함수를 나타내고,
Figure pat00025
는 각 엣지(530)의 오차를 나타내고,
Figure pat00026
는 공분산을 나타낼 수 있다.
전자 장치(100)는 840 동작에서 각 노드(520)에 대한 포즈 정보 및 3차원 포인트 정보를 추정할 수 있다. 프로세서(150)는 하기 [수학식 5]와 같이 엣지(530)들에 대한 오차들의 합산 결과가 감소되는 방향으로, 각 노드(510)에 대한 포즈 정보, 즉 제 2 포즈 정보를 추정할 수 있다. 여기서, 제 2 포즈 정보는 각 노드(520)에 대한 제 2 위치 및 제 2 포즈를 포함할 수 있다. 또한, 프로세서(150)는 하기 [수학식 5]와 같이 엣지(530)들에 대한 오차들의 합산 결과가 감소되는 방향으로, 각 노드(510)에 대한 3차원 포인트를 최적화하여, 각 노드(510)에 대한 3차원 포인트 정보, 즉 제 2 3차원 포인트 정보를 추정할 수 있다. 예를 들면, 프로세서(150)는 가우스-뉴턴(Gauss-Newton) 방식을 통해, 재귀적으로(recursively) 포즈 정보 및 3차원 포인트 정보를 추정할 수 있다.
Figure pat00027
여기서,
Figure pat00028
,
Figure pat00029
은 각 노드(520)에 대한 포즈 정보를 나타내고,
Figure pat00030
는 각 노드(520)에 대한 포즈, 즉 제 2 포즈를 나타내고,
Figure pat00031
는 추정된 3차원 포인트를 나타낼 수 있다.
전자 장치(100)는 850 동작에서 각 노드(520)에 대한 포즈 정보 및 3차원 포인트 정보를 이용하여, 각 영역(510)에 대한 3차원 지도 정보를 생성할 수 있다. 프로세서(150)는 각 노드(520)에 대한 제 2 포즈 정보 및 제 2 3차원 포인트 정보를 이용하여, 각 영역(510)에 대한 3차원 지도 정보를 생성할 수 있다. 이 때 프로세서(150)는 메모리(140)에 각 영역(510)에 대한 3차원 지도 정보를 저장할 수 있다.
이 후 전자 장치(100)는 도 3으로 리턴하여, 330 동작으로 진행할 수 있다. 다시 도 3을 참조하면, 전자 장치(100)는 330 동작에서 3차원 지도 정보를 기반으로, 실외 환경에서의 비주얼 로컬리제이션을 제공할 수 있다. 프로세서(150)는 3차원 지도 정보를 기반으로, 측위를 수행할 수 있다. 일 실시예에 따르면, 프로세서(150)는 외부 장치(181, 183)로부터 수신되는 쿼리 이미지(query image)에 대응하여, 측위를 수행할 수 있다. 프로세서(150)는 통신 모듈(110)을 통해, 외부 장치(181, 183)로부터 쿼리 이미지를 수신할 수 있다. 프로세서(150)는 쿼리 이미지를 기반으로, 복수 개의 영역(510)들 중 어느 하나에 대한 3차원 지도 정보를 검출할 수 있다. 이 때 프로세서(150)는 딥러닝(deep learning) 모델을 통해 쿼리 이미지로부터 특징 정보를 추출하고, 특징 정보를 이용하여 3차원 지도 정보를 검출할 수 있다. 그리고, 프로세서(150)는 3차원 지도 정보에서 쿼리 이미지에 대응하는 지점의 위치를 추정할 수 있다.
다양한 실시예들에 따른 전자 장치(100)의 동작 방법은, 실외 환경에 대한 2차원 이미지 정보를 획득하는 동작, 2차원 이미지 정보를 기반으로, 3차원 지도 정보를 생성하는 동작, 및 3차원 지도 정보를 기반으로, 실외 환경에서의 측위를 수행하는 동작을 포함할 수 있다.
다양한 실시예들에 따르면, 3차원 지도 정보를 생성하는 동작은, 실외 환경을 복수 개의 영역(510)들로 분할하는 동작, 및 영역(510)들 각각에 대해, 3차원 지도 정보를 생성하는 동작을 포함할 수 있다.
다양한 실시예들에 따르면, 영역(510)들 각각에 대해, 3차원 지도 정보를 생성하는 동작은, 영역(510)들 각각에서, 적어도 하나의 노드(520)를 경계 노드(721) 또는 비경계 노드(723)로 구분하는 동작, 경계 노드(721)와 비경계 노드(723)에 상이한 신뢰도를 적용하는 동작, 및 노드(520)를 기반으로, 3차원 지도 정보를 생성하는 동작을 포함할 수 있다.
다양한 실시예들에 따르면, 노드(520)를 기반으로, 3차원 지도 정보를 생성하는 동작은, SfM 알고리즘을 이용하여, 3차원 지도 정보를 생성하는 동작을 포함할 수 있다.
다양한 실시예들에 따르면, 노드(520)를 기반으로, 3차원 지도 정보를 생성하는 동작은, 노드(520) 각각의 포즈 정보를 이용하여, 3차원 지도 정보를 생성하는 동작을 포함할 수 있다.
다양한 실시예들에 따르면, 노드(520) 각각의 포즈 정보를 이용하여, 3차원 지도 정보를 생성하는 동작은, 신뢰도를 기반으로, 노드(520)와 연결된 적어도 하나의 엣지(530)의 오차를 검출하는 동작, 오차를 기반으로, 노드(520)의 포즈 정보를 추정하는 동작, 오차를 기반으로, 노드(520)의 3차원 포인트 정보를 추정하는 동작, 및 포즈 정보 및 3차원 포인트 정보를 이용하여, 3차원 지도 정보를 생성하는 동작을 포함할 수 있다.
다양한 실시예들에 따르면, 노드(520) 각각의 포즈 정보를 이용하여, 3차원 지도 정보를 생성하는 동작은, 2차원 이미지 정보를 기반으로, 노드(520)의 제 1 포즈 정보를 확인하는 동작을 더 포함할 수 있다.
다양한 실시예들에 따르면, 신뢰도를 기반으로, 노드(520)와 연결된 적어도 하나의 엣지(530)의 오차를 검출하는 동작은, 제 1 포즈 정보를 기반으로, 노드(520)와 연결된 적어도 하나의 엣지(530)의 오차를 검출하는 동작, 및 신뢰도를 이용하여, 오차를 합산하는 동작을 포함할 수 있다.
다양한 실시예들에 따르면, 오차를 기반으로, 노드(520)의 포즈 정보를 추정하는 동작은, 오차가 감소되는 제 2 포즈 정보를 추정하는 동작을 포함할 수 있다.
다양한 실시예들에 따르면, 포즈 정보를 이용하여, 3차원 지도 정보를 생성하는 동작은, 제 2 포즈 정보를 이용하여, 3차원 지도 정보를 생성하는 동작을 포함할 수 있다.
다양한 실시예들에 따르면, 2차원 이미지 정보는, 영역(510)들 각각에 대한 복수 개의 거리뷰 이미지들을 포함할 수 있다.
다양한 실시예들에 따른 전자 장치(100)는, 메모리(140), 및 메모리(140)와 연결되고, 메모리(140)에 저장된 적어도 하나의 명령을 실행하도록 구성된 프로세서(150)를 포함할 수 있다.
다양한 실시예들에 따르면, 프로세서(150)는, 실외 환경에 대한 2차원 이미지 정보를 획득하고, 2차원 이미지 정보를 기반으로, 3차원 지도 정보를 생성하고, 3차원 지도 정보를 기반으로, 실외 환경에서의 측위를 수행하도록 구성될 수 있다.
다양한 실시예들에 따르면, 프로세서(150)는, 실외 환경을 복수 개의 영역(510)들로 분할하고, 영역(510)들 각각에 대해, 3차원 지도 정보를 생성하도록 구성될 수 있다.
다양한 실시예들에 따르면, 프로세서(150)는, 영역(510)들 각각에서, 적어도 하나의 노드(520)를 경계 노드(721) 또는 비경계 노드(723)로 구분하고, 경계 노드(721)와 비경계 노드(723)에 상이한 신뢰도를 적용하고, 노드를 기반으로, 3차원 지도 정보를 생성하도록 구성될 수 있다.
다양한 실시예들에 따르면, 프로세서(150)는, SfM(structure from motion) 알고리즘을 이용하여, 3차원 지도 정보를 생성하도록 구성될 수 있다.
다양한 실시예들에 따르면, 프로세서(150)는, 노드(520) 각각의 포즈 정보를 이용하여, 3차원 지도 정보를 생성하도록 구성될 수 있다.
다양한 실시예들에 따르면, 프로세서(150)는, 신뢰도를 기반으로, 노드(520)와 연결된 적어도 하나의 엣지(530)의 오차를 검출하고, 오차를 기반으로, 노드(520)의 포즈 정보 및 3차원 포인트 정보를 추정하고, 포즈 정보 및 3차원 포인트 정보를 이용하여, 3차원 지도 정보를 생성하도록 구성될 수 있다.
다양한 실시예들에 따르면, 프로세서(150)는, 2차원 이미지 정보를 기반으로, 노드(520)의 제 1 포즈 정보를 확인하도록 구성될 수 있다.
다양한 실시예들에 따르면, 프로세서(150)는, 제 1 포즈 정보를 기반으로, 노드(520)와 연결된 적어도 하나의 엣지(530)의 오차를 검출하고, 신뢰도를 이용하여, 오차를 합산하도록 구성될 수 있다.
다양한 실시예들에 따르면, 프로세서(150)는, 오차가 감소되는 제 2 포즈 정보를 추정하고, 제 2 포즈 정보를 이용하여, 3차원 지도 정보를 생성하도록 구성될 수 있다.
다양한 실시예들에 따르면, 2차원 이미지 정보는, 영역(510)들 각각에 대한 복수 개의 거리뷰 이미지들을 포함할 수 있다.
본 문서의 다양한 실시예들은 컴퓨터 장치(예: 전자 장치(100))에 의해 읽을 수 있는 기록 매체(storage medium)(예: 메모리(140))에 저장된 하나 이상의 명령들을 포함하는 컴퓨터 프로그램으로서 구현될 수 있다. 예를 들면, 컴퓨터 장치의 프로세서(예: 프로세서(150))는, 기록 매체로부터 저장된 하나 이상의 명령들 중 적어도 하나를 호출하고, 그것을 실행할 수 있다. 이것은 컴퓨터 장치가 호출된 적어도 하나의 명령에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 하나 이상의 명령들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 컴퓨터 장치로 읽을 수 있는 기록 매체는, 비일시적(non-transitory) 기록 매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 기록 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 기록 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
다양한 실시예들에 따른 컴퓨터 프로그램은, 컴퓨터 장치와 결합되어 비주얼 로컬리제이션(visual localization) 제공 방법을 상기 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 저장될 수 있다.
다양한 실시예들에 따르면, 비주얼 로컬리제이션 제공 방법은, 실외 환경에 대한 2차원 이미지 정보를 획득하는 동작, 2차원 이미지 정보를 기반으로, 3차원 지도 정보를 생성하는 동작, 및 3차원 지도 정보를 기반으로, 실외 환경에서의 측위를 수행하는 동작을 포함할 수 있다.
다양한 실시예들에 따르면, 전자 장치(100)가 실외 환경에 대한 3차원 지도 정보를 생성함으로써, 실외 환경에서의 비주얼 로컬리제이션을 제공할 수 있다. 즉 전자 장치(100)는 실외 환경에 대한 3차원 지도 정보를 기반으로, 실외 환경에서의 측위를 수행할 수 있다. 이 때 전자 장치(100)가 실외 환경을 복수 개의 영역(510)들로 분할하고, 영역(510)들 각각에 대해, 3차원 지도 정보를 생성함으로써, 실외 환경에 대한 3차원 지도 정보를 생성하는 데 소요되는 처리량과 처리 시간이 감소될 수 있다. 아울러, 전자 장치(100)가 인접한 영역(510)들에 대한 포즈 정보를 고려하여, 영역(510)들 각각에 대한 3차원 지도 정보를 생성함으로써, 영역(510)들 사이의 경계에 대응하여, 왜곡이 최소화될 수 있다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성 요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및/또는 B 중 적어도 하나", "A, B 또는 C" 또는 "A, B 및/또는 C 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", "첫째" 또는 "둘째" 등의 표현들은 해당 구성 요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성 요소를 다른 구성 요소와 구분하기 위해 사용될 뿐 해당 구성 요소들을 한정하지 않는다. 어떤(예: 제 1) 구성 요소가 다른(예: 제 2) 구성 요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성 요소가 상기 다른 구성 요소에 직접적으로 연결되거나, 다른 구성 요소(예: 제 3 구성 요소)를 통하여 연결될 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
다양한 실시예들에 따르면, 기술한 구성 요소들의 각각의 구성 요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예들에 따르면, 전술한 해당 구성 요소들 중 하나 이상의 구성 요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성 요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성 요소들(예: 모듈 또는 프로그램)은 하나의 구성 요소로 통합될 수 있다. 이런 경우, 통합된 구성 요소는 복수의 구성 요소들 각각의 구성 요소의 하나 이상의 기능들을 통합 이전에 복수의 구성 요소들 중 해당 구성 요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.

Claims (17)

  1. 전자 장치의 동작 방법에 있어서,
    실외 환경에 대한 2차원 이미지 정보를 획득하는 동작;
    상기 2차원 이미지 정보를 기반으로, 3차원 지도 정보를 생성하는 동작; 및
    상기 3차원 지도 정보를 기반으로, 실외 환경에서의 측위를 수행하는 동작을 포함하는 방법.
  2. 제 1 항에 있어서, 상기 3차원 지도 정보를 생성하는 동작은,
    상기 실외 환경을 복수 개의 영역들로 분할하는 동작; 및
    상기 영역들 각각에 대해, 상기 3차원 지도 정보를 생성하는 동작을 포함하는 방법.
  3. 제 2 항에 있어서, 상기 영역들 각각에 대해, 상기 3차원 지도 정보를 생성하는 동작은,
    상기 영역들 각각에서, 적어도 하나의 노드를 경계 노드 또는 비경계 노드로 구분하는 동작;
    상기 경계 노드와 상기 비경계 노드에 상이한 신뢰도를 적용하는 동작; 및
    상기 노드를 기반으로, 상기 3차원 지도 정보를 생성하는 동작을 포함하는 방법.
  4. 제 3 항에 있어서, 상기 노드를 기반으로, 상기 3차원 지도 정보를 생성하는 동작은,
    상기 노드 각각의 포즈 정보를 이용하여, 상기 3차원 지도 정보를 생성하는 동작을 포함하는 방법.
  5. 제 4 항에 있어서, 상기 노드 각각의 포즈 정보를 이용하여, 상기 3차원 지도 정보를 생성하는 동작은,
    상기 신뢰도를 기반으로, 상기 노드와 연결된 적어도 하나의 엣지의 오차를 검출하는 동작;
    상기 오차를 기반으로, 상기 노드의 포즈 정보를 추정하는 동작;
    상기 오차를 기반으로, 상기 노드의 3차원 포인트 정보를 추정하는 동작; 및
    상기 포즈 정보 및 상기 3차원 포인트 정보를 이용하여, 상기 3차원 지도 정보를 생성하는 동작을 포함하는 방법.
  6. 제 5 항에 있어서, 상기 노드 각각의 포즈 정보를 이용하여, 상기 3차원 지도 정보를 생성하는 동작은,
    상기 2차원 이미지 정보를 기반으로, 상기 노드의 제 1 포즈 정보를 확인하는 동작을 더 포함하는 방법.
  7. 제 6 항에 있어서, 상기 신뢰도를 기반으로, 상기 노드와 연결된 적어도 하나의 엣지의 오차를 검출하는 동작은,
    상기 제 1 포즈 정보를 기반으로, 상기 노드와 연결된 적어도 하나의 엣지의 오차를 검출하는 동작; 및
    상기 신뢰도를 이용하여, 상기 오차를 합산하는 동작을 포함하는 방법.
  8. 제 7 항에 있어서,
    상기 오차를 기반으로, 상기 노드의 포즈 정보를 추정하는 동작은,
    상기 오차가 감소되는 제 2 포즈 정보를 추정하는 동작을 포함하고,
    상기 포즈 정보를 이용하여, 상기 3차원 지도 정보를 생성하는 동작은,
    상기 제 2 포즈 정보를 이용하여, 상기 3차원 지도 정보를 생성하는 동작을 포함하는 방법.
  9. 전자 장치에 있어서,
    메모리; 및
    상기 메모리와 연결되고, 상기 메모리에 저장된 적어도 하나의 명령을 실행하도록 구성된 프로세서를 포함하고,
    상기 프로세서는,
    실외 환경에 대한 2차원 이미지 정보를 획득하고,
    상기 2차원 이미지 정보를 기반으로, 3차원 지도 정보를 생성하고,
    상기 3차원 지도 정보를 기반으로, 실외 환경에서의 측위를 수행하도록 구성되는 장치.
  10. 제 9 항에 있어서, 상기 프로세서는,
    상기 실외 환경을 복수 개의 영역들로 분할하고,
    상기 영역들 각각에 대해, 상기 3차원 지도 정보를 생성하도록 구성되는 장치.
  11. 제 10 항에 있어서, 상기 프로세서는,
    상기 영역들 각각에서, 적어도 하나의 노드를 경계 노드 또는 비경계 노드로 구분하고,
    상기 경계 노드와 상기 비경계 노드에 상이한 신뢰도를 적용하고,
    상기 노드를 기반으로, 상기 3차원 지도 정보를 생성하도록 구성되는 장치.
  12. 제 11 항에 있어서, 상기 프로세서는,
    SfM(structure from motion) 알고리즘을 이용하여, 상기 3차원 지도 정보를 생성하도록 구성되는 장치.
  13. 제 11 항에 있어서, 상기 프로세서는,
    상기 노드 각각의 포즈 정보를 이용하여, 상기 3차원 지도 정보를 생성하도록 구성되는 장치.
  14. 제 13 항에 있어서, 상기 프로세서는,
    상기 신뢰도를 기반으로, 상기 노드와 연결된 적어도 하나의 엣지의 오차를 검출하고,
    상기 오차를 기반으로, 상기 노드의 포즈 정보 및 3차원 포인트 정보를 추정하고,
    상기 포즈 정보 및 상기 3차원 포인트 정보를 이용하여, 상기 3차원 지도 정보를 생성하도록 구성되는 장치.
  15. 제 14 항에 있어서, 상기 프로세서는,
    상기 2차원 이미지 정보를 기반으로, 상기 노드의 제 1 포즈 정보를 확인하고,
    상기 제 1 포즈 정보를 기반으로, 상기 노드와 연결된 적어도 하나의 엣지의 오차를 검출하고,
    상기 신뢰도를 이용하여, 상기 오차를 합산하고,
    상기 오차가 감소되는 제 2 포즈 정보를 추정하고,
    상기 제 2 포즈 정보를 이용하여, 상기 3차원 지도 정보를 생성하도록 구성되는 장치.
  16. 제 10 항에 있어서,
    상기 2차원 이미지 정보는, 상기 영역들 각각에 대한 복수 개의 거리뷰 이미지들을 포함하는 장치.
  17. 컴퓨터 장치와 결합되어 비주얼 로컬리제이션(visual localization) 제공 방법을 상기 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램에 있어서,
    상기 비주얼 로컬리제이션 제공 방법은,
    실외 환경에 대한 2차원 이미지 정보를 획득하는 동작;
    상기 2차원 이미지 정보를 기반으로, 3차원 지도 정보를 생성하는 동작; 및
    상기 3차원 지도 정보를 기반으로, 실외 환경에서의 측위를 수행하는 동작을 포함하는 컴퓨터 프로그램.
KR1020200012972A 2020-02-04 2020-02-04 실외 3차원 지도 정보를 기반으로 비주얼 로컬리제이션을 제공하기 위한 전자 장치 및 그의 동작 방법 KR102347232B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200012972A KR102347232B1 (ko) 2020-02-04 2020-02-04 실외 3차원 지도 정보를 기반으로 비주얼 로컬리제이션을 제공하기 위한 전자 장치 및 그의 동작 방법
US17/166,489 US11514645B2 (en) 2020-02-04 2021-02-03 Electronic device for providing visual localization based on outdoor three-dimension map information and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200012972A KR102347232B1 (ko) 2020-02-04 2020-02-04 실외 3차원 지도 정보를 기반으로 비주얼 로컬리제이션을 제공하기 위한 전자 장치 및 그의 동작 방법

Publications (2)

Publication Number Publication Date
KR20210099298A true KR20210099298A (ko) 2021-08-12
KR102347232B1 KR102347232B1 (ko) 2022-01-04

Family

ID=77062566

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200012972A KR102347232B1 (ko) 2020-02-04 2020-02-04 실외 3차원 지도 정보를 기반으로 비주얼 로컬리제이션을 제공하기 위한 전자 장치 및 그의 동작 방법

Country Status (2)

Country Link
US (1) US11514645B2 (ko)
KR (1) KR102347232B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113813608A (zh) * 2021-10-12 2021-12-21 福建天晴在线互动科技有限公司 一种2d游戏地图缩小的方法及***

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024087066A1 (zh) * 2022-10-26 2024-05-02 北京小米移动软件有限公司 图像定位方法、装置、电子设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001336941A (ja) * 2000-05-25 2001-12-07 Sony Corp カーナビゲーション装置
JP2002243470A (ja) * 2001-02-21 2002-08-28 Aisin Aw Co Ltd 地図表示装置及びプログラム
US20100111417A1 (en) * 2008-11-03 2010-05-06 Microsoft Corporation Converting 2d video into stereo video
JP2011164146A (ja) * 2010-02-04 2011-08-25 Denso Corp 図面データ管理装置
JP2012043185A (ja) * 2010-08-19 2012-03-01 Kddi Corp 三次元地図作成方法および装置ならびに窓領域検出装置
US20120206440A1 (en) * 2011-02-14 2012-08-16 Dong Tian Method for Generating Virtual Images of Scenes Using Trellis Structures
JP2019027799A (ja) * 2017-07-25 2019-02-21 日本電信電話株式会社 測位精度情報算出装置及び測位精度情報算出方法
KR20190089681A (ko) * 2018-01-22 2019-07-31 네이버 주식회사 파노라마 뷰에 대한 3차원 모델을 생성하는 방법 및 시스템

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005321370A (ja) * 2004-04-05 2005-11-17 Sony Corp ナビゲーション装置、およびデータ処理方法、並びにコンピュータ・プログラム
US20070070069A1 (en) * 2005-09-26 2007-03-29 Supun Samarasekera System and method for enhanced situation awareness and visualization of environments
US9098926B2 (en) * 2009-02-06 2015-08-04 The Hong Kong University Of Science And Technology Generating three-dimensional façade models from images
US8798357B2 (en) * 2012-07-09 2014-08-05 Microsoft Corporation Image-based localization
KR20210061722A (ko) * 2019-11-20 2021-05-28 팅크웨어(주) 고정밀 지도 제작 방법, 고정밀 지도 제작 장치, 컴퓨터 프로그램 및 컴퓨터 판독 가능한 기록 매체

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001336941A (ja) * 2000-05-25 2001-12-07 Sony Corp カーナビゲーション装置
JP2002243470A (ja) * 2001-02-21 2002-08-28 Aisin Aw Co Ltd 地図表示装置及びプログラム
US20100111417A1 (en) * 2008-11-03 2010-05-06 Microsoft Corporation Converting 2d video into stereo video
JP2011164146A (ja) * 2010-02-04 2011-08-25 Denso Corp 図面データ管理装置
JP2012043185A (ja) * 2010-08-19 2012-03-01 Kddi Corp 三次元地図作成方法および装置ならびに窓領域検出装置
US20120206440A1 (en) * 2011-02-14 2012-08-16 Dong Tian Method for Generating Virtual Images of Scenes Using Trellis Structures
JP2019027799A (ja) * 2017-07-25 2019-02-21 日本電信電話株式会社 測位精度情報算出装置及び測位精度情報算出方法
KR20190089681A (ko) * 2018-01-22 2019-07-31 네이버 주식회사 파노라마 뷰에 대한 3차원 모델을 생성하는 방법 및 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113813608A (zh) * 2021-10-12 2021-12-21 福建天晴在线互动科技有限公司 一种2d游戏地图缩小的方法及***
CN113813608B (zh) * 2021-10-12 2023-09-15 福建天晴在线互动科技有限公司 一种2d游戏地图缩小的方法及***

Also Published As

Publication number Publication date
US11514645B2 (en) 2022-11-29
US20210241523A1 (en) 2021-08-05
KR102347232B1 (ko) 2022-01-04

Similar Documents

Publication Publication Date Title
US10235771B2 (en) Methods and systems of performing object pose estimation
US10726264B2 (en) Object-based localization
KR102164471B1 (ko) 복합 현실 환경을 작성하기 위한 시스템 등
EP3401815B1 (en) Determining an architectural layout
WO2019184889A1 (zh) 增强现实模型的调整方法、装置、存储介质和电子设备
TWI505709B (zh) 擴增實境場景中決定個體化深度資訊的系統和方法
JP2016504611A (ja) 地図作成と自己位置推定とのための複数のセンサの使用
KR20150082358A (ko) 기준 좌표계 결정
US11854231B2 (en) Localizing an augmented reality device
KR102347232B1 (ko) 실외 3차원 지도 정보를 기반으로 비주얼 로컬리제이션을 제공하기 위한 전자 장치 및 그의 동작 방법
US20240104744A1 (en) Real-time multi-view detection of objects in multi-camera environments
Yeh et al. 3D reconstruction and visual SLAM of indoor scenes for augmented reality application
CN112529097A (zh) 样本图像生成方法、装置以及电子设备
KR102383567B1 (ko) 시각 정보 처리 기반의 위치 인식 방법 및 시스템
Selvam et al. Augmented reality for information retrieval aimed at museum exhibitions using smartphones
KR102150954B1 (ko) 점군 정보 가공 장치 및 방법
US20240029350A1 (en) Computing apparatus and model generation method
JP2020509505A (ja) 拡張現実を提供するための方法、装置及びコンピュータプログラム
KR102643447B1 (ko) 오브젝트 기반 증강 컨텐츠의 위치 기반 ar 연동을 위한 전자 장치 및 그의 동작 방법
KR102316232B1 (ko) 2차원 지도 정보를 기반으로 거리뷰 이미지의 포즈를 정합시키기 위한 전자 장치 및 그의 동작 방법
KR102158316B1 (ko) 점군 정보 가공 장치 및 방법
CN116136408A (zh) 室内导航方法、服务器、装置和终端
KR20210023663A (ko) 2d 이미지를 활용하여 3d 컨텐츠를 생성하는 영상 처리 방법 및 영상 처리 장치
KR102287478B1 (ko) 전자 장치 및 그의 실내 환경에서 반사에 의한 객체 허상을 식별하기 위한 방법
KR102350226B1 (ko) 증강현실 컨텐츠 배치 장치 및 방법

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant