指示在街道级图像之间转换的系统和方法

文档序号:6348984阅读:237来源:国知局
专利名称:指示在街道级图像之间转换的系统和方法
指示在街道级图像之间转换的系统和方法相关申请的交叉引用本申请要求2009年2月M日提交的申请序列号为12/391,516的、标题为“SYSTEM AND METHOD OF INDICATING TRANSITION BETWEEN STREET LEVEL IMAGES” 的权益,其公开内容并入此处以供参考。
背景技术
例如Google地图的服务能够显示地理位置的街道级图像。在Google地图中被标识为“街道视图”的这些图像典型地包括建筑物和其他特征的照片,且与自上而下的地图角度相比允许用户从人的角度观察地理位置。趋于在离散的位置获得街道级图像。Google地图服务提供允许用户将一个位置处的街道级图像改变到在另一个位置处的街道级图像的多种机制,例如点击箭头图标。Google地图服务也示出了在两个街道级图像之间的动画转换(transition)。例如,如果用户表明他或她要向前移动到下一个图像,客户端计算机提供指令,以放大到当前街道级。缩放是为了传达行进到所述图像内的印象。类似地,如果用户移动到下一街道级图像,当前显示的图像分别向右或向左摇摄(pan)。可以在下一个街道级图像之上半透明地示出当前街道级图像的动画。更具体地, 首先以低分辨率JPEG格式发送下一个街道级图像,且当下载下一个图像的较高分辨率版本时当前街道级图像越过低质量图像移动。当前街道级图像结束移动或缩放时,它在显示第二街道级图像的点对于用户隐藏。如果服务器获得在当前街道级图像的地理位置与待显示的街道级图像的位置之间的位置处获得的街道级图像,服务器可以将这些图像发送到用于显示的客户端计算机。 虽然在许多情况下是有利的,但是许多客户端计算机缺乏与接收且显示介入图像的服务器的十分迅速的连接。

发明内容
本发明的一个方面提供了一种用于显示图像的方法。所述方法包括接收在第一位置处由摄像机捕获的表示地理目标的第一图像;接收与所述地理目标的地理位置相关联的目标位置数据;用处理器基于所述第一图像和所述目标位置数据确定多个区域,每个区域与所述第一图像的一部分和地理位置相关联;用处理器生成从第二位置的角度的、表示所述地理目标的第二图像,所述第二图像包括从所述第二位置的角度而显示的多个区域;以及在电子显示器上显示所述第二图像。本发明的另一个方面提供了一种显示街道级图像的方法。所述显示街道级图像的方法包括接收在第一位置处由摄像机捕获的地理目标的第一街道级图像;接收相对于所述第一位置的、表示所述地理目标的表面的位置的深度数据;用处理器生成多个多边形,其中所述多边形的顶点与位置相关联,所述顶点的位置基于所述深度数据确定,且其中每个多边形进一步与所述第一街道级图像的一部分相关联;以及在电子显示器上显示所述地理目标的第二街道级图像,这样所述街道级图像如同由所述第二位置处的相机所捕获那样呈现。所述第二街道级图像由处理器基于如下计算第二位置;多个所述多边形;和所述多边形相对于所述第二位置的位置。本发明的又另一个方面涉及一种系统。所述系统具有用户输入装置;以及存储指令、表示由摄像机捕获的地理目标的街道级图像的二维图像数据、以及表示面对所述摄像机的所述目标的表面的三维位置的位置数据的存储器。所述系统也包括处理器,所述处理器与所述用户输入装置通信以根据所述指令处理从所述用户输入装置接收的信息;以及显示器,所述显示器与所述处理器通信且显示从所述处理器接收的信息。所述指令包括接收第二位置和第二方位的标识;使所述图像数据的部分与不同区域相关联;确定与每个区域相关联的多个点的表面位置数据,其中点的表面位置数据表示在所述点处的所述图像中显示的所述目标的表面的所述部分的三维位置,且其中所述表面位置数据基于所述位置数据;基于所述区域的所述图像数据、所述区域的所述表面位置数据、所述第二位置和所述第二方位渲染二维第二图像;以及在所述显示器上显示所述第二图像。又另一种系统显示图像,且它包括在网络的第一节点上的第一计算机,所述第一计算机包括存储第一组指令的第一存储器、根据所述第一组指令处理数据的第一处理器、 以及电子显示器。它也包括在网络的第二节点上的第二计算机,所述第二计算机包括存储第二组指令的第二存储器和根据所述第二组指令处理数据的第二处理器。所述第二组指令包括从所述第一计算机接收位置,将由摄像机捕获的地理目标的第一图像传送到所述第一计算机,以及传送限定在所述图像中表示的、所述目标的表面的地理位置的位置数据。所述第一组指令包括接收所述第一图像;接收所述位置数据;接收第二位置;对于所述图像的多个部分,使每个图像部分与图像部分位置相关联,其中基于由所述部分表示的表面的至少一个地理位置来计算所述图像部分位置;从所述图像部分生成第二图像,其中基于当从所述第二位置的角度观察时、所述图像部分的外观来计算每个图像部分在所述第二图像内的位置;以及显示所述第二图像。本发明的一个进一步的方面涉及一种提供在街道级图像之间的转换的方法。所述提供在街道级图像之间的转换的方法包括接收从第一地理位置获得的地理目标的第一街道级图像;接收表示所述目标的表面的地理位置的目标位置数据;请求第二街道级图像, 所述第二街道级图像与第二地理位置相关联;用处理器确定多个多边形,其中所述多边形的每个顶点与像素位置和地理位置相关联,所述像素位置表示所述顶点相对于所述第一图像的位置,每个顶点的地理位置表示在所述顶点的所述像素位置处显示的所述目标的所述部分的地理位置;基于所述第一地理位置和所述第二地理位置确定第一中间地理位置;用处理器确定从所述第一中间地理位置的角度的、表示所述地理目标中的至少一个的第一中间图像,所述第一中间图像包括多个所述多边形,所述多边形基于每个多边形的顶点相对于所述第一中间地理位置的地理位置定位在所述第一中间图像之内;以及在显示器上显示所述第一中间图像。


图1是根据本发明的一个方面的系统的功能图。图2是根据本发明的一个方面的系统的图解示意图。
图3是根据本发明的一个方面的、由摄像机捕获的街道级图像。图4是根据本发明的一个方面的、功能地说明目标在街道级图像内的相对地理位置以及用于捕获所述街道级图像的摄像机的位置和角度的示意图。图5是根据本发明的一个方面的街道级图像的、目标在所述街道级图像内相对于摄像机位置的地理位置以及目标位置数据的功能图。图6是根据本发明的一个方面的街道级图像的、目标在所述街道级图像内相对于摄像机位置的地理位置以及目标位置数据的功能图。图7是根据本发明的一个方面的街道级图像的、目标在街道级图像内相对于摄像机位置的地理位置以及目标位置数据的功能图。图8是根据本发明的一个方面的屏幕截图。图9是根据本发明的一个方面的屏幕截图。图10说明了根据本发明的一个方面的使区域与街道级图像相关联。图11说明了根据本发明的一个方面的在街道级图像内的区域的位置。图12说明了所有的、根据本发明的一个方面的、区域相对于目标在街道级图像内的地理位置的位置以及不同有利位置(vantage point)。图13将根据本发明的一个方面的街道级图像与由其生成的中间街道级图像比较。图14说明了根据本发明的一个方面的区域在街道级图像和中间街道级图像内的
像素位置。图15是根据本发明的一个方面的屏幕截图。图16说明了根据本发明的一个方面的中间位置和取向(或方位;orientation)。图17是根据本发明的一个方面的流程图。图18是根据本发明的一个方面的流程图。图19是根据本发明的一个方面的流程图。
具体实施例方式在一个方面,所述系统和方法确定在街道级图像中显示的地理目标,例如建筑物, 的表面的位置,且用该信息来产生传达通过在所述图像中表示的场景移动的印象的动画。 所述动画可以完全由客户端计算机生成,所述客户端计算机用从服务器接收的位置信息来产生由来自当前街道级图像的图像信息进行纹理(textured)的多边形。所述客户端计算机也可以计算从当前街道级图像到下一街道级图像的一系列中间地理位置;这些中间位置用于基于来自这些位置的多边形渲染和显示一系列二维视图。所述系统和方法的该方面为产生动画移动通过街道级图像中显示的地理目标的印象提供了大量灵活性。如图1-2所示,根据本发明的一个方面的系统100包括计算机110,所述计算机 110包含处理器210、存储器220和典型地存在于通用计算机中的其他部件。存储器220存储可由处理器210获取的信息,包括可以由处理器210执行的指令 M0。存储器220也包括可以由所述处理器检索、操作或存储的数据230。所述存储器可以是能够存储可由所述处理器获取的信息的任何类型,例如硬盘驱动器、记忆卡、ROM、RAM、DVD、 ⑶-ROM、可写入且只读存储器。处理器210可以是任何公知的处理器,例如来自英特尔公司或AMD的处理器。可选地,所述处理器可以是专用控制器,例如ASIC。指令240可以是将由所述处理器直接地(例如机器代码)或间接地(例如脚本) 执行的任何指令集。就此而言,在此处可以互换地使用术语“指令”、“步骤”和“程序”。该指令可以存储为目标码格式,用于由处理器直接处理,或者以任何其他计算机语言包括根据需要解释或预先编译的脚本或独立源代码模块的集合。下面更详细地说明所述指令的功能、方法和例程。数据230可以由处理器210根据指令240检索、存储或修改。例如,虽然所述系统和方法不受任何特定数据结构限制,所述数据可以存储在计算机寄存器中,作为具有多个不同字段和记录的表格、XML文档、或平面文件(flat file)存储在关系数据库中。还可以任何计算机可读格式例如,但不限于,二进制值、ASCII或Unicode对所述数据进行格式化。仅仅作为进一步举例,图像数据可以作为包括像素的位图存储,所述像素以压缩的或未压缩的、或无损耗的或有损耗的格式(例如,JPEG)、基于矢量的格式(例如,SVG)或用于绘制图形的计算机指令存储。而且,所述数据可以包括足以识别有关信息的任何信息,例如数字、说明性文本、专有代码、指针、对存储在其他存储器(包括其他网络位置)中的数据的引用或者由函数用于计算有关数据的信息。虽然图1功能地显示了所述处理器和存储器在相同块内,本领域的普通技术人员可以理解的是,实际上,所述处理器和存储器可以包括可以存储在相同物理壳体内或可以不存储在相同物理壳体内的多个处理器和存储器。例如,所述指令和数据中的一些可以存储在可移动CD-ROM以及在只读计算机芯片内的其他装置上。所述指令和数据中的一些或全部可以存储在物理上远离所述处理器但是仍然可由所述处理器获得的位置。类似地,所述处理器可以实际上包括可以平行操作或可以不平行操作的一批处理器。在一个方面,计算机110是与一个或多个客户端计算机150、170 (为了清楚,在图1 中仅仅示出客户端150)通信的服务器。例如,计算机110可以是网络服务器。每个客户端计算机可以与服务器110类似地配置,具有处理器、存储器和指令。每个客户端计算机150、 170可以是个人计算机,将由人190-191使用,具有通常在个人计算机中可见的所有内部部件,例如中央处理单元(CPU)、显示装置160(例如具有屏幕的监视器、投影仪、触摸屏、小型 LCD屏、电视、或者另外的装置,例如可操作以显示由所述处理器处理的信息的电气装置)、 ⑶-ROM、硬盘驱动器、用户输入装置(例如,鼠标163、键盘、触摸屏或麦克风)、扬声器、调制解调器和/或网络接口装置(电话、线缆或其他装置)以及用于将这些元件彼此连接的所有部件。而且,根据此处描述的系统和方法的计算机可以包括能够处理指令且将数据传送到人和其他计算机以及从人和其他计算机传送数据,其他计算机包括通用计算机、PDAs、缺乏局部存储能力的网络计算机、以及用于电视的机顶盒。虽然客户端计算机150和170可以包括全尺寸个人计算机,所述系统和方法也可以与能够与服务器在网络例如互联网之上无线交换数据的移动装置结合使用。例如,客户端计算机170可以是无线使能PDA,例如黑莓手机或互联网功能的手机。在任一方面,用户可以使用小型键盘(在黑莓手机的情况下)、小键盘(在典型手机的情况下)、触摸屏(在 PDA的情况下)或任何其他用户输入工具来输入信息。客户端计算机150和170可以包括例如电路的部件,以确定所述装置的地理位置。 例如,移动装置170可以包括GPS接收器155。作为进一步举例,所述部件可以包括用于基于在移动装置170处接收的其他信号,例如如果所述移动装置是手机、在手机的天线处从一个或多个手机塔接收的信号,确定所述装置的位置的软件。服务器110和客户端计算机150和170能够直接和间接通信,例如在网络295之上。虽然在图1-2中仅仅描述了一些计算机,应该理解的是,典型的系统可以包括大量连接的计算机,其中每个不同的计算机在网络295的不同节点。所述网络、和中间节点可以包括各种配置和协议,包括互联网、万维网、内联网、虚拟专用网络、广域网、局域网、使用一个或多个公司专有的通信协议的专用网络、以太网、WiFi和HTTP、以及上述的各种组合。这样的通信可以由能够将数据传送到其他计算机以及从其他计算机传送数据的任何装置而得以便利,所述其他计算机例如为调制解调器(例如,拨号、线缆或光纤)和无线接口。虽然当如以上所指出的传送或接收信息时获得一些优点,但是所述系统和方法的其他方面不限于任何特定信息传送方式。例如,在一些方面,可以通过例如磁盘、磁带或 CD-ROM的介质发送信息。在其他方面,可以非电子格式传送信息且将信息用手输入所述系统。然而进一步,虽然一些功能指示为发生在服务器上且其他的发生在客户端上,但是可以通过具有单个处理器的单个计算机实施所述系统和方法的各种方面。服务器110的地图数据库270存储地图相关信息,可以将所述地图相关信息中的至少一部分传送到客户端装置。例如,地图数据库270可以存储地图切片(map tile) 272, 其中每个切片是特定地理区域的地像。根据分辨率(例如,是否所述地图被放大或缩小),一个切片可以覆盖整个区域,例如具有相对少细节的国家。另一个切片可以仅仅覆盖具有高细节的一些街道。地图信息不限于任何特定格式。例如,所述图像可以包括街道地图、卫星图像、或者这些的结合,且可以作为矢量(特别是相对于街道地图)或者位图(特别是相对于卫星图像)存储。各种地图切片每个与地理位置相关联,这样服务器110能够响应地理位置的接收而选择、检索且传送一个或多个切片。如以下所指出,可以各种方式表示所述位置,包括但不限于纬度/经度位置、街道地址、在地图上的点(例如当用户在地图上点击时)、建筑物名称、能够标识一个或多个地理位置的其他数据、以及上述的范围。所述地图数据库也可以存储街道级图像274。街道级图像包括在通常平行于地面的方向上由地理位置处的摄像机捕获的、在地理位置处的目标的图像。因此,如图3所示, 街道级图像数据可以表示各种地理目标,例如从地面上几英尺的角度且向下看街道时的建筑物320-22、人行道330-31和街道340。可以理解的是,虽然为了说明容易街道级图像310 仅仅示出了一些目标,典型的街道级图像将包含具有摄像机能够捕获的尽可能多的细节的、与地理位置(街灯、山、树、水体、车辆、人、等等)可相关联的尽可能多的目标。所述街道级图像可以由安装在车辆顶部的摄像机、从指向大约平行于地面的摄像机角度且从在或低于车辆高度的法定限制(例如,7-14英尺)的摄像机位置捕获。街道级图像不限于在地面之上的任何特定高度,例如,可以从建筑物的顶部获得街道级图像。可以通过将从不同摄像机角度获得的多个照片缝合在一起而创建全景街道级图像。图4图示地说明了当捕获图像时建筑物320-21相对于所述摄像机的位置410和角度420的位置。每个街道级图像可以作为与颜色值和亮度值相关联的一组像素存储。例如,如果以JPEG格式存储所述图像,所述图像将作为按行和列的一组像素显示,其中每个像素与限定在所述像素的位置处的图像的颜色和亮度的值相关联。除了与地理位置相关联之外,街道级图像274典型地与指示所述图像的方位的信息相关联。例如,如果所述街道级图像包括典型的照片,所述方位可以仅仅是摄像机角度, 这反过来可以作为真北的向东30°且从地平面上升2°的角度显示。如果所述街道级图像是全景图像,例如以与所述图像相关联的地理位置为中心的360°全景,所述方位可以指示与从所述相机位置以直接平行于地面的角度看真北所对应的所述图像的部分。街道级图像也可以视频的形式存储,例如通过显示由模拟摄像机捕获的MPEG视频或者连续地显示由数码相机捕获的时间顺序的照片。存储器220也存储表示所述地理目标在所述街道级图像中的地理位置的目标位置数据。所述目标位置数据可以任何数目的格式存储。(本文中术语“地点(location)” 和“位置(position)”可互换使用。)在一个方面,所述目标位置数据存储表示面对所述摄像机的表面的地理位置的值。就此而言,可以存储所述街道级图像的每个像素的单独值,其中所述值表示在那个像素处显示的表面的地理位置。这样,如图5所示,在街道级图像510的行ya和列xa处的像素 (此后,“(xa,ya)”)表示在点“Α”处的建筑物320的表面的一部分。所述像素与两个值相关联,第一值是由所述摄像机捕获的所述表面的那部分的颜色和亮度。与所述像素相关联的第二值是所述表面的那部分的地理位置。例如,所述值可以反映所述部分的纬度/经度和海拔高度位置且表示为形式(Lat2° , Lon2°,Alt2米)的坐标。在位置“B”处的像素处所显示的建筑物322的部分的地理位置可以类似地表示为 (Lat3,Lon3,Alt3)。目标位置数据550也可以将所述摄像机位置的地理位置存储为(Latl, Lonl, Altl)。与表面不相关联的像素可以与空值或默认表面值相关联。在又另一个方面,所述目标位置数据可以存储在所述图像的每个像素处从所述目标到所述摄像机的距离。这样,如图6所示,目标位置数据650可以限定从摄像机位置610 到在像素“A”处的建筑物320的表面的距离620。类似地,所述目标位置数据可以限定从摄像机位置610到在像素“B”处的建筑物320的表面的距离610。在另一个方面,将面对所述摄像机的表面的地理位置存储为多边形。这样,如图 7所示,将面对所述摄像机的建筑物320的表面720限定为具有四个顶点的多边形725,每个顶点与不同地理位置相关联。例如,所述表面在目标位置数据750中可以引用为在位置 (Lat2, Lon2, Alt2)、(Lat3, Lon3, Alt3)、(Lat4, Lon4, Alt4)禾口(Lat5,Lon5, Alt5)处的一组顶点。类似地,可以沿着所述摄像机的位置存储其他目标的表面。对于在所述图像中的每个像素,所述目标位置数据可以进一步限定与所述像素对应的表面。例如,在位置“A”处的像素的目标位置数据可以引用多边形725。也可以使用用于存储所述目标位置数据的其他格式。例如,不是与绝对值例如纬度/经度相关联,所述值可以是相对的且是任何比例。此外,即使使用第一类型的信息(例如存储所述摄像机和表面的纬度、经度和海拔高度),也可以从其生成另一类型的信息(例如使用在纬度/经度位置和海拔高度之间的差来计算距离)。特定格式允许将所述表面信息独立于由所述摄像机获得的街道级图像存储。例如,如图7所示存储的目标位置数据可以不参照街道级图像或摄像机位置而被存储,且可以通过搜索具有接近所述街道级图像的位置的地理位置的表面而被检索。
可以使用多种系统和方法来收集所述表面信息。仅仅作为举例,可以使用激光测距仪。此外,也可以使用利用稍微间隔开而观察相同场景的两个摄像机的立体系统;通过分析在每个摄像机看到的图像之间的细微差异,可以估计在所述图像中、每个点处的距离。在又另一个方面,可以通过使用以特定速度行进的单个摄像机编译所述信息,以当场景经过时捕获街道级影像。所述视频不仅可以用作所述街道级图像,而且可以比较随后的帧,以提取所述目标和所述摄像机之间的不同距离(例如,在远处的山将比沿着所述街道经过的消防栓在所述帧中停留更久)。除了在图17-19中所示的操作之外,现在将描述根据本发明的多个方面的各种操作。应该理解的是,不必按以下所描述的精确顺序进行下列操作。而是,可以相反顺序或同时处理各个步骤。图8显示了可以由所述客户端计算机的显示装置显示的屏幕截图。例如,所述系统和方法可以与例如显示示出地图810和其他信息的网页的谷歌浏览器(未示出)的互联网浏览器结合而被实施。当请求在街道级视图中显示一个位置时,该程序可以给用户提供大量的灵活性。例如,用户可以在文本框805中输入标识位置的文本,例如地址、建筑物的名称、或纬度和经度。然后,用户可以通过选择搜索按钮815将所述位置传送到所述服务器。用户可以进一步使用鼠标或小键盘来移动鼠标光标860,以在所述地图上标识特定地理位置。而进一步地,所述程序可以提供允许用户请求在特定地理位置处的街道级视图的按钮870或者特定其他特征。当请求街道级图像时,所述地图可以用街道视点光标890指示所述摄像机位置的位置和方位。服务器110基于所请求的位置检索适当的街道级图像。例如,如果当摄像机捕获所述图像时,所述街道级图像与所述摄像机的纬度/经度坐标相关联,所述服务器可以检索最接近所请求的纬度/经度的图像。如图9所示,可以随同用于改变所述视点的位置或方位的用户可选择的控制器 (control) 一起在所述浏览器中显示街道级图像910。所述控制器可以包括用于放大和缩小所述图像的控制器920,以及改变视图的方位的控制器930,例如,将方向从向东北看改变到向西北看。如果以整个360°全景下载所述街道级图像,改变所述视图的方向可能仅仅需要显示所述全景的不同部分,而不需要从所述服务器检索更多信息。用户也可以改变所述视点(viewpoint)的位置。例如,用户可以通过选择控制器 940而在当前观察的方向上向前或向后移动所述视点。也可以包括其他导航控制器,例如沿着街道设置的以箭头形式的控制器,可以选择所述控制器来向所述街道上或向所述街道下移动所述有利位置。用户也可以操作键盘的箭头控制器,以改变视图的缩放、方向或位置。用户可以进一步选择所述图像的部分,例如,通过移动且点击计算机鼠标或者轻按触摸屏,以选择和移动更靠近在图像中所显示的目标。根据下载的街道级图像,位置的改变可能需要客户端计算机从所述服务器获得更多街道级图像数据。例如,且参考图8和图9,街道级图像910可以与由街道视点光标840 表示的位置和东北方向对应。如果用户选择控制器940来向前移动所述位置,在所述东北方向上的最接近的街道级图像可以定位在位置850处。因此,位置改变的用户选择将下载与位置850相关联的街道级图像。所述系统和方法使用当前检索的街道级图像以显示这样的动画,所述动画传达移动通过所述场景至下一街道级图像的印象。在这个方面,所述客户端计算机使用与街道级图像中显示的目标的视觉外观一起、在三维空间中所述街道级图像的目标的位置相关的信息。在所述客户端计算机显示所述新的街道级图像之前,所述客户端计算机的处理器确定用来显示的一系列中间图像。所述中间图像反映在当前街道级图像与下一个街道级图像之间的中间视点。例如,如图8中所反映,假设用户从在位置840处的街道级图像移动到在位置850 处的另一个街道级图像。所述处理器可以计算从其显示图像的多个中间位置。对用户显示的第一中间图像可以从在位置846处的有利位置生成,例如,到850处的下一个街道级图像的位置的道路的一部分。相对于位置847生成下一个中间图像,所述下一个中间图像更接近位置850。基于位置848和849生成第三中间图像和第四中间图像,其中位置849是在位置850之前示出的最后位置。在显示第一中间图像之前,对当前显示的街道级图像检索目标位置数据。可能已经用所述街道级图像检索了该目标位置数据。所述处理器分析所述街道级图像的单独部分,且使所述部分与图像数据和在所述图像中显示的目标的地理位置相关联。例如,如图10所示且在所述系统和方法的一个方面,将所述街道级图像(以粗线示出)有效地分成三角形(例如细线)。虽然所述系统和方法的一个方面使用非重叠的三角形,可以理解的是,也可以使用重叠或非重叠的其他形状。图11示出了该过程如何应用到单个区域。区域1120在街道级图像1110上限定了像素的三角形区域。按照在图像1110内的像素位置,所述区域的顶点被引用为(xl,yl)、 (x2, y2)和(x3, y3)。由于所述图像表示地理目标,所以所述像素表示图像中的地理目标的颜色和亮度。换言之,在(xl,yl)处的像素限定建筑物320的一部分的颜色和亮度,在(x2,y2)处的像素限定在建筑物320的另一部分的颜色和亮度,以及在(x3,y3)处的像素限定建筑物 322的一部分的颜色和亮度。,在区域1120内的其他像素类似地限定所述区域内的地理目标的外观。由于在区域1120中的每个像素与地理目标相关联,所以所述像素也与在三维空间中的地理位置相关联。图12图解说明了在所述区域中的像素之间的关系以及其与目标的地理位置的关系。在图像1110中的(xl,yl)处的像素1251显示建筑物320的一部分,即在地理位置 (Lat 1, Lonl, Altl)处的建筑物的表面的所述部分。类似地,在图像1110中的像素(x2, y2)和(x3, y3)分别与在建筑物的320和322的表面上的地理位置(Lat2,Lon2,Alt2)和 (Lat3, Lon3, Alt3)对应。这样,区域1120内的每个像素与图像像素(图11)和地理位置 (图12)相关联。图12也图解说明了当获得街道级图像1110时、所述摄像机的位置1210和方位 1215,以及中间位置(其与在图8引用的中间位置846对应)的地理位置1230和方位1235。可以从所述目标位置数据确定所述顶点的地理位置。例如,如果所述目标位置数据是由所述服务器预先计算且以结合图5所描述的格式传送,单独地基于所述顶点的像素位置,可以快速存取与所述顶点相关联的地理位置。对于所述图像的每个区域,例如图10中示出的每个三角形区域,重复这个过程。所述客户端计算机使用所述区域来渲染来自所述第一中间位置的新的街道级图像。例如,如图12所示,可以从中间位置1230的有利位置且在箭头1235的方向上显示区域1120。由于所述区域的3D位置(例如纬度/经度和海拔高度等)以及它的图像(例如在所述区域中包含的像素)是已知的,可以在2D图像中基于任何3D摄像机位置和角度使用本领域的普通技术人员已知的图像处理技术来渲染所述区域。例如,表示所述区域的数据的结构可以为多边形,其中每个多边形由所述街道级图像的各个部分进行纹理,且其中所述多边形的顶点的坐标与所述顶点的地理位置对应。可以使用标准的摄像机投影计算相对于3D坐标的屏幕的2D投影。此外,确认变换 (affirm transformation)可以用于纹理映射以近似3D空间中的透视变换(perspective transformation)。可以将所述纹理的多边形提供给随同指令一起支持3D渲染的浏览器插件,以显示来自摄像机位置的、具有与所述第一中间位置对应的坐标的多边形。然后,在客户端计算机上显示由此产生的中间影像。例如,现在从中间位置的有利位置看,可以在客户端计算机上的网络浏览器中显示所述街道级图像。图13显示了从中间位置的有利位置重绘所述区域的效果。街道级图像1110表示从服务器检索、显示给用户、并用于计算所述中间图像的原始图像。所述客户端计算机的处理器限定三角形区域1120,基于在区域1120中所包含的视觉信息确定所述区域的图像信息,且基于所述目标在三个顶点1301、1302和1303处的地理位置确定在3D空间中所述区域的位置。街道级图像1310是通过处理例如区域1120的区域所生成的中间图像。在这方面,三角形区域1320包含与三角形区域1120比较相同的图像数据。然而,新的视点(例如,在图8中示出的中间位置846)已经有效地拉伸所述区域且将所述区域移动到在新图像 1310(相对于旧图像1110)中的不同像素位置。也如图13所示,中间图像显示原始图像中的所述地理目标(例如建筑321)中的至少一个。然而,现在从不同有利位置显示所述地理目标。图14也说明了可以如何有效地基于新的有利位置在图像内拉伸且移动区域。三角形区域包括显示“商店(store)”的像素。所述区域在相对于街道级图像的边界的像素位置1410处。当从新的视点画所述三角形区域时,可以将所述区域拉伸并平移到与其原始像素位置1410不同的新的像素位置1420。在显示第一中间图像之后,也可以显示与第二个中间位置相关联的中间图像。在本发明的一个方面,可以使用相同区域来渲染第二中间图像和随后的中间图像。例如,已经使所述区域的结构为定位在3D空间内的已纹理的多边形,所述客户端计算机可以仅从与第二中间位置对应的有利位置重绘所述多边形。也可以按顺序显示对于所述中间位置计算的每个图像。这样,如图8所示,对于位置846-49按顺序生成且显示图像产生传达行进在位置840处捕获的街道级图像中表示的目标之中的外观的动画。可以尽可能快地产生这样的图像或者如所需要那样尽可能慢地生成且按顺序显示任何数量的中间图像。典型地,在快速连续显示许多图像而不是在它们之间长期暂停地显示一些图像时,该动画看起来更流畅。显示所述中间图像,直到达到最后的中间位置,该最后的中间位置典型地是最接近待显示的下一个街道级图像的地理位置的中间位置。在显示最后的中间位置之后,显示服务器检索的街道级图像。在本发明的一个方面,当服务器检索下一个街道级图像并将其传送到客户端计算机时,客户端计算机生成并显示所述中间图像。这具有当下载图像时给用户一些有趣的事观看的额外优点。此外,可以计算中间图像的数量以及在各个中间图像的显示之间的持续时间,以与下载并显示下一个街道级图像的估计时间相同。在所述系统和方法的一个方面且如图15所示,用户可以通过移动鼠标光标1520 来点击在由网络浏览器显示的街道级图像1540中的远方地理目标(例如建筑物1530)来改变所述视点的位置和方位。如在美国专利申请No. 12/038,325(并入此处以供参考)中公开的,可以从地图数据库检索最接近建筑物1530且朝向建筑物1530取向的街道级图像。图16说明了一个方面,藉此改变每一中间图像的视点位置和视点方位。图标1610 标识用于显示第一条街道级图像1540的位置和方位(例如,东北)。位置/方位1615表示基于用户选择建筑物1530从服务器中检索的街道级图像的位置和方位(例如,东南)。基于这些开始和结束的位置和方位,处理器可以计算中间位置/方位1611-14,以逐渐移动每个在位置和方位上更接近位置/方位1615的随后中间图像。这可能是对用户特别有利的, 因为在街道级图像中点击远处的建筑物并作为回应显示新的街道级图像,当摄像机的位置和/或角度显著改变时可能导致用户迷失方向。由图16所示的方面允许用户跟随位置和摄像机角度的变化,从而减轻了迷失方向感。在一个方面,当用户从分开较大距离的街道级图像转换时,使用按照上述的系统和方法。然而,当在较短距离例如邻近的街道级图像之间转换时,如在背景技术中描述的摇摄并缩放图像的系统和方法可能是足够的。上述可选实施例中的大部分不是相互排斥的,但可以各种组合实施,以实现独特的优点。由于在不脱离权利要求所限定的本发明的情况下可以利用以上讨论的这些变化和其他变化和所述特征的组合,所以应该通过说明的方式而不是通过权利要求限定的本发明的特征的方式理解所述实施例的上述描述。也应该理解的是,本发明的示例(以及用短语 “例如”、“包括”等等表达的从句)的提供不应理解为将本发明限制到特定示例;而是所述示例旨在仅仅说明许多可能的实施例中的一个。工业实用性本发明享有广泛的工业适用性,包括但不限于图像映射系统和装置以及用于在显示器上显示3-D图像的系统和装置。
权利要求
1.一种用于显示图像的方法,包括接收在第一位置处由摄像机捕获的表示地理目标的第一图像;接收与所述地理目标的地理位置相关联的目标位置数据;用处理器基于所述第一图像和所述目标位置数据确定多个区域,每个区域与所述第一图像的一部分和地理位置相关联;用处理器生成从第二位置的角度的、表示所述地理目标的第二图像,所述第二图像包括从所述第二位置的角度显示的多个区域;以及在电子显示器上显示所述第二图像。
2.根据权利要求1所述的方法,其中所述第一图像是街道级图像。
3.根据权利要求1所述的方法,其中所述目标位置数据表示在面对所述摄像机的所述目标的表面的所述地理位置与所述第一位置之间的距离。
4.根据权利要求1所述的方法,其中所述目标位置数据表示在三维空间中的所述地理目标的表面的一部分的地理位置。
5.根据权利要求4所述的方法,其中所述目标位置数据表示所述表面的所述部分的纬度、经度和海拔高度。
6.根据权利要求1所述的方法,进一步包括用处理器生成从第三位置的角度的、表示所述地理目标的第三图像,所述第三图像包括从所述第二位置的角度显示的多个区域;以及在显示第二图像之后在所述电子显示器上显示所述第三图像。
7.根据权利要求1所述的方法,其中所述第一图像包括多个像素且其中所述目标位置数据包含每个像素的值,所述值表示在所述像素处所显示的所述目标的所述部分的位置。
8.根据权利要求7所述的方法,其中所述值与所述目标的所述部分与所述第一位置之间的距离对应。
9.根据权利要求1所述的方法,其中所述区域包括由所述第一图像的部分进行纹理的多边形。
10.一种显示街道级图像的方法,包括接收在第一位置处由摄像机捕获的地理目标的第一街道级图像;接收相对于所述第一位置的、表示所述地理目标的表面的位置的深度数据;用处理器生成多个多边形,其中所述多边形的顶点与位置相关联,所述顶点的位置基于所述深度数据确定,且其中每个多边形进一步与所述第一街道级图像的一部分相关联; 以及在电子显示器上显示所述地理目标的第二街道级图像,这样所述街道级图像如同由所述第二位置处的相机所捕获那样呈现,所述第二街道级图像由处理器基于如下计算第二位置;多个所述多边形;和所述多边形相对于所述第二位置的位置。
11.根据权利要求10所述的方法,其中所述深度数据表示所述地理目标的部分与所述第一位置之间的距离。
12.根据权利要求10所述的方法,其中基于用户对所述第一图像的一部分的选择而确定所述第二位置。
13.一种系统,包括用户输入装置;存储器,所述存储器存储指令、表示由摄像机捕获的地理目标的街道级图像的二维图像数据、以及表示面对所述摄像机的所述目标的表面的三维位置的位置数据;处理器,所述处理器与所述用户输入装置通信以根据所述指令处理从所述用户输入装置接收的信息;以及显示器,所述显示器与所述处理器通信且显示从所述处理器接收的信息; 所述指令包括接收第二位置和第二方位的标识; 使所述图像数据的部分与不同区域相关联;确定与每个区域相关联的多个点的表面位置数据,其中点的表面位置数据表示在所述点处的所述图像中显示的所述目标的表面的所述部分的三维位置,且其中所述表面位置数据基于所述位置数据;基于所述区域的所述图像数据、所述区域的所述表面位置数据、所述第二位置和所述第二方位渲染二维第二图像;以及在所述显示器上显示所述第二图像。
14.根据权利要求13所述的系统,其中所述用户输入装置是鼠标。
15.根据权利要求14所述的系统,进一步包括网络、存储所述图像和位置数据的服务器,且其中所述存储器从所述服务器且在所述网络之上接收所述图像和数据。
16.一种显示图像的系统,包括在网络的第一节点上的第一计算机,所述第一计算机包括存储第一组指令的第一存储器、根据所述第一组指令处理数据的第一处理器、以及电子显示器;在网络的第二节点上的第二计算机,所述第二计算机包括存储第二组指令的第二存储器和根据所述第二组指令处理数据的第二处理器;所述第二组指令包括从所述第一计算机接收位置,将由摄像机捕获的地理目标的第一图像传送到所述第一计算机,以及传送限定在所述图像中表示的、所述目标的表面的地理位置的位置数据;所述第一组指令包括(a)接收所述第一图像;(b)接收所述位置数据;(c)接收第二位置;(d)对于所述图像的多个部分,使每个图像部分与图像部分位置相关联,其中基于由所述部分表示的表面的至少一个地理位置来计算所述图像部分位置;(e)从所述图像部分生成第二图像,其中基于当从所述第二位置的角度观察时、所述图像部分的外观来计算每个图像部分在所述第二图像内的位置;以及(f)显示所述第二图像。
17.一种提供在街道级图像之间的转换的方法,包括接收从第一地理位置获得的地理目标的第一街道级图像; 接收表示所述目标的表面的地理位置的目标位置数据; 请求第二街道级图像,所述第二街道级图像与第二地理位置相关联; 用处理器确定多个多边形,其中所述多边形的每个顶点与像素位置和地理位置相关联,所述像素位置表示所述顶点相对于所述第一图像的位置,每个顶点的地理位置表示在所述顶点的所述像素位置处显示的所述目标的所述部分的地理位置; 基于所述第一地理位置和所述第二地理位置确定第一中间地理位置;用处理器确定从所述第一中间地理位置的角度的、表示所述地理目标中的至少一个的第一中间图像,所述第一中间图像包括多个所述多边形,所述多边形基于每个多边形的顶点相对于所述第一中间地理位置的地理位置定位在所述第一中间图像之内;以及在显示器上显示所述第一中间图像。
18.根据权利要求17所述的方法,进一步包括确定第二中间地理位置,所述第二中间地理位置比所述第一中间位置更接近所述第二地理位置;用处理器确定从所述第二中间地理位置的角度的、表示所述地理目标中的至少一个的第二中间图像,所述第二中间图像包括多个所述多边形,所述多边形基于每个多边形的顶点相对于所述第二中间地理位置的地理位置定位在所述第二中间图像内; 在显示所述第一中间图像之后,在所述显示器上显示所述第二中间图像。
19.根据权利要求18所述的方法,进一步包括确定额外地理位置序列,在所述序列中每个额外地理位置比所述在前的额外地理位置更接近所述第二地理位置;用处理器确定从每个额外地理位置的角度的、表示所述地理目标中的至少一个的额外中间图像的序列,所述额外中间图像包括多个所述多边形,所述多个所述多边形基于每个多边形的顶点相对于所述额外中间图像的相关联的中间地理位置的地理位置定位在每个额外中间图像之内;以及在所述显示器上按顺序显示每个额外中间图像。
20.根据权利要求19所述的方法,其中所述图像的序列作为行进通过在所述第一街道级图像中表示的地理目标的场景的动画呈现。
21.根据权利要求17所述的方法,其中所述多边形包括三角形。
22.根据权利要求17所述的方法,其中当定位在所述第一街道级图像内时,所述多边形不重叠。
全文摘要
提供了显示在街道级图像之间的转换的系统和方法。在一个方面,所述系统和方法创建由来自2D街道级(1110)图像的图像进行纹理且与3D位置相关联的多个多边形(1120),所述3D位置与在所述图像中所包含的目标(320,322)的3D位置相对应。反过来,从不同角度渲染这些多边形(1120),以传达在原始图像中所包含的目标之中移动的外观。
文档编号G06K9/48GK102414697SQ201080017715
公开日2012年4月11日 申请日期2010年2月24日 优先权日2009年2月24日
发明者朱佳俊 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1