张育斌,熊邦书,欧巧凤,黄建萍,陈垚锋
1.南昌航空大学江西省图像处理与模式识别重点实验室,江西南昌330063
2.中国直升机设计研究所直升机旋翼动力学实验室,江西景德镇333000
立体视觉技术[1]具有非接触、易操作和精度高等特点,近年来已广泛应用于直升机桨叶运动参数测量[2]并取得了较好的效果.基于立体视觉技术的直升机桨叶运动参数测量方法首先在桨叶上粘贴或喷涂圆形标记点,然后用立体视觉技术获得的圆形标记点三维信息解算出桨叶运动参数.圆形标记点的检测准确性直接影响运动参数的测量精度.桨叶高速运动,拍摄曝光时间短,导致图像存在欠曝光、边缘性弱的问题.若采用传统的圆检测方法,则容易出现检测不准确和漏检现象;若采用对比度增强技术增加曝光度[3],则容易在弱边缘上产生噪声,以致影响圆形标记点检测精度.因此,研究欠曝光图像的圆形标记点检测方法对提高直升机桨叶运动参数测量精度具有重要意义.
目前,使用最广泛的圆检测方法是Hough 变换[4]及其改进方法,主要优点为抗噪性能好,能检测遮掩和重叠等情况下的圆形标记点,但此类方法存在计算量大、占用内存多和检测速度慢的问题.为了提高此类方法的效率,许多学者利用梯度和边缘信息实现了多种基于随机抽样和参数聚类改进的Hough 变换[5],但仍存在速度偏慢的问题.文献[6]提出实时圆检测方法(edge drawing circles, ED Circles),在图像曝光正常情况下具有实时性和抗噪声性好的特点,且能准确地检测到遮掩和重叠的圆形标记点,但对欠曝光图像中的圆形标记点存在漏检测现象.分水岭变换[7](watershed transform, WST)检测方法是一种基于拓扑理论的数学形态学的分割方法,广泛应用于低曝光和弱边缘图像分割,且分割出的边缘具有单像素性和连续性的优点,但对于高分辨率图像存在处理时间长、效率低的问题.
为了达到直升机桨叶欠曝光图像上圆形标记点准确快速检测的要求,本文提出了YOLOv3[8](you only look once)与分水岭相结合的圆形标记点检测方法,先利用对小目标识别较好的YOLOv3 网络检测出圆形标记点区域,再改进传统分水岭标记提取方法,也就是并行在各区域内进行圆形标记点检测和圆拟合.此方法既能提升圆形标记点检测速度,又能保证检测的精度.
YOLOv3 是YOLO 系列的最新方法,可以检测80 多种不同对象类别的网络.与Faster-RCNN(region-conventional neural network)[9]和SSD(single shot multibox detector)[10]相比,检测速度快且对小目标检测效果好.本文将构建一个用于圆形标记点检测的YOLOv3 网络,采用了如图1所示的Darknet-53 网络结构.
图1 YOLOv3 网络结构Figure 1 YOLOv3 network structure
Darknet-53 网络由5 个残差块[11]组成,包含53 个卷积层.每个残差块由残差单元组成,Residual Block 1x 表示包含一个残差单元,既可以加深网络,提取更深层信息,同时又可以防止梯度消失.残差单元由输入与经过两个DBL 组件的输出进行残差操作构成,如图2(a)所示.DBL 组件由卷积、批归一化和Leaky ReLU 激活函数组成,如图2(b)所示.
图2 Darknet-53 网络结构Figure 2 Network structure of Darknet-53
输入图像每经过1 个残差块相当于1 次下采样,整个网络共进行了5 次下采样,将最后3 次下采样中的3 个不同尺度的特征图作为YOLOv3 detection 的输入.小尺度特征图提供检测目标的语义信息,大尺度特征图提供检测目标的位置信息,3 个不同尺度的特征图在YOLOv3 detection 中进行上采样融合,有利于小目标和大目标的检测.
YOLOv3 引入Faster-RCNN 中提出的anchor boxes 机制.anchor boxes 是一组最佳数量和最优固定宽高比的初始候选框,可通过K-means[12]聚类数据集标注框得到.传统的K-means 聚类方法使用欧氏距离函数,容易出现生成的候选框越大误差也越大的现象.本文以平均交并比[13](intersection over union, IOU)评分来评价聚类结果.
平均交并比评分的原理是利用生成的候选框和原始标记框的重叠率来进行评价,其计算公式为
式中,b为需要聚类的样本,c为聚类样本的中心,IOU(b,c)表示所生成的初始候选框和原始标记框的重叠率.考虑到数据集原始标记框的大小相近,本文通过实验选择聚类K值为3.
圆形标记点区域定位的具体步骤如下:
步骤1训练样本集制作.将10 000 幅直升机桨叶欠曝光图像中的圆形标记点标注并制作成数据集,并按9:1 的比例分成训练集和测试集.
步骤2训练样本集扩充.利用旋转图像、伸缩图像、裁剪图像和对比度调整等方法增强数据集.
步骤3YOLOv3 网络训练.设置YOLOv3 网络的初始学习率为0.001,衰减系数为0.000 5,batch size 为16,根据数据集目标框聚类得到anchor boxes,训练网络并保存模型.
步骤4区域定位.利用训练好的YOLOv3 模型对测试集中的直升机桨叶欠曝光图像进行检测,以实现圆形标记点的区域定位.
圆形标记点区域内圆检测主要步骤包括形态学梯度重构、内外标记提取、圆形标记点精定位.
梯度图像[14]反映图像的边缘强度,在分水岭分割中至关重要.形态学梯度图像的计算过程是先对原始图像分别进行膨胀和腐蚀操作,再将膨胀图像减去腐蚀图像得到形态学梯度图像,下面对算法进行具体说明.
假定I(x,y)为原始灰度图像,DI为图像I的定义域,N为图像像素点数目,S3×3表示一个3×3 的结构单元,δn(I)表示对图像I进行膨胀操作,εn(I)表示对图像I进行腐蚀操作.
膨胀操作公式为
腐蚀操作公式为
形态学梯度图像公式
在式(4)求得的形态学梯度图像中,部分噪声将被锐化,若直接对其进行分水岭运算易出现过分割现象.因此,采用形态学开和闭重构运算对梯度图像进行重构,消除噪声和细密纹理的局部伪极值,保留显著对象的形状信息.
形态学开运算和闭运算是建立在测地学膨胀和腐蚀的基础上.假定梯度图像为g(x,y),掩膜图像为ρ(x,y),结构元素为B, 其测地学膨胀定义为
测地学腐蚀定义为
式中,⊕和Θ 为灰度形态学膨胀和腐蚀操作.当∂nB(g,ρ)=∂n−1B(g,ρ)时,测地学膨胀停止,输出的∂nB(g,ρ)即为膨胀重构结果,记为∂(g,ρ),同样将腐蚀重构记为(g,ρ).基于测地学膨胀和腐蚀的形态学开重构运算T(g,B)和闭重构运算D(g,B)可分别定义为
式中,⊗和为形态学开运算和闭运算.形态学开和闭重构运算是在形态学开和闭运算上加了重构过程.
形态学梯度重构是先进行开重构运算再进行闭重构运算,可消除梯度图像中明暗细节,使区域极大值和极小值均得以修正,减少因细节和噪声干扰造成的分水线位置偏移,其具体公式为
内标记表示需要分割的前景,外标记表示背景.传统分水岭方法用于提取桨叶图像的内外标记,其具体步骤如下:
步骤1提取重建后的局部区域极大值并进行标记,按照标记结果将灰度图像转化为二值图像,该二值图像即为内部标记图像;
步骤2对重建后梯度图像进行距离变换后产生距离图,再对距离图进行传统分水岭分割得到外部标记图像,用于限制涨水区域;
步骤3利用获取的外部标记图像和内部标记图像作为梯度图像的局部极大值,再采用H-minima 法[15]屏蔽掉其他大于内标记的局部极大值,完成对梯度图像的修正,从而抑制分割.
由于在采集桨叶图像时对桨叶进行了补光处理,圆形标记点边缘容易出现光照不均和小面积反光的情况.若对圆形标记点区域图像进行形态学梯度重构,虽然突出了前景目标且消除了部分的区域极值和噪声,但容易使提取的内标记落在反光区域内而造成欠分割或过分割现象.
为了消除光照不均造成的欠分割或过分割现象,本文对传统的分水岭方法中标记提取方法进行了改进,直接将圆形标记点区域中心作为内标记,将各个圆形标记点区域边界作为外标记,用于限制涨水区域,从而实现圆形标记点的内外标记提取.该方法既避免了欠分割或过分割情况,又加快了内外标记的提取速度.
桨叶图像中待检测的每个圆形标记点是相互独立的,为加快分割速度,本文采用多线程技术.在各圆形标记点区域内的形态学梯度重构图像上并行进行分水岭变换,再进行奇异点去除和最小二乘法圆拟合,从而实现圆形标记点的精确定位,其具体步骤如下:
步骤1采用多线程技术并行在每个圆形标记点区域内进行标记点检测,也就是以内标记和外标记作为涨水起点进行分水岭分割;
步骤2针对每个圆形标记点的边缘像素点,计算其一阶原点矩,并去除距离原点矩最远10%和最近10%的边缘像素点;
步骤3对每个圆形标记点所剩下的边缘像素点,采用最小二乘圆拟合法进行拟合,获得圆形标记点的精确定位.
实验图像是利用位于直径为4 m 的旋翼实验台上的2 台BASLER acA2000-340 km 高速工业相机采集的真实运动桨叶图像.相机曝光时间为50µs,分辨率为2 040×1 024 pixel,桨叶旋转速度为750 r/min.利用Visual Studio 2013 实现了本文圆形标记点检测方法,在CPU 为IntelRCoreTMi7-9750H 12 核,显卡为GT1660Ti,主频为2.7 GHz、16G RAM、Win10 系统上进行实验.为了能清晰展示实验结果,将所有图像进行了裁剪和增强.
为了验证检测效果,将本文方法与传统分水岭和EDCircles 方法进行对比.原始桨叶图像如图3所示,利用本文方法得到圆形标记点区域定位效果、分水岭分割效果和圆形标记点边缘拟合效果分别如图4、图5、图6所示.从图4和5 中可以看出,本文方法能准确定位到圆形标记点所在区域,可以检测到所有圆形标记点,但检测边缘不够平滑.从图6(a)中可以看出,拟合后的边缘为平滑圆形边缘,与图像中实际边缘重合度较好.利用传统分水岭方法和EDCircles 方法对图3进行检测,检测效果分别如图6(b)和图6(c)所示.显然对于光照均匀的欠曝光桨叶图像,本文方法、传统分水岭方法和EDCircles 方法检测均未出现漏检测情况,但从检测效果来看,本文方法与EDCircles 方法相近,优于传统分水岭方法.
图3 原始桨叶图像Figure 3 Original blade image
图4 圆形标记点区域定位Figure 4 Positioning of circular marker points
图5 圆形标记点分割结果Figure 5 Segmentation results of circular marker points
图6 检测结果对比Figure 6 Comparison of test results
为了进一步验证本文方法的适应性,采用光照不均的欠曝光桨叶图像进行对比实验.原始桨叶图像如图7(a)所示,利用本文方法、传统分水岭方法和EDCircles 方法对图7(a)进行检测的结果分别如图7中的(b)~(d)所示.可以看出:本文方法能检测到所有圆形标记点,且边缘重合度较好;传统分水岭方法出现2 个欠分割圆形标记点边缘,且与实际圆形标记点边缘相差较大;EDCircles 方法存在一个圆形标记点未检测到.说明本文方法能准确检测到不均匀光照下欠曝光图像中的圆形标记点,具有较好的光照适应性.
图7 光照不均匀图像检测结果对比Figure 7 Comparison of image detection results with uneven lighting
为了量化验证各种方法的性能,实验采用统计方法对比上述3 种方法的运行时间、漏检率和误检率.漏检率为遗漏检测的圆形标记点数量与实际圆形标记点数量之比,误检率为错误检测的圆形标记点数量与实际圆形标记点数量之比.在桨叶不同旋转方位采集100 幅运动桨叶图像进行对比实验,各步骤平均耗时统计结果如表1所示.从表1中可以看出,本文方法中基于YOLOv3 的圆形标记点区域定位平均耗时为211 ms,圆形标记点区域内圆定位平均耗时为32 ms,总耗时为243 ms.检测结果统计如表2所示,可以看出每幅图像的平均检测时间为0.243 s,在检测速度上优于传统分水岭方法,与EDCircles 方法相当;本文方法的漏检率为1.67%,误检率为0%,在漏检率上略高于传统分水岭方法,远远低于EDCircles 方法,在误检测率上低于传统分水岭方法,且无误检.说明本文方法对圆形标记点检测在速度和准确检测率上具有较好的性能.
为了量化验证本文方法的测量精度,采用统计方法对比上述3 种方法的圆形标记点测量直径均值,得到统计结果如表3所示.实际测量圆形标记点直径为40 mm,依据本文方法计算出的圆形标记点平均直径为40.087 mm,最大误差为0.307 mm,比传统分水岭方法和EDCircles 方法都更接近实际测量圆形标记点直径.因此,本文方法的检测精度也较好.
表1 各步骤耗时统计表Table 1 Statistics of time consumed in each step ms
表2 检测结果统计表Table 2 Statistics table of test results
表3 检测精度统计表Table 3 Statistics table of detection accuracy mm
本文提出了基于YOLOv3与分水岭的直升机桨叶欠曝光图像圆形标记点检测方法,该方法采用YOLOv3 检测圆形标记点区域;改进内外标记提取方法,采用多线程技术并行在各圆形标记点区域内进行分水岭变换,加快了圆形标记点检测的速度;采用最小二乘圆拟合法实现圆形标记点的精确定位.与传统分水岭和EDCircles 方法进行的对比实验说明,本文方法具有速度快、自适应能力强、精度高的优点.该方法已用于直升机桨叶运动参数的测量.