汤斯鹏,池鸿源,张培炜,张炳华,蔡 毅
(1.中国移动通信集团广东有限公司AI能力支撑中心,广东 汕头 515000;2.中国移动通信集团广东有限公司AI能力支撑中心,广东 广州 510000;3.华南理工大学 软件学院,广东 广州 510000)
旨在完成百万级规模数据分类和检测的ImageNet挑战赛2009年开始在CVPR举办,自2012至2017年挑战赛结束冠军队伍均采用了深度学习算法,物体分类错误率从0.28降到了0.03;物体识别的平均准确率从0.23上升到了0.66。ImageNet的成功推动了基于卷积神经网络的深度学习技术在视觉领域的快速发展,利用卷积、池化操作具备位移不变性、能够合并相似语意特征的特点,在自然场景下图像物体的分类和检测的精度上已经接近并超过人类的水平,为解决视觉分类和物体检测问题提供了强大的支撑。
光网络单元(以下简称ONU)属于接入网的用户侧设备[1],是电信运营商宽带业务实现“光电转换”的重要设备。不同厂商生产的ONU外形不尽相同(见图1),普通用户受专业限制,一旦ONU异常或故障,往往难以描述并只能等待装维人员上门检修。对用户而言浪费时间等待,对运营商而言消耗大量人力成本检修。如果可以通过计算机视觉技术识别故障甚至引导客户自助排除简单故障,有利于提升用户体验同时降低企业人力成本。
文中以物体检测实现故障识别为切入点,综合应用了SSD,Inception-V4和Inception-Resnet-V2,提出了一种识别ONU故障的设计,并在“广东移动手机营业厅”APP中投入了实际应用。从用户数据上看,该系统的端到端准确率超过84%。
图1 几款不同型号的ONU设备示例
SSD(single shot multibox detector[2])是一种单步骤的目标检测方法:比同为单步骤的YOLO V1[3]速度快而精度达到两步骤方法Faster-RCNN[4]的水平;SSD的思想是用小尺寸卷积核对预设候选框预测坐标偏移量和分类概率;SSD产生固定比例的候选框集合并对这些候选框中存在的目标类的概率,使用非最大化抑制步骤以产生最终检测,利用多个尺寸的特征图预测不同长宽比的候选框综合起来提升检测精度;是一种同时权衡了精度和速度的端到端的目标检测算法。
SSD在主干网络的末尾添加了卷积层。卷积层的尺寸从大到小,得到不同尺度检测的概率。每个添加的特征层(或可选的基础网络中已存在的特征层)可以使用一组卷积滤波器产生固定的预测集合。对于具有p个通道的大小为m×n的特征层,使用3×3×p卷积核进行卷积操作,使每个类别产生一个预测概率,以及相对于候选框的坐标偏移。
Inception[5]网络是卷积神经网络分类器发展史上一个重要的里程碑。在Inception出现之前,大部分流行卷积神经网络仅仅是把卷积层堆叠得越来越多,使网络越来越深,以此希望能够得到更好的性能。但这种简单粗暴的方法存在一些问题:会导致更大的参数空间,更容易过拟合、需要更多的计算资源、网络越深,梯度容易消失,优化困难。Inception的目标是,提高网络计算资源的利用率,在计算量不变的情况下,提高网络的宽度和深度。Inception把全连接改成稀疏连接,卷积层也是稀疏连接,卷积网络可以近似最优局部稀疏结构,并且该结构下可以用现有的密度矩阵计算硬件实现,产生的结果就是Inception,其作用是替代了人工确定卷积层中过滤器的类型或者是否创建卷积层和池化层,让网络自动学习参数。Inception-V2[6]在Inception的基础上增加了批数据归一化。Inception-V3[7]在Inception的基础上对卷积核进行了分解,将5*5的卷积核替换成2个3*3的卷积核;将n*n的卷积核替换成1*n和n*1的卷积核堆叠。这样加速了计算,还增加了网络的非线性,减小了过拟合的概率。
在Inception-V3的基础上,受ResNet的优越性能启发引入残差结构,提出了Inception-Resnet-V2[8],并修改Inception模块提出了Inception-V4结构,基于Inception-V4的网络实验发现在不引入残差结构的基础上也能达到和Inception-Resnet-V2结构相似的结果。ILSVR2012比赛中Inception-V3、Inception-V4、Inception-Resnet-V2的Top-5 Error分别为4.3%、3.8%和3.7%。
不同生产厂商制造的ONU设备的型号和外形不尽相同。据广东移动统计,截至2017年12月,广东移动投放至市场的ONU类型有34种。各种型号ONU市场占有率如表1所示。虽然ONU型号众多,但ONU设备上具有Power、Pon、Los、Lan,4种类型指示灯,通过ONU设备上指示灯的状态组合,可以识别ONU所处的工作状态。如表1所示,ONU设备的指示灯状态可以分为7个场景,包含了ONU常见的7种状态。从表中可以知道场景1、4、5、6代表设备故障,场景2、3、7代表设备正常。如图2所示,不同型号的ONU外形不同,指示灯的排列和显示不尽相同,因此识别ONU的型号是必要的。
表1 ONU指示灯对应场景
图2 不同型号ONU指示灯
针对以上陈述,文中提出的系统从视觉领域着手主要实现了以下核心功能:
·识别自然场景图像中是否包含ONU设备;
·识别图像中ONU设备型号;
·识别图像中ONU设备指示灯对应场景。
核心功能的开发采用了谷歌开源的tensorflow[9]深度学习框架。
为了完成整体系统应用,系统采用了CS模式[10]。用户打开APP调用摄像头采集图像,利用webser-vice[11]方式上传图像到后台GPU服务器,GPU服务器调用经过训练的模型识别ONU型号和场景并返回手机APP前端,APP前端使用虚拟现实[12]方式与用户交互。数据流程如图3所示。下面章节将详细介绍识别相关的核心功能设计与实现,其余部分将不再赘述。
深度学习模块实现分为以下3个阶段:
阶段1(检测ONU):自然场景下的用户图片往往采集随意且包含许多噪音,为了聚焦主体任务,有必要将图片中无关信息进行裁剪。使用SSD算法进行物体检测,检测的目标是ONU和ONU指示灯在图片中的位置,如图4所示。值得注意的是此时并未进行分类,而是将所有型号的ONU共同训练,检测的物体只有2种类型(类型1:ONU,类型2:ONU指示灯),目的是为了将不同型号的特征充分融合,提升鲁棒性,同时有利于减轻数据不平衡所带来的不利影响。用户的输入可能不是ONU图片,但是这个阶段并不进行数据过滤,而是将所裁剪的图片送入阶段2的分类模型中。
图3 应用数据流程
阶段2(分类ONU):完成位置检测将裁剪后类型1(ONU分类)的图片送入Inception-Resnet-V2分类算法训练分类模型可以预测出ONU型号,为了能够判定用户是否按要求输入,训练ONU型号分类器时除已知的ONU型号类型之外增加了一个“未知”分类。巧妙地将“未知”分类的图片在型号分类时融入分类器的训练,不仅可以加快模型收敛速度,而且有利于提升ONU型号的分类准确率、提升判定该物体是否为ONU的准确率。即,经过阶段1的检测会将图片中最像ONU的部分裁剪后再进行分类,能够有效降低分类的难度。
图4 ONU检测
阶段3(分类ONU指示灯):如图2所示,各种ONU的指示灯不尽相同,为了识别ONU的各种场景,可以将每个场景作为一个类来对待。同时为了平衡识别时长和识别准确率,使用Iception-V4算法分类ONU的7个场景;为了保证准确率,每个型号的ONU训练一个场景分类模型,输入数据使用经过SSD裁剪后的ONU指示灯图片。3个阶段的数据流程如图5所示。
图5 深度学习模块数据流程
阶段1检测ONU的损失函数沿用了SSD的损失函数,SSD损失函数分为两个部分,即对应搜索框的位置Lloc和类别置信度Lconf:
其中,N是匹配的包围框的个数,x表示匹配的框是否属于类别p,取值(0,1);l是预测框,g是真实值;c是指所框选目标属于类别p的置信度。
阶段2和阶段3的损失函数均使用了交叉熵,yi就表示期望输出,yi_表示原始的实际输出。
为了实现冷启动,在未得到用户数据之前,模型的训练采用了人工拍摄的数据进行,在应用上线1个月后收集用户数据进行标注。在原有模型的基础上进行训练,加入用户数据显著提升了模型的准确率,同时在训练的过程中进行了角度、亮度、对比度、饱和度的数据增强[13],提升模型鲁棒性,利用数据过采样[14]的方式解决型号ONU数据不平衡问题。SSD中输入图片的分辨率为300*300,L2正则化系数为4*10-5,使用了RMSProp优化器,初始学习率为0.004,衰减系数为0.95;在Inception-V4和Inception-Resnet-V2中输入图片统一缩放到299*299,使用了Adam[15]优化器,初始学习率为0.001,衰减率为0.93。图6是分类指示灯在加入用户数据之前和加入用户数据之后的准确率对比,最终分类ONU指示灯的平均准确率是87%。运用同样的方法,检测ONU准确率达到了98%(50%IOU)、分类ONU的准确率达到了99%,整体端到端准确率为3者乘积,达到84.4%;硬件方面GPU使用了一块NVIDIA Tesla P100显卡,从大规模压力测试情况来看使用Inception-Resnet-V2与Inception-V4组合达到了精度和速度的平衡,实际识别速度可达10 FPS。
图6 准确率对比
提出了使用深度学习技术识别ONU故障的设计和实现方法,巧妙地综合运用了检测和分类的思想,将核心模块分为3个阶段逐步求精实现,有效减少了环境的干扰,运用分类的方法对非ONU图片可以有效过滤,最终识别出不同ONU型号的不同场景。经分析,端到端准确率超过84%,产品上线“广东移动手机营业厅”,据统计该功能的月均使用次数超过1万人次,不仅有效节约了客户等待时间,而且减少了装维上门成本,是电信行业提升客户服务品质的一次成功探索。