一种建筑物高度计算方法和装置
技术领域
本发明涉及电子地图显示领域,尤其涉及一种建筑物高度计算方法和装置。
背景技术
随着智能终端设备日益普及,以及自驾出行探亲、探险或者旅游的用户越来越多,用户对于电子地图的使用越来越频繁,利用电子地图可以方便用户对目标位置进行定位;还可以通过在电子地图上输入关键字,实现查找自己感兴趣的商店或者旅游景点等的相关信息。
现有技术中,由于智能终端屏幕大小是固定的,致使电子地图中的显示区域的大小是一定的。因此电子地图需要选出比较优质的兴趣点(POI)优先展示给用户,选取优质兴趣点的原则如下:高层建筑的重要性大于低矮建筑的重要性。因此,建筑物的高度成为衡量一个建筑物是否能作为优质兴趣点的关键因素。
目前建筑物高度的数据通常是由人工采集的方法获取的。然而利用人工采集获取建筑物高度的方法存在效率低下,且成本高的问题。
发明内容
有鉴于此,本发明实施例提供了一种建筑物高度计算方法和装置,以使得更加快速地获取建筑物的高度,并且在提高获取效率的同时降低了获取所需要的成本。
一方面,本发明实施例提供了一种建筑物高度计算方法,该方法包括:
获取包括建筑物图像的原始图片;
将所述原始图片投影到设定球体的表面,以形成投影图片;
对所述投影图片中的建筑物图像进行边缘检测,获取所述建筑物图像的像素高度;
根据所述建筑物的像素高度,确定在所述设定球体上进行投影的投影角;
根据所述投影角和所述原始图片中采集位置与建筑物之间的距离,确定所述建筑物高度。
另一方面,本发明实施例还提供了一种建筑物高度计算装置,该装置包括:
原始图片获取模块,用于获取包括建筑物图像的原始图片;
投影模块,用于将所述原始图片投影到设定球体的表面,以形成投影图片;
边缘检测模块,用于对所述投影图片中的建筑物图像进行边缘检测,获取所述建筑物图像的像素高度;
投影角确定模块,用于根据所述建筑物的像素高度,确定在所述设定球体上进行投影的投影角;
建筑物高度确定模块,用于根据所述投影角和所述原始图片中采集位置与建筑物之间的距离,确定所述建筑物高度。
本发明实施例的技术方案,根据包括建筑物图像的原始图片确定建筑物的投影角,以及根据该投影角和原始图片中采集位置与建筑物之间的距离,确定建筑物的高度,能够基于图片自动、快速地获得建筑物的高度,无需人工参与,在提高获取效率的同时降低了获取所需要的成本。
附图说明
图1A为本发明实施例一提供的一种建筑物高度计算方法的流程图。
图1B为本发明实施例所适用的二维条件下的全景图片。
图1C为本发明实施例所适用的将设定球体中的球心O设定为拍摄视口的原理图。
图1D为本发明实施例所适用的映射到拍摄视口后消除广角畸变的图片。
图1E为本发明实施例所适用的对投影图片进行边缘检测得到的图片。
图1F为本发明实施例所适用的根据投影角θ和原始图片中采集位置与建筑物之间的距离L确定建筑物高度H的原理图。
图2A为本发明实施例二提供的一种建筑物高度计算方法的流程图。
图2B为本发明实施例所适用的将投影图片进行颜色像素分离,提取蓝色通道图片的蓝色像素作为处理像素得到的图片。
图2C为本发明实施例所适用的采用高斯算法对投影图片进行滤波去噪后得到的图片。
图3为本发明实施例三提供的一种建筑物高度计算方法的流程图。
图4A为本发明实施例四提供的一种建筑物高度计算装置的结构示意图。
图4B为本发明实施例四提供的一种建筑物高度分析装置中的边缘检测模块的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
实施例一
图1A为本发明实施例一提供的一种建筑物高度计算方法的流程图。该方法可以由建筑物高度计算装置执行,其中该装置可以由软件和/或硬件实现,并一般集成在具备图片处理能力的服务器中。
参见图1A,本实施例的方法包括如下操作:
S101、获取包括建筑物图像的原始图片。
上述操作中,原始图片可以是通过至少一个相机对建筑物拍摄的照片,当通过一个相机对建筑物进行拍摄时,则将拍摄得到的二维条件下的照片作为原始图片;或者,当通过两个以上的相机从不同角度分别对建筑物进行拍摄时,则首先需要将拍摄得到的包含建筑物图像的一系列照片进行处理拼合,以得到可以显示建筑物自底至顶的全景图片,并将该二维条件下的全景图片作为原始图片。
优选的,本实施例中的所述原始图片可以是自下向上对建筑物进行拍摄的全景图片。
S102、将所述原始图片投影到设定球体的表面,以形成投影图片。
将上述二维条件下的原始图片作为纹理贴附在预先设定的球体三维立体模型的表面,以形成投影图片。
在此,需要进一步说明的是,二维条件下原始图片中的图像存在由广角畸变引起的扭曲变形。如图1B所示,二维条件下的全景图片中的图像由于广角畸变现象的存在,导致全景图片中的图像发生了严重的扭曲变形。另外,由于原始图片中广角畸变现象的存在,导致无法直接利用该原始图片计算得到建筑物的实际高度。那么,在利用该原始图片计算得到建筑物的实际高度之前,首先需要将该原始图片作为纹理贴附在设定的球体模型的表面形成投影图片,以方便在后续操作中消除原始图片中图像的广角畸变造成的扭曲变形。
优选的,在将所述原始图片投影到设定球体的表面之前,需要根据原始图片的采集位置与建筑物之间的距离,确定原始图片在所述设定球体上的投影仰角,其中该距离与投影仰角之间的关系为:距离越远,所需要的投影仰角就越大。并且,在距离一定的情况下,投影仰角的大小一般根据经验值在允许范围内灵活选择。确定投影仰角的主要作用是消除在拍摄中造成的原始图片的下边缘并不一定是建筑物图像的下边缘的问题,即原始图片中建筑物图像的下边缘与原始图片的下边缘不一致,以保证在将原始图片投影到设定球体表面形成投影图片时,投影图片中建筑物图像的下边缘与投影图片的下边缘基本保持一致。例如,当图像采集车与建筑物之间的距离已知时,自采集车开始有下至上拍摄建筑物的全景图片,则全景图片中建筑物与图片下边缘之间的距离可大致估算获知,据此确定投影仰角,可以通过投影去除建筑物与图片下边缘之间的距离。虽然无法十分精确,但此误差对于整个建筑物的高度而言,在可接受的范围之内。
进一步的,在将所述原始图片投影到设定球体的表面,形成投影图片之后,将所述设定球体的球心设定为拍摄视口,并将所述投影图片映射到该拍摄视口中,以便消除二维原始图片的广角畸变。如图1C所示,将二维条件下的全景图片作为纹理贴附球体三维模型的表面,形成投影图片之后,将该球体的球心点O作为拍摄视口,并将该投影图片映射到该视口中。图1D所示为映射后的消除广角畸变的投影图片。
视口即相当于相机成像的拍摄窗口,因此上述操作相当于采用相机的成像原理,将投影图片进行拍摄来消除广角畸变。
S103、对所述投影图片中的建筑物图像进行边缘检测,获取所述建筑物图像的像素高度。
上述操作中,对所述投影图片中的建筑物图像进行边缘检测,是为了确定建筑物图像的顶部边界,进一步确定建筑物图像的顶部边界至投影图片下边缘的距离,并将该距离作为建筑物图像的像素高度,用于后续进一步分析建筑物的实际高度。
所述边缘检测指的是检测投影图片中的图像边缘亮度值的不连续性,而这种不连续性一般是通过求解图片中图像的一阶导数或二阶导数来确定的,所述图像的一阶导数指的是图像的像素梯度。也就是说,可以通过求解图像一阶导数的方法对图像边缘进行检测;或者,还可以通过求解图像二阶导数的方法对图像边缘进行检测,其中,利用图像一阶导数的方法对图像边缘进行检测也就是指利用图像的像素梯度对图像边缘进行检测。
优选的,在本实施例中,利用图像的像素梯度,实现对投影图片中建筑物图像的边缘进行检测,其具体包括:
计算所述投影图片中建筑物图像的像素梯度;根据该像素梯度,从所述投影图片中心点上方自上而下查找建筑物图像的上边缘,并将该上边缘作为所述建筑物图像的顶部边界;计算所述顶部边界与所述投影图片的下边缘之间的距离,并将该距离作为建筑物图像的像素高度。如图1E所示为通过计算建筑物图像的像素梯度,确定建筑物图像顶部边界的示意图。
需要说明的是,在检测建筑物图像的上边缘时,并不限定只能按照从投影图片的中心点自上而下进行查找这种方式,还可以是从投影图片的某一边侧自上而下或者自下而上的进行查找。但是一般情况下,拍摄包含建筑物图像的原始图片时,无论从哪个角度进行拍摄,建筑物会被优选安排在原始图片的中间位置,以尽可能保证原始图片中建筑物图像的完整性。因此,根据计算得到的建筑物图像的像素梯度,通常是从投影图片的中心点上方自上而下查到建筑物图像的上边缘,这样做的好处是更有针对性的对某些区域进行查找,减少查找需要的时间,从而达到提高获取建筑物高度的效率。
在查找到建筑物图像的上边缘后,将该上边缘确定为建筑物图像的顶部边界,从而利用该顶部边界与投影图片的下边缘之间的距离确定建筑物图像的像素高度。例如设定该顶部边界在三维球模型视口中的坐标为(x1,y1,z1),投影图片中与该顶部边界x轴坐标和y轴坐标相同的下边缘的坐标为(x1,y1,z2),则|z1-z2|表示的就是建筑物的像素高度。
进一步的,在计算所述顶部边界与所述投影图片的下边缘之间的距离,并将该距离作为建筑物的像素高度之前,优选的,还可以基于所述顶部边界,判定所述顶部边界设定区域的颜色是否相同,若所述设定区域的颜色不同,则丢弃所述投影图片,若所述设定区域的颜色相同,则继续执行后续操作。
一般情况下,建筑物图像的顶部会有一片连续的固定颜色的区域,通过判断该顶部边界的设定区域的颜色是否相同,达到检测是否存在树叶或者灯柱等小物体对建筑物顶部边界的确定造成影响。
S104、根据所述建筑物的像素高度,确定在所述设定球体上进行投影的投影角。
根据建筑物图像的像素高度占据投影图片的比例,以及投影图片在球体中投影时对应的投影角,即可确定在球体模型中建筑物图像的投影角θ。典型的,设置视口时,可确定视口对应的投影角度,进而可通过建筑物像素高度占整个图片高度的比例,计算确定在视口的投影角占据的比例,进而计算出建筑物图像对应的投影角。
S105、根据所述投影角和所述原始图片中采集位置与建筑物之间的距离,确定所述建筑物高度。
如图1F所示,在球体模型中建筑物图像的投影角θ确定的情况下,根据原始图片采集位置与建筑物之间的距离L,在建筑物高度H、距离L构成的直角三角形中,利用正切函数便可确定建筑物的高度H,即H=L*tanθ。
本实施例的技术方案,通过获取包括建筑物图像的原始图片,将该原始图片投影到设定的球体模型上形成投影图片,利用建筑物图像的边缘检测获取其像素高度,进而再利用该像素高度确定在球体模型上进行投影时的投影角,最终利用得到的投影角和原始图片中采集位置与建筑物之间的距离计算得到建筑物的高度。该方法能够基于图片自动、快速地获取建筑物的高度,无需人工参与,在提高获取效率的同时降低了获取所需要的成本。
实施例二
图2A为本发明实施例二提供的一种建筑物高度计算方法的流程图,所述建筑物高度的分析方法以上述实施例一为基础,进一步的,可在确定建筑物的像素高度之前,进行图片的预处理,排除图片中的干扰物,提高计算的准确性。预处理的方式可以有多种,可以单独采用,也可以结合采用。
在对所述投影图片中的建筑物图像进行边缘检测之前,还包括:
S201、提取所述投影图片顶部设定区域的不同颜色像素的灰度值。
像素通常采用红、绿、蓝的三原色,因此可提取这三种不用颜色像素各自的灰度值。
S202、根据不同颜色像素的灰度值,计算蓝色像素与其他颜色像素之间的灰度值之差。
投影图片中除了包含建筑物的图像之外,还可能包括建筑物周围的其他图像。例如在投影图片中,建筑物图像的上方可能是蓝天,但也有可能是其他干扰建筑物的图像,例如立交桥等。如果是立交桥等其他大型的人工建筑物,则可能影响目标建筑物的高度估算,所以背景为蓝天的图片更能准确估算建筑物高度。因此,计算蓝色像素与其他颜色像素之间的灰度值之差,用于识别蓝天。
所述投影图片的顶部设定区域指的是可能包含蓝天图像或者其他干扰建筑物图像的区域,该区域可根据经验设定,过大会导致计算量增大,过小则有可能无法达到区别蓝天的目的。
具体的,将上述蓝色像素的灰度值与其他颜色像素的灰度值进行比对计算,得出蓝色像素与其他颜色像素之间的灰度值之差,并在后续操作中利用该灰度值之差进一步判定该投影图片是否符合要求。如果该投影图片符合要求,那么蓝色像素的灰度值应该明显大于其他颜色像素的灰度值,并且蓝色像素的灰度值和其他颜色像素的灰度值应大于零而不接近于零。
S203、判断该灰度值之差是否大于设定阈值,如果是,则执行步骤S204-S205,否则执行步骤S206。
所述设定阈值指的是预先设定的用于判定投影图片是否符合要求的灰度值。之所以设定该设定阈值,是为了准确判定投影图片是否要求。
需要说明的是,可以根据灰度值之差是否大于零来判定投影图片是否符合要求,如果该投影图片符合要求,那么投影图片的顶部区域应该是蓝天的图像,此时,蓝色像素的灰度值要明显大于其他颜色像素的灰度值,即灰度值之差大于零。但是,需要注意的是,当蓝色像素的灰度值和其他颜色像素的灰度值虽然存在,但是各个像素的灰度值之间的差别很小,此时灰度值之差接近于零,将导致在后续操作中不能准确地确定建筑物图像的顶部边界,此时的投影图片是不符合要求的。因此,在本实施例中,优选的,预先确定一设定阈值,通过判定灰度值之差是否大于设定阈值,来准确地确定投影图片是否符合要求。
S204、对所述投影图片进行颜色像素分离,并提取其中的蓝色像素作为投影图片的处理像素。
当检测的所述灰度值之差大于设定阈值时,则对所述投影图片进行颜色像素分离,分离后得到三基色图片,即蓝色通道图片、红色通道图片和绿色通道图片,并提取其中的蓝色通道图片的蓝色像素作为处理像素,用于消除云朵、降水等自然现象的干扰。另外,该操作同时还能够调整投影图片的大小,便于后续的计算和操作。如图2B所示为对蓝色通道图片进行处理,消除云朵、降水等自然现象的干扰之后的图片。
S205、将所述投影图片进行模糊处理,以实现对所述投影图片的滤波去噪。
在图像的成像、传输和转换过程中,由于受到各种随机的噪声的影响,例如,鸟类、高压线等细小物体的影响,使得图片变得粗糙、质量低下,严重时甚至导致图像中的主要特征被淹没。为了减弱噪声、还原真实的图像,就需要对图像进行滤波去噪。对图像进行滤波降噪的方法有很多,例如线性滤波算法、非线性滤波算法或者维纳滤波算法,其中线性滤波算法中的高斯算法最为常用。在本实施例中,优选的,采用高斯算法对所述投影图片进行模糊处理以实现滤波降噪,以消除在形成全景图片时鸟类、高压线等细小物品对图片质量造成的影响。如图2C所示为本实施例通过高斯算法对投影图片进行滤波去噪之后得到的图片。
S206、丢弃该投影图片,并停止本次的识别操作。
当检测的所述灰度值之差小于设定阈值时,则确定识别到所述投影图片的上方有干扰建筑物,例如投影图片的上方存在桥梁等干扰建筑物;或者,确定识别到的所述投影图片中的建筑物图像拍摄不完整。从而导致无法在后续操作中准确地检测到建筑物图像的上边缘,也就无法进一步确定建筑物图像的顶部边界,导致无法确定建筑物的像素高度。此时将直接丢弃该投影图片,停止本次的识别操作。
本实施例的技术方案,通过对投影图片的顶部设定区域的不同颜色像素的灰度值进行比对计算,得到蓝色像素与其他颜色像素之间的灰度值之差,利用该灰度值之差进一步判定投影图片是否符合要求,符合要求则对该投影图片进行后续的操作,否则将直接丢弃该投影图片。该方法在对投影图片中的建筑物图像进行边缘检测之前,先利用不同颜色像素的灰度值判定该投影图片是否符合要求,进而只对符合要求的投影图片进行边缘检测,以使得后续操作更有针对性,进一步提高了获取建筑物高度的效率。
实施例三
图3为本发明实施例提供的一种建筑物高度计算方法的流程图。本实施例以上述各实施例为基础,提供一优选实施例。
参见图3,本实施例的方法包括如下操作:
S301、获取包括建筑物图像的原始图片。
S302、根据所述原始图片的采集位置与所述建筑物之间的距离,确定所述原始图片在所述设定球体上的投影仰角。
S303、将所述原始图片作为纹理贴附在设定球体的表面,以形成投影图片。
S304、将所述设定球体的球心设定为拍摄视口,并将所述投影图片映射到所述投影视口中,以消除所述全景图片的广角畸变。
S305、提取所述投影图片顶部设定区域的不同颜色像素的灰度值。
S306、根据不同颜色像素的灰度值,计算蓝色像素与其他颜色像素之间的灰度值之差。
S307、判断所述灰度值之差是否大于设定阈值,若是,则执行步骤S308-S312,否则执行步骤S316。
S308、对所述投影图片进行颜色像素分离,并提取其中的蓝色像素作为投影图片的处理像素。
S309、将所述投影图片进行模糊处理,以实现对所述投影图片滤波去噪。
S310、计算所述投影图片中的建筑物图像的像素梯度。
S311、根据所述像素梯度,从所述投影图片中心点上方自上而下查找建筑物图像的上边缘,并将该上边缘作为所述建筑物图像的顶部边界。
S312、基于所述顶部边界,判定所述顶部边界设定区域的颜色是否相同,若是,则执行步骤S313-S315,否则执行步骤S316。
S313、计算所述顶部边界与所述投影图片的下边缘之间的距离,并将该距离作为所述建筑物的像素高度。
S314、根据所述建筑物的像素高度,确定在所述设定球体上进行投影的投影角。
S315、根据所述投影角和所述原始图片中采集位置与建筑物之间的距离,确定所述建筑物高度。
S316、丢弃所述投影图片。
本优选实施例通过获取包括建筑物图像的原始图片,将该原始图片作为纹理贴附在设定的球体模型上形成投影图片,并设定球体模型的球心为视口,将该投影图片映射到该视口中,从而确定建筑物图像的顶部边界,利用该顶部边界确定建筑物图像的像素高度,进而再利用该像素高度确定在球体模型上进行投影时的投影角,最终利用得到的投影角和原始图片中采集位置与建筑物之间的距离计算得到建筑物的高度。该方法能够基于图片自动、快速地获取建筑物的高度,无需人工参与,在提高获取效率的同时降低了获取所需要的成本。
另外,一方面,在确定建筑物图像的像素高度之前,提取建筑物图像不同颜色像素的灰度值,并利用蓝色像素与其他颜色像素之间的灰度值之差,判定投影图片是否符合要求,不符合要求则丢弃该投影图片;另一方面,在确定建筑物图像的像素高度之前,判定建筑物图像的顶部边界设定区域的颜色是否符合要求,不符合要求则丢弃该投影图片。该方法进一步优化为只对符合要求的投影图片进行边缘检测,以使得处理更有针对性,进一步提高了获取建筑物高度的效率。
实施例四
图4A为本发明实施例四提供的一种建筑物高度计算装置的结构示意图。
参见图4A,该实施例的装置具体包括:原始图片获取模块41、投影模块42、边缘检测模块43、投影角确定模块44和建筑物高度确定模块45。
其中,所述原始图片获取模块41,用于获取包括建筑物图像的原始图片;
投影模块42,用于将所述原始图片投影到设定球体的表面,以形成投影图片;
边缘检测模块43,用于对所述投影图片中的建筑物图像进行边缘检测,获取所述建筑物图像的像素高度;
投影角确定模块44,用于根据所述建筑物的像素高度,确定在所述设定球体上进行投影的投影角;
建筑物高度确定模块45,用于根据所述投影角和所述原始图片中采集位置与建筑物之间的距离,确定所述建筑物高度。
在上述方案的基础上,所述装置还包括:
视口设定模块46,用于将所述原始图片投影到设定球体的表面,形成投影图片之后,将所述设定球体的球心设定为拍摄视口。
映射模块47,用于将所述投影图片映射到所述投影视口中,以消除所述全景图片的广角畸变。
投影仰角确定模块48,用于将所述原始图片投影到设定球体的表面,形成投影图片之前,根据所述原始图片的采集位置与所述建筑物之间的距离,确定所述原始图片在所述设定球体上的投影仰角。
灰度值提取模块49,用于对所述投影图片中的建筑物图像进行边缘检测之前,提取所述投影图片顶部设定区域的不同颜色像素的灰度值;
灰度值之差计算模块410,用于根据不同颜色像素的灰度值,计算蓝色像素与其他颜色像素之间的灰度值之差;
第一判定模块411,用于判定所述灰度值之差是否大于设定阈值;
颜色像素分离模块412,用于当所述灰度值之差大于设定阈值时,对所述投影图片进行颜色像素分离,并提取其中的蓝色像素作为投影图片的处理像素;
模糊处理模块413,用于将所述投影图片进行模糊处理,以实现对所述投影图片滤波去噪。
优选的,如图4B所示,上述边缘检测模块43具体包括:
像素梯度计算单元431,用于计算所述投影图片中的建筑物图像的像素梯度;
顶部边界确定单元432,用于根据像素梯度,从所述投影图片中心点上方自上而下查找建筑物图像的上边缘,并将该上边缘作为所述建筑物图像的顶部边界;
像素高度计算单元433,用于计算所述顶部边界与所述投影图片的下边缘之间的距离,并将该距离作为所述建筑物的像素高度。
进一步的,该装置的边缘检测模块43还包括:
第二判定单元434,用于计算所述顶部边界与所述投影图片的下边缘之间的距离,并将该距离作为所述建筑物的像素高度之前,基于所述顶部边界,判定所述顶部边界设定区域的颜色是否相同。
丢弃单元435,用于当所述设定区域的颜色不同时,丢弃所述投影图片。
本实施例的技术方案提供的建筑物高度计算的装置,其中利用边缘检测模块43对建筑物图像进行边缘检测,获取建筑物图像的像素高度,利用投影角确定模块44根据建筑物图像的像素高度,确定在设定球体上进行投影的投影角,利用建筑物高度确定模块45根据投影角和原始图片的采集位置与建筑物之间的距离,最终确定建筑物的高度。该装置能够基于图片自动、快速地获取建筑物的高度,而无需人工参与;并在提高获取效率的同时降低了获取所需要的成本。
另外,还利用第一判定模块411来判定投影图片顶部设定区域不同颜色像素的灰度值之差是否符合要求,不符合要求则丢弃该投影图片;利用第二判定单元434来判定投影图片中建筑物图像的顶部边界设定区域的颜色是否相同,不符合要求则丢弃该投影图片。该装置进一步优化为只对符合要求的投影图片进行边缘检测,以使得处理更有针对性,进一步提高了获取建筑物高度的效率。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。