CN113424131A - 图像到视频的自动空间索引 - Google Patents

图像到视频的自动空间索引 Download PDF

Info

Publication number
CN113424131A
CN113424131A CN201980088554.2A CN201980088554A CN113424131A CN 113424131 A CN113424131 A CN 113424131A CN 201980088554 A CN201980088554 A CN 201980088554A CN 113424131 A CN113424131 A CN 113424131A
Authority
CN
China
Prior art keywords
frame
image
frames
capture system
camera path
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
Application number
CN201980088554.2A
Other languages
English (en)
Inventor
M·B·弗莱施曼
P·德坎普
J·J·卡兰尼迪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Open Space Labs Inc
Original Assignee
Open Space Labs Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Open Space Labs Inc filed Critical Open Space Labs Inc
Publication of CN113424131A publication Critical patent/CN113424131A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/52Surveillance or monitoring of activities, e.g. for recognising suspicious objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/275Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals
    • H04N13/279Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals the virtual viewpoint locations being selected by the viewers or determined by tracking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/282Image signal generators for generating image signals corresponding to three or more geometrical viewpoints, e.g. multi-view systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/62Control of parameters via user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • H04N23/631Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/66Remote control of cameras or camera parts, e.g. by remote control devices
    • H04N23/661Transmitting camera control signals through networks, e.g. control via the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/698Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/04Architectural design, interior design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/004Annotating, labelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/024Multi-user, collaborative environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/44Event detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/10Recognition assisted with metadata

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Analysis (AREA)
  • Processing Or Creating Images (AREA)

Abstract

空间索引系统接收视频并且执行空间索引过程以自动标识图像中的每个图像被捕获的空间地点,所述视频是描绘环境(诸如建筑工地的楼层)的帧序列。空间索引系统还生成环境的沉浸式模型并且提供可视化接口,可视化接口允许用户在模型内在所述图像中的每个图像的对应地点处查看每个图像。

Description

图像到视频的自动空间索引
相关申请的交叉引用
本申请请求于2018年11月12日所提交的美国临时申请第62/759,945号的权益,该申请的全部内容以引用的方式并入本文。
技术领域
本公开涉及图像和视频处理,并且具体地,涉及将用一个相机所捕获的图像空间索引到用第二相机所捕获的视频帧。
背景技术
带地点标签的摄影在室内空间中具有多种用途。例如,房地产经纪人可以希望通过捕获房屋中房间的一系列360度相片、并且用其在房屋内的位置对每张相片加标签,来创建房屋的虚拟游览。类似地,总承包商可以希望通过捕获地点标签并且将其添加到建筑工地的360度相片来监测建筑工地的进度。
常规地,当用户捕获室内空间的多张图片时,用户必须手动注释每个图像以及其在空间内的地点。要求用户手动向每个图像添加地点标签可能是低效并且耗时的。此外,总承包商可以希望拍摄特定关注区域的相片,同时捕获现场视频。将相片与视频手动整合将是低效且耗时的。
发明内容
一种空间索引系统接收视频并且执行空间索引过程,以自动标识帧中的每个帧被捕获的空间地点,该视频是描绘环境的帧序列。当视频捕获系统沿相机路径被移动通过环境时,帧由视频捕获系统捕获。在一个实施例中,空间索引系统在帧上执行同时定位和映射(SLAM)算法,以估计相机路径并且生成环境的模型。用SLAM算法所生成的相机路径估计可以可选地与运动数据、地点数据或环境的楼层平面图组合,以生成相机路径的组合估计。然后,空间索引系统可以确定帧中的每个帧被捕获的地点,并且提供可视化接口,该可视化接口在环境的模型内提供帧中的每个帧的对应地点处的沉浸视图。
空间索引系统还允许用户从与视频捕获系统分离的移动客户端设备捕获图像。空间索引系统确定每个图像被拍摄的地点,并且将图像插入可视化接口中的对应地点。每个图像的地点可以基于计算的相机路径、图像时间戳、帧时间戳和图像元数据中的一个或多个被确定。
自动空间索引过程可以被执行,而无需用户手动将每个帧或图像注释有其地点。在大量的帧和/或图像被一次捕获、或相同空间的帧以规则的时间间隔(例如每两天)被捕获以便在一段时间内监测空间内的改变的情况下,这是特别有利的。
附图说明
图1A图示了根据一个实施例的用于空间索引系统的系统环境。
图1B图示了根据一个实施例的空间索引系统、客户端设备和视频捕获系统的序列图。
图2A图示了根据一个实施例的相机路径模块的框图。
图2B图示了根据一个实施例的模型生成模块的框图。
图2C图示了根据一个实施例的现场记录生成模块的框图。
图3A至图3G是图示了根据一个实施例的由模型可视化模块所提供的模型可视化接口的部分的屏幕截图。
图4是图示了根据一个实施例的用于使用楼层平面图中的特征对帧进行自动空间索引的示例方法的流程图。
图5是图示了根据一个实施例的用于使用强力搜索将相机路径与楼层平面图对准的示例方法的流程图。
图6A是图示了根据一个实施例的用于使用楼层平面图的栅格图将相机路径与楼层平面图对准的示例方法的流程图。
图6B图示了根据一个实施例的楼层平面图的示例。
图6C图示了根据一个实施例的栅格图的示例。
图7A是图示了根据一个实施例的用于将现场记录添加到沉浸式模型的示例方法的流程图。
图7B图示了根据一个实施例的被显示在计算设备上的可视化接口的示例,其图示了楼层平面图、相机路径和现场记录。
图8A至图8C是根据一个实施例的客户端设备上的示例现场记录接口。
图9是图示了根据一个实施例的实施本文中的实施例的计算机系统的图。
具体实施方式
I.概述
一种空间索引系统接收视频并且执行空间索引过程,以自动标识帧中的每个帧被捕获的空间地点,该视频是描绘环境(诸如建筑工地的楼层)的帧序列。空间索引系统附加地从移动设备接收一个或多个图像。空间索引系统还生成环境的沉浸式模型,并且提供可视化接口,该可视化接口允许用户在沉浸式模型内在帧和图像的对应地点处查看帧和图像中的每个帧和图像。这使得用户能够通过选择帧被记录的地点来快速导航到特定的帧和/或图像。
在一些情况下,空间索引通过记录由GPS接收器所生成的地点数据欧空在帧被捕获时对每个帧加地点标签来执行。另一选项是使用室内定位系统(IPS),该室内定位系统基于从被放置在环境中已知地点处的发射器所接收到的信号来生成地点数据。例如,IPS接收器可以基于由被放置在整个环境中的多个射频(RF)发射器所传输的RF指纹来生成地点数据。然而,在GPS信号被大大衰减或室内定位系统不可用的环境中,这些方法变得不可靠。例如,在室内环境中,来自结构元件(诸如钢梁)的干扰可以使GPS信号大大衰减,并且大幅度地降低由GPS所生成的地点的准确性。作为另一示例,室内定位系统常常由于成本和鲁棒性问题而在活跃的建筑工地中常常不可用。在这种环境中,用户通常将必须手动注释每个捕获的帧以及其地点,这可能是费时且低效的。
空间索引过程可以代替地通过将同时定位和映射(SLAM)算法应用于作为帧序列的视频来确定帧的地点,而不是使用户手动注释捕获的帧以及其地点。SLAM算法针对帧中的每个帧估计六维(6D)相机姿态(即3D平移和3D旋转)。6D相机姿态的该序列在环境的沉浸式模型内被表示。在一个实施例中,可视化接口将环境的沉浸式模型显示为2D地图和第一人称视图二者。每个帧在2D地图上被表示为在帧被捕获的地点处的图标。用户可以选择图标以显示在对应地点处被捕获的帧。第一人称视图显示用户可以平移和缩放的单个360度帧的沉浸式视图。第一人称视图还可以包括表示沉浸式模型中其他帧的相对地点的航点图标,并且用户可以选择航点图标以显示在对应地点处所捕获的帧的第一人称视图。
当视频捕获系统相机路径被移动通过环境时,作为帧序列的视频被该视频捕获系统捕获。例如,环境可以是正在施工的建筑物的楼层,并且当建筑工人与被安装在工人头盔上的视频捕获系统一起穿过楼层时,作为帧序列的视频被捕获。因为空间索引系统可以自动标识帧中的每个帧被捕获的位置,所以建筑工人不需要沿预定路径穿过楼层;代替地,建筑工人可以简单地沿任何任意相机路径穿过楼层,这允许建筑工人绕过其遇到的任何障碍物。
继续上文的建筑工地示例,假设来自总承包公司的总承包商希望记录建造高层住宅建筑的18个月的项目的施工进度。这种进度记录可用于例如追踪分包商的进度,解决计划与竣工施工之间的冲突,以及作为项目被完成之后可能发生的责任索赔中的证据。至关重要的是,这种进度记录的价值完全取决于总承包公司内最终用户有效查找关于建筑工地内的特定地点的视频/帧数据的能力。
常规地,生成这种进度记录需要总承包公司或分包商的员工走过施工现场,从而记录帧(或视频)并且手动注释每个帧中出现的施工现场内的地点。这种注释使得能够有效地访问建筑工地内的特定地点的帧,但是与手动生成这些注释相关联的时间和成本可能是令人望而却步的,并且这些成本随着工地的大小和记录的频率而缩放。
使用本文中所描述的方法和系统,空间索引系统可以自动索引每个捕获帧的地点,而无需用户执行任何手动注释,且不必仅依赖于GPS或RF信号,GPS或RF信号可能不存在、被阻止、或在室内环境(诸如建筑工地)中被大大衰减。这减少了与捕获帧相关联的用户输入的量,这允许过程被更快并且更有效地完成。
在索引每个捕获帧的地点之后,空间索引系统可以生成环境的沉浸式模型。沉浸式模型包括从捕获的帧序列中所提取的帧集合,并且针对所提取帧中的每个帧指定楼层平面图上的地点。沉浸式模型还可以针对每个所提取帧包括一个或多个路线向量。用于所提取帧的路线向量指定在所提取帧与其他帧中的一个帧之间的空间距离(即方向和大小)。当在可视化接口中显示所提取帧中的一个帧时,空间索引系统可以在所提取帧内在由路线向量中的每个路线向量所定义的位置处显示航点图标。用户然后可以选择这些航点图标中的一个航点图标,以查看在该位置处被捕获的所提取帧。
尽管附图和书面描述提供了关于建筑工地的示例,但是本文中所描述的方法和系统还可以被用于其他类型的环境中,诸如完整建筑物的内部区域、一些其他类型的结构(诸如船)的内部区域或室外区域(诸如花园或庭院)。除了本文中所描述的建筑工地示例之外,捕获的帧和所得沉浸式模型也可以在多种其他环境中被使用。例如,保安人员可以使用本文中所描述的方法和系统来记录沿路线的每个检查点处的设施的状态。作为另一示例,设施管理者可以捕获仓库中的库存的照片文档。作为又一示例,房地产经纪人可以捕获照片以创建房屋的虚拟游览。
II.系统环境
图1A图示了根据一个实施例的用于标识序列中的帧被捕获的空间地点的系统环境100。在图1A中所示出的实施例中,系统环境100包括视频捕获系统110、网络120、空间索引系统130和客户端设备150。尽管单个视频捕获系统110和单个客户端设备150在图1A中被示出,但是,在一些实施方式中,空间索引系统一次与多个视频捕获系统110或多个客户端设备150交互。
当系统110沿相机路径被移动时,视频捕获系统110收集帧数据、运动数据和地点数据。在图1A中所示出的实施例中,视频捕获系统包括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度相机112捕获由固定时间间隔所分离的静止帧序列。作为帧序列的视频可以以任何帧速率(诸如高帧速率(例如每秒60帧)或低帧速率(例如每秒1帧))被捕获。大体上,以较高帧速率捕获作为帧序列的视频产生更鲁棒的结果,而以较低帧速率捕获作为帧序列的视频允许减少数据存储和传输。当360度相机112正在捕获帧数据时,运动传感器114和地点传感器116分别收集运动数据和地点数据。运动传感器114可以包括例如加速度计和陀螺仪。运动传感器114还可以包括磁力计,该磁力计测量包围视频捕获系统110的磁场的方向。
地点传感器116可以包括用于全球导航卫星系统的接收器(例如GPS接收器),该全球导航卫星系统确定视频捕获系统110的纬度和经度坐标。在一些实施例中,地点传感器116附加地或备选地包括用于室内定位系统(IPS)的接收器,该室内定位系统基于从被放置在环境中的已知地点处的发射器所接收到的信号来确定视频捕获系统的位置。例如,多个射频(RF)发射器(其传输RF指纹)被放置在整个环境中,并且地点传感器116还包括接收器,该接收器检测RF指纹并且基于RF指纹的相对强度来估计环境内的视频捕获系统110的地点。
尽管图1A中所示出的视频捕获系统110包括360度相机112、运动传感器114和地点传感器116,但是在其他实施例中,一些组件112、114、116可以从视频捕获系统110中被省略。例如,运动传感器114和地点传感器116中的一者或两者可以从视频捕获系统中被省略。附加地,尽管视频捕获系统110在图1A中被描述有360度相机112,但是视频捕获系统110可以备选地包括具有狭窄视野的相机。
在一些实施例中,视频捕获系统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的所有或一些通信链路可以使用任何适合的一种或多种技术被加密。
客户端设备150是具有移动相机152并且可以连接到网络120的任何移动计算设备,诸如智能电话、平板计算机、膝上型计算机。移动相机捕获152个图像,具体地,静止的二维图像。所捕获的每个图像具有相关联的图像时间戳。客户端设备150可以将由移动相机152所捕获的图像发送给空间索引系统130。针对仅涉及查看可视化接口并且与之交互的用例(在下一段中被讨论),客户端设备150也可以是非移动计算设备,诸如台式计算机。
空间索引系统130接收由视频捕获系统110所收集的帧和其他数据以及由客户端设备150所收集的图像和其他数据,执行空间索引过程以自动标识在帧和图像中的每个帧和图像被捕获的空间地点,建立环境的模型,并且提供可视化接口,该可视化接口允许客户端设备150在模型内在捕获的帧和图像的相应的地点处查看捕获的帧和图像。在图1A中所示出的实施例中,空间索引系统130包括:相机路径模块132、相机路径存储装置134、楼层平面图存储装置136、模型生成模块138、模型存储装置140、模型可视化模块142、移动图像存储装置154和现场记录生成模块156。
当系统110沿相机路径被移动时,相机路径模块132接收被视频捕获系统110收集的帧和其他数据,并且基于接收到的帧和数据来确定相机路径。在一个实施例中,相机路径被定义为视频中作为帧序列的每个帧的6D相机姿态。用于每个帧的6D相机姿态是在帧被捕获时对360度相机112的相对位置和定向的估计。相机路径模块132可以将相机路径存储在相机路径存储装置134中。
在一个实施例中,相机路径模块132使用SLAM(同时定位和映射)算法来同时(1)通过推断360度相机112的地点和定向来确定估计相机路径,以及(2)使用直接方法或使用从视频中所提取的标志性特征(诸如定向FAST和旋转BRIEF(ORB)、尺度不变特征变换(SIFT)、加速鲁棒特征(SURF)等)来对环境进行建模,该视频是帧序列。相机路径模块132输出随时间变化的六维(6D)相机姿态的向量,针对序列中每个帧具有一个6D向量(针对地点的三个维度,针对定向的三个维度),并且6D向量可以被存储在相机路径存储装置134中。相机路径模块132的实施例在下文关于图2A被详细描述。
空间索引系统130还可以包括楼层平面图存储装置136,其存储一个或多个楼层平面图,诸如由视频捕获系统110所捕获的环境的楼层平面图。如本文中所提及,楼层平面图是从上向下的视图的环境(例如建筑物或结构的一部分)的按比例缩放的二维(2D)图解表示。楼层平面图指定了环境中物理特征(诸如门、窗户、墙壁和楼梯)的位置和尺寸。建筑物或结构的不同部分可以被单独的楼层平面图表示。例如,在上文所描述的建筑示例中,空间索引系统130可以针对每个楼层、单元或子结构存储单独的楼层平面图。
模型生成模块136生成环境的沉浸式模型。如本文中所提及,沉浸式模型是环境的表示,其包括环境的提取帧集合、每个帧的相对位置(如由帧的6D姿态所指示)和(可选地)每个帧在环境的楼层平面图上的绝对位置。在一个实施例中,模型生成模块136从相机路径模块132或相机路径存储装置134接收帧序列及其对应的相机路径(例如针对视频中的每个帧指定6D姿态的6D姿态向量,该视频是帧序列),并且提取序列中帧的子集及其对应的6D姿态,以便被包括在模型中。例如,如果作为帧序列的视频是以每秒30帧被捕获的视频中的帧,那么模型生成模块136通过提取帧及其对应的6D姿态以0.5秒的间隔对帧进行二次采样。在生成模型之后,模型生成模块136可以将模型存储在模型存储装置140中。模型生成模块136的实施例在下文关于图2B被详细描述。
模型可视化模块142向客户端设备150提供可视化接口。可视化接口允许用户以两种方式查看沉浸式模型。首先,可视化接口基于模型生成模块138的输出来提供2D俯视图地图接口。2D俯视图地图是交互式接口,其中在2D地图上所指示的每个相对相机地点是交互式的,以使得点击地图上的点导航到在空间中的该点处被捕获的提取帧。其次,可视化接口提供了提取的360度帧的第一人称视图,该可视化接口允许用户通过在帧内选择表示其他帧的相对地点的航点图标来平移和缩放帧并且导航到其他帧。可视化接口在用户在2D俯视图地图中或其他帧的第一人称视图中选择帧之后提供帧的第一人称视图。可视化接口的示例屏幕截图在图3A至3G中被示出。
客户端设备150在显示设备(诸如屏幕)上向用户显示可视化接口,并且接收用户输入以与可视化接口交互。用于查看可视化接口的客户端设备150的示例实施方式在下文参考图9中的计算机系统900被描述。
移动图像存储装置154存储被客户端设备150拍摄并且经由网络120被发送给空间索引系统130的图像。现场记录生成模块156使用来自移动图像存储库154的图像以生成现场记录。现场记录是被放置在沉浸式模型内的注释。在一些实施例中,现场记录包括与可以在可视化接口内被显示的相机路径相关联的图像。现场记录还可以包括相关信息,诸如文本、时间戳、相机定向和其他信息。在一些实施例中,现场记录通过比较图像时间戳和帧时间戳来被整合到沉浸式模型中,如关于图2C被更详细地描述。元数据标签还可以被用于将图像整合到沉浸式模型中,如关于图2C被更详细地描述。计算机视觉技术还可以被用于检测视频帧内的对象,以将图像整合到沉浸式模型中。作为示例,计算机视觉技术可以被用于标识在360度帧内拍照的移动相机,并且可以向图像分配从那些帧中所提取的地点数据。现场记录生成模块156的实施例在下文关于图2B被详细描述。
III.帧和图像捕获过程
图1B图示了根据一个实施例的空间索引系统130、客户端设备150和视频捕获系统110的序列图。在图1B中所示出的实施例中,视频捕获系统110记录视频161。如图1B中所示出,记录视频161可以是连续的,或有时可能会被分段和暂停。在视频捕获系统110正在记录视频161时,视频捕获系统也正在捕获其他数据,诸如关于图1A所公开的时间戳和/或运动和地点数据。视频捕获系统110可以以360度帧的格式记录视频161。
在通过视频捕获系统记录视频的过程期间,客户端设备150捕获图像并且记录其时间戳162。也就是说,由客户端设备所捕获的图像的时间戳将具有与被视频捕获系统110同时捕获的360度帧相同或类似的时间戳。如图1B中所示出,图像的捕获和其时间戳162的记录可以发生一次或可以发生多次。图像和时间戳的捕获可以被人类用户手动执行,或捕获可以例如以周期性间隔被自动化。通常,同一个体将佩戴被附接到视频捕获系统110的头盔并且手持用于图像捕获的装置150两者,然而,视频和图像捕获可以被遍历大致相同相机路径的单独个体执行。所捕获的每个图像具有记录的时间戳。多个图像可以被快速连续地捕获并且具有相同的时间戳。
在一些实施例中,客户端设备150向视频捕获系统110发送信号以将元数据标签163插入视频中。元数据标签163的插入可以在视频并行地被记录时或在视频记录被暂停时发生。元数据标签被插入到包含帧序列的数据结构中。例如,如果视频以.mp4格式被记录,那么视频捕获系统110使包含用于元数据插入的功能的API可用,移动设备150使用该API来插入图像时间戳和相关联的图像标签/标识符(例如唯一的图像编号)作为元数据。
客户端设备150将图像和时间戳164上载到空间索引系统130。上载164也可以紧接在捕获图像并且记录时间戳163之后、或在多个图像已经被捕获并且对应的时间戳被记录163之后进行。如图1B中所示出,图像和时间戳可以被一张一张地上载,或可以通过一次上载多个图像和对应的时间戳来完成。例如,多个图像和对应的时间戳可以在稍后的时间(诸如在记录166结束之后)被上载164到空间索引系统130。客户端设备150经由网络140上载164到空间索引系统130。
空间索引系统130接收图像和对应于图像的时间戳165。如关于图像和对应时间戳的上载所公开的,接收165可以作为单个图像和时间戳或作为多个图像和时间戳发生。附加地,接收165可以在图像和时间戳被捕获162时或在稍后的时间发生。由客户端设备150所上载164的每个图像和对应时间戳由空间索引系统130接收165。
捕获图像并且记录其时间戳162、可选地插入元数据标签163以及上载图像和时间戳164的步骤可以在视频捕获系统110正在记录视频161时被移动设备150重复多次。客户端设备150还可以在记录开始或结束之前或之后准许166图像和时间戳的捕获162和上载164。附加地,空间索引系统130可能不一定要接收一些或全部图像和时间戳165,直到记录结束166之后为止。
在记录166结束之后,视频捕获系统110将视频上载167到空间索引系统130。然后,空间索引系统130接收视频168。空间索引系统130可以在其接收一个或多个图像和时间戳165之前接收视频168,并且视频捕获系统110还可以在图像或时间戳中的一个或多个图像或时间戳被客户端设备150上载164之前上载视频167。
在接收视频168之后,空间索引系统130生成相机路径估计169。相机路径估计的生成被空间索引系统130的相机路径模块132完成,如图1A中所示出。相机路径模块132关于下文图2A被更详细地讨论。
空间索引系统130生成现场记录170。接收到的图像和时间戳以及生成的相机路径模块被用于生成现场记录170。现场记录170的生成由空间索引系统130的现场记录生成模块156完成,如图1A中所示出。现场记录生成模块156关于下文图2C被更详细地描述。
IV.相机路径生成概述
图2A图示了根据一个实施例的图1A中所示出的空间索引系统130的相机路径模块132的框图。相机路径模块132接收由视频捕获系统110所捕获的输入数据(例如360度帧212的序列、运动数据214和地点数据223),并且生成相机路径226。在图2A中所示出的实施例中,相机路径模块132包括同时定位和映射(SLAM)模块216、运动处理模块220以及路径生成和对准模块224。
SLAM模块216接收360度帧212的序列,并且执行SLAM算法以生成相机路径的第一估计218。360度帧序列可以是由图1B中的视频捕获系统110所记录161的视频。在执行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对准。用于组合第一估计218和第二估计222以及将相机路径与楼层平面图对准的示例技术在下文关于图4、5和6被描述。
V.模型生成概述
图2B图示了根据一个实施例的图1A中所示出的空间索引系统130的模型生成模块138的框图。模型生成模块138接收由相机路径模块132所生成的相机路径226以及被视频捕获系统110捕获的360度帧212的序列、环境的楼层平面图257和关于360度相机254的信息。模型生成模块138的输出是环境的沉浸式模型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接收到沉浸式模型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生成每个帧的单独提取帧。如上文关于图1A所描述,帧提取模块262还可以提取作为帧212的序列的视频的子集。例如,如果作为帧212的序列的视频以相对高的帧率(例如每秒30或60帧)被捕获,那么帧提取模块262可以以规则的间隔提取帧的子集(例如每秒两帧的视频),以使得更多可管理数目的提取帧264作为沉浸式模型的一部分被显示给用户。
楼层平面图257、所显示的路线向量260、相机路径226和提取帧264被组合成沉浸式模型266。如上所述,沉浸式模型266是环境的表示,其包括环境的提取帧264的集合、每个帧的相对位置(如由相机路径226中的6D姿态所指示)。在图2B中所示出的实施例中,沉浸式模型还包括楼层平面图257、楼层平面图上每个帧的绝对位置以及针对提取帧264中的一些或全部提取帧的所显示的路线向量260。
现场记录238也被整合到沉浸式模型266中。现场记录238的生成在以下章节中参考图2C被讨论。
VI.现场记录生成概述
图2C图示了根据一个实施例的在图1A中所示出的现场记录生成模块156的框图。现场记录生成模块156接收输入,包括:移动图像232、时间戳数据234、相机路径226、360度帧212以及在一些实施例中的元数据236和运动数据214。移动图像232是由客户端设备150上的移动相机152拍摄并且被存储在移动图像存储装置154中的图像,如图1A中所示出。时间戳数据234包括由移动相机152所捕获的移动图像232的时间戳。在一些实施例中,时间戳数据234还包括由视频捕获系统110所捕获的360度帧212的时间戳。元数据236是在360度帧212的序列中所包括的标签并且是对现场记录生成模块156的可选输入。例如,元数据236可以是在图1B的视频记录161中所插入163的标签。相机路径226由相机路径模块132输出,诸如在图2A中所描述的实施例中。
现场记录生成模块156输出一个或多个现场记录238。现场记录238是被放置在沉浸式模型266内的注释,这些注释可以包括文本、移动图像、时间戳数据、相机定向或其他相关信息。现场记录238被放置在沉浸式模型266内的特定地点。也就是说,现场记录238具有沿相机路径226的地点,如由现场记录生成模块156内的相机路径地点模块270所确定。附加地,现场记录238在360度帧212内具有特定的放置,如由现场记录生成模块156内的帧放置模块272所确定。也就是说,现场记录238大体上不占据整个360度帧,而是被定位于360度帧内的视野中的特定定向。因此,当相机路径定位模块270确定沿相机路径的现场记录238的地点时,帧放置模块272确定现场记录238在(一个或多个)360度帧的视野内在沿相机路径的地点处的具体放置。在一些实施例中,帧放置模块272是可选的。
在相机路径定位模块270的一个实施例中,时间戳数据234的分析被用于确定沿相机路径226的现场记录238的地点。针对来自移动图像232的移动图像,对应的移动图像时间戳与360度帧时间戳集合被比较。在一个实施例中,在移动图像时间戳之间的差异针对一个或多个360度帧时间戳被计算,并且具有最小差异的360度帧时间戳被标识为现场记录应被注释的360度帧。相机路径定位模块270确定所标识的360度帧在相机路径226中的地点(例如360度帧212的序列中的360度帧的索引)。与移动图像232相关联的现场记录238将出现在沉浸式模型266中沿相机路径226所标识的360度帧的地点处。
作为示例,用户正在穿过建筑工地。用户在头盔安装系统上佩戴视频捕获系统110。用户还携带呈移动电话形式的客户端设备150,用户使用该客户端设备来捕获移动图像232。当用户移动通过建筑工地时,视频捕获系统110捕获360度帧212。基于由视频捕获系统110所捕获的数据,相机路径模块132产生相机路径226。由于用户正在佩戴视频捕获系统110并且手持客户端设备150,所以相机路径由视频捕获系统110和客户端设备150行经。因此,通过将由客户端设备150所捕获的移动图像232的图像时间戳映射到其最接近的360度帧时间戳,对应于图像232的现场记录238的地点被确定。
在许多实例中,用户将暂停走过建筑工地以用客户端设备150捕获图像。相机路径226中的暂停(产生在异常长的时间跨度内在相似地点中所收集到的许多帧)可以附加地与帧时间戳数据234一起被使用,以将移动图像232与其对应地点匹配并且产生现场记录238。在这些实例中,在运动暂停期间所捕获的帧的帧时间戳可以全部都类似于图像时间戳。然而,在用户停止捕获图像时与在图像被实际捕获时之间的时间中大体上存在延迟。这两种效果可以彼此抵消。
因此,在进一步的实施例中,相机路径定位模块270基于被标识为与图像捕获期间用户的运动暂停相关联的一组帧中的任何帧来标识现场记录238的地点,不一定是在时间上最接近图像时间戳的帧时间戳。也就是说,相机路径定位模块270可以使用与360度帧212相关联的运动数据214来标识用户的运动暂停。附加地或备选地,如果数个360度帧212沿相机路径226在地点上重叠(或相距低于阈值距离),那么暂停可以使用计算机视觉被标识。如果移动图像232的时间戳在作为360度帧212在所标识的暂停处的(一个或多个)时间戳的阈值时间差内,那么暂停的地点(例如暂停内的一个或多个帧)被相机路径定位模块270标识为现场记录238的地点。
在一个实施例中,相机路径定位模块270应用计算机视觉技术来确定沿相机路径226所生成的现场记录238的物理地点。作为示例,这可以包括对360度帧212的序列执行对象识别,以提取指示图像在何处(地点)和/或何时(时间)被捕获的特定对象。具体地,对象识别可以在一个或多个360度帧212中标识移动设备150的存在。因为用户正在使用设备150来捕获移动图像232中的一个移动图像,所以推断设备150在帧内被升高。根据移动设备150被标识的帧或帧集合,相机路径定位模块270确定沿相机路径226的捕获地点。
进一步地,计算机视觉还可以由帧放置模块272实施,以确定现场记录所属的360度帧视野内的特定放置。对象识别标识对象的存在(例如沿相机路径的地点)和对象在帧内的放置。所标识的放置标识移动设备150被指向的、以在对应于捕获时间的帧中捕获图像的方向。移动设备150的方向由帧放置模块272使用来确定所生成的现场记录238在360度帧内的具体放置。所生成的现场记录238的地点和具体放置被用于将现场记录238整合到沉浸式模型266中。
由现场记录生成模块156(例如相机路径定位模块270和帧放置模块272)所使用的特定计算机视觉技术可以由实施方式而变化。作为示例,技术(诸如卷积神经网络(CNN)(或更一般地,神经网络)、决策树(提升、随机森林等)和最大熵分类器)可以被用于分析帧以标识感兴趣对象(例如在360度帧中存在的电话)。大体上,这些计算机视觉技术是监督学习技术,其涉及在标记训练数据集上训练模型的特征(或权重或临界值,名称可以取决于技术而变化)。例如,标记训练数据可以标识训练数据帧集合中的哪些训练数据帧集合包括在用户的移动电话的视野中以及哪些不包括在其中。一旦被训练,这种计算机视觉模型可以被用于标识帧中这种对象的存在、不存在、大小和/地点。用于这种模型的训练数据集可以通过获得与上下文相关的图像——例如,建筑工人在捕获视频的同时手持电话在工作环境内拍照的360度帧的视频——被获得。
一些计算机视觉技术对帧本身起作用,诸如在计算机视觉领域中被经常使用的CNN。作为示例,CNN可以被用于标识帧/图像中对象的地点和大小的边界框,并且这种技术可以被用于检测移动电话150在360度帧中的存在和地点。其他计算机视觉技术对从帧/图像所提取的性质(或特征)起作用。例如,ORB、SIFT或SURF特征是涉及分别在帧上运行ORB、SIFT和SURF算法以提取相应特征的特征。这些特征可以被输入到模型(例如决策树、最大熵分类器)中以类似地确定对象的存在/不存在和/或对象的大小/地点。
在另一实施例中,元数据236也由相机路径定位模块270使用以标识沿相机路径226所生成的现场记录238的地点。当客户端设备150的移动相机152拍摄移动图像232时,客户端设备150向视频捕获系统110提供指令,以将关于图像捕获的元数据236插入视频中,如关于图1B被更详细地描述。在接收到来自客户端设备150的指令时,视频捕获系统110将元数据236插入到360帧212的序列中。随后,当相机路径定位模块270分析输入以确定现场记录所属的地点时,相机路径定位模块270将参考元数据232的地点。当用户捕获移动图像232时,该元数据标签用作用户的大致地点的参考标记,并且因此也用作客户端设备150和视频捕获系统110的参考标记。在一些实施例中,元数据232分析可以是对先前讨论的时间戳分析的补充或检查,或被用于缩小在360度帧212的序列内的搜索窗口。在其他实施例中,元数据分析可以是确定沿相机路径226的现场记录地点的独立方法。由相机路径定位模块270对元数据236的分析改善了现场记录238的确定的地点的准确性。
如上文所介绍,由现场记录生成模块156所输出的现场记录238是使图像与地点相关联的注释。地点可以是沿相机路径的特定时间和/或位置。现场记录238还可以并入与注释图像及其分配地点相关的评论或其他数据。例如,用户可以评论在图像内被捕获的内容。现场记录238随后可以被并入沉浸式模型266中。现场记录238被显示在其沿相机路径所确定的地点和沉浸式模型266中的视野内的特定地点,并且在视觉上与背景不同。在一个实施例中,现场记录238在沉浸式模型266中被显示为用户可以(例如通过触摸输入端或鼠标点击)与之交互的标签。现场记录238的可视化扩展,以显示最初捕获的移动图像232和在现场记录238中所并入的任何其他信息。将现场记录238并入沉浸式模型266中的示例通过图3F至图3G、图7A至图7B和图8A至图8C被更详细地描述。
VII.可视化接口——示例
图3A至图3G是图示了根据一个实施例的由模型可视化模块所提供的模型可视化接口的部分的屏幕截图。如上文图1A中所描述,模型可视化接口允许用户在其环境的虚拟模型内的对应地点处查看捕获帧中的每个捕获帧。
图3A至图3G中所示出的屏幕截图继续来自上文的总承包公司示例。当框架正在建筑工地上被完成时,总承包商捕获视频以创建工作记录,该视频是每个单元内的帧序列,该工作记录将很快被石膏板的安装隐藏。捕获帧作为输入被提供给相机路径模块132,该相机路径模块生成6D相机姿态的向量(针对每帧一个6D姿态)。6D相机姿态作为输入被提供给模型可视化模块,该模型可视化模块提供与每个帧相关联的相对相机地点的2D表示。
用户可以通过使用客户端设备150来查看由模型可视化模块142所提供的可视化接口来查看该表示,并且用户可以通过选择2D俯视图地图上的图标来导航到序列中的不同帧。在用户已经在2D俯视图地图中选择了针对帧的图标之后,可视化接口显示用户可以平移和缩放的帧的第一人称视图。在帧的该视图内,该对应地点处的任何现场记录可以通过选择现场记录被查看。
存在用于确定现场记录238被放置在沉浸式模型266的帧212内的何处的多种方法。如先前参考图2C所讨论,计算机视觉分析可以被用于标识帧内的移动设备150,确定移动设备被引向的方向,并且使用该方向确定现场记录应被放置在帧中的何处。作为确定现场记录放置的另一种方式,如果视频捕获系统110以相对于用户的头部固定的方式被安装(例如被安装在安全帽上),那么现场记录的地点可以相对于相机路径的方向被推断。例如,假设相机152被安装以面向前方进行捕获,相机路径的方向将大体上对应于在图像捕获时用户的头部所指向的方向,并且因此也将对应于移动相机150所指向的方向。因此,在该示例中,现场记录可以放置在对应于360度帧内的头部向前方向的帧的中心。
作为另一示例,空间索引系统130可以从移动设备内的惯性测量单元(IMU)接收位置、旋转和/或定向数据。该信息可以指示移动相机150被定位、旋转和/或定向为偏离视频捕获系统110在图像捕获的时间戳时所面对的方向(或在时间上非常接近)的轴线。这两个轴线之间的相对差异可以被用于更准确地确定现场记录在360度捕获帧内被定位在何处。
为了描述清楚起见,用于放置现场记录的上文方法被描述为备选方法,并且可以在各种实施例中被组合。
第一人称视图还包括表示其他捕获帧的位置的航点图标,并且用户可以通过选择针对帧的航点图标来导航到这些其他帧中的一个帧的第一人称视图。如上文关于图2B所描述,每个航点图标基于从正在被显示的帧指向另一帧的路线向量被渲染。2D俯视图地图的示例在图3A中被示出,并且第一人称视图的示例在图3B中被示出。在图3B中所示出的第一人称视图中,航点图标是蓝色圆。
返回参照总承包公司示例,在帧被记录之后两个月,需要检查被隐藏在墙壁中的一个墙壁内部的电气工作的问题在一个单元中被发现。常规地,检查该电气工作将需要拆除石膏板和其他完成的饰面,以便暴露工作,这是一项非常昂贵的工作。然而,总承包商反而能够访问可视化接口并且使用2D俯视图地图来标识问题被发现的在建筑物内的地点。然后,总承包商可以点击该地点以查看在该地点处所拍摄的帧。在这个示例中,图3C中所示出的帧在问题被发现的地点处被拍摄。
在一个实施例中,可视化接口还包括分屏视图,其在屏幕的一侧上显示第一帧并且在屏幕的另一侧上显示第二帧。这种情况可以被用于例如创建在不同时间在相同地点处被捕获的两个帧的并排视图。这两个视图也可以被同步,以使得在一个视图中调整缩放/定向会在另一视图中调整缩放/定向。
在图3D和图3E中所示出的屏幕截图中,总承包商已经使用分屏视图创建并排视图,该并排视图显示在石膏板被安装在右侧上之后一天的帧和较早日期(例如在石膏板被安装之前的一天)在左侧上所拍摄的帧。通过使用可视化接口“回到过去”并且在其被石膏板覆盖之前查看电气工作,总承包商可以检查电气问题,同时避免需要昂贵地移除石膏板。此外,因为空间索引系统130可以自动索引每个捕获帧的地点而无需用户执行任何手动注释,所以捕获和索引帧的过程耗时较少并且可以定期(诸如每天或每周几次)被执行。
图3F至图3G中的屏幕截图示出了该示例的包括现场记录的扩展。在图3F的屏幕截图的左上角处的是选择现场记录的选项。当系统正在捕获帧时,总承包商可以注意到建筑工地中值得注意的一些事情,诸如用未完成的涂漆作业为墙壁布线,该涂漆作业需要固定并且想要捕获墙壁的更详细的图像。如果总承包商做出与系统不同步的书面记录或其他观察结果,那么记录可能会丢失或在需要时难以访问。相反,总承包商可以通过捕获问题的2D图像并且允许空间索引系统130在模型中自动插入现场记录来在系统中做出现场记录,如图3G中所示出。评论可以被添加到现场记录,诸如图3G中所示出的评论。现场记录被空间索引系统130自动索引到其在建筑工地的可视化模型中的地点。然后,能够在客户端设备150上查看模型的任何用户还可以在接口(如图3G中所示出的接口)中查看其适当地点中的现场记录以及现场记录内的任何相关联的图像或评论。
对现场记录进行评论的其他方面也被设想。空间索引系统130准许用户创作直接与图像相关联的评论,或他们可以创作遵循现场记录的现有评论的评论。该链分层允许对话线程从与现场记录图像相关联的根评论被创建。任何进一步的评论都可以从任何先前的评论或图像链接,这意味着潜在的大量评论链可以从给定的现场记录发生。
评论还可以包括对向系统130创作评论的用户的标识。评论本身可以包括允许以交互方式引用用户或其他评论的特殊字符或计算机代码,以使得评论标识在评论中所列出的用户。其他特殊字符或代码可以被包括,诸如主题标签、图形元素等。可视化接口/沉浸式模型还包括图形用户接口元件,以在视觉上区分这些元件并且提供与它们的交互性,以使得用户可以通过相关联的计算设备经由点击或触摸交互来交互,以看见关于系统的用户的信息,在评论之间进行图形变换,移动到相机路径或模型的其他部分,在视图(例如第一人称相机路径、第三人称模型视图)之间进行变换等。
来自现场记录的评论线程也可以同与其相关联的帧或沉浸式模型分开地在GUI中被可视地显示。这些评论线程也可以被聚集在一起以导出为报告或文档,然后该报告或文档可以被转换为文档格式并且被保存到磁盘或经由电子邮件被交换。这些报告还可以包括现场记录图像本身、来自第三人称视角的相机路径的示例以及本文中所描述的任何其他信息。
VIII.基于楼层平面图特征的帧的空间索引
如上所述,可视化接口可以提供2D俯视图地图,该2D俯视图地图显示环境的楼层平面图内的每个帧的地点。除了正在俯视图地图中被显示之外,环境的楼层平面图还可以被用作确定每个帧的地点的空间索引过程的一部分。
图4是图示了根据一个实施例的用于使用楼层平面图中的特征对帧进行自动空间索引的示例方法400的流程图。在其他实施例中,方法400可以包括附加的、更少的或不同的步骤,并且图4中所示出的步骤可以以不同的顺序被执行。例如,方法400可以在没有获得430楼层平面图的情况下被执行,在该情况下,相机路径的组合估计在不使用楼层平面图中的特征的情况下被生成440。
空间索引系统130从视频捕获系统110接收410作为帧序列的视频。当视频捕获系统110沿相机路径被移动通过环境(例如建筑工地的楼层)时,序列中的帧被捕获。在一个实施例中,帧中的每个帧是由视频捕获系统上的360度相机(例如上文关于图1A所描述的360度相机112)捕获的360度帧。在另一实施例中,帧中的每个帧具有更窄的视野,诸如90度。
空间索引系统130基于作为帧序列的视频来生成420相机路径的第一估计。相机路径的第一估计例如可以被表示为六维向量,其针对序列中的每个帧指定6D相机姿态。在一个实施例中,空间索引系统130的组件(例如上文参考图2A所描述的SLAM模块216)对作为帧序列的视频执行SLAM算法,以针对每个帧同时确定6D相机姿态并且生成环境的三维虚拟模型。
空间索引系统130获得430环境的楼层平面图。例如,多个楼层平面图(包括在作为帧序列的接收到的视频中被描绘的环境的楼层平面图)可以被存储在楼层平面图存储装置136中,并且空间索引系统130访问楼层平面图存储装置136以获得环境的楼层平面图。环境的楼层平面图也可以经由视频捕获系统110或客户端设备150从用户被接收,而不被存储在楼层平面图存储装置136中。
空间索引系统130基于相机路径的第一估计和楼层平面图中的物理特征来生成440相机路径的组合估计。生成相机路径的组合估计440的两个示例方法500、600在下文分别关于图5和图6被描述。
在生成440相机路径的组合估计之后,空间索引系统130生成450环境的沉浸式模型。例如,模型生成模块138通过组合楼层平面图、多个路线向量、相机路径的组合估计以及从作为帧序列的视频所提取的帧来生成沉浸式模型,如上文关于图2B所描述。
在一些实施例中,空间索引系统130还可以接收在视频捕获系统正沿相机路径被移动时被捕获的附加数据(除了作为帧序列的视频之外)。例如,空间索引系统还接收运动数据或地点数据,如上文参考图1A所描述。在空间索引系统130接收附加数据的实施例中,当生成440相机路径的组合估计时,空间索引系统130除了楼层平面图之外还可以使用附加数据。
在空间索引系统130接收运动数据以及作为帧序列的视频的实施例中,空间索引系统130可以对运动数据执行航位推算过程以生成相机路径的第二估计,如上文关于图2A所描述。在该实施例中,生成440相机路径的组合估计的步骤包括使用第二估计的部分来填充相机路径的第一估计中的间隙。例如,由于一些捕获帧中的特征质量差(这引起SLAM算法无法生成可靠的6D姿态的间隙,如上文关于图2A所描述),相机路径的第一估计可以被分为相机路径片段。在该情况下,来自第二路径估计的6D姿态可以被用于通过填充第一路径估计的片段之间的间隙来连接第一路径估计的片段。
如上所述,在一些实施例中,方法400可以在不获得430楼层平面图的情况下被执行,并且相机路径的组合估计在不使用楼层平面图中的特征的情况下被生成440。在这些实施例中的一个实施例中,在没有任何附加数据处理或分析的情况下,相机路径的第一估计被用作相机路径的组合估计。
在这些实施例中的另一实施例中,相机路径的组合估计通过以下操作被生成440:生成相机路径的一个或多个附加估计,针对每个路径估计中的每个6D姿态计算置信度分数,以及针对沿相机路径的每个空间位置选择具有最高置信度分数的6D姿态。例如,相机路径的附加估计可以包括以下一项或多项:使用运动数据的第二估计(如上文所描述)、使用来自GPS接收器的数据的第三估计以及使用来自IPS接收器的数据的第四估计。如上文所描述,相机路径的每个估计是描述针对序列中每个帧的相对位置和定向的6D姿态的向量。
针对每个路径估计,6D姿态的置信度分数被不同地计算。例如,上文所描述的路径估计的置信度分数可以通过以下方式被计算:第一估计中的6D姿态的置信度分数(用SLAM算法被生成)表示对应于6D姿态的帧的特征质量(例如帧中检测到的特征的数量);第二估计中的6D姿态的置信度分数(用运动数据所生成)表示加速度计、陀螺仪和/或磁力计数据中以6D姿态的时间为中心、该时间之前或之后的时间间隔内的噪声水平;第三估计中的6D姿态的置信度分数(用GPS数据所生成)表示被用于生成6D姿态的GPS数据的GPS信号强度;并且第四估计中的6D姿态的置信度分数(用IPS数据所生成)表示被用于生成6D姿态的IPS数据的IPS信号强度(例如RF信号强度)。
在生成置信度分数之后,空间索引系统130通过相机路径的每个估计迭代地扫描并且针对序列中的每个帧选择具有最高置信度分数的6D姿态,并且所选择的6D姿态被输出为相机路径的组合估计中的帧的6D姿态。因为每个路径估计的置信度分数不同地被计算,所以每个路径估计的置信度分数可以被归一化为共同的尺度(例如0与1之间的标量值,其中0表示最低可能的置信度,并且1表示最高可能的置信度),然后进行迭代扫描过程。
IX.相机路径生成——用强力搜索进行的楼层平面图对准
图5是图示了根据一个实施例的用于使用强力搜索来用楼层平面图生成组合相机路径的方法500的流程图。在其他实施例中,方法500可以包括附加的、更少的或不同的步骤,并且图5中所示出的步骤可以以不同的顺序被执行。
图5中所描述的强力搜索通过生成多个候选相机路径(例如通过对相机路径估计应用不同的缩放、旋转和平移操作)并且选择相对于楼层平面图上的特征具有最高一致性分数的候选相机路径来将估计相机路径与楼层平面图对准。如上所述,在一些实施例中,相机路径的第一估计可以被分为多个相机路径片段(例如由于一些捕获帧中的特征质量差)。在这些实施例中,强力搜索可以针对每个相机路径片段被单独执行,以将每个相机路径片段与楼层平面图对准。在将每个相机路径片段与楼层平面图对准之后,然后,空间索引系统可以使用其他数据(诸如运动数据)来填充对准的相机路径片段之间的相机路径中的间隙。然后,对准的相机路径和填充的间隙的组合被输出为组合的相机路径。
为了便于描述,强力搜索在下文关于相机路径片段被描述。然而,强力搜索也可以针对第一路径估计的整体被执行。例如,在一些实施例中,相机路径的第一估计不被分为片段(例如因为360度帧序列中的每个帧包括足够高质量的特征)。在这些实施例中,图5中所描述的强力搜索针对第一路径估计的整体被执行,以将第一路径估计与楼层平面图对准。在这些实施例中,强力搜索的结果被输出为组合路径估计。
现在参照图5,空间索引系统130通过对相机路径片段应用各种变换(诸如缩放、旋转和平移操作)来生成510多个候选相机路径。
空间索引系统130将每个候选相机路径与楼层平面图中的特征进行比较,并且针对候选相机路径中的每个候选相机路径生成一致性分数。候选相机路径的一致性分数表示在候选相机路径与楼层平面图之间的一致性程度。
在一个实施例中,一致性分数是四个分量的加权和。第一分量表示在候选相机路径与楼层平面图中的特征之间的类似性水平。例如,第一分量可以通过针对候选相机路径与楼层平面图中的特征相交的每个实例生成相交分数并且然后组合相交分数(例如通过将这些相交分数加在一起)来计算。相交分数表示真实世界相机路径穿过正在被相交的特征类型的可能性(例如,高相交分数针对与门相交被生成,而低相交分数针对与墙壁相交被生成)。
第二分量和第三分量是基于从视频捕获系统110所接收到的地点数据的。第二分量表示在候选相机路径与来自视频捕获系统上的GPS接收器的数据之间的一致性程度。例如,第二分量通过组合由候选相机路径所暗示的地点与由同一时间点的地点数据所指定的地点之间的距离被计算。同时,第三分量表示在候选相机路径与来自视频捕获系统110上的IPS接收器的数据之间的类似性程度。第三分量可以以与第二分量相同的方式被计算。在空间索引系统130不从视频捕获系统110接收地点数据(或仅接收一种类型的地点数据)的实施例中,这些分量中的一个或两个分量可以从一致性分数中被省略。
第四分量通过将作为帧序列的捕获视频中的特征与来自先前在楼层平面图上的相同地点处被捕获的帧的特征进行比较被生成。在一致性分数包括第四分量的实施例中,空间索引系统130存储与先前捕获的帧的楼层平面图地点相关联的这些先前捕获的帧(例如作为模型存储装置140中的模型中的模型的一部分)。
在针对候选相机路径生成一致性分数之后,空间索引系统530基于一致性分数来选择一个候选相机路径。例如,空间索引系统530选择具有最高一致性分数的候选相机路径。
X.相机路径生成——用栅格图进行的楼层平面图对准
图6A是图示了根据一个实施例的用于使用楼层平面图的栅格图生成组合相机路径的示例方法600的流程图。在其他实施例中,方法600可以包括附加的、更少的或不同的步骤,并且图6A中所示出的步骤可以以不同的顺序被执行。
空间索引系统130基于楼层平面图来生成610栅格图。栅格图是其中每个节点表示楼层平面图上的空间位置并且两个节点之间的每个边缘指定表示两个节点之间的空间的可穿越性的变换分数的图。针对边缘的变换分数基于两个节点之间的特征的存在被确定。例如,如果墙壁在两个节点之间存在,那么这两个节点之间的边缘的变换分数较低,以指示相机路径不太可能在两个节点之间跨越。相反,如果门在两个节点之间存在,那么两个节点之间的边缘的变换分数更高。
在一个实施例中,针对穿过墙壁的边缘的权重随时间变化地被调整。例如,在第一时间(例如在针对墙壁的框架尚未就位的建造的早期阶段时),这些边缘的权重被分配与穿过房间内部的空地的边缘的权重相同的值。在第二时间(例如在框架已经被构造但石膏板尚未就位的建造的中间阶段时),这些边缘的权重被分配减小的值以指示在物理上穿过墙壁是可能的、但不常见。在第三时间(例如在框架和石膏板都就位的建造的后期阶段时),这些边缘的权重被分配低值以指示穿过墙壁在物理上是不可能的。对应于第一时间、第二时间和第三时间的时间可以作为用户输入从客户端设备150被接收,基于被提供给空间索引系统130的施工进度表或通过对序列中的帧中的一些或全部帧执行特征识别来确定墙壁上的施工进度被确定。
在一个实施例中,在两个节点之间的楼层平面图特征(诸如墙壁或门)的存在使用计算机视觉特征分类器被检测。在该实施例中,特征分类器从楼层平面图的帧中提取帧特征(例如SIFT SURG或ORB特征)并且使用帧特征对出现在楼层平面图中的各个位置处的不同特征(例如墙壁和门)进行分类。例如,特征分类器可以使用包括多个手动注释的楼层平面图的训练数据被训练。在其他实施例中,在两个节点之间的特征的存在可以手动(例如通过用户输入)或通过使用楼层平面图内的元数据被检测。
图6B图示了楼层平面图的示例,并且图6C图示了针对楼层平面图被生成的栅格图的示例。在图6C中所示出的示例栅格图中,节点在水平和竖直方向两者上被均等地间隔,以使得节点和边缘为二维正方形栅格。具有较低变换分数的边缘在图6C中用虚线被图示,并且具有较高变换分数的边缘用较粗的线被图示。如图6C中所示出,跨越墙壁的边缘具有较低变换分数,而穿过两个门的边缘具有较高变换分数。
在生成610栅格图之后,空间索引系统130执行迭代地图匹配算法以将相机路径的第一估计与栅格图匹配。地图匹配算法可以是例如隐马尔可夫模型(HMM)、条件随机场(CRF)或某一其他类型的地图匹配算法。
在图6A中所示出的实施例中,空间索引系统130通过执行马尔可夫过程,以迭代地标识沿着通过栅格图的路径与相机路径的第一估计匹配的节点来执行地图匹配。
马尔可夫过程的迭代通过标识620沿相机路径的一个节点开始。当过程被发起时,被标识的第一个节点是相机路径的起点。起点可以作为用户输入被提供或基于从视频捕获系统110所接收到的地点数据(例如GPS或IPS数据)被确定。
一旦节点已经被标识,空间索引系统130生成630针对栅格图中的多个其他节点的分数。在一个实施例中,空间索引系统130对图中除了标识的节点之外的节点每隔一个节点进行评分。在其他实施例中,空间索引系统130对图中的其他节点的子集进行评分。例如,空间索引系统130对与标识的节点分开小于阈值数量的边缘的每个节点进行评分(即,空间索引系统130对靠近标识的节点的节点进行评分)。这种情况可能是有用的,例如,当栅格图包括大量节点和边缘并且计算量太大而无法对其他节点中的每个节点进行评分时。
分数基于在标识的节点与另一节点之间的边缘的变换分数被生成630。分数还基于标识的节点附近的相机路径的第一估计的方向。例如,如果相机路径的第一估计行进到标识的节点附近的左侧,那么较高分数针对连接标识的节点与其左侧上的相邻节点的边缘被生成,而较低分数针对连接标识的节点与上方、下方和右侧的相邻节点的边缘被生成。分数还基于标识的节点附近的相机路径的第一估计所行经的距离。例如,如果相机路径上的下一6D姿态向量相距4英尺并且栅格图中的相邻节点相隔2英尺的距离,那么与标识的节点相隔两个边缘的节点被分配较高分数。
空间索引系统130使用针对其他节点中的每个节点的分数来选择640其他节点中的一个节点作为沿相机路径的下一节点。所选择的节点被指定为新的标识的节点,并且针对其他节点生成分数630和选择640相机路径中的下一节点的步骤被重复,直到沿整个相机路径的节点已经被标识为止。然后,空间索引系统130可以执行维特比算法以基于标识的节点来标识通过栅格图的最可能路径。然后,标识的路径可以被提供作为生成440相机路径的组合估计的步骤的输出。
XI.可视化接口——现场记录示例
图7A是图示了根据一个实施例的用于将现场记录添加到沉浸式模型的示例方法700的流程图。在其他实施例中,方法700可以包括附加的、更少的或不同的步骤,并且图7A中所示出的步骤可以以不同的顺序被执行。
空间索引系统130接收710由移动设备所捕获的图像。在一些实施例中,空间索引系统130一次或连续地接收710多个图像,如关于图1B所描述。在一些实施例中,空间索引系统130接收710与图像相关联的数据,诸如时间戳数据或与图像的捕获相关联的其他数据。移动设备可以是具有关于图1A所讨论的相关联的移动相机152的客户端设备150。图像可以经由网络120被空间索引系统130接收710。
空间索引系统130接收720由视频捕获系统所记录的视频。在一些实施例中,视频包括360度帧序列。在一些实施例中,360度帧与时间戳数据、元数据和/或与360度帧的捕获相关的运动数据相关联。视频捕获系统可以是图1A的视频捕获系统110。视频可以经由网络120由空间索引系统130接收720。
空间索引系统130生成730视频捕获系统的估计相机路径。在一些实施例中,空间索引系统130的相机路径模块132生成730估计相机路径。相机路径可以由如关于图2A所描述的相机路径模块132生成。进一步地,生成730的相机路径可以被使用以生成沉浸式模型,诸如通过空间索引系统130的模型生成模块138,如关于图2B所讨论。
空间索引系统130将图像与沿估计相机路径的点(或地点)相关联740。图像可以与沿估计相机路径的点相关联740,如关于图2C所描述。进一步地,生成730的相机路径和相关联740的图像可以被用于沉浸式模型,如关于图2B和图2C所描述。
图7B示出了根据一个实施例的可视化接口750,其包括楼层平面图760、相机路径770和现场记录780的集合。相机路径770被可视化为通过表示视频捕获系统(例如视频捕获系统110)在其移动通过由楼层平面图760所表示的房间时的运动的线。现场记录780通过表示移动图像沿相机路径被拍摄的地点的四点起点被可视化。包括楼层平面图760和现场记录780的可视化750可以在客户端设备上被显示给用户,这些客户端设备可以与图8A至图8C中所示出的移动智能电话设备相同或可以是另一客户端设备。通过客户端设备上的可视化750,用户可以导航通过楼层平面图760和现场记录780。当用户导航以选择现场记录780中的一个现场记录时,客户端设备显示现场记录780的内容的可视化。现场记录780的可视化包括图像以及在现场记录780中所包括的任何评论或其他数据。现场记录的示例可视化在图8C中被示出。
图8A至图8C是根据一个实施例的客户端设备上的示例现场记录接口。图8A至图8C示出了根据一个实施例的呈智能电话形式的客户端设备150的使用。客户端设备150上的示例接口使得客户端设备150的用户能够在客户端设备150上运行的应用中与空间索引系统130交互。
图8A示出了根据一个实施例的在视频捕获系统110正在记录时被提供用于显示的接口800。接口800提供用于在中心处显示运行时间805和停止按钮810。被分配给所捕获的帧和图像的时间戳对应于这些帧和图像被捕获的运行时间805。帧和图像上的时间戳可以在小数点后具有比应用接口上被示出的多数个位置,以使时间戳记录更准确。在底部处,存在供用户添加现场记录的现场记录按钮815。为了添加现场记录,用户选择现场记录按钮815。
图8B示出了根据一个实施例的在添加现场记录时被提供用于显示的接口830。具体地,接口830被提供用于在用户正在捕获将被包括在现场记录中的图像时进行显示。接口830示出了移动相机152的取景器840。在顶部处,运行时间835被显示。在底部中央的是图像捕获按钮845,以捕获对应于取景器的移动图像,并且在左下方和右下方分别是打开闪光灯和切换相机方向的选项。一旦用户捕获移动图像,添加评论和其他数据的选项将被提供以供显示。用户可以选择添加评论或将其留空或稍后添加评论。一旦用户对图像、评论和其他数据输入感到满意,移动设备150就会将图像、时间戳和其他现场记录数据上载到空间索引系统130。
图8C示出了根据一个实施例的被提供用于完整的现场记录的显示的接口860。在顶部处的是运行时间865。在中心处的是现场记录本身的注释,与移动图像870的一部分、由用户所添加的评论875的一部分以及与移动图像870相关联的时间戳880一起被示出。当用户选择现场记录时,该现场记录在视图中扩展并且示出现场记录中所包含的所有信息。在底部处的是用户添加另一现场记录的选项。
XII.硬件组件
图9是图示了本文中所描述的实施例可以被实施的计算机系统900的框图。例如,在图1A的上下文中,视频捕获系统110、空间索引系统130和客户端设备150可以使用如图9中所描述的计算机系统900被实施。视频捕获系统110、空间索引系统130或客户端设备150也可以使用如图9中所描述的多个计算机系统900的组合被实施。计算机系统900可以是例如膝上型计算机、台式计算机、平板计算机或智能电话。
在一个实施方式中,系统900包括处理资源901、主存储器903、只读存储器(ROM)905、存储设备907和通信接口909。系统900包括用于处理信息的至少一个处理器901和主存储器903,诸如随机存取存储器(RAM)或其他动态存储设备,以用于存储待被处理器901执行的信息和指令。主存储器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执行本文中所描述的工艺步骤。在备选实施方式中,硬连线电路系统可以代替软件指令或与这些软件指令结合被使用以实施本文中所描述的示例。因此,所描述的示例不被限于硬件电路系统和软件的任何特定组合。
XIII.附加考虑
如本文中所使用,后跟一个或多个元件的术语“包括”不排除一个或多个附加元件的存在。术语“或”应被解释为非排他的“或”(例如“A或B”可指“A”、“B”或“A和B”)而不是排他的“或”。冠词“一”或“一个”是指以下元件的一个或多个实例,除非单个实例被明确指定。
附图和书面描述描述了本公开的示例实施例,并且不应被解释为列举本公开的基本特征。本发明的范围应根据包含本说明书的专利中发布的任何权利要求被解释。

Claims (20)

1.一种方法,包括:
从包括相机的移动设备接收多个图像,每个图像包括图像时间戳,当所述移动设备被移动通过环境时,所述图像由所述移动设备的所述相机捕获;
从视频捕获系统接收包括帧序列的视频,每个帧与帧时间戳相关联,当所述视频捕获系统被移动通过所述环境时,所述视频由所述视频捕获系统的相机记录;
生成所述视频捕获系统的估计相机路径,所述估计相机路径表示所述视频捕获系统通过所述环境的所述移动,所述估计相机路径针对所述帧序列中的帧,指定所述帧相对于一个或多个参考点的位置;以及
基于由所述相机捕获的所述图像时间戳以及由所述视频捕获系统捕获的所述帧时间戳,将所述多个图像中的所述图像与沿所述估计相机路径的地点相关联。
2.根据权利要求1所述的方法,
其中针对由所述移动设备捕获的所述图像中的每个图像,元数据标签被发送给所述图像捕获系统,并且所述元数据标签被插入由所述图像捕获系统捕获的所述视频的数据结构中;以及
其中将所述图像与沿所述视频捕获系统的估计相机路径的地点相关联还基于所述视频中的所述元数据标签。
3.根据权利要求1所述的方法,
其中将所述图像与沿所述视频捕获系统的估计相机路径的地点相关联还包括:
对所述帧执行对象检测,以标识所述移动计算设备在所述帧中的一个帧中的存在;以及
基于所述移动设备在所述帧中所标识的存在,将所述图像中的一个图像与所述相机路径内的所述地点中的一个地点相关联。
4.根据权利要求1所述的方法,其中所述移动设备正在由使用所述图像捕获系统的同一用户来使用,以使得所述图像捕获系统的所述路径类似于所述移动设备的所述路径。
5.根据权利要求4所述的方法,其中所述图像捕获系统由使用所述图像捕获系统以及移动设备两者的所述用户来佩戴。
6.根据权利要求1所述的方法,其中所述移动设备包含移动应用,所述移动应用在被使用时自动将所述图像以及对应的图像时间戳发送给空间索引系统。
7.根据权利要求6所述的方法,其中所述移动设备包含移动应用,所述移动应用在被使用时自动将与每个图像相关联的元数据发送给空间索引系统。
8.根据权利要求1所述的方法,其中所述图像捕获系统的估计相机路径还基于获得的所述环境的楼层平面图,所述楼层平面图指定所述环境中的多个物理特征的位置。
9.根据权利要求8所述的方法,其中所述估计相机路径被用于生成所述环境的沉浸式模型,所述沉浸式模型:
针对所述帧序列中的每个帧,指定所述帧在所述楼层平面图内的地点以及至少一个路线向量,所述路线向量定义了所述帧与所述帧序列中的其他帧中的至少一个帧之间的空间距离;以及
针对从所述移动设备所接收到的每个图像,指定所述图像在所述帧中的一个帧内的地点。
10.根据权利要求9所述的方法,还包括:
接收与所述图像中的一个图像相关联的评论,所述评论包括由用户所创作的文本;以及
将所述评论与在所述沉浸式模型中的所述图像相关联。
11.根据权利要求1所述的方法,其中通过在所述帧序列上执行同时的定位过程和映射过程,来生成所述图像捕获系统的所述估计相机路径。
12.根据权利要求1所述的方法,其中所述图像捕获系统的所述相机是360°相机,并且所述视频的所述帧是360°帧。
13.根据权利要求1所述的方法,其中沿所述估计相机路径关联图像还包括:
基于与所述帧相关联的所述视频捕获系统的所述估计相机路径的方向,使所述图像相对于帧定向;以及
基于所述定向将所述图像放置在所述帧内。
14.根据权利要求1所述的方法,其中沿所述估计相机路径关联图像还包括:
从所述移动设备获得与所述图像时间戳相关联的惯性测量单元数据;以及进一步基于所获得的惯性测量单元数据将所述图像放置在帧内。
15.一种系统,包括:
处理器;以及
非暂态计算机可读存储介质,包括计算机程序指令,所述计算机程序指令在由处理器执行时使所述处理器:
从包括相机的移动设备接收多个图像,每个图像包括图像时间戳,当所述移动设备被移动通过环境时,所述图像由所述移动设备的所述相机捕获;
从视频捕获系统接收包括帧序列的视频,每个帧与帧时间戳相关联,当所述视频捕获系统被移动通过所述环境时,所述视频由所述视频捕获系统的相机记录;
生成所述视频捕获系统的估计相机路径,所述估计相机路径表示所述视频捕获系统通过所述环境的所述移动,所述估计相机路径针对在所述帧序列中的帧,指定所述帧相对于一个或多个参考点的位置;以及
基于由所述相机捕获的所述图像时间戳以及由所述视频捕获系统捕获的所述帧时间戳,将所述多个图像中的所述图像与沿所述估计相机路径的地点相关联。
16.根据权利要求15所述的系统,
其中针对由所述移动设备捕获的所述图像中的每个图像,元数据标签被发送给所述图像捕获系统,并且所述元数据标签被插入由所述图像捕获系统捕获的所述视频的数据结构中;以及
其中将所述图像与沿所述视频捕获系统的估计相机路径的地点相关联还基于在所述视频中的所述元数据标签。
17.根据权利要求15所述的系统,
其中将所述图像与沿所述视频捕获系统的估计相机路径的地点相关联还包括:
在所述帧上执行对象检测以标识所述移动计算设备在所述帧中的一个帧中的存在;以及
基于所述移动设备在所述帧中的所标识的存在,将所述图像中的一个图像与所述相机路径内的所述地点中的一个地点相关联。
18.根据权利要求15所述的系统,其中所述移动设备正在由使用所述图像捕获系统的同一用户来使用,以使得所述图像捕获系统的所述路径类似于所述移动设备的所述路径。
19.根据权利要求18所述的系统,其中所述图像捕获系统由使用所述图像捕获系统以及移动设备两者的所述用户来佩戴。
20.根据权利要求15所述的系统,其中所述移动设备包含移动应用,所述移动应用在被使用时自动将所述图像以及对应的图像时间戳发送给空间索引系统。
CN201980088554.2A 2018-11-12 2019-11-11 图像到视频的自动空间索引 Pending CN113424131A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862759945P 2018-11-12 2018-11-12
US62/759,945 2018-11-12
PCT/US2019/060784 WO2020102107A1 (en) 2018-11-12 2019-11-11 Automated spatial indexing of images to video

Publications (1)

Publication Number Publication Date
CN113424131A true CN113424131A (zh) 2021-09-21

Family

ID=70550346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980088554.2A Pending CN113424131A (zh) 2018-11-12 2019-11-11 图像到视频的自动空间索引

Country Status (4)

Country Link
US (4) US10944959B2 (zh)
EP (1) EP3881163A4 (zh)
CN (1) CN113424131A (zh)
WO (1) WO2020102107A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019006189A1 (en) 2017-06-29 2019-01-03 Open Space Labs, Inc. AUTOMATED SPACE INDEXING OF IMAGES BASED ON MASS PLAN CHARACTERISTICS
US10944959B2 (en) 2018-11-12 2021-03-09 Open Space Labs, Inc. Automated spatial indexing of images to video
US10922831B2 (en) * 2019-02-20 2021-02-16 Dell Products, L.P. Systems and methods for handling multiple simultaneous localization and mapping (SLAM) sources and algorithms in virtual, augmented, and mixed reality (xR) applications
CN112013844B (zh) * 2019-05-31 2022-02-11 北京小米智能科技有限公司 建立室内环境地图的方法及装置
US20210082151A1 (en) * 2019-09-14 2021-03-18 Ron Zass Determining image capturing parameters in construction sites from previously captured images
CN113747113A (zh) * 2020-05-29 2021-12-03 北京小米移动软件有限公司 图像显示方法及装置、电子设备、计算机可读存储介质
US11436812B2 (en) * 2020-05-29 2022-09-06 Open Space Labs, Inc. Machine learning based object identification using scaled diagram and three-dimensional model
CN113810943A (zh) * 2021-09-09 2021-12-17 国网信息通信产业集团有限公司北京分公司 智能视觉检测系统及方法

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6097393A (en) 1996-09-03 2000-08-01 The Takshele Corporation Computer-executed, three-dimensional graphical resource management process and system
US8207964B1 (en) 2008-02-22 2012-06-26 Meadow William D Methods and apparatus for generating three-dimensional image data models
WO2006084385A1 (en) 2005-02-11 2006-08-17 Macdonald Dettwiler & Associates Inc. 3d imaging system
US7639943B1 (en) 2005-11-15 2009-12-29 Kalajan Kevin E Computer-implemented system and method for automated image uploading and sharing from camera-enabled mobile devices
US8160400B2 (en) 2005-11-17 2012-04-17 Microsoft Corporation Navigating images using image based geometric alignment and object based controls
CN101055494B (zh) 2006-04-13 2011-03-16 上海虚拟谷数码科技有限公司 基于空间索引立方体全景视频的虚拟场景漫游方法及其系统
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
WO2009006605A2 (en) 2007-07-03 2009-01-08 Pivotal Vision, Llc Motion-validating remote monitoring system
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
WO2012037157A2 (en) 2010-09-13 2012-03-22 Alt Software (Us) Llc System and method for displaying data having spatial coordinates
US8711206B2 (en) 2011-01-31 2014-04-29 Microsoft Corporation Mobile camera localization using depth maps
EP2817785B1 (en) * 2012-02-23 2019-05-15 Charles D. Huston System and method for creating an environment and for sharing a location based experience in an environment
US9324190B2 (en) 2012-02-24 2016-04-26 Matterport, Inc. Capturing and aligning three-dimensional scenes
US11282287B2 (en) * 2012-02-24 2022-03-22 Matterport, Inc. Employing three-dimensional (3D) data predicted from two-dimensional (2D) images using neural networks for 3D modeling applications and other applications
EP2820866A4 (en) 2012-02-28 2015-11-25 Blackberry Ltd SYSTEM AND METHOD FOR OBTAINING IMAGES FROM EXTERNAL PHOTOGRAPHIC DEVICES USING A MOBILE DEVICE
US10139985B2 (en) 2012-06-22 2018-11-27 Matterport, Inc. Defining, displaying and interacting with tags in a three-dimensional model
US8705893B1 (en) 2013-03-14 2014-04-22 Palo Alto Research Center Incorporated Apparatus and method for creating floor plans
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
EP3627446B1 (en) 2013-12-19 2021-06-16 Apple Inc. System, method and medium for generating a geometric model
US10002640B2 (en) 2014-02-28 2018-06-19 Microsoft Technology Licensing, Llc Hyper-lapse video through time-lapse and stabilization
US9613298B2 (en) 2014-06-02 2017-04-04 Microsoft Technology Licensing, Llc Tracking using sensor data
WO2016019390A1 (en) 2014-08-01 2016-02-04 Locuslabs Ip Image-based object location system and process
US9754419B2 (en) 2014-11-16 2017-09-05 Eonite Perception Inc. Systems and methods for augmented reality preparation, processing, and application
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 トヨタ自動車株式会社 路面検出装置
EP3323109B1 (en) 2015-07-16 2022-03-23 Google LLC Camera pose estimation for mobile devices
US9445081B1 (en) * 2015-09-25 2016-09-13 Intel Corporation Method and system of 3D image capture with dynamic cameras
US10163271B1 (en) 2016-04-04 2018-12-25 Occipital, Inc. System for multimedia spatial annotation, visualization, and recommendation
US10395435B2 (en) * 2016-04-04 2019-08-27 Occipital, Inc. System for multimedia spatial annotation, visualization, and recommendation
US10030979B2 (en) 2016-07-29 2018-07-24 Matterport, Inc. Determining and/or generating a navigation path through a captured three-dimensional model rendered on a device
US10769438B2 (en) * 2017-05-23 2020-09-08 Samsung Electronics Company, Ltd. Augmented reality
WO2019006189A1 (en) * 2017-06-29 2019-01-03 Open Space Labs, Inc. AUTOMATED SPACE INDEXING OF IMAGES BASED ON MASS PLAN CHARACTERISTICS
US10944959B2 (en) * 2018-11-12 2021-03-09 Open Space Labs, Inc. Automated spatial indexing of images to video

Also Published As

Publication number Publication date
US10944959B2 (en) 2021-03-09
US20230222784A1 (en) 2023-07-13
EP3881163A1 (en) 2021-09-22
US11995885B2 (en) 2024-05-28
US11178386B2 (en) 2021-11-16
US20220070437A1 (en) 2022-03-03
WO2020102107A1 (en) 2020-05-22
US20200154095A1 (en) 2020-05-14
EP3881163A4 (en) 2022-08-03
US20210136348A1 (en) 2021-05-06
US11638001B2 (en) 2023-04-25

Similar Documents

Publication Publication Date Title
US11386616B2 (en) Automated spatial indexing of images based on floorplan features
US11638001B2 (en) Automated spatial indexing of images to video
US20190020817A1 (en) Connecting and using building interior data acquired from mobile devices
US11734882B2 (en) Machine learning based object identification using scaled diagram and three-dimensional model
JP7280450B2 (ja) ウォークスルービデオの画像検索
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