CN115699098A - 使用比例图和三维模型的基于机器学习的对象标识 - Google Patents
使用比例图和三维模型的基于机器学习的对象标识 Download PDFInfo
- Publication number
- CN115699098A CN115699098A CN202180037564.0A CN202180037564A CN115699098A CN 115699098 A CN115699098 A CN 115699098A CN 202180037564 A CN202180037564 A CN 202180037564A CN 115699098 A CN115699098 A CN 115699098A
- Authority
- CN
- China
- Prior art keywords
- objects
- identified
- model
- environment
- annotated
- 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.)
- Pending
Links
- 238000010801 machine learning Methods 0.000 title claims abstract description 21
- 238000000034 method Methods 0.000 claims description 58
- 238000010276 construction Methods 0.000 claims description 38
- 238000012549 training Methods 0.000 claims description 28
- 230000011218 segmentation Effects 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 claims description 2
- 239000013598 vector Substances 0.000 description 47
- 238000012800 visualization Methods 0.000 description 47
- 230000033001 locomotion Effects 0.000 description 30
- 238000009434 installation Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 239000000463 material Substances 0.000 description 11
- 238000012545 processing Methods 0.000 description 9
- 230000007704 transition Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 239000000284 extract Substances 0.000 description 6
- 238000000605 extraction Methods 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 238000009413 insulation Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 239000004568 cement Substances 0.000 description 3
- 230000005484 gravity Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 239000003973 paint Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 229910000831 Steel Inorganic materials 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 239000011449 brick Substances 0.000 description 1
- 239000004035 construction material Substances 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- -1 drywall Substances 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 238000009428 plumbing Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000010959 steel Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
- 239000002023 wood Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/89—Lidar systems specially adapted for specific applications for mapping or imaging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- 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
-
- 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
- G06V20/41—Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
-
- 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/52—Surveillance or monitoring of activities, e.g. for recognising suspicious objects
-
- 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/26—Techniques for post-processing, e.g. correcting the recognition result
- G06V30/262—Techniques for post-processing, e.g. correcting the recognition result using context analysis, e.g. lexical, syntactic or semantic context
- G06V30/274—Syntactic or semantic context, e.g. balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
-
- 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/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/04—Architectural design, interior design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2004—Aligning objects, relative positioning of parts
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Remote Sensing (AREA)
- Medical Informatics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Architecture (AREA)
- Electromagnetism (AREA)
- Radar, Positioning & Navigation (AREA)
- Algebra (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Image Analysis (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
系统基于环境的走查视频和带注释的平面布置图自动标识环境中的对象。带注释的平面布置图指示预期在环境中的对象的位置和类型。系统接收走查视频并生成环境的3D模型。该系统将机器学习模型应用于走查视频,以标识捕获对象的帧内的区域。在标识包括对象的走查视频的帧内的区域之后,系统修改3D模型的对应区域以包括所标识的对象。针对每个所标识的对象,系统基于经修改的3D模型和带注释的平面布置图的比较来确定所标识的对象存在于环境中的位置处的可能性。
Description
相关申请的交叉引用
本申请要求于2020年5月29日提交的美国临时申请序列号63/032,452的权利,该临时申请以整体内容通过引用并入本文。
技术领域
本公开涉及标识环境中的对象,尤其涉及基于环境的注释图和三维模型使用机器学习来标识环境中的对象。
背景技术
传统上,为了确定环境中对象的类型和位置,用户捕获环境的走查(walkthrough)视频并手动地标识和标记走查视频中的对象。例如,在施工场地,在建筑项目的不同部分上同时执行各种任务,并且难以跟踪建筑项目的每个方面的进度以确定建筑项目是否按时跟踪到完成。总承包商可能希望通过捕获记录施工场地条件的施工场地的走查视频来监视施工场地的进度。然后,总承包商可以可视地检查走查视频并通过标识图像中存在的对象来标识所安装的对象(例如,灯具、橱柜、窗户、干式墙、油漆、水泥)。总承包商可以周期性地捕获新的走查视频并确定已经安装的附加对象以跟踪建筑项目随时间的进度。然而,手动检查视频以计数和测量对象是乏味且耗时的。
发明内容
空间索引系统接收利用预期在环境中的对象的位置来注释环境的比例图。对象与对象类型相关联,并且空间索引系统根据比例图确定与预期在环境中的每个对象相关联的对象的位置和类型。空间索引系统还针对每个对象类型确定预期在环境中的对象的总数量。当视频捕获系统沿相机路径移动通过环境时,空间索引系统还接收由视频捕获系统捕获的走查视频。走查视频包括描述给定时间的环境条件的图像帧序列。
空间索引系统执行对象量化操作以标识在走查视频的图像帧中捕获的对象的对象类型和位置,从而在捕获走查视频时自动估计针对环境中每个对象类型的对象数量。为了估计数量,空间索引系统生成包括在图像帧中标识的对象的环境的三维(3D)模型。空间索引系统使用机器学习模型来确定3D模型中的每个所标识的对象的位置和对象类型。空间索引系统确定针对每个所标识的对象的概率,其中该概率指示具有该对象类型的对象存在于环境中的可能性。当概率大于预定阈值时,空间索引系统确定所标识的对象存在于环境中。基于该概率,空间索引系统确定3D模型中每个对象类型的估计数量。针对每个对象类型,对象类型的估计数量可以与对象类型的预期总数量进行比较并呈现给用户。
附图说明
图1示出了根据一个实施例的空间索引系统的系统环境。
图2A示出了根据一个实施例的相机路径模块的框图。
图2B示出了根据一个实施例的模型生成模块的框图。
图2C示出了根据一个实施例的图示带注释的3D模型和平面布置图的比较的框图。
图3A-图3E示出了根据一个实施例的由模型可视化模块提供的模型可视化界面的部分。
图4A-图4E示出了根据一个实施例的由进度可视化模块提供的进度可视化界面。
图5是示出根据一个实施例的用于使用平面布置图中的特征对帧进行自动空间索引的示例方法的流程图。
图6是示出根据一个实施例的用于使用强力搜索将相机路径与平面布置图对准的示例方法的流程图。
图7A是示出根据一个实施例的用于使用平面布置图的网格地图来将相机路径与平面布置图对准的示例方法的流程图。
图7B示出了根据一个实施例的平面布置图的示例。
图7C说明根据一个实施例的网格地图的实例。
图8是根据一个实施例的图示用于使用走查视频进行进度跟踪的示例方法的流程图。
图9是根据一个实施例的图示用于走查视频中的对象搜索的示例方法的流程图。
具体实施方式
Ⅰ.概述
空间索引系统接收物理环境的带注释的比例图作为输入,并确定物理世界中对象的预期数量。当用户在物理世界的环境中移动并记录物理世界的状况时,用户可以捕获物理世界中的环境的图像或视频。图像数据可以使用单目或立体相机来捕获,可以作为单独的照片或作为来自视频的图像序列来捕获,以及可以使用传统的或360度相机来捕获。物理世界中的环境的比例图(例如平面布置图)可以由人手动注释,或者由机器学习的模型用预期在该环境中的对象的位置和大小来自动注释。带注释的比例图提供了预期在环境中的对象的位置和对象类型,并且图像数据提供了在给定时间实际在环境中的对象的位置和对象类型。基于来自带注释的比例图的预期对象与来自图像数据的对象的比较,用户可确定从图像数据标识的对象偏离预期对象。空间索引系统可以为不同的对象类型确定预期对象的数量和从图像数据标识的对象的数量之间的差值。该差值可用于跟踪检测到的数量相对于预期的对象的数量随时间的变化。
Ⅱ.系统环境
图1示出了根据一个实施例的用于空间索引系统的系统环境100。在图1所示的实施例中,系统环境100包括视频捕获系统110、网络120、空间索引系统130、和客户端设备160。虽然在图1中示出了单个视频捕获系统110和单个客户端设备160,但是在一些实现中,空间索引系统与多个视频捕获系统110和多个客户端设备160交互。
当视频捕获系统110沿相机路径移动时,视频捕获系统110收集帧数据、运动数据、激光雷达数据、和位置数据中的一个或多个。在图1所示的实施例中,视频捕获系统110包括360度相机112、运动传感器114、和位置传感器116。视频捕获系统110被实现为具有适合于沿着相机路径移动的形状因数的设备。在一个实施例中,视频捕获系统110是用户沿相机路径物理地移动的便携式设备,诸如轮式推车、或安装在用户身体穿戴的对象上或集成到用户身体穿戴的对象中的设备(例如背包或安全帽)。在另一实施例中,视频捕获系统110被安装在载具上或集成到载具中。载具可以是例如轮式载具(例如,轮式机器人)或飞行器(例如,四足无人机),并且可以被配置为沿着预先配置的路线自主行进或由人类用户实时控制。
当视频捕获系统110沿着相机路径移动时,360度相机112通过捕获360度帧的序列来收集帧数据。如本文所提到的,360度帧是具有覆盖360度视场的视场的帧。360度相机112可以通过在视频捕获系统110中布置多个非360度相机来实现,使得它们相对于彼此以变化的角度指向,并且配置360度相机以近似同时地从它们各自的角度捕获环境的帧。然后可以组合图像帧以形成单个360度帧。例如,360度相机112可以通过从指向相反方向的两个180°全景相机基本上同时捕获帧来实现。
由视频捕获系统110捕获的图像帧数据可以还包括帧时间戳。帧时间戳是对应于由视频捕获系统110捕获每一帧的时间的数据。如本文所使用的,如果在彼此的阈值时间间隔内(例如,在1秒内,在100毫秒内等)捕获帧,则基本上同时捕获帧。
在一个实施例中,360度相机112捕获360度视频,并且360度视频中的图像帧是走查视频的图像帧。在另一实施例中,360度相机112捕获由固定时间间隔分开的静止帧序列。可以以任何帧速率(例如,高帧速率(例如,每秒60帧)或低帧速率(例如,每秒1帧))捕获作为帧序列的走查视频。通常,以较高帧速率捕获作为帧序列的走查视频产生更健壮的结果,而以较低帧速率捕获作为帧序列的走查视频允许减少数据存储和传输。当360度相机112正在捕获图像帧数据时,运动传感器114和位置传感器116分别收集运动数据和位置数据。运动传感器114可以包括例如加速度计和陀螺仪。运动传感器114还可以包括测量视频捕获系统110周围的磁场的方向的磁力计。
位置传感器116可包括用于全球导航卫星系统的接收器(例如,GPS接收器),其确定视频捕获系统110的纬度和经度坐标。在一些实施例中,位置传感器116附加地或备选地包括用于室内定位系统(IPS)的接收器,该接收器基于从放置在环境中的已知位置处的发射器接收的信号来确定视频捕获系统的位置。例如,发射RF指纹的多个射频(RF)发射机被放置在整个环境中,并且位置传感器116还包括检测RF指纹并基于RF指纹的相对强度来估计视频捕获系统110在环境内的位置的接收机。
虽然图1所示的视频捕获系统110包括360度相机112,运动传感器114和位置传感器116,但是在其他实施例中,可以从视频捕获系统110中省略一些组件112、114、116。例如,可以从视频捕获系统中省略运动传感器114和位置传感器116中的一个或两个。此外,尽管在图1中描述了具有360度相机112的视频捕获系统110,但是视频捕获系统110可以备选地包括具有窄视场的相机。虽然未示出,但在一些实施例中,视频捕获系统110还可包括激光雷达系统,该激光雷达系统发射激光束并基于到周围环境中的点的测量距离来生成表示周围环境的3D数据。基于3D数据,可以生成周围环境的3D模型(例如,点云)。由激光雷达系统捕获的3D数据可以与由360度相机112捕获的图像帧进行同步。
在一些实施例中,视频捕获系统110被实现为计算设备(例如,图9中所示的计算机系统900)的部分,该计算设备还包括用于存储捕获到的数据的存储设备和通过网络120将捕获到的数据发送到空间索引系统130的通信接口。在一个实施例中,当系统110沿着相机路径移动时,视频捕获系统110本地存储所捕获的数据,且在数据收集已完成之后将数据发送到空间索引系统130。在另一实施例中,当系统110沿着相机路径移动时,视频捕获系统110实时地将所捕获的数据发送到空间索引系统130。
视频捕获系统110通过网络120与其他系统通信。网络120可以包括使用有线和/或无线通信系统的局域网和/或广域网的任何组合。在一个实施例中,网络120使用标准通信技术和/或协议。例如,网络120包括使用诸如以太网、802.11、全球微波接入互操作性(WiMAX)、3G、4G、码分多址(CDMA)、数字用户线(DSL)等技术的通信链路。用于经由网络120通信的联网协议的示例包括多协议标签交换(MPLS)、传输控制协议/因特网协议(TCP/IP)、超文本传输协议(HTTP)、简单邮件传输协议(SMTP)和文件传输协议(FTP)。网络120还可用于通过各种推送通知服务来递送推送通知,诸如APPLE推送通知服务(APN)和GOOGLE云消息传送(GCM)。在网络110上交换的数据可以使用任何合适的格式来表示,例如超文本标记语言(HTML)、可扩展标记语言(XML)或JavaScript对象符号(JSON)。在一些实施例中,网络120的所有或一些通信链路可以使用任何适当的一种或多种技术来加密。
空间索引系统130接收由视频捕获系统110收集的图像帧和其他数据、执行空间索引过程以自动标识被捕获的图像帧和图像中的每一个的空间位置以将图像帧对准到环境的带注释的平面布置图、构建环境的3D模型、提供可视化界面,该可视化界面允许客户端设备160在3D模型内的所捕获图像帧的相应位置处查看所捕获图像帧。空间索引系统130可用于基于由视频捕获系统110收集的图像帧和其他数据来自动量化环境中的对象。当环境是施工场地时,空间索引系统130可以基于所确定的图像帧中的对象数量来跟踪施工的进度,并将所确定的数量与环境的带注释的平面布置图中所指示的每种对象类型的预期处于环境中的对象数量进行比较。在图1所示的实施例中,空间索引系统130包括相机路径模块132、相机路径存储器134、平面布置图存储器136、模型生成模块138、模型存储器140、模型可视化模块142、预期数量确定模块144、带注释的3D模型生成模块146、数量估计模块148、进度确定模块150、进度可视化模块152、训练模块154和训练数据存储器156。
相机路径模块132接收走查视频中的图像帧和当系统110沿相机路径移动时由视频捕获系统110收集的其他数据,并基于所接收的帧和数据确定相机路径。在一个实施例中,相机路径被定义为走查视频中作为帧序列的每个帧的6D相机姿态。每个帧的6D相机姿态是捕获图像帧时360度相机112的相对位置和取向的估计。相机路径模块132可以将相机路径存储在相机路径存储器134中。
在一个实施例中,相机路径模块132使用SLAM(同时定位和映射)算法来同时地(1)通过推断360度相机112的位置和取向来确定相机路径的估计,以及(2)使用直接方法或使用从作为帧序列的走查视频中提取的界标特征(诸如定向FAST和旋转BRIEF(ORB)、比例不变特征变换(SIFT)、加速鲁棒特征(SURF)等)来对环境建模。相机路径模块132随时间输出六维(6D)相机姿态的向量,其中对于序列中的每一帧具有一个6D向量(三维用于定位,三维用于定向),且6D向量可存储在相机路径存储装置134中。下面参考图2A详细描述相机路径模块132的实施例。
空间索引系统130还可以包括平面布置图存储器136,其存储一个或多个平面布置图,例如由视频捕获系统110捕获的环境的平面布置图。如本文所提及的,平面布置图是从自上而下的角度来看的环境(例如,建筑物或结构的部分)的按比例的二维(2D)图形表示。在备选实施例中,平面布置图可以是预期完成的构造的3D模型而不是2D图。该平面布置图被注释以指定在构造完成之后预期在环境中的物理对象的位置、尺寸和对象类型。在一些实施例中,平面布置图由与客户端设备160相关联的用户手动注释并提供给空间索引系统130。在其他实施例中,空间索引系统130使用机器学习模型来注释平面布置图,该机器学习模型是使用带注释的平面布置图的训练数据集来训练的,以标识预期在环境中的物理对象的位置、尺寸和对象类型。每个物理对象与诸如门、窗、墙壁、楼梯、灯具和橱柜的对象类型相关联。对象类型可以与构造材料例如干式墙、油漆、水泥、砖和木材相关联。建筑物或结构的不同部分可以由单独的平面布置图表示。例如,在上述构造示例中,空间索引系统130可以为每个楼层、单元或子结构存储单独的平面布置图。在一些实施例中,建筑物或结构的给定部分可以用多个平面布置图表示,每个平面布置图对应于不同的行业,例如机械的、电气的或管道的。
模型生成模块136生成环境的3D模型。如本文所提到的,3D模型是表示使用来自环境的走查视频的图像帧、每个图像帧的相对位置(如由图像帧的6D姿态所指示的)和(可选地)每个图像帧在环境的平面布置图上的绝对位置所生成的环境的沉浸模型。模型生成模块136将图像帧与带注释的平面布置图对准。因为3D模型是使用与带注释的平面布置图对准的图像帧生成的,所以3D模型也与带注释的平面布置图对准。在一个实施例中,模型生成模块136从相机路径模块132或相机路径存储器134接收帧序列及其对应的相机路径(例如,为走查视频中作为帧序列的每个帧指定6D姿态的6D姿态向量),并提取该序列中的图像帧的子集及其对应的6D姿态以包括在3D模型中。例如,如果作为帧序列的走查视频是以每秒30帧捕获的视频中的帧,则模型生成模块136通过以0.5秒的间隔提取帧及其相应的6D姿态来对图像帧进行子采样。下面参考图2B详细描述模型生成模块136的实施例。模型生成模块138可使用例如来自运动的结构(SfM)、同时定位和映射(SLAM)、单目深度图产生的方法或用于基于走查视频中的图像帧产生环境的3D表示的其他方法。在一些实施例中,模型生成模块138可以从视频捕获系统110接收激光雷达数据并生成3D点云。在生成3D模型之后,模型生成模块138将3D模型存储在模型存储器140中。模型存储器140还可以将用于生成3D模型的走查视频存储在模型存储器140中。
模型可视化模块142向客户端设备160提供可视化界面。可视化界面允许用户以两种方式查看3D模型。首先,可视化界面提供表示来自平面布置图存储器136的环境的相应平面布置图的2D俯视地图。2D俯视地图是交互式界面,其中在2D地图上指示的每个相对相机位置是交互式的,使得点击地图上的点导航到3D模型的对应于空间中的所选点的部分。第二,可视化界面提供所提取的360度帧的第一人称视图,其允许用户在图像帧周围平移和缩放,并通过选择图像帧内表示其他帧的相对位置的路点图标来导航到其他帧。可视化界面在用户选择2D俯视地图中或不同帧的第一人称视图中的图像帧之后提供帧的第一人称视图。
预期数量确定模块144访问环境的带注释的平面布置图并标识预期在该环境中的对象。预期数量确定模块144确定对象出现在带注释的平面布置图中的实例,每个对象与环境内的位置和对象类型相关联。在标识带注释的平面布置图中的对象之后,预期数量确定模块144确定当构造完成时对于每个对象类型预期在环境中的对象的总数量。预期数量确定模块144可以使用由训练模块144基于带注释的平面布置图的训练数据训练的机器学习模型,来标识对象在带注释的平面布置图中出现的位置以及所标识的对象的对象类型。对于用户希望监视的每个对象类型,预期数量确定模块144确定该对象类型的对象的总数量,如带注释的平面布置图中所示。例如,对于建筑物的给定楼层,用户可能希望监视窗户、门、窗户、灯具和墙壁的安装进度,并且预期数量确定模块144确定在构造结束时应该在楼层上的窗户、门、窗户和墙壁的总数目。对于可以被计数的每个对象类型,预期数量确定模块144可以确定与该对象类型相关联的对象出现在带注释的平面布置图中的实例的总数目。例如,预期数量确定模块144对带注释的平面布置图执行文本识别或图像识别分析,以确定表示对象类型的文本或图像出现在带注释的平面布置图中的实例的数目。
在一些实施例中,对象类型可以与基于带注释的环境平面布置图在构造期间预期使用的构造材料的总量相关联。对于诸如油漆、水泥和干式墙等不能被计数的每个对象类型,预期数量确定模块144可累加与对象类型相关联的平面布置图的各部分的尺寸并确定预期使用的构造材料的总量。带注释的平面布置图可以包括围绕使用特定类型的构造材料的平面布置图的不同部分的边界,并且预期数量确定模块144可以确定边界的尺寸的总和,以确定预期用于完成构造的构造材料类型的总量。在更简单的实现方式中,带注释的平面布置图可以指示以线性英尺为单位的材料的尺寸,并且预期量确定模块144可以基于关于建筑物的已知特征来确定以线性英尺为单位的预期数量或者外推以平方英尺为单位的二维预期数量。例如,如果带注释的平面布置图指示预期80英尺的干式墙长度,则预期数量确定模块144可将长度乘以墙的已知高度以确定二维预期数量。
带注释的3D模型生成模块146标识在走查视频的图像帧中捕获的对象,并修改由模型生成模块138生成的3D模型以包括所标识的对象。走查视频的每个图像帧被提供给机器学习模型,诸如神经网络分类器、最近邻居分类器、或被配置为检测对象并标识对象类型和对象在环境中的位置的其他类型的模型。带注释的3D模型生成模块146可以执行对象检测、语义分割等,以标识对象类型和表示图像中的对象的像素区域。因为图像帧与平面布置图对准,所以带注释的3D模型生成模块146可以确定检测到对象的环境内的位置。机器学习模型可以由训练模块154来训练,并且基于包括存储在训练数据存储器156中的历史环境的带注释的图像帧的训练数据来训练。对于每个图像帧,机器学习模型可以输出标识检测到对象的区域的分类图像帧,每个区域与对象类型相关联。
在生成3D模型并标识图像帧中的对象之后,带注释的3D模型生成模块146修改3D模型的区域以包括所标识的对象。通过将经分类的图像帧投影到3D模型上,环境的3D模型可以与经分类的图像帧进行组合。关于带注释的3D模型生成模块146的细节参考图2C描述。
数量估计模块148通过将其与环境的带注释的平面布置图进行比较来估计带注释3D模型中的每个对象类型的数量。将带注释的3D模型与带注释的平面布置图进行比较,以便确定与用对象类型进行注释的带注释的平面布置图的区域(例如,被注释为“机箱”将被安装的平面布置图的区域)重叠的利用对象类型分类的3D模型的区域(例如,被分类为“机箱”的3D模型的区域)。
在一个实施例中,为了确定与对象类型相关联的对象是否存在于3D模型中,计算用对象类型标记的带注释的平面布置图的区域与用对象类型分类的带注释的3D模型的对应区域之间的重叠量。如果重叠量超过预定阈值,则认为该对象类型存在于3D模型上的该区域中。在另一实施例中,由训练模块154使用训练数据存储器156中的标记数据来训练监督分类器(例如神经网络分类器),以确定在带注释的3D模型上的区域中是否存在特定对象。经标记的训练数据集中的每个实例可以对应于环境,并且包括被修改以包括对象的带注释的3D模型,该对象在环境的走查视频中被标识以及带有标签的带注释的平面布置图,该标签指示在带注释的平面布置图上的位置处存在对象。在训练了监督分类器之后,数量估计模块148将监督分类器应用于输入的带注释的平面布置图和带注释的3D模型,以接收存在于带注释的3D模型的区域处的对象类型的概率作为输出。数量估计模块148可以将输出概率与预定阈值进行比较。当与给定区域的对象类型相关联的概率大于预定阈值时,数量估计模块148确定在该区域处存在具有对象类型的对象。当该概率低于预定阈值时,数量模块148确定在该区域处不存在具有对象类型的对象。
使用带注释的3D模型与带注释的平面布置图之间的比较的益处在于可以减少3D模型中的噪声,这提高了构造中的对象检测和进度跟踪的准确性。数量估计模块148不包括与对象类型的估计数量中的带注释的平面布置图不匹配的带注释的3D模型的分类区域。例如,带注释的3D模型可能不正确地指示由于噪声而在地板上存在干式墙,这可能导致对构造期间使用的干式墙的量的过高估计。然而,地面上的干式墙不包括在估计量中,因为带注释的平面布置图指示在地面上应该没有干式墙。使用带注释的3D模型和带注释的平面布置图之间的比较的另一好处是能够检测安装错误。如果更新的3D模型和带注释的平面布置图之间存在超过预定阈值的未对准,则可以标记该未对准以供人类操作者手动查看。例如,如果3D模型指示根据带注释的平面布置图在不应该有墙的地方构造墙,则可以标记错误。
在另一实施例中,有监督分类器由训练模块154使用训练数据存储器156中的训练集来训练,其中每个实例与环境相关联并且包括从环境的走查视频生成的未带注释的3D模型,具有指示在带注释的平面布置图上的位置处存在对象的标签的带注释的平面布置图,以及来自走查视频的图像帧集,其中在带注释的平面布置图上用对象标记的位置是可见的。在该实施例中,来自模型生成模块138的3D模型作为输入与走查视频和带注释的平面布置图一起被提供给数量估计模块148,而不被带注释的3D模型生成模块146处理。监督分类器输出存在于带注释的3D模型的区域处的对象类型的概率。
使用带注释的3D模型和带注释的平面布置图之间的比较而不是使用来自走查视频的二维图像帧之间的比较的另一好处是带注释的3D模型可以验证在图像帧中检测到的对象的位置。例如,带注释的平面布置图表示在构造结束时,应该有在离参考点第一距离处的第一壁和在离参考点第二距离处的平行于第一壁的第二壁。第一距离小于第二距离,使得在构造结束时,第二壁从参考点不可见,因为它被第一壁阻挡。如果在构造期间从参考点捕获的图像帧包括干式墙,则空间索引系统130可能不能确定干式墙是第一墙还是第二墙的部分,因为图像帧不包括深度信息。然而,利用带注释的3D模型,空间索引系统130可以区分这两个墙。
当如平面布置图中所预期的那样确定在带注释的3D模型上的位置中存在对象时,尤其是当数量估计模块148用于在不同时间量化相同位置中的对象时,也可以使用历史信息来偏置数量估计模块148。在一个实施例中,使用马尔可夫模型来对随着时间存在于带注释的3D模型的位置中的对象的概率进行建模。例如,在一天中在3D模型上的位置中存在“干式墙”可以使系统偏向于在随后的一天中标识相同位置中的“干式墙”,同时降低在随后的一天中在该位置中存在“框架”的概率。这样的概率可以从训练数据中学习或由人基于现实世界约束(例如,“框架”的安装通常在“干式墙”的安装之前)来估计并提供给系统。
进度确定模块150计算在带注释的平面布置图中指示的对象类型的安装进度。对于在构造期间预期使用的每个对象类型,进度确定模块150通过将由数量估计模块148确定的带注释的3D模型中的对象类型的对象数量除以由预期数量确定模块144确定的预期对象类型的对象的总数来计算安装进度。对于与构造材料相关联的对象类型,被确定为已与构造材料(例如,干式墙)一起安装的带注释的3D模型中的区域和带注释的平面图中的对应区域被划分为瓦片或单元。对于每个瓦片或单元,基于该单元或瓦片的带注释的平面布置图上的区域与该单元或瓦片的带注释的3D模型中的对应区域之间的重叠来计算得分。如果得分超过预定阈值,则由该瓦片或单元定义的材料量被认为存在于平面布置图上的该位置。为了计算与构造材料相关联的对象类型的安装进度,将已发现存在于带注释的3D模型上的该材料类型的单元或瓦片的数量除以如带注释的平面布置图中所指示的预期的特定材料类型的单元或瓦片的总数。
进度可视化模块152向客户端设备160提供可视化界面以呈现构造进度。进度可视化模块152允许用户查看随时间针对不同对象类型和针对环境的不同部分做出的进度。以下参考图4A和4E描述可视化界面的示例。
客户端设备160是可以连接到网络120的任何计算设备,诸如智能电话、平板计算机、膝上型计算机。客户端设备160在诸如屏幕的显示设备上向用户显示界面,并接收用户输入以与该界面交互。下面参考图9中的计算机系统900描述客户端设备的示例实现。
Ⅳ.相机路径生成概述
图2A示出了根据一个实施例的图1所示的空间索引系统130的相机路径模块132的框图。相机路径模块132接收由视频捕获系统110捕获的输入数据(例如,360度帧212、运动数据214和位置数据223的序列)并生成相机路径226。在图2A所示的实施例中,相机路径模块132包括同时定位和映射(SLAM)模块216、运动处理模块220以及路径生成和对准模块224。
SLAM模块216接收360度帧212的序列并执行SLAM算法以生成相机路径的第一估计218。在执行SLAM算法之前,SLAM模块216可以对图像帧212执行一个或多个预处理步骤。在一个实施例中,预处理步骤包括通过将360度帧212的序列转换成矢量序列来从图像帧212中提取特征,其中每个矢量是相应帧的特征表示。特别地,SLAM模块可以提取SIFT特征、SURF特征或ORB特征。
在提取特征之后,预处理步骤还可以包括分割过程。分割过程基于每个图像帧中的特征的质量将作为帧序列的走查视频分割成片段。在一个实施例中,帧中的特征质量被定义为从图像帧中提取的特征的数目。在该实施例中,分割步骤分别基于图像帧的特征质量是高于还是低于阈值来将每个帧分类为具有高特征质量或低特征质量(即,具有高于阈值的特征质量的帧被分类为高质量,而具有低于阈值的特征质量的帧被分类为低质量)。低特征质量可由例如过度运动模糊或低照明条件引起。
在对图像帧进行分类之后,分割过程对序列进行分割,使得具有高特征质量的连续帧被结合为片段,而具有低特征质量的帧不包括在任何片段中。例如,假设相机路径沿着照明不良的走廊行进进出一系列照明良好的房间。在该示例中,在每个房间中捕获的图像帧可能具有高特征质量,而在走廊中捕获的图像帧可能具有低特征质量。结果,分割过程对作为帧序列的走查视频进行分割,使得在同一房间中捕获的每个连续帧序列被分割成单个片段(导致每个房间的单独片段),而在走廊中捕获的图像帧不包括在任何片段中。
在预处理步骤之后,SLAM模块216执行SLAM算法以生成相机路径的第一估计218。在一个实施例中,第一估计218也是6D相机姿态随时间的矢量,其中一个6D矢量针对序列中的每一帧。在预处理步骤包括对作为帧序列的走查视频进行分割的实施例中,对每个片段单独执行SLAM算法,以便为每个帧片段生成相机路径片段。
运动处理模块220接收在视频捕获系统110沿相机路径移动时收集的运动数据214,并产生相机路径的第二估计222。类似于相机路径的第一估计218,第二估计222也可表示为相机姿态随时间的6D向量。在一个实施例中,运动数据214包括分别由加速度计和陀螺仪收集的加速度和陀螺仪数据,并且运动处理模块220通过对运动数据执行航位推算过程来生成第二估计222。在运动数据214还包括来自磁力计的数据的实施例中,除了陀螺仪数据之外或代替陀螺仪数据,可以使用磁力计数据来确定视频捕获系统110的取向的变化。
由许多消费级陀螺仪生成的数据包括时变偏置(也称为漂移),如果未校正该偏置,则该时变偏置会影响相机路径的第二估计222的精度。在运动数据214包括上述所有三种类型的数据(加速计、陀螺仪和磁力计数据)的实施例中,运动处理模块220可以使用加速计和磁力计数据来检测和校正陀螺仪数据中的这种偏置。具体地,运动处理模块220从加速度计数据(其通常指向重力方向)确定重力向量的方向,并使用重力向量来估计视频捕获系统110的倾斜的两个维度。同时,磁强计数据用于估计陀螺仪的航向偏置。因为磁力计数据可能是有噪声的,特别是当在其内部结构包括钢梁的建筑物内使用时,运动处理模块220可以计算并使用磁力计数据的滚动平均值来估计航向偏置。在各种实施例中,可在1分钟、5分钟、10分钟或某一其他周期的时间窗上计算滚动平均值。
路径生成和对准模块224将相机路径的第一估计218和第二估计222组合成相机路径的组合估计226。在视频捕获系统110在沿相机路径移动的同时还收集位置数据223的实施例中,路径生成模块224还可在生成相机路径226时使用位置数据223。如果环境的平面布置图可用,则路径生成和对准模块224还可以接收平面布置图257作为输入,并将相机路径216的组合估计对准到平面布置图257。以下参考图5、图6和图7描述用于对第一估计218和第二估计222进行组合并将相机路径对准平面布置图的示例技术。
Ⅴ.模型生成概述
图2B示出了根据一个实施例的图1所示的空间索引系统130的模型生成模块138的框图。模型生成模块138接收由相机路径模块132生成的相机路径226、连同由视频捕获系统110捕获的360度帧212的序列、环境的平面布置图257、以及关于360度相机254的信息。模型生成模块138的输出是环境的3D模型266。在所示实施例中,模型生成模块138包括路线生成模块252、路线过滤模块258和帧提取模块262。
路线生成模块252接收相机路径226和360度相机信息254,并为每个提取的帧生成一个或多个候选路线向量256。360度相机信息254包括相机模型254A和相机高度254B。相机模型254A是将360度帧中的每个2D点(即,如由标识图像帧内的像素的一对坐标所定义的)映射到表示从360度相机到该2D点的视线方向的3D射线的模型。在一个实施例中,空间索引系统130为系统130所支持的每种类型的相机存储单独的相机模型。相机高度254B是在捕获作为帧序列的走查视频时360度相机相对于环境地板的高度。在一个实施例中,假定360度相机高度在图像帧捕获过程中具有恒定值。例如,如果360度相机安装在戴在用户身体上的帽子上,则高度具有等于用户高度和360度相机相对于用户头部顶部的高度之和的恒定值(这两个量都可以作为用户输入来接收)。
如本文所提到的,提取的帧的路线向量是表示提取的帧与其他提取的帧之一之间的空间距离的向量。例如,与提取的帧相关联的路线向量具有在该提取的帧处的尾部和在另一提取的帧处的头部,使得将路线向量添加到其相关联的帧的空间位置产生另一提取的帧的空间位置。在一个实施例中,通过执行向量减法来计算路线向量,以计算两个提取帧的三维位置之间的差,如它们各自的6D姿态向量所指示的。
参照模型可视化模块142,在模型可视化模块142接收3D模型266并显示提取的帧的第一人称视图之后,稍后使用提取的帧的路线向量。当显示第一人称视图时,模型可视化模块142在图像帧中表示另一帧(例如,在路线向量的头部处的图像帧)的位置的位置处呈现路点图标(在图3B中展示为圆圈)。在一个实施例中,模型可视化模块140使用以下等式来确定图像帧内呈现对应于路线向量的路点图标的位置:
Picon=Mproj*(Mview)-1*Mdelta*Gring
在该等式中,Mproj是包含用于呈现的360度相机投影函数的参数的投影矩阵,Mview是表示用户相对于他或她的当前帧的位置和取向的等轴矩阵,Mdelta是路线向量,Gring是表示正被呈现的路点图标的网格模型的几何形状(3D坐标列表),并且Picon是图像帧的第一人称视图内的图标的几何形状。
再次参考路线生成模块138,路线生成模块252可以计算每对提取的帧之间的候选路线向量256。然而,为与帧相关联的每个候选路线向量显示单独的路点图标可导致在帧中显示大量路点图标(例如,几十个),这可压倒用户且使其难以在个别路点图标之间辨别。
为了避免显示太多的路点图标,路线过滤模块258接收候选路线向量256并选择要显示的路线向量的子集,路线向量260在第一人称视图中用相应的路点图标表示。路线过滤模块256可以基于各种标准来选择所显示的路线向量256。例如,可以基于距离来过滤候选路线向量256(例如,仅选择长度小于阈值长度的路线向量)。
在一些实施例中,路线过滤模块256还接收环境的平面布置图257,并且还基于平面布置图中的特征来过滤候选路线向量256。在一个实施例中,路线过滤模块256使用平面布置图中的特征来移除穿过墙壁的任何候选路线向量256,这导致仅指向图像帧中可见的位置的一组所显示的路线向量260。这可以例如通过从围绕候选路线向量256的平面布置图的区域中提取平面布置图的帧补丁、并将图像帧补丁提交给帧分类器(例如,前馈、深度卷积神经网络)以确定在补丁内是否存在墙壁来完成。如果在补丁内存在墙壁,则候选路线向量256通过墙壁并且不被选择为所显示的路线向量260之一。如果墙壁不存在,则候选路线向量不通过墙壁,并且可以根据模块258考虑的任何其他选择标准(例如距离)被选择为所显示的路线向量260之一。
图像帧提取模块262接收360度帧的序列并提取一些或所有图像帧以产生提取的帧264。在一个实施例中,360度帧的序列被捕获为360度走查视频的帧,且图像帧提取模块262产生每个帧的单独提取的帧。如上文关于图1所述,图像帧提取模块262还可提取走查视频的子集,其为360度帧212的序列。例如,如果以相对高的帧速率(例如,每秒30或60帧)捕获作为360度帧212的序列的走查视频,则图像帧提取模块262可以以规则的间隔(例如,视频的每秒两帧)提取图像帧的子集,使得更加可管理数目的提取的帧264作为3D模型的部分显示给用户。
平面布置图257、所显示的路线向量260、相机路径226和提取的帧264被组合到3D模型266中。如上所述,3D模型266是环境的表示,其包括环境的一组提取帧264、每个图像帧的相对位置(如相机路径226中的6D姿态所示)。在图2B所示的实施例中,3D模型还包括平面布置图257,平面布置图上的每个图像帧的绝对位置,以及用于一些或所有提取的帧264的所显示的路线向量260。
Ⅵ.带注释的3D模型和平面布置图的比较
图2C示出了说明根据一个实施例的带注释的3D模型280和平面布置图257的比较的框图。带注释的3D模型生成模块146接收由模型生成模块138生成的3D模型266和由视频捕获系统110捕获的走查视频的360度帧212作为输入。带注释的3D模型生成模块144包括对象标识符模块274和3D模型注释模块278,并输出带注释的3D模型280。对象标识符模块274标识在360度帧212中捕获的对象。对象标识符模块274可以是机器学习模型,诸如神经网络分类器、最近邻居分类器、或被配置为标识输入图像帧中的对象类型和对象位置的其他类型的模型。对象标识符模块274还可以执行对象检测、语义分割等以标识图像中对象的类型和位置。对象标识符模块274输出标识检测到对象的区域的经分类的图像帧276,每个区域与对象类型相关联。
3D模型266和经分类的帧276被提供给3D模型注释模块278,3D模型注释模块278修改3D模型266以在经分类的帧276中包括对象。3D模型注释模块278可以将经分类的帧276投影到3D模型266上。3D模型266可通过使用经校准相机模型将每个经分类的帧中的每个经分类的像素投影到3D模型255中的其对应点而与经分类的帧276进行组合。可以通过组合来自每个经分类的帧276中的所有相关像素的分类来确定3D模型中的点的分类(例如,使用分类概率的线性组合)。
带注释的3D模型280和带注释的平面布置图257作为输入提供给数量估计模块148。数量估计模块148基于与平面布置图257的比较来确定带注释的3D模型280中的每个对象类型的估计数量。数量估计模块148确定存在与对象类型相关联的对象的可能性。预期数量确定模块144然后确定在构造完成时应该在环境中的每个对象类型的对象的预期数量。估计数量和预期数量被提供给进度确定模块150,进度确定模块150通过将已安装的对象类型的估计数量与预期在构造结束时安装的对象类型的预期数量进行比较来确定每个对象类型的构造进度。
Ⅶ.模型可视化界面——示例
图3A-图3E示出了根据一个实施例的由模型可视化模块提供的模型可视化界面的部分。如以上在图1中所描述的,模型可视化界面允许用户在环境的3D模型内的其对应位置处查看所捕获的图像中的每个图像。
图3A-图3E从上面继续一般承包公司的例子。当在施工场地上完成框架时,总承包商捕获每个单元内的图像序列以创建工作记录,该工作记录将很快被干式墙的安装隐藏。所捕获的图像作为输入提供给相机路径模块132,相机路径模块132产生6D相机姿态的矢量(每个图像一个6D姿态)。6D相机姿态作为输入提供给模型可视化模块142,其提供与每个图像相关联的相对相机位置的2D表示。用户可以通过使用客户端设备160查看由模型可视化模块142提供的可视化界面来查看该表示,并且用户可以通过选择2D俯视视角地图上的图标来导航到序列中的不同图像。在用户已经为2D俯视视角地图中的图像选择了图标之后,可视化界面显示用户可以平移和缩放的图像的第一人称视图。第一人称视图还包括表示其他所捕获的图像的位置的路点图标,并且用户可以通过选择图像的路点图标来导航到这些其他图像之一的第一人称视图。如上关于图2B所述,基于从正被显示的图像指向另一图像的路线向量来呈现每个路点图标。图3A示出了2D俯视视角地图的示例,图3B示出了第一人称视图的示例。在图3B所示的第一人称视图中,路点图标是蓝色圆圈。
回到总承包公司的例子,在图像被记录两个月之后,在其中一个单元中发现了问题,该问题需要检查隐藏在其中一个墙壁内的电气工作。传统上,检查这种电气工作需要拆下干式墙和其他已完成的饰面以暴露该工作,这是非常昂贵的操作。然而,作为替代,总承包商能够访问可视化界面并使用2D俯视地图视角来标识建筑物内发现问题的位置。然后,总承包商可以点击该位置以查看在该位置拍摄的图像。在该示例中,在发现问题的位置处拍摄图3C所示的图像。
在一个实施例中,可视化界面还包括分屏视图,该分屏视图在屏幕的一侧上显示第一图像并且在屏幕的另一侧上显示第二图像。例如,这可以用于创建在不同时间在相同位置捕获的两个图像的并排视图。这两个视图也可以同步,以便在一个视图中调整变焦/定向,而在另一视图中调整变焦/定向。
在图3D和3E中,总承包商已经使用分屏视图来创建并排视图,该并排视图在右侧显示从干式墙安装后的一天拍摄的图像,并且在左侧显示从较早日期(例如,干式墙安装前的一天)拍摄的图像。通过使用可视化界面来“及时返回”并在用干式墙覆盖之前查看电气工作,总承包商可以检查电气问题,同时避免需要昂贵地移除干式墙。此外,因为空间索引系统130可以自动索引每个所捕获的图像的位置而无需用户执行任何手动注释,所以捕获和索引图像的过程消耗较少时间,并且可以定期执行,例如每天或每周若干次。
Ⅷ.进度可视化界面——示例
图4A-图4E示出了根据一个实施例的由进度可视化模块提供的进度可视化界面。图4A-图4E从上面继续总承包公司的例子。当在施工场地对项目进行工作时,用户捕获施工场地的走查视频并将其提供给空间索引系统130以确定对于被跟踪的对象类型已经进行了多少进度。用户可周期性地(例如,每天,每周)捕获走查视频并请求分析随时间的构造进度。空间索引系统130在可视化界面400中向用户呈现所确定的构造进度。
在图4A中,可视化界面400通过跟踪保温层和干式墙的安装来呈现针对墙壁的构造进度。可视化界面包括第一界面410和第二界面420,第一界面410被配置成呈现用针对每个对象类型的条形图完成的安装数量,第二界面420被配置成呈现被表示为线条图的随时间监视的累计安装数量。可视化界面400还包括总结界面430,该总结界面430示出了与保温层和干式墙中的每一个的预期总安装数量相比的估计安装数量。总结界面430还包括基于每个对象类型的平均安装速率而完成安装的估计的目标日期。
在图4B中,可视化界面400包括针对对象类型的施工场地和构造进度的地图440,所述对象类型包括布局、顶部轨道、框架,保温层、干式墙和胶带。施工场地的地图440可以是环境的带注释的3D模型的自顶向下视图。在地图440中示出了已安装对象类型的位置,并且在可视化界面右侧的总结450中示出了已安装对象类型的估计数量。在图4B所示的示例中,示出了墙壁安装的进度,但是用户可以与可视化界面交互并请求查看其他类型的任务(例如电气、地板、绘画、电器、橱柜等)的进度。
图4C-图4E是具有不同显示模式的墙壁安装进度的表格视图。图4C以“数量”模式显示,图4D以“状态”模式显示,图4E以“完成%”模式显示。可视化界面400包括用于提供新的走查视频的“最后捕获”或最后日期的列,用于指示工作“未开始”、“在进行中”或“完成”的“跟踪状态”的列。可视化界面400还包括用于跟踪进入构建墙壁的每个对象类型(例如,布局、框架、保温层、干式墙、胶带)的进度的列。可视化界面400包括项目的级别1到10中的每一个的结果以及整个项目的聚合的结果。
尽管未示出,可视化界面400还可以显示包括尚未安装的预期对象的报告。该报告可以指示丢失的预期对象的位置和对象类型。在一些实施例中,地图440上对应于遗漏的预期对象的位置可在视觉上区分以突出显示施工场地中仍需要工作的部分。可基于用户输入(例如,用户可在报告已被安装之后从报告中检查丢失的预期对象)或当空间索引系统130对新的走查视频执行分析时更新报告。
Ⅸ.空间索引的其他应用
本文所述的方法和系统还可用于除构造之外的环境中。自动计数和测量物理世界中的对象是可以应用于各种现实世界使用情况的核心能力。例如,该方法可以应用于盗窃检测,以监视在客人结帐之后在酒店(hotel)房间中预期的对象的存在和数量。在客人已经结账离开酒店房间之后,酒店维护工人可以捕获酒店房间的走查视频,并且使用空间索引系统来确定在走查视频中捕获的对象是否与预期数量匹配。在另一示例中,该方法用于维护和管理诸如仓库或商店的设施,以跟踪仓库或商店的库存。工人或机器人可以使用空间索引系统周期性地捕获走查视频并确定仓库或商店中的对象类型的数量。当确定的数量不同于预期的数量时,空间索引系统可以标记用于库存管理的差值。
Ⅹ.基于平面布置图特征的帧的空间索引
如上所述,可视化界面可以提供2D俯视视角地图,其显示环境的平面布置图中每个帧的位置。除了在俯视图中显示之外,环境的平面布置图还可用作确定每个帧的位置的空间索引过程的部分。
图5是示出根据一个实施例的用于使用平面布置图中的特征对帧进行自动空间索引的示例方法500的流程图。在其他实施例中,方法500可以包括附加的、更少的或不同的步骤,并且图5中所示的步骤可以以不同的顺序执行。例如,方法400可以在不获得(530)平面布置图的情况下执行,在这种情况下,在不使用平面布置图中的特征的情况下生成(540)相机路径的组合估计。
空间索引系统130从视频捕获系统110接收510作为帧序列的走查视频。当视频捕获系统110沿着相机路径移动通过环境(例如,施工场地的地板)时,捕获序列中的图像帧。在一个实施例中,图像帧中的每一个是由视频捕获系统上的360度相机(例如,上文相对于图1描述的360度相机112)视频捕获的360度帧。在另一实施例中,每个图像帧具有较窄的视场,例如90度。
空间索引系统130基于作为帧序列的走查视频生成520相机路径的第一估计。相机路径的第一估计可以表示为例如六维向量,其指定序列中每个帧的6D相机姿态。在一个实施例中,空间索引系统130的组件(例如,上文参考图2A描述的SLAM模块216)对作为帧序列的走查视频执行SLAM算法,以同时确定每个帧的6D相机姿态并产生环境的三维虚拟模型。
空间索引系统130获得530环境的平面布置图。例如,多个平面布置图(包括在作为帧序列的接收到的走查视频中描述的环境的平面布置图)可以存储在平面布置图存储器136中,并且空间索引系统130访问平面布置图存储器136以获得环境的平面布置图。还可以经由视频捕获系统110或客户端设备160从用户接收环境的平面布置图,而不将其存储在平面布置图存储136中。
空间索引系统130基于相机路径的第一估计和平面布置图中的物理对象生成540相机路径的组合估计。以下分别参考图6和图7描述生成相机路径540的组合估计的两个示例方法600、700。
在生成540相机路径的组合估计之后,空间索引系统130生成550环境的3D模型。例如,模型生成模块138通过组合平面布置图、多个路线向量、相机路径的组合估计、以及来自作为帧序列的走查视频的提取的帧来生成3D模型,如以上关于图2B所描述的。
在一些实施例中,空间索引系统130还可以接收在视频捕获系统沿相机路径移动时捕获的附加数据(除了作为帧序列的走查视频之外)。例如,空间索引系统还接收如上参考图1所述的运动数据或位置数据。在空间索引系统130接收附加数据的实施例中,当生成540相机路径的组合估计时,空间索引系统130还可以将附加数据与平面布置图一起使用。
在空间索引系统130接收运动数据以及作为帧序列的走查视频的实施例中,空间索引系统130可对运动数据执行航位推算过程以产生相机路径的第二估计,如上文关于图2A所描述。在该实施例中,生成540相机路径的组合估计的步骤包括使用第二估计的部分来填充相机路径的第一估计中的间隙。例如,由于一些捕获帧中的不良特征质量(这导致SLAM算法不能产生可靠的6D姿态的间隙,如上关于图2A所述),相机路径的第一估计可被分成相机路径片段。在这种情况下,来自第二路径估计的6D姿态可以用于通过填充第一路径估计的片段之间的间隙来连接第一路径估计的片段。
如上所述,在一些实施例中,可以执行方法500而不获得平面布置图530,并且生成相机路径的组合估计540而不使用平面布置图中的特征。在这些实施例之一中,相机路径的第一估计被用作相机路径的组合估计,而无需任何附加的数据处理或分析。
在这些实施例的另一实施例中,通过生成相机路径的一个或多个附加估计、计算每个路径估计中的每个6D姿态的置信度得分、以及为沿着相机路径的每个空间位置选择具有最高置信度得分的6D姿态,来生成540相机路径的组合估计。例如,相机路径的附加估计可以包括以下中的一项或多项:如上所述,使用运动数据的第二估计、使用来自GPS接收机的数据的第三估计、使用来自IPS接收机的数据的第四估计。如上所述,相机路径的每个估计是描述序列中每个帧的相对位置和取向的6D姿态的向量。
对于每个路径估计不同地计算6D姿态的置信度得分。例如,可以用以下方式计算上述路径估计的置信度得分:第一估计中的6D姿态的置信度得分(用SLAM算法生成)表示对应于6D姿态的图像帧的特征质量(例如,图像帧中检测到的特征的数目);第二估计中的6D姿态的置信度得分(用运动数据生成)表示以6D姿态的时间为中心,在6D姿态的时间之前或之后的时间间隔中的加速度计、陀螺仪和/或磁力计数据中的噪声等级;(用GPS数据生成的)第三估计中的6D姿态的置信度得分表示用于生成6D姿态的GPS数据的GPS信号强度;并且第四估计中的6D姿态的置信度得分(用IPS数据生成)表示用于生成6D姿态的IPS数据的IPS信号强度(例如,RF信号强度)。
在生成置信度得分之后,空间索引系统130迭代地扫描相机路径的每个估计,并且为序列中的每个帧选择具有最高置信度得分的6D姿态,并且将所选择的6D姿态输出为相机路径的组合估计中的图像帧的6D姿态。因为每个路径估计的置信度得分被不同地计算,所以在迭代扫描过程发生之前,每个路径估计的置信度得分可以被归一化为公共标度(例如,0和1之间的标量值,其中0表示最低可能置信度,1表示最高可能置信度)。
Ⅺ.相机路径生成——平面布置图与强力搜索进行对准
图6是示出根据一个实施例的用于使用强力搜索生成具有平面布置图的组合相机路径的方法600的流程图。在其他实施例中,方法600可以包括附加的、更少的或不同的步骤,并且图6中所示的步骤可以以不同的顺序执行。
图6中描述的强力搜索通过生成多个候选相机路径(例如,通过对相机路径估计应用不同的缩放、旋转和平移操作)并选择相对于平面布置图上的特征具有最高一致性得分的候选相机路径来将相机路径的估计与平面布置图对准。如上所述,在一些实施例中,可以将相机路径的第一估计划分为多个相机路径片段(例如,由于在一些捕获的帧中较差的特征质量)。在这些实施例中,可以对每个相机路径片段单独执行强力搜索,以将每个相机路径片段与平面布置图对准。在将每个相机路径片段与平面布置图对准之后,空间索引系统然后可以使用诸如运动数据的其他数据来填充对准的相机路径片段之间的相机路径中的间隙。然后,将对准的相机路径和填充的间隙的组合作为组合的相机路径输出。
为了便于描述,以下针对相机路径片段描述强力搜索。然而,强力搜索也可以在整个第一路径估计上执行。例如,在一些实施例中,相机路径的第一估计不被划分为片段(例如,因为360度帧序列中的每个帧包括足够高质量的特征)。在这些实施例中,在整个第一路径估计上执行图6中描述的强力搜索,以将第一路径估计与平面布置图对准。在这些实施例中,强力搜索的结果作为组合路径估计被输出。
空间索引系统130通过将诸如缩放、旋转和平移操作的各种变换应用于相机路径片段来生成610多个候选相机路径。
空间索引系统130将每个候选相机路径与平面布置图中的特征进行比较,并为每个候选相机路径生成620一致性得分。候选相机路径的一致性得分表示候选相机路径与平面布置图之间的一致性程度。
在一个实施例中,一致性得分是四个分量的加权和。第一分量表示候选相机路径与平面布置图中的特征之间的相似性等级。例如,可以通过为候选相机路径与平面布置图中的特征相交的每个实例生成相交得分,然后组合相交得分(例如,通过将它们加在一起)来计算第一分量。相交得分表示真实世界相机路径穿过被相交的特征的类型的可能性(例如,对于与门相交产生高相交得分,而对于与墙壁相交产生低相交得分)。
第二分量和第三分量基于从视频捕获系统110接收的位置数据。第二分量表示候选相机路径与来自视频捕获系统上的GPS接收器的数据之间的一致性程度。例如,通过组合由候选相机路径暗示的位置与由位置数据在相同时间点指定的位置之间的距离来计算第二分量。同时,第三分量表示候选相机路径与来自视频捕获系统110上的IPS接收器的数据之间的相似性程度。可以以与第二分量相同的方式计算第三分量。在空间索引系统130不从视频捕获系统110接收位置数据(或仅接收一种类型的位置数据)的实施例中,可从一致性得分中省略这些分量中的一个或两个。
通过将作为帧序列的所捕获的走查视频中的特征与来自先前在平面布置图上的相同位置处捕获的帧的特征进行比较来生成第四分量。在一致性得分包括第四分量的实施例中,空间索引系统130将先前捕获的帧与其布局规划位置相关联地存储(例如,作为模型存储器140中的模型之一的部分)。
在为候选相机路径生成一致性得分之后,空间索引系统530基于一致性得分选择一个候选相机路径。例如,空间索引系统630选择具有最高一致性得分的候选相机路径。
Ⅹ.相机路径生成——平面布置图与网格地图对准
图7A是示出根据一个实施例的用于使用平面布置图的网格地图来生成组合相机路径的示例方法700的流程图。在其他实施例中,方法700可以包括附加的、更少的或不同的步骤,并且图7A中所示的步骤可以以不同的顺序执行。
空间索引系统130基于平面布置图生成710网格地图。网格地图是其中每个节点表示平面布置图上的空间位置的图,并且两个节点之间的每个边指定表示两个节点之间的空间的可遍历性的过渡得分。基于两个节点之间的特征的存在来确定边的过渡得分。例如,如果在两个节点之间存在墙壁,则这两个节点之间的边的过渡得分较低,以指示相机路径不太可能在两个节点之间交叉。相反,如果在两个节点之间存在门,则两个节点之间的边的过渡得分较高。
在一个实施例中,经过墙壁的边的权重随时间调整。例如,在第一时间(例如,在构造的早期阶段,当用于墙壁的框架还没有就位时),用于这些边的权重被分配与用于穿过房间内的空的空间的边的权重相同的值。在第二时间(例如,在构造中的中间阶段,当框架已经被构造,但是干式墙还没有就位时),这些边的权重被赋予减小的值,以指示物理地穿过墙是可能的,但不是常见的。在第三时间(例如,在构造的后期阶段,当框架和干式墙都在适当位置时),用于这些边的权重被赋予低值以指示穿过墙在物理上是不可能的。对应于第一时间、第二时间和第三时间的时间可以作为用户输入从客户端设备160接收,基于提供给空间索引系统130的构造进度表来确定,或者通过对序列中的一些或全部图像帧执行特征识别来确定墙壁上的构造进度。
在一个实施例中,使用计算机视觉特征分类器来检测两个节点之间的平面布置图特征(诸如墙壁或门)的存在。在该实施例中,特征分类器从平面布置图的帧中提取帧特征(例如,SIFT SURG或ORB特征),并且使用图像帧特征来对出现在平面布置图中的各个位置处的不同特征(例如,墙壁和门)进行分类。例如,可以使用包括多个手动带注释的平面布置图的训练数据来训练特征分类器。在其他实施例中,可以手动地(例如,通过用户输入)或通过使用平面布置图内的元数据来检测两个节点之间的特征的存在。
图7B示出了平面布置图的示例,图7C示出了为该平面布置图生成的网格地图的示例。在图7C所示的示例性网格地图中,节点在水平和垂直方向上等距间隔,使得节点和边用于正方形的二维网格。具有较低过渡得分的边在图7C中用虚线示出,而具有较高过渡得分的边用较粗的线示出。如图7C所示,穿过墙壁的边具有较低的过渡得分,而穿过两个门的边具有较高的过渡得分。
在生成710网格地图之后,空间索引系统130执行迭代地图匹配算法以将相机路径的第一估计与网格地图匹配。例如,地图匹配算法可以是隐藏马尔可夫模型(HMM)、条件随机场(CRF)或一些其他类型的地图匹配算法。
在图7A所示的实施例中,空间索引系统130通过执行马尔可夫过程来执行地图匹配,以迭代地标识沿着通过网格地图的路径的节点,这些节点与相机路径的第一估计相匹配。
马尔可夫过程的迭代开始于标识720沿相机路径的一个节点。当启动该过程时,所标识的第一节点是相机路径的起点。起点可被提供为用户输入或基于从视频捕获系统110接收的位置数据(例如,GPS或IPS数据)来确定。
一旦标识了节点,空间索引系统130为网格地图中的多个其他节点生成730得分。在一个实施例中,空间索引系统130在图中除所标识的节点之外每个其他节点进行评分。在其他实施例中,空间索引系统130对该图中的其他节点的子集进行评分。例如,空间索引系统130对与所标识的节点分开小于阈值边数的每个节点进行评分(即,空间索引系统130对靠近所标识的节点的节点进行评分)。这可能是有用的,例如,当网格地图包括大量节点和边,并且计算强度太强而不能对每个其他节点评分。
基于所标识的节点与另一节点之间的边的过渡得分来生成730得分。所述得分进一步基于所标识的节点附近的相机路径的第一估计值的方向。例如,如果相机路径的第一估计行进到所标识的节点附近的左边,则为将所标识的节点连接到其左边的相邻节点的边生成较高的得分,而为将所标识的节点连接到其上方,下方和右边的相邻节点的边生成较低的得分。该得分还基于所标识的节点附近的相机路径的第一估计所行进的距离。例如,如果相机路径上的下一个6D姿态向量是4英尺远,并且网格地图中的相邻节点分开2英尺的距离,则与所标识的节点分开两个边的节点被分配较高的得分。
空间索引系统130使用每个其他节点的得分来选择740其他节点之一作为沿相机路径的下一节点。将所选择的节点指定为新标识的节点,并且重复生成730其他节点的得分和选择740相机路径中的下一节点的步骤,直到标识出沿着整个相机路径的节点为止。然后,空间索引系统130可以执行维特比算法,以基于所标识的节点来标识通过网格地图的最可能路径。然后,可以提供所标识的路径作为生成步骤440的相机路径的组合估计的输出。
Ⅻ.进度跟踪
图8是示出根据一个实施例的用于使用走查视频进度跟踪的示例方法的流程图。空间索引系统访问810建筑物的部分的平面布置图,该平面布置图标识建筑物的该部分内的一个或多个预期对象的位置。针对被跟踪的多个对象类型中的每个对象类型,空间索引系统基于被访问的平面布置图确定820建筑物中的对象类型的一个或多个预期对象。空间索引系统从相机系统接收830包括多个图像帧的视频,其中当相机系统移动通过建筑物的该部分时捕获该视频。空间索引系统标识840多个图像帧中的一个或多个对象,其中一个或多个对象中的每个对象与对象类型和建筑物的部分内的位置相关联,其中该对象被布置在建筑物的部分内的位置。空间索引系统从多个图像帧生成850建筑物的该部分的3D模型。对于所标识的一个或多个对象中的每个所标识的对象,空间索引系统修改860与所标识的对象被布置在其中的建筑物的部分内的位置相对应的3D模型的区域,以包括所标识的对象。针对每个对象类型,空间索引系统基于经修改的3D模型和被访问的平面布置图确定870所标识的对象存在于建筑物的该部分内的位置处的概率。针对每个对象类型,空间索引系统确定880一个或多个预期对象和与大于预定阈值的概率相关联的一个或多个所标识的对象之间的差值。针对每个对象类型,空间索引系统修改890界面以呈现所确定的差值。
XIII.硬件组件
图9是示出可在其上实现本文所述实施例的计算机系统900的框图。举例来说,在图1的上下文中,可使用图9中所描述的计算机系统900来实施视频捕获系统110、空间索引系统130和客户端设备160。视频捕获系统110、空间索引系统130或客户端设备160也可使用如图9所述的多个计算机系统900的组合来实现。计算机系统900可以是例如膝上型计算机、台式计算机、平板计算机或智能电话。
在一个实现中,系统900包括处理资源901、主存储器903、只读存储器(ROM)905、存储设备907和通信接口909。系统900包括用于处理信息的至少一个处理器901和用于存储信息和将由处理器901执行的指令的主存储器903,例如随机存取存储器(RAM)或其他动态存储设备。主存储器903还可以用于在要由处理器901执行的指令的执行期间存储临时变量或其他中间信息。系统900还可以包括ROM 905或其他静态存储设备,用于为处理器901存储静态信息和指令。提供诸如磁盘或光盘的存储设备907用于存储信息和指令。
通信接口909可以使系统900能够通过使用网络链路(无线或有线)与一个或多个网络(例如,网络140)通信。使用网络链路,系统900可以与一个或多个计算设备以及一个或多个服务器通信。系统900还可以包括显示设备911,例如阴极射线管(CRT),LCD监视器或电视机,用于向用户显示图形和信息。输入机构913,例如包括字母数字键和其他键的键盘,可以耦合到系统900,用于向处理器901传送信息和命令选择。输入机构913的其他非限制性的说明性示例包括鼠标,跟踪球,触摸敏感屏幕或光标方向键,用于向处理器901传送方向信息和命令选择,以及用于控制显示设备911上的光标移动。输入机构913的其他例子包括射频标识(RFID)读取器,条形码读取器,三维扫描仪和三维相机。
根据一个实施例,这里描述的技术由系统900响应于处理器901执行主存储器903中包含的一个或多个指令的一个或多个序列而执行。这些指令可以从另一机器可读介质(例如存储设备907)读入主存储器903。主存储器903中包含的指令序列的执行使处理器901执行这里描述的处理步骤。在替代实现方式中,可以使用硬连线电路来代替软件指令或与软件指令组合来实现在此描述的示例。因此,所描述的示例不限于硬件电路和软件的任何特定组合。
XIV.附加考虑
如本文所使用的,后面跟着一个或多个元件的术语“包括”不排除一个或多个附加元件的存在。术语“或”应当被解释为非排他性的“或”(例如,“A或B”可以指“A”、“B”或”“A和B”)而不是排他性的“或”。冠词“一”或“一个”是指以下元素的一个或多个实例,除非清楚地指定单个实例。
附图和书面描述描述了本公开的示例性实施例,并且不应被解释为列举本公开的必要特征。本发明的范围应当由在包含本说明书的专利中发布的任何权利要求来解释。
Claims (20)
1.一种方法,包括:
访问建筑物的部分的平面布置图,所述平面布置图标识所述建筑物的所述部分内的一个或多个预期对象的位置,其中所述一个或多个预期对象与一个或多个对象类型相关联;
针对每个对象类型,基于被访问的所述平面布置图来确定所述建筑物的所述部分中的所述对象类型的一个或多个预期对象;
从相机系统接收视频,所述视频包括当所述相机系统被移动通过所述建筑物的所述部分时被捕获的多个图像帧;
标识所述多个图像帧中的一个或多个对象,所述一个或多个对象中的每个对象与对象类型以及所述建筑物的所述部分内的位置相关联,其中所述对象被布置在所述建筑物的所述部分的所述位置;
从所述多个图像帧生成所述建筑物的所述部分的三维(3D)模型;
针对所标识的所述一个或多个对象中的每个所标识的对象,修改所述3D模型的区域以包括所述所标识的对象,所述区域对应于所述建筑物的所述部分内的所述位置,其中所述所标识的对象被布置在所述建筑物的所述部分的所述位置;
针对所标识的所述一个或多个对象中的每个所标识的对象,基于经修改的所述3D模型和被访问的所述平面布置图,确定所述所标识的对象存在于所述建筑物的所述部分内的所述位置处的概率;
针对每个对象类型,确定所述一个或多个预期对象和与大于预定阈值的概率相关联的所标识的一个或多个对象之间的差异;以及
针对每个对象类型,修改向用户显示的界面以呈现所确定的所述差异。
2.根据权利要求1所述的方法,其中所述3D模型基于由激光雷达系统捕获的3D信息而被生成。
3.根据权利要求2所述的方法,其中所述平面布置图利用与至少一个所述对象类型相关联的所述一个或多个预期对象的尺寸而被注释。
4.根据权利要求1所述的方法,其中针对所标识的所述一个或多个对象中的每个所标识的对象,还基于所述所标识的对象存在于所述位置处的一个或多个先前确定的概率来确定所述所标识的对象存在于所述位置处的概率。
5.根据权利要求1所述的方法,其中标识所述多个图像帧中的所述一个或多个对象还包括:
针对每个图像帧:
将机器学习模型应用于所述图像帧,所述机器学习模型被配置为确定与在所述图像帧中被捕获的所述对象相关联的所述位置和所述对象类型,并且基于所确定的所述位置和所述对象类型来对所述图像帧中的像素进行分类。
6.根据权利要求5所述的方法,其中所述机器学习模型基于包括训练环境的训练图像帧的训练数据集而被训练,所述训练图像帧利用在所述训练图像帧中被捕获的一个或多个对象的位置以及与所述一个或多个对象相关联的对象类型而被注释。
7.根据权利要求5所述的方法,其中所述机器学习模型基于对象检测和语义分割来确定与所述对象相关联的所述位置和对象类型。
8.根据权利要求5所述的方法,其中针对所标识的所述一个或多个对象中的每个所标识的对象,修改所述3D模型的区域还包括:
将所述图像帧中的经分类的所述像素投影到所述3D模型中的对应点。
9.根据权利要求1所述的方法,其中针对所标识的所述一个或多个对象中的每个所标识的对象确定所述所标识的对象存在于所述位置处的概率还包括:
将机器学习模型应用于经修改的所述3D模型和被访问的所述平面布置图,所述机器学习模型被配置为:
标识与所述所标识的对象相同的对象类型和相同的位置相关联的预期对象;
确定包括所述预期对象的被访问的所述平面布置图的区域与包括所述所标识的对象的所述3D模型的区域之间的重叠;以及
基于所述重叠来确定所述所标识的对象存在的概率。
10.根据权利要求9所述的方法,其中所述机器学习模型基于训练数据集而被训练,所述训练数据集包括训练环境的带注释的3D模型和所述训练环境的带注释的平面布置图。
11.根据权利要求9所述的方法,其中所述机器学习模型基于训练数据集而被训练,所述训练数据集包括训练环境的未带注释的3D模型、所述训练环境的带注释的平面布置图、以及所述训练环境的一个或多个图像帧。
12.根据权利要求1所述的方法,还包括:
针对每个对象类型,比较所述一个或多个预期对象的总数量和与大于所述预定阈值的概率相关联的所标识的所述一个或多个对象的总数量;以及
针对每个对象类型,呈现所述一个或多个预期对象的所述总数量和与大于所述预定阈值的概率相关联的所标识的所述一个或多个对象的总数量的所述比较。
13.根据权利要求12所述的方法,其中所述一个或多个预期对象的所述总数量和与大于所述预定阈值的概率相关联的所标识的所述一个或多个对象的所述总数量的比较中的变化被呈现为时间的函数。
14.一种方法,包括:
访问环境的带注释的比例图,所述带注释的比例图标识所述环境内的一个或多个预期对象的位置,其中所述一个或多个预期对象与一个或多个对象类型相关联;
针对每个对象类型,基于所述带注释的比例图来确定一个或多个预期对象;
从相机系统接收包括多个图像帧的视频;
基于所述多个图像帧来生成所述环境的三维(3D)模型;
标识所述3D模型中的一个或多个对象,所标识的所述一个或多个对象中的每个所标识的对象与所述3D模型的区域相关联,所述区域对应于所述环境内的位置;
针对所标识的所述一个或多个对象中的每个所标识的对象,确定所述所标识的对象存在于所述环境内的所述位置处的概率;
针对每个对象类型,确定所述一个或多个预期对象和与大于预定阈值的概率相关联的所标识的一个或多个对象之间的差异;以及
针对每个对象类型,修改界面以呈现所述差异。
15.根据权利要求14所述的方法,其中所述环境是正在构造的建筑物,并且所述预期对象是在所述构造完成之后被预期在所述建筑物中的对象。
16.根据权利要求14所述的方法,其中所述环境是酒店房间,并且所述一个或多个预期对象是在客人从所述酒店房间结账离开之后被预期在所述酒店房间中的对象。
17.根据权利要求14所述的方法,其中所述环境是商店,并且所述一个或多个预期对象是所述商店的库存中的产品。
18.根据权利要求14所述的方法,其中所述带注释的比例图包括与至少一个对象类型相关联的所述一个或多个预期对象的尺寸。
19.根据权利要求14所述的方法,其中针对所标识的所述一个或多个对象中的每个所标识的对象确定所述所标识的对象存在于所述位置处的概率还包括:
将机器学习模型应用于所述3D模型和所述带注释的比例图,所述机器学习模型被配置为:
标识与所述所标识的对象相同的对象类型和相同的位置相关联的预期对象;
确定所述预期对象的尺寸与包括所述所标识的对象的所述3D模型的所述区域的尺寸之间的重叠;以及
基于所述重叠来确定所述所标识的对象存在的概率。
20.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储可执行指令,所述可执行指令在由硬件处理器执行时,使所述硬件处理器执行步骤,所述步骤包括:
访问环境的带注释的比例图,所述带注释的比例图标识所述环境内的一个或多个预期对象的位置,其中所述一个或多个预期对象与一个或多个对象类型相关联;
针对每个对象类型,基于所述带注释的比例图来确定一个或多个预期对象;
从相机系统接收包括多个图像帧的视频;
基于所述多个图像帧来生成所述环境的三维(3D)模型;
标识所述3D模型中的一个或多个对象,所标识的所述一个或多个对象中的每个所标识的对象与所述3D模型的区域相关联,所述区域对应于所述环境内的位置;
针对所标识的所述一个或多个对象中的每个所标识的对象,确定所述所标识的对象存在于所述环境内的所述位置处的概率;
针对每个对象类型,确定所述一个或多个预期对象和与大于预定阈值的概率相关联的所标识的一个或多个对象之间的差异;以及
针对每个对象类型,修改界面以呈现所述差异。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063032452P | 2020-05-29 | 2020-05-29 | |
US63/032,452 | 2020-05-29 | ||
US17/225,802 | 2021-04-08 | ||
US17/225,802 US11436812B2 (en) | 2020-05-29 | 2021-04-08 | Machine learning based object identification using scaled diagram and three-dimensional model |
PCT/US2021/028026 WO2021242439A1 (en) | 2020-05-29 | 2021-04-19 | Machine learning based object identification using scaled diagram and three-dimensional model |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115699098A true CN115699098A (zh) | 2023-02-03 |
Family
ID=78705292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180037564.0A Pending CN115699098A (zh) | 2020-05-29 | 2021-04-19 | 使用比例图和三维模型的基于机器学习的对象标识 |
Country Status (5)
Country | Link |
---|---|
US (3) | US11436812B2 (zh) |
EP (1) | EP4136576A4 (zh) |
JP (1) | JP7280452B2 (zh) |
CN (1) | CN115699098A (zh) |
WO (1) | WO2021242439A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020247783A1 (en) * | 2019-06-06 | 2020-12-10 | Bluebeam, Inc | Methods and systems for establishing a linkage between a three-dimensional electronic design file and a two-dimensional design document |
KR102198172B1 (ko) * | 2020-08-06 | 2021-01-04 | (주)한스타일엔지니어링 | 촬영 정보 관리 방법 및 촬영 정보 관리 방법을 실행시키는 프로그램이 설치된 작업자 단말기 |
CN116406461B (zh) * | 2020-10-13 | 2023-10-20 | 弗莱瑞尔公司 | 通过自动分析传感器数据生成物理结构和环境的测量结果 |
US20230196304A1 (en) * | 2021-12-17 | 2023-06-22 | Ford Global Technologies, Llc | Nonvehicle based repair and maintenance identification by vehicle |
TWI819925B (zh) * | 2022-12-19 | 2023-10-21 | 緯創資通股份有限公司 | 物件偵測裝置和方法 |
CN116625113B (zh) * | 2023-07-25 | 2023-09-26 | 邢台轧辊沃川装备制造有限公司 | 一种适用于酸性中频炉炉衬的烧结设备及工艺 |
US11972536B1 (en) | 2023-11-03 | 2024-04-30 | Dalux Aps | Monitoring progress of object construction |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681661A (zh) * | 2011-01-31 | 2012-09-19 | 微软公司 | 在玩游戏中使用三维环境模型 |
CN103975365A (zh) * | 2011-12-01 | 2014-08-06 | 高通股份有限公司 | 用于俘获和移动真实世界对象的3d模型和真实比例元数据的方法和系统 |
US20190005719A1 (en) * | 2017-06-29 | 2019-01-03 | Open Space Labs, Inc. | Automated spatial indexing of images based on floorplan features |
CN109643368A (zh) * | 2016-06-24 | 2019-04-16 | 帝国科技及医学学院 | 检测视频数据中的对象 |
CN109964236A (zh) * | 2016-11-01 | 2019-07-02 | 斯纳普公司 | 用于检测图像中的对象的神经网络 |
US20200074668A1 (en) * | 2018-09-05 | 2020-03-05 | Rakuten, Inc. | Method and apparatus for assigning image location and direction to a floorplan diagram based on artificial intelligence |
US20200154095A1 (en) * | 2018-11-12 | 2020-05-14 | Open Space Labs, Inc. | Automated Spatial Indexing of Images to Video |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8207964B1 (en) | 2008-02-22 | 2012-06-26 | Meadow William D | Methods and apparatus for generating three-dimensional image data models |
US20070092110A1 (en) * | 2004-11-08 | 2007-04-26 | Li-Qun Xu | Object tracking within video images |
US9036028B2 (en) * | 2005-09-02 | 2015-05-19 | Sensormatic Electronics, LLC | Object tracking and alerts |
JP4984640B2 (ja) * | 2006-05-17 | 2012-07-25 | トヨタ自動車株式会社 | 認識装置、地図データ作成装置および認識方法 |
US8611673B2 (en) | 2006-09-14 | 2013-12-17 | Parham Aarabi | Method, system and computer program for interactive spatial link-based image searching, sorting and/or displaying |
US8270767B2 (en) | 2008-04-16 | 2012-09-18 | Johnson Controls Technology Company | Systems and methods for providing immersive displays of video camera information from a plurality of cameras |
US9870629B2 (en) | 2008-06-20 | 2018-01-16 | New Bis Safe Luxco S.À R.L | Methods, apparatus and systems for data visualization and related applications |
US8711206B2 (en) | 2011-01-31 | 2014-04-29 | Microsoft Corporation | Mobile camera localization using depth maps |
US9324190B2 (en) * | 2012-02-24 | 2016-04-26 | Matterport, Inc. | Capturing and aligning three-dimensional scenes |
US10139985B2 (en) | 2012-06-22 | 2018-11-27 | Matterport, Inc. | Defining, displaying and interacting with tags in a three-dimensional model |
US9721046B2 (en) | 2013-03-15 | 2017-08-01 | Aditazz, Inc. | System and method for realizing a building system that involves computer based matching of form to function |
US9888215B2 (en) | 2013-04-26 | 2018-02-06 | University Of Washington | Indoor scene capture system |
US10127721B2 (en) | 2013-07-25 | 2018-11-13 | Hover Inc. | Method and system for displaying and navigating an optimal multi-dimensional building model |
US9990760B2 (en) | 2013-09-03 | 2018-06-05 | 3Ditize Sl | Generating a 3D interactive immersive experience from a 2D static image |
US10002640B2 (en) | 2014-02-28 | 2018-06-19 | Microsoft Technology Licensing, Llc | Hyper-lapse video through time-lapse and stabilization |
CN106663411A (zh) | 2014-11-16 | 2017-05-10 | 易欧耐特感知公司 | 用于增强现实准备、处理和应用的系统和方法 |
EP3275204B1 (en) | 2015-03-24 | 2020-07-22 | Carrier Corporation | System and method for capturing and analyzing multidimensional building information |
JP6350374B2 (ja) | 2015-04-17 | 2018-07-04 | トヨタ自動車株式会社 | 路面検出装置 |
WO2017011793A1 (en) | 2015-07-16 | 2017-01-19 | Google Inc. | Camera pose estimation for mobile devices |
US10163271B1 (en) | 2016-04-04 | 2018-12-25 | Occipital, Inc. | System for multimedia spatial annotation, visualization, and recommendation |
US11526744B2 (en) * | 2016-07-09 | 2022-12-13 | Doxel, Inc. | Monitoring construction of a structure |
FR3067496B1 (fr) * | 2017-06-12 | 2021-04-30 | Inst Mines Telecom | Procede d'apprentissage de descripteurs pour la detection et la localisation d'objets dans une video |
EP3506160B1 (en) * | 2017-12-28 | 2022-06-01 | Dassault Systèmes | Semantic segmentation of 2d floor plans with a pixel-wise classifier |
US10792557B1 (en) * | 2018-03-16 | 2020-10-06 | Gemiini Educational Systems, Inc. | Memory puzzle system |
US10657691B2 (en) * | 2018-03-27 | 2020-05-19 | Faro Technologies, Inc. | System and method of automatic room segmentation for two-dimensional floorplan annotation |
-
2021
- 2021-04-08 US US17/225,802 patent/US11436812B2/en active Active
- 2021-04-19 WO PCT/US2021/028026 patent/WO2021242439A1/en unknown
- 2021-04-19 JP JP2022573324A patent/JP7280452B2/ja active Active
- 2021-04-19 EP EP21812782.7A patent/EP4136576A4/en active Pending
- 2021-04-19 CN CN202180037564.0A patent/CN115699098A/zh active Pending
-
2022
- 2022-07-27 US US17/875,388 patent/US11734882B2/en active Active
-
2023
- 2023-06-30 US US18/346,012 patent/US20230351684A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681661A (zh) * | 2011-01-31 | 2012-09-19 | 微软公司 | 在玩游戏中使用三维环境模型 |
CN103975365A (zh) * | 2011-12-01 | 2014-08-06 | 高通股份有限公司 | 用于俘获和移动真实世界对象的3d模型和真实比例元数据的方法和系统 |
CN109643368A (zh) * | 2016-06-24 | 2019-04-16 | 帝国科技及医学学院 | 检测视频数据中的对象 |
CN109964236A (zh) * | 2016-11-01 | 2019-07-02 | 斯纳普公司 | 用于检测图像中的对象的神经网络 |
US20190005719A1 (en) * | 2017-06-29 | 2019-01-03 | Open Space Labs, Inc. | Automated spatial indexing of images based on floorplan features |
US20200074668A1 (en) * | 2018-09-05 | 2020-03-05 | Rakuten, Inc. | Method and apparatus for assigning image location and direction to a floorplan diagram based on artificial intelligence |
US20200154095A1 (en) * | 2018-11-12 | 2020-05-14 | Open Space Labs, Inc. | Automated Spatial Indexing of Images to Video |
Also Published As
Publication number | Publication date |
---|---|
US11734882B2 (en) | 2023-08-22 |
US20230351684A1 (en) | 2023-11-02 |
WO2021242439A1 (en) | 2021-12-02 |
JP2023519641A (ja) | 2023-05-11 |
US11436812B2 (en) | 2022-09-06 |
US20220375183A1 (en) | 2022-11-24 |
US20210375062A1 (en) | 2021-12-02 |
EP4136576A4 (en) | 2024-05-08 |
EP4136576A1 (en) | 2023-02-22 |
JP7280452B2 (ja) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11386616B2 (en) | Automated spatial indexing of images based on floorplan features | |
JP7280452B2 (ja) | 縮尺図と3次元モデルを用いた機械学習ベースのオブジェクト識別 | |
US11995885B2 (en) | Automated spatial indexing of images to video | |
CN116075818B (zh) | 走查视频中的图像搜索 | |
US11922591B2 (en) | Rendering depth-based three-dimensional model with integrated image frames |
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 |