[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20210029586A - 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 방법 및 이를 구현하는 로봇과 클라우드 서버 - Google Patents

이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 방법 및 이를 구현하는 로봇과 클라우드 서버 Download PDF

Info

Publication number
KR20210029586A
KR20210029586A KR1020190111013A KR20190111013A KR20210029586A KR 20210029586 A KR20210029586 A KR 20210029586A KR 1020190111013 A KR1020190111013 A KR 1020190111013A KR 20190111013 A KR20190111013 A KR 20190111013A KR 20210029586 A KR20210029586 A KR 20210029586A
Authority
KR
South Korea
Prior art keywords
image
characteristic
robot
control unit
objects
Prior art date
Application number
KR1020190111013A
Other languages
English (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 KR1020190111013A priority Critical patent/KR20210029586A/ko
Priority to US16/855,979 priority patent/US11688081B2/en
Publication of KR20210029586A publication Critical patent/KR20210029586A/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/008Manipulators for service tasks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/006Controls for manipulators by means of a wireless system for controlling one or several manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/088Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
    • B25J13/089Determining the position of the robot with reference to its environment
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/14Measuring arrangements characterised by the use of optical techniques for measuring distance or clearance between spaced objects or spaced apertures
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/579Depth or shape recovery from multiple images from motion
    • 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
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/462Salient features, e.g. scale invariant feature transforms [SIFT]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • 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]
    • 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/20112Image segmentation details
    • G06T2207/20164Salient point detection; Corner detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Automation & Control Theory (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Remote Sensing (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Electromagnetism (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Image Analysis (AREA)
  • Manipulator (AREA)

Abstract

본 발명은 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 방법 및 이를 구현하는 로봇과 클라우드 서버에 관한 것으로, 본 발명의 일 실시예에 의한 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇은 슬램을 수행하는데 필요한 이미지를 획득하는 카메라 센서와, 로봇이 SLAM을 수행하는 필요한 정보를 저장하는 맵 저장부와, 이미지에서 특징적 객체를 검증 및 추출하여 이미지가 획득된 위치 정보와 특징적 객체, 이미지 내의 특징적 객체의 좌표 정보를 맵 저장부에 저장하는 제어부를 포함한다.

Description

이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 방법 및 이를 구현하는 로봇과 클라우드 서버{METHOD OF SLAM BASED ON SALIENT OBJECT IN IMAGE AND ROBOT AND CLOUD SERVER IMPLEMENTING THEREOF}
본 발명은 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 방법 및 이를 구현하는 로봇과 클라우드 서버에 관한 기술이다.
대형 마트, 백화점, 공항, 골프장 등 인적, 물적 교류가 활발하게 발생하는 공간에는 사람들에게 정보를 제공하기 위해, 또는 사람들에게 편의를 제공하기 위해 실내 또는 실내에 연결되는 실외 공간에 로봇이 배치되어 이동할 수 있다. 또한, 로봇은 차량의 형상을 가지거나 인도 위를 주행하는 방식으로 실외를 이동할 수 있다. 이들 로봇은 배송, 치안, 청소, 안내 등의 기능을 할 수 있다.
한편, 이러한 로봇들이 사람의 제어가 없이 자율 주행하거나, 혹은 사람의 일시적 제어에 기반한 반자율 주행을 수행하기 위해서는 로봇의 현재 위치를 확인하고 주변에 배치된 장애물을 회피하며 목적한 지점으로 이덩하는데 필요한 정보를 저장하거나 외부로부터 수신하는 것일 필요하다.
이를 위해서, 로봇은 공간에 대한 정보인 맵 정보를 저장할 수 있으며, 맵 정보를 실시간으로 서버나 인접한 다른 로봇으로부터 수신할 수 있다.
그런데, 이러한 과정에서 로봇이 현재 위치를 정확하게 확인하기 위해서는 현재 위치에서 취득한 정보를 맵 정보와 비교하는 것이 필요하다. 이를 위해 맵 정보는 공간에 대한 정밀한 정보를 보유해야 한다. 또한, 맵 정보는 검색에 용이한 정보를 보유하는 것을 필요로 한다.
이에, 본 명세서에서는 로봇이 슬램(SLAM, simultaneous localization and mapping)을 수행하는데 적합한 맵을 생성하는 방안을 제시한다.
본 명세서에서는 전술한 문제점을 해결하기 위한 것으로, 로봇이 맵을 생성하여 위치 추정을 수행하는데 필요한 이미지 정보들과 특징적 객체를 로봇이나 클라우드 서버가 저장할 수 있도록 한다.
또한, 본 명세서에서는 위치 추정의 정확도와 속도를 높이는데 적합한 특징적 객체를 이미지 내에서 추출하고자 한다.
또한, 본 명세서에서는 특징적 객체의 이미지 내의 위치를 함께 저장하여 로봇이 보다 정확하게 위치를 추정할 수 있도록 한다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
발명의 일 실시예에 의한 이미지 내의 특징적 객체에 기반하여 SLAM을 수행하는 로봇은 SLAM(simultaneous localization and mapping)을 수행하는데 필요한 이미지를 획득하는 카메라 센서와, 로봇이 SLAM을 수행하는 필요한 정보를 저장하는 맵 저장부와, 이미지에서 특징적 객체를 검증 및 추출하여 이미지가 획득된 위치 정보와 특징적 객체, 이미지 내의 특징적 객체의 좌표 정보를 맵 저장부에 저장하는 제어부를 포함한다.
발명의 일 실시예에 의한 이미지 내의 특징적 객체에 기반하여 SLAM을 수행하는 로봇은 이미지 내에서 하나 이상의 객체를 감지하여, 감지된 객체가 특징적 객체에 해당하는지 검증하여 검증된 결과에 따라 객체를 특징적 객체로 맵저장부에 저장한다.
발명의 일 실시예에 의한 이미지 내의 특징적 객체에 기반하여 SLAM을 수행하는 로봇은 제1시점에 획득한 제1이미지 및 제1시점에 후속하는 제2시점에 획득한 제2이미지에 공통으로 포함된 객체를 특징적 객체로 검증한다.
발명의 일 실시예에 의한 이미지 내의 특징적 객체에 기반하여 SLAM을 수행하는 로봇은 이미지와 감지된 객체 및 객체의 주변에 배치된 바운딩 박스를 인터페이스부에서 출력하고 그에 대한 선택을 입력받는다.
발명의 일 실시예에 의한 클라우드 서버는 로봇으로부터 SLAM(simultaneous localization and mapping)을 수행하는데 필요한 이미지를 수신하여 이미지에서 특징적 객체를 검증 및 추출하여 이미지가 획득된 위치 정보와 특징적 객체, 이미지 내의 특징적 객체의 좌표 정보를 맵 저장부에 저장한다.
발명의 일 실시예에 의한 클라우드 서버는 이미지 내에서 하나 이상의 객체를 감지하여, 감지된 객체가 특징적 객체에 해당하는지 검증하여 검증된 결과에 따라 객체를 특징적 객체로 맵저장부에 저장한다.
발명의 일 실시예에 의한 이미지 내의 특징적 객체에 기반하여 SLAM을 수행하는 방법은 로봇의 이동부가 로봇을 이동시키는 과정에서 로봇의 카메라 센서가 SLAM(simultaneous localization and mapping)을 수행하는데 필요한 이미지를 획득하는 단계와, 로봇의 제어부가 이미지에서 특징적 객체를 검증 및 추출하는 단계와, 제어부가 이미지가 획득된 위치 정보와 특징적 객체, 이미지 내의 특징적 객체의 좌표 정보를 맵 저장부에 저장하는 단계를 포함한다.
본 발명의 실시예들을 적용할 경우, 로봇이 맵을 생성하여 위치 추정을 수행하는데 필요한 이미지 정보들과 특징적 객체를 로봇 또는 클라우드 서버가 저장할 수 있다.
또한, 본 발명의 실시예들을 적용할 경우, 로봇 또는 클라우드 서버는 위치 추정의 정확도와 속도를 높이는데 적합한 특징적 객체를 이미지 내에서 추출할 수 있으며, 또한 특징적 객체인지 여부를 검증할 수 있다.
또한, 본 발명의 실시예들을 적용할 경우, 특징적 객체의 이미지 내의 위치를 함께 저장하여 로봇이 보다 정확하게 위치를 추정할 수 있도록 한다.
본 발명의 효과는 전술한 효과에 한정되지 않으며, 본 발명의 당업자들은 본 발명의 구성에서 본 발명의 다양한 효과를 쉽게 도출할 수 있다.
도 1은 맵을 생성하는 로봇의 구성을 보여준다.
도 2는 본 발명의 일 실시예에 의한 제어모듈의 세부 구성을 보여준다.
도 3은 본 발명의 일 실시예에 의한 클라우드 서버의 구성을 보여준다.
도 4는 본 발명의 일 실시예에 의한 특징적 객체를 선택하는 과정을 보여준다.
도 5는 본 발명의 일 실시예에 의한 특징적 객체 검증 과정을 보여준다.
도 6은 본 발명의 일 실시예에 의한 특징적 객체의 주변에 바운딩 박스의 배치를 보여준다.
도 7은 본 발명의 일 실시예에 의한 로봇이 특징적 객체를 판단하는 과정을 보여준다.
도 8은 본 발명의 일 실시예에 의한 로봇이 이동 과정에서 획득한 이미지를 맵 저장부에 저장된 이미와 비교하는 실시예를 보여준다.
도 9는 본 발명의 일 실시예에 의한 특징적 객체를 이용하여 맵 저장부에서 포즈 정보를 산출하는 로컬라이제이션 과정을 보여준다.
도 10은 본 발명의 일 실시예에 의한 연속 촬영된 이미지에서 로봇이 객체의 이동을 감지하여 특징적 객체를 판단하는 과정을 보여준다.
도 11은 본 발명의 일 실시예에 의한 로봇의 인터페이스부가 특징적 객체를 출력하고 이에 대한 선택을 입력받는 과정을 보여준다.
도 12는 본 발명의 일 실시예에 의한 바운딩 박스를 수정한 결과를 보여준다.
도 13은 본 발명의 일 실시예에 의한 클라우드 서버의 또다른 구성을 보여준다.
이하, 도면을 참조하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조 부호를 붙이도록 한다. 또한, 본 발명의 일부 실시예들을 예시적인 도면을 참조하여 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가질 수 있다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 수 있다.
본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질, 차례, 순서 또는 개수 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 다른 구성 요소가 "개재"되거나, 각 구성 요소가 다른 구성 요소를 통해 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
또한, 본 발명을 구현함에 있어서 설명의 편의를 위하여 구성요소를 세분화하여 설명할 수 있으나, 이들 구성요소가 하나의 장치 또는 모듈 내에 구현될 수도 있고, 혹은 하나의 구성요소가 다수의 장치 또는 모듈들에 나뉘어져서 구현될 수도 있다.
이하, 본 명세서에서 로봇은 다양한 형상을 가지며, 특정한 목적(배송, 청소, 보안, 모니터링, 안내 등)을 가지거나 혹은 로봇이 이동하는 공간의 특성에 따른 기능을 제공하며 이동하는 장치를 포함한다. 따라서, 본 명세서에서의 로봇은 소정의 정보와 센서를 이용하여 이동할 수 있는 이동수단을 보유하며 소정의 기능을 제공하는 장치를 통칭한다.
본 명세서에서 로봇은 맵을 보유하면서 이동할 수 있다. 맵은 공간에서 이동하지 않는 것으로 확인된 거리의 이미지, 고정된 벽, 건물, 계단 등 고정 객체에 대한 정보를 의미한다. 또한, 주기적으로 배치되는 이동 장애물, 즉 동적인 객체들에 대한 정보도 맵 상에 저장될 수 있다.
본 명세서에서 맵을 생성하는 것은 로봇이 될 수 있다. 다만, 맵을 생성하는 로봇과 해당 맵을 탑재하여 이동하는 로봇은 반드시 동일한 구성을 가질 필요는 없다. 맵을 생성하는 로봇은 맵 생성에 적합한 제1그룹의 구성요소를 포함하며, 맵을 이용하여 이동하는 로봇은 그에 적합한 제2그룹의 구성요소를 포함한다. 그리고 제1그룹의 구성요소와 제2그룹의 구성요소는 반드시 일치할 필요가 없다.
본 명세서에서 로봇은 클라우드 서버와 통신으로 정보를 송수신하며, 이 과정에서 맵 정보를 송수신할 수도 있다. 또는 로봇이 위치한 영역을 포함한 일정 범위 내의 맵 정보를 클라우드 서버가 로봇에게 전송하고, 로봇은 이를 기반으로 슬램을 수행할 수 있다.
로봇이 SLAM을 수행하기 위해 사물들의 위치를 확인하는 라이다 센서 또는 이미지를 촬영하는 카메라 센서를 사용할 수도 있다. 특히, 실외 공간과 같이 넓은 공간을 주행하는 경우에 로봇은 공간에 대한 이미지 정보를 맵에 저장할 수 있다. 이때, 맵에 저장되는 이미지 정보는 단순한 이미지가 아니라 이미지 내에 특징적인 부분에 대한 정보를 포함한다.
따라서, 로봇이 위치 추정의 속도 또는 정확도를 높이기 위해 맵 생성 과정에서 특징적인 부분을 자동으로 선별하고 자동으로 해당 부분을 맵에 등록할 수 있다. 또는 로봇이 사용자에게 특징적인 부분들에 대한 후보 정보를 제공하여 사용자가 해당 후보들 중에서 선택한 후 해당 특징적인 부분을 맵에 등록할 수 있다.
본 발명의 실시예에서는 슬램(simultaneous localization and mapping)을 수행하는데 필요한 이미지를 획득하는 카메라 센서가 로봇에 탑재된다. 그리고 로봇은 카메라 센서를 이용하여 맵을 생성하는 과정에서 이미지 내에서 특징적 객체(Salient object)에 대한 정보를 저장하는 과정에 대해 살펴본다. 특징적 객체란 공간을 식별하는데 있어 필요한 정보로, 예를 들어 간판, 표시팻말 등을 의미한다. 특징적 객체는 이미지 내의 특징점(feature)이 될 수 있다.
또한, 로봇은 누적된 이미지에서 슬램에 적합한 특징적 객체를 추출할 수 있다. 그리고 로봇은 인공지능을 이용하여 누적된 이미지들 중에서 특정 이미지를 쉽게 구분할 수 있는 특징적 객체를 해당 이미지 내에서 추출할 수 있다.
도 1은 맵을 생성하는 로봇의 구성을 보여준다. 여기서 로봇은 공간을 이동하며 카메라 센서를 이용하여 이미지를 촬영하고, 촬영한 이미지 내에서 특징적 객체를 추출하여 맵에 저장하는 로봇이다. 도 1의 구성은 맵 생성로봇이다.
도 1의 구성은 맵 생성 로봇에도 해당하지만 이와 다른 명칭으로 맵 생성 장치 또는 줄여서 맵퍼 장치(mapper device)로 지칭될 수 있다. 맵 생성 로봇은 특정한 외관의 로봇에 한정되는 것이 아니며, 공간을 이동하며 외부를 촬영하여 이미지를 저장하고, 여기서 특징적 객체를 추출하는 모든 종류의 장치를 포함한다.
이하, 본 명세서에서 특징적 객체는 이미지 내에서 확인된 객체를 중심으로 설명한다. 그러나 본 발명은 이에 한정되는 것이 아니다. 3차원 라이다 센서나 2차원 라이다 센서가 생성한 라이다 센싱 데이터 내에서 로봇은 특정한 영역을 특징적 객체로 설정할 수 있다.
한편, 로봇(100)은 그 내부에 제어모듈(150)을 더 포함할 수 있다. 제어모듈(150)은 일종의 컴퓨터 또는 프로세서와 같이 로봇(100)을 제어한다. 따라서 제어모듈(150)은 로봇(100)내에 배치되어 메인 프로세서와 유사한 기능을 수행하며, 사용자와의 인터랙션(interaction)을 담당할 수 있다. 또한, 제어모듈(150)은 클라우드 서버와의 통신을 담당한다.
로봇의 이동과 주변의 사물을 감지하여 로봇을 제어하기 위해 제어모듈(150)이 로봇(100) 내부에 탑재된다. 로봇제어모듈(150)은 소프트웨어 모듈 또는 이를 하드웨어로 구현한 칩 등으로 구현 가능하다.
도 1에 도시된 바와 같이 로봇(100)은 제어모듈(150), 수납부(110), 기능부(120), 배터리(180), 이동부(190)를 포함한다. 도 1의 로봇은 사용 목적이나 분야에 따라 산업용, 의료용, 가정용, 군사용 등으로 분류할 수 있다.
로봇(100)은 수납부(110)를 선택적으로 포함한다. 수납부(110)는 사용자에 의해 사물이 수납되거나 적재되는 공간이다. 또한, 로봇은 수납부(110)를 가지고 사용자를 추종하여 이동할 수도 있다.
기능부(120)는 로봇에게 부여된 소정의 기능을 수행하는 구성요소이다. 청소 기능의 로봇에 있어서 기능부(120)는 청소를 위한 물걸레, 흡입기 등을 포함한다. 배송을 위한 로봇에 있어서 기능부(120)는 수납공간, 수납된 짐을 이동시키는 운반부 등을 포함한다. 보안을 위한 로봇에 있어서 기능부(120)는 안전에 필요한 검사기(공기질 검사, 폭발물 검사 등)를 포함한다.
배터리(180)는 로봇(100)이 동작하는데 필요한 전기적 에너지를 제공한다. 이동부(190)는 로봇의 이동 기능을 제공한다.
로봇은 액츄에이터 또는 모터를 포함하는 이동부(190)를 구비하여 로봇 관절을 움직이는 등의 다양한 물리적 동작을 수행할 수 있다. 또한, 이동 가능한 로봇은 이동부에 휠, 브레이크, 프로펠러 등이 포함되어, 이동부를 통해 지상에서 주행하거나 공중에서 비행할 수 있다.
또한 로봇은 자율주행을 수행할 수 있다. 자율 주행은 스스로 주행하는 기술을 의미하며, 자율 주행 로봇은 사용자의 조작 없이 또는 사용자의 최소한의 조작으로 주행한다.
예컨대, 자율 주행에는 주행 중인 공간의 다른 장애물과 거리를 유지하는 기술, 어댑티브 크루즈 컨트롤과 같이 속도를 자동으로 조절하는 기술, 정해진 경로를 따라 자동으로 주행하는 기술, 목적지가 설정되면 자동으로 경로를 설정하여 주행하는 기술 등이 모두 포함될 수 있다.
로봇은 자율 주행을 위해 내연 기관 또는 전기 모터를 구비할 수 있으며 이들은 이동부(190)의 하위 구성요소가 된다.
도 2는 본 발명의 일 실시예에 의한 제어모듈의 세부 구성을 보여준다.
제어모듈(150)의 구성요소들은 물리적 위치나 결합 방식에 상관없이 논리적으로 제어모듈의 구성요소이다.
제어모듈(150)은 로봇이 맵을 생성하는 기능과 맵을 이용하여 로봇의 위치를 추정하는 기능 둘 다 수행할 수 있도록 로봇을 제어한다.
또는 제어모듈(150)은 로봇이 맵을 생성하는 기능만 제공할 수 있도록 제어한다.
또는 제어모듈(150)은 로봇은 맵을 이용하여 로봇의 위치를 추정하는 기능만 제공할 수 있도록 제어한다. 즉, 제어모듈(150)은 로봇이 맵을 생성하거나, 또는 맴을 이용하여 위치를 추정하거나, 혹은 전술한 두 기능 모두를 수행하도록 로봇을 제어할 수 있다.
로봇은 로봇이 이동 과정에서 센서들이 획득한 정보를 클라우드 서버에 전송할 수 있다. 센서들의 종류에 대해 살펴본다.
먼저 라이다 센서(LiDAR Sensor)(220)는 2차원 또는 3차원으로 주변의 사물들을 센싱할 수 있다. 2차원 라이다 센서의 경우 로봇을 중심으로 360도 범위 또는 그보다 작은 범위 내의 사물의 위치를 센싱할 수 있다. 특정 위치에서 센싱한 라이다 정보는 센서 데이터의 일 실시예가 된다.
또는 라이다 센서(220)로 확보한 센서 데이터를 라이다 프레임이라고 지칭할 수 있다. 즉, 라이다 센서(220)는 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 라이다 프레임을 생성한다.
카메라 센서(230)는 일반 카메라를 일 실시예로 한다. 시야각의 제약을 해결하기 위해 둘 이상의 카메라 센서(230)를 사용할 수 있다. 특정 위치에서 촬영한 영상은 이미지 정보를 구성한다. 즉, 카메라 센서(230)는 로봇의 외부에 배치된 사물을 촬영하여 생성한 이미지 정보는 센서 데이터의 일 실시예가 된다.
또는, 카메라 센서(230)로 확보한 센서 데이터를 비주얼 프레임을 프레임이라고 지칭할 수 있다. 즉, 카메라 센서(230)는 로봇의 외부를 촬영하여 비주얼 프레임을 생성한다.
이하 본 발명을 적용하는 로봇(100)은 라이다 센서(220) 또는 카메라 센서(230) 중 어느 하나 또는 둘을 이용하여 SLAM(simultaneous localization and mapping)을 수행한다.
SLAM 과정에서 로봇(100)은 라이다 프레임과 비주얼 프레임을 각각 이용하거나 또는 이들을 결합하여 맵을 생성하거나 위치를 추정할 수 있다.
인터페이스부(290)는 사용자로부터 정보를 입력받는다. 터치 입력, 음성 입력 등 다양한 정보를 사용자로부터 입력받고, 이에 대한 결과를 출력한다. 또한 인터페이스부(290)는 로봇(100)이 저장하는 맵을 출력하거나, 로봇이 이동하는 과정을 맵과 오버랩 하여 출력할 수 있다.
또한, 인터페이스부(290)는 사용자에게 소정의 정보를 제공할 수 있다.
제어부(250)는 후술할 맵을 생성하고 이 맵을 기반으로 로봇이 이동하는 과정에서 로봇의 위치를 추정한다. 또는 클라우드 서버와 통신하여 정보를 송수신하고 이를 기반으로 맵을 생성하거나 로봇의 위치를 추정할 수 있다.
통신부(280)는 로봇(100)이 다른 로봇 또는 외부의 클라우드 서버와 통신하여 정보를 송수신할 수 있도록 한다.
맵 저장부(210)는 로봇이 이동하는 공간에 대한 맵을 저장한다. 특히, 이 맵은 로봇이 자체적으로 작성한 맵이 될 수도 있다. 또는 이 맵은 로봇이 클라우드 서버와 동기화시켜 저장한 맵이 될 수 있다. 맵 저장부(210)는 로봇이 선택적으로 보유할 수 있다. 예를 들어 로봇(100)은 맵을 저장하지 않고 클라우드 서버에 저장된 맵을 이용할 수 있다.
휠 인코더(Wheel Encoder)(260)는 로봇의 이동부를 구성하는 바퀴의 회전이나 방향 등의 정보를 취합하여 휠 오도메트리 정보를 생성하고 이를 제어부(250)에게 제공한다. 제어부(250)는 휠 인코더(260)가 제공한 정보에 기반하여 이동 거리나 이동 방향 등을 산출할 수 있다.
인공지능부(255)에 대해서는 후술한다.
한편, 로봇이 맵을 작성하는 과정에서 클라우드 서버가 맵 생성의 일부 기능을 수행할 수 있다. 예를 들어, 로봇의 카메라 센서(230)나 라이다 센서(220)가 취득한 데이터(비주얼 프레임, 라이다 프레임)를 로봇(100)이 클라우드 서버에게 전송하고, 클라우드 서버가 데이터를 누적 저장한 후 맵을 생성할 수 있다.
즉, 맵 저장부(210)는 로봇이 슬램을 수행하는데 필요한 정보를 저장한다. 그리고, 로봇의 제어부(250)는 카메라 센서(230)가 촬영한 이미지에서 특징적 객체를 검증 및 추출하여 이미지가 획득된 위치 정보와 이미지 내에서 확인된 특징적 객체, 그리고 이미지 내의 특징적 객체의 좌표 정보를 맵 저장부(210)에 저장하는
도 3은 본 발명의 일 실시예에 의한 클라우드 서버의 구성을 보여준다. 맵 저장부(310)는 고품질로 생성된 맵을 저장한다. 맵 저장부(310)의 맵은 로봇(100)에게 일부 또는 전부 전송될 수 있다. 통신부(380)는 로봇(100)과 통신한다. 이 과정에서 로봇(100) 다수들과 통신부(380)가 통신할 수 있다.
그리고 인공지능부(355)는 맵을 생성하거나 업데이트하는 과정에서 특징을 추출하거나(Feature Extraction), 또는 추출된 특징을 맵 등과 매칭(Matching)할 수 있다. 서버제어부(350)는 전술한 구성요소를 제어하며, 로봇(100)이 SLAM을 수행하는데 필요한 다양한 정보를 생성하여 로봇(100)에게 제공한다.
클라우드 서버(300)는 클라우드 시스템을 구성한다. 클라우드 시스템은 다수의 로봇들과 하나 이상의 클라우드 서버(300)로 구성된다. 클라우드 서버는 대용량/고성능 연산 처리가 가능하므로, SLAM을 이용한 고품질의 맵을 빠른 시간 내에 작성할 수 있다.
즉, 클라우드 서버(300)는 높은 컴퓨팅 파워를 이용하여 최대한 많은 정보를 이용한 SLAM을 수행할 수 있다. 그 결과 클라우드 서버(300)가 작성한 맵의 품질은 크게 향상할 수 있다. 통신부(380)가 로봇(100)이 전송한 센서 데이터를 수신하면 서버제어부(350)는 이를 기반으로 특징 추출, 맵 생성과 맵 업데이트 등을 수행하고, 로봇이 키드냅(Kidnap)된 경우 다시 로봇의 위치를 복구하거나(Kidnap recovery) 또는 위치 복구에 필요한 정보를 제공할 수 있다.
클라우드 서버(300) 역시 맵 저장부(310)를 포함할 수 있다. 그리고 클라우드 서버(300)는 인공지능부(355)를 포함할 수 있다.
통신부(380)는 로봇으로부터 SLAM(simultaneous localization and mapping)을 수행하는데 필요한 이미지를 수신한다. 그리고 맵 저장부(310)는 로봇이 SLAM을 수행하는 필요한 정보를 저장한다.
서버 제어부(350)는 수신한 이미지에서 특징적 객체를 검증 및 추출하여 이미지가 획득된 위치 정보와 특징적 객체, 이미지 내의 특징적 객체의 좌표 정보를 맵 저장부(310)에 저장한다.
클라우드 서버(300)가 저장한 정보들은 이후 로봇들에게 전송되어 로봇들이 위치 추정을 수행할 수 있도록 한다.
이하, 특징적 객체를 이용하여 맵을 생성하는 상세한 과정을 살펴본다.
로봇(100)의 제어부(250) 또는 클라우드 서버(300)의 서버제어부(350)는 취득한 센서 데이터 내에서 특징적 객체이거나 특징적 객체가 될 가능성이 높은 특징적 객체 후보를 식별한다. 여기서 센서 데이터는 이미지인 비주얼 프레임 또는 라이다 센서 데이터인 라이다 프레임인 것을 일 실시예로 한다. 카메라 센서(230)가 취득한 이미지(비주얼 프레임)을 중심으로 도 4에서 상세히 살펴본다.
도 4는 본 발명의 일 실시예에 의한 특징적 객체를 선택하는 과정을 보여준다. 도 4의 과정은 로봇(100)의 제어부(250)가 수행하는 내용에 기반하여 설명한다. 설명의 편의를 위해 로봇(100)의 제어부(250)를 중심으로 설명하지만, 도 4의 과정 또는 후술할 내용에서 로봇(100)의 제어부(250)가 수행하는 작업들 또는 제공하는 기능들은 클라우드 서버(300)의 서버제어부(350) 역시 동일하게 수행하거나 제공할 수 있다.
로봇(100)의 제어부(250)는 취득한 제1센서 데이터에서 객체를 감지한다(S11). 일 실시예로 로봇(100)의 이동부(190)가 로봇을 이동시키는 과정에서 카메라 센서(230)가 이미지를 획득할 수 있으며, 제1센서 데이터는 이미지 데이터를 일 실시예로 한다.
예를 들어 카메라 센서가 획득한 이미지 내에서 제어부(250)는 특징이 될 수 있는 객체를 이미지 내에서 감지한다. 이를 위해, 제어부(250)는 미리 저장된 객체들에 대한 개별 이미지를 참조할 수 있다.
감지된 객체는 특징적 객체인지를 제어부(250)는 추가적으로 검증할 수 있다(S12). 그리고 제어부(250)는 감지된 객체를 특징적 객체로 설정하여 맵 저장부(210)에 저장한다(S13).
이때, 제어부(250)는 특징적 객체의 후보의 주변을 이미지 내의 다른 부분과 구별하는 바운딩 박스(bounding box)에 대한 좌표 정보를 추가로 저장할 수 있다. 그리고 제어부(250)는 객체를 특징적 객체로 포함시킬지 여부를 판단할 수 있다.
도 4는 맵을 생성하는 과정에서 검색 속도와 정확도를 높이기 위해 맵을 구성하는 이미지 내에서 특징적 객체를 추출하는 과정을 제시한다. 이를 위해 제어부(250)는 이미지 내에서 하나 이상의 객체를 감지하여(S11), 감지된 객체가 특징적 객체에 해당하는지 검증한다(S12). 그리고 제어부(250)는 검증된 결과에 따라 객체를 특징적 객체로 맵저장부(210)에 저장한다(S13).
특징적 객체를 맵 저장부(210)에 저장하면, 후속하여 위치 추정을 할 경우에 로봇이 이동 과정에서 촬영한 이미지 전체를 검색 쿼리로 입력하지 않고, 이미지 내의 특정한 객체를 검색 쿼리로 입력할 수 있다. 이 경우 이미지 검색을 하는데 있어 시간을 단축시키고 검색의 정확도를 높일 수 있다. 그 결과 위치 추정의 속도와 정확도가 증가한다.
도 5는 본 발명의 일 실시예에 의한 특징적 객체 검증 과정을 보여준다. 도 5의 과정은 로봇(100)의 제어부(250)가 수행하는 내용에 기반하여 설명한다. 도 5의 과정은 클라우드 서버(300)의 서버제어부(350) 역시 동일하게 수행할 수 있다.
제어부(250)는 센서데이터, 예를 들어 이미지 내에서 고정 객체와 동적 객체를 구별한다. 그리고 근거리 객체와 원거리 객체를 구별하여 객체를 선택한다(S16). 선택 과정에서 각각의 객체에 대해 점수를 부여할 수 있다. 그리고 제어부(250)는 특징적 객체가 될 가능성이 높은 객체들을 특징적 객체로 선택한다. 또는, 정확도를 높이기 위해 제어부(250)는 S17~S19 단계를 선택적으로 수행할 수 있다.
S16은 이미지 내에서 추출된 각각의 객체가 동적인 객체인지 또는 고정된 객체인지를 제어부(250)가 확인하는 실시예를 제시한다. 그리고 제어부(250)는 고정된 객체인 경우에만 이를 특징적 객체로 판단하는 실시예이다. 이는 맵에 저장되는 이미지와 특징적 객체는 다음 번 로봇이 이동하는 과정에서 촬영한 이미지 및 여기에서 추출된 특징적 객체와 비교할 대상이 된다.
따라서, 해당 공간 내에 일시적으로만 머무르게 되는 사람, 자동차 등은 동적인 객체이므로 제어부(250)는 이들을 특징적 객체로 저장할 필요가 없다.
또한, S16은 이미지 내에서 추출된 각각의 객체가 로봇에 가까이 배치된 객체인지 또는 멀리 배치된 객체인지를 제어부(250)가 확인한다. 그리고 제어부(250)는 하나 이상의 객체들 중에서 가장 가까이 배치된 순서에 따라 객체들의 특징적 객체에 대한 적합도를 산출한다.
이 역시 맵에 저장되는 이미지와 특징적 객체의 정확도를 높이기 위함이다. 멀리 배치된 객체는 이미지 내에서의 정확도가 낮다. 따라서, 가까이 배치된 객체를 특징적 객체로 저장하는 것이 후속하는 위치 추정에 유리하다. 따라서, S16에서는 고정되고 가까이 있는 객체들이 특징적 객체로 선정된다.
제어부(250)는 선택된 객체들 중에서 이전의 특징적 객체들과의 유사도를 산출한다(S17). 또한 제어부(250)는 맵 저장부(210)에 저장된 특징적 객체 범용 데이터베이스에 저장된 개체와 유사도를 산출한다(S18). 그리고 제어부(250)는 산출된 결과에 따라 특징적 객체의 검증을 완료한다(S19).
여기서 S17 및 S18은 S16과 독립적으로 진행될 수 있다. 즉, 제어부(250)는 데이터베이스에 저장된 객체 또는 이전에 선택한 특징적 객체들과 이미지 내에서 감지된 객체들 각각과 비교하여 유사도를 산출할 수 있다. 그리고 제어부(250)는 유사도에 따라 객체들의 특징적 객체에 대한 적합도를 산출할 수 있다. 적합도에 따라 객체들은 특징적 객체로 저장될 수 있다.
여기서 S17 단계는 동일한 맵을 생성하는 과정에서 이전에 제어부(250)가 선택한 특징적 객체들과 비교하는 과정을 의미한다. 예를 들어, 제어부(250)는 맵을 생성하는 과정에서 각각 상이한 제1공간, 제2공간, 제3공간에서 이미지를 취득한다. 그리고 제1공간, 제2공간의 이미지에 대해 각각 제1특징적 객체, 제2특징적 객체를 설정하여 맵 저장부(210)에 저장한 상태이다.
그리고 제어부(250)는 제3공간에서 취득한 이미지에서 제3특징적 객체를 선택한다. 그리고 앞의 제1특징적 객체, 제2특징적 객체와 유사도를 비교한다.
만약 제1특징적 객체와 유사도가 높은 경우, 중요한 특징적 객체인 것으로 판단할 수 있다.
한편, 유사도가 낮은 경우, 해당 공간에서만 확인 가능한 특징적 객체인 것으로 판단할 수 있다.
따라서, 제어부(250)는 유사도가 높은 경우, 제1공간과 제3공간의 차이를구분할 수 있는 추가적인 특징적 객체(제4특징적 객체)를 제3공간의 이미지 내에서 확보하여 제3특징적 객체와 제4특징적 객체를 맵 저장부(210)에 저장할 수 있다.
또한, 제어부(250)는 유사도가 낮은 경우, 제3특징적 객체가 제1공간 혹은 다른 공간과 제3공간을 구분할 수 있는 특징적 객체로 맵 저장부(210)에 저장할 수 있다.
한편, 제어부(250)는 특징적 객체를 저장하는 데이터베이스(특징적 객체 범용 데이터베이스)에 저장된 객체와 제3특징적 객체를 비교할 수 있다(S18). 특징적 객체 범용 데이터베이스란, 맵을 생성하는 공간이나 그와 유사한 종류의 공간에서 특징이 될 수 있는 객체들에 대한 이미지들을 저장한 데이터베이스이다.
예를 들어, 맵을 생성하려는 공간이 도시인 경우, 특징적 객체 범용 데이터베이스는 도시에서 슬램을 수행하는데 필요한 특정한 간판들에 대한 이미지를 저장할 수 있다. 예를 들어 특징적 객체 범용 데이터베이스는 도시 내에 다수 분포된 커피숍, 백화점 등의 간판의 이미지라거나, 공중전화 부스 이미지, 혹은 편의점의 간판 이미지를 저장할 수 있다.
그리고 제어부(250)는 저장된 이미지와 현재 촬영한 영상 내의 특징적 객체 사이의 유사도를 산출한다. 만약 유사도가 높다면 영상 내의 특징적 객체의 검증이 이루어진 것으로 판단한다.
산출된 결과에 따라 특징적 객체에 대한 검증이 완료되면 검증 결과를 반영하여 해당 영상의 특징적 객체로 맵 저장부(210)에 저장한다(S19).
한편, 도 5와 같은 과정에서 관리자가 특징적 객체의 후보들 중에서 어느 하나를 선택할 수 있다. 예를 들어, 이미지 내에서 감지된 객체가 특징적 객체에 해당하는지에 대한 검증 방식은 다양하게 이루어질 수 있다.
일 실시예로, 제어부(250)가 인터페이스부(290)를 제어하여, 인터페이스부(290)가 이미지 상에서 감지된 객체와 이 객체의 주변에 바운딩 박스를 출력한다. 그리고 관리자로부터 특정 객체나 특정 바운딩 박스에 대한 선택 정보가 인터페이스부(290)에 입력되면 제어부(250)는 선택된 객체 또는 선택된 바운딩 박스에 포함된 객체를 특징적 객체로 설정할 수 있다.
또는 제어부(250)는 이미지 내의 객체들 중에서 동적인 객체들(사람, 자동차, 자전거, 동물 등)은 제외시킬 수 있다. 반면, 제어부(250)는 이미지 내의 객체들 중에서 고정된 객체들(공중전화박스, 건물 외벽의 문양, 간판 등)을 특징적 객체로 판단한다.
또는 제어부(250)는 이미지 내에서 가까이 배치된 객체를 멀리 배치된 객체보다 우선적으로 특징적 객체로 판단한다.
도 6은 본 발명의 일 실시예에 의한 특징적 객체의 주변에 바운딩 박스의 배치를 보여준다. 앞서 살펴본 과정에 따라 제어부(250)는 도 6과 같이 해당 영상 내에서 특징적 객체를 선별한다.
1차적으로 제어부(250)는 21, 22, 23, 24가 지시하는 영역을 특징적 객체의 후보로 판단한다.
그리고 각 후보에 대해 제어부(250)는 도 5와 같이 판단을 수행한다. 그 결과 제어부(250)는 21에 대해 사람(동적인 영역)으로 판단하고, 22는 차량(동적 영역)으로 판단한다.
한편 제어부(250)는 24는 근접한 객체로 공중전화 부스이며 23은 멀리 배치된 객체로 건물의 외관으로 판단한다. 그 결과 제어부(250)는 특징적 객체의 후보들(21, 22, 23, 24) 중에서 근접하며 정적인 객체인 24를 특징적 객체로 결정한다. 그리고 공중전화 부스의 경계선을 포함하도록 바운딩 박스를 설정할 수 있다.
제어부(250)는 바운딩 박스와 해당 영상을 하나의 이미지로 저장하거나 혹은 분리하여 저장할 수 있다. 바운딩 박스는 영상 내의 좌표 값으로 결정될 수 있다. 따라서, 제어부(250)는 영상을 저장하고, 바운딩 박스에 대한 좌표 값을 별도로 저장할 수 있다.
바운딩 박스는 향후 로봇이 위치 추정 과정에서 취득한 이미지 내의 특징적 객체를 맵 저장부에서 검색하여 비교하는 과정에서 맵에 저장된 이미지와 맵에 저장된 특징적 객체의 위치를 파악하는데 필요하다. 따라서 맵 저장부는 이미지 내에서 특징적 객체의 바운딩 박스의 위치와 크기를 나타내는 좌표 정보를 저장할 수 있다.
예를 들어, 맵 저장부(210)는 이미지 내에서 바운딩 박스의 좌상단 좌표 및 우하단 좌표를 저장할 수 있다. 또는 맵 저장부(210)는 이미지 내에서 바운딩 박스의 좌상단 좌표(또는 우하단 좌표 등 특정 꼭지점 좌표) 및 폭/높이 정보를 저장할 수 있다.
한편, 로봇은 하나의 영상 내에서 특징적 객체를 판단할 수도 있지만, 둘 이상의 연속하는 영상들 중에서 특징적 객체를 판단할 수도 있다.
도 7은 본 발명의 일 실시예에 의한 로봇이 특징적 객체를 판단하는 과정을 보여준다. 도 7은 로봇의 제어부(250)가 제1시점에 획득한 제1이미지 및 제1시점에 후속하는 제2시점에 획득한 제2이미지에 공통으로 포함된 객체를 특징적 객체로 검증하는 과정을 보여준다.
26은 로봇(100)이 이동하는 과정에서 획득한 4장의 이미지 및 해당 이미지 내의 특징적 객체(28)를 보여준다. 이동하는 과정에서 시간 t는 1 내지 4의 변화를 가진다. t=1인 시점에서 획득한 이미지는 image1이며, t=2인 시점에서 획득한 이미지는 image2이며, t=3인 시점에서 획득한 이미지는 image3이며, t=4인 시점에서 획득한 이미지는 image4이다.
그리고 26은 각 이미지 내에서의 특징적 객체(28)의 위치가 변화하는 것을 보여준다. 이는 로봇(100)이 이동하는 과정에서 특징적 객체와 로봇 사이의 상대적 위치가 달라지기 때문이다.
따라서, 로봇(100)은 4 장의 이미지에서 공통으로 등장하는 객체(28)를 특징적 객체로 판단하여 저장한다.
이때, 맵 저장부(210)에 저장하는 방식은 27과 같다. 27은 각 시점에 대한 SLAM 포즈 그래프(SLAM pose-graph)의 예시이다. 포즈 그래프는 27과 같이 각 시점에 대응하는 노드들(N1~N9)과 각 노드들 사이의 에지를 포함한다. 포즈 그래프의 각 노드(N1~N4)에는 각각 3개의 정보가 저장된다.
일 실시예로, t=1 시점에서 획득한 이미지, 즉 로우 이미지(raw image)가 저장되고, 로우 이미지 내의 특징적 객체(feature)가 별도로 저장된다. 맵 저장부(210)에 저장되는 특징적 객체는 로우 이미지 내에서 특징적 객체의 외곽선을 따라 추출된 이미지로 저장될 수 있다.
그리고 바운딩 박스 좌표 역시 맵 저장부에 저장될 수 있다. 이는 특징적 객체가 로우 이미지 내에 어느 위치에 있는지를 알려준다.
28의 특징적 객체가 촬영된 포즈의 저장을 위해, 각 시점 별로 노드(N1~N4)에 대응하여 맵 저장부(210)는 특징적 객체와 로우 이미지, 그리고 바운딩 박스 좌표를 저장한다.
각 시점(t=1~4) 사이의 노드들 사이의 에지에는 각 노드 사이의 로봇의 이동 과정에서 생성된 휠 오도메트리, 또는 다른 센서를 통해 획득한 정보가 저장될 수 있다.
마찬가지로 로봇(100)은 다른 공간의 다른 시점(t=k~ t=k+2)에서 이미지를 획득하고 전술한 과정과 동일한 방식으로 새로운 특징적 객체(29)를 추출하고, 맵 저장부에 저장할 수 있다.
29는 새로 확인된 특징적 객체이다. 마찬가지로 제어부(250)는 특징적 객체가 확인된 위치 및 이미지 정보를 맵 저장부(210)에 저장한다. 제어부(250)는 N7 내지 N9에서 특징적 객체(29) 및 로우 이미지(image_k~image_k2), 그리고 로우 이미지 내의 특징적 객체(29)의 위치를 알려주는 바운딩박스 좌표를 맵 저장부(210)에 저장한다.
도 7의 27과 같이 저장된 정보들은 이후 로봇(100)이 이동하는 과정에서 획득한 이미지들과 비교의 대상이 된다.
도 7은 매핑 과정에 해당한다. 이 과정에서 특징적 객체가 확인된 첫번째 이미지(t=1 또는 t=k)들에서 제어부(250)는 객체 감지(object detection) 방법을 통해서 특징적 객체 또는 특징적 객체가 될 수 있는 후보 영역을 결정한다. 이 과정에서 객체 감지를 위한 실시예로 "YOLOv3", "Mask R-CNN" 등을 적용할 수 있다. 특징적 객체가 될 수 있는 후보 영역이 선정되면, 제어부(250)는 도 5에 제시된 바와 같이 특징적 객체에 대한 검증을 수행하여 후보 영역 중에서 맵 저장부(210)에 저장할 특징적 객체를 선택한다.
또는 인터페이스부(290)가 후보 영역을 표시하는 후보-바운딩 박스(candidate bounding boxes)들을 출력한다. 그리고 관리자가 이들 출력된 박스들 중에서 특징적 객체에 적합한 박스를 선택할 수 있다.
또는 관리자가 별도의 선택을 하지 않아도, 인터페이스부(290)는 이미지에서 특징적 객체로 저장하는 영역을 바운딩 박스로 표시하여 로봇(100)의 관리자가 맵이 생성되는 과정 및 특징적 객체가 저장되는 과정을 확인할 수 있다.
특징적 객체가 이미지 내에 다수 확인될 경우, 도 5와 같이, 이미지 내의 위치나 객체 자체가 가지는 동적 성질 또는 고정성 등에 기반하여 제어부(250)가 특징적 객체를 선별할 수 있다. 또한, 제어부(250)는 과거에 맵 생성 과정에서 선택되었거나, 특징적 객체 범용 데이터베이스에 저장된 이미지와 유사도가 높아 맵 내에서 자주 사용되는 특징적 객체에 대한 이력을 맵 저장부(210) 또는 별도의 저장매체에 저장할 수 있다. 그리고 제어부(250)는 특징적 객체로 적합한 이미지 내의 일부 영역을 특징적 객체로 저장한다.
또는 관리자가 바운딩 박스를 선택할 수 있도록, 인터페이스부(290)는 보다 유용한 특징적 객체를 추천할 수 있다. 앞서 도 6에서 24의 바운딩 박스를 더 굵게 또는 더 명확한 선으로 출력하여 관리자가 24의 바운딩 박스를 선택할 수 있도록 유도할 수 있다.
첫번째 이미지(t=1 또는 t=k)들에서 특징적 객체가 추출되면, 후속하는 이미지들(t=2, 3, …, 또는 t=k+1, k+2, …)에서 제어부(250)는 특징적 객체를 다중 객체 트래킹 방법(multiple-object tracking method)을 이용하여 특징적 객체의 다음 번 위치를 예측할 수 있다. 그리고 예측된 위치에서 인터페이스부(290)가 바운딩 박스를 출력할 수 있다. 또는 자동으로 제어부(250)가 예측된 위치의 영역을 특징적 객체로 저장할 수 있다.
다중 객체 트래킹 방법으로는 SORT(Simple Online and Realtime Tracking) 또는 POI(Person of Interest) 방법을 사용할 수 있다. 그리고 출력된 바운딩 박스가 실제 특징적 객체의 주변을 벗어날 경우 관리자가 인터페이스부(290)를 터치하여 수정할 수 있다.
도 8은 본 발명의 일 실시예에 의한 로봇이 이동 과정에서 획득한 이미지를 맵 저장부에 저장된 이미와 비교하는 실시예를 보여준다. 31은 로봇이 이미지를 획득하여 특징적 객체가 추출된 결과이다. 32는 로봇이 맵 저장부에 저장된 정보와 비교하여 현재 위치를 확인하는 과정이다.
로봇(100)은 image_New를 획득한다. 로봇(100)은 획득한 이미지 내에서 특징적 객체를 30과 같이 구분한다. 또한 로봇(100)은 특징적 객체(30)가 image_New 내의 위치 좌표를 추출할 수 있다.
로봇(100)은 추출된 특징적 객체(30)를 맵 저장부에서 검색한다. 앞서 도 7에서 특징적 객체는 별도로 저장하므로 맵 저장부(210)에 저장된 특징적 객체들과 30을 비교할 수 있다. 비교 결과 로봇은 N8에 저장된 특징적 객체(35)가 30과 동일한 것으로 검색하였다. 그리고 로봇(100)은 검색된 특징적 객체(35)의 바운딩 박스 좌표를 추출할 수 있다.
그리고 로봇(100)은 N8 노드의 바운딩 박스 좌표와 image_New 내의 특징적 객체(30)의 위치 좌표를 비교한 결과 로봇(100)은 현재 위치가 맵 저장부에 저장된 N8 노드인 것으로 판단한다.
도 7 및 도 8에 설명한 과정에서 로봇(100)은 맵을 생성하고 특징적 객체를 저장하며, 이후 슬램 과정에서 로봇의 위치를 특징적 객체에 기반하여 확인할 수 있다.
도 9는 본 발명의 일 실시예에 의한 특징적 객체를 이용하여 맵 저장부에서 포즈 정보를 산출하는 로컬라이제이션 과정을 보여준다.
로봇(100)의 카메라 센서(230)가 이미지를 획득한다(S35). 그리고 제어부(250)는 획득한 이미지에서 쿼리 이미지(query image)를 생성한다(S36). 쿼리 이미지란 맵 저장부(210)에 저장된 이미지들과 비교하기 위한 것으로 카메라 센서(230)가 획득한 이미지의 일부를 의미한다. 쿼리 이미지의 일 실시예로 카메라 센서(230)가 획득한 이미지에서 특징적 객체를 추출한 이미지를 포함한다.
제어부(250)는 맵 저장부(210) 내에서 쿼리 이미지와 유사한 후보 이미지를 추출한다(S37). 일 실시예로, 제어부(250)는 쿼리 이미지가 생성되면, VocTree(Vocabulary Tree)와 같은 클러스터링(clustering) 방법을 이용하여 쿼리 이미지와 유사한 후보 이미지들(candidate images)을 추출한다.
그리고 제어부(250)는 후보 이미지들 중에서 쿼리 이미지 및 바운딩 박스의 영역을 비교하여 가장 유사하다고 판단된 이미지에 해당하는 노드의 정보, 즉 포즈 정보를 산출한다. 도 9의 과정은 로컬라이제이션(localization), 즉 위치 추정의 과정에 해당한다.
특징적 객체에 기반한 SLAM을 수행할 경우, 이미지의 유사성으로 위치 확인에서 오류가 발생하는 것을 방지하여 SLAM의 정확도를 높일 수 있다.
도 10은 본 발명의 일 실시예에 의한 연속 촬영된 이미지에서 로봇이 객체의 이동을 감지하여 특징적 객체를 판단하는 과정을 보여준다.
제어부(250)는 도 7에 도시된 바와 같이, 일정한 속도로 이동하며 주변 이미지를 촬영한다. 따라서 두 장의 연속된 이미지 내에는 동일한 객체가 촬영될 가능성이 높으며 도 7은 이러한 객체를 추적하여 특징적 객체로 저장하는 실시예를 보여주었다.
한편, 제어부(250)는 두 장 이상의 연속된 이미지에서 객체들을 감지한 후, 두 이미지 내의 객체들의 위치 변화와 로봇의 이동 거리를 반영하여 두 이미지 내의 객체들이 동일한 객체인지를 판단할 수 있다.
도 10에서 제1시점(t=1)에서 촬영된 이미지(41)는 하나의 객체(51, 제1객체)을 포함한다. 그리고 제2시점(t=2)에서 촬영된 이미지의 제1실시예는 42이다. 42가 지시하는 이미지에서 점선은 제1이미지(41)에서의 제1객체(51)의 위치를 표시한 것이다.
반면, 제2이미지(42)에서의 객체(52, 제2객체)는 51의 위치에서 "dist1" 크기만큼 수평 이동하였다. 제2이미지(42)에서의 제2객체(52)와 제1이미지(41)에서의 제1객체(51)의 유사도가 기준 이상이며, "dist1"이라는 변화가 로봇의 이동 거리에 대응하는 정도의 크기라면, 제어부(250)는 제2이미지(42)에서의 제2객체(52)와 제1이미지(41)에서의 제1객체(51)가 동일한 객체로 판단한다. 그리고 제어부(250)는 이 두 객체(51, 52)를 특징적 객체인지 검증한다. 검증 결과 제어부(250)는 해당 객체를 특징적 객체로 맵에 저장할 수 있다.
한편, 제2시점(t=2)에서 촬영된 이미지의 제2실시예는 43이다. 43이 지시하는 이미지에서 점선은 제1이미지(41)에서의 제1객체(51)의 위치를 표시한 것이다.
반면, 제3이미지(43)에서의 객체(53, 제3객체)는 51의 위치에서 "dist2" 크기만큼 이동하였는데 수평 이동이 아니며 경사 방향으로 이동하였다. 제3이미지(43)에서의 제3객체(53)와 제1이미지(41)에서의 제1객체(51)의 유사도가 기준 이상이지만 "dist2"이라는 변화가 로봇의 이동 거리에 대응하지 않는 크기 또는 객체의 이동 방향이 로봇의 이동과 전혀 다른 방향일 수 있다.
이러한 경우, 제어부(250)는 제3이미지(43)에서의 제3객체(53)와 제1이미지(41)에서의 제1객체(51)가 서로 다른 객체로 판단한다. 그리고 제어부(250)는 이 두 객체(51, 53) 각각에 대해 특징적 객체인지 검증한다. 검증 결과 제어부(250)는 해당 객체를 각각 특징적 객체로 맵에 저장하거나 혹은 저장하지 않을 수 있다.
왜냐하면 두 시점(t1, t2)에서 제1이미지(41) 및 제3이미지(43)는 상이한 객체를 포함하므로 51 및 53 모두 동적인 객체일 가능성이 높으므로 제어부(250)는 이들을 특징적 객체로 판단하지 않는다.
정리하면 다음과 같다.
도 7과 같이 촬영 시점 및 위치를 달리하여 두 개의 이미지(제1, 제2 이미지)를 촬영하는 경우, 특징적 객체로 선택될 가능성이 높은 객체는 두 개의 이미지에 포함될 가능성이 높다. 또한 이들 객체들이 두 개의 이미지 내에서 배치된 위치 역시 로봇의 이동 거리나 방향에 대응하게 된다.
이를 위해, 제어부(250)는 제1이미지 내에서 제1객체를 감지하고, 제2이미지 내에서 제2객체를 감지한다. 그리고 제어부(250)는 제1객체 및 제2객체의 위치 변화 및 로봇의 이동 거리를 반영하여 제1객체 및 제2객체가 동일한 객체인지를 판단한다. 동일한 객체인 경우, 제어부(250)는 제1객체 및 제2객체에 대해 특징적 객체인지 여부를 검증하여 맵 저장부(210)에 저장한다.
특징적 객체로 검증되면 제어부(250)는 제1객체와 제1이미지, 그리고 제1객체에 대한 바운딩 박스와 제1이미지가 획득된 위치 정보를 하나의 단위로 맵 저장부(210)에 저장한다. 마찬가지로, 제어부(250)는 제2객체와 제2이미지, 그리고 제2객체에 대한 바운딩 박스와 제2이미지가 획득된 위치 정보를 하나의 단위로 맵 저장부(210)에 저장한다.
도 11은 본 발명의 일 실시예에 의한 로봇의 인터페이스부가 특징적 객체를 출력하고 이에 대한 선택을 입력받는 과정을 보여준다. 인터페이스부(290)는 소정의 시각적 정보 및 청각적 정보를 출력한다. 또한 인터페이스부(290)는 터치 스크린을 포함하여, 사람이 출력된 정보를 선택하거나 표시된 정보를 드래그 등으로 이동시킬 경우 인터페이스부(290)는 이러한 입력 정보를 처리할 수 있다.
제어부(250)는 이미지 내에서 객체를 감지한다(S61). 그리고 제어부(250)는 감지된 객체 주변의 바운딩 박스의 위치를 산출할 수 있다. 그리고 인터페이스부(290)는 감지된 객체 및 객체의 주변에 배치된 바운딩 박스를 출력한다(S62).
이는 현재 위치에서 특징적 객체가 될 수 있는 영역을 인터페이스부(290)가 출력하여, 사용자나 관리자가 이를 수정하거나 확인할 수 있도록 한다.
특히, 이미지에서 감지된 객체가 둘 이상인 경우에, 인터페이스부는 둘 이상의 객체에 대응하는 둘 이상의 바운딩 박스를 출력한 후, 둘 이상의 바운딩 박스 중 어느 하나에 대한 선택 정보를 입력받을 수 있다(S63).
여기서 선택 정보는 바운딩 박스 주변 혹은 내부를 사용자가 터치한 정보를 포함한다. 또는 선택 정보는 사용자가 바운딩 박스 주변 혹은 내부를 터치하여 드래그 하여 바운딩 박스의 위치나 크기를 수정한 정보를 포함한다.
로봇의 제어부(250)는 선택 정보가 입력된 바운딩 박스 내의 객체를 특징적 객체로 저장한다. 이 과정에서 제어부(250)는 바운딩 박스의 위치나 크기가 수정된 경우에 수정된 바운딩 박스에 기반하여 객체를 추출하는 과정을 진행할 수 있다.
도 12는 본 발명의 일 실시예에 의한 바운딩 박스를 수정한 결과를 보여준다. 제어부(250)가 공중전화 부스를 확인하고 68이 지시하는 사각형으로 바운딩 박스를 생성하여 인터페이스부(290)가 제1바운딩박스(68)를 출력한다.
여기서 사용자나 관리자 등이 인터페이스부(290)에 표시된 제1바운딩박스(68)가 실제 공중전화 부스의 일부 영역만을 포함하는 것을 확인하고, 제1바운딩박스(68)를 드래그 또는 리사이즈 하여 제2바운딩박스(69)로 수정한다.
이러한 수정 과정이 진행되면, 제어부(250)는 제2바운딩 박스를 중심으로 특징적 객체를 추출한 뒤, 특징적 객체, 제2바운딩 박스, 그리고 도 12의 이미지와 이미지가 획득된 로봇의 위치 정보를 맵 저장부(210)에 저장한다.
전술한 실시예들에 기반할 경우, 이미지 내에서 객체를 추출하거나, 혹은 해당 객체가 동적 객체인지 고정 객체인지를 판단하거나 또는 객체의 원근 등을 판단할 때 로봇(100)의 인공지능부(255) 또는 클라우드 서버(300)의 인공지능부(355)가 입력된 이미지를 분류할 수 있다.
또는 로봇(100)의 인공지능부(255) 또는 클라우드 서버(300)의 인공지능부(355)는 입력된 이미지에서 특징적 객체의 경계선을 판단하고 바운딩 박스의 영역에 대한 정보를 출력할 수 있다. 로봇(100)의 인공지능부(255) 또는 클라우드 서버(300)의 인공지능부(355)의 구성에 대해 보다 상세히 살펴본다.
인공 지능은 인공적인 지능 또는 이를 만들 수 있는 방법론을 연구하는 분야를 의미하며, 머신 러닝(기계 학습, Machine Learning)은 인공 지능 분야에서 다루는 다양한 문제를 정의하고 그것을 해결하는 방법론을 연구하는 분야를 의미한다. 머신 러닝은 어떠한 작업에 대하여 꾸준한 경험을 통해 그 작업에 대한 성능을 높이는 알고리즘으로 정의하기도 한다.
인공 신경망(ANN: Artificial Neural Network)은 머신 러닝에서 사용되는 모델로써, 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)들로 구성되는, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다. 인공 신경망은 다른 레이어의 뉴런들 사이의 연결 패턴, 모델 파라미터를 갱신하는 학습 과정, 출력값을 생성하는 활성화 함수(Activation Function)에 의해 정의될 수 있다.
인공 신경망은 입력층(Input Layer), 출력층(Output Layer), 그리고 선택적으로 하나 이상의 은닉층(Hidden Layer)를 포함할 수 있다. 각 층은 하나 이상의 뉴런을 포함하고, 인공 신경망은 뉴런과 뉴런을 연결하는 시냅스를 포함할 수 있다. 인공 신경망에서 각 뉴런은 시냅스를 통해 입력되는 입력 신호들, 가중치, 편향에 대한 활성 함수의 함숫값을 출력할 수 있다.
모델 파라미터는 학습을 통해 결정되는 파라미터를 의미하며, 시냅스 연결의 가중치와 뉴런의 편향 등이 포함된다. 그리고, 하이퍼파라미터는 머신 러닝 알고리즘에서 학습 전에 설정되어야 하는 파라미터를 의미하며, 학습률(Learning Rate), 반복 횟수, 미니 배치 크기, 초기화 함수 등이 포함된다.
인공 신경망의 학습의 목적은 손실 함수를 최소화하는 모델 파라미터를 결정하는 것으로 볼 수 있다. 손실 함수는 인공 신경망의 학습 과정에서 최적의 모델 파라미터를 결정하기 위한 지표로 이용될 수 있다.
머신 러닝은 학습 방식에 따라 지도 학습(Supervised Learning), 비지도 학습(Unsupervised Learning), 강화 학습(Reinforcement Learning)으로 분류할 수 있다.
지도 학습은 학습 데이터에 대한 레이블(label)이 주어진 상태에서 인공 신경망을 학습시키는 방법을 의미하며, 레이블이란 학습 데이터가 인공 신경망에 입력되는 경우 인공 신경망이 추론해 내야 하는 정답(또는 결과 값)을 의미할 수 있다. 비지도 학습은 학습 데이터에 대한 레이블이 주어지지 않는 상태에서 인공 신경망을 학습시키는 방법을 의미할 수 있다. 강화 학습은 어떤 환경 안에서 정의된 에이전트가 각 상태에서 누적 보상을 최대화하는 행동 혹은 행동 순서를 선택하도록 학습시키는 학습 방법을 의미할 수 있다.
인공 신경망 중에서 복수의 은닉층을 포함하는 심층 신경망(DNN: Deep Neural Network)으로 구현되는 머신 러닝을 딥 러닝(심층 학습, Deep Learning)이라 부르기도 하며, 딥 러닝은 머신 러닝의 일부이다. 이하에서, 머신 러닝은 딥 러닝을 포함하는 의미로 사용된다.
로봇(100)은 앞서 살펴보았던 제어부(250)를 구성하는 하위 구성요소인 인공지능부(255)가 인공지능 기능을 수행할 수 있다. 제어부(250) 내에 인공지능부(255)가 소프트웨어 또는 하드웨어로 구성될 수 있다.
이 경우, 로봇(100)의 통신부(280)는 유무선 통신 기술을 이용하여 다른 AI 기능을 제공하는 로봇이나 또는 도 13에서 살펴볼 클라우드 서버(300) 등의 외부 장치들과 데이터를 송수신할 수 있다. 예컨대, 통신부(280)는 외부 장치들과 센서 정보, 사용자 입력, 학습 모델, 제어 신호 등을 송수신할 수 있다.
이때, 통신부(280)가 이용하는 통신 기술에는 GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), LTE(Long Term Evolution), 5G, WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), ZigBee, NFC(Near Field Communication) 등이 있다.
인터페이스부(290)는 다양한 종류의 데이터를 획득할 수 있다.
이때, 인터페이스부(290)는 영상 신호 입력을 위한 카메라, 오디오 신호를 수신하기 위한 마이크로폰, 사용자로부터 정보를 입력 받기 위한 사용자 입력부 등을 포함할 수 있다. 여기서, 라이다 센서(220), 카메라 센서(230) 또는 마이크로폰이 획득한 정보들은 센싱 데이터 또는 센서 정보 등을 지칭한다.
인터페이스부(290) 및 각종 센서들과 이동부의 휠 인코더(260) 등은 모델 학습을 위한 학습 데이터 및 학습 모델을 이용하여 출력을 획득할 때 사용될 입력 데이터 등을 획득할 수 있다. 전술한 구성요소들은 가공되지 않은 입력 데이터를 획득할 수도 있으며, 이 경우 제어부(250) 또는 인공지능부(255)는 입력 데이터에 대하여 전처리로써 입력 특징점(input feature)을 추출할 수 있다.
인공지능부(255)는 학습 데이터를 이용하여 인공 신경망으로 구성된 모델을 학습시킬 수 있다. 여기서, 학습된 인공 신경망을 학습 모델이라 칭할 수 있다. 학습 모델은 학습 데이터가 아닌 새로운 입력 데이터에 대하여 결과 값을 추론해 내는데 사용될 수 있고, 추론된 값은 로봇(00)이 어떠한 동작을 수행하기 위한 판단의 기초로 이용될 수 있다.
이때, 로봇(100)의 인공지능부(255)는 클라우드 서버(300)의 인공지능부(355)와 함께 AI 프로세싱을 수행할 수 있다.
이때, 로봇(100)의 인공지능부(255)는 로봇(100)에 통합되거나 구현된 메모리를 포함할 수 있다. 또는, 로봇(100)의 인공지능부(255)는 별도의 메모리 또는 로봇(100)에 결합된 외부 메모리 또는 외부 장치에서 유지되는 메모리를 사용하여 구현될 수도 있다.
로봇(100)은 다양한 센서들을 이용하여 로봇(100)의 내부 정보, 로봇(100)의 주변 환경 정보 및 사용자 정보 중 적어도 하나를 획득할 수 있다.
로봇(100)에 내장된 메모리는 로봇(100)의 다양한 기능을 지원하는 데이터를 저장할 수 있다. 예컨대, 로봇(100)에 내장된 각종 센서들이나 인터페이스부(290) 등이 획득한 입력 데이터, 학습 데이터, 학습 모델, 학습 히스토리 등을 저장할 수 있다.
제어부(250)는 데이터 분석 알고리즘 또는 머신 러닝 알고리즘을 사용하여 결정되거나 생성된 정보에 기초하여, 로봇(100)의 적어도 하나의 실행 가능한 동작을 결정할 수 있다. 그리고, 제어부(250)는 로봇(100)의 구성 요소들을 제어하여 결정된 동작을 수행할 수 있다.
이를 위해, 제어부(250)는 인공지능부 또는 메모리의 데이터를 요청, 검색, 수신 또는 활용할 수 있고, 적어도 하나의 실행 가능한 동작 중 예측되는 동작이나, 바람직한 것으로 판단되는 동작을 실행하도록 로봇(100)의 구성 요소들을 제어할 수 있다.
이때, 제어부(250)는 결정된 동작을 수행하기 위하여 외부 장치의 연계가 필요한 경우, 해당 외부 장치를 제어하기 위한 제어 신호를 생성하고, 생성한 제어 신호를 해당 외부 장치에 전송할 수 있다.
제어부(250)는 사용자 입력에 대하여 의도 정보를 획득하고, 획득한 의도 정보에 기초하여 사용자의 요구 사항을 결정할 수 있다.
한편, 제어부(250)는 이미지 센서 데이터 또는 라이다 센서 데이터와 같이 실시간으로 획득한 센서 데이터에서 특징점을 추출할 수 있다. 이를 위해 인공지능부(255) 보다 상세히 FEM 서브모듈이 머신 러닝 알고리즘에 따라 학습된 인공 신경망으로 구성될 수 있다. 그리고, 로봇(100)의 인공지능부(255)는 학습된 것이나, 클라우드 서버(300)의 인공지능부(355)에 의해 학습된 것이거나, 또는 이들의 분산 처리에 의해 학습된 것일 수 있다.
제어부(250)는 로봇(100)의 동작 내용이나 동작에 대한 사용자의 피드백 등을 포함하는 이력 정보를 수집하여 메모리 또는 인공지능부(255)에 저장하거나, 클라우드 서버(300) 등의 외부 장치에 전송할 수 있다. 수집된 이력 정보는 학습 모델을 갱신하는데 이용될 수 있다.
도 13은 본 발명의 일 실시예에 의한 클라우드 서버의 또다른 구성을 보여준다.
인공 지능 서버, 즉 AI 서버의 기능을 제공하는 클라우드 서버(300)는 머신 러닝 알고리즘을 이용하여 인공 신경망을 학습시키거나 학습된 인공 신경망을 이용하는 장치를 의미할 수 있다. 여기서, 클라우드 서버(300)는 복수의 서버들로 구성되어 분산 처리를 수행할 수도 있고, 5G 네트워크로 정의될 수 있다.
클라우드 서버(300)는 통신부(380), 서버제어부(350), 인공지능부(355) 등을 포함하며 각각에 대해 도 3에서 살펴본 바 있다. 한편 클라우드 서버(300)는 메모리(330)를 더 포함할 수 있다.
메모리(330)는 모델 저장부(331)를 포함할 수 있다. 모델 저장부(331)는 인공지능부(355)을 통하여 학습 중인 또는 학습된 모델(또는 인공 신경망, 331a)을 저장할 수 있다.
인공지능부(355)는 학습 데이터를 이용하여 인공 신경망(331a)을 학습시킬 수 있다. 학습 모델은 인공 신경망의 클라우드 서버(300)에 탑재된 상태에서 이용되거나, 로봇(100)등의 외부 장치에 탑재되어 이용될 수도 있다.
학습 모델은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 학습 모델의 일부 또는 전부가 소프트웨어로 구현되는 경우 학습 모델을 구성하는 하나 이상의 명령어(instruction)는 메모리(330)에 저장될 수 있다.
서버제어부(350)는 학습 모델을 이용하여 새로운 입력 데이터에 대하여 결과 값을 추론하고, 추론한 결과 값에 기초한 응답이나 제어 명령을 생성할 수 있다.
본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니며, 본 발명의 목적 범위 내에서 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 반도체 기록소자를 포함하는 저장매체를 포함한다. 또한 본 발명의 실시예를 구현하는 컴퓨터 프로그램은 외부의 장치를 통하여 실시간으로 전송되는 프로그램 모듈을 포함한다.
이상에서는 본 발명의 실시예를 중심으로 설명하였지만, 통상의 기술자의 수준에서 다양한 변경이나 변형을 가할 수 있다. 따라서, 이러한 변경과 변형이 본 발명의 범위를 벗어나지 않는 한 본 발명의 범주 내에 포함되는 것으로 이해할 수 있을 것이다.
1: 로봇 150: 제어모듈
210: 맵저장부 220: 라이다 센서
230: 카메라 센서 250: 제어부
300: 클라우드 서버 350: 서버제어부

Claims (20)

  1. 로봇을 이동시키는 이동부;
    상기 로봇이 슬램(SLAM, simultaneous localization and mapping)을 수행하는데 필요한 이미지를 획득하는 카메라 센서;
    상기 로봇이 슬램을 수행하는 필요한 정보를 저장하는 맵 저장부; 및
    상기 이미지에서 특징적 객체를 검증 및 추출하여 상기 이미지가 획득된 위치 정보와 상기 특징적 객체, 상기 이미지 내의 상기 특징적 객체의 좌표 정보를 상기 맵 저장부에 저장하는 제어부를 포함하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇.
  2. 제1항에 있어서,
    상기 제어부는 상기 이미지 내에서 하나 이상의 객체를 감지하여, 상기 감지된 객체가 특징적 객체에 해당하는지 검증하며,
    상기 제어부는 상기 검증된 결과에 따라 상기 객체를 특징적 객체로 상기 맵저장부에 저장하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇.
  3. 제2항에 있어서,
    상기 제어부는 상기 각각의 객체가 동적인 객체인지 또는 고정된 객체인지를 확인하고 상기 객체가 고정된 객체인 경우 특징적 객체로 판단하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇.
  4. 제2항에 있어서,
    상기 제어부는 상기 각각의 객체가 로봇에 가까이 배치된 객체인지 또는 멀리 배치된 객체인지를 확인하고 상기 하나 이상의 객체들 중에서 가장 가까이 배치된 순서에 따라 상기 객체들의 특징적 객체에 대한 적합도를 산출하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇.
  5. 제2항에 있어서,
    상기 제어부는 데이터베이스에 저장된 객체 또는 이전에 선택한 특징적 객체들과 상기 각각의 객체를 비교하여 유사도를 산출하며,
    상기 제어부는 상기 유사도에 따라 상기 객체들의 특징적 객체에 대한 적합도를 산출하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇.
  6. 제1항에 있어서,
    상기 제어부는 제1시점에 획득한 제1이미지 및 상기 제1시점에 후속하는 제2시점에 획득한 제2이미지에 공통으로 포함된 객체를 특징적 객체로 검증하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇.
  7. 제6항에 있어서,
    상기 제어부는 상기 제1이미지 내에서 제1객체를 감지하고,
    상기 제어부는 상기 제2이미지 내에서 제2객체를 감지하며,
    상기 제1객체 및 상기 제2객체의 위치 변화 및 상기 로봇의 이동 거리를 반영하여 상기 제1객체 및 상기 제2객체가 동일한 객체인 경우, 상기 제1객체 및 상기 제2객체에 대해 특징적 객체인지 여부를 검증하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇.
  8. 제1항에 있어서,
    상기 좌표 정보는 상기 특징적 객체를 포함하는 바운딩 박스가 상기 이미지 내에 배치되는 위치 및 크기에 대한 정보를 포함하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇.
  9. 제8항에 있어서,
    상기 로봇은 정보를 출력하는 인터페이스부를 더 포함하며,
    상기 제어부가 상기 이미지에서 객체를 감지한 후,
    상기 인터페이스부는 상기 이미지와 상기 감지된 객체 및 상기 객체의 주변에 배치된 바운딩 박스를 출력하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇.
  10. 제9항에 있어서,
    상기 이미지에서 감지된 객체는 둘 이상이며,
    상기 인터페이스부는 상기 둘 이상의 객체에 대응하는 둘 이상의 바운딩 박스를 출력한 후, 상기 둘 이상의 바운딩 박스 중 어느 하나에 대한 선택 정보를 입력받으며,
    상기 제어부는 상기 선택 정보가 입력된 바운딩 박스 내의 객체를 특징적 객체로 저장하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 로봇.
  11. 로봇으로부터 슬램(SLAM, simultaneous localization and mapping)을 수행하는데 필요한 이미지를 수신하는 통신부;
    상기 로봇이 슬램을 수행하는 필요한 정보를 저장하는 맵 저장부; 및
    상기 이미지에서 특징적 객체를 검증 및 추출하여 상기 이미지가 획득된 위치 정보와 상기 특징적 객체, 상기 이미지 내의 상기 특징적 객체의 좌표 정보를 상기 맵 저장부에 저장하는 서버제어부를 포함하는, 클라우드 서버.
  12. 제11항에 있어서,
    상기 서버 제어부는 상기 이미지 내에서 하나 이상의 객체를 감지하여, 상기 감지된 객체가 특징적 객체에 해당하는지 검증하며,
    상기 서버 제어부는 상기 검증된 결과에 따라 상기 객체를 특징적 객체로 상기 맵저장부에 저장하는, 클라우드 서버.
  13. 제12항에 있어서,
    상기 서버 제어부는 상기 각각의 객체가 동적인 객체인지 또는 고정된 객체인지를 확인하고 상기 객체가 고정된 객체인 경우 특징적 객체로 판단하거나, 또는 상기 서버 제어부는 상기 각각의 객체가 로봇에 가까이 배치된 객체인지 또는 멀리 배치된 객체인지를 확인하고 상기 하나 이상의 객체들 중에서 가장 가까이 배치된 순서에 따라 상기 객체들의 특징적 객체에 대한 적합도를 산출하는, 클라우드 서버.
  14. 제12항에 있어서,
    상기 서버 제어부는 데이터베이스에 저장된 객체 또는 이전에 선택한 특징적 객체들과 상기 각각의 객체를 비교하여 유사도를 산출하며,
    상기 서버 제어부는 상기 유사도에 따라 상기 객체들의 특징적 객체에 대한 적합도를 산출하는, 클라우드 서버.
  15. 제11항에 있어서,
    상기 서버 제어부는 제1시점에 획득한 제1이미지 및 상기 제1시점에 후속하는 제2시점에 획득한 제2이미지에 공통으로 포함된 객체를 특징적 객체로 검증하는, 클라우드 서버.
  16. 로봇의 이동부가 상기 로봇을 이동시키는 과정에서 로봇의 카메라 센서가 슬램(SLAM, simultaneous localization and mapping)을 수행하는데 필요한 이미지를 획득하는 단계;
    상기 로봇의 제어부가 상기 이미지에서 특징적 객체를 검증 및 추출하는 단계;
    상기 제어부가 상기 이미지가 획득된 위치 정보와 상기 특징적 객체, 상기 이미지 내의 상기 특징적 객체의 좌표 정보를 맵 저장부에 저장하는 단계를 포함하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 방법.
  17. 제16항에 있어서,
    상기 검증 및 추출하는 단계는
    상기 제어부가 상기 각각의 객체가 동적인 객체인지 또는 고정된 객체인지를 확인하고 상기 객체가 고정된 객체인 경우 특징적 객체로 판단하거나, 또는 상기 제어부가 상기 각각의 객체가 로봇에 가까이 배치된 객체인지 또는 멀리 배치된 객체인지를 확인하고 상기 하나 이상의 객체들 중에서 가장 가까이 배치된 순서에 따라 상기 객체들의 특징적 객체에 대한 적합도를 산출하는 단계를 포함하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 방법.
  18. 제16항에 있어서,
    상기 제어부는 데이터베이스에 저장된 객체 또는 이전에 선택한 특징적 객체들과 상기 각각의 객체를 비교하여 유사도를 산출하는 단계; 및
    상기 제어부는 상기 유사도에 따라 상기 객체들의 특징적 객체에 대한 적합도를 산출하는 단계를 더 포함하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 방법.
  19. 제16항에 있어서,
    상기 제어부는 제1시점에 획득한 제1이미지 내에서 제1객체를 감지하는 단계;
    상기 제어부는 상기 제1시점에 후속하는 제2시점에 획득한 내에서 제2객체를 감지하는 단계; 및
    상기 제어부는 상기 제1객체 및 상기 제2객체의 위치 변화 및 상기 로봇의 이동 거리를 반영하여 상기 제1객체 및 상기 제2객체가 동일한 객체인 경우, 상기 제1객체 및 상기 제2객체에 대해 특징적 객체인지 여부를 검증하는 단계를 더 포함하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 방법.
  20. 제16항에 있어서,
    상기 제어부가 상기 이미지에서 객체를 감지한 후,
    상기 로봇의 인터페이스부는 상기 이미지와 상기 감지된 객체 및 상기 객체의 주변에 배치된 바운딩 박스를 출력하고 선택 정보를 입력받는 단계를 더 포함하는, 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 방법.
KR1020190111013A 2019-09-06 2019-09-06 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 방법 및 이를 구현하는 로봇과 클라우드 서버 KR20210029586A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190111013A KR20210029586A (ko) 2019-09-06 2019-09-06 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 방법 및 이를 구현하는 로봇과 클라우드 서버
US16/855,979 US11688081B2 (en) 2019-09-06 2020-04-22 Method of performing simultaneous localization and mapping with respect to a salient object in an image

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190111013A KR20210029586A (ko) 2019-09-06 2019-09-06 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 방법 및 이를 구현하는 로봇과 클라우드 서버

Publications (1)

Publication Number Publication Date
KR20210029586A true KR20210029586A (ko) 2021-03-16

Family

ID=74851269

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190111013A KR20210029586A (ko) 2019-09-06 2019-09-06 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 방법 및 이를 구현하는 로봇과 클라우드 서버

Country Status (2)

Country Link
US (1) US11688081B2 (ko)
KR (1) KR20210029586A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102624907B1 (ko) * 2022-07-18 2024-01-15 주식회사 브이알크루 3차원 지도를 업데이트하기 위한 방법 및 장치

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10949940B2 (en) * 2017-04-19 2021-03-16 Global Tel*Link Corporation Mobile correctional facility robots
US10690466B2 (en) 2017-04-19 2020-06-23 Global Tel*Link Corporation Mobile correctional facility robots
JP7288393B2 (ja) * 2019-11-28 2023-06-07 株式会社日立製作所 演算システム、演算方法
WO2021114777A1 (en) * 2019-12-12 2021-06-17 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Target detection method, terminal device, and medium
US20220182853A1 (en) * 2020-12-03 2022-06-09 Faro Technologies, Inc. Automatic handling of network communication failure in two-dimensional and three-dimensional coordinate measurement devices
CN113305848B (zh) * 2021-06-11 2022-06-07 哈尔滨工业大学 一种基于YOLO v2网络的实时抓取检测方法
CN113610819A (zh) * 2021-08-11 2021-11-05 杭州申昊科技股份有限公司 缺陷检测方法及装置、电子设备、存储介质
GB2620909B (en) * 2022-07-04 2024-09-18 Opteran Tech Limited Method and system for determining the structure, connectivity and identity of a physical or logical space or attribute thereof
CN116071538B (zh) * 2023-03-03 2023-06-27 天津渤海职业技术学院 一种基于slam的机器人定位系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7016532B2 (en) * 2000-11-06 2006-03-21 Evryx Technologies Image capture and identification system and process
US8271132B2 (en) * 2008-03-13 2012-09-18 Battelle Energy Alliance, Llc System and method for seamless task-directed autonomy for robots
EP3327697A1 (en) * 2010-09-24 2018-05-30 iRobot Corporation Systems and methods for vslam optimization
WO2012166814A1 (en) * 2011-05-31 2012-12-06 Honda Motor Co., Ltd. Online environment mapping
US11263823B2 (en) * 2012-02-24 2022-03-01 Matterport, Inc. Employing three-dimensional (3D) data predicted from two-dimensional (2D) images using neural networks for 3D modeling applications and other applications
US9037396B2 (en) * 2013-05-23 2015-05-19 Irobot Corporation Simultaneous localization and mapping for a mobile robot
US10068373B2 (en) * 2014-07-01 2018-09-04 Samsung Electronics Co., Ltd. Electronic device for providing map information
US9866815B2 (en) * 2015-01-05 2018-01-09 Qualcomm Incorporated 3D object segmentation
US9840003B2 (en) * 2015-06-24 2017-12-12 Brain Corporation Apparatus and methods for safe navigation of robotic devices
WO2017059581A1 (en) * 2015-10-09 2017-04-13 SZ DJI Technology Co., Ltd. Salient feature based vehicle positioning
WO2017172778A1 (en) * 2016-03-28 2017-10-05 Sri International Collaborative navigation and mapping
JP6911045B2 (ja) * 2016-04-12 2021-07-28 クイッディエント・エルエルシー 日常シーン復元エンジン
GB2554633B (en) * 2016-06-24 2020-01-22 Imperial College Sci Tech & Medicine Detecting objects in video data
US10395117B1 (en) * 2016-08-29 2019-08-27 Trifo, Inc. Visual-inertial positional awareness for autonomous and non-autonomous tracking
EP3542250A4 (en) * 2016-11-15 2020-08-26 Magic Leap, Inc. DEPTH LEARNING SYSTEM FOR DETECTION OF RUBBERS
WO2018111920A1 (en) * 2016-12-12 2018-06-21 The Charles Stark Draper Laboratory, Inc. System and method for semantic simultaneous localization and mapping of static and dynamic objects
US10353390B2 (en) * 2017-03-01 2019-07-16 Zoox, Inc. Trajectory generation and execution architecture
US10878294B2 (en) * 2018-01-05 2020-12-29 Irobot Corporation Mobile cleaning robot artificial intelligence for situational awareness
US11187536B2 (en) * 2018-01-12 2021-11-30 The Trustees Of The University Of Pennsylvania Probabilistic data association for simultaneous localization and mapping
US10695911B2 (en) * 2018-01-12 2020-06-30 Futurewei Technologies, Inc. Robot navigation and object tracking

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102624907B1 (ko) * 2022-07-18 2024-01-15 주식회사 브이알크루 3차원 지도를 업데이트하기 위한 방법 및 장치
WO2024019373A1 (ko) * 2022-07-18 2024-01-25 주식회사 브이알크루 3차원 지도를 업데이트하기 위한 방법 및 장치

Also Published As

Publication number Publication date
US20210073570A1 (en) 2021-03-11
US11688081B2 (en) 2023-06-27

Similar Documents

Publication Publication Date Title
US11688081B2 (en) Method of performing simultaneous localization and mapping with respect to a salient object in an image
US11554495B2 (en) Method of localization using multi sensor and robot implementing same
US11673269B2 (en) Method of identifying dynamic obstacle and robot implementing same
CN106940186B (zh) 一种机器人自主定位与导航方法及系统
JP6731388B2 (ja) 室内自律走行ロボットのための制御方法、プログラム、システム、マッピングロボット及びサービスロボット
CN108496127B (zh) 集中于对象的有效三维重构
KR102092392B1 (ko) 실 공간에서 관심지점 관련 정보를 자동으로 수집 및 업데이트하는 방법 및 시스템
CN104536445B (zh) 移动导航方法和系统
US20200004266A1 (en) Method of performing cloud slam in real time, and robot and cloud server for implementing the same
US11703334B2 (en) Mobile robots to generate reference maps for localization
US11188753B2 (en) Method of using a heterogeneous position information acquisition mechanism in an operating space and robot and cloud server implementing the same
KR102615685B1 (ko) 멀티 센서를 동기화시켜 위치를 추정하는 방법 및 이를 구현하는 로봇
US11467598B2 (en) Method of estimating position in local area of large space and robot and cloud server implementing thereof
Anup et al. Visual positioning system for automated indoor/outdoor navigation
KR102246236B1 (ko) 퓨전 슬램에서 맵을 업데이트하는 방법 및 이를 구현하는 로봇
KR20200013155A (ko) 관심 영역 변화를 검출하는 방법 및 시스템
KR102189926B1 (ko) 관심 영역 변화를 검출하는 방법 및 시스템
Sheikh et al. Stereo vision-based optimal path planning with stochastic maps for mobile robot navigation
KR20200013156A (ko) 간판 검출 성능 향상을 위한 방법 및 시스템
KR20210026595A (ko) 로봇이 관리자 모드로 이동하는 방법 및 이를 구현하는 로봇
Hu et al. Computer vision for sight: Computer vision techniques to assist visually impaired people to navigate in an indoor environment
KR20200052389A (ko) 인공지능 이동 로봇의 제어 방법
Tas et al. High-definition map update framework for intelligent autonomous transfer vehicles
Show et al. 3D Mapping and Indoor Navigation for an Indoor Environment of the University Campus
Roussel et al. Deep-geometric 6 dof localization from a single image in topo-metric maps

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal