一种基于双目视觉的建筑物测高方法及系统与流程

文档序号:30525933发布日期:2022-06-25 06:56阅读:565来源:国知局
一种基于双目视觉的建筑物测高方法及系统与流程

1.本发明涉及一种基于双目视觉的建筑物测高方法及系统,属于建筑物测高技术领域。


背景技术:

2.近年来,城市化发展非常迅速,高楼大厦拔地而起,测量楼层的高度和施工情况,对于监督施工进度,预防工程隐患起到很重要的作用。目前常见的建筑物测高技术为三角高程测量。三角高程测量是指通过观测两个控制点的水平距离和天顶距(或高度角)求定两点间高差的方法。这种观测方法简单,受地形条件限制小,是测定大地控制点高程的基本方法。但是观测边长、垂直角、仪器高和觇标高口的测量误差及大气垂直折光系数k的测定误差均会给三角高程测量成果带来误差。而且,这种测量方法没法达到实时监测的效果,需要很强的专业知识和专业人员来测算。这种费时且需要专业知识的工作完全可以被计算机和摄像头所取代。
3.通过使用双目立体视觉(binocular stereo vision)技术,楼层的高度和施工情况可以被准确而且实时的计算出来。双目立体视觉是机器视觉的一种重要形式,它是基于视差原理并利用成像设备从不同的位置获取被测物体的两幅图像,通过计算图像对应点间的位置偏差,来获取物体三维几何信息的方法。双目视觉能够通过立体匹配算法获取待检测目标的几何信息,再通过一些简单的标定数据,就可以推测出目标的位置以及大小。立体视觉匹配算法最常见是特征点的匹配,通过计算和匹配左右两张图像的特征点,从而获取目标物体在三维世界中的物理信息。
4.专利1公开基于单张数码相片的建筑物高度测量方法,申请号为cn200910028010.5,具体公开:基于单张数码相片,在直接线性变化公式的基础上,采用逆向直接线性变换计算方法实现建筑物高度的测量。
5.专利2公开基于双目视觉技术的人体身高测量方法及其装置,公开号为cn 104173054 a,公开通过获取双目相机拍摄场景图像中人体目标的人头尖点的图像坐标和与之对应的深度信息,计算人头尖点在摄像机坐标系下的世界坐标,进而测量人体目标的身高。要求被测人员配合度低,只需站到相机拍摄的可测量范围内便可完成身高测量,可以同时测量场景中多个人体目标的身高,且测量精度较高。
6.专利3公开基于双目视觉的车用公路限高架高度测量方法及装置,公开号为cn 110207650 a,提供一种基于双目视觉的车用公路限高架高度测量方法及测量装置,以两台广角摄像机,采用双目视觉系统对限高横梁目标进行实时摄像、跟踪和定位,在车辆行驶过程中采用双目视觉系统对限高架的离车距离和相对车顶高度进行实时测量,为驾驶员提供预警信息。
7.论文1,作者为赵宏,张志华,胡新宇,等.涉及《北京一号卫星影像的建筑阴影测量建筑高度的应用研究》[j].北京测绘,2010,000(002):38-40.通过卫星照片,通过建筑物阴影、太阳高度角等信息计算建筑高度。


技术实现要素:

[0008]
本发明的目的在于,克服现有技术存在的技术缺陷,解决上述技术问题,提出一种基于双目视觉的建筑物测高方法及系统。
[0009]
本发明具体采用如下技术方案:一种基于双目视觉的建筑物测高方法,包括如下步骤:
[0010]
步骤ss1:双目相机标定步骤,包括:matlab toolbox自带的stereocalibration工具通过不同角度观测同一个已知大小的国际象棋棋盘格来计算出相机基本矩阵f,本质矩阵e以及相机的畸变参数d,对双目相机进行极线校正;
[0011]
步骤ss2:执行双目相机现场搭建;
[0012]
步骤ss3:计算视差图步骤,包括基于sgm算法计算的视差图;
[0013]
步骤ss4:根据所述视差图计算v-视差图计算楼层高度,包括:通过在v-视差图上找几何对应关系,定位出大楼在图像中的位置,并且算出大楼的垂直高度。
[0014]
作为一种较佳的实施例,所述步骤ss1中的极线校正具体包括:采用bouguet极线校正方法,将双目相机的成像平面各旋转一半,使得左右图像重投影造成的误差最小,左右视图的共同面积最大。
[0015]
作为一种较佳的实施例,所述步骤ss2具体包括:在现场搭建双目摄像头,摄像头水平放置,正对着要检测的楼层,从左右两个镜头内能都能确保看见楼层,并且图像底部要能看清一部分地面。
[0016]
作为一种较佳的实施例,所述步骤ss3具体包括:通过sgm稠密的匹配算法算出视差图,在一个标定过的双目系统中,p(x,y,z)表示世界坐标系的任意一点,(u
l
,v
l
)和(ur,vr)分别表示点p在两个相机的像平面坐标系上的投影;(u0,v0)是相机的光学中心在像平面上的投影;f表示相机的焦距;b表示双目视觉里的基线长度;视差值δ计算公式见公式(1),
[0017][0018]
左相机上任意一点(u
l
,v
l
)通过sgm稠密算法找到对应的右相机上的点(ur,vr),然后通过公式(1)计算出点(u
l
,v
l
)的视差值δ,每个点都计算出视差值之后就构成一张视差图。
[0019]
作为一种较佳的实施例,所述步骤ss4具体包括:
[0020]
步骤ss41:视差图按照水平方向投影求得v-视差图;所述v-视差值的横向坐标表示视差值δ,纵坐标表示图像高度;
[0021]
步骤ss42:在v-视差图上计算获得大楼的最低点p1(d

,y1)和大楼的最高点p2(d

,y2),因为要测高的大楼都是垂直于地面,所以大楼在v-视差图上构成一条垂直线段lb;而道路是水平的,在v-视差图上反应的是一条斜率《0的倾斜线lr,lb是一段在v-视差图上垂直于x轴并且δ取值一样或者接近的一组点,通过最小二乘拟合的方式把lb拟合出来;拟合出来的lb的上顶点是点p1(d

,y1);选择对噪声点鲁棒的ransac方法拟合lr;最后,求出lb和lr的交点就是p2(d

,y2),然后计算|y
2-y1|,|y
2-y1|是楼层在像平面上坐标系的高度差;
[0022]
步骤ss43:联合公式(1)和公式(2)得到公式(3),算出世界坐标系的点坐标p(x,y,z)和图像中的点(u,v)的转换方程,
[0023][0024]
其中,dx,dy,f是相机焦距相关参数,(u0,v0)表示相平面坐标原点;(u,v)为在图像上拍摄到的大楼坐标,(x,y,z,1)为其对应的物理世界坐标;最左边(u,v,1)表示像平面上的点坐标,1是齐次表示,r表示相机的旋转矩阵,t表示平移矩阵;
[0025][0026]
将z带入x和y得到x和y的新的表达方式,见公式(4),
[0027][0028]
其中,fx=f/dxfy=f/dy,f是相机的焦距,dx是每个像素在横轴的实际尺寸,dy是每个像素在竖轴的实际尺寸,这三个参数通过相机标定获得;将点p1和p2带入公式(4),得到最终楼层高度的计算公式(5),
[0029][0030]
其中,b表示左右两个相机的基线长度,是固定值,单位是m,因此目标的实际高度h通过公式(5)计算得到。
[0031]
本发明还提出一种基于双目视觉的建筑物测高系统,包括:
[0032]
双目相机标定模块,具体执行:matlab toolbox自带的stereocalibration工具通过不同角度观测同一个已知大小的国际象棋棋盘格来计算出相机基本矩阵f,本质矩阵e以及相机的畸变参数d,对双目相机进行极线校正;
[0033]
相机搭建模块,具体执行:双目相机现场搭建;
[0034]
视差图生成模块,具体执行:基于sgm算法计算视差图;
[0035]
高度计算模块,具体执行:根据所述视差图计算v-视差图计算楼层高度,包括:通过在v-视差图上找几何对应关系,定位出大楼在图像中的位置,并且算出大楼的垂直高度。
[0036]
作为一种较佳的实施例,所述双目相机标定模块中的极线校正具体包括:采用bouguet极线校正方法,将双目相机的成像平面各旋转一半,使得左右图像重投影造成的误
差最小,左右视图的共同面积最大。
[0037]
作为一种较佳的实施例,所述相机搭建模块具体执行:在现场搭建双目摄像头,摄像头水平放置,正对着要检测的楼层,从左右两个镜头内能都能确保看见楼层,并且图像底部要能看清一部分地面。
[0038]
作为一种较佳的实施例,所述视差图生成模块具体执行:通过sgm这种稠密的匹配算法生成视差图。
[0039]
作为一种较佳的实施例,所述高度计算模块具体执行:
[0040]
将视差图按照水平方向投影求得v-视差图;所述v-视差值的横向坐标表示视差值δ,纵坐标表示图像高度;在v-视差图上计算获得大楼的最低点p1(d

,y1)和大楼的最高点p2(d

,y2);大楼在v-视差图上构成一条垂直线段lb;而道路是水平的,在v-视差图上反应的是一条斜率《0的倾斜线lr;lb是一段在v-视差图上垂直于x轴并且δ取值一样或者接近的一组点,通过最小二乘拟合的方式把lb拟合出来;拟合出来的lb的上顶点就是点p1(d

,y1);选择对噪声点更加鲁棒的ransac方法拟合lr;最后,求出lb和lr的交点就是p2(d

,y2),然后计算|y
2-y1|;
[0041]
利用公式(6)计算出楼层的实际高度h,
[0042][0043]
其中,fy=f/dy,f是相机的焦距,dy是每个像素在竖轴的实际尺寸,b表示左右两个相机的基线长度,单位是m。
[0044]
本发明所达到的有益效果:1,本发明的一种基于双目视觉的建筑物测高方法及系统求得物体高度像素坐标更灵活,测量人员不需要专业的测高知识,只需要摆放双目摄像头就能够测量任意楼层的高度。2,本发明通过双目视觉系统,能够实时监测楼层的高度,例如监测一个工地的大楼施工进度,不需要人到现场勘测测量,而且接入网络之后,该系统能够每天把测量结果自动上报。3本发明提出的测高方法比单目相机测高方法更为精准。
附图说明
[0045]
图1是本发明的双目视觉系统坐标系的示意图。
[0046]
图2是本发明的双目相机摆放位置示意图。
[0047]
图3是本发明的一种基于双目视觉的建筑物测高方法的流程图。
[0048]
图4是本发明的v-视差图示意图,其中,像素图(左)和v-视差图(右)。
具体实施方式
[0049]
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0050]
在单目视觉中,相机拍摄得到的图片是由一个个像素点排列得到的。每一个像素点是物理世界的点在相平面上的投影。假设物理世界中的某个点的坐标是(x,y,z,1),一般用齐次坐标系表示,当第四个坐标等于0的时候,表示无穷远处的点。这个坐标是个绝对值,如果设定了某个原点,那么任何物理世界的坐标都是固定的。相机坐标系在图像上的投影,构成了一副图像,这个图像坐标构成的坐标系是相平面坐标系。公式(1)中最左边(u,v,1)
表示像平面上的点坐标,1是齐次表示,这个公式表示将世界坐标系的一个点转化为相平面坐标系下的点,其中dy,dy和f是相机焦距相关参数,(u0,v0)表示相平面坐标原点,r表示相机的旋转矩阵,t表示平移矩阵。
[0051][0052]
最终,双目匹配检测楼高方法是通过在图像上拍摄到的大楼坐标(u,v),找到它对应的物理世界坐标(x,y,z),从而可以计算它的上下高度差。
[0053]
本发明提出的方法实施的步骤是:1)双目相机标定,2)双目相现场摆放,3)使用sgm算法计算视差图,4)由视差图计算v-视差图,通过在v-视差图上找几何对应关系,定位出大楼在图像中的位置,并且算出大楼的垂直高度。流程示意图见图3。
[0054]
2.1双目相机标定
[0055]
双目相机标定的目的是计算出相机基本矩阵fundamental matrix(f矩阵),本质矩阵essential matrix(e矩阵)以及相机的畸变参数d。f矩阵就包含公式(1)中的dx,du,f。e矩阵包含了公式(1)中的r和t。f矩阵的计算和单目相机标定一致,这里不做过多说明。e矩阵的计算精度将直接影响到视差图的计算,对大楼测高有着重要的影响。本发明用matlab toolbox自带的stereo calibration工具可以通过不同角度观测同一个已知大小的国际象棋棋盘格来确定f,e,d。
[0056]
另外,双目相机标定的过程和单目相机标定有所不同,区别在于在计算完成r、t矩阵之后最后还需要做一下左右相机的rectify,也就是做极线校正。校正好处是之后做立体匹配搜索的时候,只需要在同高度(对极线)附近进行搜索,大幅提升效率。最常见的校正方法就是bouguet极线校正方法,简单表述是左右相机成像平面各旋转一半,使得左右图像重投影造成的误差最小,左右视图的共同面积最大。校正后,可以根据需要对图像进行裁剪,需重新选择一个图像中心和图像边缘,从而让左、右叠加部分最大。校正前,相机的光心不是相互平行的,校正后,极点在无穷远处,两个相机的光轴平行,同一个物理目标点在左右两个相平面上的投影高度一致。
[0057]
2.2相机的搭建
[0058]
相机搭建参考图2列出的示意图,双目相机平视楼层,底部要能看见地面,为了能够看清更高的楼层,本发明允许相机距离楼层的水平距离在50m到100m之间。
[0059]
2.3计算视差图
[0060]
在一个标定过的立体视觉坐标系里面,左右两个相机的像平面在物理空间里属于同一个平面。图1给出了双目视觉系统的结构,(u
l
,v
l
)和(ur,vr)分别属于左右两个相机的像平面坐标系。(u0,v0)是相机的光学中心在像平面上的投影。f表示相机的焦距,b表示双目视觉里的基线长度(两个相机光学中心o
l
和or之间的距离)。(x,y,z)表示世界坐标系,在本发明中,相机平视楼层,因此x轴与水平方向平行,y轴与竖直方向平行,z轴垂直于相机平面。点o是世界坐标系的原点,它分布在两个相机中心连线的中点处。在这个系统里,世界坐标系下的某个点p(x,y,z)分别投影到两个像平面上得到各自的像平面坐标,计算公式如
下,
[0061][0062]
其中,u
l
和ur的连线称为对极线,点(u
l
,v
l
)的视差值δ可以通过公式(2)计算得到。图像上的每一个像素都对应有自己的视差值,这样就构成了一张视差图。每个视差值和距离成反比,距离越近,视差越大。本发明提出的测高算法对于计算时间没有太多要求,因为楼层高度在一定时间内不会变化,因此采用精度更高的基于稠密匹配的视差图计算方法sgm,这样能够得到更为准确的距离信息。
[0063]
2.4使用双目测建筑物高度
[0064]
通过步骤2.3计算得到视差图之后,本发明需要开始计算目标建筑物的高度。在视差图中,颜色的深浅表示这个像素点的视差大小,颜色越深,其对应的像素值强度越大,目标距离相机的实际物理距离越近。视差图按照水平方向投影可以求得v-视差图,如图4右所示。v-视差值的横向坐标表示视差值δ(由小到大),纵坐标表示图像高度,其中颜色的深浅表示像素点的个数,颜色越深,表示共享这个视差值的像素点越多,也就是这些像素点对应的物理目标距离相机的实际距离是相同的。因为检测的目标基本垂直于地面,所以在v-视差图上反应的就是一条垂直线段(如图4右中p1到p2的线段),设为lb;而道路是水平的,在v-视差图上反应的是一条(斜率《0)倾斜线(如图4右中的斜线),设为lr。
[0065]
下面,本发明通过公式推导的过程展现如何计算实际楼层的高度h。
[0066]
步骤1:首先需要计算获得p1(d

,y1)和p2(d

,y2),如图4右。lb是一段在v-视差图上垂直于x轴并且δ取值一样或者接近的一组点,很容易通过最小二乘拟合的方式把lb拟合出来。lb的上顶点就是点p1(d

,y1)。而由于地面区域在本发明设计的系统中左右图像占比很小,本发明选择对噪声点更加鲁棒的ransac方法拟合lr。最后,求出lb和lr的交点就是p2(d

,y2),然后计算|y
2-y1|,|y
2-y1|是楼层在像平面上坐标系的高度差。最终本发明要计算的是转化之后在世界坐标系下的高度差|y
2-y1|。
[0067]
步骤2:联合公式(1)和公式(2),可以算出世界坐标系的点坐标(x,y,z):
[0068][0069]
将z带入x和y,得到x和y新的表达式,见公式(4),
[0070][0071]
其中fx=f/dxfy=f/dy,f是相机的焦距,dx是每个像素在横轴的实际尺寸,dy是每个像素在竖轴的实际尺寸,这三个参数可以通过相机标定获得。
[0072]
将点p1和p2带入公式(4),得到最终楼层的计算公式(5),
[0073][0074]
其中,b表示左右两个相机的基线长度,是固定值,单位是m。因此目标的实际高度h可以通过公式(5)计算得到。
[0075]
从公式(5)可以看出,双目相机性能越高,视差值d

计算的越精准,高度测量也就越精准。在具体实施过程中,如果只用一个标定过的双目相机测高,不涉及多相机或者相机运动,可以直接把相机坐标系设为世界坐标系原点,从而避免了计算外参矩阵。认为是单位矩阵,e是一个3x3的单位矩阵。
[0076]
双目相机的内部参数主要包括镜头焦距、镜头畸变系数、象元尺寸及主点坐标,外部参数包括相机的旋转矩阵和平移向量,以及双目相机安装高度。双目匹配是指建立相同场景下的目标点在不同视角下两幅投影图像目标点的对准。双目视觉测量方法具有效率高、精度合适、系统结构简单、成本低等优点,非常适合于制造现场的在线、非接触产品检测和质量控制。对运动物体测量中,由于图像获取是在瞬间完成的,因此,双目视觉方法是一种更有效的测量方法。
[0077]
具体实施结构图如图2,其中双目摄像机水平拍摄,相机可以布置在待测建筑附近的高处,也可以采用搭载双目摄像头的无人机进行拍摄。
[0078]
本发明的流程图如图3,具体流程如下四个步骤。
[0079]
步骤(1)、双目相机标定:选择一款双目相机,准备一个10格(宽)*8格(高),每个格子60mm宽的国际象棋棋盘格,用一张大纸打印出来,紧密贴到一张平坦的木板上,将双目相机水平放置到一定高度的桌子上固定好,并开始拍摄。拍摄过程中不断变换木板的位置(上,下,左,右),并保证木板上的棋盘格始终出现在两个镜头内,一共拍摄不同角度,不同距离的图片大约100张,两个镜头加起来就是200张。用matlab内置的stereo calibration工具箱,对这200张图像进行标定,得到相机的基本标定参数:f,fx,fy,b,d,并对左右两个镜头做rectify。
[0080]
步骤(2)、搭建双目摄像头:根据图2所示的示意图在现场搭建双目摄像头,摄像头水平放置,正对着要检测的楼层,从左右两个镜头内能都能确保看见楼层,并且图像底部要能看清一部分地面,相机距离大楼的水平距离最多在100m以内,如果双目相机的分辨率足够高,这个距离可以适当加长。如果实际搭设摄像头有困难,也可以控制一台搭载了双目摄像头的无人机进行悬停测高,测量过程中,无人机要悬停静止,拍摄视角尽量平行于地面。
[0081]
步骤(3)、计算视差图:在双目视觉系统中,其基本原理图参照图1。本发明通过全图匹配算法sgm计算视差图,得到公式(2)中的δ。
[0082]
步骤(4)、计算楼层高度:步骤(3)得到视差图之后,由视差图在水平方向上的投影可求得v-视差图,如图4右。v-视差值的横向坐标表示视差值δ(由小到大),纵坐标表示图像高度,其中颜色的深浅表示像素点的个数,颜色越深,表示共享这个视差值的像素点越多。
[0083]
首先需要在v-视差图上计算获得p1(d

,y1)和p2(d

,y2),如图4右。lb是一段在v-视差图上垂直于x轴,取值一样或者接近的一组点,很容易通过最小二乘拟合的方式把lb拟合出来,lb的上顶点就是点p1(d

,y1)。而由于地面区域在本发明设计的系统中左右图像占比都比较小,本发明选择对噪声点更加鲁棒的ransac方法拟合lr。求出lb和lr的交点就是p2(d

,y2)。最后,将p1和p2带入公式(5)计算楼层的实际高度h。
[0084]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0085]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0086]
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1