| 近景摄影测量控制点快速自动识别与定位 |
2. 精密工程与工业测量国家测绘地理信息局重点实验室, 湖北 武汉, 430079
2. Key Laboratory of Precise Engineering and Industry, National Administration of Surveying, Mapping and Geoinformation, Wuhan 430079, China
近景摄影测量是摄影测量的一个分支, 是指利用非量测相机等影像采集工具近距离拍摄待测物体[1], 通过对所拍摄影像进行处理, 提取有用信息, 以达到获取待测物体的几何结构、位置、性质、相互关系等信息的目的[2]。近景摄影测量作为摄影测量的一个分支, 具有获取数据瞬时性、摄影设备非量测性、外业作业时间短[3]等优点, 目前已经成为广泛使用的测量方式。
近景摄影测量数据处理流程主要包括非量测相机的标定、特征匹配完成内定向、引入控制点完成绝对定向以及平差解算点位坐标, 其中在引入控制点时, 控制点的识别和定位需要消耗大量的人力和时间, 目前主流的一些近景摄影测量软件, 如Lensphoto多基线摄影测量系统[4], MetrolDMP数字工业近景摄影测量系统[5]等, 都需要人工来进行控制点的识别与定位工作, 难以实现数据的自动化处理。因此, 本文提出了一种利用特征提取算法和相关匹配算法结合的方法来实现控制点的自动识别与定位。
1 关键技术研究 1.1 模板相关匹配法模板匹配方法是通过在输入图像上滑动图像块对实际的图像块和输入图像进行匹配[6], 其主要的方法有平差匹配法、乘法相关匹配法以及本文所使用的相关匹配法等。
相关匹配法是将模板对其均值的相对值与图像对其均值的相对值进行匹配, 用I来表示输入图像, T表示模板, R为结果。1表示完美匹配, -1表示最糟糕的匹配, 0表示没有任何相关性[7]。其基本原理为:
| $ \begin{array}{l} {R_C}\left( {x,y} \right) = \\ \sum\limits_{x',y'} {{{\left[ {T'\left( {x^{\prime} ,y^{\prime} } \right) \times I^{\prime} \left( {x + x^{\prime} ,y + y^{\prime} } \right)} \right]}^2}} {\rm{ }}\\ T'\left( {x^{\prime} ,y^{\prime} } \right) = T\left( {x^{\prime} ,y^{\prime} } \right) - \frac{1}{{\left( {w \times h} \right)\sum\limits_{x'',y''} {T\left( {x'',y''} \right)} }}\\ I'\left( {x + x^{\prime} ,y + y^{\prime} } \right) = \\ I\left( {x + x^{\prime} ,y + y^{\prime} } \right) - \frac{1}{{\left( {w \times h} \right)\sum\limits_{x'',y''} {I(x + x'',y + y'')} }} \end{array} $ | (1) |
采用OpenCV与VS2010平台对该算法进行了实现, 如图 1所示。正下方窗口内为查找的模板, 大图中用绿色框标出的部分即为查找到的与模板相关的图形区域。图中采用的是单模板多匹配, 即在一幅图像中匹配多个与模板相似的区域, 这与摄影测量过程中一幅影像中包含多个控制点的实际符合。
![]() |
| 图 1 相关匹配的实现 Fig.1 Realization of the Correlation Matching |
1.2 Harris角点探测
提取点特征的算子称为兴趣算子, 即运用某种算法从图像中提取我们所感兴趣的点[8]。计算机视觉领域传统的、知名的提取算子有Moravec算子、Forstner算子, 随着计算机视觉应用领域的拓广, 出现了比较经典的Harris算子[9]。
Harris特征点提取是提取物体上的角点作为特征点[10]。如果给出一个窗口在图像上移动, 在平坦区域, 图像比较均匀, 没有什么明显的特征信息, 窗口在各个方向移动, 窗口内的没有变化; 在边缘上, 窗口沿着边缘的方向上移动, 窗口里的内容没有变化, 而在其他方向上移动时, 会出现变化; 在角点处, 无论窗口在任何方向上移动, 窗口内的内容都会出现变化。Harris角点提取正是利用了这个直观的物理现象, 笔者在提取图像时, 给出一个合适的窗口, 通过窗口扫描图像, 根据窗口在各个方向上的变化, 判断是否为角点[11]。
Harris角点探测的基本步骤如下。
1) 确定一个N×N大小的窗口(常用3像素×3像素), 对窗口内的像素点进行描述, 即求每一个像素点在x和y方向的梯度。
2) 利用高斯卷积模板对梯度值进行高斯滤波。
3) 利用卷积后的x和y方向梯度所组成的矩阵M来计算兴趣值, 其中det是矩阵的行列式, tr为矩阵的迹, k为常数, 一般默认为0.04[12], M为:
| $ \begin{array}{l} \mathit{\boldsymbol{M = }}\left[ {\begin{array}{*{20}{c}} {I_x^2}&{{I_x} \times {I_y}}\\ {{I_x} \times {I_y}}&{I_y^2} \end{array}} \right]\\ R = {\rm{det}}\left( \mathit{\boldsymbol{M}} \right) - k \times {\rm{t}}{{\rm{r}}^2}\left( \mathit{\boldsymbol{M}} \right) \end{array} $ | (2) |
4) 选取兴趣值的局部极值点, 根据具体要求选出兴趣值最大的若干个点作为最后的结果。
Harris具有较好的数学描述, 且计算简单, 能较好地提取角点, 提取的点特征均匀而且合理[13]。并且具有抗旋转的能力, 无论图像怎样旋转, 角点的特征性没有变化。因此, 本文选用Harris方法做角点的提取。
采用OpenCV与VS2010平台对该算法进行了实现, 如图 2所示。红色即为利用Harris算子探测到的角点。
![]() |
| 图 2 Harris角点提取的实现 Fig.2 Harris Feature Corner Extraction |
1.3 控制点中心的确定
由于摄影测量的照片拍摄过程中, 随着拍摄角度的不同, 控制点标志影像会发生仿射变换和投影变形, 要对控制点进行识别, 就需要设计一种具有抗仿射变换特征的控制点。除抗放射特性外, 控制点还应具有目标清晰、便于全站仪观测和影像识别等特征。根据需要, 将控制点设计成如图 3的形式。
![]() |
| 图 3 控制点中心的确定 Fig.3 Control Point Center Determine |
无论从何种角度拍摄, 该控制点中心O周围一定可以找到4个角点, 依次编号为J1、J2、J3和J4, 且J1、O、J3位于一条直线上, J2、O、J4位于一条直线上。
识别控制点的流程为:①将图像灰度化并做图像增强处理; ②将任意一个Harris点设定为中心O, 将其周围任意一个特征点点设为角点J1, 计算O到该J1的距离, 设为S, 在0.7~1.3倍S范围内寻找是否有特征点, 将找到的点组成一个待判断的集合C; ③分别计算集合内的每个点到O和J1连线的距离, 将距离小于0.4倍S的点组成集合Q, 其余点不予考虑; ④分别判断集合Q内的点与J1连线的线段中点和标志中心O的关系, 若距离小于0.06倍的S, 则认为它是与J1相对的另一个角点J2; ⑤若没有找到与J1对应的J2, 则将下一个点设为J1; ⑥当一个Harris点周边有两对J1J2时, 则认为该点是一个控制点的中心点; ⑦重复步骤②~步骤⑥, 寻找其他的中心点。
图 3中, 红色为利用Harris算子探测到的角点。蓝色圆圈内为确定的控制点中心。
2 实验与分析 2.1 实验方案将以上3种算法进行集成, 实现对控制点的自动识别。①利用相关匹配算法将位于影像中的控制点识别出来, 大致确定控制点所在的范围, 可以剔除不需要Harris探测的地方, 提高控制点的自动查找效率。②对确定出的控制点所在位置附近K×K区域使用Harris算法, 提取出该区域内的角点, 并用红色标注。边长K取搜索模板边长的1.5倍。③利用控制点的几何特征, 对Harris算法所确定的角点逐个判断其是否为控制点中心。若为中心, 用蓝色圈出。
采用OpenCV与VS2010平台对该算法进行了实现, 基本流程图如图 4所示。
![]() |
| 图 4 控制点自动识别流程图 Fig.4 Flow Chart of Automatic Recognition |
2.2 实验结果
实验共拍摄3组数据, 控制点个数分别为5个、10个和15个。
5个点的实验结果如图 5所示, 图中共有5个控制点, 利用相关匹配算法成功找到5个控制点的大致位置, 如图 1所示。Harris算法仅对模板匹配出的位置进行角点提取, 对于控制点所在区域内的控制点角点探测成功率为100%。控制点中心确定的算法成功探测到4个控制点的中心。
![]() |
| 图 5 5个点的识别 Fig.5 Identify of 5 Points |
图 6为用Harris方法对整张影像做提取, 可以看到, 不使用模板匹配时, Harris算法会提取出整张影像的特征点。对于特征点众多的摄影测量影像, 在识别控制点时将整张影像进行特征探测, 会降低控制点识别的速度, 因此, 利用模板匹配来预先获得控制点的大概位置是必要的。
![]() |
| 图 6 整张影像角点探测 Fig.6 Whole Picture Corner Extraction |
10个点的实验结果如图 7所示, 利用模板匹配算法成功找到10个控制点的大致位置, Harris算法仅对模板匹配出的位置进行角点提取, 将控制点所在区域内的控制点角点全部成功找出。控制点中心确定的算法成功探测到8个控制点的中心。
![]() |
| 图 7 10个点的识别 Fig.7 Identify of 10 Points |
15个点的实验结果如图 8所示, 利用模板匹配算法成功找到15个控制点的大致位置, Harris算法仅对模板匹配出的位置进行角点提取, 将控制点所在区域内的控制点角点全部成功找出。控制点中心确定的算法成功探测到15个控制点的中心。
![]() |
| 图 8 15个点的识别 Fig.8 Identify of 15 Points |
实验结果如表 1所示。从表 1中可以看出, 该方法的稳定性比较好, 从5个点到15个点成功率均在80%以上。而利用模板匹配来优化Harris算子的方法成功率更是高达100%, 大大提高了人工寻找控制点的效率。
| 表 1 实验结果统计 Tab.1 Experimental Results and Statistics |
![]() |
3 结束语
本文采用计算机视觉方法, 将模板匹配和Harris角点提取算法结合, 利用摄影测量控制点的几何特征, 提出了一种快速识别和自动定位控制点的方法。并通过实验初步实现了该方法。
本方法主要的误差来源为控制点的中心定位方法, 只要设计的控制点具有足够强的几何特征, 并且找到抗干扰的控制点中心提取算法, 则可以在模板匹配和Harris特征点提取的基础上, 实现完全脱离人工的控制点识别与定位。
| [1] |
冯文灏. 近景摄影测量[M]. 武汉: 武汉大学出版社, 2002.
|
| [2] |
王之卓. 摄影测量原理[M]. 武汉: 武汉大学出版社, 2007.
|
| [3] |
孟丽媛.合肥地铁二号线基坑变形监测中近景摄影测量非量测数码相机检校及控制点布设的研究[D].合肥: 合肥工业大学, 2015
|
| [4] |
张剑清, 胡安文. 多基线摄影测量前方交会方法及精度分析[J]. 武汉大学学报·信息科学版, 2007, 32(10): 847-851. |
| [5] |
冯其强.数字工业摄影测量技术研究与实践[D].郑州: 信息工程大学, 2010
|
| [6] |
付亚光.基于机器视觉的样本页检测分级系统研究[D].大连: 大连海事大学, 2015
|
| [7] |
车娟娟.基于双目立体视觉的图像面积测量算法与技术[D].南京: 南京邮电大学, 2014
|
| [8] |
陈淑荞.数字图像特征点提取及匹配的研究[D].西安: 西安科技大学, 2009
|
| [9] |
谢东海, 詹总谦, 江万寿. 改进Harris算子用于点特征的精确定位[J]. 测绘信息与工程, 2003, 28(2): 22-23. DOI:10.3969/j.issn.1007-3817.2003.02.010 |
| [10] |
胡小平, 廖海洋. 数字摄影测量中特征点的提取方法研究[J]. 光学精密工程, 2005(S1): 236-239. |
| [11] |
赵启.图像匹配算法研究[D].西安: 西安电子科技大学, 2013
|
| [12] |
张祖勋, 张剑清. 数字摄影测量学[M]. 武汉: 武汉大学出版社, 2002.
|
| [13] |
张春森. 基于点特征匹配的SUSAN, Harris算子比较[J]. 西安科技大学学报, 2007, 27(4): 608-611. DOI:10.3969/j.issn.1672-9315.2007.04.016 |
2018, Vol. 43











