CN116349222A - 利用集成图像帧渲染基于深度的三维模型 - Google Patents
利用集成图像帧渲染基于深度的三维模型 Download PDFInfo
- Publication number
- CN116349222A CN116349222A CN202180069140.2A CN202180069140A CN116349222A CN 116349222 A CN116349222 A CN 116349222A CN 202180069140 A CN202180069140 A CN 202180069140A CN 116349222 A CN116349222 A CN 116349222A
- Authority
- CN
- China
- Prior art keywords
- model
- image frame
- interface portion
- interface
- frames
- 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.)
- Granted
Links
- 238000009877 rendering Methods 0.000 title description 3
- 239000013598 vector Substances 0.000 claims description 55
- 238000000034 method Methods 0.000 claims description 39
- 230000003993 interaction Effects 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 6
- 230000004807 localization Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims 2
- 230000000007 visual effect Effects 0.000 abstract description 6
- 230000033001 locomotion Effects 0.000 description 34
- 238000012800 visualization Methods 0.000 description 19
- 230000010354 integration Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 239000000284 extract Substances 0.000 description 6
- 238000000605 extraction Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 241001061260 Emmelichthys struhsakeri Species 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 5
- 230000011218 segmentation Effects 0.000 description 4
- 230000007613 environmental effect Effects 0.000 description 3
- 230000005484 gravity Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000010304 firing Methods 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
- 229910000831 Steel Inorganic materials 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000010959 steel Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- 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/006—Mixed reality
-
- 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/86—Combinations of lidar systems with systems other than lidar, radar or sonar, e.g. with direction finders
-
- 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
- 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
- G01S7/00—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
- G01S7/48—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
- G01S7/4808—Evaluating distance, position or velocity data
-
- 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
- G01S7/00—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
- G01S7/48—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
- G01S7/51—Display arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/003—Navigation within 3D models or images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04806—Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
-
- 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
- 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/004—Annotating, labelling
-
- 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/028—Multiple view windows (top-side-front-sagittal-orthogonal)
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Electromagnetism (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Computing Systems (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
- Image Generation (AREA)
- Optical Radar Systems And Details Thereof (AREA)
Abstract
一种系统,将环境的3D模型与环境的图像帧对准,并生成显示3D模型的一部分和对应的图像帧的可视化界面。系统接收在环境中收集的LIDAR数据并基于LIDAR数据生成3D模型。对于每一图像帧,系统将图像帧与3D模型对准。在将图像帧与3D模型对准之后,当系统在界面中展示3D模型的一部分时,其还展示对应于3D模型的该部分的图像帧。
Description
相关申请的交叉引用
本申请要求于2021年7月2日提交的序列号为:17/367,204的美国非临时申请的优先权,该申请要求于2020年10月9日提交的序列号为63/090,095的美国临时申请以及于2021年3月24日提交的序列号为63/165,682的美国临时申请的优先权,上述每项申请通过引用的方式全文并入本文。
技术领域
本公开涉及生成环境模型,并且尤其涉及将基于深度信息(例如光检测和测距或LIDAR数据)生成的环境三维模型与环境的图像帧对准,并将所述三维模型的一部分与对应的图像帧一起展示。
背景技术
环境的图像可以用于查看与环境相关联的细节而不必亲自造访该环境。例如,房产中介可以希望通过捕获房屋中房间的一系列照片来创建房屋的虚拟参观,以允许感兴趣的各方虚拟地观看该房屋。类似地,承包商可以希望通过在施工期间在不同点处捕获施工现场的图像并比较在不同时间捕获的图像来监测施工现场的进度。然而,图像限于二维(2D),因此可以使用LIDAR系统生成环境的三维(3D)模型以提供关于环境的额外细节。当同时展示环境的多个表示时,与单独考虑图像和3D模型时相比,可以提供关于环境的更有用的洞察。然而,当存在大量的图像和单独的3D模型时,手动查看图像并将图像与3D模型的对应部分匹配可能是困难且耗时的。
发明内容
空间索引系统接收在环境中捕获的图像帧和在相同环境中收集的LIDAR数据,并将基于LIDAR数据生成的3D模型与图像帧对准。空间索引系统通过将每个图像帧映射到3D模型的一部分来将3D模型与图像帧对准。在一些实施例中,当移动设备在环境中移动时,移动设备同时捕获图像帧和LIDAR数据,并且基于时间戳将图像帧映射到LIDAR数据。在一些实施例中,视频捕获系统和LIDAR系统是分离的系统,并且基于特征矢量将图像帧映射到3D模型。在对准之后,空间索引系统产生展示3D模型的所选择部分和对应于3D模型的所选择部分的图像帧的界面。
附图说明
图1示出了根据一个实施例的空间索引系统的系统环境。
图2A示出了根据一个实施例的路径模块的框图。
图2B示出了根据一个实施例的模型生成模块的框图。
图3A-图3D示出了根据一个实施例的显示包括3D模型的第一界面部分和包括与3D模型对准的图像的第二界面部分的模型可视化界面的示例。
图4是示出根据一个实施例的用于使用平面布置中的特征对帧进行自动空间索引的示例方法的流程图。
图5是示出根据一个实施例的用于生成显示与图像帧对准的3D模型的界面的示例方法的流程图。
图6是示出根据一个实施例的实现本文实施例的计算机系统的示图。
具体实施方式
I.概述
空间索引系统接收包括描绘环境的图像帧序列的视频,并将图像帧与使用LIDAR数据生成的环境的3D模型对准。图像帧由沿路径移动通过环境的视频捕获系统捕获。LIDAR数据由LIDAR系统收集,并且空间索引系统基于从LIDAR系统接收的LIDAR数据生成环境的3D模型。空间索引系统将图像与3D模型对准。在一些实施例中,LIDAR系统与视频捕获系统集成,使得图像帧和LIDAR数据被同时捕获并且是时间同步的。基于时间同步,空间索引系统可以确定捕获每个图像帧的位置,并确定图像帧所对应的3D模型的一部分。在其它实施例中,LIDAR系统与视频捕获系统分离,并且空间索引系统可以使用与LIDAR数据相关联的特征矢量和与图像帧相关联的特征矢量来进行对准。
空间索引系统生成具有用于显示3D模型的第一界面部分和用于显示图像帧的第二界面部分的界面。空间索引系统可以从用户接收指示要显示的3D模型的一部分的交互。例如,所述交互可以包括选择与3D模型内的位置相关联的航点图标或选择3D模型中的对象。空间索引系统标识与3D模型的所选择部分相关联的图像帧,并在第二界面部分中显示对应的图像帧。当空间索引系统接收到指示要显示的3D模型的另一部分的另一交互时,更新界面以在第一界面中显示3D模型的另一部分,并显示与3D模型的另一部分相关联的不同图像帧。
II.系统环境
图1示出了根据一个实施例的用于空间索引系统的系统环境100。在图1所示的实施例中,系统环境100包括视频捕获系统110,网络120,空间索引系统130,LIDAR系统150和客户端设备160。虽然在图1中示出了单个视频捕获系统110、单个LIDAR系统150和单个客户端设备160,但是在一些实施方式中,空间索引系统130与多个视频捕获系统110、多个LIDAR系统150和/或多个客户端设备160交互。
随着视频捕获系统110沿路径移动,视频捕获系统110收集帧数据、运动数据和位置数据中的一项或多项。在图1所示的实施例中,视频捕获系统110包括摄像头112、运动传感器114和位置传感器116。视频捕获系统110被实现为具有适合于沿路径移动的形状因数的设备。在一个实施例中,视频捕获系统110是用户沿路径物理地移动的便携式设备,诸如轮式手推车或安装在或集成到穿戴在用户身体上的物体(例如背包或礼帽)上的设备。在另一实施例中,视频捕获系统110安装在或集成到车辆上。车辆可以是例如轮式车辆(例如,轮式机器人)或飞行器(例如,四旋翼无人机),并且可以被配置成沿着预先配置的路线自主行进或由人类用户实时控制。在一些实施例中,视频捕获系统110是诸如智能电话、平板计算机或膝上型计算机的移动计算设备的一部分。视频捕获系统110可由用户携带,并用于在用户沿路径移动通过环境时捕获视频。
随着视频捕获系统110沿路径移动,摄像头112收集包括图像帧序列的视频。在一些实施例中,摄像头112是捕获360度帧的360度摄像头。摄像头112可以通过在视频捕获系统110中布置多个非360度摄像头来实现,使得它们相对于彼此指向变化的角度,并且配置多个非360度摄像头以近似同时地从它们相应的角度捕获环境的帧。然后可以组合图像帧以形成单个360度帧。例如,摄像头112可以通过从指向相对方向的两个180°全景摄像头基本上同时捕获帧来实现。在其他实施例中,摄像头112具有窄视场并且被配置成捕获典型的2D图像而不是360度帧。
由视频捕获系统110捕获的帧数据可以进一步包括帧时间戳。帧时间戳是对应于视频捕获系统110捕获每一帧的时间的数据。如这里所使用的,如果在彼此的阈值时间间隔内(例如,在1秒内、在100毫秒内等)捕获帧,则这些帧基本上是同时捕获的。
在一个实施例中,当视频捕获系统110在整个环境中移动时,摄像头112捕获漫游(walkthrough)视频。所述漫游视频包括可以以任何帧率(例如,高帧率(例如,每秒60帧)或低帧率(例如,每秒1帧))捕获的图像帧序列。通常,以较高帧率捕获图像帧序列产生更鲁棒的结果,而以较低帧率捕获图像帧序列使减少数据存储和传输成为可能。在另一个实施例中,摄像头112捕获由固定时间间隔分割的静止帧序列。在又一实施例中,摄像头112捕获单个图像帧。当摄像头112捕获帧数据时,运动传感器114和位置传感器116分别收集运动数据和位置数据。运动传感器114可以包括例如加速度计和陀螺仪。运动传感器114还可以包括测量视频捕获系统110周围的磁场的方向的磁力计。
位置传感器116可以包括用于全球导航卫星系统的接收器(例如,GPS接收器),其确定视频捕获系统110的纬度和经度坐标。在一些实施例中,位置传感器116附加地或可选地包括用于室内定位系统(IPS)的接收器,该接收器基于从放置在环境中的已知位置处的发射器接收的信号来确定视频捕获系统的位置。例如,发射RF指纹的多个射频(RF)发射器被放置在整个环境中,并且位置传感器116还包括检测RF指纹并基于RF指纹的相对强度来估计视频捕获系统110在环境内的位置的接收器。
尽管图1中所示的视频捕获系统110包括摄像头112、运动传感器114和位置传感器116,但在其它实施例中可从视频捕获系统110中省略组件112、114、116中的一些组件。例如,可以从视频捕获系统中省略运动传感器114和位置传感器116中的一者或两者。
在一些实施例中,视频捕获系统110被实现为计算设备(例如,图6中所示的计算机系统600)的一部分,该计算设备还包括用于存储捕获到的数据的存储装置和通过网络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推送通知服务(APNs)和GOOGLE云消息传送(GCM)。在网格110上交换的数据可以使用任何合适的格式来表示,例如超文本标记语言(HTML)、可扩展标记语言(XML)或JavaScript对象符号(JSON)。在一些实施例中,网络120的所有或一些通信链路可以使用任何适当的一种或多种技术来加密。
随着光检测和测距(LIDAR)系统150在整个环境中移动,光检测和测距(LIDAR)系统150使用激光器152和检测器154收集表示环境的三维数据。激光器152发射激光脉冲,并且检测器154检测所述激光脉冲在被环境中的物体或表面上的多个点反射之后何时返回到LIDAR系统150。LIDAR系统150还包括指示LIDAR系统150的运动和位置的运动传感器156和位置传感器158,其可用于确定发射所述激光脉冲的方向。LIDAR系统150在检测到激光脉冲被环境中的物体表面或表面反射之后生成与其相关联的LIDAR数据。LIDAR数据可以包括一组(x、y、z)坐标,其基于发射激光脉冲的已知方向以及在激光器152的发射和检测器154的检测之间的期间来确定。LIDAR数据还可以包括其它属性数据,例如检测到的激光脉冲的强度。在其它实施例中,LIDAR系统150可以由另一深度感测系统代替。深度感测系统的示例包括雷达系统,3D摄像头系统等。
在一些实施例中,LIDAR系统150与视频捕获系统110集成在一起。例如,LIDAR系统150和视频捕获系统110可以是被配置为捕获视频和LIDAR数据的智能电话的组件。视频捕获系统110和LIDAR系统150可以同时操作,使得视频捕获系统110捕获环境的视频同时LIDAR系统150收集LIDAR数据。当视频捕获系统110和LIDAR系统150集成时,运动传感器114可以与运动传感器156相同,并且位置传感器116可以与位置传感器158相同。LIDAR系统150和视频捕获系统110可以被对准,且LIDAR数据中的点可以被映射到图像帧中的与所述点同时被捕获的像素,使得所述点与图像数据(例如,RGB值)相关联。LIDAR系统150还可以收集与点相关联的时间戳。因此,图像帧和LIDAR数据可以基于时间戳与彼此相关联。如在这里所使用的,LIDAR数据的时间戳可以对应于激光脉冲向一点发射的时间或者检测器154检测到激光脉冲的时间。即,对于与指示捕获图像帧的时间的图像帧相关联的时间戳,LIDAR数据中的一个或多个点可与同一时间戳相关联。在一些实施例中,可以在不使用视频捕获系统110时使用LIDAR系统150,反之亦然。在一些实施例中,LIDAR系统150是与视频捕获系统110分离的系统。在此类实施例中,视频捕获系统110的路径可以不同于LIDAR系统150的路径。
空间索引系统130接收由视频捕获系统110捕获的图像帧和由LIDAR系统150收集的LIDAR,执行空间索引过程以自动标识捕获图像帧和LIDAR数据中的每一者的空间位置,以将图像帧与使用LIDAR数据生成的3D模型对准。在将图像帧与3D模型对准之后,空间索引系统130提供可视化界面,该可视化界面允许客户端设备160选择3D模型的一部分以与对应的图像帧一起并排查看。在图1所示的实施例中,空间索引系统130包括路径模块132、路径存储器134、平面布置存储器136、模型生成模块138、模型存储器140、模型集成模块142、界面模块144和查询模块146。在其它实施例中,空间索引系统130可以包括更少的、不同的或附加的模块。
路径模块132接收漫游视频中的图像帧以及由视频捕获系统110收集的其它位置和运动数据,并基于所接收的帧和数据确定视频捕获系统110的路径。在一个实施例中,路径被定义为包括帧序列的漫游视频中的每一帧的6D摄像头姿态。每一帧的6D摄像头姿态是捕获图像帧时摄像头112的相对位置和定向的估计。路径模块132可以将路径存储在路径存储器134中。
在一个实施例中,路径模块132使用SLAM(同时定位和地图绘制)算法来同时(1)通过推断摄像头112的位置和方向来确定路径的估计,以及(2)使用直接方法或使用从作为帧序列的漫游视频中提取的界标特征(诸如定向FAST和旋转BRIEF(ORB)、比例不变特征变换(SIFT)、加速鲁棒特征(SURF)等)来对环境建模。路径模块132随时间输出六维(6D)摄像头姿态的矢量,对于序列中的每一帧具有一个6D矢量(三维用于定位,三维用于定向),并且6D矢量可以存储在路径存储器134中。
空间索引系统130还可以包括平面布置图存储器136,其存储一个或多个平面布置图,例如由视频捕获系统110捕获的环境的平面布置图。如本文所提及的,平面布置图是从自上而下的角度观察环境(例如,建筑物或结构的一部分)的按比例的二维(2D)图示。在可选的实施例中,平面布置图可以是预期完成的建筑的3D模型而不是2D图(例如,建筑信息建模(BIM)模型)。可以标注平面布置图以指定预期在环境中的物理对象的位置、尺寸和类型。在一些实施例中,平面布置图由与客户端设备160相关联的用户手动标注并提供给空间索引系统130。在其他实施例中,空间索引系统130使用机器学习模型来标注平面布置图,该机器学习模型是使用经标注的平面布置图的训练数据集来训练的,以标识预期在环境中的物理对象的位置、尺寸和对象类型。建筑物或结构的不同部分可以由单独的平面布置图表示。例如,空间索引系统130可以为建筑物、单元或子结构的每一楼层存储单独的楼层平面图。
模型生成模块138生成环境的3D模型。在一些实施例中,3D模型是基于由视频捕获系统110捕获的图像帧。为了基于图像帧生成环境的3D模型,模型生成模块138可以使用例如运动恢复结构(SfM)、同时定位和地图绘制(SLAM)、单目深度图生成或其它方法的方法。可以使用来自环境的漫游视频的图像帧、每个图像帧的相对位置(如由图像帧的6D姿态所指示的)、以及(可选地)每个图像帧在环境的平面布置图上的绝对位置来生成3D模型。来自视频捕获系统110的图像帧可以是能够被组合以生成3D模型的立体图像。在一些实施例中,模型生成模块138使用摄影测量法基于图像帧生成3D点云。在一些实施例中,模型生成模块138基于来自系统150的LIDAR数据生成3D模型。模型生成模块138可以处理LIDAR数据以生成与用图像帧生成的3D模型相比可具有更高分辨率的点云。在生成3D模型之后,模型生成模块138将3D模型存储在模型存储器140中。
在一个实施例中,模型生成模块136从路径模块132或路径存储器134接收帧序列及其对应的路径(例如,为作为帧序列的漫游视频中的每一帧指定6D姿态的6D姿态矢量),并提取该序列中的图像帧的子集及其对应的6D姿态以包括在3D模型中。例如,如果作为帧序列的漫游视频是以30帧每秒捕获的视频中的帧,则模型生成模块136通过以0.5秒的间隔提取帧及其相应的6D姿态来对图像帧进行下采样。下面参考图2B详细描述模型生成模块136的实施例。
在图1所示的实施例中,3D模型由空间索引系统130中的模型生成模块138生成。然而,在可选的实施例中,模型生成模块138可由第三方应用程序(例如,安装在包括视频捕获系统110和/或LIDAR系统150的移动设备上的应用程序)生成。由视频捕获系统110捕获的图像帧和/或由LIDAR系统150收集的LIDAR数据可经由网络120传输到与处理数据以生成3D模型的应用程序相关联的服务器。然后,空间索引系统130可以访问所生成的3D模型,并将该3D模型与和该环境相关联的其他数据对准,以向一个或多个用户展示所对准的模型。
模型集成模块142将3D模型与描述环境的其它数据集成。其它类型的数据可以包括一个或多个图像(例如,来自视频捕获系统110的图像帧)、2D平面布置图、图表和描述环境特征的标注。模型集成模块142确定3D模型和其它数据的相似性,以将其它数据与3D模型的相关部分对准。模型集成模块142可以确定其他数据对应于3D模型的哪个部分,并且与其他数据相关联地存储与所确定的3D模型部分相关联的标识符。
在一些实施例中,模型集成模块142可以基于时间同步将基于LIDAR数据生成的3D模型与一个或多个图像帧对准。如上所述,视频捕获系统110和LIDAR系统150可以被集成到同时捕获图像帧和LIDAR数据的单个系统中。对于每个图像帧,模型集成模块142可以确定捕获图像帧的时间戳并标识LIDAR数据中与相同的时间戳相关联的点集。然后,模型集成模块142可以确定3D模型的哪个部分包括所标识的点集,并将图像帧与该部分对准。此外,模型集成模块142可以将图像帧中的像素映射到该点集。
在一些实施例中,模型集成模块142可以将使用LIDAR数据生成的点云(以下称为“LIDAR点云”)与基于图像帧生成的另一点云(以下称为“低分辨率点云”)对准。当LIDAR系统150和视频捕获系统110是分离的系统时,可以使用该方法。模型集成模块142可为LIDAR点云中的每个点和低分辨率点云中的每个点生成特征矢量(例如,使用ORB、SIFT、HardNET)。模型集成模块142可以基于特征距离确定特征矢量之间的特征距离以及LIDAR点云与低分辨率点云之间的匹配点对。使用例如随机样本一致性(RANSAC)或非线性优化来确定LIDAR点云和低分辨率点云之间的3D姿态,以产生用于点对的更大数目的几何图形误差。由于低分辨率点云是用图像帧生成的,因此LIDAR点云也与图像帧本身对准。
在一些实施例中,模型集成模块142可以基于与图表或一个或多个图像帧相关联的标注将3D模型与图表或一个或多个图像帧对准。这些标注可以由用户提供或由空间索引系统130使用图像识别或机器学习模型来确定。这些标注可以描述环境中的对象或表面的特征,诸如尺寸或对象类型。模型集成模块142可以提取3D模型内的特征并将所提取的特征与标注进行比较。例如,如果3D模型表示建筑物内的房间,则从3D模型提取的特征可用于确定房间的尺寸。可以将所确定的尺寸与用建筑物内的各个房间的尺寸来标注的建筑工地的平面布置图进行比较,并且模型集成模块142可以标识与所确定的尺寸相匹配的平面布置图中的房间。在一些实施例中,模型集成模块142可以对3D模型执行3D对象检测,并且基于图表或一个或多个图像将3D对象检测的输出与来自图像识别或机器学习模型的输出进行比较。
在一些实施例中,可以基于来自用户的输入与图表来将3D模型手动对准。3D模型和图表可以展示给与用户相关联的客户端设备160,并且用户可以选择图表中指示对应于3D模型的位置的位置。例如,用户可以在平面布置图表中对应于LIDAR数据的位置放置标记(pin)。
界面模块144向客户端设备160提供可视化界面以展示与环境相关联的信息。界面模块144可以响应于从客户端设备160接收到查看表示环境的一个或多个模型的请求而生成可视化界面。界面模块144可以首先生成可视化界面以包括表示来自平面布置图存储器136的环境的平面布置图的2D俯视地图界面。2D俯视地图可以是交互式界面,使得点击地图上的点导航到3D模型的对应于空间中所选点的部分。可视化界面提供3D模型的该部分的第一人称视图,其允许用户围绕3D模型平移和缩放,并且通过选择表示其他部分的相对位置的航点图标来导航到3D模型的其他部分。
可视化界面还允许用户选择3D模型内的对象,这使得可视化界面显示对应于所选对象的图像帧。用户可以通过与对象上的点交互(例如,点击对象上的点)来选择对象。当界面模块144检测到来自用户的交互时,界面模块144向查询模块146发送指示3D模型内的点的位置的信号。查询模块146标识与所选择点对准的图像帧,并且界面模块144更新可视化界面以显示图像帧。可视化界面可以包括用于显示3D模型的第一界面部分和用于显示图像帧的第二界面部分。参考图3A-图3D,描述了可视化界面的示例。
在一些实施例中,界面模块144可以接收测量在3D模型或图像帧上选择的端点之间的距离的请求。界面模块144可以向查询模块146提供端点的标识,并且查询模块146可以确定与端点相关联的(x、y、z)坐标。查询模块146可以计算两个坐标之间的距离并将该距离反馈到界面模块144。界面模块144可以更新界面部分以向用户显示所请求的距离。类似地,界面模块144可以接收有关确定对象的面积或体积的请求的附加端点。
客户端设备160是诸如智能电话、平板计算机、膝上型计算机的任何移动计算设备,或者诸如台式计算机的非移动计算设备,其可以连接到网络120并用于访问空间索引系统130。客户端设备160在诸如屏幕的显示设备上向用户显示界面,并接收用户输入以允许用户与该界面交互。下面参考图6中的计算机系统600描述实现客户端设备的示例。
III.路径生成概况
图2A示出了根据一个实施例的图1所示的空间索引系统130的路径模块132的框图。路径模块132接收由视频捕获系统110和LIDAR系统150捕获的输入数据(例如,帧序列212、运动数据214、位置数据223、平面布置图257)并生成路径226。在图2A所示的实施例中,路径模块132包括同时定位和地图绘制(SLAM)模块216、运动处理模块220以及路径生成和对准模块224。
SLAM模块216接收帧序列212并执行SLAM算法以生成路径的第一估计218。在执行SLAM算法之前,SLAM模块216可以对图像帧212执行一个或多个预处理步骤。在一个实施例中,预处理步骤包括通过将帧序列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。
IV.模型生成概况
图2B示出了根据一个实施例的图1所示的空间索引系统130的模型生成模块138的框图。图2B示出了基于图像帧生成的3D模型266。模型生成模块138接收由路径模块132生成的路径226,连同由视频捕获系统110捕获的帧序列212,环境的平面布置图257,以及关于摄像头254的信息。模型生成模块138的输出是环境的3D模型266。在所示实施例中,模型生成模块138包括路线生成模块252、路线过滤模块258和帧提取模块262。
路线生成模块252接收路径226和摄像头信息254,并为每个提取帧生成一个或多个候选路线矢量256。摄像头信息254包括摄像头模型254A和摄像头高度254B。摄像头模型254A是将帧中的每个2D点(例如,如由标识图像帧内的像素的一对坐标所定义的)映射到表示从摄像头到该2D点的视线方向的3D射线的模型。在一个实施例中,空间索引系统130为系统130所支持的每种类型的摄像头存储单独的摄像头模型。摄像头高度254B是当正在捕获作为帧序列的漫游视频时摄像头机相对于环境地板的高度。在一个实施例中,假定摄像头高度在图像帧捕获过程期间具有恒定值。例如,如果摄像头安装在戴在用户身体上的帽子(hardhat)上,则该高度具有等于用户高度和摄像头相对于用户头顶的高度之和的恒定值(这两个量都可以作为用户输入来接收)。
如这里所提到的,针对所提取帧的路线矢量是表示所提取帧与其它所提取帧之一之间的空间距离的矢量。例如,与提取的帧相关联的路线矢量具有在该提取帧处的尾部和在另一提取帧处的头部,使得将路线矢量添加到其相关联的帧的空间位置产生另一提取帧的空间位置。在一个实施例中,通过执行矢量减法来计算路线矢量,以计算两个提取帧的三维位置之间的差,如它们各自的6D姿态矢量所指示的。
参考界面模块144,在界面模块144接收到3D模型266并显示提取帧的第一人称视图之后,稍后使用提取帧的路线矢量。当显示第一人称视图时,界面模块144在图像帧内表示另一帧(例如,在路线矢量的顶部处的图像帧)的位置的位置处渲染航点图标(在图3B中示为圆圈)。在一个实施例中,界面模块144使用以下等式来确定图像帧内渲染对应于路线矢量的航点图标的位置:
Picon=Mproj*(Mview)-1*Mdelta*Gring
在该等式中,Mproj是包含用于渲染的摄像头投影函数的参数的投影矩阵,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还可以从漫游视频中提取图像帧的子集。例如,如果以相对高的帧速率(例如,每秒30或60帧)捕获作为帧序列212的漫游视频,则图像帧提取模块262可以以规则的间隔(例如,视频的每秒两帧)提取图像帧的子集,使得更可管理数目的提取帧264作为3D模型的一部分显示给用户。
平面布置图257、显示的路线矢量260、路径226和提取帧264被组合到3D模型266中。如上所述,3D模型266是环境的表示,其包括环境的一组提取帧264、每个图像帧的相对位置(如路径226中的6D姿态所示)。在图2B所示的实施例中,3D模型还包括平面布置图257,平面布置图上的每个图像帧的绝对位置,以及用于一些或所有提取帧264的显示的路线矢量260。
V.模型可视化界面
图3A至图3D示出了根据一个实施例的模型可视化界面300的示例,其显示包括3D模型的第一界面部分310和包括与3D模型对准的图像的第二界面部分320。图3A至图3D所示的环境是建筑物的一部分(例如,建筑物的背部)。用户使用移动设备来在绕着建筑物行走的同时捕获视频并同时收集LIDAR数据。视频和LIDAR数据被提供给空间索引系统130,空间索引系统130基于LIDAR数据生成3D模型,并将视频中的图像帧与3D模型的相应部分对准。空间索引系统130的界面模块144生成模型可视化界面300以显示3D模型和图像帧。
第一界面部分310中示出的3D模型可以是基于LIDAR数据生成的点云。3D模型对于在三维中可视化建筑物是有用的,但是它可能缺少细节或者可能具有错误的部分。因此,在3D模型旁边显示具有高分辨率2D数据的图像帧以补偿3D模型中的缺陷是有利的。3D模型与图像帧对准,并且当第一界面部分310显示3D模型的一部分时,第二界面部分320显示对应于在第一界面部分310中显示的3D模型的该部分的图像帧。如上参考图2B的描述,航点图标与捕获图像帧所采取的路径相关联,并表示环境内帧的相对位置。在3D模型内提供航点图标以指示捕获一个或多个图像帧的位置。
图3A示出了响应于用户与航点图标330交互而展示的模型可视化界面300。第一界面部分310显示3D模型的部分的第一人称视图,该3D模型的部分与如果用户站在真实环境中对应于第一航点图标330A的位置处用户将看到的内容匹配。第一航点图标330与在对应于第一点图标330的位置处捕获的第一图像帧340相关联。第一图像帧340以与捕获第一图像帧340的角度垂直的角度覆盖在3D模型上。如上所述,每个图像帧与6D矢量(用于定位的3个维度、用于定向的3个维度)相关联,并且基于6D矢量中用于定向的3个维度来确定相对于3D模型倾斜第一图像340的角度。第二界面部分320显示相同的第一图像帧340。
界面模块144接收与3D模型上的点A的交互(例如,点击点A),并更新模型可视化界面300以显示3D模型的不同部分。界面模块144还可以在接收到3D模型内的其他类型的交互后更新模型可视化界面300,其通过放大和缩小、旋转和移位表示要查看3D模型和图像帧的不同部分的请求。当更新第一界面部分310以显示3D模型的不同部分时,同时更新第二界面部分320以显示对应于3D模型的不同部分的图像帧。
在一些实施例中,模型可视化界面300可以包括测量工具,该测量工具可以用于测量感兴趣的物体或表面的尺寸。测量工具允许用户从3D模型确定准确的尺寸,而不必亲自重访建筑物。界面模块144可以从用户接收感兴趣维度的两个端点,并确定端点之间的距离350。在图3B所示的示例中,测量工具用于测量墙壁的一部分向外延伸了多少。因为第一界面部分310中的3D模型与第二界面部分320中的图像帧对准,所以可从任一界面部分选择端点。为了确定距离,界面模块144可以向检索端点的(x、y、z)坐标的查询模块146提供由用户选择的端点的标识。查询模块146可以计算坐标之间的距离350,并将距离350提供给界面模块144,界面模块144在第一界面部分310和第二接口部分320中的至少一个内显示距离350。
图3C示出了3D模型和与位置B相关联的第二图像帧360的另一视图。界面模块144可以接收与位置B的交互并更新模型可视化界面300,如图3C所示。例如,用户可能希望查看位置B处的窗户的细节并点击位置B。响应于接收到交互,第一界面部分310与第二图像帧360重叠,第二图像帧360以垂直于第二图像帧360的捕获角度的角度放置(例如,朝向地面向下倾斜)。还更新第二界面部分320以显示第二图像帧360。界面模块144可以接收对包括对应于窗户宽度的端点测量的请求。如图3D所示,第一界面部分310和第二界面部分320被更新以包括端点之间的距离360。
在图3A至图3D所示的示例中,示出了具有第一界面部分310和第二界面部分320的模型可视化界面300的分屏模式,以同时示出3D模型和图像帧。然而,模型可视化界面300以其他查看模式展示。例如,模型可视化界面300可以初始地示出第一界面部分310和第二界面部分320之一,并且响应于从用户接收到显示两者的请求而改变为分屏模式。在另一示例中,用户界面可以初始地在平面布置图中可获得3D模型或图像帧的位置处显示包括一个或多个图形元素的区域的平面布置图。响应于接收到与图形元素的交互,可以更新用户界面以显示3D模型或图像帧。
在其他实施例中,可以在模型可视化界面300中显示不同的模型对。也就是说,代替基于LIDAR数据的3D模型和图像帧,模型中的一者可以用图表,另一者3D模型(例如,BIM模型、基于图像的3D模型)或建筑物的其它代表物来代替。
VI.基于平面布置特征的帧的空间索引
如上所述,可视化界面可以提供2D俯视图,其显示环境的平面布置图中每一帧的位置。除了在俯视图中显示之外,环境的平面布置图还可用作确定每一帧的位置的空间索引过程的一部分。
图4是示出根据一个实施例的用于使用平面布置图中的特征对帧进行自动空间索引的示例方法400的流程图。在其他实施例中,方法400可以包括附加的、更少的或不同的步骤,并且图4所示的步骤可以以不同的顺序执行。例如,可以在不获得(430)平面布置图的情况下执行方法400,在这种情况下,在不使用平面布置图中的特征的情况下生成(440)路径的组合估计。
空间索引系统130从视频捕获系统110接收410是帧序列的漫游视频。当视频捕获系统110沿着路径移动通过环境(例如,建筑工地的地板)时,捕获序列中的图像帧。在一个实施例中,图像帧中的每一者是由视频捕获系统上的摄像头(例如,上文参考图1描述的摄像头112)捕获的帧。在另一个实施例中,每个图像帧具有较窄的视场,例如90度。
空间索引系统130基于作为帧序列的漫游视频生成420路径的第一估计。路径的第一估计可以表示为例如6维矢量,该6维矢量为序列中的每一帧指定6D摄像头姿态。在一个实施例中,空间索引系统130的组件(例如,上文参考图2A描述的SLAM模块216)对作为帧序列的漫游视频执行SLAM算法,以同时确定每一帧的6D摄像头姿态并产生环境的三维虚拟模型。
空间索引系统130获得430环境的平面布置图。例如,多个平面布置图(包括在接收到的作为帧序列的漫游视频中描述的环境的平面布置图)可以存储在平面布置图存储器136中,并且空间索引系统130访问平面布置图存储器136以获得环境的平面布置图。还可以经由视频捕获系统110或客户端设备160从用户接收环境的平面布置图,而不将其存储在平面布置图存储器136中。
空间索引系统130基于路径的第一估计和平面布置图中的物理对象生成440路径的组合估计。在生成440路径的组合估计之后,空间索引系统130生成450环境的3D模型。例如,模型生成模块138通过组合平面布置图、多个路线矢量、路径的组合估计,以及从作为帧序列的漫游视频中提取的帧来生成3D模型,如以上参照图2B所述。
在一些实施例中,空间索引系统130还可以接收在视频捕获系统沿路径移动时捕获的附加数据(除了作为帧序列的漫游视频之外)。例如,空间索引系统还接收如上参考图1所述的运动数据或位置数据。在空间索引系统130接收附加数据的实施例中,当生成440路径的组合估计时,空间索引系统130还可以将附加数据与平面布置图一起使用。
在空间索引系统130随着作为帧序列的漫游视频一起接收运动数据的实施例中,空间索引系统130可以对运动数据执行航位推算过程以生成路径的第二估计,如上文参照图2A所描述。在该实施例中,生成路径的组合估计的步骤440包括使用第二估计的部分来填充路径的第一估计中的间隙。例如,由于某些捕获帧中的不良特征质量(这导致SLAM算法不能生成可信的6D姿态的间隙,如上参照图2A所述),路径的第一估计可被分成路径片段。在这种情况下,来自第二路径估计的6D姿态可以用于通过填充第一路径估计的片段之间的间隙来连接第一路径估计的片段。
如上所述,在一些实施例中,方法400可以在不获得430平面布置图的情况下执行,并且在不使用平面布置图中的特征的情况下生成440路径的组合估计。在这些实施例之一中,路径的第一估计被用作路径的组合估计而无需任何附加的数据处理或分析。
在这些实施例的另一个中,通过生成一个或多个路径的附加估计、为每个路径估计中的每个6D姿态计算置信度得分,以及为沿着路径的每个空间位置选择具有最高置信度得分的6D姿态,来生成440路径的组合估计。例如,路径的附加估计可以包括以下中的一个或多个:如上所述,使用运动数据的第二估计、使用来自GPS接收器的数据的第三估计、以及使用来自IPS接收器的数据的第四估计。如上所述,每个路径的估计是描述序列中每一帧的相对位置和方向的6D姿态矢量。
对于每个路径估计不同地计算6D姿态的置信度得分。例如,可以用以下方式计算上述路径估计的置信度得分:第一估计中的6D姿态的置信度得分(用SLAM算法生成)表示对应于6D姿态的图像帧的特征质量(例如,图像帧中检测到的特征的数目);第二估计中的6D姿态的置信度得分(用运动数据生成)表示以6D姿态的时间为中心、在6D姿态的时间之前或之后的时间间隔中的加速度计、陀螺仪和/或磁力计数据中的噪声水平;第三估计中的6D姿态的置信度得分(用GPS数据生成的)表示用于生成6D姿态的GPS数据的GPS信号强度;并且第四估计中的6D姿态的置信度得分(用IPS数据生成)表示用于生成6D姿态的IPS数据的IPS信号强度(例如,RF信号强度)。
在生成置信度得分之后,空间索引系统130迭代地扫描路径的每个估计,并且为序列中的每一帧选择具有最高置信度得分的6D姿态,并且所选择的6D姿态被输出作为路径的组合估计中的图像帧的6D姿态。因为每个路径估计的置信度得分被不同地计算,所以在迭代扫描过程进行之前,每个路径估计的置信度得分可以被归一化为统一的标度(例如,0和1之间的标量值,其中0表示最低可能置信度,1表示最高可能置信度)。
VII.界面生成概况
图5是示出根据一个实施例的用于生成显示与图像帧对准的3D模型的界面的示例方法的流程图500。当移动设备在整个环境中移动时,空间索引系统接收510由移动设备收集的图像帧和LIDAR数据。基于LIDAR数据,空间索引系统生成520表示环境的3D模型。空间索引系统将图像帧与3D模型对准530。空间索引系统生成540包括第一界面部分和第二界面部分的界面。空间索引系统在第一界面部分内显示550 3D模型的部分。空间索引系统接收560对第一界面部分内显示的3D模型内的对象的选择。空间索引系统标识570对应于所选对象的图像帧。空间索引系统在第二界面部分内显示580对应于所选对象的图像帧。
VIII.硬件组件
图6是示出了可在其上实现本文所述实施例的计算机系统600的框图。例如,在图1的环境中,视频捕获系统110、LIDAR系统150、空间索引系统130或客户端设备160可以使用图6中描述的计算机系统600来实现。视频捕获系统110、LIDAR系统150、空间索引系统130或客户端设备160也可以使用如图6中所描述的多个计算机系统600的组合来实施。计算机系统600可以是例如膝上型计算机、台式计算机、平板计算机或智能电话。
在一个实施方式中,系统600包括处理资源601、主存储器603、只读存储器(ROM)605、存储设备607和通信接口609。系统600包括用于处理信息的至少一个处理器601和用于存储信息和将由处理器601执行的指令的主存储器603,例如随机读写存储器(RAM)或其它动态存储设备。主存储器603还可以用于在要由处理器601执行的指令的执行期间存储临时变量或其它中间信息。系统600还可以包括ROM 605或其它静态存储设备,用于存储处理器601的静态信息和指令。提供诸如磁盘或光盘的存储设备607用于存储信息和指令。
通信接口609可以使系统600能够通过使用网格链路(无线或有线)与一个或多个网格(例如,网格140)通信。使用网格链路,系统600可以与一个或多个计算设备以及一个或多个服务器通信。系统600还可以包括显示设备611,例如阴极射线管(CRT)、LCD显示器或电视机,用于向用户显示图形和信息。输入机构613,例如包括字母数字键和其它键的键盘,可以耦接至系统600,用于向处理器601传送信息和指令选择。输入机构613的其它非限制性说明性示例包括鼠标、跟踪球、触敏屏幕或光标方向键,用于向处理器601传送方向信息和指令选择以及用于控制显示设备611上的光标移动。输入机构613的附加示例包括射频标识(RFID)读取器、条形码读取器、三维扫描仪和三维摄像头。
根据一个实施例,这里描述的技术由系统600响应于处理器601执行包含在主存储器603中的一个或多个指令的一个或多个序列而执行。这些指令可以从另一机器可读介质(例如存储设备607)读入主存储器603。包含在主存储器603中的指令序列的执行使处理器601执行这里描述的处理步骤。在替代实现方式中,可以使用硬连线电路来代替软件指令或与软件指令组合来实现在此描述的示例。因此,所描述的示例不限于硬件电路和软件的任何特定组合。
IX.附加考虑
如这里所使用的,后面跟着一个或多个元件的术语“包括”不排除一个或多个附加元件的存在。术语“或”应当被解释为非排他性的“或”(例如,“A或B”可以指“A”、“B”或“A和B”)而不是排他性的“或”。冠词“一”或“一个”是指以下元素的一个或多个,除非清楚地指定单个。
附图和书面描述描述了本公开的示例性实施例,并且不应被解释为列举本公开的必要特征。本发明的范围应当由包含此描述的专利中的任一权利要求来解释。
Claims (20)
1.一种方法,包括:
接收随着移动设备移动通过环境时由所述移动设备收集的图像帧和光检测和测距(LIDAR)数据;
基于所述LIDAR数据生成表示所述环境的3D模型;
将所述图像帧与所述3D模型对准;
生成界面,所述界面包括第一界面部分和第二界面部分;
在所述第一界面部分内显示所述3D模型的部分;
接收对在所述第一界面部分内显示的所述3D模型内的对象的选择;
标识对应于所选择的对象的图像帧;以及
在所述第二界面部分内显示对应于所选择的对象的所述图像帧。
2.根据权利要求1所述的方法,进一步包括:
修改所述第一界面部分,以在对应于所选择的对象的位置处包括被覆盖到所述3D模型上的所述图像帧。
3.根据权利要求2所述的方法,其中所述图像帧以垂直于由所述移动设备捕获所述图像帧的角度的角度在所述3D模型内被渲染。
4.根据权利要求1所述的方法,进一步包括:
接收对在所述第一界面部分内显示的所述3D模型内的所述对象的两个端点的选择;
确定所述两个端点之间的距离;以及
在所述第一界面部分内显示所确定的所述距离。
5.根据权利要求1所述的方法,进一步包括:
接收对所述第二界面部分内的所述图像帧内的所述对象的两个端点的选择;
确定所述两个端点之间的距离;以及
在所述第二界面部分内显示所确定的所述距离。
6.根据权利要求1所述的方法,其中所述三维(3D)模型通过对所述LIDAR数据执行同时定位和地图绘制处理而生成。
7.根据权利要求1所述的方法,其中将所述图像帧与所述3D模型对准进一步包括:
确定与基于所述LIDAR数据生成的在所述3D模型中的多个点相关联的第一组特征矢量;
基于所述图像帧,生成表示所述环境的第二3D模型;
确定与基于所述图像帧生成的在所述第二3D模型中的多个点相关联的第二组特征矢量;以及
基于所述第一组特征矢量和所述第二组特征矢量,将所述3D模型中的所述多个点映射到所述第二3D模型中的所述多个点。
8.根据权利要求1所述的方法,其中将所述图像帧与所述3D模型对准进一步包括:
对于每个图像帧:
确定与所述图像帧相关联的时间段;
标识与所述时间段相关联的所述LIDAR数据的部分,所述LIDAR数据的部分与所述3D模型的部分相关联;以及
与所标识的所述点集合相关联地存储对所述图像帧的标识。
9.根据权利要求1所述的方法,其中将所述图像帧与所述3D模型对准进一步包括:
提取与所述3D模型相关联的特征;
将所提取的特征与关联于一个或多个图像帧的标注进行比较;以及
基于所述比较,与所述3D模型的部分相关联地存储对图像帧的标识,其中与所述图像帧相关联的一个或多个标注与所述3D模型的所述部分的一个或多个特征匹配。
10.根据权利要求1所述的方法,进一步包括:
接收与所述第一界面部分的交互;
根据所述交互,更新所述第一界面部分以显示所述3D模型的不同部分;以及
根据所述交互,更新所述第二界面部分以显示不同的图像帧。
11.根据权利要求10所述的方法,其中所述第一界面部分和所述第二界面部分被同时更新。
12.根据权利要求10所述的方法,其中所述交互包括以下至少一项:放大、缩小、旋转和移位。
13.一种非易失性计算机可读存储介质,存储有可执行指令,所述可执行指令在由硬件处理器执行时使所述硬件处理器执行包括以下项的步骤:
接收随着移动设备移动通过环境时由所述移动设备收集的图像帧和光检测和测距LIDAR数据;
基于所述LIDAR数据,生成表示所述环境的3D模型;
将所述图像帧与所述3D模型对准;
生成界面,所述界面包括第一界面部分和第二界面部分;
在所述第一界面部分内显示所述3D模型的部分;
接收对在所述第一界面部分内显示的所述3D模型内的对象的选择;
标识对应于所选择的对象的图像帧;以及
在所述第二界面部分内显示对应于所选择的对象的所述图像帧。
14.根据权利要求13所述的非易失性计算机可读存储介质,进一步存储在由所述硬件处理器执行时进一步使所述硬件处理器执行以下项的可执行指令:
修改所述第一界面部分,以在对应于所选择的对象的位置处包括被覆盖到所述3D模型上的所述图像帧。
15.根据权利要求14所述的非易失性计算机可读存储介质,其中所述图像帧以垂直于所述移动设备捕获所述图像帧的角度的角度在所述3D模型内被渲染。
16.根据权利要求13所述的非易失性计算机可读存储介质,进一步存储在由所述硬件处理器执行时进一步使所述硬件处理器执行以下项的可执行指令:
接收对在所述第一界面部分内显示的所述3D模型内的所述对象的两个端点的选择;
确定所述两个端点之间的距离;以及
在所述第一界面部分内显示所确定的距离。
17.根据权利要求13所述的非易失性计算机可读存储介质,进一步存储在由所述硬件处理器执行时进一步使所述硬件处理器执行以下项的可执行指令:
接收对所述第二界面部分内的所述图像帧内的所述对象的两个端点的选择;
确定所述两个端点之间的距离;以及
在所述第二界面部分内显示所确定的距离。
18.根据权利要求13所述的非易失性计算机可读存储介质,其中所述三维(3D)模型通过对所述LIDAR数据执行同时定位和地图绘制处理而生成。
19.一种系统,包括:
处理器;以及
非易失性计算机可读存储介质,包括计算机程序指令,所述计算机程序指令在由所述处理器执行时使所述处理器:
接收当移动设备移动通过环境时由所述移动设备收集的图像帧和光检测和测距(LIDAR)数据;
基于所述LIDAR数据,生成表示所述环境的3D模型;
将所述图像帧与3D所述模型对准;
生成界面,所述界面包括第一界面部分和第二界面部分;
在所述第一界面部分内显示所述3D模型的一部分;
接收对在所述第一界面部分内显示的所述3D模型内的对象的选择;
标识对应于所选择的对象的图像帧;以及
在所述第二界面部分内显示对应于所选择的对象的所述图像帧。
20.根据权利要求19所述的系统,其中所述计算机程序指令使所述处理器修改所述第一界面部分以在对应于所选择的对象的位置处包括被覆盖到所述3D模型上的所述图像帧。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063090095P | 2020-10-09 | 2020-10-09 | |
US63/090,095 | 2020-10-09 | ||
US202163165682P | 2021-03-24 | 2021-03-24 | |
US63/165,682 | 2021-03-24 | ||
US17/367,204 | 2021-07-02 | ||
US17/367,204 US11393179B2 (en) | 2020-10-09 | 2021-07-02 | Rendering depth-based three-dimensional model with integrated image frames |
PCT/US2021/051389 WO2022076163A1 (en) | 2020-10-09 | 2021-09-21 | Rendering depth-based three-dimensional model with integrated image frames |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116349222A true CN116349222A (zh) | 2023-06-27 |
CN116349222B CN116349222B (zh) | 2024-05-10 |
Family
ID=81077838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180069140.2A Active CN116349222B (zh) | 2020-10-09 | 2021-09-21 | 利用集成图像帧渲染基于深度的三维模型 |
Country Status (5)
Country | Link |
---|---|
US (4) | US11393179B2 (zh) |
EP (1) | EP4204858A4 (zh) |
JP (1) | JP2023546825A (zh) |
CN (1) | CN116349222B (zh) |
WO (1) | WO2022076163A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11393179B2 (en) * | 2020-10-09 | 2022-07-19 | Open Space Labs, Inc. | Rendering depth-based three-dimensional model with integrated image frames |
US20230351706A1 (en) * | 2022-04-27 | 2023-11-02 | Yembo, Inc. | Scanning interface systems and methods for building a virtual representation of a location |
CN115802004B (zh) * | 2022-10-25 | 2023-09-01 | 广东真知实验室科技有限公司 | 一种实验室施工建设监控方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140125767A1 (en) * | 2012-02-24 | 2014-05-08 | Matterport, Inc. | Capturing and aligning three-dimensional scenes |
CN107251025A (zh) * | 2014-12-23 | 2017-10-13 | 电子湾有限公司 | 用于从三维模型生成虚拟内容的系统和方法 |
CN107430446A (zh) * | 2015-03-01 | 2017-12-01 | 奈克斯特Vr股份有限公司 | 进行环境测量和/或在3d图像渲染中使用此类测量的方法和装置 |
CN107980150A (zh) * | 2015-05-27 | 2018-05-01 | 帝国科技及医学学院 | 对三维空间建模 |
WO2018100397A1 (en) * | 2016-12-02 | 2018-06-07 | Dualitas Ltd. | Holographic projector |
CN109388359A (zh) * | 2017-08-08 | 2019-02-26 | 美国科视数字系统股份有限公司 | 用于自动投影映射预可视化的方法和设备 |
EP3557556A1 (en) * | 2018-04-19 | 2019-10-23 | HERE Global B.V. | Method, apparatus, and system for traffic sign learning near a ramp |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7398481B2 (en) | 2002-12-10 | 2008-07-08 | Science Applications International Corporation (Saic) | Virtual environment capture |
TWI419124B (zh) | 2009-03-06 | 2013-12-11 | Au Optronics Corp | 二維/三維影像顯示裝置 |
US20180322197A1 (en) * | 2017-05-03 | 2018-11-08 | Survae Inc. | Video data creation and management system |
EP3857451A4 (en) * | 2018-09-25 | 2022-06-22 | Matterport, Inc. | USING THREE-DIMENSIONAL DATA PREDICTED FROM TWO-DIMENSIONAL IMAGES USING NEURAL NETWORKS FOR 3D MODELING APPLICATIONS |
US10976421B2 (en) * | 2018-12-28 | 2021-04-13 | Beijing Didi Infinity Technology And Development Co., Ltd. | Interface for improved high definition map generation |
US11393179B2 (en) * | 2020-10-09 | 2022-07-19 | Open Space Labs, Inc. | Rendering depth-based three-dimensional model with integrated image frames |
-
2021
- 2021-07-02 US US17/367,204 patent/US11393179B2/en active Active
- 2021-09-21 EP EP21878217.5A patent/EP4204858A4/en active Pending
- 2021-09-21 WO PCT/US2021/051389 patent/WO2022076163A1/en active Application Filing
- 2021-09-21 CN CN202180069140.2A patent/CN116349222B/zh active Active
- 2021-09-21 JP JP2023521454A patent/JP2023546825A/ja active Pending
-
2022
- 2022-06-14 US US17/839,492 patent/US11610379B2/en active Active
-
2023
- 2023-02-14 US US18/168,855 patent/US11922591B2/en active Active
-
2024
- 2024-02-06 US US18/433,435 patent/US20240212289A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140125767A1 (en) * | 2012-02-24 | 2014-05-08 | Matterport, Inc. | Capturing and aligning three-dimensional scenes |
CN107251025A (zh) * | 2014-12-23 | 2017-10-13 | 电子湾有限公司 | 用于从三维模型生成虚拟内容的系统和方法 |
CN107430446A (zh) * | 2015-03-01 | 2017-12-01 | 奈克斯特Vr股份有限公司 | 进行环境测量和/或在3d图像渲染中使用此类测量的方法和装置 |
CN107980150A (zh) * | 2015-05-27 | 2018-05-01 | 帝国科技及医学学院 | 对三维空间建模 |
WO2018100397A1 (en) * | 2016-12-02 | 2018-06-07 | Dualitas Ltd. | Holographic projector |
CN109388359A (zh) * | 2017-08-08 | 2019-02-26 | 美国科视数字系统股份有限公司 | 用于自动投影映射预可视化的方法和设备 |
EP3557556A1 (en) * | 2018-04-19 | 2019-10-23 | HERE Global B.V. | Method, apparatus, and system for traffic sign learning near a ramp |
Also Published As
Publication number | Publication date |
---|---|
JP2023546825A (ja) | 2023-11-08 |
EP4204858A4 (en) | 2024-09-11 |
US20220114791A1 (en) | 2022-04-14 |
US20220309757A1 (en) | 2022-09-29 |
CN116349222B (zh) | 2024-05-10 |
US20240212289A1 (en) | 2024-06-27 |
US11610379B2 (en) | 2023-03-21 |
US11393179B2 (en) | 2022-07-19 |
EP4204858A1 (en) | 2023-07-05 |
US11922591B2 (en) | 2024-03-05 |
WO2022076163A1 (en) | 2022-04-14 |
US20230196696A1 (en) | 2023-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12056816B2 (en) | Automated spatial indexing of images based on floorplan features | |
CN116349222B (zh) | 利用集成图像帧渲染基于深度的三维模型 | |
US11995885B2 (en) | Automated spatial indexing of images to video | |
CN115699098B (zh) | 使用比例图和三维模型的基于机器学习的对象标识 | |
US11386151B2 (en) | Image search in walkthrough videos | |
US20240233276A1 (en) | Interior/exterior building walkthrough image interface | |
JPWO2022076163A5 (zh) |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |