何景晖,敖银辉,赵伟良
(广东工业大学机电工程学院,广州510006)
光缆交接箱是用于光缆接入网中主干光缆与配线光缆交接处的端口设备,简称光交箱,通常安装在户外。目前主要的前端维护方式是技术人员定期外出巡检,排查故障端口以及用表格记录每个端口的状态。由于光交箱大体安装在街道,内部布线杂乱,端口数量大,给维护工作带来很大困难。使用移动设备对光缆交接箱拍照,然后利用数字图像识别技术分析箱体上的端口状态,可以大大减化任务、降低成本、提高准确性。在图像中定位并识别端口属于计算机视觉中的目标检测任务。传统目标检测方法[1-3]首先在给定的图像上生成一批候选区域,然后对这些区域手工定义提取特征,最后采用模板匹配或者用分类器对特征向量进行分类。该类方法存在区域选择策略没有针对性、手工设计的特征对于多样性的变化没有很好的鲁棒性等问题。现代目标检测方法主要利用卷积神经网络(CNN)自动提取特征能力,将目标定位与分类作为回归任务,依赖于高性能的计算硬件来完成。其中具有代表性的二阶网络[4-6]与一阶网络[7-9],在具有GPU 配置的电脑端下,对常规尺寸的目标可以保持较高的检测精度和较快的检测速度,但在无GPU 条件下,对较小尺寸的目标,往往并不能快速检测出所有目标。工作场景下拍摄的光交箱图像以及局部放大图如图1 所示。光交箱的端口分布密度大,属于小目标,仅用传统或者深度学习目标检测方法难以满足端口检测实际工程应用要求。鉴于此,结合传统与现代检测方法,设计一种保证速度与精度的端口检测方案,流程如图2 所示。新方案首先拍照获取图像,根据透视变换原理将所采集的光缆交接箱的箱体图像矫正为正视图,然后对矫正后的图像进行分析,利用端口特征与矩形阵列分布的特性有效定位端口,最后提取每个端口的梯度直方图与颜色作为样本特征去训练支持向量机。为进一步提高精度,最后搭建基于卷积神经网络的分类器对支持向量机未能识别的端口作二次判断。
图1 光交箱实物图
图2 检测流程图
光交箱图像常因在不同视角与视场下拍摄导致图像的透视畸变或倾斜而干扰端口的提取,需要在分割端口前合理地矫正图像。在图像处理中利用透视变换可以将像中呈现为斜线的目标转换成直线, 原理是通过两个视平面的变换关系实现互相转换。设 u、vv为平面 α 上的像素点,x、y 为平面 β 上的像素点,这两个平面之间的像素变换公式为[10-11]:
其中a, b, c, d, e, f, m, l 是待求的透视变换系数,至少由八个对应的已知量求解。
由于光缆交接箱内部的箱体物理形状为矩形,所以在正视图中箱体的四条边依旧互相垂直。利用与正视图下箱体各边之间的垂直关系,在未矫正的图像中选取箱体的四个顶点坐标A、B、C、D, 然后设由这四个原顶点围成四边形的最小外接矩形在正视图下箱体四顶点坐标为 A、B、C、D。将 A、B、C、D、A、B、C、D 八个坐标点代入式(1)可解得透视变换矩阵,最后该矩阵可将倾斜或畸变的光缆交接箱图片转换成正视图,处理效果如图3 所示。
图3 光缆交接箱图像裁剪与矫正
经过矫正后的图像,端口呈矩形阵列分布,有利于后续的分割与识别。端口包括红帽端口、白帽端口、插线端口、损坏端口四种,如图4 所示。除了非端口(背景)和损坏端口外,箱体其他端口的共同形状特征为圆形。
图4 端口样本实物图
利用霍夫梯度法[12]可检测到大多数的圆形端口。为了避免引入检测出假圆(非端口),在检测圆形端口时霍夫梯度检测法的阈值不得设置过低,但这也导致了未能检测出所有的圆形端口。针对此问题,基于端口阵列分布的条件(横向12 个),在此以图像右上角建立直角坐标系,设(xij,yij)为第i 行j 列每个霍夫检测后圆的圆心,每一行圆的数量为pi,每一列圆的数量为qj。经过每行圆心的直线y=Lirow与每列圆心的直线x=Ljcol可由下式计算:
线Lirow与Ljcol实质上是将检测到的圆形端口中心按横向与纵向两个方向连线,两条线所经过的交点可视为所有端口的中心,检测结果如图5 所示。
图5 端口区域检测
右图中霍夫检测未查找到的圆以浅色圈出。由于光交箱尺寸的标准化,使端口横纵向之间的距离与半径成固定比例θ,通过判断之间的距离与端口平均半径的比例是否大于θ 而进行补全,可避免出现某行或者某列因未检测到圆形端口而无法形成圆心连接线L 所出现的漏检。当求得每一个端口位置后,以圆形端口的最小外接矩形将每个端口图像单独提取以供识别之用。
支持向量机(SVM)的基本模型是定义在特征空间上间隔最大的线性分类器;卷积神经网络(CNN)是一类包含卷积计算且具有深度结构的前馈神经网络,两者都可用于图像分类任务。相较于CNN,SVM 算法较为简单、处理速度更快,但需要自定义特征;CNN 在识别效果上具有更高的精确度,但训练参数多,处理耗时较大。综合两者的优缺点,在此设计一种基于SVM 与CNN 的图像组合分类器。
依据每种端口的纹理及颜色不同,使用每个端口的方向梯度直方图(HOG)特征与颜色特征融合作为最终特征向量来训练SVM 分类器。首先将单个端口图像分成100 个图像块,通过计算和统计图像局部区域的梯度方向直方图来构成100 维特征;然后提取颜色特征时将提取HOG 特征时的每四个图像块进行结合,计算其中的RGB 三通道的像素平均值作为25 维的颜色特征,串行融合共125 维特征向量。最后结合SVM 多分类,对四种类型的端口图像进行采样构造出四个支持向量机模型,分别对这些支持向量机进行训练。预测端口时,将待识别端口中的一类看作正类,其余状态的端口全部视为负类,依次类推改变正类的类型。当这四个支持向量机模型中的一个输出为true,另外三个输出为false 时,被测端口才能被标记为“可识别”,否则被标记为“不可识别”。为防止此类状况,在此基于CNN 搭建一种网络结构进一步去分类SVM 无法识别的端口,以判断出该端口是背景还是真端口。
考虑到每个端口图像的分辨率较小,且其特征信息可大致分为纹理、形状、颜色,此处设计8 层带残差模块的CNN 小型网络来二次识别未能判断的端口。网络的具体参数见表1。
表1 网络参数
网络输入的端口图像统一采样为32×32 大小的 RGB 三通道图片,输出为 1×1×5 的分类特征,分别代表四类端口与背景。该网络中4 个卷积层用作特征自动提取;2 个池化层对卷积后的特征图进行下采样,对特征进行压缩与去除冗余信息;2 个全连接层与1 层Softmax 层用作分类;第二层卷积池化后的特征图与第四层组成残差模块防止训练时梯度弥散而造成网络退化。除此之外,为了加速网络收敛和防止过度拟合,在每个卷积层之后增加了一个批处理规范化操作[13]。对散乱特征数据进行归一化处理,均值为0,方差为1。
经测试,训练好的SVM 与CNN 模型均可通过OpenCV 图像算法库的函数接口调用。当OpenCV版本大于3.4.4 即可在PC 端与移动端中稳定执行。在移动端,使用华为荣耀V20 的后置摄像头及CPU为标准对光缆交接箱进行拍照与识别,在经过调用并移植到移动端之后,在该识别系统中能够实现与PC 端中同样的检测效果,如图6 所示。
图6 光交箱手机端检测效果
可见,经矫正后图像中的端口与现实中一样呈矩形分布。经过端口定位后,即使存在着遮挡也能将每个端口区域准确地提取出来用作训练分类器的样本。检测系统成功移植至手机客户端后可成功执行,仅需巡检人员拍照与选取箱体四个角点即可完成检测任务。
在检测系统中端口分类占用着相对较多的时间,为了定量评估端口检测效果及不同算法的性能,以实验训练时长、单个端口处理速度以及分类精度作为性能评价指标。其中分类精度的公式为:
式中,FP为假正例,FN为假负例,TP为真正例,TN为真负例。
端口分类的数据集统一为由光交箱工作实景下采集、经过区域分割后的单个端口图像,共有37690个训练样本与9640 个测试样本。在经过20000 次的训练迭代后结果对比如表2 所示。由结果可见Haartraining、Traincascade 训练时间差别不大,但准确率较低;目前常用的图像分类网络Vgg16、ResNet-18 与只用SVM 虽然能有较高的识别精度,但是参数量大,训练时间与处理时间过长;新提方案的梯度直方与颜色特征HC-SVM 能够在较短时间内大致识别所有端口,但仍有个别端口未能成功识别;搭建的CNN 虽然有更好的准确性,但由于光缆交接箱的尺寸不同,内部的端口数量也不同,在端口数量较多的情况下仅用CNN 方法在速度上很难保证实时识别。因此,先使用HC-SVM 对端口进行分类,然后将未能识别的端口送进CNN 中进一步识别,可缩短大型光缆交接箱(100 个端口以上)的处理速度,兼有识别响应快与精度高的特点。
表2 分类器性能对比
结合透视变换方法矫正光交箱图像的透视畸变与倾斜,并基于霍夫变换与端口的矩形阵列特征设计一种自适应分割方法,解决了因目标小,分布密度大而造成目标区域提取精度低的问题。定义端口的梯度直方图与颜色特征,设计基于SVM 的分类器进行初步识别;设计小型的卷积神经网络模型对端口进行二次识别。经实验验证,该检测系统可完美移植至移动手机中完成端口定位与识别任务,同时具有识别响应快与精度高的特点,能够满足端口检测实际工程应用需求。