CN116075818A - 走查视频中的图像搜索 - Google Patents
走查视频中的图像搜索 Download PDFInfo
- Publication number
- CN116075818A CN116075818A CN202180041879.2A CN202180041879A CN116075818A CN 116075818 A CN116075818 A CN 116075818A CN 202180041879 A CN202180041879 A CN 202180041879A CN 116075818 A CN116075818 A CN 116075818A
- Authority
- CN
- China
- Prior art keywords
- video
- walk
- identified
- frame
- 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
- 239000013598 vector Substances 0.000 claims description 159
- 238000000034 method Methods 0.000 claims description 72
- 239000003550 marker Substances 0.000 claims description 12
- 238000007670 refining Methods 0.000 claims description 9
- 230000003247 decreasing effect Effects 0.000 claims description 4
- 238000012800 visualization Methods 0.000 description 58
- 238000007654 immersion Methods 0.000 description 34
- 230000033001 locomotion Effects 0.000 description 32
- 230000008569 process Effects 0.000 description 19
- 230000000007 visual effect Effects 0.000 description 14
- 230000011218 segmentation Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 230000007704 transition Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000010276 construction Methods 0.000 description 7
- 239000000284 extract Substances 0.000 description 6
- 230000002452 interceptive effect Effects 0.000 description 6
- 238000000605 extraction Methods 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 238000009434 installation Methods 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 210000003813 thumb Anatomy 0.000 description 4
- 230000005484 gravity Effects 0.000 description 3
- 230000004807 localization Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000011524 similarity measure Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 229910000831 Steel Inorganic materials 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000002238 attenuated effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000010959 steel Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/53—Querying
- G06F16/532—Query formulation, e.g. graphical querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/56—Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/73—Querying
- G06F16/732—Query formulation
- G06F16/7328—Query by example, e.g. a complete video frame or video sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/73—Querying
- G06F16/738—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/78—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/783—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/78—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/783—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
- G06F16/7837—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using objects detected or recognised in the video content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/78—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/7867—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, title and artist information, manually generated time, location and usage information, user ratings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/40—Software arrangements specially adapted for pattern recognition, e.g. user interfaces or toolboxes therefor
-
- 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/0485—Scrolling or panning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/255—Detecting or recognising potential candidate objects based on visual cues, e.g. shapes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/945—User interactive design; Environments; Toolboxes
-
- 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/46—Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
-
- 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/04803—Split screen, i.e. subdividing the display area or the window area into separate subareas
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Library & Information Science (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computational Linguistics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
- User Interface Of Digital Computer (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
空间索引系统接收在一段时间内拍摄的环境的走查视频集,并且接收包括对象的图像的图像搜索查询。空间索引系统针对对象的实例搜索走查视频集。空间索引系统在用户界面中呈现搜索结果,在第一部分中显示与一个走查视频相关联的、具有对象的实例的标记位置的2D地图,并且在第二部分中显示走查视频集中对象的实例随时间的直方图。
Description
相关申请的交叉引用
本申请要求于2020年4月11日提交的美国临时申请序列号63/008,662的权益,该临时申请的全部内容在本文中引入作为参考。
技术领域
本公开涉及图像和视频处理,并且具体地涉及在走查视频中从空间索引帧生成的图像搜索。
背景技术
在走查视频内搜索对象的能力可以为相关领域中的许多高价值应用提供动力。当走查视频与环境相关联时,针对走查视频中的对象的图像搜索可能是有用的。例如,在施工现场的走查视频中搜索“退出标志”的能力可以简化跟踪该场地的施工完成的程度的能力。即,在安装所有“出口标志”之前,不能认为施工现场是完整的。另外,在走查视频中找到干砌墙的货盘的能力针对管理施工现场上的贸易工人之间的协调是有价值的,使得如果干砌墙的货盘在特定时间不在特定位置处,则干砌墙安装不能进行。针对走查视频中的对象的图像搜索可以在其它环境和其它相关领域中具有类似的应用。
传统上,用户必须手动地搜索走查视频以找到对象的实例,或者另外物理地搜索环境。要求用户以手动搜索走查中的对象的实例或物理搜索环境是低效并且耗时的。总承包商可能希望随时间跟踪重要或有价值的对象的数量和位置。需要一种系统来快速搜索在不同时间处拍摄的走查视频并且标识感兴趣对象的实例以及有效地呈现搜索结果。
发明内容
空间索引系统接收走查视频,该走查视频是描述环境的帧的序列并且执行空间索引过程以自动标识捕获每个帧处的空间位置。当视频捕获系统沿着相机路径移动通过环境时,视频捕获系统捕获帧。在一个实施例中,空间索引系统对帧执行同时定位和映射(SLAM)算法以估计相机路径并且生成环境的模型。利用SLAM算法生成的相机路径估计可以可选地与运动数据、位置数据或环境的平面布置图被组合,以生成相机路径的组合的估计。然后,空间索引系统可以确定捕获每个帧处的位置,并且提供可视化界面,该可视化界面在环境的模型内的每个帧的对应位置处提供每个帧的沉浸视图。
自动空间索引过程可以被执行,而不需要用户用其位置手动注释每个帧或图像。这在其中一次捕获大量帧和/或图像或者其中以规则的时间间隔(例如,每两天)捕获相同空间的帧以便在一段时间内监视空间内的变化的情况下是特别有利的。
空间索引系统进一步允许用户以提供针对对象或表面的图像搜索查询。空间索引系统搜索一个或多个走查视频以确定对象或表面的实例。空间索引系统接收针对环境上的一个或多个走查视频的图像搜索查询。图像搜索查询包括图像,例如来自走查视频帧的用户选择的子帧。空间索引系统确定对应于图像的特征向量集。空间索引系统搜索一个或多个走查视频以标识与特征向量相对应的一个或多个走查视频中的帧的部分。帧的所标识的部分对应于与图像搜索查询相关联的对象或表面的实例。
空间索引系统进一步生成显示搜索结果的界面。该界面包括第一界面部分,其包括环境的平面布置图的表示。第一界面部分包括在平面布置图内与走查视频中的帧的所标识的部分的位置相对应的位置处的标记。即,标记指示来自图像搜索查询的表面的对象的所标识的实例的位置。该界面包括第二界面部分,该第二界面部分包括直方图。直方图的独立轴与表示一个或多个走查视频的时间戳的时间线相对应。在一些实施例中,直方图的条指示时间线上每个走查视频内所标识的部分的实例的计数。该界面是交互式的,并且使能用户通过切换标记来观看帧的所标识的部分,或者通过选择直方图中相对应的条来将不同的走查视频推入第一界面部分。
空间索引系统的搜索和显示界面特征可以被执行,而无需用户手动或物理地搜索对象。搜索和显示界面使能用户跟踪对象的数量和位置两者。这对于确定某一时刻的对象的数量和位置两者以及确定对象的数量和位置随时间的变化都是有利的。
附图说明
图1示出了根据一个实施例的针对空间索引系统的系统环境。
图2A示出了根据一个实施例的相机路径模块的框图。
图2B示出了根据一个实施例的模型生成模块的框图。
图2C示出了根据一个实施例的搜索模块的框图。
图3A-3G是示出根据一个实施例的由模型可视化模块提供的沉浸模型和由搜索可视化模块提供的搜索可视化界面的部分的屏幕截图。
图4是示出根据一个实施例的用于使用平面布置图中的特征针对帧的自动空间索引的示例方法的流程图。
图5是示出根据一个实施例的用于使用强力搜索将相机路径与平面布置图对准的示例方法的流程图。
图6A是示出根据一个实施例的用于使用平面布置图的网格地图来将相机路径与平面布置图对准的示例方法的流程图。
图6B示出了根据一个实施例的平面布置图的示例。
图6C说明根据一个实施例的抓握图的实例。
图7是示出根据一个实施例的用于走查视频中的对象搜索的示例方法的流程图。
图8是示出根据一个实施例的用于走查视频中的对象搜索的示例方法的流程图。
图9是示出根据一个实施例的实现本文实施例的计算机系统的示图。
具体实施方式
I.概述
空间索引系统接收走查视频,该走查视频是描述环境(诸如施工现场的楼层)的帧的序列,并且执行空间索引过程以自动地标识捕获每个帧处的空间位置。空间索引系统还生成环境的沉浸模型,并且提供可视化界面,该可视化界面允许用户在沉浸模型内、在每个帧和图像相对应的位置处查看每个帧和图像。这使得用户能够通过选择帧被记录处的位置来快速导航到特定帧和/或图像。
使用本文描述的方法和系统,空间索引系统可以自动索引每个捕获的帧的位置,而不需要用户执行任何手动注释,并且不需要仅仅依赖于GPS或RF信号,GPS或RF信号在诸如施工现场的室内环境中可能不存在、被阻挡或被显著衰减。这减少了与捕获帧相关联的用户输入量,其允许更快和更有效地完成该过程。
在索引每个捕获的帧的位置之后,空间索引系统可以生成环境的沉浸模型。沉浸模型包括从捕获的帧的序列中提取的帧集,并且针对每个提取的帧指定平面布置图上的位置。沉浸模型还可以包括用于每个提取的帧的一个或多个路线向量。用于提取的帧的路线向量指定提取的帧与其它提取的帧中的一个其它提取的帧之间的空间距离(即,方向和量值)。当在可视化界面中显示提取的帧中的一个提取的帧时,空间索引系统可以在提取的帧内的由每个路线向量限定的位置处显示路点图标。然后,用户可以选择这些路点图标中的一个路点图标来查看在该位置处捕获的提取的帧。
当与沉浸模型交互时,用户可以向空间索引系统提供图像搜索查询以搜索对象。空间索引系统搜索与沉浸模型相关联的走查视频以确定走查视频内的对象的实例。在另一个实施例中,空间索引系统搜索在不同时间点处拍摄的环境的多个走查视频以确定对象的实例。空间索引系统提供搜索结果以显示给用户。结果的显示使能用户跟踪对象的数量和位置两者,以及两者如何随时间改变。
根据一些实施例,空间索引系统基于走查视频中的图像搜索查询来搜索对象。空间索引系统通过执行重叠图像裁剪来将走查视频分割成子帧。空间索引系统生成对应于每个子帧的特征向量以及图像搜索查询中的对象的图像。空间索引系统通过比较对应于不同子帧的特征向量和对应于图像搜索查询的特征向量之间的相似性来确定贯穿走查视频的对象的实例,从而标识与对象相似的帧的部分。例如,对应于每个子帧的特征向量被索引到可搜索的索引中,并且向可搜索的索引查询对应于图像搜索查询的特征向量的最近邻居。在一些实施例中,在最近邻居上执行去重,使得返回的所标识的部分每个对应于对象的不同实例。
对象搜索可以包括细化步骤。所标识的部分被提供给用户,该用户通过在对与所标识的部分相对应的显示的子帧上进行上投票或下投票来提供反馈。该反馈被用于细化与图像搜索查询相关联的特征向量。使用细化特征向量再次运行搜索对象。在对象搜索的第二次运行中,可以提供附加的走查视频用于搜索。
空间索引系统在两部分界面中向用户提供用于观看的得到的走查视频的帧的所标识的部分。界面的第一部分包括平面布置图的二维视图和针对第一走查视频的结果。平面布置图包括指示对象的每个所标识的实例的位置的标记,对应于捕获与帧的所标识的部分相关联的帧处的位置。用户可以切换每个标记以查看所标识的部分。界面的第二部分包括呈现已经被搜索的走查视频的全集的结果的直方图。直方图的独立轴表示时间线,并且沿着直方图的条对应于捕获每个相应的走查视频处的日期。直方图的每个条的高亮部分指示相应走查视频中的帧的多个所标识的部分(例如,包括对象的帧的部分)。用户可以在直方图的条之间切换,以在第一界面部分中生成相应的走查视频的平面布置图和结果。
两部分界面提供了查看对象搜索结果的有效手段。第一部分提供在特定日期期处捕获的走查视频的详细结果,其中用户可以观看对象的所有实例及其相应的位置。第二部分提供对象的实例数量如何随时间改变的概要。用户可以与两部分界面交互以详细查看不同的结果并且收集有价值的数据。
虽然附图和书面描述提供了关于施工现场的示例,但是本文描述的方法和系统还可以被用于其他类型的环境中,诸如完整建筑物的内部区域、一些其他类型的结构(诸如船)的内部区域、或室外区域(诸如花园或庭院)。除了本文描述的施工现场示例之外,捕获的帧和得到的沉浸模型还可以被用于各种其他上下文中。例如,安全警卫可以使用本文描述的方法和系统来记录沿着路线的每个检查点处的设施的状态。作为另一示例,设施管理者可以捕获仓库中库存的照片文档。作为又一示例,房客可以捕获照片以创建房屋的虚拟游览。
II系统环境
图1示出了根据一个实施例的用于标识捕获的序列中的帧的空间位置处的系统环境100。在图1所示的实施例中,系统环境100包括视频捕获系统110、网络120、空间索引系统130和客户端设备150。虽然在图1中示出了单个视频捕获系统110和单个客户端设备150,但是在一些实现中,空间索引系统与多个视频捕获系统110和多个客户端设备150交互。
当系统110沿相机路径移动时,视频捕获系统110收集帧数据、运动数据和位置数据中的一项或多项。在图1所示的实施例中,视频捕获系统包括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被实现为计算设备(例如,图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收集的帧和其它数据,执行空间索引过程以自动标识捕获的每个帧和图像处的空间位置,构建环境的模型,提供允许客户端设备150在模型内的相应位置处查看捕获的帧和图像的可视化界面,使能用户在环境中搜索对象的实例,并且提供允许客户端设备150以查看对象搜索的结果的搜索可视化界面。在图1所示的实施例中,空间索引系统130包括相机路径模块132、相机路径存储器134、平面布置图存储器136、模型生成模块138、模型存储器140、模型可视化模块142、搜索模块144和搜索可视化模块146。
相机路径模块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)图形表示。平面布置图规定了诸如门、窗、墙和楼梯之类的物理特征在环境中的位置和尺寸。建筑物或结构的不同部分可以由单独的平面布置图表示。例如,在上述构造示例中,空间索引系统130可以针对每个楼层、单元或子结构存储单独的楼层平面图。
模型生成模块136生成环境的沉浸模型。如本文所提到的,沉浸模型是环境的表示,其包括环境的提取的帧集,每个帧的相对位置(如由帧的6D姿态所指示的),以及(可选地)每个帧在环境的平面布置图上的绝对位置。在一个实施例中,模型生成模块136从相机路径模块132或相机路径存储器134接收帧序列及其对应的相机路径(例如,针对走查视频中作为帧的序列的每个帧指定6D姿态的6D姿态向量),并且提取序列中帧的子集及其对应的6D姿态用于包括在模型中。例如,如果作为帧的序列的走查视频是以每秒30帧捕获的视频中的帧,则模型生成模块136通过以0.5秒的间隔提取帧及其相应的6D姿态来对帧进行子采样(subsamples)。下面参考图2B详细描述模型生成模块136的实施例。
在生成模型之后,模型生成模块136可以将模型存储在模型存储器140中。模型存储器140包括走查视频存储器141。与该模型相关联的环境的帧集作为走查视频存储在走查视频存储器141中。存储在走查视频存储器141中的走查视频可以对应于从视频捕获系统110接收的帧集,或者是由模型生成模块138提取的用于生成模型的帧的某个子集。存储在模型存储器140中的每个模型和相关联的走查视频与时间戳相关联。时间戳指示视频捕获系统110捕获走查视频中的帧集的日期和/或时间。
模型可视化模块142向客户端设备150提供可视化界面。可视化界面允许用户以两种方式查看沉浸模型。首先,可视化界面基于模型生成模块138的输出提供2D开销映射界面,该输出与来自平面布置图存储器136的环境的对应的平面布置图相关联。2D开销地图是交互界面,其中在2D地图上指示的每个相对相机位置是交互的,使得点击地图上的点导航到在空间中的该点处捕获的提取的帧。其次,可视化界面提供提取的360度帧的第一人称视图,其允许用户在帧周围平移和缩放,并且通过选择帧内表示其它帧的相对位置的路点图标来导航到其它帧。可视化界面在用户在2D俯视图中或在不同帧的第一人称视图中选择帧之后提供帧的第一人称视图。在一些实施例中,模型可视化模块142提供用于在可视化界面中显示用于用户输入图像搜索查询的选项。在一些实施例中,当在2D开销地图交互界面中导航时或当在提取的360度走查视频的帧的第一人称视图中导航时,用户可以提供图像搜索查询。图像搜索查询提示搜索模块144。可视化界面的示例截屏在图3A-3B中示出。
搜索模块144响应于图像搜索查询来搜索环境的一个或多个走查视频,以确定对应于图像搜索查询的帧的部分。图像搜索查询指定对象或表面的图像用于搜索模块144以在一个或多个走查视频中搜索。一个或多个走查视频在走查视频存储器141中被访问,并且与模型存储器140中的相应的模型相关联。该环境与平面布置图存储器136中的平面布置图相关联。搜索模块144执行一种或多种技术来标识一个或多个走查视频中对应于图像搜索查询的帧的部分。在一些实施例中,在一个或多个走查的初始搜索之后,用户向搜索模块144提供关于所标识的部分的反馈以细化图像搜索查询,或者使用其它技术(例如,基于对图像搜索查询的最具预测性特征的自动评估)来细化图像搜索查询。在一些实施例中,搜索模块144搜索附加的走查视频以标识附加的走查视频中对应于细化图像搜索查询的帧的附加部分。搜索模块144向搜索可视化模块146提供包括所标识的部分以及(如果适用的话)附加的所标识的部分的搜索结果。下面参考图2C详细描述搜索模块144的实施例。
搜索可视化模块146向客户端设备150提供搜索可视化界面。搜索可视化界面允许用户查看图像搜索查询的结果。在一些实施例中,搜索可视化界面包括细化界面。细化界面使能用户以提供搜索结果的反馈以细化图像搜索查询。例如,细化界面使得用户输入指示以确认所标识的部分是图像搜索查询中的对象的实例,或者选择指示以拒绝所标识的部分不是图像搜索查询中的对象的实例。包括细化界面的搜索可视化界面的示例在图3C中示出。
在一些实施例中,搜索可视化界面包括两个部分。搜索可视化界面的第一部分指示针对一个或多个走查视频中的第一走查视频的搜索结果。第一界面部分包括与图像搜索查询相关联的环境的平面布置图的表示。在一些实施例中,平面布置图的表示是基于模型生成模块138的输出的2D开销地图界面。在一些实施例中,第一部分包括与平面布置图的表示内的第一走查视频相关联的相机路径的高亮或以其他方式标记的指示。第一部分进一步包括对应于走查视频的帧的所标识的部分的平面布置图的表示内的位置的高亮或以其他方式标记的指示。搜索可视化界面的第二部分包括一个或多个走查视频的结果的直方图。直方图的独立轴是对应于一个或多个走查视频的时间戳的时间线。在一些实施例中,直方图包括高亮条,其指示在一段时间(诸如数天、数周、数月或更长)内捕获的一个或多个走查视频内的帧的所标识的部分的实例。两部分搜索可视化界面的示例屏幕截图在图3D-3G中示出。
搜索可视化界面是交互界面。例如,指示第一部分中的已标识部分的每个高亮区或标记是交互式的,使得在高亮区或标记上的点击导航到在空间中的该点处捕获的帧的所标识的部分。在一些实施例中,搜索可视化界面提供允许用户查看所标识的部分的360度帧的第一人称视图。用户可以确认所标识的部分是否是图像搜索查询中的对象的实例。搜索可视化界面提供了一种有效的装置,用于在某个时刻处确定对象的数量和位置,以及用于通过第二部分中的直方图来监视对象的数量和/或位置随时间的变化。可视化界面的示例截屏在图3C-3G中示出。
客户端设备150是可以连接到网络120的任何计算设备,诸如智能电话、平板计算机、膝上型计算机。客户端设备150在诸如屏幕的显示设备上向用户显示界面,并且接收用户输入以与该界面交互。下面参考图9中的计算机系统900描述客户端设备的示例实现。
IV.相机路径生成概况
图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。以下参考图4、5和6描述用于组合第一估计218和第二估计222并且将相机路径对准平面布置图的示例技术。
V.模型生成概况
图2B示出了根据一个实施例的图1所示的空间索引系统130的模型生成模块138的框图。模型生成模块138接收由相机路径模块132生成的相机路径226,连同由视频捕获系统110捕获的360度帧212的序列、环境的平面布置图257、以及关于360度相机254的信息。模型生成模块138的输出是环境的沉浸模型266。在所示实施例中,模型生成模块138包括路线生成模块1、路线过滤模块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使用以下等式来确定呈现对应于路线向量的路点图标的帧内处的位置:
Picorn=Mproj*(Mpiew)-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作为沉浸模型的一部分被显示给用户。
平面布置图257、显示的路线向量260、相机路径226和提取的帧264被组合到沉浸模型266中。如上所述,沉浸模型266是环境的表示,其包括环境的提取的帧集264,每个帧的相对位置(如相机路径226中的6D姿态所指示)。在图2B所示的实施例中,沉浸模型还包括平面布置图257、平面布置图上的每个帧的绝对位置、以及针对提取的帧264中的一些或全部的显示的路线向量260。
VI.搜索模块概况
图2C示出了根据一个实施例的图1所示的搜索模块144的框图。搜索模块144接收图像搜索查询270,图像搜索查询270包括要搜索的对象或表面中的至少一项以及一个或多个走查视频280,并且返回与图像搜索查询270中的对象或表面的实例相对应的走查视频280的所标识的部分278。在图2A所示的实施例中,搜索模块144包括帧分割模块282、特征向量模块272和相似性模块275。在可选实施例中,搜索模块还包括细化模块290和/或接收附加的走查视频292。
图像搜索查询270是包括至少一个对象或表面的搜索请求,用于搜索模块144在一个或多个走查视频280中搜索。在一些实施例中,图像搜索查询包括图像。该图像可以是新的图像,诸如蜂窝电话图像,或与对象或表面相关联的存储图像,诸如库存照片。备选地,图像可以是从第一走查视频中的360度帧中选择的子帧。例如,当用户正在观看与第一走查视频相关联的沉浸模型时,用户通过提供用户输入以选择第一走查视频中的360度帧的子帧来提供图像搜索查询270。图3B示出了选择子帧的示例实施例。在一些实施例中,图像搜索查询270可以包括对象名称,搜索模块144将该对象名称与库存图像相关联。在一些实施例中,图像搜索查询270包括先前搜索的名称,诸如由用户保存的搜索。
走查视频280是包括与图像搜索查询270相关联的至少第一走查视频的环境的一个或多个走查视频。如本文所提及的,走查视频280可以互换地指单个走查视频(例如,第一走查视频)或多个走查视频集,除非另外指明。走查视频280中的每个走查视频是当视频捕获系统沿相机路径移动通过环境时由视频捕获系统捕获的帧集。在一些实施例中,视频捕获系统是视频捕获系统110。每个走查视频280可以具有通过环境的不同相机路径,并且因此每个可以具有不同数目的帧。走查视频280中的每一个走查视频与时间戳相关联,时间戳指定视频捕获系统捕获的帧集的日期和/或时间。在一些实施例中,每个帧与时间戳相关联,并且与走查视频相关联的时间戳是帧中的一个帧的时间戳中的一个时间戳(例如,最后一帧的时间戳)。在一些实施例中,走查视频280已经由相机路径模块132和模块生成模块138处理,并且每个与沉浸模型相关联。在一些实施例中,走查视频280表示在项目期间以各种间隔捕获的走查视频,其示出了项目的进展。搜索模块144可以从走查视频存储器141中访问走查视频280。
帧分割模块282将与走查视频280相关联的帧集分割成子帧。帧分割模块282通过获取与走查视频280相关联的每个帧的重叠剪辑来生成子帧。子帧具有统一的大小。例如,帧分割模块282通过获取第一帧的重叠剪辑来将第一帧分割成X个子帧,其中X取决于子帧大小和子帧之间的重叠量。帧分割模块282将走查视频280中的每个帧集中的每个帧分割成X个子帧。该子帧集包含针对与走查视频相关联的每个帧的总共X个子帧。
特征向量模块272从图像生成特征向量。即,特征向量模块272将图像转换为表示图像的图像特征的n维数值向量集,本文称为特征向量。图像特征可以是边缘、角、斑点、脊、兴趣点或通过计算机视觉或其它图像处理可标识的其它特征。在一些实施例中,特征向量模块272使用SIFT特征、SURF特征、神经网络或其他机器学习模型、或其一些组合来生成特征向量。特征向量模块272从与图像搜索查询270相关联的图像生成查询特征向量274。特征向量模块272从子帧生成子帧特征向量集284。针对每个输入子帧,特征向量模块272生成表示输入子帧的n维子帧特征向量。
相似性模块275通过确定查询特征向量274和子帧特征向量284之间的相似性来确定走查视频280的所标识的部分集278。相似性模块275包含搜索索引模块276和去重模块277。
搜索索引模块276将特征向量插入到特征向量的可搜索索引中。具体地,搜索索引模块276将子帧特征向量284索引到特征向量的可搜索索引中。可搜索索引由图像特征组织并且可以由图像特征搜索,如由特征向量表示的。在一些实施例中,搜索索引模块276使用诸如位置敏感散列(LSH)的近似最近邻算法来将一个或多个特征向量插入到可搜索索引中。可以通过最近邻搜索(NNS)来查询特征向量的可搜索索引。
相似性模块275使用由搜索索引模块276生成的可搜索索引来确定查询特征向量274的最近邻居集。相似性模块275基于可搜索索引中的特征向量与查询特征向量274之间的相似性度量来查询可搜索索引以返回最近邻居集。在一些实施例中,相似性度量基于可搜索索引中的特征向量与查询特征向量274之间的余弦相似性。如果相似性度量小于可搜索索引中的特征向量的阈值差,则将特征向量添加到最近邻居集。即,最近邻居集是与查询特征向量274最相似的子帧特征向量284的子集。最近邻居集中的每个特征向量与子帧相关联。与最近邻居集相关联的子帧集是建议结果集。在一些实施例中,建议结果集由相似性模块275使用去重模块277来进一步细化,以确定所标识的部分集278。
去重模块277对提出的结果集进行去重,使得针对走查视频中描绘的每个现实对象(或表面)返回一个结果图像。换言之,因为当视频捕获系统沿着相机路径移动通过环境时,在走查视频中的多个帧中经常捕获相同的对象,所以建议结果集可以包含来自不同有利点的相同对象的多个子帧。去重模块277使用一种或多种技术来移除表示对象的重复结果的建议结果集中的结果,使得每个对象与一个结果子帧相关联。
在一些实施例中,去重模块277基于每个子帧的位置距与图像搜索查询相关联的图像的位置的距离,以升序将建议结果集排序成排序列表。针对排序列表中的每个建议结果,如果建议结果是排序列表中的第一结果,则将建议结果推送到去重结果列表。如果建议结果不是排序列表上的第一个结果,则使用重复分数将建议结果与去重结果列表上的所有去重结果进行比较。即,针对每个去重结果,在去重结果和建议结果之间计算重复分数,其中重复分数表示建议结果是与去重结果相同的现实对象的图像的可能性。如果重复分数高于阈值,则从排序列表中移除建议结果。如果针对去重结果列表上的每个去重结果,重复分数低于阈值,则将建议结果添加到去重结果列表中。在一些实施例中,得到的去重结果的列表作为所标识的部分278被返回。
重复分数由去重模块277通过比较两个子帧来确定,两个子帧是与建议结果相关联的子帧和与去重结果相关联的子帧,并且确定两个子帧在物理空间中描绘相同目标对象的可能性。在一些实施例中,基于例如(1)两个子帧之间的图像特征的相似性,(2)在三维空间中目标对象的估计位置,和/或(3)子帧的位置来计算分数。如果两个子帧具有高图像相似性(1)、具有相似的估计目标对象位置(2)和/或相似的子帧位置(3),则针对两个图像的重复分数更高。
使用图像相似性技术的组合来计算图像相似性(1),诸如基于颜色直方图比较和图像特征向量(例如,与两个子帧相关联的子帧特征向量284)之间的余弦相似性。
基于从与相应子帧中的每个相应子帧相关联的360度帧的相机位置延伸通过相应二维子帧的中心的射线的交点,来计算估计的目标对象位置(2)。如果子帧是相同的目标对象,则射线应该在目标对象处或目标对象附近相交。使用从点云数据中提取的几何信息可以使射线相交更加精确,以便估计目标对象到针对每个射线的相机位置的距离,其中使用诸如SLAM的算法或来自运动的结构从走查视频生成点云数据。
通过访问与走查视频相关联的先前确定的相机路径来确定子帧位置(3)。走查视频中的每个帧与相机路径上的位置相关联。因此,帧的每个子帧具有帧的位置。如果两个子帧之间的位置差低于阈值,则子帧可以是来自不同有利点的相同对象的图像。
由搜索模块144标识的所标识的部分278是来自走查视频280的子帧集,其是类似于图像搜索查询270中的对象(或表面)的对象的实例。在一些实施例中,所标识的部分278是由相似性模块275基于搜索索引的最近邻居查询标识的建议结果集。在一些实施例中,建议结果由去重模块277细化为去重结果,并且去重结果是所标识的部分278。在一些实施例中,所标识的部分278由细化模块290和附加的走查视频292细化和/或添加,如下所述。
根据一些实施例,细化模块290基于指示所标识的部分278中的一个或多个所标识的部分的相关性的反馈,来进一步细化查询特征向量274。在一些实施例中,细化模块290访问搜索可视化模块146以提供显示细化界面,从而使能观看者提供反馈。在一些实施例中,指示所标识的部分278中的一个或多个所标识的部分的相关性的反馈是经由细化界面从所标识的部分278的观看者接收的肯定投票或否定投票。细化模块290从搜索可视化模块146接收反馈并且细化查询特征向量274。在一些实施例中,细化模块290通过增加与对应于正反馈的特征相关联的权重并且减小与对应于负反馈的特征相关联的权重来细化查询特征向量274。细化模块290将细化的查询特征向量274提供给相似性模块275。在一些实施例中,相似性模块275再次处理走查视频280的子帧,以通过确定细化的查询特征向量274和子帧特征向量284之间的相似性来确定走查视频280的附加的所标识的部分278的集。
根据一些实施例,附加的走查视频292是由搜索模块144搜索的环境的一个或多个附加的走查视频。附加的走查视频292具有与先前关于走查视频280所讨论的相同的属性。在一些实施例中,用户可以手动提供搜索请求以搜索附加的走查视频292。在一些实施例中,当在与环境相关联的走查视频存储器141中存在附加的走查视频292时,空间索引系统130可以自动地向搜索模块144提供附加的走查视频292。在一些实施例中,响应于细化模块290细化查询特征向量274,自动搜索附加的走查视频292。例如,在一个实施例中,走查视频280仅包含第一走查视频,并且在查询特征向量274的细化之后搜索与环境相关联的附加走查视频292。
附加的走查视频292被提供给帧分段模块282,帧分段模块282生成附加的子帧。附加子帧284被提供给特征向量模块272,其生成附加子帧特征向量284。附加子帧特征向量284被提供给相似性模块275。搜索索引模块276将附加子帧特征向量索引到搜索索引中。相似性模块275基于与细化查询特征向量274的相似性来查询搜索索引以寻找附加的最近邻居集,该附加的最近邻居集与附加的建议结果相关联。附加的建议结果被去重模块277去重,产生附加的所标识的部分279的集。所标识的部分278以及(如适用)附加的所标识的部分279被提供给搜索可视化界面146以供显示。
在一些实施例中,图像搜索查询270和走查视频280不与沉浸模型相关联。即,相机路径226和/或沉浸模型266针对搜索模块144或搜索可视化模块146不是必需的。例如,可以基于与走查视频280相关联的数据(例如,视频捕获系统110收集可以被用于确定帧和子帧位置的运动数据和位置数据)来确定搜索可视化模块146和去重模块277所使用的子帧位置。类似地,在搜索可视化界面的情况下,第一部分的一些实施例不包括相机路径的表示。附加地,走查视频280可以包括2D视频帧而不是360度视频。
VII.可视化界面-示例
图3A-3G是示出根据一个实施例的由模型可视化模块142提供的沉浸模型和由搜索可视化模块146提供的搜索可视化界面的部分的屏幕截图。如上所述,在图1中,搜索可视化模块146生成搜索可视化界面,其允许用户查看图像搜索查询的结果。
图3A-3G中所示的屏幕截图以类似于上述一般合同示例的一般合同公司示例继续。当在施工现场上完成成帧时,总承包商捕获走查视频,该走查视频是每个单元内的帧的序列,以创建所做的工作进度的记录。捕获的帧作为输入被提供给相机路径模块132,相机路径模块132生成构成相机路径的6D相机姿态的向量(每个帧一个6D姿态)。相机路径和走查视频作为输入被提供给模型生成模块138,模型生成模块138生成沉浸模型。用户可以通过使用客户端设备150查看由模型可视化模块142提供的可视化界面来查看沉浸模型。通过可视化界面,用户可以通过选择包括环境的平面布置图的表示的2D俯视图上的图标,来导航到序列中的不同帧。在用户选择了用于2D高架地图中的帧的图标之后,可视化界面显示用户可以平移和缩放的帧的第一人称视图。
图3A示出了由模型可视化模块142生成的可视化界面的第一人称视图的示例显示。第一人称视图还包括表示其他捕获的帧的位置的路点图标,并且用户可以通过选择用于帧的路点图标来导航到这些其他帧中的一个其他帧的第一人称视图。基于从正被显示的帧指向另一帧的路线向量来呈现每个路点图标。在图3A所示的第一人称视图中,路点图标是蓝色圆圈。
返回参考总承包公司示例,在记录走查视频两个月后,总承包商发现几个升降台丢失。传统上,确定丢失的升降台的位置需要人工研究工作。最多,总承包商可以使用口头语言来尝试确定最后已知的位置,但是考虑到时间的流逝,这种努力可能是不成功的。备选地,总承包商可以让所有工人暂停工作来搜索丢失的项目,但是这将是昂贵的,并且导致在施工现场上的实质性工作的延迟。相反,总承包商能够访问对象图像搜索特征以从两个月前标识走查视频中的升降台的位置。总承包商可以将搜索传播到随时间拍摄的所有走查视频,并且在搜索可视化界面中查看结果。总承包商可以点击这些结果,以得到随时间变化的升降台位置和数量的核算,并且确定升降台的最后已知位置。在图3A的示例中,用户已经将指针滚动到沉浸模型的可视化界面中的对象搜索特征上。
例如,在图3B中,用户已经切换了对象搜索特征并且正在使用指针来选择包含对象的子帧310。如显示器所提示的,用户选择子帧310以如由虚线所划界的那样进行搜索。在该示例中,用户已经选择了升降台以在视频中进行搜索。搜索模块144执行对象搜索以搜索与沉浸模型相关联的走查视频中的子帧310(例如,升降台)中的对象的其他实例。由对象搜索特征提示而选择的升降台的子帧310是图像搜索查询270的示例,并且与正被观看的沉浸模型相关联的走查视频是走查视频280的示例。
图3C示出了显示由搜索模块144返回的所标识的部分322的细化界面320的示例。图3C所示的示例细化界面320具有两个部分。细化界面的右手部分显示具有若干标记324的平面布置图。平面布置图与走查视频的环境相关联。标记324指示环境内每个所标识的部分322的相应位置。即,针对所标识的部分322,标记器324标记沿着与所标识的部分322相关联的帧的相机路径的位置。标记324用于向用户指示物理环境中每个对象的位置。群集和图案可以通过右手显示而变得明显。
图3C中的示例性细化界面320的左手部分显示了走查视频中具有类似于图像搜索查询中的升降台的对象的帧的所标识的部分322。如拇指向上和拇指向下所示,反馈按钮326覆盖在每个所标识的部分上。用户可以选择拇指向上以提供正反馈并且指示所标识的部分中的对象是图像搜索查询中的对象的实例。用户可以选择拇指向下以提供负反馈并且指示所标识的部分中的对象不是图像搜索查询中的对象的实例。当完成经由反馈按钮326提供反馈时,用户可以选择“查看所有结果”按钮来查看附加的所标识的部分。细化模块290接收反馈并且细化搜索,并且搜索模块144搜索附加的走查视频290以确定附加的所标识的部分279。在该示例中,附加的走查视频290是由总承包商在先前日期拍摄的施工现场的不同走查视频。
图3D示出了两部分搜索可视化界面330的示例。第一部分332在顶部显示环境的平面布置333的表示,在平面布置333的表示内对应于走查视频的帧的所标识的部分的位置处具有高亮标记324。在该示例中,第一部分332仅包括一个高亮显示的标记324。同样高亮显示的是与走查视频相关联的相机路径334,其在平面布置图333中拍击。第二部分335在底部显示直方图336,直方图的独立轴包括对应于附加走查视频的时间戳的时间线337。在这个示例中,直方图336的时间线337具有跨越几个月的日期。该直方图包括高亮条338,其指示附加的走查视频内的帧的所标识的附加部分的实例。均匀高度的直方图的浅色条339指示在特定的一天拍摄走查视频。较浅色条339上的较深色或高亮的条338指示包括在相应走查视频中的帧的所标识的部分的数量。即,较深色或高亮的条338指示在时间线337上的相应日期的环境中的对象(例如,升降台)的数目。
在图3D中,在第一部分中表示的走查视频和所标识的部分是4月10日的日期340,如在第二部分335的时间线337中标记的。观看者可以与搜索可视化界面330交互。例如,直方图的每个条在被选择时使得与在与所选条相关联的时间戳处捕获的走查视频相对应的搜索结果被显示在第一界面部分332内。当用户在2月27日的日期342选择条时,显示图3E所示的界面。图3E示出了在与图3D相同的两部分搜索可视化界面330中的不同的走查视频。走查视频与相同的环境相关联,因此平面图333在图3D和3E中是相同的。然而,3E具有与走查视频相关联的不同相机路径344,如图所示。另外,来自2月27日342的走查视频具有更多的所标识的部分,如指示对象实例的高亮标记324所示。
回到总承包商的示例,总承包商可以使用该搜索可视化界面来查看在特定日期期处的升降台的位置和数量,以及升降台如何通过沿着时间线切换而随时间移动和改变。例如,到4月10日,只剩下一个升降台。但是,通过回到2月27日,总承包商可以看到有更多的升降台。总承包商可以查看2月27日和4月10日之间的结果,以跟踪丢失的升降台的最后位置。通过使用搜索可视化界面330来“随时间往回行进”并且查看升降台如何随时间移动和改变,总承包商可以跟踪施工现场上的各种设备。此外,因为空间索引系统130可以执行对象图像搜索而无需用户执行物理搜索或通过视频手动搜索,所以跟踪设备和对象的过程更有效。
为了确认每个所标识的部分实际上是对象的实例,用户可以选择高亮标记324来查看与所标识的部分相关联的帧。图3F中示出了一个示例。用户可以看到360度帧的预览350。用户可以进一步切换到“行进到360度图像”,并且空间索引系统130将用户带到沉浸模型的可视化界面中。用户可以查看所标识的部分中的对象的实例以及在沉浸模型中捕获的周围环境两者。
在一些实施例中,环境跨越多个楼层360。走查视频可以与多个楼层360相关联,平面布置362跨越多个楼层360。图3G示出了这种实施例的示例,其中第一界面部分332包括多个楼层360的可滚动表示,使得观看者可以滚动以观看与跨多个楼层360的帧的所标识的部分相对应的高亮标记324。滚动视图被称为塔视图。用户可以选择特定的发言权来更详细地查看该发言权的搜索结果。
在另一示例中,施工现场的总承包商可以使用对象搜索来跟踪施工现场上的任务的进展。例如,总承包商使用对象搜索来搜索干砌墙的货盘。总承包商可以使用搜索可视化界面来确定干砌墙托盘到达施工现场的日期(例如,在指示包括在相应的走查视频中的干砌墙托盘实例的直方图中具有高亮条的最早走查视频)。类似地,总承包商可以使用搜索可视化界面来确定安装干砌墙的最后一个的日期(例如,在指示包括在相应的走查视频中的干砌墙的栈板实例的直方图中具有高亮条的最新走查视频)。通过能够追溯地确定干砌墙安装的开始和结束日期,总承包商可以证明从安装干砌墙的分包商收到的帐单是准确的。如果分包商对总承包商超额收费,则总承包商可以使用结果对象图像搜索来争议账单。
另外,总承包商可以通过搜索对应于干砌墙表面的表面来跟踪干砌墙安装的进度。搜索可视化界面将在第一部分中显示高亮标记,该高亮标记指示干砌墙表面的实例的位置,即干砌墙已被安装。通过切换在不同日期处拍摄的走查视频,总承包商可以查看并且跟踪干砌墙安装的进展。这针对跟踪进程和诊断干砌墙安装后的问题都是有用的。例如,在记录图像两个月后,在其中一个单元中发现一个问题,该问题需要检查隐藏在其中一个壁内的电功。传统上,检查这种电功需要拆下干砌墙和其它已完成的饰面以暴露该电功,这是非常昂贵的操作。然而,总承包商反而能够访问搜索可视化界面并且快速确定干砌墙安装在所讨论的墙上的日期。然后,总承包商可以参考沉浸模型的可视化界面中的预先走查视频,以在用干砌墙覆盖之前查看电功。因此,总承包商可以检查电气问题,同时避免需要昂贵地移除干砌墙。VIII.基于平面布置图特征的帧的空间索引
如上所述,可视化界面可以提供2D俯视图,其显示环境的平面布置图中每个帧的位置。除了在俯视图中显示之外,环境的平面布置图还可以被用作确定每个帧的位置的空间索引过程的一部分。
图4是示出根据一个实施例的用于使用平面布置图中的特征针对帧进行自动空间索引的示例方法400的流程图。在其他实施例中,方法400可以包括附加的、更少的或不同的步骤,并且图4所示的步骤可以以不同的顺序被执行。例如,可以执行方法400而不获得430平面布置图,在这种情况下,生成440相机路径的组合估计而不使用平面布置图中的特征。
空间索引系统130从视频捕获系统110接收410作为帧的序列的走查视频。当视频捕获系统110沿着相机路径移动通过环境(例如,施工现场的地板)时,捕获序列中的帧。在一个实施例中,每个帧是由视频捕获系统上的360度相机(例如,以上关于图1描述的360度相机112)捕获的360度帧。在另一个实施例中,每个帧具有较窄的视场,诸如90度。
空间索引系统130基于作为帧的序列的走查视频生成420相机路径的第一估计。相机路径的第一估计可以被表示为例如六维向量,其指定序列中针对每个帧的6D相机姿态。在一个实施例中,空间索引系统130的组件(例如,上文参考图2A描述的SLAM模块216)对作为帧的序列的走查视频执行SLAM算法,以同时确定针对每个帧的6D相机姿态并且生成环境的三维虚拟模型。
空间索引系统130获得430环境的平面布置图。例如,多个平面布置图(包括在作为帧的序列的接收的走查视频中描述的针对环境的平面布置图)可以被存储在平面布置图存储器136中,并且空间索引系统130访问平面布置图存储器136以获得环境的平面布置图。还可以经由视频捕获系统110或客户端设备150从用户接收环境的平面布置图,而不将其存储在平面布置存储136中。
空间索引系统130基于相机路径的第一估计和平面布置图中的物理特征生成440相机路径的组合估计。以下分别参考图5和图6描述生成相机路径440的组合估计的两个示例方法500、600。
在生成440相机路径的组合估计之后,空间索引系统130生成450环境的沉浸模型。例如,模型生成模块138通过组合平面布置图、多个路线向量、相机路径的组合估计以及从作为帧的序列的走查视频中提取的帧来生成沉浸模型,如以上参照图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姿态的置信度分数表示用于生成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.可视化界面-对象图像搜索示例
图7是示出根据一个实施例的用于走查视频中的对象图像搜索的示例方法700的流程图。在其他实施例中,方法700可以包括附加的、更少的或不同的步骤,并且图7中所示的步骤可以以不同的顺序被执行。
空间索引系统130接收710环境的走查视频的图像搜索查询。在一些实施例中,图像搜索查询包括用于空间索引系统130,特别是搜索模块144的对象或表面,以在走查视频中进行搜索。图像搜索查询包括图像搜索查询中指定的对象或表面的图像或与图像搜索查询中指定的对象或表面的图像相关联。在一些实施例中,接收的图像搜索查询包括对走查视频的帧的一部分的选择。在一些实施例中,图像搜索查询是图像搜索查询270,并且走查视频是走查视频280。
空间索引系统130确定720与图像搜索查询中的图像相对应的特征向量集。特征向量集是表示图像的图像特征的数值的n维向量集。因此,特征向量集是图像中的对象或表面的表示。在接收的图像搜索查询包括对走查视频的帧的部分的选择的实施例中,所标识的特征向量表示走查视频的帧的选择的部分的图像特征。在一些实施例中,特征向量集由特征向量模块272生成。
空间索引系统130搜索730走查视频以标识走查视频的帧中对应于所标识的特征向量集的部分。所标识的部分是包含与图像搜索查询中的实例对象或表面类似的实例对象或表面的走查视频的子帧。在一些实施例中,通过比较与子帧相关联的特征向量和与图像搜索查询相关联的特征向量集的相似性来确定所标识的部分。在一些实施例中,对应于走查视频的帧的所标识的部分的特征向量与对应于图像搜索查询的所标识的特征向量之间的差异是小于阈值差异的。在一些实施例中,所标识的部分由相似性模块275确定并且是所标识的部分278。
在一些实施例中,搜索730包括对所标识的部分的子集执行去重操作,其中所标识的部分的子集中的每个所标识的部分对应于相同对象。在一些实施例中,基于与所标识的部分的子集中的每个所标识的部分相关联的平面布置图中的位置的接近度来标识对应于相同对象的所标识的部分的子集。此外,在一些实施例中,基于所标识的部分的子集之间的图像特征的相似性,来标识对应于相同对象的所标识的部分的子集。去重操作可以由去重模块277执行。
在一些实施例中,方法700进一步包括基于走查视频中的帧的所标识的部分来细化特征向量集的步骤。在一些实施例中,细化740基于指示走查的帧的一个或多个所标识的部分的相关性的反馈。例如,指示帧的一个或多个所标识的部分的相关性的反馈可以是从走查视频的帧的所标识的部分的观看者接收的肯定投票或否定投票。在一些实施例中,细化所标识的特征向量集包括增加与对应于正反馈的特征相关联的权重以及减少与对应于负反馈的特征相关联的权重。在一些实施例中,与所标识的部分相关联的特征向量提供用于细化与搜索查询相关联的特征向量集的信息。例如,特定特征在与所标识的部分相关联的特征向量中频繁出现,指示该特定特征是该对象的高度预测性的。可以细化特征向量集以增加与特定特征相关联的权重。另外,与所标识的部分相关联的特征向量中很少出现的特定特征指示该特定特征不是该对象的预测,并且可以细化该特征向量集以降低与该特定特征相关联的权重。
空间索引系统130接收740使用图像搜索查询搜索环境的走查视频集的请求,每个走查视频与时间戳相关联。在一些实施例中,请求740由用户提供。在其它实施例中,该请求由空间索引系统130自动化。在一些实施例中,在比捕获走查视频的时间更早的时间段上捕获走查视频集。空间索引系统130访问走查视频存储器141中的走查视频集。在一些实施例中,走查视频集是附加的走查视频292。
空间索引系统130搜索750走查视频集以标识走查视频集内对应于特征向量的帧的附加部分。附加的所标识的部分是包含与图像搜索查询中的实例对象或表面类似的实例对象或表面的走查视频集合的子帧。空间索引系统130可以通过与搜索730所标识的部分相同的方式来搜索750附加的所标识的部分,包括可选的去重步骤。如上所述,可以使用与图像搜索查询相关联的细化的特征向量集来执行搜索750。在一些实施例中,附加的所标识的部分是附加的所标识的部分279。
空间索引系统130生成760用于显示的界面,该界面包括具有与所标识的部分相对应的高亮位置的环境的平面布置图的表示,以及具有时间线的直方图,该时间线指示走查视频集内的帧的附加的所标识的部分。即,平面布置图的表示在界面的第一部分中,而直方图在界面的第二部分中。该界面可以由搜索可视化界面146生成760。
生成的760界面的第一部分显示搜索730的结果。第一部分包括环境平面布置图的表示,其中在平面布置图的表示内高亮位置对应于走查视频的帧的所标识的部分。即,高亮位置对应于类似于图像搜索查询中指定的对象或表面的实例。在一些实施例中,当选择平面布置图的表示内的每个高亮位置时,使第一界面部分被修改以提供来自对应于高亮位置的走查视频的帧的所标识的部分的显示。
生成的760界面的第二部分显示搜索750的结果。第二部分包括具有对应于走查视频集的时间戳的时间线的直方图,直方图包括指示走查视频集内的帧的所标识的附加的部分的实例的高亮条。在一些实施例中,直方图的每个条表示在特定日期捕获的走查视频集的走查视频。在一个这种实施例中,直方图的高亮条的高度指示对应于对象或表面的实例的附加标识部分的实例的数目,被包括在时间线上的特定日期上捕获的走查视频中。在一些实施例中,直方图的每个条在被选择时使得对应于在与所选择的条相关联的时间戳处捕获的走查视频的平面布置图被显示在第一界面部分内。
图8是示出根据一个实施例的用于走查视频中的对象搜索的示例方法800的流程图。在其他实施例中,方法800可以包括附加的、更少的或不同的步骤,并且图8中所示的步骤可以以不同的顺序被执行。
空间索引系统130接收810用于环境的走查视频集的图像搜索查询,每个走查视频与时间戳相关联。在一些实施例中,图像搜索查询包括用于空间索引系统130(特别是搜索模块144)的对象或表面,以在走查视频集中进行搜索。图像搜索查询包括图像搜索查询中指定的对象或表面的图像或与图像搜索查询中指定的对象或表面的图像相关联。在一些实施例中,接收的图像搜索查询包括第一走查视频的帧的部分的选择。在一些实施例中,图像搜索查询是图像搜索查询270,并且走查视频集是走查视频280。
空间索引系统130确定820与图像搜索查询中的图像相对应的特征向量集。特征向量集是表示图像的数字特征的n维向量集。因此,该特征向量集还提供图像中的对象或表面的表示。在接收的图像搜索查询包括第一走查视频的帧的部分的选择的实施例中,所标识的特征向量表示走查视频的帧的选择的部分的图像特征。在一些实施例中,特征向量集由特征向量模块272生成。
空间索引系统130搜索830走查视频集,以标识对应于所标识的特征向量组的走查视频的帧的部分。所标识的部分是走查视频集中的走查视频的子帧,其包含与图像搜索查询中的实例对象或表面类似的实例对象或表面。在一些实施例中,通过比较与子帧相关联的特征向量的相似性和与图像搜索查询相关联的特征向量集,来确定所标识的部分。在一些实施例中,对应于走查视频的帧的所标识的部分的特征向量与对应于图像搜索查询的所标识的特征向量之间的差小于阈值差。在一些实施例中,所标识的部分由相似性模块275确定并且是所标识的部分278。
在一些实施例中,搜索830包括在所标识的部分的子集上执行去重操作,其中所标识的部分的子集中的每个所标识的部分对应于相同对象。在一些实施例中,基于与所标识的部分的子集中的每个所标识部分相关联的平面布置图中的位置的接近度,来标识对应于相同对象的所标识的部分的子集。此外,在一些实施例中,基于所标识的部分的子集之间的图像特征的相似性,来标识对应于相同对象的所标识的部分的子集。去重操作可以由去重模块277执行。
在一些实施例中,方法800进一步包括基于指示走查视频集的帧的一个或多个所标识的部分的相关性的反馈来细化特征向量集的步骤。例如,指示帧的一个或多个所标识的部分的相关性的反馈可以是从走查视频的帧的所标识的部分的观看者接收的肯定投票或否定投票。在一些实施例中,细化所标识的特征向量集包括增加与对应于正反馈的特征相关联的权重以及减少与对应于负反馈的特征相关联的权重。可以在细化步骤之后重新进行搜索830。
空间索引系统130生成840用于显示界面,该界面包括环境的平面布置图的表示和直方图,该环境的平面布置图具有与第一走查视频的所标识的部分相对应的高亮位置,该直方图具有指示走查视频集内的帧的所标识的部分的时间线。即,平面布置图的表示在界面的第一部分中,而直方图在界面的第二部分中。该界面可以由搜索可视化界面146生成840。
生成的840界面的第一部分显示针对第一走查视频的搜索830的结果。第一部分包括环境的平面布置图的表示,其中在平面布置图的表示内高亮位置对应于第一走查视频的帧的所标识的部分。即,高亮位置对应于类似于图像搜索查询中指定的对象或表面的实例。在一些实施例中,当选择平面布置图的表示内的每个高亮位置时,使第一界面部分被修改,以提供来自第一走查视频的对应于高亮位置的帧的所标识的部分的显示。
生成的840界面的第二部分显示针对走查视频集的搜索830的结果。第二部分包括具有对应于走查视频集的时间戳的时间线的直方图,直方图包括指示走查视频集内的帧的所标识的部分的实例的高亮条。在一些实施例中,直方图的每个条表示在特定日期捕获的走查视频集的走查视频。在一个这种实施例中,直方图的高亮条的高度指示在时间线上特定日期中捕获的走查视频内包括的对应于对象或表面的实例的所标识的部分的实例的数目。在一些实施例中,直方图的每个条在被选择时使得对应于在与选择的条相关联的时间戳处捕获的走查视频的平面布置图被显示在第一界面部分内。
XII.硬件组件
图9是示出可以在其上实现本文所述实施例的计算机系统900的框图。例如,在图1的上下文中,可以使用图9中所描述的计算机系统900来实施视频捕获系统110、空间索引系统130和客户端设备150。视频捕获系统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.根据权利要求6所述的方法,其中细化所标识的所述特征向量集包括增加与对应于正反馈的特征相关联的权重并且减小与对应于负反馈的特征相关联的权重。
9.根据权利要求1所述的方法,其中所述走查视频集在比捕获所述走查视频的时间更早的时间段内被捕获。
10.根据权利要求1所述的方法,其中所述图像搜索查询对应于对象,并且其中所述平面布置图的所述表示内的所述标记位置包括基于所述走查视频内的所述对象的所述表示,来标记所述对象在所述平面布置图内的位置。
11.根据权利要求1所述的方法,其中所述平面布置图的所述表示内的每个标记位置在被选择时使所述第一界面部分被修改,以提供来自所述走查视频的、与所述标记位置相对应的帧的所标识的部分的显示。
12.根据权利要求1所述的方法,其中所述直方图的每个条与在特定日期被捕获的所述走查视频集中的走查视频相对应。
13.根据权利要求12所述的方法,其中所述直方图的每个条的高度基于在与所述直方图的所述条相对应的所述特定日期被捕获的所述走查视频内包括的所标识的帧的部分的数目。
14.根据权利要求1所述的方法,其中所述直方图的每个条在被选择时,使在与所选择的所述条相关联的时间戳捕获的走查视频对应的平面布置图被显示在所述第一界面部分内。
15.根据权利要求1所述的方法,其中搜索所述走查视频进一步包括对所述走查视频内的帧的所标识的部分的子集执行去重操作,其中所标识的部分的所述子集中的每个所标识的部分对应于相同对象。
16.根据权利要求15所述的方法,其中基于与所述走查视频的帧的所标识的部分的所述子集中的每个所标识的部分相关联的所述平面布置图内的位置的接近度,来标识与所述相同对象相对应的所述走查视频的帧的所标识的部分的所述子集。
17.根据权利要求15所述的方法,其中基于所述走查视频的帧的所标识的部分的所述子集之间的图像特征的相似性,来标识与所述相同对象相对应的所述走查视频的帧的所标识的部分的所述子集。
18.根据权利要求1所述的方法,其中所述环境包括多个楼层,所述平面布置图跨越所述多个楼层,并且其中所述第一界面部分包括所述多个楼层的可滚动表示,使得观看者可以滚动以观看与跨多个楼层的帧的所标识的部分相对应的标记位置。
19.一种方法,包括:
接收针对环境的走查视频集的图像搜索查询,每个走查视频与时间戳相关联;
确定对应于所述图像搜索查询的特征向量集;
搜索所述走查视频集以标识所述走查视频集中的、与所述特征向量集相对应的走查视频的帧的部分;
生成用于显示的界面,所述界面包括:
第一界面部分,所述第一界面部分包括所述环境的平面布置图的表示,在所述平面布置图的表示内具有与所述走查视频集中的第一走查视频的所标识的帧的所述部分的标记位置,以及
第二界面部分,所述第二界面部分包括直方图,所述直方图的独立轴包括与所述走查视频集的所述时间戳相对应的时间线,所述直方图包括指示所述走查视频集内的所标识的帧的所述部分的实例的条。
20.一种存储可执行指令的非瞬态计算机可读存储介质,所述可执行指令在由硬件处理器执行时使所述硬件处理器执行步骤,所述步骤包括:
接收针对环境的走查视频的图像搜索查询;
确定对应于所述图像搜索查询的特征向量集;
搜索所述走查视频以标识与所述特征向量集相对应的所述走查视频的帧的部分;
接收使用所述图像搜索查询搜索所述环境的走查视频集的请求,每个走查视频与时间戳相关联;
搜索所述走查视频集以标识所述走查视频集中的、与所述特征向量集相对应的帧的附加部分;以及
生成用于显示的界面,所述界面包括:
第一界面部分,所述第一界面部分包括所述环境的平面布置图的表示,在所述平面布置图的表示内具有与所述走查视频的帧的所标识的部分相对应的标记位置,以及
第二界面部分,所述第二界面部分包括直方图,所述直方图的独立轴包括与所述走查视频集的所述时间戳相对应的时间线,所述直方图包括指示所述走查视频集内的帧的所标识的所述附加部分的实例的条。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063008662P | 2020-04-11 | 2020-04-11 | |
US63/008,662 | 2020-04-11 | ||
US17/016,146 | 2020-09-09 | ||
US17/016,146 US11386151B2 (en) | 2020-04-11 | 2020-09-09 | Image search in walkthrough videos |
PCT/US2021/026668 WO2021207664A1 (en) | 2020-04-11 | 2021-04-09 | Image search in walkthrough videos |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116075818A true CN116075818A (zh) | 2023-05-05 |
CN116075818B CN116075818B (zh) | 2024-07-05 |
Family
ID=78006299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180041879.2A Active CN116075818B (zh) | 2020-04-11 | 2021-04-09 | 走查视频中的图像搜索 |
Country Status (5)
Country | Link |
---|---|
US (3) | US11386151B2 (zh) |
EP (1) | EP4133408A4 (zh) |
JP (1) | JP7280450B2 (zh) |
CN (1) | CN116075818B (zh) |
WO (1) | WO2021207664A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6697150B1 (ja) * | 2019-10-30 | 2020-05-20 | 株式会社Qoncept | 軌道算出装置、軌道算出方法、軌道算出プログラム |
JPWO2022070340A1 (zh) * | 2020-09-30 | 2022-04-07 | ||
US20230051775A1 (en) * | 2021-08-10 | 2023-02-16 | Siemens Industry Software Inc. | Construction of environment views from selectively determined environment images |
US20230290090A1 (en) * | 2022-03-10 | 2023-09-14 | Streem, Llc | Searchable object location information |
CN115455275B (zh) * | 2022-11-08 | 2023-02-03 | 广东卓维网络有限公司 | 融合巡检设备的视频处理系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030009493A1 (en) * | 2001-05-23 | 2003-01-09 | Eastman Kodak Company | Using digital objects organized according to a histogram timeline |
US20090031246A1 (en) * | 2006-02-28 | 2009-01-29 | Mark Anthony Ogle Cowtan | Internet-based, dual-paned virtual tour presentation system with orientational capabilities and versatile tabbed menu-driven area for multi-media content delivery |
US20110093492A1 (en) * | 2000-07-24 | 2011-04-21 | Sanghoon Sull | System and Method for Indexing, Searching, Identifying, and Editing Multimedia Files |
CN103294813A (zh) * | 2013-06-07 | 2013-09-11 | 北京捷成世纪科技股份有限公司 | 一种敏感图片搜索方法和装置 |
CN107635126A (zh) * | 2016-07-13 | 2018-01-26 | 波音公司 | 用于生成飞机建造过程的增强立体视频的系统和方法 |
US20200027267A1 (en) * | 2017-06-29 | 2020-01-23 | Open Space Labs, Inc. | Automated spatial indexing of images based on floorplan features |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3566530B2 (ja) * | 1998-01-08 | 2004-09-15 | 日本電信電話株式会社 | 空間散策映像表示方法及び空間内オブジェクト検索方法及び空間内オブジェクト抽出方法及びそれらの装置及びそれらの方法を記録した記録媒体 |
JP3538112B2 (ja) * | 2000-03-21 | 2004-06-14 | 日本電信電話株式会社 | 遠隔監視方法、装置、および遠隔監視プログラムを記録した記録媒体 |
US20040183826A1 (en) * | 2003-02-20 | 2004-09-23 | Taylor Jaime R. | Method for providing images of real property in conjunction with their directional orientation |
US7356164B2 (en) | 2003-05-30 | 2008-04-08 | Lucent Technologies Inc. | Method and apparatus for finding feature correspondences between images captured in real-world environments |
US7542610B2 (en) * | 2005-05-09 | 2009-06-02 | Like.Com | System and method for use of images with recognition analysis |
US20070257986A1 (en) * | 2006-05-05 | 2007-11-08 | Ivanov Yuri A | Method for processing queries for surveillance tasks |
US8239359B2 (en) * | 2008-09-23 | 2012-08-07 | Disney Enterprises, Inc. | System and method for visual search in a video media player |
JP2012141894A (ja) * | 2011-01-05 | 2012-07-26 | Sharp Corp | 画像検索装置、画像検索方法およびプログラム |
US9443011B2 (en) * | 2011-05-18 | 2016-09-13 | Microsoft Technology Licensing, Llc | Searching for images by video |
US8515953B2 (en) * | 2011-11-29 | 2013-08-20 | Microsoft Corporation | Temporal visualization of query results |
US10219026B2 (en) * | 2015-08-26 | 2019-02-26 | Lg Electronics Inc. | Mobile terminal and method for playback of a multi-view video |
US9898665B2 (en) * | 2015-10-29 | 2018-02-20 | International Business Machines Corporation | Computerized video file analysis tool and method |
JP6602726B2 (ja) * | 2016-05-30 | 2019-11-06 | 日本電信電話株式会社 | 仮想環境生成装置、仮想環境生成方法、プログラム |
US10832437B2 (en) * | 2018-09-05 | 2020-11-10 | Rakuten, Inc. | Method and apparatus for assigning image location and direction to a floorplan diagram based on artificial intelligence |
-
2020
- 2020-09-09 US US17/016,146 patent/US11386151B2/en active Active
-
2021
- 2021-04-09 CN CN202180041879.2A patent/CN116075818B/zh active Active
- 2021-04-09 JP JP2022562045A patent/JP7280450B2/ja active Active
- 2021-04-09 EP EP21785155.9A patent/EP4133408A4/en active Pending
- 2021-04-09 WO PCT/US2021/026668 patent/WO2021207664A1/en unknown
-
2022
- 2022-05-30 US US17/827,792 patent/US11734338B2/en active Active
-
2023
- 2023-06-30 US US18/346,007 patent/US20230342389A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110093492A1 (en) * | 2000-07-24 | 2011-04-21 | Sanghoon Sull | System and Method for Indexing, Searching, Identifying, and Editing Multimedia Files |
US20030009493A1 (en) * | 2001-05-23 | 2003-01-09 | Eastman Kodak Company | Using digital objects organized according to a histogram timeline |
US20090031246A1 (en) * | 2006-02-28 | 2009-01-29 | Mark Anthony Ogle Cowtan | Internet-based, dual-paned virtual tour presentation system with orientational capabilities and versatile tabbed menu-driven area for multi-media content delivery |
CN103294813A (zh) * | 2013-06-07 | 2013-09-11 | 北京捷成世纪科技股份有限公司 | 一种敏感图片搜索方法和装置 |
CN107635126A (zh) * | 2016-07-13 | 2018-01-26 | 波音公司 | 用于生成飞机建造过程的增强立体视频的系统和方法 |
US20200027267A1 (en) * | 2017-06-29 | 2020-01-23 | Open Space Labs, Inc. | Automated spatial indexing of images based on floorplan features |
Also Published As
Publication number | Publication date |
---|---|
JP7280450B2 (ja) | 2023-05-23 |
CN116075818B (zh) | 2024-07-05 |
EP4133408A4 (en) | 2024-05-01 |
US20230342389A1 (en) | 2023-10-26 |
US11386151B2 (en) | 2022-07-12 |
JP2023518916A (ja) | 2023-05-08 |
US20210319228A1 (en) | 2021-10-14 |
US11734338B2 (en) | 2023-08-22 |
EP4133408A1 (en) | 2023-02-15 |
US20220292135A1 (en) | 2022-09-15 |
WO2021207664A1 (en) | 2021-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11386616B2 (en) | Automated spatial indexing of images based on floorplan features | |
CN116075818B (zh) | 走查视频中的图像搜索 | |
US12045936B2 (en) | Machine learning based object identification using scaled diagram and three-dimensional model | |
US11178386B2 (en) | Automated spatial indexing of images to video | |
CN116349222B (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 |