CN109084746B - 用于具有辅助传感器的自主平台引导***的单目模式 - Google Patents
用于具有辅助传感器的自主平台引导***的单目模式 Download PDFInfo
- Publication number
- CN109084746B CN109084746B CN201810616266.7A CN201810616266A CN109084746B CN 109084746 B CN109084746 B CN 109084746B CN 201810616266 A CN201810616266 A CN 201810616266A CN 109084746 B CN109084746 B CN 109084746B
- Authority
- CN
- China
- Prior art keywords
- feature
- camera
- image
- sensor
- features
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims description 246
- 230000008569 process Effects 0.000 claims description 94
- 238000005259 measurement Methods 0.000 claims description 40
- 230000015654 memory Effects 0.000 claims description 34
- 238000012545 processing Methods 0.000 claims description 28
- 238000013507 mapping Methods 0.000 claims description 13
- 238000010276 construction Methods 0.000 claims description 2
- 239000000284 extract Substances 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 24
- 238000013461 design Methods 0.000 abstract description 8
- 230000006872 improvement Effects 0.000 abstract description 7
- 230000001953 sensory effect Effects 0.000 abstract description 3
- 238000007405 data analysis Methods 0.000 abstract 1
- 238000013480 data collection Methods 0.000 abstract 1
- 230000033001 locomotion Effects 0.000 description 58
- 238000012937 correction Methods 0.000 description 30
- 230000003287 optical effect Effects 0.000 description 27
- 230000009471 action Effects 0.000 description 26
- 238000003384 imaging method Methods 0.000 description 20
- 230000000875 corresponding effect Effects 0.000 description 17
- 239000010410 layer Substances 0.000 description 16
- 230000005484 gravity Effects 0.000 description 15
- 238000003860 storage Methods 0.000 description 15
- 238000001514 detection method Methods 0.000 description 13
- 230000003993 interaction Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 230000009021 linear effect Effects 0.000 description 10
- 230000009466 transformation Effects 0.000 description 10
- 230000004044 response Effects 0.000 description 9
- 230000001133 acceleration Effects 0.000 description 8
- 230000003044 adaptive effect Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 230000004927 fusion Effects 0.000 description 8
- 230000004807 localization Effects 0.000 description 8
- 230000000007 visual effect Effects 0.000 description 8
- 238000000605 extraction Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 7
- 230000001771 impaired effect Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 230000007613 environmental effect Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000012512 characterization method Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 229910052754 neon Inorganic materials 0.000 description 4
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 101001073212 Arabidopsis thaliana Peroxidase 33 Proteins 0.000 description 3
- 101001123325 Homo sapiens Peroxisome proliferator-activated receptor gamma coactivator 1-beta Proteins 0.000 description 3
- 102100028961 Peroxisome proliferator-activated receptor gamma coactivator 1-beta Human genes 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000008447 perception Effects 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 230000036039 immunity Effects 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 238000012952 Resampling Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- -1 steam Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control 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
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/10—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
- G01C21/12—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
- G01C21/16—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
- G01C21/165—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/005—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 with correlation of navigation data from several sources, e.g. map or contour matching
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0088—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/027—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising intertial navigation means, e.g. azimuth detector
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/251—Fusion techniques of input or preprocessed data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/207—Analysis of motion for motion estimation over a hierarchy of resolutions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
- G06T7/248—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/60—Extraction of image or video features relating to illumination properties, e.g. using a reflectance or lighting model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
- G06V10/803—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of input or preprocessed data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/955—Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/98—Detection or correction of errors, e.g. by rescanning the pattern or by human intervention; Evaluation of the quality of the acquired patterns
- G06V10/993—Evaluation of the quality of the acquired pattern
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
- G06V20/647—Three-dimensional objects by matching two-dimensional images to three-dimensional objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Aviation & Aerospace Engineering (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Electromagnetism (AREA)
- Bioinformatics & Cheminformatics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Business, Economics & Management (AREA)
- Game Theory and Decision Science (AREA)
- Navigation (AREA)
Abstract
本公开的实施例涉及用于具有辅助传感器的自主平台引导***的单目模式。一种位置感知技术,其采用传感数据收集和分析硬件,参照特定示例实现方式实现了传感器、技术和硬件设计的使用方面的改进,其可以使特定实施例能够以提高的速度和准确度向机器提供位置感知。感知数据从一台可操作的照相机和一个或多个辅助传感器收集。
Description
与其他申请的交叉引用
以下美国专利申请通过引用并入本文:2016年8月29日提交的美国非临时申请第15/250,419号(代理人卷号:PERC1000-1),2016年8月29日提交的美国非临时申请第15/250,393号(代理人卷号:PERC1001-1),以及2016年8月29日提交的美国非临时申请第15/250,581号(代理人卷号:PERC1002-1)。
技术领域
所公开的技术总体上涉及检测移动设备的位置和定位,并且更具体地涉及视觉处理、惯性传感器数据和轮里程数据在定位和引导技术中的应用。
背景技术
本节中讨论的主题不应仅仅由于在本节中提及而成为现有技术。类似地,不应假定在本节中提及的或与作为背景提供的主题相关联的问题先前已经在现有技术中认识到。本节中的主题仅表示不同的方法,其本身也可以对应于所要求保护的技术的实施方式。
自主机器人一直是科幻小说的素材。实现真正的自主机器人的一个技术挑战是机器人需要能够识别他们在哪里,他们曾经在哪里以及计划他们去哪里。传统的即时定位与地图构建(SLAM)技术近年来有了很大的改进,然而,为机器人和自导式移动平台提供快速准确和可靠的位置感知仍然存在相当大的技术挑战。
一个特别具有挑战性的领域涉及精确和快速地识别位置和障碍物。已经尝试了各种不同的方法。例如RFID/WiFi方法已被证明是昂贵的并且精度有限。已经发现基于深度传感器的方法成本高并且存在功耗和干扰问题。基于标记的方法要求将标记放置在工作区域内,这限制了设备可操作的有用区域。视觉方法目前速度很慢,导致在快速运动应用中使用时出现故障。这些方法也可能会受到模糊性的影响。然而,这些实施方案未能达到广泛采用所需的标准。
向迄今为止的设备提供快速、可靠、经济的位置感知的挑战在很大程度上仍未解决。
附图说明
在附图中,对于不同的视图,相同的附图标记通常指代相似的部分。而且,附图不一定按比例绘制,而是通常将重点放在说明所公开的技术的原理上。在以下描述中,参考以下附图来描述所公开的技术的各种实施方式,其中:
图1示出了用于单目辅助传感器的控制单元的示例。
图2示出了图1中的成像部件的示例。
图3示出了图1中的特征缓冲区的操作方法。
图4示出了图1中的惯性部件的示例。
图5示出了图1中的里程部件的示例。
图6示出了在其中惯性测量单元用作辅助传感器的单目辅助传感器的示例。
图7示出了在其中轮里程单元用作辅助传感器的单目辅助传感器的示例。
图8示出了在其中惯性测量单元和轮里程单元用作辅助传感器的单目辅助传感器的示例。
图9示出了具有一个操作相机的双目辅助传感器的示例,其中惯性测量单元和轮里程单元被用作辅助传感器。
图10示出了单目辅助传感***的示例。
图11示出了实施跟踪过程的示例跟踪***。
图12是更新包括相机和多轴惯性测量单元的移动单元的位置的代表性方法。
图13是更新包括相机和轮里程单元的移动单元的位置的代表性方法。
图14是更新包括相机、惯性测量单元和轮里程单元的移动单元的位置的代表性方法。
图15是更新包括具有深度传感器的相机的移动单元的位置的代表性方法。
图16A示出了用于实施跟踪过程的跟踪***的示例性重新定位过程。
图16B示出了在一种实施方式中重新定位搜索策略选择过程的示例。
图17示出了在一种实施方式中占用网格地图的示例。
图18示出了重新投影误差的示例。
图19示出了在其中可以体现一种实施方式的示例机器人引导应用。
图20是使用来自相机和一个或多个辅助传感器的信息来引导移动设备的代表性方法。
图21是使用混合点网格来引导包括相机和一个或多个辅助传感器的移动设备的代表性方法。
具体实施方式
参考附图进行以下详细描述。描述示例性的实施方式来说明所公开的技术,而不是限制由权利要求限定的范围。本领域的普通技术人员将认识到以下描述中的各种等同变化。
讨论组织如下。首先,将给出各种实施方式所解决的一些问题的介绍。然后,一个实施方式的高级描述将在体系结构级别进行讨论。接下来,讨论一些实施方式用于有效处理来自辅助传感器的图像和数据的过程。最后,将参照自导式自主平台中的机器人的特定应用来说明所公开的技术。对具体示例的参考旨在说明所公开的技术的方法而不是限制。
本文件通过使用来自一个操作相机的视觉传感数据来描述由移动单元采用的位置感知技术。在一个实施例中,移动单元是单目***。单目移动单元适于位置感知的主要原因之一是因为它们比多相机***更便宜且物理上更小。在另一个实施例中,具有多个相机的移动单元可以仅具有一个功能相机。由于硬件或软件故障、视野受阻等,多相机***中的其他相机可能无法使用。如本文所使用的,术语“单目”将用于描述具有一个可操作相机的任何***。
当单目移动单元移动时,可以分析移动之前和之后拍摄的图像,以估计移动的方向。这个过程被称为立体匹配。工作假设是相机随着时间的推移在空间中平移。因此,可以通过提取和匹配帧中的关键特征来比较这对连续帧。立体匹配的一个主要限制是对移动单元的绝对深度尺度或移动幅度的不准确估计。事实上,即使精确地执行相机姿态估计和场景重建,这种重建的绝对深度尺度仍然固有地不明确。一些方法建议通过将场景与预定义的一组3D模型进行匹配以通过对象检测来解决问题,从而基于估计的对象尺寸恢复初始深度尺度,但是该方法在场景中没有已知形状的情况下失效。
来自一个或多个辅助传感器的数据可以用于估计运动的深度或大小。在一个实施例中,辅助传感器可以是多轴惯性测量单元(IMU),其使用一个或多个加速度计和使用一个或多个陀螺仪的旋转速率来测量和报告移动单元的线性加速度。在一个实施例中,辅助传感器可以是轮里程单元(WOU),其从来自移动单元的轮的编码器读数来测量和报告移动单元的位移。在一个实施例中,移动单元可以具有两个辅助传感器,IMU和WOU。在一个实施例中,辅助传感器可以是深度传感器。移动单元在全局图上的位置是在相机推断的位移由辅助传感器推断的位移校准之后确定的。
单目***中的相机或成像传感器可以是RGB或灰度。使用低端成像传感器来构建传感器(例如具有640×480分辨率的相机)消除了高端图像传感器的成本。
受益于采用如本文所述的位置感知技术的机器人应用的示例包括:
·看护者和服务机器人(在地面行走)
·吸尘/拖地/清洁地板的机器人。
·被命令在环境中携带物体的机器人。
·远程呈现机器人自动在远程环境中移动。
·跟随人员的机器人管家。
本文描述的位置感知技术还可以用于虚拟现实(VR)和增强现实(AR)场景中,其中可佩戴式耳机跟踪其自己的位置并且能够识别它遇到的对象。
在上面列出的每个场景中,机器人利用本文描述的技术来跟踪其自己的位置并识别它遇到的对象。此外,由于机器人执行许多复杂的任务,每个任务都有实时限制,因此快速完成传感以加速感知流水线(perception pipeline)是有益的。为了克服由该处理施加的计算负担,实施方式将关于从主处理器到成像部件或数字信号处理器的图像处理的一些计算卸载。另外,由于它是一种携带有限电池的移动机器人,能耗是一项重大挑战。因此,一些实施方式将一些计算任务从主处理器卸载到低功率传感器模块,由此使得实施方式能够达到整体能量效率。
在机器人引导的背景下,描述了根据所公开的实施方式的***、装置和方法的示例。在其他情况下,所公开的技术可以应用于自主交通工具引导技术、VR和AR可穿戴设备、导航、电信***、金融***、安全交易、银行业务、商业智能、市场营销、采矿、能源等,并且使用声纳、音频和LIDAR数据。其他服务也是可能的,所以下面的示例不应被视为是在范围、背景或设置上起定义或限制作用。
所公开的技术涉及在单输入多数据(SIMD)体系结构内处理来自辅助传感器的图像和数据期间改进计算资源的利用,诸如计算能力和存储器使用。所公开的技术可以在包括精简指令集(RISC)的***、模拟硬件环境等的任何计算机实施的***的背景中实施。此外,该技术可以使用两个或更多独立且不同的计算机实施的***来实施,这些***彼此协作和通信。该技术可以以多种方式实施,包括作为过程、方法、装置、***、设备、计算机可读存储介质(诸如存储计算机可读指令或计算机程序代码的计算机可读存储介质),或者作为计算机程序产品,其包括其中包含有计算机可读程序代码的计算机可用存储介质。
所公开的技术可以在任何计算机实施的***(诸如NEON ARM VFP9-S处理器、ARM核心处理器或兼容的处理器实施方式)的背景中实施。
另外,所公开的技术可以使用各种不同的成像传感器和技术来实施,包括RGB、灰度、二进制(例如,受制于阈值强度水平的数字图像)、IR、声纳、LIDAR或其组合。
***概述
单目辅助传感器的控制单元
图1以框图格式示出了用于单目辅助传感器的控制单元的示例。图1中的控制单元100可以耦合到外部存储器110、闪存(为了清楚起见,在图1中未示出)以及一个或多个永久存储器,例如HDD、光驱等(为了清楚起见,在图1中也未示出)。控制单元100包括存储器缓存108、USB I/O端口102、相机串行接口(CSI)I/O端口116、其便于通过成像部件118直接从相机(为了清楚起见,在图1中未示出)接收图像、内部集成电路(I2C)I/O端口104、具有单一指令多数据(SIMD)能力的处理器106、以及特征缓冲区120。控制单元100中的部件通过本地总线107相互耦合。在一个实施例中,外部存储器110是64位双倍数据速率(DDR)随机存取存储器(RAM)。在一个实施例中,具有SIMD能力的处理器106被实施为精简指令集计算机(RISC)体系结构。在一个实施例中,具有SIMD能力的处理器106被实施为NEON ARM VFP9-S。惯性部件112和里程部件114驻留在存储器缓存108内。
图2示出了图1中的成像部件118的示例。成像部件118包括直接存储器存取(DMA)202、图像失真校正处理器204、Shi-Tomasi处理器206、特征失真处理器208、特征描述引擎210以及在成像引擎214控制下的光流特征对应处理器212。
如果通过相机串行接口(CSI)I/O端口116来自视觉传感器或相机的每个传入图像是至少3MB并且每秒捕获30个图像,则每秒需要为传入的图像分配至少90MB的存储器。为了在短时间内处理相当大量的视觉数据,可以由成像部件118直接处理由单目辅助传感器中的相机捕获的帧,以提取有用的角部特征并且为每个特征生成描述符。成像引擎214可以被实施为数字信号处理器(DSP)。成像部件118直接处理传入图像而不涉及SIMD处理器106或将图像数据存储在缓存108中。在一些实施方式中,传入图像大小至少为2MB。在一些实施方式中,传入图像大小至少为1MB。在一些实施方式中,图像可以通过相机串行接口(CSI)I/O端口以每秒20个图像的速率到达。
在分析传入图像并且由成像部件118提取关键特征之后,特征缓冲区120存储所提取的特征。在一些实施方式中,特征缓冲区包括每个图像帧包含2-5KB特征数据的组(bank)。在一些实施方式中,特征缓冲区包括每个图像帧包含1-10KB特征数据的组。特征缓冲区120包括组一122、组二124和特征缓冲区控制器126。图3示出了特征缓冲区120的操作的方法300。成像部件118可以向组一(步骤302)或组二(步骤314)写入数据,但不是同时的。如果成像部件118当前正在将数据写入到组一并且组一变满(步骤304),则特征缓冲区控制器126通知SIMD处理器106(步骤306)组一已满。同时,成像部件118开始将数据写入组二(步骤314)。SIMD处理器锁定组一(步骤308),将组一中的数据复制到SIMD处理器内可用的L0缓存(步骤310),并释放组一(步骤312)。如果组二变满(步骤316),特征缓冲区控制器126通知SIMD处理器106关于组二已填满(步骤318),并且成像元件118开始将数据写入组一(步骤302)。SIMD处理器锁定组二(步骤320),将组二中的数据复制到SIMD处理器内可用的L0缓存(步骤322),并释放组二(步骤324)。当然,对于本领域技术人员而言,使用其他组的其他实施方式将是清楚的。
图4示出了图1中的惯性部件112的示例。惯性部件112包括惯性测量引擎402,该惯性测量引擎402的实施中包括:时间戳处理器404,对来自惯性传感器(为了清楚起见,在图1中未示出)的惯性数据组施加时间戳;偏差校正处理器406,校正从带时间戳的惯性数据中读出的数据;比例校正处理器408,将存储的比例因子(scale factor)信息应用于校正的惯性数据;错位校正处理器410,校正惯性测量传感器的传感元件的错位;以及IMU图像坐标变换处理器412,计算描述惯性数据的参照系与图像数据的参照系之间的差异的变换。
图5示出了图1中的里程部件114的示例。里程部件114包括轮里程单元引擎502,该轮里程单元引擎502的实施中包括:时间戳处理器504,对来自移动单元的旋转编码器(为了清楚起见,在图1中未示出)的里程数据组施加时间戳;滑动调整器(slippage adjuster)506,校正从带时间戳的里程数据中读出的数据;比例校正处理器508,将存储的比例因子信息应用于校正的里程数据。实施方式可以检测驱动移动平台的一个或多个电机的电流需求的变化,并与来自移动单元的旋转编码器的数据进行比较以确定是否存在滑动(slippage)状态。当检测到滑动状态时,滑动调整器506和比例校正处理器508可以采取动作来弥补滑动。动作可以包括将里程数据标记为不可靠,基于滑动状态的持续时间向里程数据应用校正因子。对于本领域技术人员而言显而易见的是,代替前述内容或者除了前述之外,可以应用其他动作。
单目辅助传感器
图6示出了用于确定辅助传感器是惯性测量单元的位置信息的单目辅助传感器600的示例。单目辅助传感器600包括相机602,惯性测量单元(IMU)606和控制单元(CU)100。控制单元100具有USB接口以向主机提供输出。来自相机602的图像被用于从图像中提取特征的代理定位(agent localization)以及为基于深度学习的任务(包括对象识别、对象跟踪、图像字幕等)提供原始信息。
IMU 606为代理定位流水线(agent localization pipeline)提供原始传感器数据,其使用高频(>200Hz)的IMU数据以实时生成代理位置信息。在一个实施方式中,定位流水线将来自IMU 606与相机602的信息相组合,IMU 606以相对较高频率运行以提供较不准确信息的频繁更新,相机602以较低频率(30Hz)运行,从而以较低频率提供更准确的信息。
控制单元100执行对传感器、IMU 606和相机602的控制,对来自传感器的传感器数据施加时间戳,执行预先计算以加速定位流水线,并且封装原始数据,以用于通过USB102发送到主机。
USB接口102使单目辅助传感器600能够与主机交互。主机(为了清楚起见,在图6中未示出)可以是使用由单目辅助传感器600产生的数据的移动设备或台式/膝上型计算机、专用机器控制器、汽车控制模块、机器人控制器等。在各种实施方式中,主机可以执行额外的计算以实现代理定位和深度学习任务。在低功耗CU 100上执行数据预处理的实施方式可以将主处理器(与低功耗CU相比功耗要高得多)从执行这些任务中解脱出来。结果,这样的实施方式实现了提高的能量效率。
需要注意,一个实施方式平均了对齐的图像。在其他实施方式中,使用其他技术。还要注意的是,在另一个实施方式中,包括图像质量测量子步骤。因此,如果输出图像太暗或仍然不够锐利或清晰,则图像将被拒绝,而不会传递到流水线的其余部分。
图7示出了单目辅助传感器700的示例,其中使用轮里程单元(WOU)702来代替惯性测量单元来确定位置信息。WOU 702为来自移动单元的轮式旋转编码器的代理定位流水线提供原始传感器数据,以实时生成代理位置信息。
图8示出了与惯性测量单元606和轮里程单元702组合的单目辅助传感器800的示例。在该实施例中,来自惯性测量单元606和轮里程单元702的传感器数据用于校准来自相机的数据以确定移动单元在全球地图上的位置。
图9示出了与惯性测量单元和轮里程单元组合的双目传感器900的示例。由于双目传感器具有一个操作相机902和故障相机906,所以该***可以被分类为单目相机。故障相机可能正在经历短期损伤(例如照明改变、包括减小的强度、或增加相机饱和强度(模糊)灰尘或碎片或其他代理堵塞相机的视图等)或长期损害(例如,硬件故障、持久性信号干扰、错误的通信连接等)。
在辅助传感器是深度传感器的单目辅助传感器的示例中,辅助传感器通常包括在相机中。因此,来自相机的图像包括深度图,该深度图用于从图像提取特征并提供基于深度学习的任务(包括对象识别、对象跟踪、图像字幕等)的原始信息的代理定位。
本文描述的实施方式可以用于确定移动单元的位置信息。
惯性测量单元的传感器数据生成和处理
在一个实施例中,在CU 100上校正IMU原始数据,由此实现不需要来自主机处理器的额外处理,因此加速了传感器预处理流水线。
时间戳:
时间戳处理器404为控制单元100从IMU传感器606接收的每组惯性测量数据施加时间戳,以确保单目辅助传感器600、800保持时间精确的传感器数据流。这种对维护传感器数据流完整性的严格关注使实施方式能够提供可靠工作的代理定位。通过单目辅助传感器对原始数据施加时间戳可以避免复杂的同步任务。
偏差校正:
偏差校正处理器406校正从带时间戳的惯性数据中读出的IMU数据。由于制造缺陷,IMU传感器通常存在偏差问题,因此其测量结果存在误差。如果不从测量中移除偏差误差,则偏差误差作为机械化过程的一部分被结合两次。在这种情况下,加速度中的恒定偏差(误差)成为速度的线性误差和位置的二次误差。姿态率(陀螺仪)中的恒定偏差成为速度的二次误差和位置的三次误差。该偏差可以从离线工厂传感器校准阶段获得。CU 100中的这个校准信息用于在CU 100上执行偏差校正任务。
比例校正:
比例校正处理器408将存储的比例因子信息应用于校正的惯性数据。比例因子误差是输入和输出之间的关系。如果输入为100%,则预期输出为100%。实际输出是线性效应的结果,其中输出与输入成比例但有缩放。例如,如果输入为10m/s2,但存在2%的比例因子误差,则输出测量值为10.2m/s2。比例因子可以从离线工厂传感器校准阶段获得。CU 100中的此校准信息用于在CU 100上执行比例校正任务。
错位校正:
错位校正处理器410校正惯性测量传感器的传感元件的错位。存在相互正交安装的三轴陀螺仪和三轴加速度计。然而,安装有误差,因此不完全在90度。这导致传感器之间的相关性。例如,假设一个轴完全指向上并且IMU是水平的。该轴上的加速度计正在测量重力。如果另外两个轴完全正交,它们不会测量任何重力的影响。如果存在非正交性,其他轴也会测量重力,从而导致测量值之间的相关性。非正交效应发生在传感器组内(加速度计或陀螺仪之间),传感器组之间或传感器组与外壳之间(封装错位)。仔细的制造和工厂校准可以帮助减少这种误差来源。***运行期间的连续估计和校正也是一种用于最小化这种影响的方法。通过执行钻孔瞄准估算以确定IMU 606测量框架与传感器(物镜)框架之间的偏移,可以移除(IMU 606与外壳之间的)封装错位。错位数可以从离线工厂传感器校准阶段获得。CU 100中的该校准信息用于在CU 100上执行错位校正任务。
IMU相机坐标变换:
在一些实施方式中,IMU 606和相机602不位于相同的物理位置处;在IMU 606和相机602之间存在距离。因此,为了使得定位流水线中的后续处理能够将IMU 606和相机602视为共处一处,在实现时确定IMU 606和相机602之间的变换矩阵,其可以从离线生产或后期生产校准阶段实现。在CU 100中,该变换矩阵本地存储,并应用于IMU数据。该技术使后来的处理能够将IMU 606和相机602视为共处一处。
传感器数据生成和轮里程单元处理
在一个实施例中,在CU 100上校正WOU原始数据,由此实现不需要来自主机处理器的额外处理,因此加速了传感器预处理流水线。
时间戳:
时间戳处理器504为控制单元100从WOU传感器702接收的每组里程测量数据施加时间戳,以确保单目辅助传感器600、800保持时间精确的传感器数据流。通过单目辅助传感器对原始数据施加时间戳可以不需要复杂的同步任务。
滑动调整器:
当行驶在低牵引地形、可变形地形、陡峭的山坡上或在与障碍物碰撞期间,以WOU作为辅助单元的单目辅助传感器的位置会由于轮打滑而快速积累较大的误差。如果里程数据不准确,移动设备的最终位置可能被高估。滑动调整器506校正从带时间戳的里程数据读出的WOU数据。
比例校正:
比例校正处理器508将存储的比例因子信息应用于校正的里程数据。比例因子误差是输入和输出之间的关系。如果输入为100%,则预期输出为100%。实际输出是线性效应的结果,其中输出与输入成比例但有缩放。例如,如果输入是1厘米,但有5%的比例因子误差,则输出测量值为1.05厘米。比例因子可以从离线工厂传感器校准阶段获得。CU 100中的此校准信息用于在CU 100上执行比例校正任务。
传感器视觉数据生成和处理
图像失真校正(Image Undistortion):
图像失真校正处理器204校正捕获的帧中的图像数据中的失真。图像失真通常指的是一种光学像差,它会使物理上的直线变形并弯曲,并使它们在图像中显得弯曲。由于光学设计而发生光学畸变。为了实现可靠的计算机视觉结果,图像失真校正处理器204可以在执行进一步处理之前校正图像失真。这可以通过使用传入图像大小的查找表并执行地图重新构建(remapping)操作来使整个图像不失真来实现。
特征失真校正(Feature Undistortion):
在处理流水线的其余部分不需要整个图像但仅需要图像内的特征点的情况下,特征失真校正处理器208对CU执行特征失真校正操作。详细地说,这个操作在特征提取阶段之后运行,并且不破坏每个特征点。
特征检测:
Shi-Tomasi处理器206对图像帧执行特征检测。特征是图像的“有趣”部分。Shi-Tomasi特征检测包括旨在计算图像信息的抽象并在每个图像点进行局部判定的方法,该判定涉及在该点是否存在给定类型的图像特征。得到的特征将是图像域的子集,通常以孤立点的形式出现。一些实施方式在CU 100上执行特征检测以将主机从执行此类任务中解脱出来并加速特征检测过程。因此,在一个实施方式中,处理包括:
·动作1:计算每个像素的特征值并确定(i)该特征是否被关注;和(ii)对于被关注的特征,一种特征:
o两个小的特征值:特征不被关注
o一个小的,一个大的值:特征可能是边缘
o两个大的值:特征可能是角落
o其他类型的特征
·动作2:改进
o应用非最大抑制
o应用空间分级(spatial binning)
o应用启发式(heuristics)
o应用其他类型的改进
特征描述:
特征描述引擎210对检测到的特征执行特征描述。特征描述包括唯一地标识图像中每个检测点的方法。特征描述可用于比较和匹配不同图像之间的特征点。一些实施方式在CU 100上执行特征描述以将主机从执行这样的任务中解脱出来并加速特征描述过程。
特征描述引擎210的一个实施方式使用SIMD加速的ORB描述符来描述特征。对特征的描述可用于匹配目的并描述特征的唯一性。ORB描述符方法被选择是由于其相对旋转不变性和对高斯图像噪声的免疫性。ORB特征检测器和二进制描述符的一个例子可以在“ORB特征检测器和二进制描述符”中找到,http://scikit-image.org/docs/dev/auto_examples/plot_orb.html(上次访问时间:2016年8月17日)。有关ORB描述符的进一步信息,可以参考Ethan Rublee等人的“ORB:SIFT或SURF的高效替代物”,其通过引用并入本文用于所有目的。
2D特征对应生成:
光流特征对应处理器212为特征执行2D特征对应生成。特征对应计算用于识别出现在左侧和右侧相机中的特征点。一旦识别出任何两个特征点的特征对应,就可以将三角测量应用于特征点以获得空间点的深度。深度信息由稍后在定位流水线中的过程使用。一些实施方式在CU 100上执行特征对应生成以将主机从执行此类任务中解脱出来并加速特征对应生成。
一个光流特征对应处理器212的实施方式采用光流方法来计算两个图像帧之间的运动,其在每个体素位置(voxel position)的时间t和t+Δt处获得。一种称为微分方法的方法是基于图像信号的局部泰勒级数近似,使用关于空间和时间坐标的偏导数。因此,在一个实施方式中,处理包括:
·输入:最后一幅图像,当前图像,最后一幅图像中检测到的特征位置列表,
·输出:当前图像中最后一张图像的检测到的特征的位置列表
·假设:亮度一致,图像通过且仅通过运动变化
·动作1:通过假定没有运动来预测输出位置,以便当前位置与最后一帧的特征位置相同,或者使用从辅助传感器获取的信息来预测位置。
·动作2:通过在预测位置周围搜索,匹配色块并使用匹配分数确定精确位置来优化每个特征点的像素坐标。因此,所公开的技术可以通过使用来自辅助设备的信息来提供具有通过缩小搜索范围和节省时间来获得提高的性能的实施方式。
现在参考图10,其示出了可用于实现单目辅助传感器600、700和800的单目辅助定位***1000的简化框图。单目辅助定位***1000包括处理器1032、存储器1034、惯性测量单元(IMU)606、轮里程单元(WOU)702、相机602和通信接口1042。包括一个或多个附加I/O特征1036以实施特定需求,例如视觉呈现接口1078、音频呈现接口1079、用于检测触觉输入1080(例如,键盘、小键盘、触摸板、鼠标、轨迹球、操纵杆等)和非触觉输入1082(例如,麦克风、声纳传感器以及类似的)的传感器。存储器1034可以用于存储要由处理器1032执行的指令以及与指令的执行相关联的输入和/或输出数据。具体而言,存储器1034包含指令,其在概念上被展示为下面更详细描述的一组模块,其控制处理器1032的操作及其与其他硬件部件的交互。操作***指导执行底层的基本***功能,例如内存分配、文件管理和海量存储设备的操作。操作***可以是或包括多种操作***,诸如Microsoft WINDOWSTM操作***、UnixTM操作***、LinuxTM操作***、XenixTM操作***、IBM AIXTM操作***、Hewlett Packard UXTM操作***、Novell NETWARETM操作***、Sun Microsystems SOLARISTM操作***、OS/2TM操作***、BeOSTM操作***、MACINTOSHTM操作***、APACHETM操作***、OPENACTIONTM操作***、iOSTM、Android或其他移动操作***或其他操作***的平台。
计算环境还可以包括其他可移动/不可移动,易失性/非易失性计算机存储介质。例如,硬盘驱动器可以读取或写入不可移动的非易失性磁介质。磁盘驱动器可以读取或写入可移动的非易失性磁盘,并且光盘驱动器可以读取或写入诸如CD-ROM或其它光学介质的可移动非易失性光盘。可以在示例性操作环境中使用的其他可移动/不可移动,易失性/非易失性计算机存储介质包括但不限于磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。存储介质通常通过可移动或不可移动的存储器接口连接到***总线。
在一个实施例中,处理器1032是NEON ARM处理器,其实现单输入多数据(SIMD)体系结构作为精简指令集计算机(RISC)体系结构。然而,取决于实施方式,处理器1032可以替代地使用专用微控制器、***集成电路元件、CSIC(客户专用集成电路)、ASIC(专用集成电路)、逻辑电路、数字信号处理器,诸如FPGA(现场可编程门阵列)、PLD(可编程逻辑设备)、PLA(可编程逻辑阵列)、RFID处理器、智能芯片之类的可编程逻辑设备或者任何其他设备或装置的布置能够实施所公开的技术的过程的动作。
通信接口1042可以包括能够实现单目辅助定位***1000和其他控制或启用用户硬件和应用(以下称为“主***”或“主机”)的***之间的通信的硬件和/或软件,例如,机器人或其他引导的移动平台、自主交通工具、虚拟现实增强现实可穿戴设备(VR/AR耳机)等(为了清楚起见,在图10中未示出)。相机602以及诸如IMU 606和WOU 702的传感器可以通过由硬件和软件组合实现的各种通信接口和协议耦合到处理器1032。因此,例如,定位***1000可以包括一个或多个相机数据端口和/或运动检测器端口(为了清楚起见,在图10中未示出),相机和运动检测器可以连接到该端口(通过传统插头和插孔),以及在将信号作为输入提供给在处理器1032上执行的快速准确的稳定自适应跟踪(“FASAT”)过程1044之前修改从相机和运动检测器接收的数据信号(例如,减少噪声或重新格式化数据)的硬件和/或软件信号处理器。在一些实施方式中,单目辅助定位***1000还可以向相机和传感器发送信号,例如激活或停用它们,以控制相机设置(帧速率、图像质量、灵敏度等),控制传感器设置(校准、灵敏度等)等。这样的信号可以被传输,例如,响应于来自处理器1032的控制信号,控制信号可以进而响应于用户输入或其他检测到的事件而产生。
定义FASAT过程1044的指令被存储在存储器1034中,并且这些指令在被执行时对由相机602捕获的图像帧、由IMU 606捕获的惯性数据和由连接到单目辅助定位***1000的WOU 702捕获的里程数据进行分析。在一个实施方式中,FASAT过程1044包括各种逻辑过程,诸如特征提取器1052,其接收原始图像并确定图像中对象的显着点表示,从而表示对象从机器角度的几何理解。在一些实施方式中,特征提取器1052分析图像(例如,经由相机602捕获的图像帧),以检测其中的对象的边缘和/或关于对象的位置的其他信息。传感器融合跟踪过程1054使用特征提取结果、来自IMU 606的惯性数据和来自WOU 702的里程数据来精确且快速地生成姿态。智能交互地图1056使得能够使用已知的障碍物地图来定位传感器。该地图使用地图构建过程1092的地图构建功能来构建,其在下文中进一步详细描述。当设备失去对设备位置的跟踪时,重***过程1058恢复设备位置感知。***诊断和响应(SDAR)1066管理设备的当前定位状态并提供响应策略。
地图构建过程1092生成混合占用网格,其构建由特征提取器1052识别的空间和对象的地图。混合占用网格包括(i)位于图像帧中的空间中点的点云表示,以及(ii)一个或多个xy平面占用网格,其布置在所提取的特征上的点相交的高度处。
在一些实施方式中,其他处理1094分析音频或超声信号(例如,经包括非触觉输入1082的由声纳或音频传感器捕获的音频信号)以通过例如到达时间间隔、多点定位(multilateration)或类似的(多点定位是一种导航技术,它基于测量已知位置处两个或更多站点的距离差异,这些站点可以在已知时间广播信号。请参见Wikipedia,网址为<http://en.wikipedia.org/w/index.php?title=Multilateration&oldid=523281858>,on Nov.16,2012,06:07UTC)来定位物体和障碍物。音频信号将物体放置在已知的表面上,并且可以使用信号的强度和变化来检测物体的存在。如果音频和图像信息同时可用,则可以分析和调和这两种类型的信息,以产生更详细和/或准确的路径分析。
在一些实施方式中,其他处理1094基于由地图构建过程1092生成的混合占用网格来确定跟踪和预测空间中的设备移动的路径。一个或多个应用1096可以被加载到存储器1034中(或者以其他方式使其可用于处理器1032)以增强或定制单目传感器的功能,从而使得***1000能够用作平台。在像素级分析连续的相机图像以提取物体移动和速度。在一些实施方式中,呈现接口1078包括视频反馈集成器,其提供来自相机602的实况视频馈送和一个或多个虚拟对象的集成。视频馈送集成器管理来自不同类型的相机602的视频信息的处理。例如,从提供单色成像的像素和从提供彩色成像的像素(例如,RGB)接收的信息可以由积分器分开并被不同地处理。来自一种类型的传感器的信息可用于增强、纠正和/或确认来自另一种类型的传感器的信息。来自一种类型的传感器的信息可以在某些类型的情景或环境条件(例如,低光、雾、明亮的光等)中有利。设备可以自动地或通过接收来自用户的选择在基于一种或其他类型的图像信息提供呈现输出之间进行选择。
呈现接口1078、音频呈现1079、非触觉输入1082和通信接口1042可以用于促进经由具有单目辅助定位***1000的单目传感器的用户交互。这些部件可以是高度定制的设计,通常传统设计或其组合来提供任何类型的用户交互。在一些实施方式中,使用惯性测量单元606,轮里程单元702和相机602以及FASAT程序1044分析捕获的图像的结果可以被解释为表示3D空间中的物体和障碍物。例如,配备有单目辅助传感器的机器人可以在已经使用FASAT程序1044分析的表面上执行路径规划和/或障碍物避免,并且该分析的结果可以被一些其他在处理器1032(例如,运动计划器、定位和跟踪过程或其他应用程序)上执行的程序解释为占用地图。因此,作为说明,机器人可以使用相机602扫掠房间,以便将当前成像的空间通过呈现接口1078“映射”到主机设备可以使用的混合点网格,该主机设备例如监视器、VR耳机或者类似的,从而提供机器人正在“看到”的区域的视觉输入。智能交互地图1056可以使用通过地图构建1092构建的空间的表示来规划机器人或移动平台通过该空间的路径,例如以改善机器人或平台穿过该空间的定位和跟踪。
应该理解,单目辅助定位***1000是说明性的,并且变化和修改是可能的。单目辅助定位***可以以各种形式因素来实现,包括服务器和网络的“云”计算***、台式***、膝上型***、平板电脑、智能电话或个人数字助理等等。为了清楚起见,特定的实施方式可以包括在此没有描述的其他功能。在一些实施方式中,一个或多个相机和两个或更多个麦克风可以被内置到单目辅助***1000中,或者可以作为单独的部件被提供。此外,图像或音频分析器可以仅使用单目辅助定位***1000部件的子集(例如,作为执行程序代码的处理器、ASIC或固定功能数字信号处理器、具有合适的I/O接口接收图像数据并输出分析结果)。
虽然本文参照特定块描述了单目辅助定位***1000,但应理解,块是为了描述方便而定义的,并且不旨在暗示部件部分的特定物理布置。此外,块不需要对应于物理上不同的部件。就使用物理上不同的部件而言,部件之间的连接(例如,用于数据通信)可以根据需要有线和/或无线。因此,例如,处理器1032执行特征提取器1052可以使得处理器1032操作惯性测量单元606和相机602来捕捉穿过并接触表面的对象的图像和/或音频信号,以检测其进入分析图像和/或音频数据。
跟踪
跟踪是指由***硬件和功能过程所呈现的能力,其使得受控设备(机器人、移动平台或VR/AR头戴式耳机、护目镜或其他硬件)能够连续定位自身并具有位置感知,例如传感器***可以确定它在现实世界中的位置。
跟踪***的架构
图11示出了跟踪***实施的示例架构。如图11所示,部件和在图11的一个示例性的快速准确稳定自适应跟踪(“FASAT”)过程1044的部件之间的信息流由特征提取器(FE)1102、基于传感器融合的***(SFT)1111、与地图智能交互(SIM)的处理器1114、***诊断和响应(SDAR)处理器1103和重新***(RELOC)1122来图示。下面将描述这些部件的一个示例性实施方式的数据流和操作。
特征提取
特征提取器(FE)1102表示根据机器的透视图对空间的几何理解。特征提取器1102从控制单元100接收原始图像信息,并向传感器融合***(SFT)1111提供显着点表示混合点云图。特征提取器1102的一个实施方式执行各种动作,包括图像预处理、特征检测和特征描述符准备。
图像处理任务包括对原始图像数据执行高斯模糊和伽马校正。
特征检测:光流
光流给出先前图像和当前图像之间的2D-2D对应关系。特征提取器1102生成层次结构;每个层级的生成与光流需求一致,因此只需计算一次。
处理的图像被存储在多层次补丁(patch)和/或未畸变的补丁中。在示例性的实施方式中,随着层次结构中层级增加,图像中存在的模糊越多。在层次结构中的每个层级,图像的尺寸被缩小到其所来自的图像尺寸(例如前一个层级中图像)的尺寸的1/4。例如,如果第一个(“零级”)上的图像的尺寸为640×480,则下一个较高级别(“第一级”)上的对应图像的尺寸为320×240,并且在更高一级(“第二级”)上的下一个对应图像的尺寸为160×120。如果相同的特征点出现在多个层级上,则该特征点由***确定为强特征点。在前述示例中,使用比例因子2,然而,可以选择任何比例因子,例如1.6的比例因子为原始640×480的图像提供了具有400×300分辨率的下一层级图像。
一个特征提取器1102的实施方式采用光流方法来计算两个图像帧之间的运动,其在每个体素位置的时间t和t+Δt处获得。一种称为微分方法的方法是基于图像信号的局部泰勒级数近似,使用关于空间和时间坐标的偏导数。因此,在一个实施方式中,处理包括:
·输入:最后一幅图像、当前图像、最后一幅图像中检测到的特征位置列表,
·输出:当前图像中最后一张图像的检测到的特征的位置列表
·假设:亮度一致,图像通过且仅通过运动变化
·动作1:通过假定没有运动来预测输出位置,以便当前位置与最后一帧的特征位置相同,或者使用从一个或多个辅助传感器获取的信息来预测位置。
·动作2:通过在预测位置周围搜索,匹配色块并使用匹配分数确定精确位置来优化每个特征点的像素坐标。因此,所公开的技术可以通过使用来自一个或多个辅助传感器的信息来提供具有通过缩小搜索范围和节省时间来获得提高的性能的实施方式。
特征检测:Shi-Tomasi
特征提取处理器1102的一个实施方式使用具有空间分级(spatial binning)的NEON加速的Shi-Tomasi特征检测,以便从尽可能多地覆盖整个图像的区域获得特征。特征提取器1102使用来自一个或多个辅助传感器的数据和从传感器融合***1111接收的姿态信息,以便动态地决定要跟踪的区域和要使用的参数。特征是图像的“有趣”部分。因此,在一个实施方式中,处理包括:
·动作1:计算每个像素及其周围像素的强度值的特征值;并确定(i)该特征是否被关注;和(ii)对于被关注的特征,一种特征:
o两个小的特征值:特征不被关注
o一个小的,一个大的值:特征可能是边缘
o两个大的值:特征可能是角落
o其他类型的特征
·动作2:改进
o应用非最大抑制
o应用空间分级(spatial binning)
o应用启发式(heuristics)
o应用其他类型的改进
特征描述符:ORB描述符
特征提取器1102的一个实施方式使用SIMD加速的ORB描述符来描述特征。对特征的描述可用于匹配目的并描述特征的唯一性。ORB描述符方法被选择是由于其相对旋转不变性和对高斯图像噪声的免疫性。ORB特征检测器和二进制描述符的一个例子可以在“ORB特征检测器和二进制描述符”中找到,http://scikit-image.org/docs/dev/auto_examples/plot_orb.html(上次访问时间:2016年8月17日)。有关ORB描述符的进一步信息,可以参考Ethan Rublee等人的“ORB:SIFT或SURF的高效替代物”,其通过引用并入本文用于所有目的。
词语袋(Bag-of-words)
特征提取器1102的一个实施方式执行词语袋提取,从一个图像确定字节数组、词汇表的稀疏直方图。因此,在一个实施方式中,词语袋处理包括使用一个图像中的特征描述符列表来提取一个图像的词语袋特征。例如,在包含具有400个对应描述符的400个特征的图像中,以及具有256位大小的词语袋特征。由此产生的词语袋是一个256位数组,而且一个图像只需要/有一个256位数组。词语袋在进行如下文更详细描述的重新定位方面是有用的。词语袋可以指示A、B、C图像中,图像D具有单独的D-A、D-B、D-C的匹配得分。举例来说,D-B得分最高,则拍摄图像D的相机最接近拍摄图像B时使用的相机姿态,而不是A或C。
特征提取器1102的一个实施方式自适应地调整应用于为了***追踪运动对象所需的多个特征的阈值。这种智能阈值包括基于设备移动、传感器读数、情境或环境变量(例如,低光、雾、明亮的光等)或其组合而适应性地调整的阈值。一旦识别出足够数量的特征(例如,高于阈值),***将继续跟踪对象。否则,***不会跟踪该对象。特征提取器1102将基于设备移动和其他传感器级别自适应地调整阈值。
SFT:从特征提取结果生成姿态信息以及来自辅助传感器的数据
基于传感器融合的***(SFT)1111确定如何巧妙地使用来自一个或多个辅助传感器(IMU 606、WOU 702、深度传感器)的特征提取结果和数据来精确且快速地生成姿态。基于传感器融合的***1111针对***状态,特征提取器初始状态,与地图状态的交互以及其他状态执行初始化。基于传感器融合的***1111具有决定如何初始化状态的逻辑,包括使用跳过多少图像以及针对特定硬件的任何其他初始化步骤。
在一个实施方式中,基于传感器融合的***1111对辅助传感器执行缓冲管理。来自辅助传感器的数据时间戳被校正并对齐。另外,尚未处理的来自辅助传感器的数据信息被保存在缓冲区中。
为使用IMU作为辅助传感器的单目辅助传感器生成姿态信息:
传播(Propagation):实施方式可以采用通过方程(1)以一般非线性模型形式表示的扩展卡尔曼滤波(EKF),以使用来自多轴IMU的惯性数据来外推初始姿态以生成传播姿态:
其中x表示状态矢量,f表示非线性函数,h表示观测非线性函数,n表示测量噪声,z表示观测矢量,w表示噪声矢量。
方程(1)的离散时间模型的线性版本可用于协方差传播和更新,并且增益计算由方程(2)表示:
在一个实施方式中,仅使用IMU数据来执行EKF的传播。这使得某些实施方式能够以相对较低的计算成本提供快速结果。采用下面描述的更新过程来校正当在EKF中仅使用惯性信息来确定姿态时发生的“漂移”。传播可以通过多种方式进行:(i)传播在IMU进行惯性测量后立即发生;或者(ii)在视觉传感器拍摄的图像到达之后但在执行下面描述的更新过程之前立即发生延迟传播。
在一些实施方式中,运动传感器保持来自IMU的加速计的读数的窗口。运动传感器计算加速器读数窗口中加速度的方差,并基于计算的方差确定移动单元是移动还是静止。大于预定阈值方差的方差指示移动单元正在移动,并且通过使用EKF方法来执行传播。小于预定阈值方差的方差指示移动单元是静态的并且通过使用假定为零速度的EKF方法来执行传播。预定的阈值变化可以通过本领域技术人员显而易见的各种技术来估计。
更新:在一个实施方式中,使用图像信息连同IMU缓冲区样本来执行更新过程,其可以校正可能从传播中漂移的姿态。在单个观察实施方式中,基于当前图像观察,准备传播所需的信息,例如特征、姿态、地图点等。然后,通过直接使用来自光流跟踪结果的2D-2D对应来获得用于光流跟踪2D特征的2D-3D对应信息。对于其余的3D地图点,通过以下方式智能地在具有自适应参数的3D上进行搜索:(i)如果剩余点数很少(例如低于阈值),则执行线性搜索,否则,(ii)如果剩余点数是相当大的,例如,高于阈值,使用kd树或八叉树执行log(n)搜索。在搜索过程中,使用之前的时间段速度/加速度来预测姿态,以缩小搜索范围。接下来,执行更新,并仅使用“优秀”点为当前帧生成姿态。或者,也可以执行两次更新:第一次只使用高权重“优秀”点,然后使用所有地图点。如本文所使用的,术语“优秀”点表示高质量点,例如具有较小再投影误差和/或以良好状态被多次跟踪的点,其可通过应用一些启发法来选择。
图12是更新包括相机和多轴惯性测量单元的移动单元的位置的代表性方法1200。流程图1200可以至少部分地用计算机或其他数据处理***来实现,例如通过配置成接收或获取信息,处理信息,存储结果和传输结果的一个或多个处理器。其他实施方式可以以不同的次序执行动作和/或以不同于图12中所示的那些动作的更少或更多的动作来执行动作。在一些实施方式中可以组合多个动作。为了方便起见,参考执行方法的***来描述该流程图。该***不一定是该方法的一部分。
所公开的技术的该部分和其他部分中描述的方法可以包括结合所公开的附加方法描述的以下特征和/或特征中的一个或多个。为了简洁起见,在本申请中公开的特征的组合未被单独枚举,并且不针对每个基本特征集重复。读者将会理解这种方法中识别出的特征如何能够很容易地与识别为诸如***概述、跟踪、构建地图、机器人实施、VR/AR实施等实施的基本特征集相结合。
在步骤1210,接收移动单元的定位。设Pl是移动单元的初始姿态。
在步骤1220,从IMU接收到移动单元已经移动到新位置的信息。移动单元的运动可以通过运动的转动部分RIMU和运动的平移部分tIMU来描述。
在步骤1230,在从新位置等待来自相机的新帧的同时,使用来自多轴IMU的惯性数据来更新初始姿态以在新位置处生成传播姿态Pl+1,如方程(3)所示。
RIMU[Pl]+tIMU=Pl+1 (3)
在步骤1240,由相机在新位置获取新帧。在步骤1250,从新帧中提取特征。在步骤1260,将提取的新特征与来自先前帧的特征匹配,并且从传播姿态的角度将特征位置从3D地图重新投影到2D视图上,产生匹配特征的列表。估计由连续帧之间的匹配特征的运动所描绘的运动RCAM的转动部分和运动RCAM的平移部分,如方程(4)所示。
RCAM[Pl]+tCAM=Pl+1 (4)
虽然由相机描绘的运动的转动部分是准确的,但是平移部分的比例不明确。在步骤1270,使用来自IMU的信息的平移部分的信息和匹配特征的位置的平移部分来确定比例因子(scale factor),如方程(5)所示。
scale factor=tCAM/tIMU (5)
在步骤1280,使用步骤1270中的比例因子来计算新位置处的校正姿态Pm,如方程(6)所示。
本部分中描述的方法的其他实施方式可以包括存储指令的非暂时性计算机可读存储介质,所述指令可由处理器执行以执行上述任何方法。本部分中描述的方法的又一个实施方式可以包括存储器和可操作以执行存储在存储器中的指令以执行上述任何方法的一个或多个处理器的***。
在一些实施方式中,由于移动单元的快速移动而捕获的模糊图像,周围环境中的不良照明,相机的视点被物体阻挡等等,从具有一个操作相机的移动单元中的相机的图像更新可能会失败。另外,在两次成功的图像更新之间可能有相当数量的IMU传播。在N个图像连续更新失败后,通过在IMU的陀螺仪读数上使用EKF方法来执行传播。基于IMU的陀螺仪读数的传播通过假设移动单元正在旋转来预测传播的姿态。
为使用WOU作为辅助传感器的单目辅助传感器生成姿态信息:
传播:移动单元具有两个彼此平行且距离移动单元的中心等距的轮。轮可以向前或向后移动。轮连接到一个旋转编码器,该旋转编码器确定任一个轮是否沿着表面前进或后退了一个“单元”。该单位是轮周长与编码器分辨率的比值。移动单元行驶的距离可以根据行驶单位的数量和轮的周长来计算。在一个轮允许旋转而另一个保持静止的情况下,可以使用正弦定律来确定机器人中心的位置变化的大小。如果左侧轮向前移动一个单位,而右侧轮保持静止,则右侧轮用作枢轴,并且左侧轮沿顺时针方向描绘圆弧。如果右侧轮在左侧轮保持静止时向前移动一个单位,则左侧轮用作枢轴,而右侧轮沿逆时针方向描绘圆弧。轮里程单元向控制单元100提供移动单元的移动的转动部分和移动单元的移动的平移部分。
通过使用来自轮里程单元的数据可以大大提高单个相机的深度比例精度的缺乏。即使单目***中唯一可操作的相机出现故障(例如,低光、雾、明亮的光、硬件或软件故障、视野障碍等),轮里程数据也可用于传播。WOU的传播可以通过多种方式进行:(i)传播在WOU采取里程测量后立即发生;或者(ii)在视觉传感器拍摄的图像到达之后但在执行下面描述的更新过程之前立即发生延迟传播。
更新:在一个实施方式中,使用图像信息连同WOU缓冲区样本来执行更新过程。在单个观察实施方式中,基于当前图像观察,准备传播所需的信息,例如特征、姿态,地图点等。然后,通过直接使用来自光流跟踪结果的2D-2D对应来获得用于光流跟踪2D特征的2D-3D对应信息。对于其余的3D地图点,通过以下方式智能地在具有自适应参数的3D上进行搜索:(i)如果剩余点数很少(例如低于阈值),则执行线性搜索,否则,(ii)如果剩余点数是相当大的,例如,高于阈值,使用kd树或八叉树执行log(n)搜索。接下来,执行更新,并仅使用“优秀”点为当前帧生成姿态。或者,也可以执行两次更新:第一次只使用高权重“优秀”点,然后使用所有地图点。如本文所使用的,术语“优秀”点表示高质量点,例如具有较小再投影误差和/或以良好状态被多次跟踪的点,其可通过应用一些启发法来选择。
图13是更新包括相机和轮里程单元的移动单元的位置的代表性方法1300。流程图1300可以至少部分地用计算机或其他数据处理***实施,例如通过配置成接收或检索信息,处理信息,存储结果和传输结果的一个或多个处理器。其他实施方式可以以不同的次序执行动作和/或以不同于图13中所示的那些动作的更少或更多的动作来执行动作。在一些实施方式中可以组合多个动作。为了方便起见,参考执行方法的***来描述该流程图。该***不一定是该方法的一部分。
所公开的技术的该部分和其他部分中描述的方法可以包括结合所公开的附加方法描述的以下特征和/或特征中的一个或多个。为了简洁起见,在本申请中公开的特征的组合未被单独枚举,并且不针对每个基本特征集重复。读者将会理解这种方法中识别出的特征如何能够很容易地与识别为诸如***概述、跟踪、构建地图、机器人实施、VR/AR实施等实施的基本特征集相结合。
在步骤1310,接收移动单元的位置。设Pl是移动单元的初始姿态。
在步骤1320,从移动单元已经移动到新位置的WOU接收信息。移动单元的运动可以通过运动的转动部分RWHEEL和运动的平移部分tWHEEL来描述。
在步骤1330,在等待来自新位置的来自相机的新帧的同时,使用来自WOU的里程数据来更新初始姿态以在新位置处生成传播姿态Pl+1,如方程(7)所示。
RWHEEL[Pl]+tWHEEL=Pl+1 (7)
在步骤1340,由相机在新位置处获取新帧。在步骤1350,从新帧提取特征。在步骤1360,将提取的新特征与来自先前帧的特征匹配,并且从传播姿态的角度将特征位置从3D地图重新投影到2D视图上,产生匹配特征的列表。估计由连续帧之间的匹配特征的运动所描绘的运动RCAM的转动部分和运动RCAM的平移部分,如方程(8)所示。
RCAM[Pl]+tCAM=Pl+1 (8)
虽然由相机描绘的运动的转动部分是准确的,但是平移部分的比例是不明确的。在步骤1370,使用来自WOU的信息的平移部分的信息和匹配特征的位置的平移部分来确定比例因子,如方程(9)所示。
scale factor=tCAM/tIMU (9)
在步骤1380,使用步骤1370中的比例因子来计算校正姿态Pm,如方程(10)所示。
本部分中描述的方法的其他实施方式可以包括存储可由处理器执行以执行上述任何方法的指令的非暂时性计算机可读存储介质。本部分中描述的方法的又一个实现可以包括存储器和可操作以执行存储在存储器中的指令以执行上述任何方法的一个或多个处理器的***。
为使用IMU和WOU作为辅助传感器的单目辅助传感器生成姿态信息:
传播:在具有两个辅助传感器的单目辅助传感器中,使用图像信息连同来自一个辅助传感器的数据来估计第一传播姿态。从第二辅助传感器估计第二传播姿态。根据第一传播姿态和第二传播姿态估计校正姿态。本领域的普通技术人员将认识到各种等同变型。在一个实施方式中,IMU可以是第一辅助传感器,而WOU可以是第二辅助传感器。
实施方式可以采用扩展卡尔曼滤波(EKF),以使用来自多轴IMU的惯性数据来外推初始姿态以生成传播姿态。IMU的传播可以通过多种方式进行:(i)传播在IMU进行惯性测量后立即发生;或者(ii)延迟传播在视觉传感器拍摄的图像到达之后但在执行下述更新过程之前立即发生。
在一些实施方式中,运动传感器保持来自IMU的加速计的读数的窗口。运动传感器计算加速器读数窗口中加速度的方差,并基于计算的方差确定移动单元是移动还是静止。大于预定阈值方差的方差指示移动单元正在移动,并且通过使用EKF方法来执行传播。小于预定阈值方差的方差指示移动单元是静态的并且通过使用假定为零速度的EKF方法来执行传播。预定的阈值变化可以通过本领域技术人员显而易见的各种技术来估计。
轮里程单元向控制单元100提供移动单元的移动的转动部分和移动单元的移动的平移部分。在收到来自相机和IMU的第一个传播姿态之后,可以执行WOU的传播。
更新:在一个实施方式中,使用图像信息以及IMU和WOU缓冲样本来执行更新过程。在单个观察实施方式中,基于当前图像观察,准备传播所需的信息,例如特征、姿态、地图点等。然后,通过直接使用来自光流跟踪结果的2D-2D对应来获得用于光流跟踪2D特征的2D-3D对应信息。对于其余的3D地图点,通过以下方式智能地在具有自适应参数的3D上进行搜索:(i)如果剩余点数很少(例如低于阈值),则执行线性搜索,否则,(ii)如果剩余点数是相当大的,例如,高于阈值,使用kd树或八叉树执行log(n)搜索。接下来,执行更新,并仅使用“优秀”点为当前帧生成姿态。或者,也可以执行两次更新:第一次只使用高权重“优秀”点,然后使用所有地图点。如本文所使用的,术语“优秀”点表示高质量点,例如具有较小再投影误差和/或以良好状态被多次跟踪的点,其可通过应用一些启发法来选择。
图14是更新包括相机、多轴惯性测量单元和轮里程单元的移动单元的位置的代表性方法1400。流程图1400可以至少部分地用计算机或其他数据处理***来实施,例如通过配置成接收或检索信息,处理信息,存储结果和传输结果的一个或多个处理器。其他实施方式可以以不同的次序执行动作和/或以不同于图14中所示的那些动作的更少或更多的动作来执行动作。在一些实现中可以组合多个动作。为了方便起见,参考执行方法的***来描述该流程图。该***不一定是该方法的一部分。
所公开的技术的该部分和其他部分中描述的方法可以包括结合所公开的附加方法描述的以下特征和/或特征中的一个或多个。为了简洁起见,在本申请中公开的特征的组合未被单独枚举,并且不针对每个基本特征集重复。读者将会理解这种方法中识别出的特征如何能够很容易地与识别为诸如***概述、跟踪、构建地图、机器人实施、VR/AR实施等实施的基本特征集相结合。
在步骤1405,接收移动单元的位置。设Pl是移动单元的初始姿态。
在步骤1410,从IMU接收移动单元已经移动到新位置的信息。移动单元的运动可以通过运动的转动部分RIMU和运动的平移部分tIMU来描述。
在步骤1415,在等待来自新位置的来自相机的新帧的同时,使用来自多轴IMU的惯性数据来更新初始姿态,以在新位置处生成新姿态Pl+1,如方程(11)所示。
RIMU[Pl]+tIMU=Pl+1 (11)
在步骤1420,由相机在新位置处捕获新帧。在步骤1425,从新帧中提取特征。在步骤1430,将提取的新特征与来自先前帧的特征匹配,并且从传播姿态的角度将特征位置从3D地图重新投影到2D视图上,产生匹配特征的列表。估计由连续帧之间的匹配特征的运动所描绘的运动RCAM的转动部分和运动RCAM的平移部分,如方程(12)所示。
RCAM[Pl]+tCAM=Pl+1 (12)
虽然由相机描绘的运动的转动部分是准确的,但是平移部分的比例是不明确的。在步骤1435,使用来自IMU的信息的平移部分的信息和匹配特征的位置的平移部分来确定比例因子,如方程(13)所示。
scale factor=tCAM/tIMU (13)
在步骤1440,使用步骤1435中的比例因子计算第一传播姿态PI,如方程(14)所示。
在步骤1445,从轮里程单元接收第二传播姿态PII。
在步骤1450,确定第一传播姿态PI与第二传播姿态PII之间的误差。
在步骤1455,使用优化技术使第一传播姿态PI与第二传播姿态PII之间的误差最小化。在一个实施例中,优化技术可以是牛顿法。在另一个实施例中,优化技术可以是梯度下降法。本领域的普通技术人员将认识到各种等同变型。在第一传播姿态PI和第二传播姿态PII之间的误差被最小化之后,达到校正姿态Pm。
本部分中描述的方法的其他实现方式可以包括存储指令的非暂时性计算机可读存储介质,所述指令可由处理器执行以执行上述任何方法。本部分中描述的方法的又一个实现可以包括存储器和可操作以执行存储在存储器中的指令以执行上述任何方法的一个或多个处理器的***。
在一些实施方式中,由于移动单元的快速移动而捕获的模糊图像,周围环境中的不良照明,相机的视点被物体阻挡等等,从具有一个操作相机的移动单元中的相机的图像更新可能会失败。另外,在两次成功的图像更新之间可能有相当数量的IMU传播。在N个图像连续更新失败后,通过在IMU的陀螺仪读数上使用EKF方法来执行传播。基于IMU的陀螺仪读数的传播通过假设移动单元正在旋转来预测传播的姿态。
为深度传感器用作辅助传感器的单目辅助传感器生成姿态信息:
传播和更新:使用“稀疏驱动”方法来收集用于在单目辅助传感器中传播的深度信息,其中深度传感器被用作辅助传感器。当移动单元以新的相机视点移动到新的位置时,为来自相机的来自新位置的像素化新帧的一些像素坐标填充深度值的表。基于当前的图像观察,准备传播所需的信息,例如特征、姿态、地图点等。然后,通过直接使用来自光流跟踪结果的2D-2D对应关系来获得用于光流跟踪2D特征的2D-3D对应信息。对于其余的3D地图点,通过以下方式智能地在具有自适应参数的3D上进行搜索:(i)如果剩余点数少(例如低于阈值),则执行线性搜索,否则,(ii)如果剩余点数是相当大的(例如高于阈值),使用kd树或八叉树执行log(n)搜索。接下来执行更新,并仅使用“优秀”点为当前帧生成姿态。可替代地,执行两次更新:第一次只使用高权重“优秀”点,然后使用所有地图点。如本文所使用的,术语“优秀”点表示高质量点,例如具有较小再投影误差和/或以良好状态被多次跟踪的点,其可通过应用一些启发法来选择。
从“优秀”特征的列表中,去除没有来自深度传感器的相应读数和不可靠深度信息的特征。从“深度值”表中检索“优秀”特征列表上其余特征的深度值,并为每个特征计算该特征的所有可用像素坐标的加权平均深度值。具有加权深度比例的2D特征用于填充3D地图;从而初始化3D地图以供使用。
图15是更新包括相机和深度传感器的移动单元的位置的代表性方法1500。流程图1500可以至少部分地用计算机或其他数据处理***来实施,例如通过配置成接收或检索信息、处理信息、存储结果和传输结果的一个或多个处理器。其他实施方式可以以不同的次序执行动作和/或以不同于图15中所示的那些动作的更少或更多的动作来执行动作。在一些实施方式中可以组合多个动作。为了方便起见,参考执行方法的***来描述该流程图。该***不一定是该方法的一部分。
所公开的技术的该部分和其他部分中描述的方法可以包括一个或多个下列特征和/或结合所公开的附加方法描述的特征。为了简洁起见,在本申请中公开的特征的组合未被单独枚举,并且不针对每个基本特征集重复。读者将会理解这种方法中识别出的特征如何能够很容易地与识别为诸如***概述、跟踪、地图构建、机器人实施方式、VR/AR实施方式等实施方式的基本特征集相结合。
在步骤1505,移动单元以新的相机视点运动到新的位置。在步骤1510,相机在新位置获取新帧。在步骤1515从新帧中提取特征,并将提取的特征存储在特征列表中。在步骤1520,***从深度传感器请求新帧中的一些像素的深度信息。在步骤1525,***从深度传感器接收新帧中的所请求的像素的深度信息。在步骤1530,***利用从深度传感器接收的信息将深度值的表填充到所请求的像素坐标。在步骤1535,去除没有来自深度传感器的相应读数或不可靠深度信息的特征列表上的特征。在步骤1540,从深度值表中检索特征列表上的剩余特征的深度值。在步骤1545,利用该特征的所有可用像素坐标的深度值为特征列表中的每个剩余特征计算加权平均深度值。在步骤1550,用特征列表上的特征的剩余列表及其对应的深度值填充3D地图。
本部分中描述的方法的其它实施方式可以包括存储指令的非暂时性计算机可读存储介质,所述指令可由处理器执行以执行上述任何方法。本部分中描述的方法的又一个实施方式可以包括包括存储器和一个或多个处理器的***,所述处理器可操作以执行存储在存储器中的指令,以执行上述任何方法。
SIM:智能地图交互和本地化
与地图智能交互(SIM)的处理器1114使得能够通过利用已知地图被引导的设备(即,从单目辅助传感器***接收位置感知信息)进行智能交互,以便自身定位。相应地,与地图智能交互(SIM)的处理器1114的一个实施方式包括:
·根据需要和当前状态执行地图查询。特定实施方式中包含的某些查询组件是地图点(xyz,不确定性,平均重新投影误差等),关键点的(keyrig’s)姿态,2D-3D约束信息和占用网格(一层或多层)。如这里所使用的,术语关键点表示接收的图像数据集。在一些实施方式中,图像数据集包括特征点和姿态信息。姿态信息包括移动设备的位置和捕捉图像数据的相机的视图。这些图像数据集被统称为关键点。
·如果整个地图不是很大,例如满足特定的阈值大小,则返回整个地图。
·否则,如果地图很大(例如,达到或超过特定阈值大小并覆盖大面积,例如空间区域达到或超过特定阈值),则基于设备的当前位置巧妙地抓取地图的局部区域。
·如果地图的某些区域已知质量较差,则不使用它。
·基于***性能根据自适应参数适应性地下采样地图。例如:(i)如果基于3D特征的跟踪过程是准确的,例如,低于阈值数量的错误或调用重定位处理以重新定位丢失其位置的设备,则减小样本大小以节约资源,否则,(ii)如果设备频繁丢失,例如达到或超过阈值,则增加样本大小以提供更好的跟踪。
SDAR:管理本地化状态和响应策略
***诊断和响应(SDAR)处理器1103执行单目辅助传感器的当前定位状态的***级管理并提供响应策略。在一个实施方式中,***诊断和响应处理器1103监视跟踪的地图点和相应的再投影误差,监视未跟踪的地图点的寿命,并且建议动作给地图构建模块,监视设备速度/加速度/抖动/漂移,(例如,它是否定期更新?),执行新的添加地图对整体地图构建的贡献是否足够(即,因此它没有进行无用的悬停?),监视关键点拓扑结构(即伸展足够多还是太多?),建议该设备何时何地应该添加关键点,并监视特征提取流水线。
重新定位丢失的设备
重新***1122恢复已从该状态失去其位置的跟踪的设备。一旦重新***1122将丢失的设备返回正轨,该设备可以恢复和与地图智能交互的处理器1114的正常交互,和/或可以使用以下在此描述的技术来帮助构建地图。
重新定位
图16A图示了一个实施方式中的重新定位过程的示例。因此,重新定位处理1600A的一个实施方式包括:
·在动作1610中,使用情景启发式来选择搜索策略。例如,如果有许多关键点(例如,>50)并且需要快速恢复,然后选择在关键点之间执行最佳匹配(关于字词袋(Bag-of-Words)特征)的搜索策略,并且使用最佳匹配关键点的姿态作为最终结果。在另一个例子中,如果确定***在丢失之前跟踪良好,则选择仅通过本地(例如,最近的x个关键点)关键点进行搜索,以快速恢复。在进一步的示例中,如果***在进一步细化之前需要多个假设,则选择包括使用少数几个最佳匹配(关于字词袋特征)的搜索策略。其他类型的搜索策略可以使用指示搜索策略与一个或多个环境变量(例如,照明变化,由于雾,蒸汽或雾等导致的可见性变化等)或一个或多个状态变量(例如,以前在丢失之前很好地追踪,刚刚执行过以前失败的重新定位尝试等)之间的对应程度。
·在动作1620中,使用所选择的搜索策略来搜索关键点,以便在关键点中找到具有与当前图像的字词袋描述最接近的字词袋描述的关键点。
·在动作1630,确定匹配质量是否足够。这可以通过将阈值应用于匹配指示的质量或通过其他手段来确定。例如,匹配质量指标的范围从0(表示完全差异)变化到1(表示完全匹配)。相应的匹配质量阈值可以是0.85,指示最小通过匹配质量。如果匹配质量足够,则继续执行动作1640。否则,继续执行动作1690以检查是否可以使用替代搜索策略,或者如果可用的适用搜索策略已经用尽,并且继续在替代搜索的动作1610中处理策略或动作1695返回指示重新定位失败的错误条件。
·在动作1640中,将当前图像的特征点与来自在动作1620中选择的关键点的地图构建点相关,产生<2D,3D>点配对。点配对表示2D当前图像与所选关键点的3D地图之间的关系。
·在动作1650中,确定点的数量是否足够。这可以通过将阈值应用于与选定关键点的地图中的3D点具有对应关系的2D图像点的数量来确定。例如,在一个实施方式中,6个或更多点就足够了;而在另一个实施方式中则需要20-30个。如果点数量足够,则继续采取动作1660。否则,继续采取动作1690以检查是否可以采用替代搜索策略,或者如果可用的适用搜索策略已经用尽,并继续在动作1610中采用替代方案搜索策略或在动作1695中返回指示重新定位失败的错误条件。
·在动作1660中,根据最佳匹配的关键点对姿态进行改进,并执行透视n点(Perspective n Point,PnP)或其他姿态评估方法,该方法根据2组二维图像特征计算姿态。尽管可以使用各种PnP实施方式中的任何一种来改进姿态信息,但是已经发现称为solvePnPRansac的一个OpenCV API在示例实施方式中可接受地执行。solvePnPRansac API的进一步描述可以参考“Camera Calibration and 3D Reconstruction”http://docs.opencv.org/master/d9/d0c/group__calib3d.html#gsc.tab=0(上次访问2016年8月22日)。
·在动作1670中,确定改进的姿态是否合理。在一个实施方式中,如果改进的姿态符合标准:(i)改进的姿态在位置和视角上与根据在行动1620中的匹配选定的识别关键点确定的姿态足够类似(例如,在容差内或在阈值以下);(ii)在动作1640中识别的<2D,3D>点对中的3D点的重新投影在2D图像平面上产生新的2D点,其中新2D点与<2D,3D>点配对的原始2D点具有足够类似的坐标(例如,在容差内或在阈值以下),则改进的姿态被认为是合理的。如果定义的姿态是合理的,则继续执行动作1680。否则,继续执行动作1690以检查是否可以采用替代搜索策略,或者如果可用的适用搜索策略已经用尽,并使用可替代搜索策略在动作1610中继续处理、或在动作1695中返回指示重新定位失败的错误条件。
·在动作1680中,开始跟踪改进的姿态。另外,记录整个恢复信息,并且:
o使用改进的姿态信息将机器状态更新为当前姿态
o使设备重新回到轨道上并带有一些不确定性。
图16B示出了一个实施方式中的重新定位搜索策略选择过程的示例。因此,过程1600B的一个实施方式提供了使用情景启发式来选择搜索策略,其包括:
·在动作1615中,确定是否有许多关键点(例如,>N,其中N为正整数)以及是否需要快速恢复。如果是这种情况,则在动作1625中,选择在关键点之间执行最佳匹配(关于字词袋特征)的搜索策略,并且使用匹配最佳的关键点的姿态作为最终结果。
·在动作1635中,确定***在丢失之前是否运行良好。如果是这种情况,则在动作1645中,选择只在本地(例如,最近的X个关键点)关键点中搜索,以便快速恢复。
·在动作1655中,确定***在进一步改进之前是否需要多个假设。如果是这种情况,那么在步骤1665中,选择包括使用少数几个最佳匹配(关于字词袋特征)的搜索策略。
·在动作1675中,如果遇到不符合至少一个启发式规定的标准的情况,则选择默认搜索策略。其他类型的搜索策略可以使用指示搜索策略与一个或多个环境变量(例如,照明变化,由于烟、蒸汽或雾等导致的可见性变化等)或一个或多个状态变量(例如,此前在失踪之前很好地追踪,刚刚执行过失败的重新定位尝试等)。
通过基于3D特征的追踪获得的几何信息被用于构建表示地图中用于引导移动设备的地图中的特征的混合网格。接下来参考图19描绘的示例描述执行该任务的过程。
构建地图
在实施方式中,由基于3D特征的追踪过程所获得的几何信息使用描述性点云表示法来表示。描述性点云是一组稀疏的3D点,其中每个点编码3D几何位置、几何位置的不确定性,以及一组2D位置加上基于外观的描述符,每个描述符都由一个关键点观察。关键点包含(i)时间戳,其中捕获关键点中的图像;(ii)姿态(即,从单目辅助传感器坐标到当前时间的地图坐标的变换)及其不确定性;(iii)从时间戳之前的第一时间点开始到时间戳之后的第二时间点开始的来自辅助传感器的读数序列。一些实施方式还包括用于指定单目辅助传感器是移动还是静止的标志。该标志可以从IMU读数获得的信息中设置。
混合表示
实施方式表示使用混合点网格表示由基于3D特征的地图构建***和可选地有源里程传感器(与地平面平行放置)感知的空间信息。混合点网格表示的一个示例实施方式组合了描述性点云和多层2D占用网格地图。
占用网格地图可以是基本垂直于重力方向定向的平面。每一层都有一个特定的高度。(按照惯例,地板上的层通常为0)。图17图示了一个实施方式中的占用网格地图的示例。图17的占用网格1700指示单目辅助传感器的实施方式所映射的单层,例如底层1702。占用网格1700的白色部分表示空的空间,换句话说,由单目辅助传感器确定为未被占用的空间。例如,当单目辅助传感器能够透过房间门和窗户看到房间墙壁以外的空间未被占用时,这些区域在占据网格1700中被相应地标记。实心黑色部分表示空间是被物体或障碍物占据。灰色部分表示单目辅助传感器尚未确定这些空间是否被占用或是空的。
将描述性点云坐标与基于重力的坐标相关联的3自由度变换。例如,如果地平面的法向矢量(即重力)是已知的,则首先旋转点云以使点云的z轴平行于重力,使用3乘3旋转矩阵R=R_pitch*R_roll。然后,(可选地)通过[0,0.T_z]将点转换,以使z=0位于地平面上。请注意,正常的3乘3旋转矩阵有3个自由度(R_yaw,*R_pitch*R_roll),但在这种情况下只有2个。正常的3乘1转换有3个自由度([t_x,t_y,t_z]),但这里只有1个。
为特征表示创建点云
实施方式通过参照标准添加关键点,根据基于3D特征的跟踪结果递增地创建描述性点云,例如在以下示例中。在包含特征点和姿态信息的图像数据集中接收基于3D特征的追踪结果。姿态信息包括移动设备的位置和捕捉图像数据的相机的视角。这些集统称为关键点。因此,实施方式通过使用一个或多个标准选择关键点来构建描述性点云,例如以下示例:
·第一个图像帧被选为关键点,并且该时间戳处的设备坐标系成为描述性点云的坐标。这建立了一个参照系。
·最新的关键点的时间戳在时间阈值(通常为2秒)内小于当前时间戳。
·当前跟踪的姿态与最新的关键点的位置之间的距离大于阈值(例如,x米)。
·当前跟踪姿态与最新的关键点指向角之间的距离大于阈值(例如y度)
·当前图像包含一定比例的未包含在当前描述性点云中的特征。
·设备目前是静态的。这个信息可以从辅助传感器获得。
如果正在考虑添加的关键点包含当前描述性点云中未包括的特征,则在此时间戳处根据从设备捕获的图像对新特征进行三角测量以获得设备坐标系中的点。通过将设备坐标系中的点转换为地图的坐标系,将新点添加到地图中。值得注意的是,一些实施方式包括以下中的一个或多个:(i)对来自当前/相同关键点(例如,左和右相机之间)的跨图像新特征点进行三角化,(ii)对来自两个不同关键点的跨图像新特征点进行三角化,两个不同的关键点不一定是顺序的(例如,从关键点1的左侧相机到从关键点10的左侧相机),以及(iii)对基于标准所选择的关键点中的图像中的新的特征点进行三角化(例如,智能选择“最佳”关键点)。转换是使用基于特征的跟踪或其他方法确定的。
改进点云
在一个实施方式中,来自基于3D特征跟踪的描述性点云被改进,通过获得“最佳”的(i)每个关键点的姿态和(ii)所有点的3D位置,使得投影到其观察到的关键点的所有点的重新投影误差的加权和最小化,以及(iii)可选地,来自具有静态标志的关键点的加速度计读数必须为[0,0,1],以迫使地图坐标的z轴更接近重力方向,同时满足以下约束(如果适用):姿态沿平面移动(如果设备以平面运动安装在交通工具上)。
在一个实施方式中,通过以下处理利用有限的计算资源来执行从基于3D特征的跟踪来改进描述性点云:
·从整套关键点中随机抽取N个关键点。
·通过最小化(i)投影到其观察关键点的所有点的重新投影误差的加权和,精确地改进在这些关键点中观察到的关键点样本集的姿态和3D点,并且(ii)可选地,来自具有静态标志的关键点的加速度计读数必须为[0,0,1]以迫使图坐标的z轴更接近重力方向,同时满足以下约束(如果适用):姿态沿平面移动(如果该设备以平面运动安装在交通工具上)。
·重复采样并最小化,除了修复从之前迭代中已经优化过的3D点和姿态。
·迭代,直到关键点和点的期望的百分比达到最优。
创建混合点网格
在一个实施方式中,使用以下处理从描述性点云创建初始混合点网格表示:
·将描述性点云从其原始坐标系转换为z轴沿重力方向的坐标系。这种转换具有2个自由度(旋转)。
·为覆盖描述性点云中x-y点的层初始化2D占用网格图。
·使用射线追踪过程,占据网格地图的每一层都由高度范围内的点(在描述性点云中)填满。
改进混合点网格
在一个实施方式中,用来自有源传感器的信息来改进混合点网格表示,采用以下过程:
·从地图坐标系中设备的轨迹中获取每个有源传感器信号捕获位置的姿态(从设备坐标转换到地图坐标)。
·使用射线追踪过程更新2D占用网格图。在一个实施方式中,从更新的描述性点云的改进混合点网格表示,采用以下过程:
·将描述性点云坐标系转换为基于重力的坐标系。
·使用射线追踪过程来确定要从描述性点云中的每个点更新哪些单元格。
估计被导向的设备的轨迹
在一个实施方式中,使用以下处理来估计描述性点云中的两个连续的关键点(即,从关键点k到关键点k+1)之间的设备的离线轨迹:
·初始化创建关键点k的图像帧,使其处于存储在描述性点云中的姿态。
·使用本文描述的标题为“跟踪”的部分中的“基于3D特征的跟踪过程”来跟踪两个关键点之间的图像帧。每个图像帧具有6个自由度姿态,以及一组3D地图点到2D图像观察位置的对应关系。
·迫使创建关键点k+1的图像帧处于被存储在描述性点云中的姿态。
·通过最小化所有观察位置的重新投影误差总和来优化所有姿态。重新投影误差是相机坐标系中的重新投影点与原点之间的误差。图18示出重新投影1800的例子。在图18中,相机1802的参考系中的一些点用于对世界坐标系中的一个或多个新3D点P 1804进行三角化。由于相机1802的校准误差,点P 1804的空间位置将不是完全准确的。重新投影误差1806可以根据重新投影到相机1802的坐标中的结果3D点P 1804(使用相机的校准数据)来确定,从而获得原始投影p 1810附近的新点1808。重新投影误差1806是原点p1810与重新投影点/>1808之间的直线距离。
估计描述性点云和基于重力的帧的变换
在一个实施方式中,使用以下任何方法估计描述性点云到z轴沿重力方向的坐标之间的2自由度坐标变换:
·在辅助传感器静止时由辅助传感器测量重力方向,并找到将重力方向转换为[0,0,1]的旋转矩阵。
·从描述性点云到地平面上至少获得3个点,以估计原始坐标中地平面的法线。找到一个旋转矩阵,将地平面的法线转换为[0,0,1]或[0,0,-1]。
·通过在地面放置已知的平面图案来确定旋转矩阵,离线校准单目辅助传感器与地面之间的关系。
机器人实施方式
图19示出了使用本文描述的图像和辅助传感器信息技术的机器人引导的示例模型。受益于采用如本文所述的位置感知技术的机器人应用的示例包括:
·看护者和服务机器人(在地面行走)
·吸尘/拖地/清洁地板的机器人。
·被命令在环境中携带物体的机器人。
·远程呈现机器人自动在远程环境中移动。
·跟随人员的机器人管家。
在上面列出的每个场景中,机器人利用本文公开的技术来跟踪其自己的位置并识别它遇到的物体。此外,由于机器人执行许多复杂的任务,每个任务都有实时限制,因此快速完成感测以加速感知流水线是有益的。在实施方式中,这可以通过将一些计算从主处理器卸载到单目辅助传感器来实现。另外,由于它是一种移动机器人,它携带的电池容量有限,所以能耗是一个设计要点。在实施方式中,一些计算任务从主处理器卸载到单目辅助传感器以降低功耗,由此使得实施方式能够实现整体能量效率。成本是移动机器人的一个问题,因为降低机器人的成本使得机器人能够为更多的客户提供经济实惠。因此成本可能是传感器和引导***设计的另一个因素。在实施方式中,一个低成本灰度传感器用于定位任务,一个彩色传感器用于识别任务。这一设计点使这些实现能够在不牺牲性能的情况下显著降低立体彩色传感器设计的成本。
在图19中,房间1900的墙壁、角落和门1923以及服务机器人1925在房间1900的地板上的行程反映在混合点网格中,其由描述性点云1945和占用网格1955组成,由单目-辅助传感器使用上述地图构建部分中描述的技术。占用网格1955是混合点网格的一部分,其是地图构建部分中描述的多层2D占用网格地图的层。为了构建未知(新暴露的)环境的地图,配备有单目辅助传感器的机器人1925使用上文在跟踪部分中描述的技术跟踪其姿态,同时使用上文所述的技术递增地构建初始描述性点云在构建地图部分。然后,机器人1925使用上文在构建地图部分中描述的技术来建立占用网格1955以从初始描述性点云1945完成混合点网格。
从辅助传感器获取实时图像和信息
为了跟踪其位置,机器人通过单目辅助传感器感测其自身的移动。单目辅助传感器从辅助传感器生成可靠数据,以便跟踪可以准确地推断出机器人的位置的流水线并为其构建地图。图19示出了可以体现一种实施方式的示例机器人引导应用。如图19所示,机器人1925实现单目辅助传感器,以在房间1900内自我定位。图19中的机器人1925使用单目辅助传感器的相机602以捕获房间1900的周围环境的图像帧。根据以上在传感器可视数据产生和处理部分下所公开的技术处理图像,如下:
检测并描述捕获图像中的特征
单目辅助传感器根据捕获的图像帧中的信息确定房间1900的墙壁、角落和门1923的特征点1901、1911、1941、1951、1922等。在一些实施方式中,采用Shi-Tomasi特征检测来从图像帧确定特征点1901、1911、1941、1951、1922。使用ORB特征描述为特征分配描述符。光流技术被用于确定图像中的2D对应关系,使得能够将不同图像中的特征匹配在一起。
将特征描述符映射(map)到混合点网格
配备有单目辅助传感器的机器人1925可以在房间1900中建立障碍物的描述性点云1945,使得机器人1925能够环绕障碍物并且在房间1900内自我定位。单目辅助传感器创建、更新并改进描述性点云1945使用在上文中公开的技术在构建地图部分下使用针对由点1901、1911、1941、1951、1922指示的房间特征确定的特征描述符。如图19中示意性所示,描述性点云1945包括对应于房间1900的特征点1901、1911、1941、1951、1922的坐标和特征描述符。单目辅助传感器通过重新投影特征点1901、1911、1941、1951、1995、1922到与房间1900的地板对应的2D层上,来准备占用图1955。在一些实施方式中,在机器人1925的不同高度处产生第二个并且可能更大的占用地图,使得机器人1925能够在房间1900周围导航而不会将其头部撞到门下面或地板上方的其他障碍物。
现在重新参考图17,其示出了占用网格1700的示例,白色部分指示空白空间,换句话说,由单目辅助传感器确定为未被占用的空间。黑色实心部分表示物体或障碍物占据的空间。灰色部分表示机器人1925的单目辅助传感器尚未确定这些空间是否被占用或空的空间。
描述性点云1945和占用网格1955包括混合点网格,其使得机器人1925能够使用占据网格1955来规划穿过房间1900的路径,并且使用描述性点云1945相对于房间1900中的特征自定位。
使用占用网格和路径规划
当机器人在先前映射的环境中被激活时,机器人使用上文在跟踪部分中描述的技术来在描述性点云1945中自我定位。描述性点云1945和占据网格1955包括混合点网格表示,其对于使用无源传感器来实现机器人动作(即,在地板上移动)是关键的,因为机器人使用占用网格1955,以便使用上文在映射部分所述的技术将轨迹1956从其当前位置规划到地图中的另一个位置。人或实体也可以命令机器人去到占用网格1955中的特定点。在行进期间,机器人使用描述性点云1945以如上文在跟踪部分中所描述的地图内定位自身。机器人可以使用上述构建地图部分中描述的技术来更新地图。此外,配备有源传感器(例如声纳,LIDAR)的一些实施方式也可以使用来自这些传感器的信息来更新地图。
过程
图20是使用来自具有距离计算的相机和辅助传感器的信息引导移动设备的代表性方法2000。流程图2000可以至少部分地用计算机或其他数据处理***来实现,例如通过被配置成接收或检索信息、处理信息、存储结果和传输结果的一个或多个处理器。其他实施方式可以以不同的次序执行动作和/或以不同于图20中所示的那些动作的更少或更多的动作来执行动作。在一些实施方式中可以组合多个动作。为了方便起见,参考执行方法的***来描述该流程图。该***不一定是该方法的一部分。
所公开的技术的该部分和其他部分中描述的方法可以包括结合所公开的附加方法描述的以下特征和/或特征中的一个或多个。为了简洁起见,在本申请中公开的特征的组合未被单独枚举,并且不针对每个基本特征集重复。读者将会理解这种方法中识别出的特征如何能够很容易地与识别为诸如***概述、跟踪、地图构建、机器人实现、VR/AR实现等实施方式的基本特征集相结合。
图20包括从动作2010开始的过程2000,其中来自视觉传感器的图像集被缓冲。在一些实施方式中,从视觉传感器接收图像集。视觉传感器设置在移动平台上,例如机器人,自主车辆或其他自主或引导的移动平台。
过程2000在动作2020继续,其中来自辅助传感器的测量被缓冲。辅助传感器可以与视觉传感器配置在一起,或者可以与其分开地设置。
在动作2030中,在控制单元处接收图像数据集。在深度传感器被用作辅助传感器的实施例中,深度图也在控制单元处被接收。
在动作2040中,来自辅助传感器的传感器数据集在控制单元处被接收。
在动作2050中,处理来自辅助传感器的传感器数据集,以估计定位数据。来自多轴IMU的惯性数据进行时间戳,对偏差进行校正,使用存储的比例因子对校正的惯性数据进行缩放,然后对IMU中的未对准进行校正以形成定位数据。来自WOU的里程数据具有时间戳,针对滑移进行调整,然后使用存储的比例因子对校正后的里程进行缩放以形成定位数据。
在动作2050中,对这些图像数据集执行成像失真校正。
在动作2060中,跨越通信接口向控制移动平台的主机提供定位数据和未失真的图像数据集。
本部分中描述的方法的其他实施方式可以包括存储可由处理器执行以执行上述任何方法的指令的非暂时性计算机可读存储介质。本部分中描述的方法的又一个实施方式可以包括包括存储器和可操作以执行存储在存储器中的指令以执行上述任何方法的一个或多个处理器的***。
图21是使用混合点网格来引导包括具有距离计算的相机和一个或多个辅助传感器的移动设备的代表性方法2100。流程图2100可以至少部分地用计算机或其他数据处理***来实现,例如通过配置成接收或检索信息、处理信息、存储结果和传输结果的一个或多个处理器。其他实施方式可以以不同的次序执行动作和/或以不同于图21中所示的那些动作的更少或更多的动作来执行动作。在一些实施方式中可以组合多个动作。为了方便起见,参考执行方法的***来描述该流程图。该***不一定是该方法的一部分。
所公开的技术的该部分和其他部分中描述的方法可以包括结合所公开的附加方法描述的以下特征和/或特征中的一个或多个。为了简洁起见,在本申请中公开的特征的组合未被单独枚举,并且不针对每个基本特征集重复。读者将会理解这种方法中识别出的特征如何能够很容易地与识别为诸如***概述、跟踪、地图构建、机器人实现、VR/AR实现等实施方式的基本特征集相结合。
图21包括从动作2110开始的过程2100,其中图像数据集被接收。在一些实施方式中,图像数据集包括特征点和姿态信息。姿态信息包括移动设备的定位和获取图像数据的相机的视野。这些图像数据集被统称为关键点。
过程2100在动作2120处继续,其中基于关键点内容与经受一个或多个智能阈值的其他所选关键点的内容的比较,审查关键点以选择关键点内容以包括在特征点云中。如本文所使用的,智能阈值包括基于设备移动、传感器读数、情景或环境变量(例如,低光,雾,亮光等)或其组合而适应性地调整的阈值。
在动作2130中,对于选定的关键点,(a)使用先前添加到特征点云中的关键点的特征点来对关键点中的新特征点进行三角化,以获得设备的坐标系中的特征点,以及(b)特征点云中的特征点坐标与具有与重力对齐的z轴的坐标系对齐。
在动作2140中,根据为特征点云选择的特征点创建多层混合点网格,使用多层2D占用网格的至少一个层通过以下步骤:
在动作2150中,初始化与从覆盖特征点云中的特征点的多个x-y层中选择的一个相对应的2D占用网格。
在动作2160中,利用从对齐的关键点中的点的观察位置到占用中的对应点的射线追踪,利用来自高度范围内的特征点云的点填充占用网格的至少一个层网格和重新投影在占用网格层上的对应点的位置。
在动作2170中,找到沿着对齐的观察点和在层上重新投影的对应点之间的射线的单元格,并将找到的单元格标记为空。
在动作2180中,响应于接收到行进到位置的命令,占用网格用于规划到命令的位置的行进路径,并且同时在描述性点云在行进计划路径时被使用以避免与障碍物碰撞。
本部分中描述的方法的其他实施方式可以包括存储指令的非暂时性计算机可读存储介质,所述指令可由处理器执行以执行上述任何方法。本部分中描述的方法的又一个实现可以包括包括存储器和可操作以执行存储在存储器中的指令以执行上述任何方法的一个或多个处理器的***。
结论和其他实施方式
我们描述了用于使用来自一个或多个相机和一个或多个辅助传感器的信息来引导移动设备的***和各种实施方式,例如,多轴惯性测量单元(IMU),轮里程测量单元(WOU),深度传感器等。
在下面的讨论中描述了一些特定的实施方式和特征。
在一个实施方式中,描述了一种使用来自具有一个或多个辅助传感器的一个或多个相机的信息来引导移动设备的装置。该装置可以包括接收以帧形式的图像信息的数字信号处理器(DSP)。在一个实施方式中,图像至少3兆字节(3MB),其经由输入/输出(I/O)接口以至少30帧每秒(FPS)的速率从相机到达并且从图像信息中提取特征;特征缓冲区,其至少包括以包含从图像信息提取的特征的第一组和第二组;缓冲区控制器,所述缓冲区控制器向用户过程触发通知:所述特征在所述特征缓冲区的所述第一组和所述第二组中的至少一个组中可用;一旦第一组被填满,锁定第一组从DSP进一步接收特征的能力,同时来自第一组的特征被用户过程使用;以及执行用户过程的一个或多个处理核心,包括构建地图作为被引导的交通工具析像(explore)的地图构建过程以及将特征与地图进行比较的更新过程,并且向被引导的交通工具提供地图构建过程和更新过程中的一个或多个过程的输出。在一些实施方式中,传入图像大小至少为2MB。在一些实施方式中,传入图像大小至少为1MB。在一些实施方式中,图像可以通过相机串行接口(CSI)I/O端口以每秒20个图像的速率到达。
在一些实施方式中,缓冲区控制器包括寄存器以存储当前填满的组的存储器组标识符,并且一旦组被填满,存储器组标识符被写入寄存器,并且缓冲区控制器中断处理器;从而通知更新过程和地图构建过程中的至少一个存在传入的新特征。
在一些实施方式中,该设备还包括在DSP正在写入另一个组的同时清除与当前填满的组相对应的组标识符的能力。
在一些实施方式中,数字信号处理器、特征缓冲区,缓冲区控制器以及一个或多个处理核心包含在单个芯片上。
在一些实施方式中,特征缓冲区包括组以包含每个图像帧2-5KB的特征数据。在一些实施方式中,特征缓冲区包括包含每个图像帧1-10KB特征数据的组。
在一些实施方式中,所述设备还包括到惯性测量单元(IMU)的接口,来自陀螺仪传感器\加速度计中的至少一个的编码信息;并且其中传播过程使用来自IMU的信息以准备包括相机的位置和视角(包括取景方向)的结果(统称为姿态),并将结果发送到更新过程。
在一些实施方式中,该装置还包括到编码里程信息的传感器的接口;并且其中传播过程使用里程信息以准备包括相机的位置和视角(包括取景方向)的结果(统称为姿态),并将结果发送到更新过程。
在一些实施方式中,所述设备还包括到传感器的接口,所述传感器对由相机感测的至少一些像素的深度信息进行编码;并且其中传播过程使用所述深度信息以准备包括相机的位置和视角(包括取景方向)的结果(统称为姿态),并将结果发送到更新过程。
还公开了一种实施方式,其包括引导移动单元的方法,该移动单元包括和至少一个辅助传感器,该视觉传感器具有至少一个可操作的相机。辅助传感器可以从多轴IMU、轮里程传感器、深度传感器等中选择。该方法还包括接收移动单元的位置和相机的视角(包括取景方向),统称为初始姿态;从辅助传感器接收指示行进Pl的信息,包括移动单元的运动的转动部分和平移部分;在连续相机帧之间等待新帧的同时,使用来自辅助传感器的信息更新初始姿态以生成传播姿态;从新帧中提取新特征;基于(1)来自先前帧的匹配特征的重用和(2)所述新帧中的特征与从3D地图到以传播姿态的视角观察的2D视图的重新投影的特征位置的匹配,将提取的新特征与检索的特征点匹配,以产生匹配特征的列表;使用来自所述辅助传感器的信息的平移部分的信息和所述匹配特征的列表中的匹配特征的位置的平移部分来确定比例因子,其中匹配特征的位置的平移部分描述了从其中新帧由相机观察的视角相对于由相机观察的前一帧的差异;使用被应用于匹配特征的位置的至少一量值的平移部分的比例因子来计算校正姿态Pm以确定校正姿态;并且基于传播姿态和校正姿态中的一个或两个提供引导信息。在一些实施方式中,该方法在包括处理器和存储指令的计算机可读存储单元的***中实现。在一些实施方式中,该方法在包括用于存储指令的非暂时性计算机可读介质的***中实现。
在一些实施方式中,辅助传感器包括轮里程传感器,该方法还包括检测至少一个相机正在经历受损的可见性的能力,并且每当至少一个相机正在经历受损的可见性时,使用来自轮里程传感器的信息来确定每当图像信息不可用时的校正姿态。
在一些实施方式中,该方法进一步包括检测至少一个相机正在经历受损的可见性,并且每当至少一个相机经历受损的可见性时,使用来自辅助传感器的信息和先前图像来确定每当图像信息不可用时的校正姿态。
在一些实施方式中,受损的可见性包括相机使用的光谱区域中的减弱的光。
在一些实施方式中,受损的可见性包括相机被阻挡。
在一些实施方式中,辅助传感器包括IMU以通过对线性加速度和角速度中的至少一个进行积分来确定指示行进到Pl的信息,该信息包括来自IMU信息的移动单元的运动的转动部分和平移部分。
在一些实施方式中,辅助传感器包括轮里程传感器,以确定指示到Pl的行进的信息,所述信息包括移动单元的运动的转动部分和平移部分、从连接到轮的旋转编码器的里程信息、轮的周长与旋转编码器的分辨率之比。
在一些实施方式中,该方法进一步包括使用以下标准检查新帧,该标准包括:可用质量的2D特征点的计数是否满足阈值;传播姿态与新图像的配对与当前姿态与现有图像的配对之间的三角化地图点的计数是否满足阈值;并包括符合阈值的新帧。
在一些实施方式中,移动单元包括至少两个辅助传感器,包括第一辅助传感器和第二辅助传感器,第一辅助传感器包括多轴IMU和第二辅助传感器,该第二辅助传感器选自(轮里程传感器和深度传感器)。在连续相机帧之间等待新帧的同时,移动单元使用来自IMU的信息来更新初始姿态,以生成第一传播姿态;从新帧中提取新特征;确定第二传播姿态,使用来自轮里程表的信息更新初始姿态;确定第一传播姿态和第二传播姿态之间的误差;使第一和第二传播姿态的平移部分的误差以及第一和第二传播姿态的转动部分的误差最小化以找到校正姿态;并使用校正后的姿态来引导机器人。
在一些实施方式中,最小化包括:接收第一传播姿态和第二传播姿态的具有第一误差的初始平移部分和转动部分;确定第一传播姿态和第二传播姿态的具有第二误差的新的平移部分和转动部分;基于将所述第二误差与所述第一误差进行比较,从所述新的平移部分和转动部分以及所述初始平移部分和转动部分中选择一个,作为所述第一传播姿态和所述第二传播姿态的新的初始平移部分和转动部分;以及迭代地重复所述确定和选择,直到用于第一传播姿态和第二传播姿态的平移部分和转动部分达到最小误差标准。
还公开了一种实施方式,其包括引导包括具有至少一个操作相机和深度传感器的视觉传感器的移动单元的方法。该方法包括:从设置在用以感测相机视野内的特征的深度信息的位置处的深度传感器接收深度信息;将深度值表填充到像素坐标以将深度传感器校准到相机;从图像中去除没有来自深度传感器的对应读数的二维特征;使用深度值表,检索剩余二维特征的对应深度值;获得每个剩余二维特征的加权平均深度值;并使用加权平均深度值填充具有剩余二维特征的3D地图;从而提供用于引导移动单元的3D地图。
在一些实施方式中,该方法还包括对照3D地图追踪移动单元。
在一些实施方式中,该方法进一步包括通过执行IMU传播来添加额外的姿态以获得最近将被添加的姿态和适当选择的先前姿态之间的基线;并使用来自深度传感器的深度信息来校正三角化地图点的深度信息。
在一些实施方式中,该方法还包括使用深度信息来确定未被三角化的2D特征点的额外3D地图点。
其他实施方式包括包括执行***的动作的方法,存储实施这些方法的程序逻辑的非暂时性机器可读存储介质,其取代物和组分,以及包含前述任一种或其组合的装置。
在IMU被用作辅助传感器的一些实施方式中,运动传感器保持来自IMU的加速计的读数的窗口。运动传感器计算加速器读数窗口中加速度的方差,并基于计算的方差确定移动单元是移动还是静止。大于预定阈值方差的方差指示移动单元正在移动,并且通过使用EKF方法来执行传播。小于预定阈值方差的方差指示移动单元是静态的并且通过使用假定为零速度的EKF方法来执行传播。预定的阈值变化可以通过本领域技术人员显而易见的各种技术来估计。
在IMU被用作辅助传感器的一些实施方式中,由于移动单元的快速移动而捕获的模糊图像,来自具有一个操作相机的移动单元中的相机的图像更新可能失败,周围环境,相机的视点被物体阻挡等。而且,在两次成功的图像更新之间可能有相当数量的IMU传播。在一定数量的连续图像更新失败之后,通过在IMU的陀螺仪读数上使用EKF方法来执行传播。基于IMU的陀螺仪读数的传播通过假设移动单元正在旋转来预测传播的姿态。
在一些实施方式中,通过在跟踪过程期间保持图像帧的窗口,跟踪可以是完全无效的。2D-2D特征匹配对应由图像帧的窗口中的两个连续图像帧维持。在任何时候,可以通过对2D特征进行三角化来重建小型局部地图。
在一些实施方式中,可以通过组合角部特征检测和光流来执行从两个连续图像帧匹配的2D特征。给定在时间t-1在第一图像中检测到的一组2D特征,通过使用光流估计在时间t处的第二图像中的每个2D特征的位置。如果通过第二图像中的光流检测到的2D特征的数量小于第二图像中的2D特征的数量,2D角落特征可以通过使用相邻像素的Eigen值或通过在空间上组合第二图像来检测。2D特征可以在时间t-1拍摄的第一图像和在时间t拍摄的第二图像之间在时间上匹配,即通过光流匹配2D特征或者在具有类似描述的连续时帧中建立2D特征之间的链接并且位置接近度(即,在20个像素内)。
在一些实施方式中,如果存在多于一个的操作相机,则2D特征可以通过链接在空间上进行匹配。链接是来自具有不同空间视点的不同相机的2D特征集。通过收集与任何现有链接不匹配的2D特征集(即,从时间匹配中省略的特征),收集可用于连接的一组链路,2D特征可以在空间上对于每个相机与现有链路匹配到本相机的功能,并计算每个可用特征与每个可用链接之间的相似度。特征与链接之间的相似度是该特征的描述符与链接中的特征的描述符之间的最佳相似度分数。如果相似度分数超过阈值,则将2D特征与链接进行匹配。如果相似度分数小于阈值,请检查2D功能与其他可用链接的相似度分数。可以通过收集与任何现有链接不匹配的特征集(即,从时间匹配和空间匹配到现有链接中省略的特征),收集可用于连接的一组链接来创建新链接来自当前相机的特征(当前时间不包含该相机的特征时可用链接),并计算每个特征与每个可用链接之间的相似度。如果相似度分数超过阈值,请将可用的2D功能添加到可用链接。可以通过收集一组不匹配任何现有链接的功能,并计算一对来自不同的2D功能之间的相似性,在一台或更多台相机上创建新的链接。
这里使用的术语和表达被用作描述的术语和表达而不是限制,并且在使用这样的术语和表达时,不打算排除所示出和描述的特征的任何等同物或其部分。另外,已经描述了所公开的技术的某些实施方式,对于本领域的普通技术人员来说显而易见的是,可以使用并入在此公开的概念的其它实施方式而不脱离所公开的技术的精神和范围。因此,所描述的实施方式在所有方面都被认为仅是说明性的而非限制性的。
Claims (8)
1.一种用于引导移动设备的装置,所述装置包括:
数字信号处理器(DSP),用以经由输入/输出(I/O)接口以至少30帧每秒(FPS)的速率从相机接收至少3兆字节(3MB)的图像信息的帧,并从所述图像信息中提取特征;
特征缓冲区,包括用以容纳从所述图像信息中提取的特征的至少第一组和第二组;
缓冲区控制器,用以向用户过程触发该特征在所述特征缓冲区的所述第一组和所述第二组中的至少一个组中可用的通知;其中一旦所述第一组被填满,则所述第一组针对来自所述数字信号处理器的更多特征被锁定,而来自所述第一组的特征被所述用户过程使用;以及
一个或多个处理核心,用于执行所述用户过程,包括构建由被引导的交通工具析像的地图的地图构建过程、和将特征与所述地图进行比较的更新过程,并且向被引导的交通工具提供所述地图构建过程和所述更新过程中的一个或多个过程的输出。
2.根据权利要求1所述的装置,其中所述缓冲区控制器包括寄存器,以存储当前被填满的组的存储器组标识符;并且其中一旦组被填满,存储器组标识符被写入所述寄存器并且所述缓冲区控制器中断处理器;从而通知更新过程和地图构建过程中的至少一个过程存在传入的新特征。
3.根据权利要求2所述的装置,还包括在所述数字信号处理器正在写入另一个组时清除与当前填满的组相对应的所述存储器组标识符。
4.根据权利要求1所述的装置,其中所述数字信号处理器、所述特征缓冲区、所述缓冲区控制器以及所述一个或多个处理核心被实施在单个芯片上。
5.根据权利要求1所述的装置,其中所述特征缓冲区包括容纳每个图像帧2-5KB的特征数据的组。
6.根据权利要求1所述的装置,还包括到惯性测量单元(IMU)的接口;来自陀螺仪传感器、加速度计中的至少一个的编码信息;并且其中传播过程使用来自所述惯性测量单元的信息,以准备包括所述相机的位置和视角的结果,并将所述结果发送到所述更新过程,所述视角包括取景方向,所述相机的位置和视角统称为姿态。
7.根据权利要求1所述的装置,还包括到编码里程信息的传感器的接口;并且其中传播过程使用所述里程信息以准备包括所述相机的视角和位置的结果,并将所述结果发送到所述更新过程,所述视角包括取景方向,所述相机的视角和位置统称为姿态。
8.根据权利要求1所述的装置,还包括对由照相机感测的至少一些像素的深度信息进行编码的传感器的接口;并且其中传播过程使用所述深度信息以准备包括所述相机的视角和位置的结果,并将所述结果发送到所述更新过程,所述视角包括取景方向,所述相机的视角和位置统称为姿态。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/623,106 | 2017-06-14 | ||
US15/623,106 US10444761B2 (en) | 2017-06-14 | 2017-06-14 | Monocular modes for autonomous platform guidance systems with auxiliary sensors |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109084746A CN109084746A (zh) | 2018-12-25 |
CN109084746B true CN109084746B (zh) | 2023-07-18 |
Family
ID=64657298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810616266.7A Active CN109084746B (zh) | 2017-06-14 | 2018-06-14 | 用于具有辅助传感器的自主平台引导***的单目模式 |
Country Status (2)
Country | Link |
---|---|
US (4) | US10444761B2 (zh) |
CN (1) | CN109084746B (zh) |
Families Citing this family (94)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6782433B2 (ja) * | 2017-03-22 | 2020-11-11 | パナソニックIpマネジメント株式会社 | 画像認識装置 |
US10683034B2 (en) * | 2017-06-06 | 2020-06-16 | Ford Global Technologies, Llc | Vehicle remote parking systems and methods |
US10775781B2 (en) | 2017-06-16 | 2020-09-15 | Ford Global Technologies, Llc | Interface verification for vehicle remote park-assist |
US10585430B2 (en) | 2017-06-16 | 2020-03-10 | Ford Global Technologies, Llc | Remote park-assist authentication for vehicles |
US10496104B1 (en) * | 2017-07-05 | 2019-12-03 | Perceptin Shenzhen Limited | Positional awareness with quadocular sensor in autonomous platforms |
JP6897376B2 (ja) * | 2017-07-11 | 2021-06-30 | トヨタ自動車株式会社 | 移動計画装置、移動ロボット、および移動計画プログラム |
US11175148B2 (en) * | 2017-09-28 | 2021-11-16 | Baidu Usa Llc | Systems and methods to accommodate state transitions in mapping |
US10580304B2 (en) | 2017-10-02 | 2020-03-03 | Ford Global Technologies, Llc | Accelerometer-based external sound monitoring for voice controlled autonomous parking |
US10627811B2 (en) | 2017-11-07 | 2020-04-21 | Ford Global Technologies, Llc | Audio alerts for remote park-assist tethering |
US10578676B2 (en) | 2017-11-28 | 2020-03-03 | Ford Global Technologies, Llc | Vehicle monitoring of mobile device state-of-charge |
US10901430B2 (en) * | 2017-11-30 | 2021-01-26 | International Business Machines Corporation | Autonomous robotic avatars |
US10754318B2 (en) | 2017-12-21 | 2020-08-25 | X Development Llc | Robot interaction with objects based on semantic information associated with embedding spaces |
US10814864B2 (en) | 2018-01-02 | 2020-10-27 | Ford Global Technologies, Llc | Mobile device tethering for a remote parking assist system of a vehicle |
US10974717B2 (en) | 2018-01-02 | 2021-04-13 | Ford Global Technologies, I.LC | Mobile device tethering for a remote parking assist system of a vehicle |
US10737690B2 (en) | 2018-01-02 | 2020-08-11 | Ford Global Technologies, Llc | Mobile device tethering for a remote parking assist system of a vehicle |
US10583830B2 (en) | 2018-01-02 | 2020-03-10 | Ford Global Technologies, Llc | Mobile device tethering for a remote parking assist system of a vehicle |
US10585431B2 (en) | 2018-01-02 | 2020-03-10 | Ford Global Technologies, Llc | Mobile device tethering for a remote parking assist system of a vehicle |
US10688918B2 (en) | 2018-01-02 | 2020-06-23 | Ford Global Technologies, Llc | Mobile device tethering for a remote parking assist system of a vehicle |
US11148661B2 (en) | 2018-01-02 | 2021-10-19 | Ford Global Technologies, Llc | Mobile device tethering for a remote parking assist system of a vehicle |
US10684773B2 (en) | 2018-01-03 | 2020-06-16 | Ford Global Technologies, Llc | Mobile device interface for trailer backup-assist |
US11097418B2 (en) * | 2018-01-04 | 2021-08-24 | X Development Llc | Grasping of an object by a robot based on grasp strategy determined using machine learning model(s) |
US10747218B2 (en) | 2018-01-12 | 2020-08-18 | Ford Global Technologies, Llc | Mobile device tethering for remote parking assist |
US10917748B2 (en) | 2018-01-25 | 2021-02-09 | Ford Global Technologies, Llc | Mobile device tethering for vehicle systems based on variable time-of-flight and dead reckoning |
US11016491B1 (en) * | 2018-01-26 | 2021-05-25 | X Development Llc | Trajectory planning for mobile robots |
US10684627B2 (en) | 2018-02-06 | 2020-06-16 | Ford Global Technologies, Llc | Accelerometer-based external sound monitoring for position aware autonomous parking |
US10922590B2 (en) * | 2018-02-09 | 2021-02-16 | Stmicroelectronics (Research & Development) Limited | Apparatus, method and computer program for performing object recognition |
US11188070B2 (en) | 2018-02-19 | 2021-11-30 | Ford Global Technologies, Llc | Mitigating key fob unavailability for remote parking assist systems |
US10507868B2 (en) | 2018-02-22 | 2019-12-17 | Ford Global Technologies, Llc | Tire pressure monitoring for vehicle park-assist |
US10732622B2 (en) | 2018-04-05 | 2020-08-04 | Ford Global Technologies, Llc | Advanced user interaction features for remote park assist |
US10683004B2 (en) | 2018-04-09 | 2020-06-16 | Ford Global Technologies, Llc | Input signal management for vehicle park-assist |
US10493981B2 (en) | 2018-04-09 | 2019-12-03 | Ford Global Technologies, Llc | Input signal management for vehicle park-assist |
US10759417B2 (en) | 2018-04-09 | 2020-09-01 | Ford Global Technologies, Llc | Input signal management for vehicle park-assist |
US10793144B2 (en) | 2018-04-09 | 2020-10-06 | Ford Global Technologies, Llc | Vehicle remote park-assist communication counters |
US10759051B2 (en) * | 2018-04-23 | 2020-09-01 | General Electric Company | Architecture and methods for robotic mobile manipulation system |
US11216007B2 (en) * | 2018-07-16 | 2022-01-04 | Phantom Auto Inc. | Normalization of intelligent transport system handling characteristics |
CN109049006B (zh) * | 2018-08-22 | 2020-03-17 | 深圳市云鼠科技开发有限公司 | 一种扫地机器人的防碰撞检测方法 |
US10384605B1 (en) | 2018-09-04 | 2019-08-20 | Ford Global Technologies, Llc | Methods and apparatus to facilitate pedestrian detection during remote-controlled maneuvers |
US10821972B2 (en) | 2018-09-13 | 2020-11-03 | Ford Global Technologies, Llc | Vehicle remote parking assist systems and methods |
US10717432B2 (en) | 2018-09-13 | 2020-07-21 | Ford Global Technologies, Llc | Park-assist based on vehicle door open positions |
US10529233B1 (en) | 2018-09-24 | 2020-01-07 | Ford Global Technologies Llc | Vehicle and method for detecting a parking space via a drone |
US10967851B2 (en) | 2018-09-24 | 2021-04-06 | Ford Global Technologies, Llc | Vehicle system and method for setting variable virtual boundary |
US10908603B2 (en) | 2018-10-08 | 2021-02-02 | Ford Global Technologies, Llc | Methods and apparatus to facilitate remote-controlled maneuvers |
US10628687B1 (en) | 2018-10-12 | 2020-04-21 | Ford Global Technologies, Llc | Parking spot identification for vehicle park-assist |
US11097723B2 (en) | 2018-10-17 | 2021-08-24 | Ford Global Technologies, Llc | User interfaces for vehicle remote park assist |
US11137754B2 (en) | 2018-10-24 | 2021-10-05 | Ford Global Technologies, Llc | Intermittent delay mitigation for remote vehicle operation |
JP7135750B2 (ja) * | 2018-11-12 | 2022-09-13 | 富士通株式会社 | 学習プログラム、学習方法、学習装置、検知プログラム、検知方法及び検知装置 |
US10977810B2 (en) * | 2018-12-06 | 2021-04-13 | 8th Wall Inc. | Camera motion estimation |
TWI678546B (zh) * | 2018-12-12 | 2019-12-01 | 緯創資通股份有限公司 | 距離偵測方法、距離偵測系統與電腦程式產品 |
US11774983B1 (en) | 2019-01-02 | 2023-10-03 | Trifo, Inc. | Autonomous platform guidance systems with unknown environment mapping |
US10782137B2 (en) | 2019-01-28 | 2020-09-22 | Qfeeltech (Beijing) Co., Ltd. | Methods, apparatus, and systems for localization and mapping |
US10943355B2 (en) * | 2019-01-31 | 2021-03-09 | Uatc, Llc | Systems and methods for detecting an object velocity |
US11789442B2 (en) | 2019-02-07 | 2023-10-17 | Ford Global Technologies, Llc | Anomalous input detection |
US10948313B2 (en) | 2019-02-26 | 2021-03-16 | Cirrus Logic, Inc. | Spread spectrum sensor scanning using resistive-inductive-capacitive sensors |
US11195344B2 (en) | 2019-03-15 | 2021-12-07 | Ford Global Technologies, Llc | High phone BLE or CPU burden detection and notification |
US11275368B2 (en) | 2019-04-01 | 2022-03-15 | Ford Global Technologies, Llc | Key fobs for vehicle remote park-assist |
US11169517B2 (en) | 2019-04-01 | 2021-11-09 | Ford Global Technologies, Llc | Initiation of vehicle remote park-assist with key fob |
CN110163963B (zh) * | 2019-04-12 | 2023-06-20 | 南京华捷艾米软件科技有限公司 | 一种基于slam的建图装置和建图方法 |
CN110095998B (zh) * | 2019-04-28 | 2020-09-15 | 苏州极目机器人科技有限公司 | 一种自动控制设备的控制方法及装置 |
US10955245B2 (en) * | 2019-04-30 | 2021-03-23 | Samsung Electronics Co., Ltd. | System and method for low latency, high performance pose fusion |
US11581022B2 (en) * | 2019-05-29 | 2023-02-14 | Nokia Technologies Oy | Method and apparatus for storage and signaling of compressed point clouds |
CN110390698B (zh) * | 2019-06-21 | 2021-09-17 | 深圳市优必选科技股份有限公司 | 一种灰度传感器模组及其数据处理方法和机器人 |
KR20220031041A (ko) * | 2019-06-28 | 2022-03-11 | 세바 테크놀러지, 인크. | 자이로스코프 및 광학 흐름 센서 스케일 켈리브레이션 |
US11506502B2 (en) * | 2019-07-12 | 2022-11-22 | Honda Motor Co., Ltd. | Robust localization |
CN110262517B (zh) * | 2019-07-18 | 2022-05-10 | 石家庄辰宙智能装备有限公司 | Agv***的轨迹跟踪控制方法 |
US11181379B2 (en) * | 2019-09-12 | 2021-11-23 | Robert Bosch Gmbh | System and method for enhancing non-inertial tracking system with inertial constraints |
US11592820B2 (en) * | 2019-09-13 | 2023-02-28 | The Boeing Company | Obstacle detection and vehicle navigation using resolution-adaptive fusion of point clouds |
CN110864685B (zh) * | 2019-10-18 | 2023-03-21 | 浙江天尚元科技有限公司 | 一种基于松耦合的车辆单目视觉轮式里程计定位方法 |
CN110909691B (zh) * | 2019-11-26 | 2023-05-05 | 腾讯科技(深圳)有限公司 | 动作检测方法、装置、计算机可读存储介质和计算机设备 |
CN111047562B (zh) * | 2019-11-26 | 2023-09-19 | 联想(北京)有限公司 | 一种处理方法、装置、电子设备及存储介质 |
CN111256689B (zh) * | 2020-01-15 | 2022-01-21 | 北京智华机器人科技有限公司 | 一种机器人定位方法、机器人和存储介质 |
CN114930131B (zh) * | 2020-01-22 | 2023-05-26 | Abb瑞士股份有限公司 | 用于时间校准的方法和电子设备、***和计算机可读介质 |
US11276201B1 (en) | 2020-06-01 | 2022-03-15 | Snap Inc. | Localizing an augmented reality device |
US11748954B2 (en) * | 2020-06-01 | 2023-09-05 | Snap Inc. | Tracking an augmented reality device |
US11868540B2 (en) | 2020-06-25 | 2024-01-09 | Cirrus Logic Inc. | Determination of resonant frequency and quality factor for a sensor system |
US11835410B2 (en) * | 2020-06-25 | 2023-12-05 | Cirrus Logic Inc. | Determination of resonant frequency and quality factor for a sensor system |
US11642787B2 (en) * | 2020-06-30 | 2023-05-09 | Samsung Electronics Co., Ltd. | Trajectory generation of a robot using a neural network |
CN112180937A (zh) * | 2020-10-14 | 2021-01-05 | 中国安全生产科学研究院 | 一种地铁车厢消毒机器人及其自动导航方法 |
US11821761B2 (en) | 2021-03-29 | 2023-11-21 | Cirrus Logic Inc. | Maximizing dynamic range in resonant sensing |
US11808669B2 (en) | 2021-03-29 | 2023-11-07 | Cirrus Logic Inc. | Gain and mismatch calibration for a phase detector used in an inductive sensor |
US11521332B1 (en) * | 2021-06-29 | 2022-12-06 | Midea Group Co., Ltd. | Method and apparatus for optimization of a monocular visual-inertial localization system |
DE102021119599A1 (de) | 2021-07-28 | 2023-02-02 | Bayerische Motoren Werke Aktiengesellschaft | Verfahren zum Bestimmen einer Position eines Fahrzeugs sowie Fahrzeug |
CN113739819B (zh) * | 2021-08-05 | 2024-04-16 | 上海高仙自动化科技发展有限公司 | 校验方法、装置、电子设备、存储介质及芯片 |
CN113610001B (zh) * | 2021-08-09 | 2024-02-09 | 西安电子科技大学 | 基于深度相机和imu组合的室内移动终端定位方法 |
CN113365047B (zh) * | 2021-08-10 | 2021-11-02 | 苏州维嘉科技股份有限公司 | 相机重复抓靶精度的检验方法、装置及相机*** |
US11979115B2 (en) | 2021-11-30 | 2024-05-07 | Cirrus Logic Inc. | Modulator feedforward compensation |
US11854738B2 (en) | 2021-12-02 | 2023-12-26 | Cirrus Logic Inc. | Slew control for variable load pulse-width modulation driver and load sensing |
CN114024991B (zh) * | 2022-01-07 | 2022-04-26 | 深圳比特微电子科技有限公司 | 一种数据采集设备、数据采集***和电子稳像设备 |
US20230260291A1 (en) * | 2022-02-16 | 2023-08-17 | GM Global Technology Operations LLC | Methods and systems for camera to ground alignment |
US12043269B2 (en) | 2022-02-16 | 2024-07-23 | GM Global Technology Operations LLC | Methods and systems for camera to ground alignment |
US20230260157A1 (en) * | 2022-02-16 | 2023-08-17 | GM Global Technology Operations LLC | Methods and systems for camera to ground alignment |
CN114485653A (zh) * | 2022-02-23 | 2022-05-13 | 广州高新兴机器人有限公司 | 基于视觉与轮式里程计融合的定位方法、装置、介质及设备 |
CN115122331B (zh) * | 2022-07-04 | 2024-07-23 | 中冶赛迪工程技术股份有限公司 | 工件抓取方法及装置 |
CN114897942B (zh) * | 2022-07-15 | 2022-10-28 | 深圳元戎启行科技有限公司 | 点云地图的生成方法、设备及相关存储介质 |
CN116433756B (zh) * | 2023-06-15 | 2023-08-18 | 浪潮智慧科技有限公司 | 一种单目相机的地表物体空间分析方法、设备及介质 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3671120B2 (ja) * | 1999-06-16 | 2005-07-13 | 株式会社ソニー・コンピュータエンタテインメント | データ転送装置、データ転送システムおよびデータ転送方法 |
KR100886340B1 (ko) | 2007-04-04 | 2009-03-03 | 삼성전자주식회사 | 이동 로봇의 자이로 센서를 캘리브레이션하는 장치 및 방법 |
JP4703605B2 (ja) | 2007-05-31 | 2011-06-15 | アイシン・エィ・ダブリュ株式会社 | 地物抽出方法、並びにそれを用いた画像認識方法及び地物データベース作成方法 |
US20100045701A1 (en) | 2008-08-22 | 2010-02-25 | Cybernet Systems Corporation | Automatic mapping of augmented reality fiducials |
KR101538775B1 (ko) | 2008-09-12 | 2015-07-30 | 삼성전자 주식회사 | 전방 영상을 이용한 위치 인식 장치 및 방법 |
US8855819B2 (en) * | 2008-10-09 | 2014-10-07 | Samsung Electronics Co., Ltd. | Method and apparatus for simultaneous localization and mapping of robot |
US7979231B2 (en) | 2008-11-13 | 2011-07-12 | Honeywell International Inc. | Method and system for estimation of inertial sensor errors in remote inertial measurement unit |
US8698875B2 (en) | 2009-02-20 | 2014-04-15 | Google Inc. | Estimation of panoramic camera orientation relative to a vehicle coordinate frame |
FR2951565B1 (fr) | 2009-10-20 | 2016-01-01 | Total Immersion | Procede, programme d'ordinateur et dispositif de suivi hybride de representations d'objets, en temps reel, dans une sequence d'images |
JP2013540985A (ja) * | 2010-07-26 | 2013-11-07 | コモンウェルス サイエンティフィック アンドインダストリアル リサーチ オーガナイゼーション | 3次元走査ビーム・システムおよび方法 |
EP2619742B1 (en) | 2010-09-24 | 2018-02-28 | iRobot Corporation | Systems and methods for vslam optimization |
US8429195B2 (en) | 2011-05-13 | 2013-04-23 | Hntb Holdings Ltd | Managing large datasets obtained through a survey-data-acquisition process |
US9678102B2 (en) | 2011-11-04 | 2017-06-13 | Google Inc. | Calibrating intertial sensors using an image sensor |
US8600589B2 (en) | 2012-04-24 | 2013-12-03 | Exelis, Inc. | Point cloud visualization of acceptable helicopter landing zones based on 4D LIDAR |
US9116001B2 (en) | 2012-06-14 | 2015-08-25 | Qualcomm Incorporated | Adaptive estimation of frame time stamp latency |
US9420265B2 (en) * | 2012-06-29 | 2016-08-16 | Mitsubishi Electric Research Laboratories, Inc. | Tracking poses of 3D camera using points and planes |
EP2704055A1 (en) * | 2012-08-31 | 2014-03-05 | Layar B.V. | Determining space to display content in augmented reality |
US20140369557A1 (en) | 2013-06-14 | 2014-12-18 | Qualcomm Incorporated | Systems and Methods for Feature-Based Tracking |
US10339389B2 (en) * | 2014-09-03 | 2019-07-02 | Sharp Laboratories Of America, Inc. | Methods and systems for vision-based motion estimation |
US9058563B1 (en) | 2014-10-15 | 2015-06-16 | Blackwerks LLC | Suggesting activities |
US9026941B1 (en) | 2014-10-15 | 2015-05-05 | Blackwerks LLC | Suggesting activities |
WO2016077703A1 (en) | 2014-11-13 | 2016-05-19 | Worcester Polytechnic Institute | Gyroscope assisted scalable visual simultaneous localization and mapping |
CN113916230A (zh) | 2014-11-26 | 2022-01-11 | 艾罗伯特公司 | 用于使用机器视觉***执行同时定位和映射的***和方法 |
US9519289B2 (en) | 2014-11-26 | 2016-12-13 | Irobot Corporation | Systems and methods for performing simultaneous localization and mapping using machine vision systems |
US9751210B2 (en) | 2014-11-26 | 2017-09-05 | Irobot Corporation | Systems and methods for performing occlusion detection |
US9704043B2 (en) | 2014-12-16 | 2017-07-11 | Irobot Corporation | Systems and methods for capturing images and annotating the captured images with information |
GB2533788A (en) | 2014-12-30 | 2016-07-06 | Nokia Technologies Oy | Method for determining the position of a portable device |
KR102623680B1 (ko) | 2015-02-10 | 2024-01-12 | 모빌아이 비젼 테크놀로지스 엘티디. | 자율 주행을 위한 약도 |
US9946264B2 (en) | 2016-03-22 | 2018-04-17 | Sharp Laboratories Of America, Inc. | Autonomous navigation using visual odometry |
US10317214B2 (en) * | 2016-10-25 | 2019-06-11 | Massachusetts Institute Of Technology | Inertial odometry with retroactive sensor calibration |
US10126137B2 (en) | 2017-02-09 | 2018-11-13 | GM Global Technology Operations LLC | Methods and systems to convey autonomous/semi-autonomous feature available roadways |
-
2017
- 2017-06-14 US US15/623,106 patent/US10444761B2/en active Active
-
2018
- 2018-06-14 CN CN201810616266.7A patent/CN109084746B/zh active Active
-
2019
- 2019-10-09 US US16/597,689 patent/US11126196B2/en active Active
-
2021
- 2021-09-20 US US17/479,986 patent/US11747823B2/en active Active
-
2023
- 2023-08-31 US US18/241,113 patent/US20240077879A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20200159242A1 (en) | 2020-05-21 |
CN109084746A (zh) | 2018-12-25 |
US20220066465A1 (en) | 2022-03-03 |
US11747823B2 (en) | 2023-09-05 |
US20180364731A1 (en) | 2018-12-20 |
US20240077879A1 (en) | 2024-03-07 |
US11126196B2 (en) | 2021-09-21 |
US10444761B2 (en) | 2019-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109084746B (zh) | 用于具有辅助传感器的自主平台引导***的单目模式 | |
US11953910B2 (en) | Autonomous platform guidance systems with task planning and obstacle avoidance | |
US10571925B1 (en) | Autonomous platform guidance systems with auxiliary sensors and task planning | |
US10571926B1 (en) | Autonomous platform guidance systems with auxiliary sensors and obstacle avoidance | |
US11842500B2 (en) | Fault-tolerance to provide robust tracking for autonomous and non-autonomous positional awareness | |
US11544867B2 (en) | Mapping optimization in autonomous and non-autonomous platforms | |
US11501527B2 (en) | Visual-inertial positional awareness for autonomous and non-autonomous tracking | |
US10192113B1 (en) | Quadocular sensor design in autonomous platforms | |
US10496104B1 (en) | Positional awareness with quadocular sensor in autonomous platforms | |
US10390003B1 (en) | Visual-inertial positional awareness for autonomous and non-autonomous device | |
CN109298629B (zh) | 在未绘制地图区域中引导移动平台的***及方法 | |
US20220358767A1 (en) | Visual-Inertial Positional Awareness for Autonomous and Non-Autonomous Mapping | |
CN109255749B (zh) | 自主和非自主平台中的地图构建优化 | |
US11774983B1 (en) | Autonomous platform guidance systems with unknown environment mapping |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210805 Address after: Room 1491, hatching Eagle building, No. 99, Tuanjie Road, Jiangbei new area, Pukou District, Nanjing, Jiangsu Province Applicant after: Nanjing Yuanfu Technology Co.,Ltd. Address before: California, USA Applicant before: Trifo, Inc. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |