KR20220008208A - 깊이 및 모션 추정을 위한 자기 지도 어텐션 학습 - Google Patents

깊이 및 모션 추정을 위한 자기 지도 어텐션 학습 Download PDF

Info

Publication number
KR20220008208A
KR20220008208A KR1020210054522A KR20210054522A KR20220008208A KR 20220008208 A KR20220008208 A KR 20220008208A KR 1020210054522 A KR1020210054522 A KR 1020210054522A KR 20210054522 A KR20210054522 A KR 20210054522A KR 20220008208 A KR20220008208 A KR 20220008208A
Authority
KR
South Korea
Prior art keywords
image
pose
camera
module
depth
Prior art date
Application number
KR1020210054522A
Other languages
English (en)
Other versions
KR102646152B1 (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 네이버 주식회사
Publication of KR20220008208A publication Critical patent/KR20220008208A/ko
Application granted granted Critical
Publication of KR102646152B1 publication Critical patent/KR102646152B1/ko

Links

Images

Classifications

    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • 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/20Control system inputs
    • G05D1/24Arrangements for determining position or orientation
    • G05D1/247Arrangements for determining position or orientation using signals provided by artificial sources external to the vehicle, e.g. navigation beacons
    • G05D1/249Arrangements for determining position or orientation using signals provided by artificial sources external to the vehicle, e.g. navigation beacons from positioning sensors located off-board the vehicle, e.g. from cameras
    • 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
    • G05D1/0251Control 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 extracting 3D information from a plurality of images taken from different locations, e.g. stereo vision
    • 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/20Control system inputs
    • G05D1/24Arrangements for determining position or orientation
    • G05D1/243Means capturing signals occurring naturally from the environment, e.g. ambient optical, acoustic, gravitational or magnetic signals
    • G05D1/2435Extracting 3D information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • 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/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0014Image feed-back for automatic industrial control, e.g. robot with camera
    • G06T3/0093
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/18Image warping, e.g. rearranging pixels individually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/136Segmentation; Edge detection involving thresholding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • 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/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/271Image signal generators wherein the generated image signals comprise depth maps or disparity maps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • 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/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Automation & Control Theory (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Robotics (AREA)
  • Electromagnetism (AREA)
  • Signal Processing (AREA)
  • Medical Informatics (AREA)
  • Image Analysis (AREA)

Abstract

시스템은, 인코더 및 디코더를 포함하고 카메라로부터 제1 시간의 제1 이미지를 수신하고, 제1 이미지에 기초하여, 카메라와 제1 이미지의 객체 사이의 깊이를 포함하는 깊이 맵을 생성하도록 구성된 깊이 모듈, 제1 이미지에 기초하여 카메라의 제1 포즈를 생성하고, 제2 이미지에 기초하여 제2 시간 동안 카메라의 제2 포즈를 생성하고, 제3 이미지에 기초하여 제3 시간 동안 카메라의 제3 포즈를 생성하도록 구성된 포즈 모듈, 및 제1 포즈 및 제2 포즈에 기초하여 제2 시간 및 제1 시간 사이의 카메라의 제1 모션을 결정하고, 제2 포즈 및 제3 포즈에 기초하여 제2 시간 및 제3 시간 사이의 카메라의 제2 모션을 결정하도록 구성된 모션 모듈을 포함한다.

Description

깊이 및 모션 추정을 위한 자기 지도 어텐션 학습{SELF-SUPERVISED ATTENTION LEARNING FOR DEPTH AND MOTION ESTIMATION}
본 개시는 시각적 주행(visual navigation)에 관한 것으로, 좀 더 구체적으로 깊이 및 모션 추정을 위한 시스템 및 방법에 관한 것이다.
여기에 제공된 배경기술 설명은 본 개시의 컨텍스트(context)를 일반적으로 제시하기 위한 것이다. 본 배경기술 항목에서 기술된 범위 내에서, 현재 기재된 발명자의 작업(work)과, 출원 당시의 선행기술로서 달리 평가되지 않을 수 있는 기재의 양태들은, 본 개시에 대한 선행기술로서 명시적으로 또는 암시적으로 인정되지 않는다.
주행 로봇(navigating robot)은 이동 중에 물체와 충돌하지 않고 환경을 탐색하도록 훈련될 수 있는 모바일 로봇이다. 주행 로봇은 작동할 환경에서 훈련되거나, 환경에 관계없이 작동하도록 훈련될 수 있다.
주행 로봇은 다양한 산업 분야에서 사용될 수 있다. 주행 로봇의 일 예는 하나 이상의 패키지를 목적지로 이동시키기 위해 실내 공간(예: 창고)을 주행하는 패키지 핸들러 로봇(package handler robot)이다. 주행 로봇의 다른 예는 한 명 이상의 탑승자를 픽업 지역에서 목적지로 이동시키기 위해 실외 공간(예: 도로)을 주행하는 자율 주행 차량이다.
일 특징에서, 시스템은, 인코더 및 디코더를 포함하며, 카메라로부터 제1 시간의 제1 이미지를 수신하고, 인코더 및 디코더를 사용하여 제1 이미지를 기초로, 카메라와 제1 이미지 내의 객체 사이의 깊이를 포함하는 깊이 맵을 생성하도록 구성된 깊이 모듈, 제1 이미지에 기초하여 카메라의 제1 포즈를 생성하고, 제1 이미지 이전에 카메라로부터 수신된 제2 이미지에 기초하여 제2 시간에 대해 카메라의 제2 포즈를 생성하고, 제1 이미지 이후에 카메라로부터 수신된 제3 이미지에 기초하여 제3 시간에 대해 카메라의 제3 포즈를 생성하도록 구성된 포즈 모듈, 및 제1 포즈 및 제2 포즈에 기초하여 제2 시간과 제1 시간 사이의 카메라의 제1 모션을 결정하고, 제2 포즈 및 제3 포즈에 기초하여 제2 시간과 제3 시간 사이의 카메라의 제2 모션을 결정하도록 구성된 모션 모듈을 포함한다.
일 특징에서, 차량은 시스템, 차량을 추진하도록 구성된 추진 장치, 및 깊이 맵에 기초하여 추진 장치를 작동시키도록 구성된 제어 모듈을 포함한다.
추가 특징에서, 차량은 카메라를 포함하고, 다른 카메라는 포함하지 않는다.
추가 특징에서, 차량에는 레이더, 초음파 센서, 레이저 센서 또는 라이다 센서를 포함하지 않는다.
일 특징에서, 차량은 시스템, 차량을 추진하도록 구성된 추진 장치, 및 제1 모션 및 제2 모션 중 적어도 하나에 기초하여 추진 장치를 작동시키도록 구성된 제어 모듈을 포함한다.
추가 특징에서, 제1 포즈, 제2 포즈 및 제3 포즈는 6 자유도 포즈이다.
추가 특징에서, 깊이 모듈은 제1 이미지에 기초하여, 제1 이미지의 객체에 대한 속성에 대한 어텐션의 양을 나타내는 어텐션 계수를 포함하는 어텐션 맵을 생성하도록 구성된 어텐션 메커니즘을 포함한다.
추가 특징에서, 어텐션 메커니즘은 어텐션 게이트를 포함한다.
추가 특징에서, 디코더는 어텐션 메커니즘을 포함한다.
추가 특징에서, 인코더는 어텐션 메커니즘을 포함하지 않는다.
추가 특징에서, 디코더는 디코더 레이어를 포함하고 어텐션 메커니즘은 디코더 레이어와 교차배치된다.
추가 특징에서, 시스템은 어텐션 맵을 사용하여 제2 이미지를 재구성하여 재구성된 제2 이미지를 생성하도록 구성된 제1 재구성 모듈, 어텐션 맵을 사용하여 제3 이미지를 재구성하여 재구성된 제3 이미지를 생성하도록 구성된 제2 재구성 모듈, 및 재구성된 제2 이미지 및 재구성된 제3 이미지 중 적어도 하나에 기초하여, 깊이 모듈, 포즈 모듈 및 모션 모듈 중 적어도 하나에 대한 적어도 하나의 파라미터를 선택적으로 조정하도록 구성된 훈련 모듈을 더 포함한다.
추가 특징에서, 훈련 모듈은 재구성된 제2 이미지, 재구성된 제3 이미지, 제2 이미지 및 제3 이미지에 기초하여 적어도 하나의 파라미터를 선택적으로 조정하도록 구성된다.
추가 특징에서, 훈련 모듈은 재구성된 제2 이미지와 제2 이미지 사이의 제1 차이 및 재구성된 제3 이미지와 제3 이미지 사이의 제2 차이에 기초하여 적어도 하나의 파라미터를 선택적으로 조정하도록 구성된다.
추가 특징에서, 훈련 모듈은 깊이 모듈, 포즈 모듈 및 모션 모듈을 공동으로 훈련하도록 구성된다.
추가 특징에서, 제1 재구성 모듈은 이미지 워핑 알고리즘 및 어텐션 맵을 사용하여 제2 이미지를 재구성하도록 구성되고, 제2 재구성 모듈은 이미지 워핑 알고리즘 및 어텐션 맵을 사용하여 제3 이미지를 재구성하도록 구성된다.
추가 특징에서, 이미지 워핑 알고리즘은 역 이미지 워핑 알고리즘을 포함한다.
추가 특징에서, 포즈 모듈은 PoseNet 알고리즘을 사용하여 제1 포즈, 제2 포즈 및 제3 포즈를 생성하도록 구성된다.
추가 특징에서, 깊이 모듈은 DispNet 인코더-디코더 네트워크를 포함한다.
일 특징에서, 방법은, 카메라로부터 제1 시간에 대한 제1 이미지를 수신하는 단계, 제1 이미지에 기초하여, 카메라와 제1 이미지의 객체 사이의 깊이를 포함하는 깊이 맵을 생성하는 단계, 제1 이미지에 기초하여 카메라의 제1 포즈를 생성하는 단계, 제1 이미지 이전에 카메라로부터 수신된 제2 이미지에 기초하여 제2 시간에 대한 카메라의 제2 포즈를 생성하는 단계, 제1 이미지 이후에 카메라로부터 수신된 제3 이미지에 기초하여 제3 시간에 대한 카메라의 제3 포즈를 생성하는 단계, 제1 포즈 및 제2 포즈에 기초하여 제2 시간과 제1 시간 사이의 카메라의 제1 모션을 결정하는 단계, 및 제2 포즈 및 제3 포즈에 기초하여 제2 시간과 제3 시간 사이의 카메라의 제2 모션을 결정하는 단계를 포함한다.
일 특징에서, 시스템은, 하나 이상의 프로세서, 및 하나 이상의 프로세서에 의해 실행될 때, 카메라로부터 제1 시간에 대한 제1 이미지를 수신하고, 제1 이미지에 기초하여, 카메라와 제1 이미지 내의 객체 사이의 깊이를 포함하는 깊이 맵을 생성하고, 제1 이미지에 기초하여 카메라의 제1 포즈를 생성하고, 제1 이미지 이전에 카메라로부터 수신된 제2 이미지에 기초하여 제2 시간에 대한 카메라의 제2 포즈를 생성하고, 제1 이미지 이후에 카메라로부터 수신된 제3 이미지에 기초하여 제3 시간에 대한 카메라의 제3 포즈를 생성하고, 제1 포즈 및 제2 포즈에 기초하여 제2 시간과 제1 시간 사이의 카메라의 제1 모션을 결정하고, 제2 포즈 및 제3 포즈에 기초하여 제2 시간과 제3 시간 사이의 카메라의 제2 모션을 결정하는 기능들을 수행하는 코드를 포함하는 메모리를 포함한다.
일 특징에서, 시스템은, 카메라로부터 제1 시간에 대한 제1 이미지를 수신하고, 제1 이미지에 기초하여, 카메라와 제1 이미지 내의 객체 사이의 깊이를 포함하는 깊이 맵을 생성하는 제1 수단, 제1 이미지에 기초하여 카메라의 제1 포즈를 생성하고, 제1 이미지 이전에 카메라로부터 수신된 제2 이미지에 기초하여 제2 시간에 대한 카메라의 제2 포즈를 생성하고, 제1 이미지 이후에 카메라로부터 수신된 제3 이미지에 기초하여 제3 시간에 대한 카메라의 제3 포즈를 생성하는 제2 수단, 및 제1 포즈 및 제2 포즈에 기초하여 제2 시간과 제1 시간 사이에 카메라의 제1 모션을 결정하고, 제2 포즈 및 제3 포즈에 기초하여 제2 시간과 제3 시간 사이의 카메라의 제2 모션을 결정하는 제3 수단을 포함한다.
본 개시 내용의 추가적인 적용 분야는 상세한 설명, 청구범위 및 도면으로부터 명백해질 것이다. 상세한 설명 및 특정 예는 단지 예시를 위한 것이며, 본 개시의 범위를 한정하려는 것이 아니다.
특허 또는 출원 파일은 컬러로 작성된 적어도 하나의 도면을 포함한다. 컬러 도면을 포함하는 이 특허 또는 특허 출원 공보의 사본은 요청 및 필요한 비용을 지불하는 경우 특허청에서 제공될 수 있다.
본 개시는 상세한 설명 및 첨부 도면으로부터 보다 완전히 이해될 것이다.
도 1은 주행 로봇의 예시적인 구현의 기능적인 블록도이다.
도 2는 주행 로봇에 의한 시각적 네이게이션을 위한 깊이 및 모션 모듈을 생성하고 훈련하는 훈련 시스템의 기능적인 블록도이다.
도 3은 깊이 및 모션 모듈의 예시적인 구현의 기능적인 블록도이다.
도 4는 훈련 제어 모듈의 예시적인 구현의 기능적인 블록도이다.
도 5는 깊이 및 모션 모듈과 훈련 제어 모듈의 일부를 포함하는 기능적인 블록도이다.
도 6은 역방향 순방향 일관성에 관한 예시적인 도면이다.
도 7은 깊이 모듈의 예시적인 구현의 기능적인 블록도이다.
도 8은 이미지들로부터 깊이 모듈에 의해 생성된 3 개의 이미지 및 각각의 어텐션 맵(각 픽셀에 대한 어텐션 계수의)의 예시를 포함한다.
도 9는 각 자유도, 평행 이동 (x, y, z) 및 회전(roll, pitch, yaw)에 대한 실측 자료(ground truth)와 관련하여 추정된 포즈를 시각화하는 예시적인 그래프를 포함한다.
도 10은 깊이 및 모션을 추정하고 주행 로봇을 제어하는 예시적인 방법을 나타내는 흐름도를 포함한다.
도 11은 깊이 및 모션 모듈을 훈련하는 예시적인 방법을 나타내는 흐름도를 포함한다.
도면에서, 참조 번호는 유사 및/또는 동일한 요소를 식별하기 위해 재사용될 수 있다.
모바일 로봇의 시각적 주행은 시각(vision)과 제어 영역(domain)을 결합한다. 주행(navigation)은 시작 위치와 목적지 위치 사이에서 적절하고 막히지 않은 경로를 찾는 것으로 설명될 수 있다. 주행 로봇은 하나 이상의 센서(예: 카메라)로부터의 입력을 기초로 주행 로봇을 이동시키도록 구성된 제어 모듈을 포함한다.
본 출원은 카메라로부터의 이미지 내의 깊이(객체까지의 거리)를 추정하고, 이미지들을 기반으로 주행 로봇의 이동(movement)을 추정하도록 구성된 깊이 및 모션 모듈을 포함한다. 이동은, 예를 들어, 건물 내에서와 같은 주행 로봇의 위치를 결정하고, 주행 로봇을 이동시키는데 사용될 수 있다. 깊이는 객체 회피 및/또는 경로 계획과 같은 로봇의 이동에도 사용될 수 있다.
도 1은 내비게이션 로봇(100)의 예시적인 구현의 기능적인 블록도이다. 주행 로봇(100)은 차량이다. 주행 로봇(100)은 주행 로봇(100) 앞의 미리 정해진 시야각(FOV: field of view) 내의 이미지를 캡처하는 카메라(104)를 포함한다. 미리 정해진 FOV는 주행 로봇(100)을 중심으로 360도 미만일 수 있다. 주행 로봇(100)은 주행 로봇(100)을 중심으로 완전한 360도 FOV 미만일 수 있다. 주행 로봇(100)의 동작 환경은 실내 공간(예: 빌딩) 또는 실외 공간일 수 있다.
카메라(104)는, 예를 들어, 그레이스케일(grayscale) 카메라, RGB 카메라, 또는 다른 적절한 유형의 카메라일 수 있다. 다양한 구현에서, 카메라(104)는 그레이스케일-D 카메라 또는 RGB-D 카메라의 예에서와 같이 깊이(D: depth) 정보를 캡처하지 않을 수 있다. 카메라(104)는, 주행 로봇(100)에 대한 카메라(104)의 방향이 일정하게 유지되도록, 주행 로봇(100)에 고정될 수 있다.
다양한 구현에서, 주행 로봇(100)은 임의의 다른 유형의 객체 검출(object detection) 센서를 포함하지 않을 수 있다. 예를 들어, 주행 로봇(100)은 레이더 센서, 초음파 센서, 카메라, 레이저 센서, 또는 라이다(LIDAR: light detection and ranging) 센서를 포함하지 않을 수 있다. 카메라(104)만을 포함함으로써 주행 로봇(100)이 하나 이상의 추가적인 객체 검출 센서를 갖는 주행 로봇보다 저렴하게 제조될 수 있다. 본 출원은 카메라(104)로부터의 이미지에 기초하여 카메라(104)의 FOV 내의 아이템의 깊이 및 주행 로봇(100)의 모션을 추정하는 것을 포함한다.
주행 로봇(100)은 하나 이상의 바퀴, 하나 이상의 트레드(tread)/트랙(track), 하나 이상의 이동 다리(moving leg), 하나 이상의 프로펠러(propeller) 및/또는 주행 로봇(100)을 전방, 후방, 오른쪽, 왼쪽, 위, 아래로 추진하도록 구성된 하나 이상의 다른 유형의 장치와 같은 하나 이상의 추진 장치(108)를 포함한다. 하나 또는 둘 이상의 추진 장치(108)의 조합은 주행 로봇(100)을 전방 또는 후방으로 추진하고, 주행 로봇(100)을 오른쪽으로 회전시키고, 주행 로봇(100)을 왼쪽으로 회전시키고, 및/또는 주행 로봇(100)을 수직으로 위 또는 아래로 상승시키는데 사용될 수 있다.
주행 로봇(100)은 카메라(104)로부터의 이미지에 기초하여, 카메라(104)의 FOV 내의(주행 로봇(100) 앞 쪽의) 객체의 깊이 및 주행 로봇(100)의 모션을 추정하도록 훈련된 깊이 및 모션 모듈(110)을 포함한다. 보다 구체적으로, 깊이 및 모션 모듈(110)은 시간 t에서의 이미지에 기초하여 시간 t에서의 카메라(104)의 FOV 내의 객체의 깊이를 추정하도록 훈련된다. 깊이 및 모션 모듈(110)은 시간 t에서의 이미지 및 시간 t+1에서의 이미지에 기초하여 시간 t부터 시간 t 이후의 다음 시간인 t+1까지의 모션을 추정하도록 훈련된다. 깊이 및 모션 모듈(110)은 시간 t에서의 이미지 및 시간 t-1에서의 이미지에 기초하여 이전 시간 t-1부터 시간 t까지의 모션을 추정하도록 훈련된다.
카메라(104)는 60 헤르츠(Hz), 120 Hz 또는 다른 적절한 주파수와 같은 미리 결정된 주파수에서 업데이트할 수 있다. 깊이 및 모션 모듈(110)은 카메라(104)로부터 이미지가 수신 될 때마다, 깊이 및 추정된 모션(t-1에서 t 및 t에서 t+1에서의 움직임)을 생성할 수 있다
일단 훈련되면, 깊이 및 모션 모듈(110)은 주행 로봇(100)에 의해 깊이 및 모션을 추정하기 위해 사용된다. 깊이 및 모션 모듈(110)의 훈련은 아래에서 논의된다.
제어 모듈(112)은 깊이 및 모션에 기초하여, 시작 위치에서 목표 위치로 이동하는 것과 같이 추진 장치(108)를 제어하여 주행하도록 구성된다. 깊이는 이미지의 각 픽셀에서 깊이(가장 가까운 객체까지의 거리)의 맵을 포함할 수 있다. 깊이에 기초하여, 제어 모듈(112)은 주행 로봇(100)이 취해야 할 액션을 결정할 수 있다. 예를 들어, 제어 모듈(112)은 주행 로봇(100)이 일부 상황에서 깊이에 기초하여 미리 결정된 거리만큼 전방으로 이동하도록 추진 장치(108)를 작동시킬 수 있다. 제어 모듈(112)은 주행 로봇(100)이 일부 상황에서 깊이에 기초하여 미리 결정된 거리만큼 후방으로 이동하도록 추진 장치(108)를 작동시킬 수 있다. 제어 모듈(112)은 주행 로봇(100)이 일부 상황에서 깊이에 기초하여 미리 결정된 각도만큼 우측으로 회전하도록 추진 장치(108)를 작동시킬 수 있다. 제어 모듈(112)은 주행 로봇(100)이 일부 상황에서 깊이에 기초하여 미리 결정된 각도만큼 좌측으로 회전하도록 추진 장치(108)를 작동시킬 수 있다. 제어 모듈(112)은 주행 로봇(100)이 일부 상황에서 깊이에 기초하여 움직이지 않도록 추진 장치(108)를 작동시키지 않을 수 있다. 제어 모듈(112)은 주행 로봇(100)이 일부 상황에서 깊이에 기초하여 상측으로 움직이도록 추진 장치(108)를 작동시킬 수 있다. 제어 모듈(112)은 주행 로봇(100)이 일부 상황에서 깊이에 기초하여 하측으로 움직이도록 추진 장치(108)를 작동시킬 수 있다.
제어 모듈(112)은 하나 이상의 추정된 모션에 기초하여 하나 이상의 추진 장치(108)의 제어를 조정할 수 있다. 예를 들어, 제어 모듈(112)은 주행 로봇(100)이 미리 결정된 각도만큼 우측으로 회전하도록 추진 장치를 제어하고, 깊이 및 모션 모듈(110)은 주행 로봇(100)이 미리 결정된 각도 미만으로 회전했다고 표시하는 경우, 제어 모듈(112)은 주행 로봇(100)이 미리 결정된 각도 또는 그에 가깝게 우측으로 회전하도록 추진 장치의 작동을 조정할 수 있다. 전방, 좌측, 후방, 상측 또는 하측으로 이동하는 경우에도 동일한 방식이 적용될 수 있다.
도 2는, 주행 로봇(100)에 의한 것과 같이, 깊이 및 모션 추정을 위해 깊이 및 모션 모듈(110)을 훈련하기 위한 예시적인 훈련 시스템(200)의 기능적인 블록도를 포함한다. 훈련 제어 모듈(204)은, 아래에서 더 논의되는 바와 같이, 메모리에 저장된 훈련 이미지 세트(208)를 사용하여 깊이 및 모션 모듈(110)을 훈련시킨다. 입력 모듈(212)은 미리 정해진 순서에 따라 훈련 이미지(208) 중 일부를 선택한다.
도 3은 깊이 및 모션 모듈(110)의 예시적인 구현의 기능적인 블록도이다. 버퍼 모듈(304)은 주행 로봇(100)의 동작 동안의 카메라(104)로부터의 이미지 또는 깊이 및 모션 모듈(110)의 훈련 동안의 훈련 이미지와 같은 이미지를 수신한다. 버퍼 모듈(304)은 각각 3회 연속 촬영된 적어도 3개의 이미지를 각각 저장하고, 더 연속된 횟수로 촬영된 더 많은 이미지를 저장할 수 있다. 3회(시간 t, 시간 t의 직전 시간 t-1, 시간 t의 직후 시간 t+1)의 3개의 이미지(I t , I t-1 I t+1 )가 도 3에 도시되어 있다.
깊이 모듈(308)은 시간 t로부터의 이미지(I t )에 기초하여 시간 t에서의 깊이 맵(각 픽셀에서의 깊이)을 결정한다. 깊이 모듈(308)은 또한 시간 t로부터의 이미지에 기초하여 시간 t에서의 어텐션 맵(각 픽셀에서의 어텐션 값을 포함)을 결정한다.
포즈 모듈(312)은 시간 t, 시간 t-1 및 시간 t+1에서의 각각의 이미지에 기초하여, 시간 t, 시간 t-1 및 시간 t+1에서의 카메라의 포즈를 결정한다. 포즈는, 예를 들어, 상대 포즈(relative pose) 또는 절대 포즈(absolute pose)일 수 있다. 포즈는 6 자유도(6DoF) 포즈일 수 있다.
모션 모듈(316)은 시간 t-1에서의 포즈와 시간 t에서의 포즈 간의 차이에 기초하여 시간 t-1과 시간 t 사이의 모션을 결정한다. 모션 모듈(316)은 시간 t에서의 포즈와 시간 t+1에서의 포즈 간의 차이에 기초하여 시간 t와 시간 t+1 사이의 모션을 결정한다. 주행 로봇(100)의 동작 동안에, 포즈는 카메라(104)의 포즈이고, 모션은 주행 로봇(100)의 모션(위치 변화)이다. 훈련 동안에, 포즈는 훈련 이미지를 캡처한 카메라의 포즈이고, 모션(위치 변경)은 훈련 이미지를 캡처한 카메라가 고정된 차량의 모션이다.
주행 로봇(100)의 동작 동안, 제어 모듈(112)은 전술한 바와 같이 깊이 및/또는 모션에 기초하여 추진 장치(108)를 작동시킬 수 있다. 깊이 및 모션 모듈(110)은 새로운 이미지가 수신될 때마다 깊이 및 모션을 업데이트한다. 새로운 이미지는 미리 정해진 기간마다 수신될 수 있다. 미리 정해진 기간은 시간 t-1과 시간 t 사이의 기간과 시간 t와 시간 t+1 사이의 기간이다.
도 4는 훈련 제어 모듈(204)의 예시적인 구현의 기능적인 블록도이다. 훈련 제어 모듈(204)은 깊이 및 모션 모듈(110)의 훈련 동안 동작한다. 깊이 및 동작 모듈(110)의 훈련은 주행 로봇(100)의 작동을 위해 깊이 및 동작 모듈(110)이 주행 로봇(100)에 저장되기 전에 수행된다.
재구성 모듈(404)은 시간 t와 시간 t+1 사이의 모션, 어텐션 맵 및 시간 t+1에서의 깊이 맵으로부터 시간 t+1에서의 이미지를 재구성한다. 재구성 모듈(404)은, 예를 들어, 역 이미지 워핑 알고리즘 또는 다른 적절한 유형의 이미지 재구성 알고리즘을 사용하여 시간 t+1에서 이미지를 재구성할 수 있다. 재구성 모듈(404)은 시간 t+1에서 재구성된 이미지(재구성된 I t+1 )를 생성한다.
재구성 모듈(408)은 시간 t-1에서 시간 t 사이의 모션,어텐션 맵 및 시간 t-1에서의 깊이(맵)로부터 시간 t-1에서의 이미지를 재구성한다. 재구성 모듈(408)은 예를 들어, 역 이미지 워핑 알고리즘 또는 다른 적절한 유형의 이미지 재구성 알고리즘을 사용하여 시간 t-1에서 이미지를 재구성할 수 있다. 재구성 모듈(408)은 시간 t-1에서 재구성된 이미지(재구성된 I t-1 )를 생성한다.
손실 모듈(loss module)(412)은 시간 t+1 및 t-1에서의 재구성된 이미지 및 시간 t+1 및 t-1에서의 원본 이미지에 기초하여 손실을 결정한다. 손실 모듈(412)은, 예를 들어, t+1 시간에서의 재구성된 이미지와 t+1 시간에서의 이미지 간의 제1 차이 및 t-1 시간에서의 재구성된 이미지와 t-1 시간에서의 이미지 간의 제2 차이를 기초로 손실을 결정할 수 있다. 손실 모듈(412)은 손실 알고리즘(loss algorithm) 또는 입력을 출력에 관련시키는 룩업 테이블을 사용하여 손실을 결정할 수 있다.
훈련 모듈(416)은 손실을 최소화하거나 손실을 0으로 조정하는 것과 같이 하나 이상의 손실 값에 기초하여 깊이 및 모션 모듈(110)의 하나 이상의 파라미터(예를 들어, 가중치 값)를 선택적으로 조정한다. 다양한 구현에서, 훈련 모듈(416)은 미리 결정된 수의 훈련 이미지가 입력되고 손실이 결정될 때까지 하나 이상의 파라미터를 선택적으로 조정하기 위해 대기할 수 있다. 미리 결정된 수는, 예를 들어, 100, 200, 500, 1000 또는 다른 적절한 수일 수 있다. 각각 미리 정해진 수의 훈련 이미지를 포함하는 미리 정해진 수의 에포크(epoch)가 깊이 및 모션 모듈(110)을 훈련시키는데 사용될 수 있다. 미리 결정된 에포크의 수는, 예를 들어, 10, 50, 100, 250, 1000 또는 다른 적절한 수일 수 있다.
도 5는 깊이 및 모션 모듈(110)과 훈련 제어 모듈(204)의 일부를 포함하는 기능적인 블록도이다. 도 5에서, 입력 이미지(I t )에 기초하여 생성된 예시적인 어텐션 맵(504) 및 예시적인 깊이 맵(508)이 도시된다. 깊이 맵(508)에서, 깊이 모듈(308)은 그 픽셀에서 카메라에 가장 가까운 물체가 카메라로부터 멀어질 때 픽셀을 더 밝게(더 희게) 만들 수 있다. 깊이 모듈(308)은 그 픽셀에서 카메라에 가장 가까운 물체가 카메라로부터 더 가까워질 때 픽셀을 더 어둡게(더 검게) 만들 수 있다. 따라서, 더 어두운 픽셀은 물체가 카메라에 더 가깝다는 것을 나타내며, 그 반대의 경우도 마찬가지다.
어텐션 맵(504)에서, 깊이 모듈(308)은 더 뚜렷한 특징을 갖는 픽셀을 더 밝게(더 희게) 만들 수 있다. 깊이 모듈(308)은 픽셀이 덜 구별되는 특징을 포함할 때, 픽셀을 더 어둡게(더 검게) 만들 수 있다. 따라서, 더 어두운 픽셀은 물체가 카메라에 더 가깝다는 것을 나타내며, 그 반대의 경우도 마찬가지다.
도 5에는, 예시적인 재구성된 이미지(512 및 516)도 도시되어 있다.
깊이 모듈(308)은 DispNet 인코더-디코더 네트워크 또는 다른 적절한 유형의 인코더-디코더 네트워크와 같은 인코더-디코더 네트워크를 포함할 수 있다. 깊이 모듈(308)은 입력 이미지를 수신하고, 입력 이미지의 모든 픽셀 p에 대한 디스패리티(disparity) 값 D t (p)를 생성한다.
포즈 모듈(312)은 PoseNet 알고리즘 또는 다른 적절한 포즈 추정 알고리즘과 같은 포즈 추정 알고리즘을 사용하여 포즈를 생성할 수 있다. 포즈 모듈(312)은 이미지(I t , I t-1 I t+1 )를 수신한다. 다양한 구현에서, I t-1 I t+1 은 인접 (소스) 이미지(I s )로 지칭될 수 있으며, 여기서
Figure pat00001
이다. 입력 이미지를 기초로, 포즈 추정 알고리즘을 사용하여, 포즈 모듈(312)은 이미지 간의 상대 포즈인 6 자유도 포즈(6DoF)를 나타낼 수 있는 변환 행렬(transformation matrix)
Figure pat00002
을 생성한다.
훈련 제어 모듈(204)은 자기 지도 학습/훈련을 이용한다. 이것은 역 워핑 알고리즘을 사용하는 것과 같은 이미지 재구성이 선행된다. 미분 가능하기 때문에, 이것은 훈련 제어 모듈(204)이 훈련 동안 깊이 및 모션 모듈(110)로 그래디언트(gradient)를 역전파할 수 있게 한다.
훈련 제어 모듈(204)은 디스패리티 맵(D t ) 및 상대 포즈 변환 행렬(
Figure pat00003
)에 기초하여 소스 이미지(Is)로부터 픽셀을 샘플링함으로써 타겟 이미지(I t )를 재구성한다. 훈련 제어 모듈(204)은 소스 이미지의 픽셀 p s 상에 타겟 픽셀 p t 의 동차 좌표(homogeneous coordinates)를 투영하여 샘플링할 수 있다. 카메라 내부 파라미터 K, 픽셀 D t (p)의 추정 깊이 및 변환
Figure pat00004
가 주어지면, 훈련 제어 모듈(204)은 다음의 수학식 1을 사용하여 투영(projection)을 수행할 수 있다.
Figure pat00005
p s 의 비이산(non-discrete) 값에 대해, 훈련 제어 모듈(204)은 그 위치(픽셀)에서의 강도(intensity) 값을 찾기 위해 미분 가능한 이중 선형 샘플링 보간(bi-linear sampling interpolation)을 수행할 수 있다. 재구성된 이미지의 평균 강도 값은 다음의 수학식 2와 같이 해당 픽셀(예: 오른쪽 위, 왼쪽 위, 왼쪽 아래, 오른쪽 아래)의 4개(예: 대각선의)의 이웃 픽셀을 사용하여 보간하는 훈련 제어 모듈(204)에 의해 보간될 수 있다.
Figure pat00006
여기서,
Figure pat00007
는 재구성된 이미지(I s )에서 p t 의 강도 값이다. 가중치 wij 는 픽셀 p s와 이웃 픽셀
Figure pat00008
사이의 공간적 근접성(spatial proximity)에 선형적으로(linearly) 비례할 수 있다. 4개의 가중치 wij 의 합은 1이 될 수 있다.
정적 세계 가정(static world assumption)에서, 광도 손실(photometric loss)은 L1 loss 목적 함수(
Figure pat00009
)로 정의될 수 있다. 실제 장면에서 정적 세계 가정을 위반하는 것은 재구성에 영향을 미칠 수 있다. 이를 극복하기 위해, 훈련 제어 모듈(204)은 워핑된 이미지에서 픽셀의 중요성을 표시하기 위해 설명성 마스크(explainability mask)를 사용할 수 있다. 픽셀이 손상된 합성에 기여하는 경우, 훈련 제어 모듈(204)은 픽셀의 설명성 값을 무시할 수 있는 값(negligible value)으로 설정할 것이다. 훈련 제어 모듈(204)은 설명성 모듈을 생성하기 위한 설명성 모듈을 포함할 수 있다. 설명성 모듈은 ExpNet 또는 다른 적절한 설명성 알고리즘과 같은 설명성 알고리즘을 사용하여 워핑 이미지를 기반으로 설명성 모듈을 생성할 수 있다. ExpNet은 포즈 모듈과 인코더를 공유하고(또는 동일한 유형의 인코더를 가지고) 포즈 모듈(312)의 디코더 부분에서 분기할 수 있다(또는 다른 디코더를 가질 수 있음).
훈련 제어 모듈(204)은 깊이, 자세 및 설명성을 위해 동시에(공동으로) 3개의 모듈을 훈련한다. 설명성 모듈의 디코더는 픽셀 당 마스크
Figure pat00010
를 생성한다. 설명성 모듈은 각 소스 이미지(source image)에 대한 설명성 값을 생성한다. 픽셀 당 설명성 값은 수학식 3과 같이 광도 손실에 내장(또는 포함)된다.
Figure pat00011
여기서 |V|는 이미지의 픽셀 수이다.
Figure pat00012
인 경우 수학식 3의 자명해(trivial solution)을 피하기 위해, 설명성 모듈은
Figure pat00013
값에 제약 조건(constraint)을 적용할 수 있다. 이 제약 조건은 정규화 손실
Figure pat00014
로 구현될 수 있으며, 이는 1과 같은 마스크 값과 상수 간의 교차 엔트로피 손실(cross-entropy loss)로 정의될 수 있다.
픽셀 대 픽셀의 깊이 평활도(smoothness)를 위해, 훈련 제어 모듈(204)은 수학식 4와 같이 평활도 항(smoothness term)을 사용하여 그래디언트-국소성(gradient-locality)을 해결하고 낮은 텍스처(low-texture) 영역에서 학습된 깊이의 불연속성을 제거할 수 있다. 예를 들어, 훈련 제어 모듈(204)은 깊이 그래디언트를 가중하기 위해 이미지 그래디언트를 사용하는 에지 인지 깊이 평활도 손실(edge-aware depth smoothness loss)을 사용할 수 있다.
Figure pat00015
여기서 p는 깊이 맵 D와 이미지 I의 픽셀이고, ∇은 2차원(2D) 미분 연산자를 나타내고, |.|는 요소 별 절대 값이다. 평활도 손실은 DispNet 알고리즘과 ExpNet 알고리즘으로부터의 세 개의 중간 레이어(intermediate layer)에 적용될 수 있다.
역방향-순방향 일관성과 관련하여, 훈련 제어 모듈(204)은 리군(Lie group) 속성을 사용하여 기하학적 일관성을 강화할 수 있다. 3차원(3D) 공간 변환 세트 T는 회전 구성 요소
Figure pat00016
및 평행 이동 구성 요소
Figure pat00017
인 동차 벡터(homogeneous vector)
Figure pat00018
에 대한 선형 변환(linear transformation)으로 표현되는 리군
Figure pat00019
를 형성할 수 있다. 모든 변환
Figure pat00020
에 대해, TT -1 =I인 역변환
Figure pat00021
가 있다. 역방향 순방향 일관성에 관한 예시적인 도시가 도 6에 제공된다.
포즈 모듈(312)(예를 들어, PoseNet)은 주어진 타겟으로부터 소스 프레임(source frame)으로의 상대적인 포즈 변환을 추정한다. 모든 인접 프레임 쌍(t-1, t)에 대해, 포즈 모듈(312)은 순방향 변환
Figure pat00022
및 역방향 변환
Figure pat00023
을 결정한다.
모든 쌍의 변환
Figure pat00024
Figure pat00025
에 대해, 포즈 모듈(312)은 추가적인 순방향-역방향 기하학적 제약 조건(forward-backward geometric constraint)을 부과할 수 있다. 이를 위해서는 순방향 및 역방향 변환의 곱이 단위 행렬(identify matrix)
Figure pat00026
에 최대한 가까워야 한다. 대응 손실은 모든 상대 포즈 변환 쌍에 대해 다음의 수학식 5와 같이 정의될 수 있다.
Figure pat00027
손실 모듈(412)에 의해 결정된 총 손실은 다음의 수학식 6의 방정식을 사용하여 결정될 수 있다.
Figure pat00028
여기서
Figure pat00029
,
Figure pat00030
,
Figure pat00031
는 하이퍼 파라미터(hyper-parameter)이며 미리 결정된 값일 수 있다. 예를 들어,
Figure pat00032
=0.1,
Figure pat00033
=0.1,
Figure pat00034
=0.1 일 수 있다.
도 7은 깊이 모듈(308)의 예시적인 구현의 기능적인 블록도이다. 깊이 모듈(308)은 704에 의해 예시된 어텐션 메커니즘을 포함한다. 어텐션 메커니즘은 깊이 모듈(308)이 깊이를 결정하고 모션 모듈(316)이 모션을 결정하도록 이미지 내에서 찾을 위치(where to look)를 깊이 모듈(308)에 알려준다.
깊이 모듈(308)은 시멘틱 세그먼테이션(semantic segmentation)과 유사하게 깊이 추정을 처리한다. 깊이 모듈(308)은 각 인스턴스(픽셀 그룹)가 특정 시멘틱 레이블/분류(예를 들어, 보행자, 표지판, 건물, 차량 등)에 속하는 것으로 간주한다. 동일한 픽셀 그룹은 가깝고 불연속적인 깊이 값을 갖을 수 있다.
재구성 모듈(404 및 408)은 이 아이디어(어텐션 맵)에 주의를 기울이고, 이 원칙의 위반을 손상된 이미지 재구성의 잠재적 원인으로 취급한다.
어텐션 메커니즘(704)은 도 7에 도시된 바와 같이 깊이 모듈(308) 내에 통합된다. 도 7에 도시 된 바와 같이, 깊이 모듈(308)은 (인코더 부분을 형성하는)복수의 인코더 (컨볼루셔널) 레이어(708) 및 (디코더 부분을 형성하는) 디코더 (컨볼루셔널) 레이어(712)를 포함할 수 있다. 디코더 레이어(712) 및 인코더 레이어(708)는 도 7에서 청색으로 도시되고, 어텐션 메커니즘(704)은 주황색으로 도시되어 있다. 어텐션 메커니즘(704)은 디코더 레이어(712)에 포함될 수 있다(예를 들어, 디코더 층(712)과 교차배치(interleave)될 수 있다). 어텐션 메커니즘(704)은 깊이 모듈(308)의 인코더 부분에 포함되지 않을 수 있다. H, W 및 D는 각각 도 7의 레이어의 높이(height), 폭(width) 및 깊이(depth)를 나타낸다. F는 특징(feature)을 나타낼 수 있다. 도 7은 4개의 인코더 레이어 및 4개의 디코더 레이어를 도시하고 있으나, 다른 적절한 수의 인코더 레이어가 사용되거나, 다른 적절한 수의 디코더 레이어가 사용되거나, 다른 적절한 수의 인코더 또는 디코더 레이어가 사용될 수 있다.
인코더 레이어(708)는 각각 자신의 입력을 인코딩하고, 인코딩 알고리즘을 사용하여 각각의 인코딩된 출력을 생성한다. 인코딩 알고리즘은 각 인코더 레이어(708)에 고유하다. 디코더 레이어(712)는 각각 자신의 입력을 디코딩하고, 디코딩 알고리즘을 사용하여 각각의 디코딩된 출력을 생성한다. 디코딩 알고리즘은 각각의 디코더 레이어(712)에 고유하다.
어텐션 메커니즘(704)은 다음과 같이 통합될 수 있다.
Figure pat00035
을 레이어
Figure pat00036
의 활성화 맵(activation map)이라고 가정한다. 여기서 각 x l 은 길이 F l (즉, 채널 수)의 픽셀 단위 특징 벡터(pixel-wise feature vector)를 나타낸다. 각
Figure pat00037
에 대해,어텐션 메커니즘(704)은 손상된 이미지 영역을 식별하기 위해 어텐션 계수
Figure pat00038
,
Figure pat00039
을 계산하고 정확한 깊이 추정과 관련된 활성화를 보존하기 위해 특징 반응(feature response)을 제거한다. 어텐션 메커니즘(704)의 출력은
Figure pat00040
으로 설명될 수 있으며, 여기서 각 특징 벡터는 대응하는 어텐션 계수에 의해 스케일링(scaled)된다.
어텐션 메커니즘(704)은 다음과 같이 어텐션 계수
Figure pat00041
을 결정한다. 깊이 모듈(308)에서, 대략적인 레벨(coarse level)의 특징은 타겟 객체의 위치를 식별하고 그 관계를 글로벌 스케일(global scale)로 모델링한다.
Figure pat00042
x l 에서 태스크 무관한(task irrelevant) 특징 콘텐츠를 명확하게 하기 위해 어텐션 메커니즘(704)에 정보를 제공하는 글로벌 특징 벡터라고 하자. 각 x l g 는 최소화되는 목표와 관련된(예를 들어, 가장 관련성이 높은) 각 스케일 l의 특징에 어텐션을 기울이도록 공동으로 고려된다. 관련성 점수는 관련성을 결정하는데 사용될 수 있으며, 이에 따라 높은 점수는 관련성이 높고 그 반대의 경우도 마찬가지다.
어텐션 메커니즘(704)의 게이팅 벡터(gating vector)는 이미지 분류를 위한 어텐션 메커니즘(704)에서 제안된 바와 같이 로우 레벨 특징 반응의 제거를 위한 컨텍스트 정보를 포함한다. 애디티브 어텐션(Additive attention)은 더 높은 정확도를 제공하고 다음의 수학식 7과 같이 설명할 수 있기 때문에 멀티플리커티브 어텐션(multiplicative attention)과는 반대로 애디티브 어텐션을 사용할 수 있다.
Figure pat00043
Figure pat00044
여기서,
Figure pat00045
Figure pat00046
과 같은 요소 별 비선형 함수이고
Figure pat00047
는 시그모이드 활성화 함수(sigmoid activation function)이다.
각 어텐션 메커니즘(704)은 선형 변환
Figure pat00048
및 바이어스 항
Figure pat00049
Figure pat00050
를 포함하는 파라미터 세트
Figure pat00051
에 의해 특징화된다. 어텐션 메커니즘(704) 파라미터는 깊이 모듈(308)의 다른 파라미터와 함께 역전파(back-propagation) 업데이트와 같이 훈련 제어 모듈(204)에 의해 훈련된다.
깊이 모듈(308)에 통합된 어텐션 메커니즘(704)으로, 상술된 측광 손실은 설명 가능성 값 E(p) 대신에 어텐션 계수
Figure pat00052
및 픽셀 p 로 수정될 수 있다. 도 8은 전술한 바와 같이, 깊이 모듈(308)에 의해 생성된 3개의 예시 이미지 및 (각 픽셀에 대한 어텐션 계수의) 각각의 어텐션 맵을 포함한다. 도 8은 깊이 모듈(308)이 잘못된 깊이 추정에 민감한 불연속 깊이 값을 갖는 영역의 2D 에지 및 경계 뿐만 아니라 움직이는 물체에 더 적은 어텐션을 기울이는 것을 예시한다.
도 8은 이미지 재구성에서 손상되는 이미지 영역의 가중치를 낮추기 위한 마스크로서 어텐션 계수의 효과를 시각화한다. 도 8은 역 어텐션(inverse attention)을 시각화한다. 여기서 밝은 (흰색) 영역은 낮은 어텐션 계수를 나타내므로 가중치가 낮고, 어두운 (검은 색) 색상은 높은 어텐션 계수를 나타낸다. 낮은 어텐션 계수는 손상될 가능성이 높은 픽셀을 가리킨다. 여기에는 움직이는 물체에 해당하는 영역, 깊이 값이 불연속적인 영역 및 영역 경계가 포함된다. 가로등 및 간판과 같은 객체는 깊이 불연속 가능성이 높고 이미지 재구성이 손상되어 가중치가 낮을 수 있다.
깊이 모듈(308)에 의해 제공되는 깊이 추정은 KITTI Raw 데이터 세트와 같은 테스트 데이터 세트를 사용하여 평가될 수 있다. KITTI Raw 데이터 세트에는 61개 장면의 42,382개의 보정된 스테레오 쌍(rectified stereo pair)이 포함된다. 이미지 크기는 1242x375 픽셀이다. 데이터 세트는 총 29개의 장면을 포함하는 697개의 이미지로 분할될 수 있다. 나머지 32개의 장면 (23,488 개의 이미지)은 각각 22,600/888개의 이미지로 분할되어 훈련/검증에 사용될 수 있다.
평가 척도(evaluation metrics)의 경우, 평균 상대 오차(Abs Rel), 제곱 상대 오차(Sq Rel), 제곱 평균 오차(RMSE), 평균 로그 10 오차(RMSE 로그), t
Figure pat00053
[1.25, 1.252, 1.253] 인 경우의 임계 값 t의 정확도를 사용할 수 있다. 역방향 순방향(BF) 손실(베이스라인), 어텐션 게이트, BF 손실과 어텐션 메커니즘이 아래와 같이 테스트되었다. 아래의 표 1은 여기서 논의되지 않은 다른 깊이 추정 방법에 대한 평가 결과를 포함한다.
방법 감독(Supervision) 오류 척도 정확성 척도
평균 상대 오차
(Abs. rel)
제곱 상대 오차
(Sq Rel)
제곱 평균 오차
(RMSE)
평균 로그 10 오차
(RSME log)
Figure pat00054
<
1.25
Figure pat00055
<
Figure pat00056
Figure pat00057
<
1.25
Eigen 외 대략적인 깊이 0.214 1.605 6.563 0.292 0.673 0.884 0.957
Eigen 외 정밀한 깊이 0.203 1.548 6.307 0.282 0.702 0.890 0.958
Liu 외 포즈 0.202 1.614 6.523 0.275 0.678 0.895 0.965
Godard 외 없음 0.148 1.344 5.927 0.247 0.803 0.922 0.964
Zhou 외(설명 없음) 없음 0.221 2.226 7.527 0.294 0.676 0.885 0.954
Zhou 외 (설명 포함) 없음 0.208 1.768 6.856 0.283 0.678 0.885 0.957
Almalioglu 외 없음 0.138 1.155 4.412 0.232 0.820 0.939 0.976
Shen 외 없음 0.156 1.309 5.73 0.236 0.797 0.929 0.969
Bian 외 없음 0.137 1.089 6.439 0.217 0.830 0.942 0.975
본 개시 (BF 포함) 없음 0.213 1.849 6.781 0.288 0.679 0.887 0.957
본 개시 (어텐션 포함) 없음 0.171 1.281 5.981 0.252 0.755 0.921 0.968
본 개시 (BF+ 어텐션 포함) 없음 0.162 1.126 5.284 0.221 0.823 0.935 0.971
본 명세서에 설명된 방법은, 베이스라인(baseline)에 대한 어텐션을 추가로 사용하지 않고 대등하거나 더 나은 결과를 제공하고, 감독 및 대부분의 감독되지 않은 기술을 능가할 수 있으며, 추가 모듈 및 구성 요소로 베이스라인을 확장하는 다른 방법과 대등한 성능을 보여준다.
결과는 이미지 재구성을 위한 마스크로 어텐션 계수를 사용하는 것이 효과적임을 증명한다. 관심 영역(regions of interest)은 세분화 문제와 유사하게 네트워크가 깊이를 추정하는 데 더 많은 신뢰를 가질 수 있는 단단한 객체일 가능성이 높다(깊이는 객체 상에서 거의 동일함). 프레임 사이의 위치 변화를 추정하는 데에는 단단한 물체가 가장 적절할 수 있다. 또한 상술된 것과 같이, 설명성과는 달리 어텐션 메커니즘은 추가 모듈을 필요로 하지 않으며 깊이 모듈(308) 내에 통합된다.
포즈 추정 평가를 위해, KITTI 시각적 주행 거리 측정 데이터 세트가 사용될 수 있다. 분할에는 GPS 판독에 의해 획득된 실측 포즈가 포함된 11개의 운전 시퀀스(driving sequence)가 포함될 수 있다. 시퀀스 09 및 10은 다른 접근 방식과 관련하여 상술된 것을 평가하는데 사용될 수 있다.
절대 궤적 오차(Absolute trajectory error; ATE)가 평가 척도로 사용될 수 있다. ATE는 지상 실측 지점과 예측된 궤적 간의 차이를 측정한다. 실측 포즈를 대응하는 예측된 포즈와 연결하는 타임 스탬프를 사용하여, 각 포즈 쌍 간의 차이가 계산되고 평균 및 표준 편차가 계산되어 출력될 수 있다.
아래 표 2는 여기에 설명된 방법이 잘 수행됨을 보여준다. 상술된 BF 특징과 결합될 때, 어텐션 메커니즘은 포즈 모듈 훈련의 성능을 향상시켜 일관된 모션 추정을 제공하고 추가 모델 또는 픽셀 마스크를 사용하는 다른 방법을 능가하여 모델 크기를 상당히 증가시킨다.
방법 시퀀스 9 시퀀스 10
ORB-SLAM full 0.014±0.008 0.012±0.011
ORB-SLAM short 0.064±0.141 0.064±0.130
Zhou 외 0.016±0.009 0.013±0.009
Mahjourian 외 0.013±0.010 0.012±0.0011
Almalioglu 외 0.009±0.005 0.010±0.0013
Shen 외 0.0089±0.0054 0.0084±0.0071
본 개시 (BF 포함) 0.0101±0.0065 0.0091±0.0069
본 개시 (어텐션 포함) 0.0108±0.0062 0.0082±0.0063
본 개시 (BF+어텐션 포함) 0.0087±0.0054 0.0078±0.0061
도 9는 각각의 자유도, 평행 이동(x, y, z) 및 회전(roll, pitch, yaw)에 대한 실측에 대해 포즈 모듈(312)에 의해 추정된 포즈를 시각화하는 예시적인 그래프를 포함한다. 도 9는 롤(roll) 및 요(yaw) 값의 진동과
Figure pat00058
구간에 놓였을 때의 불연속성을 나타내며 방향 변화는 현실 세계에서 연속적이다.
위에서 논의된 깊이 모듈(308), 포즈 모듈(312) 및 모션 모듈(316)은 더 적은 파라미터를 필요로 하고 다른 방법보다 더 빠른 훈련을 허용한다. BF 손실을 추가하면 베이스라인과 관련하여 훈련 시간에 미미한 영향만 미칠 수 있다. 어텐션 메커니즘(704)을 추가하면 모델 크기가 5-10%와 같이 최소한으로만 증가하고 훈련 시간이 10-25% 만 증가한다. 그러나 위에서 설명한대로, 이러한 컨셉은 자기 지도 설정에서 성능을 향상시킨다.
훈련 프로세스에 BF 일관성 손실을 추가하여 성능이 향상되었다. 여기에 설명된 방법은 훈련된/학습된 모델이 기하학적 원리를 존중하도록 강제하지만 일관성 위반에 대한 불이익을 추가한다.
도 10은 깊이 및 모션을 추정하고 주행 로봇(100)을 제어하는 예시적인 방법을 나타내는 흐름도를 포함한다. 제어는 깊이 및 모션 모듈(110)이 카메라(104)로부터 이미지가 수신되었는지 여부를 결정하는 단계(1004)로 시작한다. 참이면, 버퍼 모듈(304)은 출력 이미지를 업데이트하고 제어는 단계(1008)로 계속된다. 버퍼 모듈(304)은 수신된 이미지(단계(1004)로부터의 이미지)를 t+1 시간에 이미지로 출력하고, 마지막에 수신된 이미지를 t 시간에 이미지로 출력하고, 마지막에서 두 번째로 수신된 이미지를 t-1 시간에 이미지로 출력할 수 있다.
단계(1008)에서, 깊이 모듈(308)은 시간 t에서의 이미지에 기초하여 전술한 바와 같이 깊이 및 어텐션 맵을 결정한다. 깊이 모듈(308)은 전술한 바와 같이 어텐션 맵(어텐션 계수/값 포함)을 생성하는 어텐션 메커니즘(704)을 포함한다.
단계(1012)에서, 포즈 모듈(312)은 전술한 바와 같이 시간 t+1, t 및 t-1에서 포즈를 결정한다. 단계(1016)에서, 모션 모듈(316)은 전술한 바와 같이 시간 t-1에서 시간 t까지 및 시간 t에서 시간 t+1까지의 모션을 결정한다.
단계(1020)에서, 제어 모듈(112)은 전술한 바와 같이 깊이 맵 및 모션에 기초하여 주행 로봇(100)의 이동 여부 및 방법을 결정한다. 단계(1024)에서, 제어 모듈(112)은 제어 모듈(112)이 주행 로봇(100)을 이동시키기로 결정하는 경우 결정된 바와 같이 주행 로봇(100)을 이동시키기 위해 하나 이상의 추진 장치(108)를 작동시킨다. 제어 모듈(112)이 주행 로봇(100)을 이동하지 않기로 결정한 경우, 제어 모듈(112)은 추진 장치 중 어느 것도 작동시키지 않고/않거나 하나 이상의 브레이크를 적용할 수 있다. 제어는 다음 루프/이미지를 위해 단계(1004)로 돌아갈 수 있다.
도 11은 깊이 및 모션 모듈(110)(깊이 모듈(308), 포즈 모듈(312) 및 모션 모듈(316))을 훈련하는 예시적인 방법을 나타내는 흐름도를 포함한다. 제어는 위에서 설명한대로 단계(1004-1016)으로 시작한다. 훈련의 예에서, 훈련 이미지는 메모리로부터 입력되거나 카메라로부터 입력될 수 있다.
단계(1120)에서, 재구성 모듈(408 및 408)은 시간 t+1 및 t-1에서의 이미지 및 시간 t+1 및 시간 t-1에 대한 어텐션 맵에 기초하여 시간 t+1 및 시간 t-1에서의 이미지를 각각 재구성한다. 단계(1124)에서, 손실 모듈(412)은 전술한 바와 같이 손실을 결정한다. 손실 모듈(412)은 t+1, t-1 시점의 이미지와 t+1 및 t-1 시점의 재구성된 이미지를 기반으로 손실을 결정할 수 있다. 단계(1128)에서, 손실에 기초하여(예를 들어, 손실을 감소 또는 최소화하기 위해), 훈련 모듈(416)은 깊이 모듈(308), 포즈 모듈(312) 및 모션 모듈(316) 중 하나 이상의 모듈의 하나 이상의 파라미터를 선택적으로 조정할 수 있다. 다음 이미지를 처리하기 위해 제어가 처음부터 다시 시작될 수 있다.
상술한 설명은 본질적으로 단지 예시적인 것이며 본 개시, 그것의 응용, 또는 사용을 제한하려는 것이 아니다. 본 개시의 광범위한 교시는 다양한 형태로 구현될 수 있다. 따라서, 본 개시는 특정 예시를 포함하지만, 본 개시의 범위는 도면, 명세서 및 청구범위 내에서 변형이 가능하기 때문에, 특정 예시로 제한되지 않아야 한다. 본 방법의 하나 이상의 단계는 본 개시의 원리를 변경하지 않고 상이한 순서로 (또는 동시에) 실행될 수 있음을 이해해야 한다. 또한, 각각의 실시예는 특정 특징을 갖는 것으로 설명되었지만, 본 개시의 임의의 실시예와 관련하여 설명된 이들 특징 중 임의의 하나 이상은 그 조합이 명시적으로 설명되어 있지 않더라도, 다른 실시예의 특징으로 구현 및/또는 결합될 수 있다. 다시 말해서, 설명된 실시예는 상호 배타적이지 않으며, 하나 이상의 실시예를 다른 실시예와 치환하는 것은 본 개시의 범위 내에 있다.
구성요소(예를 들어, 모듈, 회로 요소, 반도체 층 등) 간의 공간적 및 기능적 관계는 "연결된", "연계된", "결합된", "인접한", "다음에","위에","위에","아래에","처음" 을 포함하는 다양한 용어를 사용하여 설명된다. "직접적인" 것으로 명시적으로 언급되지 않는 한, 제1 및 제2 요소 사이의 관계가 상술된 개시에서 설명될 때, 그 관계는 제1 및 제2 요소 사이에 다른 중간 요소가 존재하지 않는 직접적인 관계일 수 있고, 또한 하나 이상의 중간 요소가 제1 및 제2 요소 사이에 (공간적으로 또는 기능적으로) 존재하는 간접적인 관계일 수 있다. 본 명세서에 사용된 바와 같이, "A, B 및 C 중 적어도 하나"의 표현은 비배타적인 논리 OR을 사용하여 A 또는 B 또는 C를 의미하는 것으로 해석되어야 하고, "A 중 적어도 하나, B 중 적어도 하나 및 C 중 적어도 하나"를 의미하는 것으로 해석되어서는 안된다.
도면에서, 화살촉으로 표시되는 화살의 방향은 일반적으로 예시의 대상인 정보(예컨대, 데이터 또는 명령어)의 흐름을 나타낸다. 예를 들어, 요소 A 및 요소 B가 다양한 정보를 교환하지만 요소 A에서 요소 B로 전송되는 정보가 예시와 관련이 있는 경우, 화살표는 요소 A에서 요소 B를 가리킬 수 있다. 단방향 화살표는 요소 B에서 요소 A로 전송되는 다른 정보가 없음을 의미하지 않는다. 또한, 요소 A로부터 요소 B로 전송된 정보에 대해, 요소 B는 정보의 요청 또는 수신 확인을 요소 A에 전송할 수 있다.
다음의 정의를 포함하여 본 출원에서 "모듈"또는 "제어기"라는 용어는 "회로"라는 용어로 대체될 수 있다. "모듈"이라는 용어는 ASIC(Application Specific Integrated Circuit), 디지털, 아날로그 또는 혼합 아날로그/디지털 이산 회로, 디지털, 아날로그 또는 혼합 아날로그/디지털 집적 회로, 조합 논리 회로, FPGA(Field Programmable Gate Array), 코드를 실행하는 프로세서 회로(공유, 전용 또는 그룹), 프로세서 회로에 의해 실행되는 코드를 저장하는 메모리 회로(공유, 전용 또는 그룹), 설명된 기능을 제공하는 다른 적합한 하드웨어 구성 요소, 또는 시스템-온-칩(system-on-chip)에서와 같이 상기 일부 또는 전부의 조합을 포함하거나 그 일부일 수 있다.
모듈은 하나 이상의 인터페이스 회로를 포함할 수 있다. 일부 예시에서, 인터페이스 회로는 근거리 통신망(LAN), 인터넷, 광역 통신망(WAN) 또는 이들의 조합에 연결된 유선 또는 무선 인터페이스를 포함할 수 있다. 본 개시의 임의의 모듈의 기능은 인터페이스 회로를 통해 연결된 복수의 모듈에 분산될 수 있다. 예를 들어, 복수의 모듈에 의해 부하 조절이 가능할 수 있다. 다른 예시에서, 서버(원격 또는 클라우드라고도 함) 모듈은 클라이언트 모듈 대신 일부 기능을 수행할 수 있다.
사용된 코드는 소프트웨어, 펌웨어 및/또는 마이크로 코드를 포함할 수 있으며, 프로그램, 루틴, 기능, 클래스, 데이터 구조 및/또는 객체를 지칭할 수 있다. 공유 프로세서 회로는 여러 모듈에서 일부 또는 모든 코드를 실행하는 단일 프로세서 회로를 포함한다. 그룹 프로세서 회로는 추가적인 프로세서 회로와 결합하여 하나 이상의 모듈로부터 일부 또는 모든 코드를 실행하는 프로세서 회로를 포함한다. 다중 프로세서 회로라는 표현은 이산된 다이(discrete die) 상의 다중 프로세서 회로, 단일 다이(single die) 상의 다중 프로세서 회로, 단일 프로세서 회로의 다중 코어, 단일 프로세서 회로의 다중 스레드, 또는 이들의 조합을 포함한다. 공유 메모리 회로라는 용어는 복수 모듈의 일부 또는 모든 코드를 저장하는 단일 메모리 회로를 포함한다. 그룹 메모리 회로라는 용어는 추가 메모리와 결합하여 하나 이상의 모듈로부터의 일부 또는 모든 코드를 저장하는 메모리 회로를 포함한다.
메모리 회로라는 용어는 컴퓨터 판독 가능 매체의 서브 세트이다. 본 명세서에서 사용되는 컴퓨터 판독 가능 매체라는 용어는 매체를 통해 (예를 들어, 반송파상에서) 전파되는 일시적인 전기 또는 전자기 신호를 포함하지 않으며, 따라서 컴퓨터 판독 가능 매체라는 용어는 유형(tangible) 및 비일시적인(non-transitory) 것으로 간주될 수 있다. 비일시적이고 유형의 컴퓨터 판독 가능 매체의 비제한적 예는, 비휘발성 메모리 회로(예를 들어, 플래시 메모리 회로, 소거 가능 프로그램 가능 판독 전용 메모리 회로 또는 마스크 판독 전용 메모리 회로), 휘발성 메모리 회로(예컨대, 정적 랜덤 액세스 메모리 회로 또는 동적 랜덤 액세스 메모리 회로), 자기 저장 매체(예를 들어, 아날로그 또는 디지털 자기 테이프 또는 하드 디스크 드라이브), 및 광학 저장 매체(예를 들어, CD, DVD 또는 블루 레이 디스크)에 해당한다.
본 출원에 설명된 장치 및 방법은 컴퓨터 프로그램으로 구현된 하나 이상의 특정 기능을 실행하도록 범용 컴퓨터를 구성함으로써 생성된 특수 목적 컴퓨터에 의해 부분적으로 또는 완전히 구현될 수 있다. 상술한 기능 블록, 흐름도 구성 요소 및 기타 요소는 숙련된 기술자 또는 프로그래머의 루틴 작업에 의해 컴퓨터 프로그램으로 변환될 수있는 소프트웨어 사양으로서 기능한다.
컴퓨터 프로그램은 적어도 하나의 비일시적(non-transitory), 유형(tangible)의 컴퓨터 판독 가능 매체에 저장된 프로세서 실행 가능 명령어를 포함한다. 또한, 컴퓨터 프로그램은 저장된 데이터를 포함하거나 의존할 수 있다. 컴퓨터 프로그램은 특수 목적 컴퓨터의 하드웨어와 상호 작용하는 기본 입/출력 시스템(BIOS), 특수 목적 컴퓨터의 특정 장치와 상호 작용하는 장치 드라이버, 하나 이상의 운영 체제, 사용자 애플리케이션, 백그라운드 서비스, 백그라운드 애플리케이션 등을 포함할 수 있다.
컴퓨터 프로그램은 다음을 포함할 수 있다: (i) HTML (hypertext markup language), XML (extensible markup language) 또는 JSON (JavaScript Object Notation)과 같은 구문 분석되는 서술어, (ii) 어셈블리 코드, (iii) 컴파일러에 의해 소스 코드로부터 생성된 객체 코드, (iv) 인터프리터에 의해 실행되는 소스 코드, (v) JIT(just-in-time) 컴파일러에 의한 컴파일 및 실행을 위한 소스 코드 등 예를 들어, 소스 코드는 C, C ++, C #, ObjectiveC, Swift, Haskell, Go, SQL, R, Lisp, Java®, Fortran, Perl, Pascal, Curl, OCaml, Javascript®, HTML5(하이퍼 텍스트 마크 업 언어 5 개정), Ada, ASP(Active Server Pages), PHP(PHP: 하이퍼 텍스트 프리 프로세서), Scala, Eiffel, Smalltalk, Erlang, Ruby, Flash®, Visual Basic®, Lua, MATLAB, SIMULINK 및 Python® 를 포함한 언어의 신택스(syntax)를 사용하여 작성될 수 있다.

Claims (22)

  1. 시스템으로서,
    인코더(encoder) 및 디코더(decoder)를 포함하며,
    카메라로부터 제1 시간의 제1 이미지를 수신하고,
    상기 인코더 및 상기 디코더를 사용하여, 상기 제1 이미지를 기초로, 상기 카메라와 상기 제1 이미지의 객체 사이의 깊이를 포함하는 깊이 맵을 생성하도록 구성된, 깊이 모듈;
    상기 제1 이미지에 기초하여 상기 카메라의 제1 포즈를 생성하고,
    상기 제1 이미지 이전에 상기 카메라로부터 수신된 제2 이미지에 기초하여 제2 시간에 대해 상기 카메라의 제2 포즈를 생성하고,
    상기 제1 이미지 이후에 상기 카메라로부터 수신된 제3 이미지에 기초하여 제3 시간에 대해 상기 카메라의 제3 포즈를 생성하도록 구성된, 포즈 모듈; 및
    상기 제1 포즈 및 상기 제2 포즈에 기초하여 상기 제2 시간과 상기 제1 시간 사이의 상기 카메라의 제1 모션을 결정하고,
    상기 제2 포즈와 상기 제3 포즈에 기초하여 상기 제2 시간과 상기 제3 시간 사이의 상기 카메라의 제2 모션을 결정하도록 구성된 모션 모듈을 포함하는, 시스템.
  2. 차량으로서,
    제1항의 상기 시스템;
    상기 차량을 추진하도록 구성된 추진 장치; 및
    상기 깊이 맵에 기초하여 상기 추진 장치를 작동시키도록 구성된 제어 모듈을 포함하는, 차량.
  3. 제2항에 있어서,
    상기 차량은, 상기 카메라를 포함하고, 다른 카메라를 포함하지 않는, 차량.
  4. 제2항에 있어서,
    상기 차량은, 레이더(radars), 초음파 센서(sonar sensors), 레이저 센서(laser sensors), 또는 라이다 센서(LIDAR sensors)를 포함하지 않는, 차량.
  5. 차량으로서,
    제1항의 상기 시스템;
    상기 차량을 추진하도록 구성된 추진 장치; 및
    상기 제1 모션 및 상기 제2 모션 중 적어도 하나에 기초하여 상기 추진 장치를 작동시키도록 구성된 제어 모듈을 포함하는, 차량.
  6. 제1항에 있어서,
    상기 제1 포즈, 상기 제2 포즈 및 상기 제3 포즈는 6 자유도(6 degree of freedom) 포즈인, 시스템.
  7. 제1항에 있어서,
    상기 깊이 모듈은, 상기 제1 이미지에 기초하여, 상기 제1 이미지의 상기 객체에 대한 속성에 대한 어텐션의 양을 나타내는 어텐션 계수를 포함하는 어텐션 맵을 생성하도록 구성된 어텐션 메커니즘(attention mechanisms)을 포함하는, 시스템.
  8. 제7항에 있어서,
    상기 어텐션 메커니즘은 어텐션 게이트를 포함하는, 시스템.
  9. 제7항에 있어서,
    상기 디코더는 상기 어텐션 메커니즘을 포함하는, 시스템.
  10. 제9항에 있어서,
    상기 인코더는 어텐션 메커니즘을 포함하지 않는, 시스템.
  11. 제9항에 있어서,
    상기 디코더는 디코더 레이어(decoder layers)를 포함하고, 상기 어텐션 메커니즘은 상기 디코더 레이어와 교차배치(interleave)되는, 시스템.
  12. 제7항에 있어서,
    상기 어텐션 맵을 사용하여, 상기 제2 이미지를 재구성하여 재구성된 제2 이미지를 생성하도록 구성된 제1 재구성 모듈;
    상기 어텐션 맵을 사용하여, 상기 제3 이미지를 재구성하여 재구성된 제3 이미지를 생성하도록 구성된 제2 재구성 모듈; 및
    상기 재구성된 제2 이미지 및 상기 재구성된 제3 이미지 중 적어도 하나에 기초하여, 상기 깊이 모듈, 상기 포즈 모듈 및 상기 모션 모듈 중 적어도 하나에 대한 적어도 하나의 파라미터를 선택적으로 조정하도록 구성된 훈련 모듈(training module)을 더 포함하는, 시스템.
  13. 제12항에 있어서,
    상기 훈련 모듈은, 상기 재구성된 제2 이미지, 상기 재구성된 제3 이미지, 상기 제2 이미지 및 상기 제3 이미지에 기초하여 상기 적어도 하나의 파라미터를 선택적으로 조정하도록 구성된, 시스템.
  14. 제13항에 있어서,
    상기 훈련 모듈은, 상기 재구성된 제2 이미지와 상기 제2 이미지 사이의 제1 차이, 및 상기 재구성된 제3 이미지와 상기 제3 이미지 사이의 제2 차이에 기초하여, 상기 적어도 하나의 파라미터를 선택적으로 조정하도록 구성된, 시스템.
  15. 제12항에 있어서,
    상기 훈련 모듈은 상기 깊이 모듈, 상기 포즈 모듈 및 상기 모션 모듈을 공동으로 훈련하도록 구성된, 시스템.
  16. 제12항에 있어서,
    상기 제1 재구성 모듈은 이미지 워핑 알고리즘(image warping algorithm) 및 상기 어텐션 맵을 사용하여 상기 제2 이미지를 재구성하도록 구성되고,
    상기 제2 재구성 모듈은 상기 이미지 워핑 알고리즘 및 상기 어텐션 맵을 사용하여 상기 제3 이미지를 재구성하도록 구성된, 시스템.
  17. 제16항에 있어서,
    상기 이미지 워핑 알고리즘은 역 이미지 워핑 알고리즘(inverse image warping algorithm)을 포함하는, 시스템.
  18. 제1항에 있어서,
    상기 포즈 모듈은 PoseNet 알고리즘을 사용하여 상기 제1 포즈, 상기 제2 포즈 및 상기 제3 포즈를 생성하도록 구성된, 시스템.
  19. 제1항에 있어서,
    상기 깊이 모듈은 DispNet 인코더-디코더 네트워크를 포함하는, 시스템.
  20. 방법으로서:
    카메라로부터 제1 시간에 대한 제1 이미지를 수신하는 단계;
    상기 제1 이미지에 기초하여, 상기 카메라와 상기 제1 이미지의 객체 사이의 깊이를 포함하는 깊이 맵을 생성하는 단계;
    상기 제1 이미지에 기초하여 상기 카메라의 제1 포즈를 생성하는 단계;
    상기 제1 이미지 이전에 상기 카메라로부터 수신된 제2 이미지에 기초하여 제2 시간에 대한 상기 카메라의 제2 포즈를 생성하는 단계;
    상기 제1 이미지 이후에 상기 카메라로부터 수신된 제3 이미지에 기초하여 제3 시간에 대한 상기 카메라의 제3 포즈를 생성하는 단계;
    상기 제1 포즈 및 상기 제2 포즈에 기초하여 상기 제2 시간과 상기 제1 시간 사이의 상기 카메라의 제1 모션을 결정하는 단계; 및
    상기 제2 포즈 및 상기 제3 포즈에 기초하여 상기 제2 시간과 상기 제3 시간 사이의 상기 카메라의 제2 모션을 결정하는 단계를 포함하는, 방법.
  21. 시스템으로서,
    하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 의해 실행될 때 기능을 수행하는 코드를 포함하는 메모리를 포함하고,
    상기 기능은,
    카메라로부터 제1 시간에 대한 제1 이미지를 수신하고,
    상기 제1 이미지에 기초하여, 상기 카메라와 상기 제1 이미지의 객체 사이의 깊이를 포함하는 깊이 맵을 생성하고,
    상기 제1 이미지에 기초하여 상기 카메라의 제1 포즈를 생성하고,
    상기 제1 이미지 이전에 상기 카메라로부터 수신된 제2 이미지에 기초하여 제2 시간에 대한 상기 카메라의 제2 포즈를 생성하고,
    상기 제1 이미지 이후에 상기 카메라로부터 수신된 제3 이미지에 기초하여 제3 시간에 대한 상기 카메라의 제3 포즈를 생성하고,
    상기 제1 포즈 및 상기 제2 포즈에 기초하여 상기 제2 시간과 상기 제1 시간 사이의 상기 카메라의 제1 모션을 결정하고,
    상기 제2 포즈 및 상기 제3 포즈에 기초하여 상기 제2 시간과 상기 제3 시간 사이의 상기 카메라의 제2 모션을 결정하는 것을 포함하는, 시스템.
  22. 시스템으로서,
    카메라로부터 제1 시간에 대한 제1 이미지를 수신하고,
    상기 제1 이미지에 기초하여, 상기 카메라와 상기 제1 이미지의 객체 사이의 깊이를 포함하는 깊이 맵을 생성하는 제1 수단;
    상기 제1 이미지에 기초하여 상기 카메라의 제1 포즈를 생성하고,
    상기 제1 이미지 이전에 상기 카메라로부터 수신된 제2 이미지에 기초하여 제2 시간에 대한 상기 카메라의 제2 포즈를 생성하고,
    상기 제1 이미지 이후에 상기 카메라로부터 수신된 제3 이미지에 기초하여 제3 시간에 대한 상기 카메라의 제3 포즈를 생성하는 제2 수단; 및
    상기 제1 포즈 및 상기 제2 포즈에 기초하여 상기 제2 시간과 상기 제1 시간 사이의 상기 카메라의 제1 모션을 결정하고,
    상기 제2 포즈 및 상기 제3 포즈에 기초하여 상기 제2 시간과 상기 제3 시간 사이의 상기 카메라의 제2 모션을 결정하는 제3 수단을 포함하는, 시스템.
KR1020210054522A 2020-07-13 2021-04-27 깊이 및 모션 추정을 위한 자기 지도 어텐션 학습 시스템, 이를 포함하는 차량 및 자기 지도 어텐션 학습 방법 KR102646152B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/927,270 US11960294B2 (en) 2020-07-13 2020-07-13 Self-supervised attention learning for depth and motion estimation
US16/927,270 2020-07-13

Publications (2)

Publication Number Publication Date
KR20220008208A true KR20220008208A (ko) 2022-01-20
KR102646152B1 KR102646152B1 (ko) 2024-03-08

Family

ID=79173564

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210054522A KR102646152B1 (ko) 2020-07-13 2021-04-27 깊이 및 모션 추정을 위한 자기 지도 어텐션 학습 시스템, 이를 포함하는 차량 및 자기 지도 어텐션 학습 방법

Country Status (2)

Country Link
US (1) US11960294B2 (ko)
KR (1) KR102646152B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102437959B1 (ko) 2022-03-22 2022-08-30 주식회사 스누아이랩 픽셀간 상관 관계를 활용하는 시멘틱 세그멘테이션에서의 비지도 도메인 적응 장치 및 그 장치의 구동방법
KR102559936B1 (ko) * 2022-01-28 2023-07-27 포티투닷 주식회사 단안 카메라를 이용하여 깊이 정보를 추정하는 방법 및 장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112084853B (zh) * 2020-08-04 2023-12-29 深圳市优必选科技股份有限公司 一种脚印预测方法、脚印预测装置及人形机器人
US20230298191A1 (en) * 2022-03-16 2023-09-21 Toyota Research Institute, Inc. Multi-camera cost volumes for self-supervised depth estimation
CN115331460B (zh) * 2022-07-25 2024-05-14 武汉理工大学 一种基于深度强化学习的大规模交通信号控制方法及装置
CN116661465B (zh) * 2023-07-04 2023-10-31 无锡八英里电子科技有限公司 一种基于时序分析与多传感器融合的机器人自动行驶方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10354151B2 (en) * 2017-04-20 2019-07-16 Hyundai Motor Company Method of detecting obstacle around vehicle

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021503134A (ja) * 2017-11-15 2021-02-04 グーグル エルエルシーGoogle LLC 画像深度とエゴモーション予測ニューラルネットワークの教師なし学習
EP3847619B1 (en) * 2018-09-05 2023-11-01 Google LLC Unsupervised depth prediction neural networks
KR20200116728A (ko) * 2019-04-02 2020-10-13 삼성전자주식회사 자체 운동 정보 추정 장치 및 방법
EP3745310A1 (en) * 2019-05-28 2020-12-02 Robert Bosch GmbH Method for calibrating a multi-sensor system using an artificial neural network
US11727588B2 (en) * 2020-04-14 2023-08-15 Toyota Research Institute, Inc. Depth estimation based on ego-motion estimation and residual flow estimation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10354151B2 (en) * 2017-04-20 2019-07-16 Hyundai Motor Company Method of detecting obstacle around vehicle

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Ozan Oktay, "Attention U-Net: Learning Where to Look for the Pancreas", arXiv preprint arXiv:1804.03999 (2018.05.20.)* *
Renyue Dai, "Unsupervised learning of depth estimation based on attention model and global pose optimization", Signal Processing: Image Communication 78 (2019.10.)* *
Tinghui Zhou, "Unsupervised Learning of Depth and Ego-Motion from Video", 2017 CVPR (2017.07.21-26.)* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102559936B1 (ko) * 2022-01-28 2023-07-27 포티투닷 주식회사 단안 카메라를 이용하여 깊이 정보를 추정하는 방법 및 장치
KR102437959B1 (ko) 2022-03-22 2022-08-30 주식회사 스누아이랩 픽셀간 상관 관계를 활용하는 시멘틱 세그멘테이션에서의 비지도 도메인 적응 장치 및 그 장치의 구동방법

Also Published As

Publication number Publication date
KR102646152B1 (ko) 2024-03-08
US11960294B2 (en) 2024-04-16
US20220011778A1 (en) 2022-01-13

Similar Documents

Publication Publication Date Title
KR102646152B1 (ko) 깊이 및 모션 추정을 위한 자기 지도 어텐션 학습 시스템, 이를 포함하는 차량 및 자기 지도 어텐션 학습 방법
US11386567B2 (en) Systems and methods for weakly supervised training of a model for monocular depth estimation
US9990736B2 (en) Robust anytime tracking combining 3D shape, color, and motion with annealed dynamic histograms
KR102562378B1 (ko) 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 데이터를 생성하는 방법 및 장치와 3차원 포즈 추정을 위한 추론 모델
US11589031B2 (en) Active stereo depth prediction based on coarse matching
CN110070572B (zh) 使用稀疏深度数据生成距离图像的方法和***
US11064178B2 (en) Deep virtual stereo odometry
EP2671384B1 (en) Mobile camera localization using depth maps
Dewangan et al. Driving behavior analysis of intelligent vehicle system for lane detection using vision-sensor
US11010622B2 (en) Infrastructure-free NLoS obstacle detection for autonomous cars
CN109964237A (zh) 图像深度预测神经网络
CN112991413A (zh) 自监督深度估测方法和***
US11074438B2 (en) Disentangling human dynamics for pedestrian locomotion forecasting with noisy supervision
KR102587994B1 (ko) 카메라 포즈 회귀를 위한 적대적 장면 적응
CN115867940A (zh) 从3d边界框的单眼深度监督
US20220335624A1 (en) Unsupervised training of optical flow estimation neural networks
US11669977B2 (en) Processing images to localize novel objects
CN113850900B (zh) 三维重建中基于图像和几何线索恢复深度图的方法及***
KR20210074163A (ko) 공동 검출 및 기술 시스템 및 방법
JP2011013978A (ja) 背景画像推定に基づく物体検出方法及び物体検出装置
US20230252658A1 (en) Depth map completion in visual content using semantic and three-dimensional information
WO2022214821A2 (en) Monocular depth estimation
Schellevis Improving self-supervised single view depth estimation by masking occlusion
US20230359212A1 (en) Distilling information for crowd-aware robot navigation
US20240046569A1 (en) Three dimensional rendering systems and methods from monocular image

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