使用图像内容来帮助在全景图像数据中导航的制作方法

文档序号:6593411阅读:393来源:国知局
专利名称:使用图像内容来帮助在全景图像数据中导航的制作方法
技术领域
本发明涉及在全景图像之间导航。
背景技术
存在包括被地理编码到地图上的位置的多个全景图像的计算机系统。为了在邻 近全景图像之间导航,用户可以选择地图上的按钮,然后新的邻近全景图像可以被加载 并显示。尽管该技术是有益的,但是从一个图像跳到下一个图像对用户来说会分散注意 力。因此,需要新的导航方法和系统。

发明内容
本发明涉及使用图像内容来帮助在全景图像数据中导航。在第一实施例中, 一种用于在全景图像数据中导航的计算机实现的方法包括(1)确定射线(ray)和虚拟 模型的交点,其中射线自图像的照相机视口(viewport)延伸,以及虚拟模型包括多个立 面平面(facade planes) (2)检索全景图像;(3)将全景图像定向为朝向交点(orienting the panoramic image to the intersection)以及(4)显不定向的(oriented)全景图像。在第二实施例中,一种用于创建并显示注释的方法包括(1)从多个二维图像 创建虚拟模型;(2)确定射线和虚拟模型的交点,其中射线自第一图像的照相机视口延 伸;(3)检索全景图像;(4)将全景图像定向为面向交点;以及(5)显示全景图像。在第三实施例中,一种系统创建并显示对应于虚拟模型的注释,其中虚拟模型 是从多个二维图像创建的。该系统包括导航控制器,其确定自第一图像的照相机视口延 伸的射线和虚拟模型的交点、检索第三全景图像以及将第三全景图像定向为面向交点。 虚拟模型包括多个立面平面。在下面参照附图详细描述本发明的进一步实施例、特征和优势以及本发明的各 种实施例的结构和操作。


合并于此并且形成说明书的一部分的附示了本发明,并且与描述一起进一 步用于解释本发明的原理,并且使相关领域的技术人员能够制作并使用本发明。图1是图示了根据本发明的一个实施例的使用图像内容来帮助在全景图像数据 中导航的图。图2A-D是更详细地示范了帮助在全景图像数据中导航的方式的图。图3是图示了根据本发明的一个实施例的用于在全景图像数据内导航的方法的 流程图。图4是图示了根据本发明的一个实施例的用于从图像数据创建虚拟模型的方法 的流程图。图5A-C是图示了根据图4的方法找到匹配特征的图。
图6-7是图示了根据图4中的方法基于匹配特征对来确定点的图。图8A-B是图示了根据图4的方法确定的多个点的图。图9A-C是图示了根据图4的方法基于多个点来确定表面的图。图10是示出了根据本发明的一个实施例的用于使用虚拟模型来在图像数据内导 航的系统的图。图11是示出了根据本发明的一个实施例的用于从图像数据创建虚拟模型的系统 的图。元素首次出现的附图典型地由对应的参考数字中最左边的数字指示。在附图 中,相同的参考数字可以指示相同或功能上相似的元素。
具体实施例方式本发明涉及使用图像内容来帮助在全景图像数据中导航。在下文的本发明的 详细描述中,对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的 实施例可以包括特定特征、结构或特性,但是每一个实施例可以不必包括该特定特征、 结构或特性。而且,这样的短语不必是指同一实施例。此外,当结合实施例描述特定 特征、结构或特性时,应认为,无论是否明确描述,与其它实施例结合来实现这样的特 征、结构或特性是在本领域技术人员的知识范围内。如在此所描述的,本发明的实施例使用户能够使用图像内容来在全景图像之间 导航。在一个实施例中,创建表示图像内容的模型。用户可以选择包含在第一全景图像 中的对象。该对象的位置由用户的选择到模型上的投影来确定。根据该位置来选择和/ 或定向第二全景图。以这种方式,本发明的实施例使用户能够使用图像内容来在第一和 第二全景图之间导航。图1是图示了根据本发明的实施例的使用图像内容来帮助在全景图像数据中导 航的图100。图100示出了建筑物114和树116。建筑物114和树116的位置由虚拟模 型112估计。虚拟模型112可以如下所述是使用拍摄有建筑物114和树116的图像来生 成的三维模型。街道102在建筑物114和树116旁边伸展。在街道102上的位置处示出了数个化身(avatar)(例如,汽车)104、106、108和 110。每一个化身104、106、108和110具有被地理编码到化身在街道102上的位置的相 关联的全景图像。全景图像可以包括360度围绕化身的内容。然而,每次可以例如通过 视口向用户显示全景图的仅一部分。在图100中,向用户显示的全景图的部分由每一个 化身的朝向示出。化身104、106、108和110分别具有朝向124、126、122、120。化身104具有面向点118的朝向124。化身104的视口将显示被地理编码到化身 104的位置的全景图的一部分。在视口中显示的全景图的该部分将包含点118。本发明 的实施例使用虚拟模型112来从化身104的位置导航到化身106、108和110的位置。在下文中被称为转换车道实施例的本发明的第一实施例中,用户可以在车道之 间导航。转换车道实施例使用户能够从化身104的全景图导航到化身106的全景图。化 身106的全景图被地理编码到相似于化身104的全景图但是位于街道102的不同车道的位 置。由于全景图被地理编码到不同的位置,所以如果化身104和化身106具有相同的朝 向,则其对应的视口将显示不同的内容。改变在视口中显示的内容对用户来说会迷失方向。转换车道实施例使化身106定向为面向虚拟模型112上的点118。以这种方式,在 化身106的视口中显示的全景图的部分包含与在化身104的视口中显示的全景图的部分相 同的内容。以这种方式,转换车道实施例使在车道之间的转换较少使人迷失方向。在下文中被称为绕行(walk-around)实施例的本发明的第二实施例中,用户可以 从不同的视角更容易地查看对象。用户可以获得他/她正绕对象步行的感觉。绕行实 施例使用户能够从化身104的全景图导航到化身108的全景图。化身108的位置可以例 如由用户选择。例如,用户可以通过选择在地图上的位置或按下在键盘上的箭头按钮来 选择化身108的位置。由于全景图被地理编码到不同的位置,所以如果化身104和化身 106具有相同的朝向,则其对应的视口将显示不同的内容,并且在化身104的视口中显示 的感兴趣的对象可能不在化身106的视口中显示。绕行实施例使化身108定向为面向虚 拟模型112上的点118。以这种方式,在化身106的视口中显示的全景图的部分包含与在 化身104的视口中显示的全景图的部分相同的内容。结果,用户可以从不同的视角更容 易地查看对象。在一个实施例中,可以向用户显示在化身104和化身108之间的过渡。过渡可 以示出用于在化身104和化身108之间的化身位置的中间全景图。也可以将中间全景图 定向为面向点118。在下文中被称为点击进入(click-and-go)实施例的第三实施例中,用户可以根据 第一全景图的对象的位置导航到在新位置处的第二全景图像。点击进入实施例使用户能 够从化身104的全景图导航到化身110的全景图。化身110的位置是对虚拟模型112上 的点118来说最靠近的可用全景图的位置。点118可以根据用户在第一全景图上的选择 来确定。在实施例中,化身110可以具有面向点118的朝向120或不同的朝向128。朝向 128可以是街道102的朝向的朝向。通过根据虚拟模型112上的点118来选择化身110,点击进入实施例使用虚拟模 型112来在全景图像之间导航。如下所述,在一个实施例中,虚拟模型112使用全景图 像的内容来生成。在一个示例中,点击进入实施例可以使用户能够更近查看对象。在该示例中, 用户可以选择第一全景图中的对象,然后靠近该对象的第二全景图被加载。此外,可以 在视口中显示包含该对象的第二全景图的部分。以这种方式,使用全景图像的内容来在 全景图像之间导航创建了更满意并且更少迷失方向的用户体验。在一个实施例中,全景图查看器可以显示在化身104和化身108之间的过渡。过 渡可以显示用于在化身104和化身108之间的化身位置的中间全景图。也可以将中间全 景图定向到面向点118。图2A-D是更详细地示范了帮助在全景图像数据中导航的方式的图。图2A是示出了可以如何生成诸如图1中的点118的在模型上的点的图200。图 200示出了建筑物262和树264。虚拟模型202表示建筑物262和树264。模型202可以 如下所详细描述使用图像内容来生成。图200还示出了拍摄有建筑物262和树264的图 像266。图像266可以是从街面拍摄的通过视口向用户显示的全景图像的一部分。在图 像266上示出了点268。在诸如转换车道和绕行实施例的一些实施例中,点268可以是图像266的中心。在诸如点击进入实施例的其它实施例中,点268可以由用户使用诸如鼠 标的输入设备来选择。射线212自照相机视点(viewpoint) 210延伸经过点268。在一个示例中,照相机 视点210可以是用来拍摄照片图像266的照相机的焦点。在该示例中,在图像266和照 相机视点210之间的距离为焦距270。点204为射线212和虚拟模型202之间的交点。可以如在图2B_D中所示使用 点204来在街面全景图像之间导航。图2B是示出了转换车道实施例的示例的图220。使用具有在街道208上的位置 214的图像来确定模型202上的点204和射线212。在图2B中还识别了从靠近位置214 但是位于街道208的不同车道的位置206拍摄的全景图像。将具有位置206的全景图像 定向为面向点204。图2C是示出了绕行实施例的示例的图230。使用从位置214拍摄的图像来确定 模型202上的点204和射线212。可以例如由用户选择具有位置232的全景图像。将具 有位置232的全景图像定向为面向点204。图2D是示出了点击进入实施例的示例的图250。使用具有位置214的图像来确 定模型202上的点204和射线212。选择具有位置252、靠近位置204的全景图像。在 一个示例中,点204可以如图2D中所示从位置252与街道208正交。在另一个示例中, 位置252可以从点204与虚拟模型202正交。可以将具有位置252的全景图像定向为面 向点204或可以将具有位置252的全景图像定向为面向街道208的方向。图3是示范了根据本发明的一个实施例的用于在全景图像数据内导航的方法300 的流程图。方法300以在步骤302定向第一全景图像开始。在步骤304,沿第一全景图 像的定向的方向延伸射线,如例如关于图2A所述。还可以根据在全景图像上用户所选择 的点来确定射线。在步骤306,确定在射线和虚拟模型之间的交点。可以使用图像内容 来确定虚拟模型。在实施例中,可以以数种方式使用交点来在全景图像之间导航。例如,在转换 车道或绕行实施例中,可以在步骤310选择第二全景图像。在转换车道实施例中,第二 全景图像具有与第一全景图像相似但位于不同车道的位置。在绕行实施例中,可以例如 由用户来选择第二全景图像。在步骤316将第二全景图像定向为面向交点。在步骤316 后,方法300结束。在点击进入实施例中,在步骤308,第二全景图像如关于图2D所述可以是这样 的其靠近交点(例如,在交点的所选择或预定的距离内)。在步骤314,可以将第二全 景图像定向为面向交点,或可以将第二全景图像定向到其它方向。例如,可以将第二全 景图像定向到街道的方向。在步骤314后,方法300结束。图4是示范了根据本发明的一个实施例的用于从图像数据创建虚拟模型的方法 400的流程图。方法400以步骤402开始。在步骤402,识别图像的特征。在一个实施例中, 从图像提取特征以用于随后的比较。将在下面关于图5A-B更详细地描述这一点。在一 个实施例中,所使用的图像是街面全景图像,所述街面全景图像是沿着行进路线从彼此 接近的位置拍摄的。
8
在步骤404,匹配在邻近图像中的特征。在一个实施例中,匹配特征可以包括构 建溢出树(spill tree)。将在下面关于图5C更详细地描述这一点。在步骤406,将特征的位置计算为例如在三维空间中的点。在一个实施例中, 通过使用如在步骤404中确定的匹配特征对,计算立体三角来确定点。将在下面关于图 6-7更详细地描述如何计算三维空间中的点。步骤406的结果为点云。在步骤408,基于在步骤406中计算的点云来估计立面平面。在一个实施例中, 步骤408可以包括使用自适应优化算法或最佳适应算法。在一个实施例中,步骤408包 括扫过(sweep)例如与如将在下面关于图9描述的街道对准的平面。在步骤410,基于街道的位置来估计街道平面。这些街道平面与在步骤408中估 计的立面平面一起用于形成虚拟模型,所述虚拟模型对应于在多个二维图像中所示的对 象。图5A-C图示了如何根据方法400识别并匹配图像中的特征的示例。图5A描述了图像502和图像504。图像502和图像504例如表示从不同视角的 同一建筑物和树的两张照片。在一个实施例中,图像502和图像504可以是街面全景图 像的部分。可以从附近的位置但是以不同的视角来拍摄两个图像502和504。在一个实施例中,可以从附接有8个照相机的丛簇(a rosette of eight cameras)的 移动车辆拍摄图像502和504。所述8个照相机从不同的视角同时拍摄8个图像。可以 随后将所述8个图像拼接在一起以形成全景图。图像502可以是来自所述8个照相机丛 簇中的第一照相机的未拼接的图像,所述第一照相机被定向为与车辆垂直。图像504可 以是在稍后的时间点期间拍摄的来自第二照相机的未拼接的图像,所述第二照相机与第 一照相机相邻。 图5B图示了具有根据方法400的步骤404识别/提取的代表性特征的图像502和 图像504。图像502包括代表性特征506、508和512。图像504包括代表性特征510、 514和516。虽然仅示出了 6个代表性特征,但实际上可以有为每一个图像识别和提取的 成千上万的特征。在一个实施例中,提取特征的步骤可以包括兴趣点检测和特征描述。兴趣点检 测根据条件来检测在图像中的点,并且优选地在图像变化的情况下可再现,所述图像变 化诸如在亮度和视角上的变化。每一个兴趣点的邻域是特征。每一个特征由特征描述符 表示。特征描述符优选地是独特的。在一个示例中,使用快速鲁棒特征(SURF)算法来从邻近图像提取特征。例 如,在 2006 年 5 月 Proceedings of the Ninth European Conference on Computer Vision (第九 届欧洲计算机视觉会议的论文集)中,Herbert Bay, Tinne Tuytelaars,Luc Van Gool的
"SURF Speeded Up Robust Features (SURF 快速鲁棒特征)”中描述了 SURF 算法。 SURF算法包括兴趣点检测和特征描述方案。在SURF算法中,每一个特征描述符包括向 量。在一种实施方式中,向量可以是128维的。在图像为从街面拍摄的全景图的一个示 例中,SURF算法可以在每一个图像中提取四到五千个特征,导致在大小上为一到二兆字 节的特征描述符文件。图5C图示了匹配的提取特征。图5C描述了匹配520和匹配522。匹配520包 括特征512和特征514。匹配522包括特征506和特征516。如在图5C中所表示的,不是在图像502中的每个特征都在图像504中具有匹配特征,反之亦然。例如,由于特征 508示出了在图像504中被遮掩的树的一部分,所以在图像502中的特征508在图像504 中没有匹配特征。在另一个示例中,例如由于在特征识别上的不精确,所以在图像504 中的特征510在图像502中没有匹配。特征识别应当尽可能精确。然而,由于在照明、 朝向和其它因素上的变化,某种程度的不精确是可能的。因为这个原因,需要补偿不精 确的特征匹配方案。将在下面描述示例特征匹配方案。在一个实施例中,诸如特征512的每一个特征由特征描述符表示。每一个特征 描述符包括128维向量。可以通过找到在第一特征描述符的向量和第二特征描述符的向 量之间的欧几里得距离来确定在第一特征和第二特征之间的相似度。例如可以如下确定第一图像中的特征在第二图像中的特征中的匹配。首先,从 在第二图像中的特征中确定在第一图像中的特征的最近邻域(例如,在128维空间中)。 其次,从在第二图像中的特征中确定在第一图像中的特征的第二最近邻域(例如,在128 维空间中)。第三,确定在第一图像中的特征和在第二图像中的最近邻近特征之间的第 一距离,并且确定在第一图像中的特征和在第二图像中的第二最近邻近特征之间的第二 距离。第四,通过以第一距离除以第二距离来计算特征相似度比值。如果所述特征相似 度比值低于特定阈值,则在第一图像中的特征和在第二图像中的其最近邻域之间存在匹 配。如果特征相似度比值太低,则不能确定足够的匹配。如果特征相似度比值太 高,则存在太多的误匹配。在一个实施例中,特征相似度比值可以在0.5和0.95之间并 且包括0.5和0.95。在一个实施例中,可以通过构建在第二图像中的特征的溢出树来确定所述最近 邻域和所述第二最近邻域。溢出树紧密逼近最近邻域,并且有效地使用处理器资源。在 被比较的图像为从街面拍摄的全景图像的一个示例中,对于每一个图像对,可以有成百 上千匹配的特征对。对于每一个匹配的特征对,可以例如使用立体三角来确定在三维空 间中的点。图6和7图示了使用三维立体三角基于匹配的特征来确定在三维空间中的点的示 例。在一个实施例中,这种技术例如用于实现方法400的步骤406。为了确定在三维空 间中的与匹配的特征对相对应的点,为所述匹配的特征对构建射线,并且基于射线的交 点来确定所述点。将在下面更详细地描述这一点。图6示出了说明如何形成射线的示例600。如图6中所示,可以通过将射线从 图像608的照相机视点602投影或延伸经过图像608的特征604来形成射线606。在示 例600中,照相机视点602对应于用来拍摄图像608的照相机的焦点。在图像608和照 相机视点602之间的距离等于焦距610。在形成用于匹配特征中的每一个的射线后,可以确定在三维空间中的点。图7 图示了描绘如何确定点的示例700。在示例700中,示出了两个照相机丛簇702和704。在一个实施例中,这两个 照相机丛簇可以是相同的(例如同一照相机丛簇可以用于在不同的位置和在不同的时间 点拍摄图像)。每一个照相机丛簇702和704包括具有匹配的特征的图像。在示例700 中,照相机丛簇702包括与照相机丛簇704的特征708相匹配的特征706。如图7中所示,通过将射线710从照相机丛簇702的照相机视点延伸经过特征706来形成第一射线 710。类似地,通过将射线712从照相机丛簇704的照相机视点延伸经过特征708来形成 第二射线712。射线710和射线712的交点为三维点714。在实施例中,例如,由于特 征识别和匹配上的不精确,射线710和712可能实际上并未在点714相交。如果射线710 和712实际上未相交,则可以确定这两个射线最靠近的线段。在这些情况下,所使用的 三维点714可以是线段的中点。在实施例中,如上所述,对于每一个匹配的特征对重复由示例600和700图示的
步骤,以确定三维点云。图8A示出了包括建筑物806和树808的三维空间的示例800。示例800还包括 街道810。在一个实施例中,可以从沿着街道810移动的车辆拍摄建筑物806和树808的 照片图像。可以从位置802拍摄第一照片图像,而可以从位置804拍摄第二照片图像。如在此所述,根据本发明的一个实施例,从第一和第二图像提取特征。识别匹 配特征,并且对于每一个匹配特征对,例如使用立体三角来确定三维点。这产生三维点 云,诸如在图8B中所图示的那些。图8B图示了其中描述了三维点云852的示例850。图9A-C图示了如何基于在三维空间中的多个点来确定立面表面的示例。这个 示例仅是说明性的,并且可以例如用于实现方法400的步骤408。在其它实施例中,可以 使用诸如最小二乘方或自适应优化算法的最佳适应或回归分析算法来确定所述表面。自 适应优化算法的示例包括但不限于爬山算法、随机爬山算法、A星算法和遗传算法。图9A描述了街道908和三维点云910。立面平面902与街道908平行。在操 作中,立面平面902从街道908沿轴向外平移。在向外移动的每一个位置,求取在立面 平面902的特定范围内的点的数量。在图9A中,所述范围由虚线912和914示出。如 图9A中所示,零点位于虚线912和914之间。图9B示出了从街道908沿轴向外平移的立面平面904。在图9B中,立面平面 904比在图9A中所示的立面平面902从街道908向外移动了更大的距离。结果,有三个 点在立面平面904的范围内。在一个实施例中,如果未找到立面平面的位置(例如具有指定数量的接近点的 位置),则可以相对于街道来改变立面平面的角度。因此,图9C示出了相对于街道908 在非平行的角度的立面平面906。如图9C中所示,存在5个点靠近立面平面906。如在此所述,从立面平面形成根据本发明的虚拟模型。可以根据图像内容来生 成立面平面。在一个实施例中,模型还可以包括一个或多个街道平面(例如,平行于街 道的平面)。在一个实施例中,可以基于街道的已知位置来计算街道平面(例如,可以知 道街道相对于用于拍摄图像的照相机的位置)。虚拟模型可以是二维或三维的。图10示出了根据本发明的一个实施例的用于使用三维模型来在图像数据内导航 的系统1000。如图10中所示,系统1000包括客户端1002。客户端1002例如跨网络 1044与一个或多个服务器1024进行通信。客户端1002可以是通用的计算机。替选地, 客户端1002可以是诸如移动电话的专用计算设备。类似地,可以使用能够向客户端1002 提供数据的任何计算设备来实现服务器1024。服务器1024可以包括web服务器。Web服务器是软件组件,其用超文本传送 协议(HTTP)应答来响应HTTP请求。作为说明性示例,web服务器在没有限制的情况下可以是 Apache HTTP 月艮务器、Apache Tomcat、 Microsoft Internet Information Server (微 软因特网信息服务器)、JBoss应用服务器、WebLogic应用服务器或Sun Java System Web
服务器。所述web服务器可以提供内容,诸如超文本标记语言(HTML)、可扩展标记语 言(XML)、文档、视频、图像、多媒体特征或其任何组合。这个示例严格地说是说明性 的,并且不限制本发明。服务器1024可以如下所述提供地图瓦片(tile) 1014、程序1016、配置信息1018 和/或全景图瓦片1020。网络1044可以是可以承载数据通信的任何网络或网络组合,并且在此可以被称 为计算机网络。网络1044可以包括但不限于局域网、中间区域网和/或诸如因特网的广 域网。网络1044可以支持协议和技术,包括但不限于万维网协议和/或服务。可以取 决于特定应用或环境在系统1000的组件之间提供中间web服务器、网关或其它服务器。服务器1024耦接到全景图数据库1028和模型数据库1030。全景图数据库1028 存储图像。在一个示例中,图像可以是从街面拍摄的照片图像。可以将从同一位置拍摄 的照片图像拼接在一起,以形成全景图。模型数据库1030存储与全景图数据库1028中 的图像相对应的三维模型。将在下面进一步详细论述可以如何生成三维模型的示例。注 释数据库1032存储用户生成的注释。可以在关系数据库管理系统上实现全景图数据库1028、模型数据库1030和注释 数据库1032中的每一个。关系数据库的示例包括Oracle、微软SQL Server和MySQL。 这些示例是说明性的,并且并不意在限制本发明。服务器1024包括导航控制器1032。导航控制器1032使用模型数据库1030中 的从图像内容生成的模型来帮助在全景图之间导航。导航控制器1032从导航数据1042 接收输入。导航数据1042包含关于当前位置和朝向的数据以及关于期望的下一位置的数 据。例如,在点击进入实施例中,导航数据1042可以包含第一全景图像和第一全景图像 中的用户意欲前往的位置。导航数据1042可以是例如带有被编码为HTTP参数的数据的 HTTP请求。响应于导航数据1042,导航控制器1032基于在模型数据库1030中的模型来确 定在全景图数据库1028中的新的全景图。导航控制器1032还确定显示第二全景图的朝 向。导航控制器1032将新的全景图和朝向输出在配置信息1018和全景图瓦片1020中。导航控制器1032可以包括转换车道控制器1034、点击进入控制器1036和绕行控 制器1038。转换车道控制器1034、点击进入控制器1036和绕行控制器1038中的每一个 根据本发明的实施例对导航数据1042作出响应。转换车道控制器1034根据本发明的转换车道实施例来操作。响应于导航数据 1042,转换车道控制器1034从全景图数据库1028选择第二全景图像。第二全景图像靠 近第一全景图像的位置,但是在不同的车道。在一个示例中,第二全景图像可以是在全 景图数据库1028中的存在于不同车道的最靠近的全景图像。转换车道控制器1034根据 导航数据1042中的第一全景图的位置和朝向来确定模型数据库1030中的模型中的位置。 在一个实施例中,为了确定位置,转换车道控制器1034如关于图2A所述从该位置沿朝向 的方向延伸射线。转换车道控制器1034然后如关于图2B所述确定第二全景图的朝向。 最后,转换车道控制器1034将第二全景图返回在全景图瓦片1020中,以及将第二全景图的朝向返回在配置信息1018中。点击进入控制器1036根据本发明的点击进入实施例操作。响应于导航数据 1042,点击进入控制器1036从全景图数据库1028选择第二全景图像。点击进入控制器 1036基于来自导航数据1042的第一全景图像中的位置来选择第二全景图像。在第一全 景图像中的位置可以由诸如鼠标的用户输入来确定。点击进入控制器1036如关于图2A 所述使用在第一全景图像中的位置来确定在模型数据库1042中的模型中的位置。点击进 入控制器1036然后基于模型中的位置来选择第二全景图像。第二全景图像如关于图2D 所述靠近模型中的位置。在一个示例中,第二全景图像可以具有使得模型上的位置与街 道正交的位置。在另一个示例中,第二全景图像可以具有与虚拟模型正交的位置。点击 进入控制器1036然后确定第二全景图的朝向。可以将第二全景图定向为面向模型中的位 置,或者可以将第二全景图定向到街道的方向。最后,点击进入控制器1036将第二全景 图返回在全景图瓦片1020中,以及将其朝向返回在配置信息1018中。绕行控制器1038响应于导航数据1042从全景图数据库1028选择第二全景图 像。第二全景图像可以例如根据导航数据1042中的由用户输入的位置来选择。绕行控制 器1038根据导航数据1042中的第一全景图的位置和朝向来确定模型数据库1030中的模 型中的位置。为了确定位置,绕行控制器1038如关于图2A所述从该位置沿朝向的方向 延伸射线。绕行控制器1038如上所述确定第二全景图的朝向。最后,绕行控制器1038 将第二全景图返回在全景图瓦片1020中,以及将第二全景图的朝向返回在配置信息1018 中。在一个实施例中,客户端1002可以包含地图服务1006和全景图查看器1008。 地图服务1006和全景图查看器1008中的每一个可以是单独的应用或可以在浏览器1004 中执行。在实施例中,浏览器1004可以是Mozilla Firefox或微软的Internet Explorer。例 如可以将全景图查看器1008作为在浏览器1004内的脚本、作为在浏览器1004内的插件 或作为在诸如Adobe(Macromedia)Flash插件的浏览器插件内执行的程序来执行。地图服务1006将地图的可视表示例如作为视口显示到地图瓦片的网格中。使用 标记和脚本元素的组合,例如使用HTML和Javascript,来实现地图系统1006。当移动 视口时,地图服务1006从服务器1024请求额外的地图瓦片1014,假定所请求的地图瓦片 还未被缓存在本地高速缓冲存储器中。值得注意地,提供地图瓦片1014的服务器可以是 与提供全景图瓦片1020、配置信息1018或在此涉及的其它数据的服务器相同或不同的服 务器。在一个实施例中,地图服务1006可以请求浏览器1004从服务器1024下载用于 全景图查看器1008的程序1016,并且实例化运行程序1016所必需的任何插件。程序 1016可以是Flash文件或某种其它形式的可执行内容。全景图查看器1008根据程序1016 来执行和操作。全景图查看器1008从服务器1024请求配置信息1018。配置信息包括关于待加 载的全景图的元信息,包括关于在全景图内的到其它全景图的链接的信息。在一个实施 例中,以诸如可扩展标记语言(XML)的形式来呈现配置信息。全景图查看器1008例如 以全景图像形式或以全景图像瓦片形式检索用于全景图的可视资产(visual asset) 1020。在 另一个实施例中,可视资产包括以相关文件格式的配置信息。全景图查看器1008在全景图的客户端显示器和额外的用户界面元素上呈现如从配置信息1018和可视资产1020生成 的可视表示。当用户与输入设备交互以操纵全景图的可视表示时,全景图查看器1008更 新可视表示,并且根据需要下载额外的配置信息和可视资产。可以以硬件、软件、固件或其任何组合来实现浏览器1004、地图服务1006和全 景图查看器1008中的每一个。图11示出了根据本发明的一个实施例的用于从图像数据创建虚拟模型的系统 1100。系统1100包括全景图数据库1028和模型数据库1030,其中每一个耦接到处理管 线服务器1124。处理管线服务器1124可以是任何计算设备。示例计算设备包括但不限 于计算机、工作站、分布式计算系统、嵌入式系统、独立电子设备、联网设备、移动设 备、机架式服务器、电视或其它类型的计算系统。处理管线服务器1124包括特征提取器1116、特征匹配器1118、点计算器1120 和表面估计器1122。可以以硬件、软件、固件或其任何组合来实现特征提取器1116、特 征匹配器1118、点计算器1120和表面估计器1122中的每一个。特征提取器1116从全景图数据库1028选择图像1102。在一个实施例中,图像 1102可以包括两个图像,所述两个图像为街面未拼接的全景图像。可以从彼此接近的位 置但是从不同的视角来拍摄所述两个图像。在一个实施例中,从安装有8个照相机的丛 簇的移动车辆拍摄图像。所述8个照相机同时从不同的视角拍摄8个图像。随后可以将 所述8个图像拼接在一起以形成全景图。第一图像可以是来自所述8个照相机丛簇中的 第一照相机的未拼接的图像。第二图像可以是在稍后的时间点期间拍摄的来自第二照相 机的未拼接的图像,所述第二照相机与第一照相机相邻。特征提取器1116从图像1102提取特征。在一个实施例中,特征提取器1116可 以执行多于一个功能,诸如兴趣点检测和特征描述。兴趣点检测根据条件来检测在图像 中的点,并且优选地在图像变化的情况下可再现,所述图像变化诸如在亮度和视角上的 变化。每一个兴趣点的邻域因此被描述为特征。这些特征由特征描述符表示。特征描 述符优选地是独特的。在一个示例中,可以使用快速鲁棒特征(SURF)算法从图像提取特征。SURF算 法包括兴趣点检测和特征描述方案。在SURF算法中,每一个特征描述符包括向量。在 一种实施方式中,所述向量可以是128维的。在图像为从街面拍摄的全景图的一个示例 中,SURF算法可以在每一个图像中提取四到五千个特征,导致在大小上为一到二兆字节 的特征描述符文件1104。特征匹配器1118使用每一个特征描述符文件1104来匹配在两个图像中的特征。 在一个示例中,每一个特征由在特征描述符文件1104中的特征描述符表示。每一个特征 描述符包括128维向量。可以通过找到在第一特征的向量和第二特征的向量之间的欧几 里得距离来确定在第一特征和第二特征之间的相似度。可以如下确定第一图像中的特征在第二图像中的特征中的匹配。首先,特征匹 配器1118确定从在第二图像中的特征中确定的在第一图像中的特征的最近邻域(例如, 在118维空间中)。其次,特征匹配器1118确定从在第二图像中的特征中确定的在第一 图像中的特征的第二最近邻域。第三,特征匹配器1118确定在第一图像中的特征和在 第二图像中的最近邻近特征之间的第一距离,并且特征匹配器1118确定在第一图像中的特征和在第二图像中的第二最近邻近特征之间的第二距离。第四,特征匹配器1118通过 以第一距离除以第二距离来计算特征相似度比值。如果所述特征相似度比值低于特定阈 值,则在第一图像中的特征和在第二图像中的其最近邻域之间存在匹配。特征匹配器1118可以例如通过构造溢出树来确定最近邻域和第二最近邻域。如果特征相似度比值太低,则特征匹配器1118可能不能确定足够的匹配。如果 特征相似度比值太高,则特征匹配器1118可能确定太多的误匹配。在一个实施例中,特 征相似度比值可以在0.5和0.95之间并且包括0.5和0.95。在图像为从街面拍摄的全景图 的示例中,可以有数百个匹配的特征。所述匹配的特征作为匹配的特征1106被发送到点 计算器1120。点计算器1120对于每一个匹配的特征1106对确定三维空间中的点。为了确定 三维空间中的点,对于每一个特征形成或确定射线,并且基于特征的射线的交点来确定 所述点。在一个实施例中,如果射线未相交,则基于连接两条射线的最短线段的中点来 确定所述点。点计算器1120的输出为三维点云1108 (例如一个点用于每一个匹配的特征 对)。表面估计器1122基于点云1108来确定立面平面。表面估计器1122可以通过使 用诸如最小二乘方或自适应优化算法的最佳适应或回归分析算法来确定立面平面。自适 应优化算法的示例包括但不限于爬山算法、随机爬山算法、A星算法和遗传算法。替选 地,表面估计器1122可以通过下述方式来确定立面表面通过沿轴平移平面以确定平面 的最佳位置,如在上面关于图9A-C所述。表面估计器1122还可以确定一个或多个街道平面。街道平面和立面平面一起形 成表面平面1110。表面估计器1122将表面平面1110存储在模型数据库1030中。应当理解,意在使用具体实施方式
部分而不是发明内容和摘要部分解释权利要 求。发明内容和摘要部分可以阐明发明人考虑的本发明的一个或多个而非所有的示例 性实施例,因此发明内容和摘要部分并不意在以任何方式来限制本发明和所附的权利要 求。在上面借助于说明指定的功能及其关系的实现的功能构造块来描述了本发明。 在此为了便于描述,任意地限定了这些功能构造块的边界。可以限定替选边界,只要所 述指定的功能及其关系被适当地执行。特定实施例的前述描述如此充分地揭示了本发明的一般特性,使得其他人可以 在不背离本发明的一般思想的情况下,通过应用在本领域的技术内的知识而容易地修改 和/或调整本发明的一般特性以用于这样的特定实施例的各种应用,而不用进行过度的 实验。因此,基于在此提供的教导和指导,这样的调整和修改意在在所公开的实施例的 等同物的含义和范围内。应当明白的是,在此的措词或术语用于描述而非限制的目的, 因此本说明书的术语或措词应当由技术人员根据所述教导和指导来解释。本发明的宽度和范围不应当由上述示例性实施例的任何一个限制,而是应当仅 根据所附权利要求及其等同物来限定。
权利要求
1.一种计算机实现的用于在全景图像数据中导航的方法,包括(1)确定射线和虚拟模型的交点,其中所述射线自图像的照相机视口延伸,并且所述 虚拟模型包括多个立面平面;(2)检索全景图像;(3)将所述全景图像定向为朝向所述交点;以及(4)显示所定向的全景图像。
2.如权利要求1所述的方法,其中(2)包括检索具有带有与街道的第一车道相对应的 位置的照相机视点的全景图像,以及所述图像的所述具有与所述街道的第二车道相对应 的位置。
3.如权利要求1所述的方法,其中(2)包括检索具有带有用户所选择的位置的照相机 视点的全景图像。
4.如权利要求1所述的方法,其中(2)包括检索在所述交点的所选择的距离内的全景 图像。
5.如权利要求1所述的方法,其中所述图像包括从街面拍摄的照片图像,以及所述全 景图像包括从街面拍摄的照片图像。
6.—种用于创建并显示注释的方法,包括(1)从多个二维图像创建虚拟模型;(2)确定自第一图像的照相机视口延伸的射线和所述虚拟模型的交点,其中所述虚拟 模型对应于第二图像中的特征;(3)检索全景图像;(4)将所述全景图像定向为面向所述交点;以及(5)显示所定向的全景图像。
7.如权利要求6所述的方法,其中(1)包括(a)识别第一图像的第一多个特征和第二图像的第二多个特征;(b)确定多个特征对,其中每一个特征对包括来自所述第一多个特征的第一特征和来 自所述第二多个特征的第二特征,所述第二特征与所述第一特征相匹配;(c)确定与所述多个特征对相对应的多个点;以及(d)基于所述多个点来确定立面平面;(e)确定与街道的位置相对应的街道平面;以及(f)创建与所述立面平面和所述街道平面相对应的虚拟模型。
8.如权利要求7所述的方法,其中(a)包括使用快速鲁棒特征(SURF)算法。
9.如权利要求8所述的方法,其中(b)包括 ω确定用于所述第一多个特征的溢出树;( )对所述溢出树搜索在所述第二图像中的每一个特征的近似最近邻域和近似第二最 近邻域;以及( )将所述近似最近邻域和所述近似第二最近邻域的特征相似度比值与阈值相比较。
10.如权利要求9所述的方法,其中(iii)包括将所述近似最近邻域和所述近似第二最 近邻域的特征相似度比值与在0.5和0.95之间并且包括0.5和0.95的阈值相比较。
11.如权利要求7所述的方法,其中(C)包括ω对于所述多个特征对中的每一个特征对,确定第一射线和第二射线,所述第一射 线从所述第一图像的第一照相机视点延伸经过来自所述对的所述第一特征,并且所述第 二射线从所述第二图像的第二照相机视点延伸经过来自所述对的所述第二特征;以及(ii)对于所述多个特征对中的每一个特征对,确定与所述第一射线和所述第二射线的 交点相对应的点。
12.如权利要求7所述的方法,其中(d)包括使用最佳适应或自适应优化算法。
13.一种用于创建并显示与虚拟模型相对应的注释的系统,其中所述虚拟模型创建自 多个二维图像,包括包括导航控制器的服务器,所述导航控制器确定自图像的照相机视口延伸的射线和 虚拟模型的交点、检索全景图像以及将所述全景图像定向为面向所述交点,其中所述虚 拟模型包括多个立面平面。
14.如权利要求13所述的系统,其中所述导航控制器包括转换车道控制器,所述转换 车道控制器确定位于不同于第二车道的第一车道中的所述全景图像的所述照相机视口的 位置,其中所述图像的所述照相机视口的所述位置位于所述第二车道。
15.如权利要求13所述的系统,其中所述导航控制器包括点击进入控制器,所述点击 进入控制器确定与用户选择相对应的所述全景图像的照相机视口的位置。
16.如权利要求15所述的系统,其中所述导航控制器包括绕行控制器,所述绕行控制 器确定与所述交点相对应的所述全景图像的照相机视口的位置。
17.如权利要求13所述的系统,进一步包括处理管线服务器,所述处理管线服务器从多个二维图像创建虚拟模型。
18.如权利要求17所述的系统,其中所述处理管线服务器包括特征提取器,所述特征提取器识别第一图像的第一多个特征和第二图像的第二多个 特征;特征匹配器,所述特征匹配器确定多个特征对,其中每一个特征对包括来自所述第 一多个特征的第一特征和来自所述第二多个特征的第二特征,并且其中所述第一特征与 所述第二特征相匹配;点计算器,所述点计算器确定与所述多个特征对相对应的多个点;以及表面估计器,所述表面估计器基于所述多个点来创建所述虚拟模型。
19.如权利要求18所述的系统,其中所述特征提取器使用快速鲁棒特征(SURF)算法。
20.如权利要求18所述的系统,其中所述特征匹配器确定用于所述第一多个特征的溢 出树,对所述溢出树搜索在所述第二图像中的每一个特征的近似最近邻域和近似第二最 近邻域,以及确定所述近似最近邻域和所述近似第二最近邻域的特征相似度比值是否低 于阈值。
21.如权利要求20所述的系统,其中所述阈值在0.5和0.95之间,并且包括0.5和 0.95。
22.如权利要求18所述的系统,其中对于所述多个特征对中的每一个特征对,所述点 计算器确定第一射线和第二射线,所述第一射线从所述第一图像的第一照相机视点延伸经过来自所述对的所述第一特征,所述第二射线从来自所述对的所述第二特征的第二照 相机视点延伸,以及将来自所述多个点的点确定为在所述第一射线和所述第二射线之间 的交点。
23. 一种计算机实现的用于在全景图像数据中导航的方法,包括 用于确定射线和虚拟模型的交点的装置,其中所述射线从图像的照相机视口延伸, 并且所述虚拟模型包括多个立面平面; 用于检索全景图像的装置;用于将所述全景图像定向为朝向所述交点的装置;以及 用于显示所定向的全景图像的装置。
全文摘要
本发明涉及使用图像内容来帮助在全景图像数据中导航。在一个实施例中,一种计算机实现的用于在全景图像数据中导航的方法包括(1)确定射线和虚拟模型的交点,其中射线自图像的照相机视口延伸,以及虚拟模型包括多个立面平面;(2)检索全景图像;(3)将全景图像定向为朝向交点;以及(4)显示定向的全景图像。
文档编号G06T15/06GK102016927SQ200980114885
公开日2011年4月13日 申请日期2009年2月26日 优先权日2008年2月27日
发明者丹尼尔·菲利普, 卢克·文森特, 朱佳俊 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1