基于PTZ相机极向投影的铁路限界自动识别方法
2018-12-13郭保青马学志余祖俊王耀东朱力强
郭保青, 马学志, 余祖俊, 王耀东, 朱力强
(北京交通大学 机械与电子控制工程学院, 北京 100044)
近年来,我国高速铁路快速发展,对铁路防灾提出了更高的要求。快速准确地检测侵入铁路限界的异物对保障乘客生命财产安全、维护铁路安全运营具有重要意义。
目前铁路异物侵限检测方法主要分为接触式和非接触式[1],接触式一般在铁路沿线安装防护网,当有异物入侵破坏防护网时触发报警,这种方法只能检测较大的入侵异物且成本较高。非接触式一般采用红外、激光、微波和视频等手段检测入侵异物,其中视频方式由于具有安装简单、结果直观的特点应用最为广泛。文献[2]利用背景差分和矢量聚类的方法检测运动目标,采用光流法跟踪目标取得了较好效果。文献[3]提出一种基于超像素的铁路异物检测算法,使用SVM分类器极大地提高了系统性能。文献[4]也提出了一种基于前景目标统计分布的铁路背景更新算法,在提高运算速度的同时解决了传统背景更新算法难以解决的鬼影问题。为了提高处理速度,文献[5]尝试利用FPGA实现铁路目标运动趋势分析的异物监测方法。上述基于视频图像的铁路异物侵限监测研究都是基于定焦枪机实现的,需要事先在图像中划定1个固定的监测区域,当异物侵入该区域时进行报警。除了定焦枪机以外,铁路沿线及站内布置有大量的PTZ(Pan-Tilt-Zoom)相机,这些相机一旦姿态或焦距调整后,其监测区域也将发生变化,此时针对固定枪机的目标检测算法无法应用。如果能在PTZ相机参数变化后自动识别限界区域,针对固定枪机的检测算法就能应用于这类相机,因此研究针对PTZ相机的铁路限界自动识别方法具有重要意义。
针对PTZ相机,文献[6]利用图像局部特征建立了1种球面模型,利用支持向量机训练该模型,实现了该球面模型上运动目标的跟踪。文献[7-8]同时使用1个PTZ相机和1个固定相机进行运动目标跟踪,其中文献[7]通过同一采样点在2个相机中的相对位置关系确定2个相机光学中心的相对位置,得到2个相机视野的变换关系;文献[8]提出Tsai扩展算法完成相机标定,然后利用固定相机选择目标,利用PTZ相机跟踪运动目标。以上文献都是利用PTZ相机进行运动目标跟踪的方法,但并不关心目标与场景的位置关系。在铁路场景中,异物侵限检测的目的是判断是否有异物侵入了铁路限界。因此,对于铁路PTZ相机,参数变化后首先要确定新视野中铁路限界的位置。由于相机姿态和焦距调整比较频繁,不可能每次进行手动标记,必须研究自动识别铁路限界的方法。
铁路限界可以用钢轨位置定义,因此自动识别铁路限界的首要任务就是检测图像中的钢轨。针对钢轨的检测,文献[9]应用彩色图像中不同区域HSL色彩空间中色相值突变特征提取图像中的钢轨边界点,对多条不同等分线处钢轨边界点进行直线拟合确定钢轨边缘。文献[10]提出一种局部线性检测算子(LLPD)用于铁路场景钢轨检测,该算法将局部线型归纳为8个二值图像内的模板。文献[11]基于Radon变换推导出Bresenham算法用于直线钢轨检测。文献[12]提出一种基于Canny边缘检测和聚合接续法的钢轨边缘提取方案。文献[13]提出一种基于高速CCD相机移动立体成像技术进行铁路建筑物限界状态和相关参数快速自动检测的方法。以上算法都是针对白天光线充足条件下且钢轨占据相机视野绝大部分的简单场景下的钢轨检测,适用性较差。
本文主要解决PTZ相机姿态或焦距变化后在新视野中自动识别铁路限界的问题。通过匹配PTZ相机参数改变前后图像中对应的Sift特征点确定两幅图像间的变换矩阵,利用该矩阵将原图中的铁路限界区域转换到当前图像中。为了使变换后的图像在原图中都能找到匹配点,将相机的最大视野图像作为待匹配的原图;由于光线多变,不能保证在所有时刻的图像中都能找到原始图像中的匹配点,本文提出基于分时图像融合的匹配模板生成方法。模板中的铁路限界通过自动检测图像中的钢轨实现,为了增强图像中的钢轨特征,提出了基于小波分析、形态学分析与连通域标记的预处理方法;针对增强后的二值图,提出基于平行钢轨极向投影检测图像中钢轨的方法。由于每次都在当前图像中自动检测钢轨运算量较大,为了提高运算速度,相机姿态或焦距变化后采用Sift匹配算法确定当前图像与模板图像中的匹配点对,进而计算两幅图像间的变换矩阵,利用该矩阵将模板图像中的限界区域转换为当前图像中的限界区域。
1 基于分时图像融合的匹配模板生成
当PTZ相机姿态或焦距变化后,预设的限界区域将会发生变化,为了能够通过特征匹配在新图像中找到限界,需要维护一个匹配模板。由于天气、光照等自然因素的变化,相机不同时刻的图像质量差别较大,不能直接使用某幅图像作为匹配模板,需要找到1个在不同光照下都能使用的通用模板用于后续特征点对的匹配。
由于PTZ相机可通过软件设置“预置位”,当相机恢复至“预置位”时,相机的姿态和焦距即可自动恢复为原来的参数。本文利用PTZ相机的这一特点通过分时图像融合方法得到适合各种复杂光线条件的匹配模板,并定期进行更新,使模板包含更丰富的信息。
为了能在匹配模板中找到对应的匹配点,调整相机角度、焦距,使待检测的区域位于相机焦距最小时的视野中心位置,此时的相机视野最大,并将此时相机的姿态和焦距记录为“预置位”。为了使匹配模板能够适应复杂的光线条件,模板更新公式为
Mi(x,y)=αMi-1(x,y)+βIYi(x,y)
(1)
式中:Mi(x,y)为本次更新后的匹配模板;Mi-1(x,y)为上次更新后的匹配模板;IYi(x,y)为当前时刻相机恢复“预置位”处采集的图像;α、β为融合系数。为进一步增强模板的适用性,需根据实际光线条件对融合系数α、β进行调整。在白天光线充足条件下,适当增大α,减小β;在夜间光照不足时,适当减小α,增大β。根据现场实验经验,白天时取α=0.8,β=0.2,夜间时取α=0.6,β=0.4。
初始匹配模板M0的获得是通过分别在白天和夜间预置位采集1幅图像,并将采集到的两幅图像按照式(2)融合实现。
M0(x,y)=0.25Id(x,y)+0.75In(x,y)
(2)
式中:M0(x,y)为初始匹配模板;Id(x,y)为白天获取的预置位图像;In(x,y)为夜晚获取的预置位图像。利用白天和夜间图像按照1∶3的比例融合成的初始模板,见图1。
(a) 白天图像 (b) 夜天图像 (c) 初始模板图1 初始模板生成
获得初始模板后, PTZ相机每天0:00时刻和12:00时刻恢复预置位,分别获取1幅夜间和白天图像不断更新匹配模板,该模板图像包含了不同时段不同天气条件下的信息,具有更强的适应性。
2 基于小波与形态学的图像预处理
由于匹配模板中铁轨的位置是固定的,因此可以通过检测模板中的钢轨实现模板图像限界区域的自动识别。为了突出图像中的钢轨特征,需要对模板图像进行预处理操作。本文采用的预处理操作主要分为Haar小波分析、形态学断线重连和连通域标记初步确定钢轨3个步骤。
2.1 Haar小波分析
小波变换中,近似值是大的缩放因子产生的系数,表示信号的低频分量,细节值是小的缩放因子产生的系数,表示信号的高频分量。通过比较Biorthgonal、Symlets、Haar常用小波基的效果,Haar小波在运行速度和特征提取效果上都占优,因此本文使用Haar小波完成图像分析。
Haar基函数φ(x)定义为
(3)
Haar小波函数ψ(x)定义为
(4)
对1个包含4个像素的一维图像a([a(1)a(2)a(3)a(4)])进行Haar小波变换得到图像b,变换过程为
(5)
式中:[b(1)b(2)]是原图像的近似(低频)图,包含图像a的大部分能量,但是分辨率是原图像的一半,[b(3)b(4)]是原图像的细节(高频)图,能量很少。表1以[11 9 5 7]为例,展示了2次Haar小波变换的结果。
表1 Haar小波变换过程
从表1可以看出,每进行1次小波变换,分辨率减半,因此分辨率为1×4的图像最多只能进行2次小波变换。本文首先对原始图像逐行完成1次小波变换,再逐列完成1次小波变换,得到原图像的水平、竖直均近似(LL),水平近似、竖直细节(HL),水平细节、竖直近似(LH)和水平、竖直均细节(HH)4个分量图,原图分辨率为960×1 280,小波变换后各分量图分辨率为480×640。因为细节分量图能量很小,不利于直接观察,因此分别对HL、LH、HH 3个分量图做直方图均衡化,结果见图2。
(a) LL (b) HL
(c) LH (d) HH图2 Haar小波变换结果
图2(a)保留了原图的绝大部分能量,与原图非常相似,对LL分量图进行处理的意义不大。对比其他3个细节分量图,发现图2(b)在保留部分原图信息的基础上,钢轨特征比较突出,因此选用HL分量图进行后续操作。
利用Biorthgonal、Symlets、Haar小波基提取的HL分量图见图3,其中Haar小波保留的钢轨特征最完整、最突出;3种小波分析的运算时间见表2,由表2可见,Haar小波在运算时间和处理效果上都有一定的优势。
(a) Biorthgonal小波 (b) Symlets小波 (c) Haar小波 图3 不同小波分析结果
表2 不同小波基运算时间比较s
2.2 形态学闭运算断线重连
为方便后续处理,对HL分量图做二值化操作。观察发现,图像整体偏“白”,为了获得效果较好的二值化图像,需设定较大的二值化阈值,本文选定的二值化阈值为240,二值化操作原理为
(6)
式中:D(x,y)为二值化后点(x,y)处的像素值;HL(x,y)为HL分量图坐标(x,y)处灰度值。
二值化结果见图4(a)。由图4(a)可见,钢轨的某些部分存在“断裂”情况,这会对后期的钢轨检测带来严重影响。本文通过一次形态学闭运算解决二值图像中钢轨的“断裂”问题,完成断线重连。形态学闭运算是一种重要的形态运算,包括先膨胀后腐蚀两个过程。
膨胀是图像向外扩张的过程,可以用于桥接缝隙,填补物体中的细小空洞,而腐蚀则是向内收缩的过程,可以用于消除独立的点或小物体。定义集合A为一幅图像,S为进行形态学操作的结构元素,设其几何中心为S[o]。用S对A进行膨胀可以表示为A⊕S,其中⊕为膨胀算子。膨胀运算定义为
A⊕S={x|S[x],S[o]∩A≠∅}
(7)
式(7)表明膨胀过程就是将结构元素的中心S[o]与图像A进行与操作,若结果非空,此时结构元素所在区域即变为图像A中此处的目标区域,将结构元素S在图像A内平移,遍历整幅图像,S扫过的区域集合即为A中的目标区域。
用S对A进行腐蚀可以表示为AΘS,其中Θ为腐蚀算子。腐蚀运算定义如下
AΘS={o|S[o],S[x]⊆A}
(8)
式(8)表明腐蚀结果就是将S在A中平移,遍历整幅图像,当S完全被A包围时S的中心S[o]扫过的区域集合。
通过先膨胀后腐蚀的形态学闭运算,完成了目标中细小空洞的填充、相邻目标的连接和目标边缘的平滑,完成了二值图像中钢轨的断线重连,使钢轨特征更加突出,结果见图4(b)和图4(c)。
2.3 连通域标记初步筛选钢轨
形态学闭运算后的图4(c)中仍存在许多独立的“白点”,以及一片较大的白色区域,这些都会影响后期钢轨检测的效果。本文提出基于8邻域的连通域标记方法以降低上述影响。连通域标记就是将二值图像中彼此相邻(8邻域)的“白点”(像素值为1)标记为同一个目标的过程。
连通区域的标记示意见图5,过程为
图5 连通域标记示意
Step1扫描第1行,得到两个块[2,4]和[7,10],分别标记为1和2。
Step2扫描第2行,得到两个块[4,5]和[7],但是他们分别与上一行的两个块1、2的8邻域有重叠区域,所以将[4,5]标记为1,将[7]标记为2。
Step3扫描第3行,同样得到两个块[1,2]和[6,7],[1,2]与上一行被标记的块的8邻域均没有重叠区域,所以将其标记为一个新的块3,而[6,7]与上一行两个块的8邻域都有重叠,所以标记为两者中最小的标号,即1,块1、2实际为同一个块,所以将块1、2均标记为1,将3标记为2。
Step4遍历图像,直到所有值为1的像素均被标记完为止。
完成连通域标记后,二值图像被标记为许多不同的目标,统计各目标所包含的像素数。实验中发现,像素个数小于150的都是一些零散的噪声,而像素个数大于5 000的多为反光造成的大片白色区域,将这些确定不是钢轨的目标剔除能够很大程度上提高后期算法的检测精度,过程为
(9)
式中:i为被标记的第i个目标;S(i)为第i个目标包含的像素个数。
连通域标记后利用式(9)初步筛选前后的结果见图6,从图6中可以看出,经过上述预处理后钢轨特征更加突出,便于后期检测。
(a) 筛选前 (b) 筛选后图6 连通域标记处理结果
3 基于极向投影的钢轨检测方法
经过上述预处理后,图像中的钢轨特征已非常突出,但仍存在许多干扰噪声,准确地检测所有钢轨位置仍面临挑战。本文针对现实场景中直线钢轨平行的特点,提出利用Hough变换检测两条钢轨确定消隐点,进而利用极向投影检测其他钢轨位置的方法。
3.1 Hough变换确定平行钢轨消隐点
根据摄像机成像模型,经过透视投影成像后,空间相互平行的直线将在成像平面中相交于一点,称为消隐点。消隐点成像模型见图7,三维场景中的正方形棋盘格经过透视投影成像后在图像平面中,其中所有纵向直线相交于O1点,所有横向直线相交于O2点,这两个点分别为两束平行线的消隐点。由于铁路直线区段场景中所有钢轨都是平行的,利用透视投影关系可知,这些钢轨具有相同的消隐点,确定消隐点有助于钢轨的检测。
图7 消隐点成像模型
消隐点可以利用现实平行线束中任意两条平行线在图像中的交点确定,因此只要在铁路场景图像中检测出两条钢轨即可确定平行钢轨的消隐点。钢轨检测利用Hough变换实现,Hough变换是一种由二维空间到参数空间的映射,常用于图像空间中的直线特征检测。由于二维空间的某一点对应于参数空间的某条直线,二维空间的共线性对应于参数空间的共点性,因此可以通过对参数空间某个点对应的计数提取二维空间中的直线参数。本文中利用Hough变换检测图像中钢轨的结果,见图8。
图8 Hough变换检测结果
图8中检测结果并不理想,6条钢轨不能全部准确检测,同时还检测出了许多其他位置的直线,存在误检与漏检情况。由于直线铁路区段各股道的钢轨相互平行,表现在图像平面上即为各钢轨直线应相交于相同的消隐点。本文使用Hough变换检测直线特征最明显的两条直线确定钢轨消隐点,其位置通过求解两条钢轨直线方程的交点获得,见图9。
图9 获得消隐点
3.2 极向投影确定钢轨位置
由于实际场景中其他钢轨与检测出的两条钢轨相互平行,因此,图像中的其他钢轨也应通过该消隐点。本文提出的极向投影直线检测方法就是以消隐点为中心,沿各角度向消隐点做极向投影,统计各方向上白色像素点的个数。若某角度上存在一条钢轨直线,则该方向上的白色像素累加值必定是一个峰值。考虑到钢轨只存在于消隐点下方,为减小运算量,角度范围取(-180°,0°),步长为0.5°。
获取某方向像素累加值的关键是得到该方向的直线方程,过消隐点(x0,y0)且方向为θ的直线截距。
b=y0-tanθ·x0
(10)
则该直线可以表示为
y=tanθ·x+b=tanθ·(x-x0)+y0
(11)
式(11)为过消隐点(x0,y0)方向为θ的直线方程。考虑到像素彼此正交的排列方式,大部分像素点并不会恰好在直线上,实际以横坐标x为自变量,通过式(11)求得纵坐标y,对y四舍五入求整即可得到位于直线周围的像素点坐标,见图10。“∘”为消隐点,“×”为横坐标固定情况下直线周围的像素点,求该方向的极向投影即把图10中所有星号点的像素值相加。
图10 极向投影示意
以0.5°步长遍历消隐点(-180°,0°)范围内所有方向,极向投影累加公式为
(12)
式中:(x,y)为角度θ时由式(11)确定的像素坐标;g(x,y,θ)为对应像素点的数值。
图9的极向投影曲线见图11。由图11可见,极值点对应的角度上存在着直线,因为实际图像中存在6条钢轨,因此极向投影值最大的6个极值点即为图像中6条钢轨的位置,由极值点确定各钢轨的角度后,
图11 极向投影曲线
(a) 检测的钢轨 (b) 最外铡钢轨与限界区域图12 最终检测结果
利用式(11)即可求得所有钢轨直线方程,由此求得的6条钢轨的位置见图12(a),图12(b)中白色粗线是由最外侧两条钢轨向外平移一定距离确定的限界区域。
4 基于Sift特征匹配的限界识别方法
由于上述钢轨检测算法计算量较大,若每次相机姿态和焦距改变后均执行以上过程耗时较长,不利于实时检测。为此,本文仅在设备初始化时利用上述方法自动识别限界区域并标记关键点,当相机姿态或焦距改变后,通过Sift特征匹配方法将模板中的限界区域映射到新图像中。
应用特征匹配将匹配模板中的限界区域映射到新图像中的过程见图13。图13左部为匹配模板,模板中的限界区域用多边形ABCD表示;当相机的姿态和焦距发生变化后获取的新图像见图13右部。此时可以通过特征点匹配确定两幅图像之间的变换矩阵,进而将匹配模板中的限界区域映射到新图像中获取新的限界区域。假设匹配过程中找到了4对特征点对(1-1′, 2-2′, 3-3′, 4-4′),利用这4对特征点可以确定匹配模板与当前图像的坐标变换矩阵T,利用变换矩阵T将原图中限界区域的4个顶点ABCD变换到当前图像中得到A′B′C′D′,四边形A′B′C′D′与当前图像的交集即为当前图像中的限界区域,见图13右部中粗线框。
图13 限界区域标记示意
本文选用Sift算法完成模板图像与当前图像的特征匹配。首先分别检测两幅图像中的Sift特征点,在两幅图像的特征点中寻找到具有相同特征矢量的特征点作为匹配点对,剔除匹配点对中的误匹配点,根据匹配点对计算两幅图像间的仿射变换矩阵,再利用变换矩阵将匹配模板中的限界区域关键点映射到新图像中得到新图像中,对应的关键点坐标,进而在新图像中自动标记出新的限界区域。
Sift算法是将二维图像I在DoG(Difference-of-Gaussian)尺度空间中检测出的局部极值作为特征点,具有良好的独特性和稳定性。DoG算子生成过程为
D(x,y,σ)=
(G(x,y,kσ)-G(x,y,σ))I(x,y)=
L(x,y,kσ)-L(x,y,σ)
(13)
式中:D(x,y,σ)为DoG算子;I(x,y)为图像(x,y)处的像素值;L为尺度空间;G(x,y,kσ)、G(x,y,σ)分别为不同尺度空间下的二维高斯分布,表示为
(14)
式中:σ为高斯分布的均方差。
通过式(13)寻找图像中的极值点,以每个极值点为中心,提取其4×4邻域内每个点的8个方向的梯度方向,共128维信息作为其特征向量。如果两幅图像中某两个特征点的128维特征向量相似,这两个点便可判定为一组匹配点对。为保证结果的准确性,本文采用RANSAC方法剔除误匹配点对,剔除后匹配结果见图14。
图14 剔除误匹配点对
当两幅图像的正确匹配点数目不少于3对时,即可通过匹配点对的坐标求得两幅图像间的变换矩阵T,可计算出新图像中限界区域关键点的像素坐标。
(X,Y)=(X0,Y0)T
(15)
式中:(X,Y)为新图像中限界区域的坐标矩阵;(X0,Y0)为匹配模板中限界区域的坐标矩阵;T为通过Sift匹配点利用最小二乘法计算得到的变换矩阵。
不同时段和相机方位与焦距调整前后自动识别的限界区域见图15。匹配模板中利用钢轨极向投影自动识别的限界区域见图15(a),夜间场景的匹配结果见图15 (b),相机旋转后利用Sift匹配获取的限界见图15(c),相机焦距变化后利用Sift匹配获取的限界见图15(d)。从匹配结果可以看出,该方法不受光线条件的影响,当相机姿态或焦距变化后,均能在新图像中准确地标记出限界区域。
为了比较两种算法在运行时间上的差异,分别利用两种方法对20组相机姿态或焦距调整后的图像进行限界区域计算,两种方法的运行时间见表3。
(a) 模板限界 (b) 夜间识别的限界
(c) 相机旋转后的限界 (d) 焦距调整后的限界图15 Sift匹配结果
表3 算法运行时间s
实验结果表明,基于Sift匹配的限界识别方法相比基于图像预处理后进行极向投影的方法能将平均运行时间从7.093 s缩短到3.784 s,计算时间缩短47%,虽然3.78 s时间仍然较长,但由于该算法只在检测到相机姿态或焦距变化后进行,能够满足使用要求。
5 结束语
本文针对PTZ相机姿态和焦距变化后由于限界区域改变导致无法自动进行异物侵限判断的问题,提出一种基于平行钢轨极向投影的铁路限界区域自动识别方法。首先采用不同时段获取的相机最大场景图像经过分时图像融合获得匹配模板,然后应用Haar小波分析、形态学闭运算和连通域标记进行图像预处理,突出图像中的钢轨特征,进而利用Hough变换检测出特征最明显的两条钢轨获得平行钢轨消隐点,并利用通过消隐点的极向投影曲线峰值获取其他钢轨的准确位置。为了提高运算速度,当检测到相机参数变化后,采用Sift匹配算法获取匹配模板与新图像的变换矩阵T,并利用T矩阵将匹配模板图像中自动识别的限界区域映射到新图像中获得新的限界。铁路现场的实验表明,本文算法能够准确地识别PTZ相机姿态和焦距调整后新场景中的限界区域,对基于PTZ相机的铁路异物侵限研究具有重要参考价值。