1 引言世界卫生组织WHO世界视力报告资料显示,全球范围内约有22亿人患有视力损伤和盲症,中国盲人数量位列世界第一[1-2]。出行是盲人生活的一个难题,盲人出行的辅助工具主要有盲仗、导盲犬以及盲道。但盲杖的探测范围有限、速度慢;导盲犬训练周期长、数量少且有些场合对于犬类有出入限制;现实中盲道更是存在不连贯、有障碍物、触感圆点被磨平以及砖块受损等诸多问题[3-4]。传统的盲人辅助手段实际上都不能满足当前盲人的实际出行需求,但随着深度学习的快速发展,基于计算机视觉的目标障碍物检测方法带来了新的机遇和发展方向。自2012年Alex Krizhevsky等[5]提出了AlexNet模型,卷积神经网络(CNN)开始迅猛发展并在计算机视觉领域广泛应用[6],对目标物进行检测的算法逐一被提出。2014年,Ross Girshick等提出R-CNN,首次利用CNN进行目标检测。2015年,Ross Girshick等人在提出fast RCNN之后又与Kaiming He团队提出faster RCNN,之后Mask R-CNN等一些网络也相继被提出[7-10]。这些基于区域提名的检测网络能达到很好的准确度,但是计算量较大,若应用于盲人出行时,不能满足实时监测的要求。2016年YOLOv1检测算法被提出,同年SSD检测算法被相继提出以及2018年Tsung-Yi Lin的RetinaNet检测算法的发表,YOLO系列以及SSD系列等一些单目标实时检测算法得以发展[11-13],并广泛应用于不同场景下的实时检测任务中。户外的目标检测任务常常伴随着光照强度的变化、采集图像的失真等问题使得目标检测的精度不高。2019年,马永杰等[14]基于原始的YOLOv2模型和嵌入式系统实现了车辆自动跟踪、车流量的实时检测任务,由于未考虑光照原因对户外检测任务精度的影响,在车辆自动跟踪、车流量的实时检测任务上所取得的检测精度并不理想。光学重建图像、应用于深度学习图像处理的光学计量等方法有效地减少了由于图像失真曝光或噪点等光学因素造成的检测精度的丢失[15-17]。随着关注像素重要特征的注意力机制开始应用于神经网络,注意力机制为单目标检测算法在不同应用背景下的障碍物检测的准确率带来了巨大提升。2020年,李文涛[18]改进了YOLOv3-tiny算法,融合浅层特征并使用SE-Net[19]通道注意力机制和CBAM[20]空间注意力机制作为混合注意力模块,实现了农机田间作业时行人和农机障碍物的改进检测模型,使得农机障碍物的检测准确率得到了巨大提升。2021年,刘力等也提出一种基于YOLOv4的铁道侵限障碍物检测方法,在锚框选择上对K-means算法聚类中心的选取方法进行改进并引入了注意力机制,使得检测速度和精度都有所提升[21]。2022年,王海军[22]基于YOLOv5算法对铁路的轨道障碍物进行检测。虽然引入注意力机制为算法在识别目标的准确度带来了一定程度的提升,然而上述方法都没有很好地利用通道信息以及网络主干提取的各个尺度的语义信息,且预测框位置回归没有很贴近检测目标,预测框的回归精度和速度都有待提升。针对上述问题,本文出于对盲人出行中需要实时且精确地检测各种可能会造成阻碍的目标类别的考虑,采用YOLOX[23]作为本文的基础模型进行算法改进,主要贡献在于:(1)将原特征融合网络改进为CE-PAFPN,以亚像素跳变融合模块(Sub-pixel Skip Fusion,SSF)和亚像素上下文增强模块(Sub-pixel Context Enhancement,SCE)来充分利用通道信息和不同尺度的语义信息,通道注意力引导模块(Illustration of Channel Attention Guided Module,CAG)来减少混叠效应,有效地提升了的检测模型的精度。(2)在预测网络之前引入全局注意力机制GAM,减少信息弥散和无用信息的干扰,并放大全局交互表示来提高模型性能,使网络模型更加聚焦在障碍物的检测上。(3)将原有的位置回归损失函数替换为SIOU-LOSS,解决了预测框与真实框之间方向不匹配的问题,也考虑到了预测框和真实框距离、形状和交并比(Intersection-over-Union, IOU),对目标的定位更加精准,速度更快。2 YOLOX网络YOLOX网络结构由Input、Backbone、Neck、Prediction 4个部分组成,如图1所示。10.37188/CJLCD.2022-0358.F001图1YOLOX网络结构图Fig.1YOLOX network structureInput输入端采用Mocsicp和Mixup数据增强,丰富了检测图片的背景以及目标个数,对小目标的检测效果有所提升。Backbon主要采用了Focus模块、残差组件以及跨阶段局部融合网络CSPNet[24]。Focus采用切片重组操作把高分辨率的图片拆分成多个低分辨率的图片,有效减少了下采样带来的信息损失。残差组件由1×1卷积和3×3卷积组成主干与不做任何处理的残差边构成,使模型更易优化,通过增加网络的深度也提高了模型的准确率。Neck部分采用FPN结构和PAN结构构成的路径聚合网络PANet[25],自上而下将高层的特征信息与不同层的CSP模块输出的特征进行融合,再通过至下而上的路径聚合结构聚合浅层特征,从而充分融合了不同层的图像特征。Prediction预测部分采用了解耦头,由一个公共卷积、两个分支的额外卷积和3个单独任务(Reg、Obj、Cls)的卷积构成,将3个预测结果进行堆叠后进行解码操作,通过无锚点的方式减少预测结果,完成初步的筛选,再利用SimOTA算法对预测结果进行精细化的筛选,得到最终的预测结果。3 YOLOX的算法改进策略基于YOLOX算法,本文提出了融合多尺度的注意力加权检测算法CE-YOLOX。较原模型主要改进部分为特征融合网络Neck,采用CE-FPN[26]的融合思想,以亚像素跳变融合模块SSF和亚像素上下文增强模块SEC来充分利用通道信息,充分考虑各个尺度的特征进行融合,并采取轻量的通道注意力引导模块CAG减轻多尺度融合带来的混叠效应,引入全局注意力机制GAM来聚焦有效信息。预测部份Prediction采用SIOU-LOSS来加快边框回归的精度和速度。总体结构如图2所示。10.37188/CJLCD.2022-0358.F002图2CE-YOLOX网络结构图Fig.2Structure of CE-YOLOX network3.1 改进的特征融合网络CE-PAFPN传统的特征融合网络大多存在通道缩减的内在缺陷,这导致语义信息的丢失,且各尺度融合的特征图可能会导致严重的混叠效应。2021年,华中科技大学提出了一种通道增强的特征金字塔CE-FPN。CE-FPN受亚像素卷积的启发,提出了SSF和SCE两种新的通道增强方法,扩展了亚像素卷积固有的上采样功能,将丰富的通道信息集成到模块I中,以轻量级的通道注意引导模块(CAG)减少各个尺度融合产生的混叠效应混淆定位和检测目标。SSF模块主要将低分辨率的特征采用亚像素卷积作为上采样的方式与临近的高分辨率特征进行通道融合,主干提取出的后3个特征具有丰富的通道信息,SSF模块将临近的特征图两两连接,有效利用了高层特征丰富的通道信息来增加特征融合网络的表征能力。SSF结构如图3所示。10.37188/CJLCD.2022-0358.F003图3SSF模块Fig.3Sub-pixel skip fusion (SSF) modulePAFPN虽然融合了不同尺度的特征信息,但高级语义特征没有很好地作用到更大的感受野。为了更好地解决高分辨率的特征图只具有单一的上下文信息且需要更大的感受野获取更多语义信息的问题,本文采用集成的特征图I的框架,并且采用SCE模块利用feature4丰富的通道信息。SCE的核心思想是融合大范围的局部信息和全局的上下文信息来生成更具有辨识力的特征,假设本文输入的特征为2w×2h×8C,输出集成特征图I为4w×4h×C,本文模型C设定为64。SCE模块如图4所示。3条路径的作用分别为提取局部的特征信息、为更大的感受野获取丰富的上下文信息以及获取全局上下文信息,最后将3个特征映射聚合为集成映射I。10.37188/CJLCD.2022-0358.F004图4SCE模块Fig.4Illustration of sub-pixel context enhancement (SCE)对于特征融合网络的改进,SSF和SCE模块融合了更多的跨尺度的特征映射,因此混叠效应较原模型更为严重,这会影响模型的定位和识别任务。为了减轻锯齿效应产生的负面影响,加入了受CBAM启发的通道注意力引导模块(CAG),如图5所示。首先采用全局平均池化和全局最大池化来聚合两个不同空间的上下文信息,分别通过全连接层后进行元素求和,最后通过sigmoid函数对输出特征向量进行合并。该过程可用公式(1)表述为:CAx=σfc1AvgPoolx+fc2MaxPoolx . (1)10.37188/CJLCD.2022-0358.F005图5通道注意力引导模块示意图Fig.5Illustration of channel attention guided module (CAG)3.2 GAM全局注意力机制注意力机制能更加关注特征图中的有效信息,抑制无效信息,同时也能减轻在特征融合网络中由于跨尺度特征融合产生的混叠效应,有效地提升网络特征提取的性能。各种注意力机制在卷积神经网络中的应用为计算机视觉任务的性能带来了显著提高。Woo等人提出的CBAM注意力机制结合空间注意力机制和通道注意力机制相较于SE-Net有效地解决了抑制特征图中不重要的信息效率低的问题,但也忽略了通道与空间的相互作用,从而丢失了跨维信息。Misra等[27]人在2021年提出的三元注意模块(TAM)通过对每一对三维空间(通道、空间宽度和空间高度)之间的注意力来提升效率,但每次只应用在其中的2个维度,并不是3个维度。为了减少信息弥散和放大跨维度的交互作用捕捉所有3个维度的重要特征,2021年,YIchao Liu等人在CBAM的基础上进行改进,提出全局注意力机制(GAM)。GAM采用CBAM中的顺序通道-空间注意力机制,并对子模块进行重新设计。GAM的基本结构如图6所示。10.37188/CJLCD.2022-0358.F006图6GAM示意图Fig.6Overview of GAM通道注意力子模块如图7所示,使用三维排列在3个维度上保留信息,再用双层MLP(多层感知机MLP是一种编码-解码结构,与BAM相同,其压缩比为r)放大跨维通道-空间的依赖性。10.37188/CJLCD.2022-0358.F007图7通道注意力子模块Fig.7Channel attention submodule空间注意力子模块如图8所示。为了关注空间信息,使用两个卷积层进行空间信息的融合,还从通道注意力子模块中使用了与BAM相同的缩减比r。同时,由于最大池化操作会减少信息的使用,产生消极的影响,在该子模块中去除了池化操作以进一步保留特性映射。10.37188/CJLCD.2022-0358.F008图8空间注意力子模块Fig.8Spatial attention submodule3.3 损失函数的改进3.3.1 目标框回归损失函数传统的目标检测损失函数依赖于边框回归度量的聚合,如预测框与真实框中心点之间的距离、重叠面积和长宽比(GIOU、CIOU、DIOU等)[28-29],却没有一种方法考虑到真实框与预测框之间的方向不匹配问题,这会导致模型在收敛过程中的速度较慢。本文选用SIOU-LOSS[30]替换原模型中的IOU-LOSS来计算位置回归损失函数。SIOU具体由4个部分组成,分别是角度损失(Angle cost)、距离损失(Distance cost)、形状损失(Shape cost)和IoU损失。角度损失的公式如式(2)所示:Λ=1-2×sin2arcsinx-π4 ,(2)其中:x=chσ=sinα ,σ=bcxgt-bcx2+bcygt-bcy2,ch=maxbcygt,bcy-min(bcygt,bcy)。如图9所示,sinα为直角三角形中的对边与斜边之比,在训练的过程中若α≥π4则取β=π2-α;cw为真实框和预测框中心点的距离;ch为真实框与预测框中心点的高度差;bcxgt,bcygt和bcx,bcy为真实框和预测框的中心点坐标。10.37188/CJLCD.2022-0358.F009图9角度损失对损失函数的贡献Fig.9Scheme for calculation of angle cost contribution to the loss function考虑角度损失,重新定义距离损失,公式如式(3)所示:Δ=∑t=x,y1-e-γρt ,(3)其中:ρx=bcxgt-bcxcw2,ρy=bcygt-bcych2,γ=2-Λ,如图10所示,cw、ch分別为最小外界矩形的宽和高。10.37188/CJLCD.2022-0358.F010图10真实框与预测框之间距离的计算方案Fig.10Scheme for calculation of the distance between the ground truth bounding box and the prediction of it形状损失定义为:Ω=∑t=w,h1-e-ωtθ ,(4)其中:ω w=w-wgtmax(w,wgt); ωh=h-hgtmax(h,hgt);w,h、wgt,hgt分别为预测框和真实框的宽和高;θ的值控制对形状损失的关注程度,本文中θ=4。IOU为真实框与预测框的交并比,最终SIOU损失函数定义如式(5)所示:Lbox=1-IOU+Δ+Ω2 .(5)3.3.2 分类置信度损失函数VarifocalLOSS[31]新型焦变损失是基于交叉熵损失函数进行的改进,用加权方法解决类别不平衡的问题,但对于正负样本处理策略是不对等的。定义为:VFLp,q=-q(qlogp+(1-q)log(1-p)) q0-αpγlog(1-p) q=0 ,(6)其中:α是用来平衡正负样本的权重,pγ为调背景类的调制因子,p为预测的分类得分。对于正样本,q是预测框与真实框之间的IOU;对于负样本,q为0。对负样本进行衰减,对正样本q进行加权,可以使训练更聚焦于正样本,避免大量的负样本对训练时损失函数的影响。4 实验与结果分析4.1 数据集对于本文在盲人出行时常见的可能会对其造成阻碍的目标数据集的制作,从路面上凸出(如fire hydrant、road-cone等)、路面凹陷(如puddle、pothole等)以及步行中突然出现的物体(如cat、dog等)这3种情况考虑,收集VOC、ImageNet等公共数据集以及在不同光照、天气及角度采集拍摄的图片。拍摄图片使用labeling图形图像注释工具进行数据的标注。本实验数据集将检测障碍物分为20类,共计15 805张图片。表1所示为各类别的具体数量。训练集和验证集按9∶1的比例随机进行划分。10.37188/CJLCD.2022-0358.T001表1数据集中各类别检测物的数量Tab.1Number of each type of test in the datasetCategoryNumberCategoryNumberBicyc858Car1 544Cat789Bench1 815Dog729Fire-hydrant1 175Motorbike604Banma757Person3 444Garbagecan1 105Pottedplant2 128Stairs1 395Isolation-pile1 108Pothole2 127Road-cone2 696Puddle1 044Boulder-ball2 567Step1 392Stopper1 992Obstacle1 3714.2 实验环境及训练过程如表2所示,本文实验均在服务器Ubuntu 16.04操作系统下运行,计算机处理器型号为AMD 3900X,显卡型号为NVIDIA GTX 3090,内存为32G。采用Pytorch 1.6.1框架,所使用的编程语言为Python 3.6,加速环境为CUDA 11.4。10.37188/CJLCD.2022-0358.T002表2实验条件Tab.2Experimental conditionsCategoryParameterCPUAMD 3900XGPUNvidia GTX 3090Operating systemUbuntu 16.04Development softwarePyCharmDevelopment frameworkPytorch本文采用迁移学习的思想,前50轮冻结模型主干,加快训练速度,迭代批次为64;50轮之后解冻训练,迭代批次为32。共训练113轮。具体训练参数如表3所示。10.37188/CJLCD.2022-0358.T003表3实验参数设置Tab.3Experimental parameter setting参数名参数值Input_Size[640, 640]Init_Lr0.01Min_Lr0.000 1Optimizer_TypeSGDMomentum0.937Lr_Decay_TypeCOS本文采用准确率(Precision)和召回率(Recall)计算所有障碍物类别的平均精度mAP(mean Average Precision)来评估模型的整体性能,用平均精度AP(Average Precision)对每一类障碍物的检测结果进行评估。P、R、AP和mAP计算公式如式(7)~(10)所示:P=TPTP+FP ,(7)R=TPTP+FN ,(8)AP=∫01PRdR ,(9)mAP=∑i=1nAPin ,(10)其中:n表示为检测目标的类别数,TP表示预测正确的正样本数,FN为预测错误的正样本数,FP表示为预测错误的正样本数,TP+FN为全部正样本数量,TP+FP为全部被分为正样本的数量。4.3 实验结果分析与分析4.3.1 不同模块分析效果为了检验本文改进算法的检测性能,以YOLOX原模型为参照,通过多个模块组合的方式进行5组实验,验证各个模块的有效性,如表4所示。10.37188/CJLCD.2022-0358.T004表4消融实验结果Tab.4Results of ablation experimentGroupsMethodsmAP/%FPSModel_size/MB0YOLOX88.0890.8654.2091+SIOU88.2285.5954.2092+SIOU+CE-PAFPN90.0278.1363.5143+VariFocalLOSS88.3583.5354.2094+VariFocalLOSS+CE-PAFPN89.6477.1063.5145+VariFocalLOSS+CE-PAFPN+GAM90.4173.7893.436+SIOU+CE-PAFPN+GAM(Ours)90.5375.9393.43在第一组实验中,将原模型的损失函数更改为SIOU-LOSS之后,mAP从88.08%提升至88.22%。在第二组实验中,在第一组实验的基础上将特征增强网络PAFPN改进为CE-PAFPN后,特征融合网络在减少丢失通道信息的同时充分利用了主干网络产生的4个尺度的特征进行特征融合,增加了模型检测的准确性,降低了漏检率,使检测模型整体的mAP从88.22%提升至90.02%。在第三组实验中,尝试将原模型的分类置信度损失替换为VariFocalLOSS,与第一组实验中单独替换为SIOU相比,整体mAP提高了0.13%,但VariFocalLOSS在加入CE-PAFPN、GAM后的第四、五组实验中并没有比SIOU加入CE-PAFPN、GAM后的第二、六组实验表现更好。第六组实验在第二组实验的基础上加入GAM注意力机制后,mAP从90.02%提升至90.53%,增加了0.51%,构成本文模型。原模型与本文模型的各类目标精度如图11所示。比较各个类别检测的精度,CE-YOLOX的检测效果都有不同程度的提升。在YOLOX模型上表现不好的类别,如bench、pottedplant的精度也分别提升了0.6%及0.7%。10.37188/CJLCD.2022-0358.F011图11YOLOX与CE-YOLOX测试结果对比图Fig.11Comparison of YOLOX and CE-YOLOX test results注意力机制在网络中添加的位置不同,模型的检测效果也会有差异。在第二组实验的基础上,进行了两组对比实验,最终确定注意力机制在模型中的添加位置,组成本文最后的网络结构。由此可见,由于特征增强网络融合了多尺度信息,导致网络产生了混叠效应,GAM注意力机制添加在特征增强网络之前并不合适,对网络的整体检测效果提升有限。GAM注意力机制添加在特征增强网络之后就很好地缓解了在特征增强网络部分产生的混叠效应问题。4.3.2 不同模型效果对比为了验证本文改进算法的有效性,本文将RetineNet、Efficiented、SSD、YOLOv5和本文基础算法YOLOX在同一数据集下进行对比实验,结果如表5所示。10.37188/CJLCD.2022-0358.T005表5不同位置GAM注意力机制效果对比Tab.5Comparison of the effects of different position GAMGAM添加位置mAP/%CE-PAFPN之前89.08CE-PAFPN之后90.53由表6可知,对于盲人出行道路障碍物检测的整体mAP,本文模型优于RetineNet、Efficiented、SSD、YOLOv5、YOLOX。在单张图片的检测速度上,YOLOX原型最快。虽然本文模型单张图片的检测速度低于原模型,但依然满足实时目标检测的需求,达到了模型精度与速度的平衡。10.37188/CJLCD.2022-0358.T006表6不同算法对比Tab.6Comparison of different algorithmsModelsmAP/%FPSRetineNet81.7146.23Efficiented80.9633.18SSD82.3649.45YOLOv579.3599.79YOLOX88.0890.86CE-YOLOX(Ours)90.5375.93图12为本文所提改进模型及YOLOX和YOLOv5三种检测模型对几类在出行过程中会对盲人造成阻碍的障碍物的检测效果。从图12可以看出,所提的改进模型CE-YOLOX的预测框与真实框的重合度更高,对于目标的定位更准确,对检测目标的准确率更高。10.37188/CJLCD.2022-0358.F012图123种模型检测对比图Fig.12Comparison of three model checks5 系统设计与平台移植验证为了验证改进的检测算法CE-YOLOX在实际工程中的应用,将其在服务器上训练完成后部署在边缘计算平台进行实验。实验所设计的主从式的视障人群出行监测系统包括高性能NVIDIA Xavier NX边缘计算板(导盲系统)、基于LD3320的语音交互模块、蓝牙模块、双目摄像头、基于香橙派Range Pi实现的定点导肮等工具、Ubuntu18.04操作系统、OpenCV3.4、TensorFlow1.15等工具与框架。图13为导盲系统流程框图。10.37188/CJLCD.2022-0358.F013图13导盲系统流程框图Fig.13Flow diagram of guide system将CE-YOLOX以及YOLOv5、YOLOX移植到导盲系统实物平台中进行对比实验,其检测效果如表7所示。在NVIDIA Xavier NX边缘计算板上,各算法检测的准确度与表5相同。YOLOv5、YOLOX的检测速度虽略高于本文所提出的CE-YOLOX,但CE-YOLOX对目标识别的准确度要优于YOLOv5、YOLOX,同时也满足了盲人出行检测所要求的实时性,在实际应用中更符合对盲人出行可能造成障碍的物体目标的检测实时性和准确度的要求。10.37188/CJLCD.2022-0358.T007表73种算法在Nvidia Xavir NX上的检测效果对比Tab.7Comparison of detection effects of the three algorithms on Nvidia Xavir NXModelmAP/%FPSYOLOv579.3531.54YOLOX88.0829.89CE-YOLOX(Ours)90.5325.786 结论为了解决盲人出行难的问题,本文提出了一种基于YOLOX的改进模型CE-YOLOX用来检测对盲人出行造成阻碍的目标。通过将特征融合网络PAFPN改进为CE-PAFPN,以亚像素跳变融合模块SSF和亚像素上下文增强模块SCE来充分利用通道信息和不同尺度的语义信息,通道注意力引导模块CAG来减少混叠效应,有效提升了检测模型的精度。通过加入GAM全局注意力机制,使模型在训练过程中更关注有效信息,抑制无效信息,同时也有效缓解了多尺度特征融合产生的混叠效应。采用SIOU损失函数,SIOU引入的角度损失解决了预测框与真实框之间方向不匹配的问题,也考虑到了预测框和真实框距离、形状和IOU,使得对目标的定位更加精准,也加快了训练过程中模型的收敛。实验结果表明,本文算法在速度上满足了实时检测的需求,检测目标的准确率也优于现有的YOLOv5、YOLOX等其他算法,mAP达到了90.53%,单张检测速度达到了75.93 FPS,部署在边缘检测设备上的NVIDIA Xavier NX也满足盲人出行实时检测的要求。后续工作需要考虑模型在检测精度不下降太多的情况下对模型进行轻量化的改进,从而提升模型的检测速度,使模型部署在边缘计算设备上拥有更好的实时性,使盲人日常出行能够快速准确识别障碍物。