一种基于安全帽佩戴检测的图像描述方法研究
2020-04-10徐守坤倪楚涵吉晨晨
徐守坤,倪楚涵,吉晨晨,李 宁
(常州大学 信息科学与工程学院,江苏 常州 213164)
1 引 言
图像描述,即利用人工智能的方法使计算机能够自动生成自然语言来描述其所感知的图像内容[1],是实现图像理解最为直接的方式,也是目前的研究热点.在施工场景中,作业环境的复杂性和工人的不安全行为易引发施工事故威胁生命安全,其中施工人员头部受伤最易致命,是造成施工事故的主要原因[2].安全帽的佩戴是行为规范中最基本的要求,但在实际作业中时常存在未佩戴安全帽的行为.在施工场景中,对人员佩戴安全帽的情况进行图像描述的研究,能够降低作业风险,从而排除安全隐患以保障人身安全.
目前国内外已有相关学者对图像描述这一任务展开研究.Li等[3]以神经网络结构为基础提出一种基于多主题的图像描述生成模型,首先人工定义十个主题,然后生成与这十个主题内容相关的描述语句.Lebret等[4]提出一种语言模型,通过从给定的图像样本中推断其描述短语,使用这些短语生成相关的描述语句.Hodosh等[5]使用一种近似于检索的方法,设计了一种基于排序的框架来生成图像描述.现有的图像描述研究工作均已取得不错的成果,但在复杂背景下生成的描述易丢失细节信息,存在描述不准确的问题,尤其对于施工场景而言,关于安全帽佩戴情况的图像描述的研究又较为匮乏.
目前关于安全帽佩戴的研究基本上是针对图像识别这一任务进行的.传统的安全帽佩戴检测算法[6,7]需通过人工设计特征来实现,对环境的要求较高,人工提取的特征不具备鲁棒性,且泛化能力较差.近年来由于深度学习的迅速普及,已有相关学者将深度学习的方法应用于安全帽佩戴检测的研究中.Zhang等[2]利用Faster RCNN(Faster Regions with Convolutional Neural Network feature)网络来检测施工人员佩戴安全帽的情况.Fang等[8]在YOLOv2(You Only Look Once)网络中加入密集块并利用MobileNet结构压缩网络模型,实现安全帽佩戴检测,算法的检测速度得到显著提升.传统算法和深度学习技术在安全帽的佩戴检测上均已取得可观成果,但针对于本文的研究任务而言存在局限性,即未能生成自然语言对作业人员的安全帽佩戴情况进行描述,尚未达到图像理解的层面.
针对上述问题,本文提出一种安全帽佩戴图像描述生成方法.为解决传统的图像描述方法应用于施工场景所带来的细节描述不足的问题,采用基于目标检测的方法,对安全帽佩戴情况进行检测以提取视觉概念,结合规则和模板的方法生成施工人员安全帽佩戴的图像描述,加强了图像区域和语句描述的对应关系.为提高生成的语句对描述佩戴安全帽的人员数量的准确性,对目标检测模块进行改进,在原始的YOLOv3的基础上,通过改进多尺度预测结构以及增加锚框数量,以提高小目标的检测效果,进一步提高了语句生成的准确度.
2 相关工作
2.1 图像描述
图像描述是当前的研究热点,传统方法主要分为两种,分别是模板法和检索法.模板法需要对图像中的对象、属性、行为、场景进行检测,再将检测结果填充到固定的语言模板中生成图像语义标注.检索法则主要将图像描述的生成作为检索任务,通过检索与之最为接近的句子生成图像描述.Li等[9]首先检测出图中的对象和关系,然后利用预先定义的句子框架以生成图像描述.Mitchell等[10]利用句法树信息辅助描述语句的生成.模板法操作简单,生成的句子合乎语法,但由于句子模板固定,不适用于所有图像,生成的句子多样性不足.Kuznetsova等[11]从字幕标注中检索出给定图像的描述短语,对这些短语词组进行组合以生成描述语句.该方法属于检索法的一种,从现有的图像描述中检索出与给定图像最为契合的描述语句.此方法能够生成合乎语法的语句,但受限于训练集,对于特定的图像无法生成正确的描述语句.
近年来主要使用基于编码-解码(Encoder-Decoder)的方法生成图像描述.早期的研究中,编码器使用卷积神经网络(Convolutional Neural Network,CNN)提取图像特征,解码器采用循环神经网络(Recurrent Neural Network,RNN)处理文字序列以生成图像描述.Vinyals等[12]采用长短时记忆网络(Long Short Term Memory network,LSTM)替代RNN以处理描述语句的生成,与RNN相比,LSTM能够更好地存储长期信息,并有效解决训练过程中的梯度消失和梯度爆炸等问题.Xu等[13]将注意力机制应用到图像描述的研究中,生成相应单词的同时聚焦于显著对象.Lu等[14]提出一种自适应注意力机制,由图像和标注文本共同决定LSTM生成的下一个单词.基于编码-解码的方法,保证了图像描述的多样性和灵活性,但缺乏可解释性且目标细节描述不充分.
当前已有的图像描述的研究均是在公共数据集上进行,未曾发现关于特定场景的研究.针对安全帽佩戴情况的图像描述研究较为匮乏的现状,本文采用基于目标检测的方法,以生成安全帽佩戴的图像描述.
2.2 安全帽佩戴检测
目前已有不少学者对安全帽佩戴检测展开研究.Silva等[15]采用圆形霍夫变换(Circle Hough Transform,CHT)和方向梯度直方图(Histogram of Oriented Gradient,HOG)描述符以提取图像特征,使用多层感知器(Multi-layer Perceptron,MLP)对目标进行分类.此方法在单人佩戴的检测上效果较好,但在多人佩戴的检测上效果差,无法适用于多人图片.近年来,基于深度学习的目标检测技术发展迅速,主要分为两种,分别是基于区域建议的two-stage方法和无区域建议的one-stage检测方法.two-stage目标检测算法主要为RCNN(Regions with Convolutional Neural Network)系列,如RCNN[16]、Fast RCNN(Fast Regions with Convolutional Neural Network feature)[17]和Faster-RCNN[18],其中Faster-RCNN的检测效果最好.one-stage目标检测算法中,SSD(Single Shot multibox Detector)[19]和YOLO系列具有一定的代表性,如YOLO[20]、YOLOv2[21]和YOLOv3[22],其中YOLOv3的效果最好.Shi等[23]在YOLOv3的基础上采用图像金字塔的模式获取不同尺度的特征图,利用多尺度训练增加模型的适应性,提升了安全帽佩戴检测的效率与精度.无论是传统方法还是基于深度学习的方法,在安全帽的佩戴检测上均已取得可观的成果,但均未能实现有关安全帽的图像描述.
从算法的检测速度和精度综合考虑,本文采用基于YOLOv3框架的目标检测算法实现安全帽的佩戴检测,为安全帽佩戴的图像描述的生成提供基础.为使YOLOv3更适用于本文任务,对YOLOv3进行改进.在原始YOLOv3的基础上,改进多尺度预测结构和初始锚框参数以提升模型的检测性能.利用改进的YOLOv3算法提取视觉概念,结合预定义的语义规则和语句模板的方法,生成安全帽佩戴的图像语句描述.
3 本文算法
鉴于现有的图像描述研究方法所生成的语句较为粗略,缺乏一定的准确率.为提高描述语句的准确度,以生成更为贴切的安全帽佩戴的图像描述,本文结合目标检测领域的研究方法,从图像特征到语句描述映射的角度出发,加强图像区域和语句描述的对应关系,提出基于目标检测算法的安全帽佩戴的图像描述.本文算法的实现由目标检测和语句生成两个模块构成,目标检测模块采用改进后的YOLOv3算法实现,语句生成模块采用基于规则和模板相结合的方法实现,算法流程如图1所示.
图1 本文算法流程Fig.1 Algorithm flowchart of this paper
3.1 基于改进YOLOv3的安全帽佩戴检测
3.1.1 YOLOv3算法思想
YOLOv3的主要优点是仅利用单个CNN处理整张图片,对图像中的目标进行定位的同时并预测出其目标类别,将目标检测问题转换为回归问题.YOLOv3采用残差网络(Resnet)[24]的结构搭建了Darknet-53网络用以提取图像特征,并利用3种不同尺寸上的特征图对图片进行多尺度预测.其网络结构如图2所示,该网络由一系列的1×1的卷积层和3×3的卷积层组成,其中CBR模块是YOLOv3的一个基本组件,表示卷积后进行批标准化操作,用ReLU(Rectified Liner Uints)作为激活函数,另一个基本组件resn残差块组件由Res_unit残差单元所构成.
图2 YOLOv3网络结构图Fig.2 Structure of YOLOv3 network
该网络首先将不同大小的图像自动调整为416×416的固定尺寸,再将原图划分为13×13的网格,由目标中心点所在的网格负责该目标的检测.每个网格将预测覆盖在该网格上的3个边界框,以及这些边界框的置信度,每个边界框包含6个预测量:x,y,w,h,confidence和class,其中(x,y)表示预测框的中心与网格边界的相对值,(w,h)表示预测框相对于整张图片的宽度和高度的比值,confidence表示置信度,用以剔除掉低于阈值的边界框,class表示目标的类别.每个边界框的预测信息包含边界框的坐标、宽度和高度,边界框坐标计算公式如式(1)所示.
(1)
其中,(bx,by,bw,bh)表示预测的边界框中心坐标和宽高,(tx,ty,tw,th)表示网络学习的目标,(cx,cy)是网格的坐标偏移量,(pw,ph)是预设的锚框的维度.
除了坐标信息和边界框的置信度,还需预测C个预定义的目标类别的得分.置信度confidence计算公式如式(2)所示.
(2)
Prob(object)表示预测框对应的网格中含有待检测对象的概率,定义如式(3)所示.
(3)
(4)
3.1.2 改进多尺度预测结构
原始的YOLOv3网络采用多尺度预测的思想,设置了3种不同尺寸的特征图,大小分别为13×13、26×26、52×52.较大尺寸的特征图对位置信息的预测较准确,但包含的语义信息越少;较小尺寸的特征图包含较多的语义信息,但对位置信息的预测较粗略.在进行安全帽佩戴检测时,需要对施工人员以及安全帽等多个目标进行检测,由于拍摄距离的远近,使得本文数据集中的目标尺寸不一,存在较小目标.为进一步提高小目标的检测效果,改进YOLOv3的多尺度预测,采用13×13、26×26、52×52、104×104这4种尺度的特征图.越往后的预测层所对应的特征图尺寸越大,基于此特点,将尺寸较小的特征图上采样至同一尺寸并进行拼接,然后进行标准化卷积运算.
本文设置的目标类别分别为人(man)、安全帽(helmet)以及人戴安全帽(man wear helmet),故待检目标只有3个类别(C=3).因原始网络的类别数目为80,所以需要重新调整网络的输出类别数目以减少预测张量的维度,从而减少网络的运算量.调整后,每个尺度所产生的预测张量的维度仅为3×(4+1+3)=24,因此改进后的网络最终输出的4种尺度的预测张量大小分别为13×13×24、26×26×24、52×52×24、104×104×24.
改进后的算法检测过程如图3所示,首先将输入图片重置为416×416的大小,然后利用Darknet-53网络进行图片特征的提取,接着将特征向量送至特征金字塔结构中进行多尺度预测,最后对预测出的边界框进行非极大值抑制,以消除重复检测得到最终的预测结果.
图3 改进后的算法检测流程Fig.3 Detection flow of improved YOLOv3 algorithm
3.1.3 改进初始锚框参数
传统的YOLOv3网络每种尺度的特征图分别有3个锚框,尺度越大的特征图使用越小的锚框,以得到更多的目标边缘信息.原始的锚框参数由公共数据集聚类生成,公共数据集类别丰富,所确定的锚框参数值具有普遍性,但不适用于本文的安全帽佩戴数据集,因此在进行训练之前需要设计新的锚框,以提高边界框的检测率.
原始的YOLOv3采用K-means聚类算法初始化锚框,用以预测边界框的坐标.K-means聚类采用欧氏距离公式,锚框尺寸的大小会影响到检测准确率的高低,而IOU距离表示预测框与实际边界框的交并比,因此本文使用IOU距离公式以代替欧氏距离公式,从而避免使用欧氏距离公式所造成的影响.距离度量公式如式(5)所示.
d(box,centroid)=1-IOU(box,centroid)
(5)
其中,box表示实际边界框信息,centroid表示聚类中心,IOU表示预测框与实际边界框的交并比.
传统YOLOv3网络使用9个锚框并依次分布于3种尺度的特征图上,由于本文采用4种尺度的特征融合预测层,故原始锚框的数量不适用于本文任务.改进锚框参数值,增加锚框的数量并选取12个锚框,在自制的安全帽佩戴数据集上进行K-means聚类得到12个锚框参数值,从小到大依次排列,将其均匀分布于4种尺度的特征图上,分别对应于由大到小的4种尺度的特征图.
3.2 基于规则和模板的语句生成
本文通过预定义一个语义规则,并将其与模板法相结合,以提高语句生成的准确度.首先利用目标检测算法检测出图像中的视觉概念,其次结合预先定义的规则和句子模板,将检测到的视觉概念填充到句子模板中,最后生成安全帽佩戴的描述语句.
前期阶段利用改进后的YOLOv3实现关键目标检测,主要检测人、安全帽和佩戴安全帽的人这3类目标,以提取图片中关键的视觉概念,其中将佩戴安全帽的人作为一个整体,以检测出人和安全帽的佩戴关系.对这3类待检测目标分别设置一个初值均为零的三元组(m,n,p)以统计待检目标的个数,其中m表示检测出的总人数,n表示检测出的安全帽的总个数,p表示检测出的佩戴安全帽的人数.佩戴安全帽的人员应不超过施工现场的总人数(0≤p≤m),否则视为检测有误(p>m),无法生成安全帽佩戴的描述语句.若检测出佩戴安全帽的人数和总人数相等,即p=m则表示所有人均佩戴了安全帽;若检测出佩戴安全帽的人数和总人数不等,即p≠m则表示部分人员佩戴了安全帽,尚有人员未佩戴安全帽.安全帽佩戴的描述语句具体规则定义如表1所列.
表1 描述语句规则定义
Table 1 Definition of rules for describing statements
条件m>0m=0p>0p>mp 句子模板通过图片字幕标注生成,单词的生成来源于原始的图片字幕标注或是目标检测算法提取出的视觉概念.视觉单词的本质是一个标记,目的是为描述图像中特定区域的单词保留空位.本文采用目标检测算法以提取出视觉概念,结合基于规则和模板的方法,生成施工人员安全帽佩戴的图像描述语句,整体框架如图4所示. 图4 本文算法总体框架Fig.4 Overall framework of the proposed algorithm 针对图4中的图片而言,句子模板可为“ 本文使用Linux搭建实验开发平台,选用Ubuntu16.04作为操作系统,GPU选用NVIDIA GeForce GTX 1080Ti,CUDA8.0,CUDNN6.0,内存为12GB.实验使用Keras深度学习框架进行模型的训练和测试. 4.1.1 数据采集 本文主要对安全帽佩戴进行图像描述研究.关于图像描述的研究基本使用公共图像字幕数据集,如COCO[25]、Flickr8k[26]、Flickr30k[27]等,尚未发现有关安全帽佩戴的图像字幕数据集,因此本文自制了安全帽佩戴图像字幕数据集.由于采用基于目标检测算法实现安全帽佩戴的图像描述,因此本文同时制作了用于安全帽佩戴检测的数据集. 本文主要通过公共数据集中筛选、网络爬虫技术搜集、自行现场采集等方式采集样本,另从施工现场视频监控数据中采集图片,并加入多种噪声图片,如手拿安全帽的工人、没有安全帽的工人、戴着棒球帽或草帽的工人等,以保证数据集的丰富性,提高模型的泛化能力.所采集的数据包含各种背景条件、不同分辨率、不同质量的施工场所关于安全帽佩戴的图片,能够较为完备的反映真实场景的情况,共2800张.数据集样本如图5所示.从中选取1000张作为测试集,剩余1800张图片用于训练. 4.1.2 数据增强 利用数据增强策略扩充图像训练集,避免出现过拟合.对原始图片采用亮度增强及减弱、对比度增强及减弱、锐度增强及减弱、添加噪声和数据抖动等8种处理方式.其中,亮度和对比度分别增强为原图的1.2倍,锐度增强为原图的2倍,亮度和对比度减弱为原图的60%,锐度减弱为原图的10%.对原图添加方差为0.01的高斯噪声,以模拟数据采集中可能产生的噪声.实际采集到的图片中佩戴棒球帽、草帽等这类负样本,比佩戴安全帽这类正样本数量少,故采用数据抖动以解决正负样本分布不均的问题. 图5 数据集样本Fig.5 Samples of dataset 1800张原始图片经数据增强后得到14400张图片,从中随机选取9600张图片作为训练集,剩余4800张图片作为验证集.训练集和验证集中均包含图片及其相应的标注信息,而测试集不含标注信息,训练集和测试集的图片无重叠,以此验证本文方法的有效性. 4.1.3 数据标注 1)安全帽佩戴检测数据集制作 根据实验要求,仿照VOC2007的标注格式,使用开源标注工具LabelImg对图片进行多标签标注,自动生成相应的xml格式标注文件,其中包含对象名和真实边界框的坐标信息.标注的对象为3类分别为人(man)、安全帽(helmet)以及人戴安全帽(man wear helmet). 2)安全帽佩戴图像字幕数据集制作 根据实验要求,仿照COCO字幕数据集,在安全帽佩戴检测数据集的基础上进行字幕标注.针对图片字幕标注,尚未发现有开源的标注工具可供使用,因此本文采用Python编程和人工标注相结合的方式,对图片样本进行标注:1)利用Python编程,读取每张图片的图片名以及尺寸信息(宽和高),并赋予每张图片唯一的图片id编号;2)使用自行开发的标注软件对图片进行字幕标注,人工标注每张图片的5个描述语句,主要围绕人员的安全帽佩戴进行描述,并给每个语句赋予唯一的语句id编号.每张图片均有对应的1个图片id号和5个语句id号,以json格式存储图片字幕标注数据. 4.2.1 安全帽佩戴检测数据集的预处理 仿照VOC格式自制的安全帽佩戴数据集,标注信息包含目标的类别及边界框的坐标,需将标注信息进行归一化处理,以转换成网络可用的训练格式. 对样本标注数据归一化处理,即将样本标注数据除以图像的宽度和高度,以将最终的数据控制在0~1之间,便于训练样本数据的快速读取,同时满足多尺度训练的要求.具体归一化公式如式(6)所示. (6) 其中,(xmax,xmin,ymax,ymin)表示原始样本边界框标注信息,(width,height)表示图片尺寸,(x,y,w,h)表示归一化后的标注信息,(x,y)为目标的中心点坐标,(w,h)为目标的宽和高.归一化后的数据样本中,每张图片的每个目标的边界框信息均包含5个参数,即(x,y,w,h)和类别序号class_id. 公共数据集的锚框参数值不适用于本文的数据集,因此需要根据自制的安全帽佩戴数据集重新确定锚框的参数值.通过K-means聚类算法,在本文数据集上进行聚类分析,得到12个锚框参数值分别为(12,16),(24,17),(37,27),(52,38),(61,45),(70,52),(88,68),(93,194),(137,211),(154,315),(205,226),(224,355). 4.2.2 安全帽佩戴图像字幕数据集的预处理 本文参考Vinyals等人[12]的方法,对自制的图像字幕数据集进行预处理,主要操作为:1)截断标注样本中超过15个单词的字幕标注语句;2)删除标注样本中的“,”和“.”,并进行单词大小写的统一,将大写单词转换为小写;3)统计词频,并为标注样本中的每个单词赋予其唯一的id编号;4)构建一个词汇表,包含3组信息(单词id、单词以及词频),将标注样本中至少出现3次的单词存入词汇表中,剩余单词视为生僻单词,用“UNK”表示.在自制的图片字幕训练集上构建词汇表,训练集所构建的词汇表中,词频较高的10个单词如表2所列. 表2 词频较高的单词及其对应词频 单词词频单词词频a106464is31482man53247his19940helmet43076wears15984in38250yellow13649the34665without11845 根据本文自制的数据集的特点,对网络的配置文件做相应的修改.在进行训练之前,还需进行权重文件的转换操作,将官网提供的权重文件根据修改后的网络配置文件转换成Keras框架下的权重文件,以便加载预训练模型的加载,为模型的训练提供初始化参数. 训练时的批处理大小(batch)设置为64,即每轮迭代随机选取64个样本数据参与训练,分组(subdivision)设为8,即将样本分为8组送至网络训练,以减轻内存占用的压力.使用BN(batch normalization)规范网络模型,以提升模型的收敛速度.动量(momentum)设置为0.9,权重衰减(decay)设置为0.0005,以防止模型过拟合,初始学习率(learning rate)设置为0.001,每迭代5000次学习率衰减为原来的1/10. 模型最终迭代20000次,耗时约8个小时,其损失变化图如图6所示.从下图可知,随着迭代次数的增加,模型的损失在逐渐下降.在前4000次左右的迭代过程中模型迅速拟合,损失值下降速度快,当迭代10000次后损失值趋于稳定,只有些许振荡. 目前关于图像描述语句生成的评价标准主要分为人工评价和量化指标评价.人工评价,即给定一张图片及其生成的描述语句,人工评测其图像描述语句生成的质量,具有一定的主观性.量化指标评价,即通过计算生成的描述语句与对应的标注语句之间的匹配度,来衡量图像描述语句生成的优劣,此评价标准客观性较强,是较为主流的评价标准. 图6 模型损失随着迭代次数的变化曲线Fig.6 Model loss curve with the number of iterations 常见的量化指标包括:BLEU(Bilingual Evaluation Understudy)[28]、METEOR(Metric for Evaluation of Translation with Explicit Ordering)[29]、CIDEr(Consensus-based Image Description Evaluation)[30]等.BLEU指标起初用于对机器翻译的评价,后用于对图像描述的评价中,主要分析生成语句和人工标注描述语句之间n元组的共现程度,是基于N-gram共现统计的评价标准.METEOR指标通过计算生成语句与人工标注的描述语句之间的精度和召回率的调和均值,以衡量生成的描述语句和参考标注语句间的相似度.CIDEr指标将语句以向量形式表示,对每个n元组的权重进行计算,通过计算生成语句和人工标注的描述语句间的余弦距离来衡量图像标注的一致性. 本文采用以上3种评价指标以及人工测评相结合的方式,对实验结果分别进行定量和定性的分析. 本文采用改进的YOLOv3实现安全帽的佩戴检测,同时与Faster-RCNN[18]、SSD[19]、YOLOv3[22]算法进行对比实验.在测试集上对模型进行测试评估,以平均准确率AP(Average Precision)、3类目标的平均准确率均值MAP(Mean AP)和检测速度作为模型性能的评估指标,得到数据如表3所示. 表3 不同算法的检测效果对比 不同算法AP(%)manhelmetman wearhelmetMAP(%)检测速度(s)Faster-RC-NN87.6893.4586.0489.060.303SSD84.4786.5883.3284.790.083YOLOv391.8287.7588.6989.420.036本文算法95.5693.5794.1594.430.052 从中可见,在安全帽的检测AP值上本文算法与Faster-RCNN相接近,但在MAP值上本文算法提高到94.43%.因为本文以YOLOv3为基础,采用4种尺度特征融合预测,通过改进多尺度预测结构和初始锚框参数值,提高了模型的性能.但改进后增加了模型计算量,所以检测速度略逊于原始的YOLOv3.在本文的安全帽佩戴图像描述任务中,前期目标检测模型检测精度决定后一阶段语句生成的准确性.本文算法的MAP值优于其他算法,检测速度虽稍逊于YOLOv3,但仍比其他算法有优势.综合考虑,本文算法效果优于其他算法,在安全帽的佩戴检测上取得一定的效果. 采用多种数据增强策略,以提高模型的泛化性能,不同数据增强策略在本文数据集上对本文模型的影响如表4所列.从中可见,色彩增强(亮度、对比度、锐度)、数据抖动和增加噪声分别提升了1.81%、2.96%、2.17%的检测精度,因数据抖动策略解决了样本分布不均的问题,故提升效果最显著.这些策略的同时使用将模型的检测精度提升了3.98%. 表4 数据增强策略对本文模型的影响 策略亮度、对比度、锐度数据抖动增加噪声MAP(%)1×××90.452×√√92.623√×√91.474√√×92.265√√√94.43 另选取几组复杂场景下的测试图片,与其他算法进行对比实验,以便验证本文算法的性能,不同算法的检测效果如图7所示.选取的3组测试图片从左到右分别代表(1)单人佩戴安全帽的检测效果、(2)佩戴非安全帽的检测效果、(3)目标尺寸相差较大时的检测效果.图7(a)、图7(b)、图7(c)分别显示了测试图片在Faster-RCNN、YOLOv3以及本文算法下的检测结果图.从图7中(1)的对比结果可见,本文算法的检测结果较为理想,Faster-RCNN和YOLOv3均存在漏检安全帽的情况.从图7中(2)的对比结果可见,Faster-RCNN和YOLOv3均存在误检的情况,将佩戴棒球帽误检为佩戴安全帽,而本文算法不存在误检.从图7中(3)的对比结果可见,虽然三种算法均能检测出近处的工人安全帽佩戴的情况,但对于远处的工人,YOLOv3存在漏检的情况,而Faster-RCNN和本文算法能够检测出来,但在区分其安全帽的佩戴情况上,本文算法优于Faster-RCNN.图7的实验结果表明,本文对YOLOv3的改进带来了小目标检测效果的提升,并且增强了算法对复杂环境的适应性. 4.5.1 定量分析 本文前期利用改进的YOLOv3提取图像中的视觉概念,后期利用规则和模板相结合的方法生成图像的描述语句.为验证本文算法生成图像描述的有效性,在自制的安全帽佩戴图像字幕数据集上,与NIC[12]、Soft-Attention[13]、Adaptive[14]等图像描述算法进行对比,并用评价指标定量评估,结果如表5所列. 从表5可见,本文算法性能表现较好,BLEU-4上的得分与Adaptive持平,但在BLEU-1、METEOR、CIDEr指标上的得分均有略微的提升,分别提升了1.7、0.9、2.4.因为本文利用改进的YOLOv3对安全帽进行佩戴检测,加强图像区域和描述语句间的对应关系.采用基于语句模板的方法对安全帽佩戴进行图像描述,在模板法的基础上,通过引入规则使得本文算法能够较为准确地描述图片中佩戴安全帽的人数以及未佩戴安全帽的人数. 图7 不同算法在复杂场景下的检测结果Fig.7 Detection results of different algorithms in complex scenes 表5 不同算法在本文数据集上的性能比较 不同算法BLEU-1BLEU-4METEORCIDErNIC65.318.4——Soft-atten-tion68.120.919.5—Adaptive70.533.723.791.3本文算法72.233.724.693.7 4.5.2 定性分析 对无字幕标注的测试图片进行实验,定性分析本文方法的有效性,将本文方法与其他算法对于同一张图片生成的描述语句进行对比.分为以下两组对比实验,单人佩戴情况和多人佩戴情况,分别如图8、图9所示. 1)单人情况下生成语句的性能对比 图8 单人佩戴安全帽的图像描述生成效果Fig.8 Generation effect of image caption of singleperson wearing helmet 图8显示了单人安全帽佩戴描述,图8(a)为光照良好时的描述语句,图8(b)为光照不足时的描述语句.光照良好时,两种算法生成的描述语句虽略有差异,但均有较好的描述.光照不足时,本文算法更具优势,原因在于本文利用图像增强技术扩充数据集,提高了目标检测模型的有效性,以适用于光照较差情况下的安全帽佩戴视觉概念的提取,生成的语句更为符合图片的内容. 2)多人情况下生成语句的性能对比 图9 多人佩戴安全帽的图像描述生成效果Fig.9 Generation effect of image caption of multiplepeople wearing helmets 图9显示了多人安全帽佩戴描述,图9(a)为部分人员佩戴安全帽情况下的描述语句,图9(b)为目标尺寸差别较大情况下的描述语句.从中可见,两种算法各有优劣.NIC算法生成的描述语句具有多样性,但该算法易造成细节信息的丢失,不能准确描述佩戴安全帽的人员数量.由于本文前期对YOLOv3进行改进,通过改进多尺度预测结构和初始锚框参数,提升了目标检测模型的性能,使本文方法可以提取出更为准确的视觉概念.后期采用基于规则和模板相结合的方法生成图像描述,能够较好地描述出佩戴安全帽的人数,但从句子的多样性方面考虑,生成的语句略有不足. 综合以上情况考虑,本文方法能够针对不同复杂场景下施工人员的安全帽佩戴情况,生成较为准确的描述语句,表明本文方法的有效性. 本文针对施工人员安全帽佩戴情况进行图像描述的研究,使用基于目标检测的方法生成图像描述.在原始的YOLOv3基础上,改进多尺度预测结构和初始锚框参数值,提升了模型的检测性能.采用改进的YOLOv3对图像中的安全帽佩戴情况进行检测以提取视觉概念,进而结合规则和模板的方法生成安全帽佩戴的图像描述.在自制的安全帽佩戴数据集上进行实验,并将本文方法与经典算法进行对比,实验表明,本文方法在BLEU、METEOR、CIDEr等评价指标上的得分有略微的提高,相比于其他方法,本文方法在佩戴安全帽的人数方面能够生成较为准确描述语句.根据实验结果可知,本文方法生成的描述语句句式结构较为单一且多样性不足,在后续的研究工作中,将在此方面着重展开,以求生成准确且多样化的描述语句.4 实验结果及分析
4.1 数据集的制作
4.2 数据集的预处理
Table 2 Words with higher word frequency and
their corresponding word frequency4.3 模型的训练
4.4 评价标准
4.5 实验结果分析
Table 3 Comparison of detection effects of different algorithms
Table 4 Influence of data augmentation strategy
on the model of this paper
Table 5 Performance comparison of different algorithms
on the dataset of this paper5 结束语