街道视图数据的三维注释

申请号 CN200980102322.4 申请日 2009-01-15 公开(公告)号 CN101918983B 公开(公告)日 2013-06-19
申请人 谷歌公司; 发明人 朱佳俊; 丹尼尔·菲利普; 卢克·文森特;
摘要 本 发明 涉及注释图像。在一个 实施例 中,本发明使得用户能够在观看二维图像时创建对应于三维对象的注释。在一个实施例中,这是通过将选择对象投影到从多个二维图像创建的三维模型上来实现的。所述选择对象是由用户在观看第一图像时输入的,所述第一图像对应于所述三维模型的一部分。确定对应于在所述三维模型上的投影的 位置 ,并且将由用户在观看所述第一图像时输入的内容与所述位置相关联。将所述内容与所述位置信息一起存储以形成注释。所述注释可以被检索并与对应于所述位置的其他图像一起显示。
权利要求

1.一种用于创建和显示注释的方法,包括:
(1)从多个二维街面照片全景图像来创建三维模型,所述创建包括:
(a)识别来自所述多个图像的第一街面照片全景图像的第一多个特征和来自所述多个图像的第二街面照片全景图像的第二多个特征;
(b)确定多对特征,其中,每对特征包括来自所述第一多个特征的第一特征和来自所述第二多个特征的第二特征;
(c)确定与所述多对特征相对应的多个点;以及
(d)基于所述多个点来确定立面平面;
(2)至少一个射线延伸通过选择对象的点以将所述选择对象投影在所述三维模型上,所述选择对象由用户输入以指示在第三街面照片全景图像上的区域,并且其中所述三维模型的至少一部分表示所述第三街面照片全景图像的内容;
(3)确定与在所述三维模型上的投影对应的三维空间中的位置
(4)将所述位置与由所述用户在观看所述第一街面照片全景图像时输入的内容相关联;
(5)将所述内容与所述位置一起存储以形成注释;以及
(6)将所述注释与第四街面照片全景图像中与所述位置相对应的位置处的第四图像一起显示。
2.根据权利要求1的所述的方法,其中,(6)包括将所述注释与地图一起显示。
3.根据权利要求1所述的方法,其中,(a)包括使用快速鲁棒性特征(SURF)算法
4.根据权利要求1所述的方法,其中,(b)包括:
(i)确定用于所述第一多个特征的溢出树;
(ii)针对所述溢出树搜索在所述第二街面照片全景图像中的每个特征的近似最近邻域和近似第二最近邻域;以及
(iii)将所述近似最近邻域和所述近似第二最近邻域的特征相似度比值与阈值相比较。
5.根据权利要求4所述的方法,其中,所述阈值在0.5和0.95之间,并且包括0.5和
0.95。
6.一种用于创建和显示注释的系统,包括:
计算设备;
第一服务器,所述第一服务器从多个二维街面照片全景图像来创建三维模型,所述服务器包括:
特征提取器,所述特征提取器识别来自所述多个图像的第一街面照片全景图像的第一多个特征和来自所述多个图像的第二街面照片全景图像的第二多个特征;
特征匹配器,所述特征匹配器确定多对特征,其中,每对特征包括来自所述第一多个特征的第一特征和来自所述第二多个特征的第二特征;
点计算器,所述点计算器确定与所述多对特征相对应的多个点;以及
表面估计器,所述表面估计器基于所述多个点来确定用于所述三维模型的立面平面;
第二服务器,所述第二服务器在所述计算设备上实现,所述第二服务器包括注释产生器,其中,所述注释产生器通过下述方式来创建第一注释:
至少一个射线延伸通过选择对象的点以将所述选择对象投影在对应于多个二维图像的三维模型上,其中所述选择对象由用户输入以指示在第三街面照片全景图像上的区域,并且其中所述三维模型的至少一部分表示第三街面照片全景图像的内容;
确定与在所述三维模型上的所述投影对应的三维空间中的位置;以及
将所述位置与由所述用户输入的内容相关联;以及
耦合到所述服务器的注释数据库,所述注释数据库存储由所述注释产生器创建的注释,
其中,所述服务器从所述注释数据库检索所述第一注释,并且将所述第一注释转发到浏览器以在第四街面照片全景图像中与所述位置相对应的位置处进行显示。
7.一种用于创建和显示注释的系统,包括:
特征提取器,所述特征提取器识别第一街面照片全景图像的第一多个特征和第二街面照片全景图像的第二多个特征;
特征匹配器,所述特征匹配器确定多对特征,其中,每对特征包括来自所述第一多个特征的第一特征和来自所述第二多个特征的第二特征;
点计算器,所述点计算器确定与所述多对特征相对应的多个点;以及
表面估计器,所述表面估计器基于所述多个点来确定用于三维模型的立面平面;
注释编辑器,所述注释编辑器使得用户能够输入用于注释的选择对象和内容以指示在第三街面照片全景图像上的区域;
注释产生器,所述注释产生器通过下述方式来创建第一注释:
至少一个射线延伸通过选择对象的点以将所述选择对象投影在对应于多个二维图像的三维模型上,其中所述三维模型的至少一部分表示所述第三街面照片全景图像的内容;
确定与在所述三维模型上的所述投影对应的三维空间中的位置;以及
将所述位置与所述内容相关联;以及
注释查看器,所述注释查看器将所述第一注释与第四街面照片全景图像一起显示,至少一个计算设备,其中,所述注释编辑器、所述注释产生器和所述注释查看器每一个在所述至少一个计算设备上实现。
8.根据权利要求7所述的系统,其中,所述特征提取器使用快速鲁棒性特征算法。
9.根据权利要求7所述的系统,其中,所述特征匹配器确定用于所述第一多个特征的溢出树,针对所述溢出树搜索在所述第二街面照片全景图像中的每个特征的近似最近邻域和近似第二最近邻域,并且确定所述近似最近邻域和所述近似第二最近邻域的特征相似度比值是否低于阈值。
10.根据权利要求9所述的系统,其中,所述特征相似度比值的阈值在0.5和0.95之间,并且包括0.5和0.95。
11.根据权利要求7所述的系统,其中,所述点计算器针对所述多对特征中的每对特征确定第一射线、第二射线和点,所述第一射线从所述第一街面照片全景图像的第一照相机视点延伸通过来自所述每对特征的所述第一特征;所述第二射线从所述第二街面照片全景图像的第二照相机视点延伸通过来自所述每对特征的所述第二特征;并且所述点在三维空间中与所述第一射线和所述第二射线的交点对应。

说明书全文

街道视图数据的三维注释

技术领域

[0001] 本发明涉及注释图像。

背景技术

[0002] 存在存储和显示图像的计算机系统。这些图像可以包括诸如建筑物的三维对象的照片。所显示的图像可以被地理编码以对应于在地图上的位置。另外,可以使用注释来提供关于图像的信息。作为示例,注释可以包括文本,所述文本用于标识与在图像中所示的特定建筑物相关联的商业。
[0003] 所需要的是便于创建图像的注释的新方法和系统。

发明内容

[0004] 本发明涉及注释图像。在一个实施例中,本发明使得用户能够在观看二维图像时创建对应于三维对象的注释。在一个实施例中,这是通过将选择对象(例如边界框)投影到从多个二维图像创建的三维模型上来实现的。所述选择对象是由用户在观看对应于所述三维模型的一部分的第一图像时输入的。确定对应于在所述三维模型上的投影的位置,并且将由用户在观看所述第一图像时输入的内容与所述位置相关联。将所述内容与所述位置信息一起存储以形成注释。所述注释可以被检索并与对应于所述位置的其他图像一起显示。
[0005] 下面参考附图详细说明本发明进一步的实施例、特征和优点以及本发明的各个实施例的结构和操作。

附图说明

[0006] 在此包含并且形成说明书一部分的附图图示了本发明,并且与描述一起进一步用于解释本发明的原理,并且使得本领域内的技术人员能够做出和使用本发明。
[0007] 图1是图示根据本发明的一个实施例的示例注释的示图。
[0008] 图2A是图示根据本发明的一个实施例的使用图像来确定注释的位置的示图。
[0009] 图2B是图示显示图2A的注释的示图。
[0010] 图3是图示根据本发明的一个实施例的用于创建和显示注释的方法的流程图
[0011] 图4是图示根据本发明的一个实施例的用于从图像数据创建三维模型的方法的流程图。
[0012] 图5A-C是图示根据图4的方法找到匹配特征的示图。
[0013] 图6-7是图示根据图4的方法基于一对匹配特征来确定点的示图。
[0014] 图8A-B是图示根据图4的方法确定的多个点的示图。
[0015] 图9A-C是图示根据图4的方法基于多个点来确定表面的示图。
[0016] 图10是图示根据本发明的一个实施例用于创建和显示注释的系统的示图。
[0017] 图11是图示用于图10的系统的示例浏览器界面的示图。
[0018] 图12是图示根据本发明的一个实施例用于从图像数据创建三维模型的系统的示图。
[0019] 其中元素第一次出现的附图通常由在对应的附图标记中的最左边的数字指示。在附图中,相似的附图标记可以指示相同或功能上类似的元素。

具体实施方式

[0020] 本发明涉及注释图像。在随后的本发明的详细描述中,对于“一个实施例”、“实施例”、“示例实施例”等的引用指示所述的实施例可以包括特定特征、结构或特性,但是每个实施例可以不必然包括所述特定特征、结构或特性。而且,这样的短语不必然指的是同一实施例。而且,当结合实施例描述特定特征、结构或特性时,认为结合其他实施例实现这样的特征、结构或特性在本领域内的技术人员的知识范围内,而不论是否明确地描述。
[0021] 在一个实施例中,如在此所述,本发明使得用户能够在观看二维图像时创建对应于三维对象的注释。在一个实施例中,这是通过将选择对象投影到从多个二维图像创建的三维模型上而实现的。所述选择单元是由用户在观看第一图像时输入的,所述第一图像对应于所述三维模型的一部分。确定对应于在所述三维模型上的投影的位置,并且将由用户在观看所述第一图像时输入的内容与所述位置相关联。将所述内容与所述位置信息一起存储以形成注释。所述注释可以被检索并与对应于所述位置的其他图像一起显示。
[0022] 图1是图示根据本发明的一个实施例用于创建注释的示例100的示图。示例100包含在三维空间中的树112和建筑物110。示例100也包含从不同的视拍摄的树112和建筑物110的图像102和图像104。图像102和图像104的每个都是二维图像。在实施例中,图像102和图像104可以是从在街道上的不同点拍摄的照片图像。
[0023] 如在示例100中所示,用户可以在观看图像102时输入选择对象122(例如,边界框)和文本106。选择对象122包含示出建筑物110的图像102的一部分。如下更详细所述,本发明的实施例确定对应于选择对象122的位置。在所示的示例中,对选择对象122确定的位置是对应于建筑物110的位置。将文本106与对选择对象122所确定的位置(例如,建筑物110的位置)一起存储,以形成根据本发明的注释。可以检索所存储的注释并且例如与另一个图像(例如,图像104)或地图一起显示。在图1中,注释被示出为显示在图像104的顶部的位置108。
[0024] 图2A和2B是更详细地图示根据本发明创建和显示注释的示图。图2A是图示使用图像102来确定根据本发明的一个实施例创建的注释的位置的示图。图2B是图示在创建了注释后显示注释的示图。
[0025] 参见图2A,图示了示例200,其示范使用图像102来确定注释的位置。像在示例100中那样(参见图1),示例200包含树112和建筑物110。示例200也包含从树112和建筑物110拍摄的图像102。
[0026] 如图2中所示,由用户输入选择对象122以选择二维图像102的一部分。在所示的示例中,选择对象122是围绕示出建筑物110的图像102的一部分的矩形或边界框。但是,选择对象122可以是选择图像102的一部分的任何形状。在其他示例中,例如选择对象122可以是圆圈、套索或点。
[0027] 从照相机视点202,选择对象122被投影到三维模型206上。选择对象122在三维模型206上的投影204用于确定注释的位置或位置信息。在一个实施例中,三维模型206可以包括立面(facade)平面和街道平面。下面详细讨论如何产生三维模型206的示例。
[0028] 在图2A所示的示例中,照相机视点202可以是用于拍摄图像102的照相机的焦点。照相机可以具有焦距208。使用照相机视点202和选择对象122确定射线,例如射线210。在一个实施例中,每个射线从焦点202延伸通过选择对象122的点以与三维模型206相交。与三维模型206的交点用于确定注释的位置。在实施例中,所确定的位置例如可以是与选择对象122的中心对应的位置或与选择对象122上的点对应的位置。
[0029] 在一个实施例中,所确定的注释的位置是与选择对象122在三维模型206上的投影204对应的在三维空间中的几何形状。例如,可以通过一组坐标或三角网络来限定所述几何形状。如在此所述,可以将所述位置与文本106或其他内容相关联以形成注释。可以将这个注释存储在例如数据库中以用于检索和与其他图像或地图一起显示。
[0030] 图2B是描述在例如图像104的另一个图像上显示在示例200中创建的注释的示例250的示图。图像104是示出建筑物110和树112的图像。图像104的视角包含在示例200中确定的位置,因此,可以说图像104对应于位置。结果,在示例200中创建的注释的内容被显示在图像104上的位置108。在实施例中,可以在指向与位置信息对应的图像104的一部分的信息气球中显示注释的文本,所述位置信息与注释相关联。在一个实施例中,可以描画与位置对应的图像104的部分的轮廓或高亮与位置对应的图像104的部分。在一个实施例中,可以在地图上显示在示例200中创建的注释。这些示例严格上说是说明性的,并且不意欲限制本发明。
[0031] 图3是示范根据本发明的一个实施例用于创建和显示注释的方法300的流程图。方法300在步骤302开始。
[0032] 在步骤302,用户选择用于创建注释的边界框(例如选择对象)。可以使用边界框来选择从街面拍摄的图像的一部分。在一个实施例中,用户可以通过利用例鼠标的输入设备在图像中绘制边界框的周界来选择边界框。
[0033] 在步骤304中,将边界框(选择框)投影到三维模型上。在一个实施例中,可以通过从照相机视点将射线延伸通过边界框到三维模型,并且确定在射线和三维模型之间的交点来执行投影。上面相对于图2A描述了该示例。
[0034] 在步骤306中,将与在步骤304中执行的投影对应的位置与由用户输入的内容(例如注释)一起存储。作为示例,在步骤306,可以将所述注释存储在数据库中。在实施例中,由用户输入的内容可以包括文本、HTML、XML、图像、视频或其他多媒体内容。
[0035] 在步骤308,在步骤306中存储的注释与第二图像一起显示或被显示在第二图像顶部,所述第二图像对应于在步骤304的投影的位置。作为示例,第二图像可以是街面全景图像。在实施例中,注释可以与地图一起显示或被显示在地图的顶部。
[0036] 图4是用于示范根据本发明的一个实施例从图像数据创建三维模型的方法400的流程图。方法400在步骤402开始。
[0037] 在步骤402中,识别图像的特征。在一个实施例中,从图像提取特征以用于随后的比较。下面相对于图5A-B更详细地描述这一点。在一个实施例中,所使用的图像是街面全景图像,所述街面全景图像是沿着行进路径从彼此接近的位置拍摄的。
[0038] 在步骤404,匹配在相邻图像中的特征。在一个实施例中,匹配特征可以包括构建溢出树。下面相对于图5C更详细地所述这一点。
[0039] 在步骤406,例如计算特征的位置作为在三维空间中的点。在一个实施例中,通过使用如在步骤404中确定的多对匹配的特征计算立体三角来确定点。下面相对于图6-7来更详细地描述如何计算在三维空间中的点。步骤406的结果是点(a clound of points)。
[0040] 在步骤408,基于在步骤406中计算的点云来估计立面平面。在一个实施例中,步骤408可以包括使用自适应优化算法或最佳适应算法。在一个实施例中,步骤408包括扫过(sweep)例如与下面参考图9所述的街道对齐的平面。
[0041] 在步骤410,基于街道的位置来估计街道平面。这些街道平面与在步骤408中估计的立面平面一起用于形成三维模型,所述三维对象对应于在多个二维图像中所示的对象。
[0042] 图5A-C图示根据方法400如何识别和匹配图像中的特征的示例。
[0043] 图5A描述了图像502和图像504。图像502和图像504例如表示从不同视角的同一建筑物和树的两张照片。在一个实施例中,图像502和图像504可以是街面全景图像的部分。可以从附近的位置但是以不同的视角来拍摄两个图像502和图像504。
[0044] 在一个实施例中,可以从安装有一丛(a rosette of)8个照相机的移动汽车拍摄图像502和图像504。所述8个照相机从不同的视角同时拍摄8个图像。可以随后将所述8个图像拼接在一起以形成全景图像。图像502可以是来自所述8个照相机的丛中的第一照相机的未拼接的图像,所述第一照相机被定向为与汽车垂直。图像504可以是在稍后的时间点期间拍摄的来自第二照相机的未拼接的图像,所述第二照相机与第一照相机相邻。
[0045] 图5B图示具有根据方法400的步骤404识别/提取的代表性特征的图像502和图像504。图像502包括代表性特征506、508和512。图像504包括代表性特征510、514和516。虽然仅示出了6个代表性特征,但实际上可以有对每个图像识别和提取的成千上万的特征。
[0046] 在一个实施例中,提取特征的步骤可以包括兴趣点检测和特征描述。兴趣点检测根据条件来检测在图像中的点,并且优选地在图像变化下可再现,所述图像变化例如在亮度和视角上的变化。每个兴趣点的邻域是特征。每个特征由特征描述符表示。特征描述符优选地是独特的。
[0047] 在一个示例中,使用快速鲁棒性特征(SURF)算法来从相邻图像提取特征。例如,在2006年5月Proceedings of the Ninth EuropeanConference on Computer Vision(第九届欧洲计算机视觉会议的论文集)中,Herbert Bay,Tinne Tuytelaars,Luc Van Gool的“SURF:Speeded UpRobust Features”中描述了SURF算法。SURF算法包括兴趣点检测和特征描述方案。在SURF算法中,每个特征描述符包括向量。在一种实施方式中,向量可以是128维的。在图像是从街面拍摄的全景的一个示例中,SURF算法可以在每个图像中提取四五千个特征,导致在大小上为一到二兆字节的特征描述符文件。
[0048] 图5C图示了匹配的提取特征。图5C描述了匹配520和匹配522。匹配520包括特征512和特征514。匹配522包括特征506和特征516。如在图5C中所表示的,不是在图像502中的每个特征都在图像504中具有匹配的特征,并且反之亦然。例如,在图像502中的特征508在图像504中没有匹配的特征,因为特征508示出在图像504中遮掩的树的一部分。在另一个示例中,例如因为在特征识别上的不精确,在图像504中的特征510在图像502中没有匹配。特征识别应当尽可能精确。但是,由于在照明、方位和其他因素上的变化,某种程度的不精确是可能的。因为这个原因,需要特征匹配方案,其补偿了不精确。下面描述特征匹配方案的示例。
[0049] 在一个实施例中,诸如特征512的每个特征由特征描述符表示。每个特征描述符包括128维的向量。可以通过找到在第一特征描述符的向量和第二特征描述符的向量之间的欧几里得距离来确定在第一特征和第二特征之间的相似度。
[0050] 例如可以如下确定第一图像中的特征在第二图像中的特征中的匹配。首先,从在第二图像中的特征中确定在第一图像中的特征的最近邻域(例如,在128维的空间中)。其次,从在第二图像中的特征中确定在第一图像中的特征的第二最近邻域(例如,在128维的空间中)。第三,确定在第一图像中的特征和在第二图像中的最近相邻特征之间的第一距离,并且确定在第一图像中的特征和在第二图像中的第二最近相邻特征之间的第二距离。第四,通过将第一距离除以第二距离来计算特征相似度比值。如果所述特征相似度比值在特定阈值之下,则在第一图像中的特征中的特征和在第二图像中的其最近邻域之间存在匹配。
[0051] 如果特征相似度比值太低,则不能确定足够的匹配。如果特征相似度比值太高,则存在太多的假匹配。在实施例中,特征相似度比值可以在0.5和0.95之间并且包括0.5和0.95。
[0052] 在一个实施例中,可以通过构建在第二图像中的特征的溢出树来确定所述最近邻域和所述第二最近邻域。溢出树紧密逼近最近邻域,并且有效地使用处理器资源。在被比较的图像是从街面拍摄的全景图像的一个示例中,对于每对图像,可以有成百上千对匹配的特征。对于每对匹配的特征,可以例如使用立体三角来确定在三维空间中的点。
[0053] 图6和7图示了使用三维立体三角基于匹配特征来确定在三维空间中的点的示例。在一个实施例中,这种技术例如用于实现方法400的步骤406。为了确定在三维空间中的与一对匹配的特征对应的点,对于所述一对匹配的特征构建射线,并且基于射线的交点来确定所述点。下面更详细地描述这一点。
[0054] 图6示出了说明如何形成射线的示例600。如图6中所示,可以通过将射线从图像608的照相机视点602投影或延伸通过图像608的特征604来形成射线606。在示例600中,照相机视点602对应于用于拍摄图像608的照相机的焦点。在图像608和照相机视点
602之间的距离等于焦距610。
[0055] 在形成用于每个匹配特征的射线后,可以确定在三维空间中的点。图7图示描绘如何确定点的示例700。
[0056] 在示例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可以是线段的中点。
[0057] 在实施例中,如上所述,对于每对匹配特征重复由示例600和700图示的步骤,以确定三维点云。
[0058] 图8A示出了三维空间的示例800,所述三维空间包括建筑物806和树808。示例800也包括街道810。在实施例中,可以从沿着街道810移动的汽车拍摄建筑物806和街道
808的照片图像。可以从位置802拍摄第一照片图像,同时可以从位置804拍摄第二照片图像。
[0059] 如在此所述,根据本发明的一个实施例,从第一和第二图像提取特征。识别匹配的特征,并且对于每对匹配特征,例如使用立体三角来确定三维点。这产生三维点云,诸如在图8B中图示的那些。图8B图示其中描述三维点云852的示例850。
[0060] 图9A-C图示如何基于在三维空间中的多个点来确定立面表面的示例。这个示例仅是说明性的,并且可以例如用于实现方法400的步骤408。在其他实施例中,可以使用最佳适应或回归分析算法来确定所述表面,所述最佳适应或回归分析算法例如是最小平方或自适应优化算法。自适应优化算法的示例包括但是不限于爬山算法、随机爬山算法、A星算法和遗传算法
[0061] 图9A描述了街道908和三维点云910。立面平面902与街道908平行。在操作中,立面平面902从街道908沿轴向外平移。在向外移动的每个位置,求取在立面平面902的特定范围内的点的数量。在图9A中,通过虚线912和914来示出所述范围。如图9A中所示,零点位于虚线912和914之间。
[0062] 图9B示出了从街道908沿轴向外平移的立面平面904。在图9B中,立面平面904比在图9A中所示的立面平面902从街道908向外移动更大的距离。结果,有三个点在立面平面904的范围内。
[0063] 在一个实施例中,如果未找到立面平面的位置(例如具有指定数量的接近点的位置),则可以相对于街道来改变立面平面的角度。因此,图9C示出了相对于街道908在非平行的角度的立面平面906。如图9C中所示,存在5个点接近立面平面906。
[0064] 如在此所述,根据本发明的三维模型也可以包括一个或多个街道平面(例如与街道平行的平面)。在一个实施例中,可以基于街道的已知位置来计算街道平面(例如,可以知道街道相对于用于拍摄图像的照相机的位置)。
[0065] 图10示出了根据本发明的一个实施例用于创建和显示注释的系统1000。如图10中所示,系统1000包括客户端1002。客户端1002例如在网络1034上与一个或多个服务器1024进行通信。客户端1002可以是通用的计算机。替代地,客户端1002是专用的计算设备,例如移动电话。类似地,可以使用能够向客户端1002提供数据的任何计算设备来实现服务器1024。
[0066] 服务器1024可以包括Web服务器。Web服务器是软件组件,其使用超文本传送协议(HTTP)应答来响应于HTTP请求。作为说明性示例,Web服务器在没有限制的情况下可以是Apache HTTP服务器、ApacheTomcat、Microsoft Internet Information Server(微软因特网信息服务器)、JBoss应用服务器、WebLogic应用服务器或Sun Java System Web服务器。所述Web服务器可以提供内容,诸如超文本标记语言(HTML)、可扩展标记语言(XML)、文档、视频、图像、多媒体特征或其任何组合。这个示例严格地说是说明性的,并且不限制本发明。
[0067] 服务器1024可以提供地图瓦片(tile)1014、程序1016、配置信息1018和/或全景地图瓦片1020,如下所述。
[0068] 网络1034可以是可以承载数据通信的任何网络或网络组合,并且在此可以被称为计算机网络。网络1034可以包括但是不限于局域网、中间区域网和/或诸如因特网的广域网。网络1034可以支持协议和技术,其中包括但是不限于万维网协议和/或服务。可以取决于特定应用或环境在系统1000的部件之间提供中间Web服务器、网关或其他服务器。
[0069] 服务器1024耦合到全景数据库1028、模型数据库1030和注释数据库1032。全景数据库1028存储图像。在实施例中,所述图像可以是从街面拍摄的照片图像。从同一位置拍摄的照片图像可以被拼接在一起,以形成全景。模型数据库1030在全景数据库1028中存储与所述图像对应的三维模型。注释数据库1032存储用户产生的注释。
[0070] 可以在关系数据库管理系统上实现全景数据库1028、模型数据库1030和注释数据库1032中的每一个。关系数据库的示例包括Oracle、微软SQL服务器和MySQL。这些示例是说明性的,并且不意欲限制本发明。
[0071] 服务器1024可以包括注释产生器1026。注释产生器1026将选择对象(例如边界框)投影在模型数据库1030中的三维模型上。所述选择单元可以由用户在观看图像时与内容一起输入。选择对象和内容可以由服务器1024作为注释数据接收。注释产生器1026确定与在模型数据库1030中的三维模型上的投影对应的位置。所述位置是三维空间中的几何形状。所述几何形状例如可以由一组坐标或三角网限定。
[0072] 一旦确定了位置,则注释产生器1026将所述位置与由用户输入的内容相关联。注释产生器1026然后可以在注释数据库1032中将所述位置和内容存储为注释。
[0073] 在一个实施例中,客户端1002可以包含地图(mapping)服务1006和全景查看器1008。地图服务1006和全景查看器1008的每个可以是单独的应用或可以在浏览器1004中执行。在实施例中,浏览器1004可以是Mozila Firefox或微软的Internet Explorer。
例如可以将全景查看器1008作为在浏览器1004内的脚本、作为在浏览器1004内的插件或作为在诸如Adobe(Macromedia)Flash插件的浏览器插件内执行的程序来执行。
[0074] 地图服务1006将例如地图的可视表示显示为到地图瓦片的网格的视口。使用标记和脚本元素的组合,例如使用HTML和Javascript,来实现地图服务1006。当移动视口时,地图服务1006从服务器1024请求另外的地图瓦片1014,假定所请求的地图瓦片还没有被缓存在本地高速缓冲存储器中。值得注意地,提供地图瓦片1014的服务器可以是与提供全景瓦片1020、配置信息1018或在此涉及的其他数据的服务器相同或不同的服务器。
[0075] 在一个实施例中,地图服务1006可以请求浏览器1004从服务器1024下载用于全景查看器1008的程序1016,并且实例化用于运行程序1016所需要的任何插件。程序1016可以是Flash文件或某种其他形式的可执行内容。全景查看器1008根据程序1016来执行和操作。
[0076] 全景查看器1008从服务器1024请求配置信息1018。配置信息包括要加载的关于全景的元信息,其中包括关于在所述全景内到其他全景的链路的信息。在一个实施例中,以诸如可扩展标记语言(XML)的形式来呈现所述配置信息。全景查看器1008以全景图像形式或以全景图像瓦片形式检索例如用于可视资产(visual asset)1020的全景。在另一个实施例中,所述可视资产包括以相关文件格式的配置信息。全景查看器1008在全景的客户端显示器和其他的用户界面元素上呈现如从配置信息1018和可视资产1020产生的可视表示。当用户与输入设备交互以操控全景的可视表示时,全景查看器1008更新所述可视表示,并且根据需要下载附加配置信息和可视资产。
[0077] 全景查看器1008可以包括注释查看器1010和注释编辑器1012。注释编辑器1012使得用户能够输入用于注释的选择对象和内容。作为示例,用户可以使用诸如鼠标的输入设备来输入边界框。用户可以使用输入设备来选择由全景查看器1008显示的全景图像的一部分。用户可以输入的内容可以包括文本、HTML、XML、图像、视频或其他多媒体内容。
[0078] 一旦用户输入了选择对象(例如,边界框)和内容,则注释编辑器1012将该信息作为注释数据1022发送给服务器1000。作为示例,可以在(超文本传送协议)HTTP请求中将注释数据1022封装为HTTP参数。替代地,可以以XML对注释数据1022进行编码。
[0079] 注释查看器1010向用户显示注释,在一个实施例中,每个注释与接近全景的位置一起可以显示在全景查看器1008中。在该实施例中,配置信息1018可以包括每个注释的内容和每个注释在全景内的位置。在说明性示例中,注释查看器1010可以描绘包括注释位置的全景区域的轮廓,并且可以在信息气球中显示注释的内容。
[0080] 可以以硬件、软件、固件或其任何组合来实现浏览器1004、地图服务1006、全景查看器1008、注释查看器1010和注释编辑器1012的每个。
[0081] 图11示出了用于系统1000的示例浏览器界面1100。示例浏览器界面1100严格地说是说明性的,并且可以使用其他界面。浏览器界面1100可以由浏览器1004(参见图10)呈现。浏览器界面1100包括地图界面1104和全景视口1102。地图界面1104可以由地图服务1006呈现,并且全景视口1102可以由全景查看器1008呈现。
[0082] 全景视口1102示出了由用户创建的注释。全景视口1102包括选择对象(例如边界框)1106、文本域1112和提交按钮1110。在这个示例中,为了输入注释,用户可以选择如由选择对象1106所示的全景图像的一部分。用户可以将文本输入到文本域1112中。一旦用户创建了选择对象1106并且将内容输入到文本域1112,则用户可以选择提交按钮
1102。选择提交按钮1102使得将选择对象1106的位置和文本域1112中的内容作为注释数据1022(参见图10)发送到服务器1024。服务器1024然后确定注释的位置,并且存储注释。再一次,这个示例仅是说明性的,并且不意味着限制本发明。对于本领域内的技术人员显然可以使用其他界面。
[0083] 全景视口1102也显示由用户预先存储的注释。全景视口1102包括轮廓1114。轮廓1114是选用的,并且示出了注释在全景中的位置。全景视口1102也包括显示注释的文本的信息气球1108。在一个实施例中,注释的文本和注释在全景内的位置是配置信息1018(参见图10)的一部分。
[0084] 图12示出了根据本发明的一个实施例用于从图像数据创建三维模型的系统1200。系统1200包括全景数据库1028和模型数据库1030,其中每个耦合到处理管线服务器
1224。处理管线服务器1224可以是任何计算设备。示例计算设备包括但是不限于计算机、工作站、分布式计算系统、嵌入系统、单独电子设备、联网设备、移动设备、机架式服务器、电视或其他类型的计算系统。
[0085] 处理管线服务器1224包括特征提取器1216、特征匹配器1218、点计算器1220和表面估计器1222。可以以硬件、软件、固件或其任何组合来实现特征提取器1216、特征匹配器1218、点计算器1220和表面估计器1222的每个。
[0086] 特征提取器1216从全景数据库1028选择图像1202。在一个实施例中,图像1202可以包括两个图像,所述两个图像为街面未拼接的全景图像。可以从彼此接近的位置但是从不同的视角来拍摄所述两个图像。在一个实施例中,从安装有一丛8个照相机的移动汽车拍摄图像。所述8个照相机同时从不同的视角拍摄8个图像。所述8个图像随后可以被拼接在一起以形成全景。第一图像可以是来自所述8个照相机的丛中的第一照相机的未拼接的图像。第二图像可以是在稍后的时间点期间拍摄的来自第二照相机的未拼接的图像,所述第二照相机与第一照相机相邻。
[0087] 特征提取器1216从图像1202提取特征。在一个实施例中,特征提取器1216可以执行不只一个功能,诸如兴趣点检测和特征描述。兴趣点检测根据条件来检测在图像中的点,并且优选地在图像变化下可再现,所述图像变化例如在亮度和视角上的变化。每个兴趣点的邻域因此被描述为特征。这些特征由特征描述符表示。特征描述符优选地是独特的。
[0088] 在一个示例中,可以使用快速鲁棒性特征(SURF)算法从图像提取特征。SURF算法包括兴趣点检测和特征描述方案。在SURF算法中,每个特征描述符包括向量。在一种实施方式中,所述向量可以是128维的。在图像是从街面拍摄的全景的一个示例中,SURF算法可以在每个图像中提取四五千个特征,导致在大小上为一到二兆字节的特征描述符文件1204。
[0089] 特征匹配器1218使用每个特征描述符文件1204来匹配在两个图像中的特征。在一个示例中,每个特征由在特征描述符文件1204中的特征描述符表示。每个特征描述符包括128维的向量。可以通过找到在第一特征的向量和第二特征的向量之间的欧几里得距离来确定在第一特征和第二特征之间的相似度。
[0090] 可以如下确定第一图像中的特征在第二图像中的特征中的匹配。首先,特征匹配器1218确定从在第二图像中的特征中确定的在第一图像中的特征的最近邻域(例如,在128维的空间中)。其次,特征匹配器1218确定从在第二图像中的特征中确定的在第一图像中的特征的第二最近邻域。第三,特征匹配器1218确定在第一图像中的特征和在第二图像中的最近相邻特征之间的第一距离,并且,特征匹配器1218确定在第一图像中的特征和在第二图像中的第二最近相邻特征之间的第二距离。第四,特征匹配器1218通过将第一距离除以第二距离来计算特征相似度比值。如果所述特征相似度比值低于特定阈值,则在第一图像中的特征和在第二图像中的其最近邻域之间存在匹配。
[0091] 特征匹配器1218可以例如通过构造溢出树来确定最近邻域和第二最近邻域。
[0092] 如果特征相似度比值太低,则特征匹配器1218不能够确定足够的匹配。如果特征相似度比值太高,则特征匹配器1218可能确定太多的假匹配。在一个实施例中,特征相似度比值可以在0.5和0.95之间并且包括0.5和0.95。在其中从街面拍摄全景的示例中,可以有几百个匹配的特征。所述匹配的特征作为匹配的特征1206被发送到点计算器1220。
[0093] 点计算器1220对于每对匹配的特征1206确定在三维空间中的点。为了确定在三维空间中的点,对于每个特征形成或确定射线,并且基于特征的射线的交点来确定所述点。在一个实施例中,如果射线未相交,则基于连接两条射线的最短线段的中点来确定所述点。
点计算器1220的输出是三维点云1208(例如用于每对匹配的特征的一个点)。
[0094] 表面估计器1222基于点云1208来确定立面平面。表面估计器1222可以通过使用最佳适应或回归分析算法来确定所述立面平面,所述最佳适应或回归分析算法例如是最小平方或自适应优化算法。自适应优化算法的示例包括但是不限于爬山算法、随机爬山算法、A星算法和遗传算法。替代地,表面估计器1222可以通过下述方式来确定立面表面:通过沿轴平移平面以确定平面的最佳位置,如上面相对于图9A-C上述。
[0095] 表面估计器1222也可以确定一个或多个街道平面。街道平面和立面平面一起形成表面平面1210。表面估计器1222将表面平面1210存储在模型数据库1030中。
[0096] 应当理解,具体实施方式部分而不是发明内容和摘要部分意欲用于解释权利要求。发明内容和摘要部分可以阐明发明人考虑的本发明的一个或多个示例性实施例,而是所有的示例性实施例,因此发明内容和摘要部分不意欲以任何方式来限制本发明和所附的权利要求。
[0097] 上面已经借助于功能创建来描述了本发明,所述功能创建块说明指定功能及其关系的实施。在此,为了便于说明,已经任意地限定了这些功能创建块的边界。可以限定替代边界,只要所述指定功能及其关系被适当地执行。而且,虽然在此相对于用于特定应用的说明性实施例描述了本发明,但是应当明白,本发明不限于此。访问了在此提供的教导的本领域内的技术人员将识别在其范围内的另外的修改、应用和实施例以及其中本发明得到有效使用的另外的领域。
[0098] 特定实施例的前述说明充分地揭示了本发明的一般特性,在不偏离本发明的一般思想的情况下,其他人可以通过应用在本领域的技术内的知识而容易地修改和/或调整本发明的一般特性以用于这样的特定实施例的各种应用,而不用进行过度的实验。因此,基于在此提供的教导和指南,这样的调整和修改意欲在所公开的实施例的等同物的含义和范围内。应当明白,在此的短语或术语用于描述的目的,而不是限制的目的,因此本说明书的术语或短语应当由技术人员根据所述教导或指南来解释。
[0099] 本发明的宽度和范围不应当由上述示例性实施例的任何一个限制,而是应当仅根据所附的权利要求及其等同物来限定。
QQ群二维码
意见反馈