KR20230048880A - 전자 장치의 지도 병합 방법 - Google Patents

전자 장치의 지도 병합 방법 Download PDF

Info

Publication number
KR20230048880A
KR20230048880A KR1020210131814A KR20210131814A KR20230048880A KR 20230048880 A KR20230048880 A KR 20230048880A KR 1020210131814 A KR1020210131814 A KR 1020210131814A KR 20210131814 A KR20210131814 A KR 20210131814A KR 20230048880 A KR20230048880 A KR 20230048880A
Authority
KR
South Korea
Prior art keywords
map
location
area map
merging
area
Prior art date
Application number
KR1020210131814A
Other languages
English (en)
Other versions
KR102639524B1 (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 KR1020210131814A priority Critical patent/KR102639524B1/ko
Priority to US17/960,253 priority patent/US20230118831A1/en
Publication of KR20230048880A publication Critical patent/KR20230048880A/ko
Application granted granted Critical
Publication of KR102639524B1 publication Critical patent/KR102639524B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • G01C21/30Map- or contour-matching
    • G01C21/32Structuring or formatting of map data
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • G01C21/3841Data obtained from two or more sources, e.g. probe vehicles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3863Structures of map data
    • G01C21/387Organisation of map data, e.g. version management or database structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • G06T5/002
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • 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/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • G09B29/003Maps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Educational Technology (AREA)
  • Educational Administration (AREA)
  • Business, Economics & Management (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Probability & Statistics with Applications (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

제1 디바이스의 제1 지역 지도(local map), 제1 지역 지도에서 제1 디바이스의 위치, 제2 디바이스의 제2 지역 지도, 제2 지역 지도에서 제2 디바이스의 위치, 및 제1 디바이스가 획득한 제2 디바이스에 관한 이미지에 관한 정보를 획득하고, 학습된(Trained) 제1 인공신경망(Artificial Neural Network, ANN)을 사용하여 이미지로부터 제1 디바이스에 대한 제2 디바이스의 상대 위치를 확인하고, 상대 위치, 제1 디바이스의 위치, 및 제2 디바이스의 위치에 기초하여, 제1 지역 지도에 대응하도록 제2 지역 지도를 변환하고, 제1 지역 지도와 변환된 제2 지역 지도를 병합(Merge)하는 전자 장치 및 그의 동작 방법을 제공한다.

Description

전자 장치의 지도 병합 방법{MAP MERGING METHOD OF ELECTRONIC APPARATUS}
본 개시는 전자 장치의 지도 병합 방법에 관한 것이다.
종래의 군집 로봇의 지도 병합 기술들은, 각 로봇으로부터 받은 지도를 전통적인 컴퓨터 비전의 특징 추출 알고리즘으로 처리해 일치하는 영역을 찾아 지도 사이의 최적 변환을 찾는 접근이 대부분이다. 이러한 종래의 기술들은 로봇들의 개별 지도가 충분히 겹치는 공통 영역을 갖고 있어야 병합 지도를 얻을 수 있다는 한계를 지니고 있다.
지도 이미지에서의 특징 추출 접근의 한계를 극복하려면 로봇의 위치 정보를 사용해야한다. 하지만 기존 기술들은 로봇들의 초기 절대좌표 정보를 주어 실제 상황과 맞지 않는 가정을 하거나, 로봇 사이의 상대위치를 추정하는데 특수한 센서 장비를 이용해야 한다는 하드웨어의 제약을 갖는다.
본 발명에 따르면, 일 디바이스가 다른 디바이스를 촬영한 이미지를 기초로 인공신경망을 사용하여 두 디바이스 사이의 상대 위치를 획득하고, 상대 위치를 기초로 두 디바이스가 작성한 지도를 병합할 수 있어, 이를 이용하여 복수의 디바이스가 작성한 지도를 병합할 수 있다.
본 발명이 이루고자 하는 기술적 과제는 상기된 바와 같은 과제로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
일 실시예에 따라, 전자 장치의 지도 병합 방법에 있어서, 제1 디바이스의 제1 지역 지도(local map), 상기 제1 지역 지도에서 상기 제1 디바이스의 위치, 제2 디바이스의 제2 지역 지도, 상기 제2 지역 지도에서 상기 제2 디바이스의 위치, 및 상기 제1 디바이스가 획득한 제2 디바이스에 관한 이미지에 관한 정보를 획득하는 단계; 학습된(Trained) 제1 인공신경망(Artificial Neural Network, ANN)을 사용하여 상기 이미지로부터 상기 제1 디바이스에 대한 상기 제2 디바이스의 상대 위치를 확인하는 단계; 상기 상대 위치, 상기 제1 디바이스의 위치, 및 상기 제2 디바이스의 위치에 기초하여, 상기 제1 지역 지도에 대응하도록 상기 제2 지역 지도를 변환하는 단계; 및 상기 제1 지역 지도와 상기 변환된 제2 지역 지도를 병합(Merge)하는 단계를 포함할 수 있다.
일 실시예에 따라, 전자 장치로서, 적어도 하나의 프로그램이 저장된 메모리; 및 상기 적어도 하나의 프로그램을 실행함으로써, 제1 디바이스의 제1 지역 지도(local map), 상기 제1 지역 지도에서 상기 제1 디바이스의 위치, 제2 디바이스의 제2 지역 지도, 상기 제2 지역 지도에서 상기 제2 디바이스의 위치, 및 상기 제1 디바이스가 획득한 제2 디바이스에 관한 이미지에 관한 정보를 획득하고, 학습된(Trained) 제1 인공신경망(Artificial Neural Network, ANN)을 사용하여 상기 이미지로부터 상기 제1 디바이스에 대한 상기 제2 디바이스의 상대 위치를 확인하고, 상기 상대 위치, 상기 제1 디바이스의 위치, 및 상기 제2 디바이스의 위치에 기초하여, 상기 제1 지역 지도에 대응하도록 상기 제2 지역 지도를 변환하고, 상기 제1 지역 지도와 상기 변환된 제2 지역 지도를 병합(Merge)하는 프로세서를 포함할 수 있다.
일 실시예에 따라, 컴퓨터로 읽을 수 있는 기록매체는 상술한 동작 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 비일시적 기록매체를 포함할 수 있다.
기타 실시예들의 구체적인 사항은 상세한 설명 및 도면들에 포함된다.
본 개시에 따른 지도 병합 방법 및 전자 장치는, 병합하려는 부분 지도 간의 공통 영역의 넓이에 구애받지 않으며, 특수 센서가 아닌 범용적인 RGB 카메라에서 얻은 이미지에서 타 로봇의 상대 위치를 추정할 수 있는 이점이 있다.
본 개시에 따르면, 로봇 에이전트들이 시뮬레이션 환경에서 탐색하는 시나리오 수행 시, GPU 1대를 사용하는 컴퓨터에서 발명된 시스템이 실시간 작동할 수 있을 정도로 연산 비용이 크지 않아 비용 대비 유의미한 성능 향상을 기대할 수 있는 이점이 있다.
발명의 효과는 이상에서 언급한 효과만으로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위 기재로부터 당해 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있다.
도 1 은 본 개시에 따른 전자 장치를 나타낸다.
도 2 는 본 개시가 사용되는 개략적인 환경을 나타낸다.
도 3 은 본 개시에 따른 실시예에 사용되는 정보의 융합과 흐름을 나타낸다.
도 4 는 본 개시에 따른 실시예의 알고리즘을 나타낸다.
도 5 는 본 개시에 따른 방법의 일 실시예를 나타낸다.
본 개시에 기술된 실시예는 본 개시를 제한하는 것이 아니라 예시하는 것이고, 통상의 기술자는 첨부된 청구범위에 의해 정의된 본 개시의 범주를 벗어나지 않으면서, 다수의 대안적인 실시예를 설계할 수 있다. 실시 예들에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 반대되는 기재가 존재하지 않는 한, 단수는 물론 복수를 모두 포함한다.
본 명세서 전체에서 어떤 부분이 어떤 구성요소들 또는 어떤 단계들을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 어떤 부분이 구성요소들 또는 단계들을 반드시 모두 포함해야 하는 것은 아니고, 청구범위 또는 명세서 전체에 열거된 것 이외의 구성요소 또는 단계가 포함되는 것을 배제하는 것도 아니며, 단지 이들을 더 포함할 수 있음을 의미한다.
또한, 본 명세서에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 서수를 포함하는 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 문맥상 명세서의 일 부분에서 일 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리범위를 벗어나지 않으면서 제1 구성요소는 명세서의 다른 부분에서 제2 구성요소로 명명될 수 있고, 반대로 제2 구성요소도 명세서의 다른 부분에서 제1 구성요소로 명명될 수 있다.
본 명세서에서 "매커니즘", "요소", "수단", "구성"과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
본 명세서(특히 청구범위에서)에서 "상기"의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 포함하는 것으로서(이에 반하는 기재가 없다면), 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 재배열되어 행해질 수 있고, 반드시 상기 단계들의 기재 순서에 한정되는 것은 아니다. 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 기술적 사상을 상세히 설명하기 위한 것으로서 청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 범위가 한정되는 것은 아니다. 통상의 기술자는 본 명세서에 개시된 실시예에 설계 조건 및 팩터에 따라 다양한 수정, 조합 및 변경을 부가하여 특허청구범위 또는 그 균등물의 범주에 속하는 새로운 실시예를 구성할 수 있다.
이하에서는 도면을 참조하여 본 개시의 실시예를 설명한다.
도 1 는 본 개시의 적어도 하나의 실시예를 실행하는데 사용될 수 있는 전자 장치(100)의 예시적이고 단순화된 블록도를 나타낸다. 다양한 실시예에서, 전자 장치(100)는 본 개시에서 서술된 임의의 시스템 또는 방법을 구현하는데 사용될 수 있다. 예를 들어, 전자 장치(100)는 데이터 서버, 웹 서버, 휴대용 컴퓨팅 디바이스, 개인용 컴퓨터, 태블릿 컴퓨터, 워크스테이션, 휴대폰, 스마트 폰(smart phone) 또는 아래에서 서술되는 임의의 다른 디바이스를 포함하는 임의의 전자 장치로서 사용되도록 구성될 수 있다.
전자 장치(100)는 메모리(120) 및 메모리(120)와 통신하도록 구성될 수 있는 하나 이상의 캐시 메모리 및 메모리 제어기를 갖는 하나 이상의 프로세서(110)를 포함할 수 있다. 추가적으로, 전자 장치(100)는 하나 이상의 포트(예컨대, USB(Universal Serial Bus), 헤드폰 잭, 라이트닝(Lightning) 커넥터, 썬더볼트(Thunderbolt) 커넥터 등)를 통해 전자 장치(100)에 연결될 수 있는 다른 디바이스를 포함할 수 있다. 전자 장치(100)에 연결될 수 있는 디바이스는 광섬유 커넥터를 수용하도록 구성되는 복수의 포트를 포함할 수 있다. 도시된 전자 장치(100)의 구성은 디바이스의 바람직한 실시예를 예시할 목적으로 특정 예시로서만 의도된다. 도시된 전자 장치(100)에는 본 실시예들과 관련된 구성요소들만이 도시되어 있다. 따라서, 전자 장치(100)에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음은 당해 기술분야의 통상의 기술자에게 자명하다.
프로세서(110)는 전자 장치(100)가 본 개시에서 서술된 임의의 실시예의 단계 또는 기능을 제공하도록 하기 위해 이용될 수 있다. 예를 들어, 프로세서(110)는 전자 장치(100) 내의 메모리(120)에 저장된 프로그램들을 실행함으로써, 전자 장치(100)를 전반적으로 제어한다. 프로세서(110)는 전자 장치(100) 내에 구비된 CPU(central processing unit), GPU(graphics processing unit), AP(application processor) 등으로 구현될 수 있으나, 이에 제한되지 않는다.
메모리(120)는 전자 장치(100) 내에서 처리되는 각종 데이터들을 저장하는 하드웨어로서, 메모리(120)는 전자 장치(100)에서 프로세서(110)를 통해 처리된 데이터들 및 처리될 데이터들을 저장할 수 있다. 또한, 메모리(120)는 본 개시의 적어도 하나의 실시예의 기능을 제공할 수 있는 기본 프로그래밍 및 데이터 구조를 저장하는 것은 물론, 본 개시의 실시예의 기능을 제공할 수 있는 애플리케이션들(프로그램, 코드 모듈, 명령어), 드라이버들 등을 저장할 수 있다. 메모리(120)는 DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), CD-ROM, 블루레이 또는 다른 광학 디스크 스토리지, HDD(hard disk drive), SSD(solid state drive), 또는 플래시 메모리를 포함할 수 있다.
도 2 는 본 개시에 따른 지도 병합 방법이 사용될 수 있는 환경을 나타낸다.
환경(200)은 환경(200)에 포함되는 장애물 또는 지형 정보에 대한 지도 작성이 필요한 2차원 또는 3차원 공간이 될 수 있다. 제1 디바이스(210) 및 제2 디바이스(220)는 환경(200)내에서 이동하며 환경(200) 내에 존재하는 장애물 또는 지형을 감지하고, 환경(200)의 지역 지도(Local Map)를 작성할 수 있다.
제1 디바이스(210) 및 제2 디바이스(220)는 각각 주변을 스스로 이동할 수 있도록 이동 수단을 구비하거나, 또는 이동 수단을 가지는 제1 플랫폼(Platform) 및 제2 플랫폼에 각각 탑재될 수 있다. 여기서 이동 수단을 구비한 제1 디바이스 및 제2 디바이스 또는 제1 플랫폼 및 제2 플랫폼은, 유/무인 이동체(Manned/Unmanned Vehicle), 로봇 등 알려진 모든 형태의 이동체(Vehicle)일 수 있다. 예를 들어, 이동체는 로봇 청소기, 승용차, 군용 차량 등일 수 있다. 하지만, 이동체는 바퀴를 활용한 이동체에만 한정되지는 않는다. 다른 예를 들어, 이동체는 다리를 활용한 보행 로봇(Legged Robot or Walking Robot), 선박 등 알려진 모든 형태의 이동 수단을 구비한 어떤 것일 수 있다.
제1 디바이스(210) 및 제2 디바이스(220)는 지도를 작성하기 위하여 적어도 하나의 거리 센서(Range Sensor)를 활용할 수 있다. 거리 센서는 제1 디바이스(210) 또는 제2 디바이스(220)가 탐험할 수 없는, 환경(200)내에 존재하는 장애물 또는 지형 등을 감지할 수 있다. 바람직하게는, 거리 센서는 장애물 또는 지형까지의 거리를 측정할 수 있는 센서일 수 있다. 예를 들어, 거리 센서는 LIDAR(LIght Detection And Ranging) 센서, LADAR(LAser Detection And Ranging) 센서, 이미지 센서, 스테레오 카메라(Stereo Camera), 광학 센서, 적외선 센서 등 알려진 거리 측정 센서 또는 그들의 조합이 될 수 있다.
제1 디바이스(210) 및 제2 디바이스(220)는 지도를 작성하기 위하여 적어도 하나의 위치 또는 자세 측정 센서를 활용할 수 있다. 위치 또는 자세 측정 센서는 제1 디바이스(210) 또는 제2 디바이스(220) 또는 각 디바이스를 탑재한 플랫폼이 기준 위치로부터 이동한 거리 또는 기준 자세로부터 회전한 각도 등을 측정할 수 있다. 즉, 제1 디바이스(210) 및 제2 디바이스(220)는 위치 또는 자세 측정 센서를 활용하여, 제1 디바이스의 위치(213) 및 제2 디바이스의 위치(223)를 측정할 수 있다. 위치 또는 자세 측정 센서는 가속도 센서(Accelerometer), 자이로 센서(Gyroscope, Gyro Sensor), GPS(Global Positioning System) 수신기, 지자기 센서(Magnetometer), 타코미터(Tachometer), 관성 항법 장치(IMU, Inertial Measurement Unit) 등 알려진 위치 또는 자세 측정 센서 또는 그들의 조합이 될 수 있다.
일 실시예에서, 제1 디바이스(210) 및 제2 디바이스(220)는 환경(200)을 효율적으로 탐색하기 위하여 환경(200) 내에서 서로 일정 거리 떨어진 위치에 있을 수 있고, 각자의 주변을 탐험할 수 있다. 이러한 경우, 제1 디바이스(210) 및 제2 디바이스(220)는 각각 제1 디바이스(210) 및 제2 디바이스(220)의 주변을 이동하며 제1 지역 지도(212) 및 제2 지역 지도(222)를 각각 작성할 수 있다. 구체적으로, 제1 디바이스(210)는 위치 또는 자세 측정 센서가 측정한 위치 또는 자세 정보를 확인하고, 거리 센서가 측정한 장애물 또는 지형까지의 거리 정보를 확인하고, 위치 또는 자세 정보 및 거리 정보를 융합하여, 환경(200)의 장애물 또는 지형 정보를 포함하는 제1 지역 지도(212)를 작성할 수 있다. 마찬가지로, 제2 디바이스(220)는 위치 또는 자세 측정 센서가 측정한 위치 또는 자세 정보를 확인하고, 거리 센서가 측정한 장애물 또는 지형까지의 거리 정보를 확인하고, 위치 또는 자세 정보 및 거리 정보를 융합하여, 환경(200)의 장애물 또는 지형 정보를 포함하는 제2 지역 지도(222)를 작성할 수 있다. 일 실시예에서, 제1 지역 지도(212) 및 제2 지역 지도(222)는 점유 격자 지도(Occupancy Grid Map)일 수 있다. 일 실시예에서, 제1 지역 지도(212) 및 제2 지역 지도(222)는 2차원 또는 3차원 지도일 수 있다.
제1 지역 지도(212) 및 제2 지역 지도(222)는 각각 환경(200)의 서로 다른 일부에 존재하는 장애물 및 지형 등을 나타내므로 각 지역 지도를 병합하여 하나의 지도를 생성할 필요가 있다. 이 경우, 제1 지역 지도(212) 및 제2 지역 지도(222)는 각각 제1 디바이스(210) 및 제2 디바이스(220) 각자의 기준으로 작성되었으므로, 각 지역 지도의 기준점 또는 좌표축이 서로 다를 수 있다. 따라서, 각 지역 지도 또는 각 디바이스 사이의 관계를 알 필요가 있다. 이에 따라, 제1 디바이스(210)는 이미지 센서를 활용하여 제2 디바이스에 관한 이미지(214)를 획득할 수 있다. 이미지 센서는 제2 디바이스(220) 또는 제2 디바이스(220)를 포함하는 제2 플랫폼의 사진 또는 동영상을 촬영하여 제2 디바이스에 관한 이미지(214)를 획득할 수 있다. 예를 들어, 제2 디바이스에 관한 이미지(214)는, 제2 디바이스(220) 또는 제2 디바이스(220)를 포함하는 제2 플랫폼 등의 외관의 전부 또는 일부를 포함할 수 있다. 제2 디바이스에 관한 이미지(214)는 RGB 이미지, 흑백 이미지 또는 그레이스케일(greyscale) 이미지 등일 수 있다.
일 실시예에서, 프로세서(110)는 제1 정보(211) 및 제2 정보(221)를 확인할 수 있다. 여기서 제1 정보(211)는 제1 지역 지도(212), 제1 디바이스의 위치(213) 및 제2 디바이스에 관한 이미지(214)를 포함할 수 있다. 제2 정보(221)는 제2 지역 지도(222) 및 제2 디바이스의 위치(223)를 포함할 수 있다. 즉, 프로세서(110)는 제1 디바이스의 제1 지역 지도(212), 제1 지역 지도에서 제1 디바이스의 위치(213), 제2 디바이스의 제2 지역 지도(222), 제2 지역 지도에서 제2 디바이스의 위치(223), 및 상기 제1 디바이스가 획득한 제2 디바이스에 관한 이미지(214)에 관한 정보를 획득할 수 있다.
일 실시예에서, 제1 정보(211) 및 제2 정보(221)는 각각 제1 디바이스(210) 및 제2 디바이스(220)로부터 수신된 것일 수 있다. 이 경우, 제1 디바이스(210), 제2 디바이스(220) 및 전자 장치(100)는 각 정보를 송신 또는 수신하기 위하여 통신 디바이스를 활용할 수 있다. 예를 들어, 통신 디바이스는 LAN(Local Area Network)를 통해 인터넷 등에 접속하는 유선 통신 모듈, 이동 통신 기지국을 거쳐 이동 통신 네트워크에 접속하여 데이터를 송수신하는 이동 통신 모듈, 와이파이(Wi-Fi) 같은 WLAN(Wireless Local Area Network) 계열의 통신 방식이나 블루투스(Bluetooth), 직비(Zigbee)와 같은 WPAN(Wireless Personal Area Network) 계열의 통신 방식을 이용하는 근거리 통신 모듈, GPS(Global Positioning System)과 같은 GNSS(Global Navigation Satellite System)을 이용하는 위성 통신 모듈 또는 이들의 조합으로 구성될 수 있다.
도 2 에 도시된 것과 같이, 본 개시에 따른 프로세서(110)는 제1 디바이스(210)에 관한 제1 정보(211) 및 제2 디바이스(220)에 관한 제2 정보(221)를 기초로, 각 정보를 융합하여 병합 지도(232)를 작성할 수 있다. 일 실시예에서, 전자 장치(100)는 제1 디바이스(210) 및 제2 디바이스(220)와 어느 정도 떨어진 거리에 위치할 수 있다. 이 경우, 프로세서(110)는 중앙 집중 시스템(Centralized System)의 중앙 서버(Central Server) 또는 마스터(Master)와 같이 각 디바이스로부터 각 정보를 수신하고, 병합 지도(232)를 작성할 수 있다. 다른 실시예에서, 전자 장치(100)는 제1 디바이스(210) 또는 제2 디바이스(220)에 포함될 수 있다. 또 다른 실시예에서, 전자 장치(100)는 제1 디바이스(210)를 탑재하는 제1 플랫폼 또는 제2 디바이스(220)를 탑재하는 제2 플랫폼에 함께 탑재될 수 있다. 이 경우, 각 디바이스를 포함하는 시스템은 분산 시스템(Decentralized System)과 같은 형태를 가질 수 있다. 중앙 집중 시스템은 물론, 분산 시스템에서도 프로세서(110)는 별도의 통신 디바이스를 활용하여 병합 지도(232)를 제1 디바이스(210) 또는 제2 디바이스(220)와 공유할 수 있다.
일 실시예에서, 프로세서(110)는 병합 지도(232)를 출력할 수 있다. 본 개시에 따른 지도 병합 방법은 미리 학습된 인공신경망을 사용하므로 연산 비용이 크지 않다. 따라서 일 실시예에서, 프로세서(110)는 병합 지도(232)를 실시간으로 출력할 수 있다.
도 3 은 본 개시에 따른 일 실시예에 사용되는 정보의 융합과 흐름을 나타낸다. 지도 병합 블록(300)은 본 실시예에 따라 프로세서(110)가 수행하는 지도 병합 방법을 의미한다. 상대 위치 추정 블록(310), 제2 지역 지도 보정 블록(320), 회전 오차 추정 블록(321), 지도 병합 블록(330) 및 노이즈 제거 블록(331)은 각각 본 실시예에 따라 프로세서(110)가 수행하는 지도 병합 방법의 일부 단계를 의미한다. 설명의 편의를 위하여, 상기 단계는 블록으로 표시되어 정보의 입력 및 출력 관점에서 먼저 서술되고, 각 단계의 구체적인 실시예는 추후에 서술한다.
지도 병합 블록(300)의 좌측에는 지도 병합 방법의 입력이 표시된다. 지도 병합 방법의 입력에는 제1 지역 지도(
Figure pat00001
), 제2 지역 지도(
Figure pat00002
), 제1 지역 지도에서 제1 디바이스의 위치(
Figure pat00003
), 제2 지역 지도에서 제2 디바이스의 위치(
Figure pat00004
) 및 제1 디바이스가 획득한 제2 디바이스에 관한 이미지(
Figure pat00005
)가 포함될 수 있다. 지도 병합 블록(300)의 우측에는 지도 병합 방법의 출력이 표시된다. 지도 병합 방법의 출력에는 병합 지도(
Figure pat00006
)가 포함될 수 있다. 도 3 의 실시예에서는 제1 지역 지도(
Figure pat00007
) 및 제2 지역 지도(
Figure pat00008
)는 2차원 지도이다. 하지만 본 개시에 따른 다양한 실시예는 이에 한정되지 않는다.
상대 위치 추정 블록(310)을 통해 이미지(
Figure pat00009
)를 기초로 제1 디바이스에 대한 상기 제2 디바이스의 상대 위치(
Figure pat00010
)가 결정될 수 있다. 상대 위치(
Figure pat00011
)는 2차원 또는 3차원 위치 값 또는 회전 값 또는 그들의 조합을 포함할 수 있다. 여기서 회전 값은 오일러 각 또는 쿼터니언(quaternion)으로 표현된 값일 수 있다. 도 3 의 실시예에서 제1 지역 지도(
Figure pat00012
) 및 제2 지역 지도(
Figure pat00013
)는 2차원 지도이므로, 상대 위치(
Figure pat00014
) 역시 2차원 평면 상의 위치 값과 2차원 평면에 수직한 회전축을 기준으로 한 회전 값(설명의 편의를 위해, 이하 명세서에서 "회전 값"이라고 부른다)을 포함한다.
제2 지역 지도 보정 블록(320)의 입력은 상대 위치(
Figure pat00015
), 제1 지역 지도(
Figure pat00016
), 제2 지역 지도(
Figure pat00017
), 제1 디바이스의 위치(
Figure pat00018
) 및 제2 디바이스의 위치(
Figure pat00019
)이고, 출력은 보정된 제2 지역 지도(
Figure pat00020
)이다. 제1 디바이스의 위치(
Figure pat00021
)는 제1 디바이스의 기준 위치에 대한 제1 디바이스의 현재 위치를 의미한다. 제2 디바이스의 위치(
Figure pat00022
)는 제2 디바이스의 기준 위치에 대한 제2 디바이스의 현재 위치를 의미한다. 제1 디바이스의 기준 위치 및 제2 디바이스의 기준 위치는 각각 제1 디바이스의 초기 위치 및 제2 디바이스의 초기 위치일 수 있다. 제2 지역 지도 보정 블록(320) 내에서, 상대 위치(
Figure pat00023
), 제1 디바이스의 위치(
Figure pat00024
) 및 제2 디바이스의 위치(
Figure pat00025
) 정보를 기초로 수학식 1을 이용하여 변환 행렬(
Figure pat00026
)가 결정될 수 있다. 구체적으로,
Figure pat00027
위 수식에서 변환 행렬(
Figure pat00028
)은 제2 지역 지도(
Figure pat00029
)를 제1 지역 지도(
Figure pat00030
)에 대응시키는 행렬이다. 이론적으로 상대 위치(
Figure pat00031
), 제1 디바이스의 위치(
Figure pat00032
) 및 제2 디바이스의 위치(
Figure pat00033
) 값에 오차(error)가 없다면, 변환 행렬(
Figure pat00034
)는 제2 지역 지도(
Figure pat00035
)의 원점 및 좌표축을 제1 지역 지도(
Figure pat00036
)의 원점 및 좌표축과 일치시키는 행렬일 수 있다. 하지만, 실제 측정된 상대 위치(
Figure pat00037
), 제1 디바이스의 위치(
Figure pat00038
) 및 제2 디바이스의 위치(
Figure pat00039
) 값에는 오차가 존재하므로, 변환 행렬(
Figure pat00040
)은 제2 지역 지도(
Figure pat00041
)의 원점 및 좌표축을 제1 지역 지도(
Figure pat00042
)의 원점 및 좌표축과 유사하거나 가깝도록 변환하는 행렬일 수 있다.
제2 지역 지도 보정 블록(320) 내에서, 변환 행렬(
Figure pat00043
)를 기초로 제2 지역 지도(
Figure pat00044
)가 변환되어 변환된 제2 지역 지도(
Figure pat00045
)가 결정될 수 있다.
결정된 상대 위치(
Figure pat00046
)에 포함되는 "회전 값"의 오차가 크다면 병합된 지도의 품질이 크게 낮아질 수 있으므로, 제2 지역 지도 보정 블록(320) 내에서, 회전 오차 추정 블록(321)을 통해, 제1 지역 지도(
Figure pat00047
) 및 변환된 제2 지역 지도(
Figure pat00048
)를 기초로 회전 값의 오차(
Figure pat00049
)가 결정될 수 있다. 회전 값의 오차(
Figure pat00050
)는 변환된 제2 지역 지도(
Figure pat00051
)가 2차원 평면에 수직한 회전 축을 기준으로 추가로 회전해야 하는 값을 포함할 수 있다.
제2 지역 지도 보정 블록(320) 내에서, 회전 값의 오차(
Figure pat00052
)를 기초로, 변환된 제2 지역 지도(
Figure pat00053
)를 보정하여 보정된 제2 지역 지도(
Figure pat00054
)가 결정될 수 있다.
제1 지역 지도(
Figure pat00055
) 및 보정된 제2 지역 지도(
Figure pat00056
)는 지도 병합 블록(330) 내에서 병합되어 병합 지도(
Figure pat00057
)가 결정될 수 있다. 일 실시예에서, 지도 병합 블록(330)은 노이즈 제거 블록(331)을 더 포함할 수 있다. 이 경우, 지도 병합 블록(330) 내에서 제1 지역 지도(
Figure pat00058
) 및 보정된 제2 지역 지도(
Figure pat00059
)는 서로 연결되어, 연결 지도(
Figure pat00060
)가 결정될 수 있고, 연결 지도(
Figure pat00061
)는 노이즈 제거 블록(331)을 통해 노이즈가 제거되어 병합 지도(
Figure pat00062
)가 결정될 수 있다.
본 실시예의 각 지도들이 점유 격자 지도인 경우, 지도 병합 블록(330) 내에서 제1 지역 지도(
Figure pat00063
) 및 보정된 제2 지역 지도(
Figure pat00064
)가 서로 연결될 때 서로 겹치는 영역 또는 격자(grid)에 대해, 제1 지역 지도(
Figure pat00065
) 및 보정된 제2 지역 지도(
Figure pat00066
)가 서로 다른 값을 가질 수 있다. 예를 들어, 특정한 겹치는 격자에 대해 제1 지역 지도(
Figure pat00067
) 및 보정된 제2 지역 지도(
Figure pat00068
)가 각각 "점유됨(Occupied)" 및 "비어 있음(Empty)" 값을 가질 수 있다. 이러한 경우, 프로세서(110)는 "점유됨"을 "비어 있음"보다 우선하는 것으로 보아, 연결 지도(
Figure pat00069
)의 격자를 "점유됨"으로 할 수 있다. 동일한 방법으로 프로세서(110)는 "비어 있음"을 "알 수 없음"보다 우선하는 것으로 보아, 특정한 겹치는 격자에 대해 제1 지역 지도(
Figure pat00070
) 및 보정된 제2 지역 지도(
Figure pat00071
)가 각각 "비어 있음" 및 "알 수 없음(Unknown)" 값을 가지는 경우, 연결 지도(
Figure pat00072
)의 격자를 "비어 있음"으로 할 수 있다.
도 4 는 본 개시에 따른 일 실시예의 알고리즘을 나타낸다. 이하의 알고리즘은 도 3 에 나타난 블록을 알고리즘 형태로 풀어서 설명하는 것이므로, 도 3 과 중복되는 내용에 대해서는 설명을 생략한다.
일 실시예에 따라, 프로세서(110)는 도 4 에 나타난 알고리즘을 이용하여, 입력 정보(401)인 제1 지역 지도(
Figure pat00073
), 제2 지역 지도(
Figure pat00074
), 제1 지역 지도에서 제1 디바이스의 위치(
Figure pat00075
), 제2 지역 지도에서 제2 디바이스의 위치(
Figure pat00076
) 및 제1 디바이스가 획득한 제2 디바이스에 관한 이미지(
Figure pat00077
)를 획득하여, 출력 정보(402)인 병합 지도(
Figure pat00078
)를 출력할 수 있다.
단계 S410에서, 프로세서(110)는 이미지(
Figure pat00079
)를 기초로, 제1 디바이스에 대한 제2 디바이스의 상대 위치(
Figure pat00080
)를 확인할 수 있다. 구체적으로, 프로세서(110)는 학습된(Trained) 제1 인공신경망(Artificial Neural Network, ANN)을 사용하여 이미지(
Figure pat00081
)로부터 제1 디바이스에 대한 제2 디바이스의 상대 위치(
Figure pat00082
)를 확인할 수 있다. 보다 구체적으로, 제1 인공신경망은 입력된 이미지를 처리하여 이미지 센서에 대한 디바이스의 상대 위치를 출력하도록 학습된 제1 합성곱 신경망(Convolutional Neural Network, CNN)을 포함할 수 있다. 예를 들어, 제1 합성곱 신경망은 이미지(
Figure pat00083
)로부터 제2 디바이스의 외형의 전부 또는 일부를 식별하고, 이미지(
Figure pat00084
) 상에서의 픽셀 위치를 결정하고, 그 디바이스 또는 이동체까지의 상대 위치를 결정하도록 학습될 수 있다. 이것을 가능하게 하기 위하여, 제1 인공신경망 또는 제1 합성곱 신경망의 학습 과정에서 디바이스 또는 이동체를 다양한 각도 및 거리에서 바라본 이미지를 사용할 필요가 있다.
단계 S420에서, 프로세서(110)는 수학식 1을 이용하여 상대 위치(
Figure pat00085
), 제1 디바이스의 위치(
Figure pat00086
) 및 제2 디바이스의 위치(
Figure pat00087
) 정보를 기초로 변환 행렬(
Figure pat00088
)를 결정할 수 있다.
단계 S430에서, 프로세서(110)는 변환 행렬(
Figure pat00089
)를 기초로 제2 지역 지도(
Figure pat00090
)를 변환하여 변환된 제2 지역 지도(
Figure pat00091
)를 결정할 수 있다.
단계 S440에서, 프로세서(110)는 변환된 제1 지역 지도(
Figure pat00092
) 및 제2 지역 지도(
Figure pat00093
)를 기초로 회전 값의 오차(
Figure pat00094
)를 결정할 수 있고, 단계 S450에서 프로세서(110)는 회전 값의 오차(
Figure pat00095
)를 기초로, 변환된 제2 지역 지도(
Figure pat00096
)를 보정하여 보정된 제2 지역 지도(
Figure pat00097
)를 결정할 수 있다. 구체적으로, 프로세서(110)는 학습된 제2 인공신경망을 사용하여 제1 지역 지도(
Figure pat00098
) 및 변환된 제2 지역 지도(
Figure pat00099
)를 기초로 회전 값의 오차(
Figure pat00100
)를 결정하고, 회전 값의 오차(
Figure pat00101
)를 기초로 변환된 제2 지역 지도(
Figure pat00102
)를 보정할 수 있다. 보다 구체적으로, 제2 인공신경망은 입력된 두 개의 지역 지도를 처리하여 두 개의 지역 지도 중 적어도 하나의 회전 값의 오차를 출력하도록 학습된 제2 합성곱 신경망을 포함할 수 있다. 이를 가능하게 하기 위하여, 제2 합성곱 신경망의 학습 과정에서 두 개의 지역 지도를 올바르게 병합한 실내 환경의 지도를 사용할 필요가 있다.
단계 S460에서, 프로세서(110)는 제1 지역 지도(
Figure pat00103
) 및 보정된 제2 지역 지도(
Figure pat00104
)를 서로 연결하여, 연결 지도(
Figure pat00105
)를 결정할 수 있다.
단계 S470에서, 프로세서(110)는 연결 지도(
Figure pat00106
)의 노이즈를 제거하여 병합 지도(
Figure pat00107
)를 결정할 수 있다. 구체적으로, 프로세서(110)는 학습된 자기부호화기(Autoencoder)를 사용하여 병합된 지도의 노이즈를 제거할 수 있다. 보다 구체적으로, 프로세서(110)는 자기부호화기의 학습 과정에서 복원 데이터와 원본 데이터를 비교하는 신경망과의 경쟁으로 자기부호화기의 성능을 향상시키는 생성적 적대 신경망(Generative Adversarial Network, GAN)을 사용하여, 병합된 지도의 노이즈를 제거할 수 있다. 예를 들어, 자기부호화기는 노이즈가 제거된 지도인 복원 데이터를 노이즈가 없는 지도인 원본 데이터와 최대한 유사하게 만들도록 학습되는데, 자기부호화기의 성능을 향상시키기 위해, 학습 과정에서 복원 데이터와 원본 데이터를 구분하여 분류하도록 학습되는 판별자(Discriminator) 신경망을 활용할 수 있다. 즉, 자기부호화기는 생성적 적대 신경망의 생성자(Generator) 신경망에 포함되어, 판별자 신경망과 함께 생성적 적대 신경망을 구성하고, 판별자 신경망과 경쟁하며 학습될 수 있다. 이 경우, 자기부호화기는 충분히 높은 확률로 판별자 신경망이 복원 데이터를 원본 데이터라고 분류할 정도로 판별자 신경망을 속일 수 있을 때까지 학습될 수 있다.
단계 S480에서, 프로세서(110)는 병합 지도(
Figure pat00108
)를 출력할 수 있다.
도 5 는 일 실시예에 따른 전자 장치의 동작 방법을 나타낸다. 도 5 의 동작 방법의 각 단계는 도 1 의 전자 장치(100)에 의해 수행될 수 있으므로, 도 1 과 중복되는 내용에 대해서는 설명을 생략한다.
단계 S500에서, 전자 장치(100)는 제1 디바이스의 제1 지역 지도, 제1 지역 지도에서 제1 디바이스의 위치, 제2 디바이스의 제2 지역 지도, 제2 지역 지도에서 제2 디바이스의 위치, 및 제1 디바이스가 획득한 제2 디바이스에 관한 이미지에 관한 정보를 획득할 수 있다.
제1 지역 지도 및 제2 지역 지도는 점유 격자 지도일 수 있다.
단계 S510에서, 전자 장치(100)는 학습된 제1 인공신경망을 사용하여 이미지로부터 제1 디바이스에 대한 제2 디바이스의 상대 위치를 확인할 수 있다.
제1 인공신경망은, 입력된 이미지를 처리하여 이미지 센서에 대한 디바이스의 상대 위치를 출력하도록 학습된 제1 합성곱 신경망(Convolutional Neural Network, CNN)을 포함할 수 있다.
단계 S520에서, 전자 장치(100)는 상대 위치, 제1 디바이스의 위치, 및 제2 디바이스의 위치에 기초하여, 제1 지역 지도에 대응하도록 제2 지역 지도를 변환할 수 있다.
상대 위치는 특정 좌표 축에 대한 회전 값을 포함할 수 있고, 전자 장치(100)는 학습된 제2 인공신경망을 사용하여 제1 지역 지도 및 변환된 제2 지역 지도를 기초로 회전 값의 오차를 결정하고, 회전 값의 오차를 기초로 변환된 제2 지역 지도를 보정할 수 있다.
제2 인공신경망은 제1 지역 지도 및 변환된 제2 지역 지도를 처리하여 변환된 제2 지역 지도의 회전 값의 오차를 출력하도록 학습된 제2 합성곱 신경망을 포함할 수 있다.
단계 S530에서, 전자 장치(100)는 제1 지역 지도와 변환된 제2 지역 지도를 병합할 수 있다.
전자 장치(100)는 제1 지역 지도와 보정된 제2 지역 지도를 병합(Merge)할 수 있다.
전자 장치(100)는 학습된 자기부호화기(Autoencoder)를 사용하여 병합된 지도의 노이즈(Noise)를 제거할 수 있다.
전자 장치(100)는 자기부호화기의 학습 과정에서 복원 데이터와 원본 데이터를 비교하는 신경망과의 경쟁으로 자기부호화기의 성능을 향상시키는 생성적 적대 신경망(Generative Adversarial Network, GAN)을 사용하여, 병합된 지도의 노이즈를 제거할 수 있다.
전자 장치(100)는 병합된 지도를 실시간으로 출력할 수 있다.
본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어, 소프트웨어, 또는 이들의 조합들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 데이터 처리 또는 이들의 조합 등을 위하여 종래 기술을 채용할 수 있다.

Claims (10)

  1. 전자 장치의 지도 병합 방법에 있어서,
    제1 디바이스의 제1 지역 지도(local map), 상기 제1 지역 지도에서 상기 제1 디바이스의 위치, 제2 디바이스의 제2 지역 지도, 상기 제2 지역 지도에서 상기 제2 디바이스의 위치, 및 상기 제1 디바이스가 획득한 제2 디바이스에 관한 이미지에 관한 정보를 획득하는 단계;
    학습된(Trained) 제1 인공신경망(Artificial Neural Network, ANN)을 사용하여 상기 이미지로부터 상기 제1 디바이스에 대한 상기 제2 디바이스의 상대 위치를 확인하는 단계;
    상기 상대 위치, 상기 제1 디바이스의 위치, 및 상기 제2 디바이스의 위치에 기초하여, 상기 제1 지역 지도에 대응하도록 상기 제2 지역 지도를 변환하는 단계; 및
    상기 제1 지역 지도와 상기 변환된 제2 지역 지도를 병합(Merge)하는 단계를 포함하는, 지도 병합 방법.
  2. 제1항에 있어서,
    상기 제1 인공신경망은,
    입력된 이미지를 처리하여 이미지 센서에 대한 디바이스의 상대 위치를 출력하도록 학습된 제1 합성곱 신경망(Convolutional Neural Network, CNN)을 포함하는, 지도 병합 방법.
  3. 제1항에 있어서,
    상기 병합하는 단계는,
    학습된 자기부호화기(Autoencoder)를 사용하여 병합된 지도의 노이즈(Noise)를 제거하는 단계를 포함하는, 지도 병합 방법.
  4. 제3항에 있어서,
    상기 병합하는 단계는,
    상기 자기부호화기의 학습 과정에서 복원 데이터와 원본 데이터를 비교하는 신경망과의 경쟁으로 상기 자기부호화기의 성능을 향상시키는 생성적 적대 신경망(Generative Adversarial Network, GAN)을 사용하여, 상기 병합된 지도의 노이즈를 제거하는 단계를 포함하는, 지도 병합 방법.
  5. 제1항에 있어서,
    상기 상대 위치는 특정 좌표 축에 대한 회전 값을 포함하고,
    상기 변환하는 단계는,
    학습된 제2 인공신경망을 사용하여 상기 제1 지역 지도 및 상기 변환된 제2 지역 지도를 기초로 상기 회전 값의 오차를 결정하고, 상기 회전 값의 오차를 기초로 상기 변환된 제2 지역 지도를 보정하는 단계를 포함하고,
    상기 병합하는 단계는,
    상기 제1 지역 지도와 상기 보정된 제2 지역 지도를 병합(Merge)하는 단계를 포함하는, 지도 병합 방법.
  6. 제5항에 있어서,
    상기 제2 인공신경망은,
    상기 제1 지역 지도 및 상기 변환된 제2 지역 지도를 처리하여 상기 변환된 제2 지역 지도의 회전 값의 오차를 출력하도록 학습된 제2 합성곱 신경망을 포함하는, 지도 병합 방법.
  7. 제1항에 있어서,
    상기 제1 지역 지도 및 상기 제2 지역 지도는 점유 격자 지도(occupancy grid map)인, 지도 병합 방법.
  8. 제1항에 있어서,
    상기 병합된 지도를 실시간으로 출력하는 단계를 포함하는, 지도 병합 방법.
  9. 전자 장치로서,
    적어도 하나의 프로그램이 저장된 메모리; 및
    상기 적어도 하나의 프로그램을 실행함으로써,
    제1 디바이스의 제1 지역 지도(local map), 상기 제1 지역 지도에서 상기 제1 디바이스의 위치, 제2 디바이스의 제2 지역 지도, 상기 제2 지역 지도에서 상기 제2 디바이스의 위치, 및 상기 제1 디바이스가 획득한 제2 디바이스에 관한 이미지에 관한 정보를 획득하고,
    학습된(Trained) 제1 인공신경망(Artificial Neural Network, ANN)을 사용하여 상기 이미지로부터 상기 제1 디바이스에 대한 상기 제2 디바이스의 상대 위치를 확인하고,
    상기 상대 위치, 상기 제1 디바이스의 위치, 및 상기 제2 디바이스의 위치에 기초하여, 상기 제1 지역 지도에 대응하도록 상기 제2 지역 지도를 변환하고,
    상기 제1 지역 지도와 상기 변환된 제2 지역 지도를 병합(Merge)하는 프로세서를 포함하는, 전자 장치.
  10. 지도 병합 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적 기록매체로서,
    상기 지도 병합 방법은,
    제1 디바이스의 제1 지역 지도(local map), 상기 제1 지역 지도에서 상기 제1 디바이스의 위치, 제2 디바이스의 제2 지역 지도, 상기 제2 지역 지도에서 상기 제2 디바이스의 위치, 및 상기 제1 디바이스가 획득한 제2 디바이스에 관한 이미지에 관한 정보를 획득하는 단계;
    학습된(Trained) 제1 인공신경망(Artificial Neural Network, ANN)을 사용하여 상기 이미지로부터 상기 제1 디바이스에 대한 상기 제2 디바이스의 상대 위치를 확인하는 단계;
    상기 상대 위치, 상기 제1 디바이스의 위치, 및 상기 제2 디바이스의 위치에 기초하여, 상기 제1 지역 지도에 대응하도록 상기 제2 지역 지도를 변환하는 단계; 및
    상기 제1 지역 지도와 상기 변환된 제2 지역 지도를 병합(Merge)하는 단계를 포함하는, 비일시적 기록매체.
KR1020210131814A 2021-10-05 2021-10-05 전자 장치의 지도 병합 방법 KR102639524B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210131814A KR102639524B1 (ko) 2021-10-05 2021-10-05 전자 장치의 지도 병합 방법
US17/960,253 US20230118831A1 (en) 2021-10-05 2022-10-05 Map merging method for electronic apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210131814A KR102639524B1 (ko) 2021-10-05 2021-10-05 전자 장치의 지도 병합 방법

Publications (2)

Publication Number Publication Date
KR20230048880A true KR20230048880A (ko) 2023-04-12
KR102639524B1 KR102639524B1 (ko) 2024-02-22

Family

ID=85982876

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210131814A KR102639524B1 (ko) 2021-10-05 2021-10-05 전자 장치의 지도 병합 방법

Country Status (2)

Country Link
US (1) US20230118831A1 (ko)
KR (1) KR102639524B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101976241B1 (ko) * 2016-01-22 2019-08-28 경희대학교 산학협력단 다중로봇의 자기위치인식에 기반한 지도작성 시스템 및 그 방법
US20200116493A1 (en) * 2018-10-11 2020-04-16 Zillow Group, Inc. Automated Mapping Information Generation From Inter-Connected Images
WO2020190387A1 (en) * 2019-03-19 2020-09-24 Microsoft Technology Licensing, Llc Relative spatial localization of mobile devices
KR20210057402A (ko) * 2019-11-12 2021-05-21 네이버랩스 주식회사 비주얼 로컬리제이션과 오도메트리를 기반으로 한 경로 추적 방법 및 시스템
US20210187391A1 (en) * 2019-12-20 2021-06-24 Niantic, Inc. Merging local maps from mapping devices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101976241B1 (ko) * 2016-01-22 2019-08-28 경희대학교 산학협력단 다중로봇의 자기위치인식에 기반한 지도작성 시스템 및 그 방법
US20200116493A1 (en) * 2018-10-11 2020-04-16 Zillow Group, Inc. Automated Mapping Information Generation From Inter-Connected Images
WO2020190387A1 (en) * 2019-03-19 2020-09-24 Microsoft Technology Licensing, Llc Relative spatial localization of mobile devices
KR20210057402A (ko) * 2019-11-12 2021-05-21 네이버랩스 주식회사 비주얼 로컬리제이션과 오도메트리를 기반으로 한 경로 추적 방법 및 시스템
US20210187391A1 (en) * 2019-12-20 2021-06-24 Niantic, Inc. Merging local maps from mapping devices

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Pascalet al., Extracting and Composing Robust Features with Denoising Auto encoders, Proceedings of the 25th International Conference on Machine Learning(2008)* *
Sajad, et al., Neural Network-based Multiple Robot Simultaneous Localization and Mapping, 2011 IEEE/RSJ International Conference on Intelligent Robots and Systems(2011)* *

Also Published As

Publication number Publication date
KR102639524B1 (ko) 2024-02-22
US20230118831A1 (en) 2023-04-20

Similar Documents

Publication Publication Date Title
CN107990899B (zh) 一种基于slam的定位方法和系统
JP6364049B2 (ja) 点群データに基づく車両輪郭検出方法、装置、記憶媒体およびコンピュータプログラム
JP6255085B2 (ja) 位置特定システムおよび位置特定方法
JP7259749B2 (ja) 情報処理装置、および情報処理方法、プログラム、並びに移動体
JP6197388B2 (ja) 距離測定装置、距離測定方法、およびプログラム
US10645365B2 (en) Camera parameter set calculation apparatus, camera parameter set calculation method, and recording medium
WO2020133172A1 (zh) 图像处理方法、设备及计算机可读存储介质
KR101880185B1 (ko) 이동체 포즈 추정을 위한 전자 장치 및 그의 이동체 포즈 추정 방법
KR20210049581A (ko) 이동체의 전방향에 대한 거리 취득 장치 및 방법
JP4132068B2 (ja) 画像処理装置及び三次元計測装置並びに画像処理装置用プログラム
KR20200062193A (ko) 정보 처리 장치, 이동 장치, 정보 처리 방법, 이동 장치 제어 방법, 및 프로그램
CN103900473A (zh) 一种基于摄像头与重力感应器融合的智能移动设备六自由度位姿估计方法
US20210233307A1 (en) Landmark location reconstruction in autonomous machine applications
CN112017236A (zh) 一种基于单目相机计算目标物位置的方法及装置
US20210156710A1 (en) Map processing method, device, and computer-readable storage medium
WO2020019175A1 (zh) 图像处理方法和设备、摄像装置以及无人机
JP2014092922A (ja) 検出装置、検出方法及び検出プログラム
US20180354138A1 (en) System, method, and program for adjusting altitude of omnidirectional camera robot
KR102639524B1 (ko) 전자 장치의 지도 병합 방법
JP6991525B1 (ja) ウェイポイント高さ座標設定方法及び管理サーバ、情報処理システム、プログラム
US20230121905A1 (en) Information processing apparatus, information processing method, and program
WO2019064457A1 (ja) コンピュータシステム、位置推測方法及びプログラム
CN112633043B (zh) 一种车道线确定方法、装置、电子设备及存储介质
KR20230029981A (ko) 포즈 결정을 위한 시스템 및 방법
CN113034538A (zh) 一种视觉惯导设备的位姿跟踪方法、装置及视觉惯导设备

Legal Events

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