论文部分内容阅读
摘 要:目前垃圾分类主要依靠人工来进行,存在效率低、对人体健康有害的问题,文章提出了基于YOLO V3的垃圾自动定位及分类方法。首先,采集公共场所的废弃物图像并进行标注;其次,通过K-mean++确定先验框大小;最后,加载ImageNet数据集上预训练的权重进行迁移训练。结果显示:该方法能够有效完成垃圾的定位及分类,mAP可达82.87%。
关键词:YOLO V3;K-mean++;数据增强;垃圾分类
随着我国经济的发展和城镇化道路的实施,城市中产生的垃圾数量也在与日俱增,垃圾处理问题受到人们越来越多的关注。2019年4月26日,我国住房和城乡建设部等部门发布了《关于在全国地级及以上城市全面开展生活垃圾分类工作的通知》,决定从2019年开始按要求启动生活垃圾分类工作,所列的重点城市两年后需具备垃圾分类处理系統。对垃圾分类处理首先需要进行分类,而人工分类效率低,尤其在面对大量垃圾时,会由于分类环境恶劣、任务繁重对人的健康产生不利影响。如果垃圾数量过多,则可能无法完成对其的分类,而将剩余部分视为其他垃圾处理掉,对环境造成污染的同时,也浪费了可回收的资源。如今,伴随着人工智能,尤其是卷积神经网络在图像处理方面跨越式的发展,智能机器通过摄像头自动识别和定位不同种类的垃圾成为可能,进而可以实现对垃圾的自动分类投放,在减轻人工劳动量、提高分类效率的同时能够降低对环境的污染,减少对资源的浪费。
目标检测的方法有两种:(1)基于区域建议的两阶段法,主流的算法包括Fast R-CNN[1]和Faster R-CNN[2]。(2)无区域建议的一阶段法,主流的算法包括SSD[3]和YOLO V3。其中,YOLO V3不仅有较高的检测精度,而且检测速度也较快。本文选用YOLO V3对垃圾进行分类和定位,并根据公共场所垃圾图像的特点,重新选定了先验框大小及其他超参数。
1 试验数据
1.1 图像数据采集
本次试验的垃圾图像数据于2019年6—7月采集自太谷城区的公共场所。采集时从平视、俯视、斜视3个角度对垃圾进行图像采集,用手机作为采集设备,型号为红米note7,图像分辨率为4 000×3 000像素。图像数据中既有只含一种垃圾的图片,也有含两种或两种以上垃圾的图片。
1.2 数据集建立
本次试验共采集各类垃圾图像6 107张。其中仅含一类垃圾的图像有可回收物887张、湿垃圾873张、有害垃圾829张和干垃圾867张,含两类及两类以上垃圾的图像有2 651张。考虑到模型训练的速度及计算机内存和显存的占用情况,这里将所有图像在保证原始图像长宽比的前提下,压缩为416×416像素,空白部分用灰色(128,128,128)填充。从采集的各类垃圾图像6 107张中随机抽取1 220张作为测试集,剩余的作为训练集和验证集。使用LabelImg工具对图像进行目标位置及类别标注,生成XML文件,随后将其转为TXT文件,内含垃圾所属类别、中心坐标以及最小外接矩形框的长和宽。
为使最终的训练结果有较好的泛化性能,对训练集进行了数据增强,主要包括:水平翻转、垂直翻转、旋转180°、随机缩放宽高比例、随机剪切、亮度变化和饱和度变化。以一张垃圾图像为例,其图像数据增强结果如图1所示。经数据增强后,作为训练集和验证集的图像数量变为39 096张,后续训练时采用10折交叉验证。
2 检测方法
2.1 YOLO V3模型
YOLO V3模型是对YOLO V1和YOLO V2的改进。YOLO V3以Darknet-53为骨干网络,相对于YOLO V2中的Darknet-19去掉了池化层,改为用步长为2的卷积层,实现特征图的尺寸变换。除最后一个卷积层外,其余卷积层和Leaky ReLU之间都有一个BN层。Darknet-53网络通过对Resnet网络的借鉴使之拥有更深的网络深度,更好的分类效果。
YOLO V3采用多尺度检测,本文中图片大小为416× 416像素,所以多尺度对应的特征图大小分别为13×13像素,26×26像素和52×52像素。其中,13×13像素用于检测较大的物体,26×26像素用于检测中等大小的物体,52×52像素用于检测较小的物体,每种尺度对应3种先验框,共9种先验框。在对较小的物体进行检测时,将原图分为52×52个格子,当小物体的中心处于某个格子时,该格子对该物体进行检测。该格子输出的信息中包括物体预测框中心坐标(x,y)、预测框的宽与高(w,h)、物体而非背景的置信度C以及物体属于各类的可能性。对于像素为416×416的图片,YOLO V3可产生10 647个预测框,后期通过判断是否超过阈值和采用非极大值抑制来筛选预测框。
2.2 先验框计算
先验框参数不仅对YOLO V3在训练时的收敛速度有影响,而且对检测精度也会有一定程度的影响。为使YOLO V3对垃圾检测拥有较高的检测精度,本文对垃圾目标框采用聚类的方法来确定先验框参数。
K-means是一种常用的聚类方法,但K-means的聚类中心在初始时是随机选择的,这会导致最终的聚类结果存在较大的随机性。为尽量减小聚类结果的随机性,本文采用改进后的K-means++来确定先验框参数,并使用1-IOU代替欧氏距离作为聚类指标,其中IOU为垃圾目标框与先验框之间的交并比。经K-means++聚类确定的k=9时的先验框参数为(15,9)、(17,20)、(24,35)、(37,50)、(49,63)、(64,90)、(109,87)、(172,101)和(381,355)。
3 实验 3.1 评价指标
为评价本方法对垃圾进行定位及分类的性能优劣,本文使用平均精度均值(mean Average Precision,mAP)作为评价指标。平均精度均值可以通过计算精确度(Precision)和查全率(Recall)得到,具体计算公式为:
其中,TP为将某类垃圾正确预测为某类垃圾的个数,FP为将非某类垃圾错误预测为某类垃圾的个数,FN为将某类垃圾错误预测为不是某类垃圾的个数,AP为某类垃圾的平均精度。mAP是4类垃圾各自计算的AP的平均值。
3.2 训练设置
本文依靠迁移学习用经ImageNet数据集训练的Darknet-53参数进行初始化,训练时设置批次大小为16,最大训练次数为120 000,激活函数选用Leaky ReLU,优化器采用随机梯度下降算法(Stochastic Gradient Descent,SGD),初始学习率为0.001,动量为0.9,权重衰减正则系数为0.000 5,迭代至63 000次时,将学习率改为0.000 1,迭代至99 000次时,将学习率再改为0.000 01,迭代至120 000次或损失收敛时停止训练。在训练过程中通过比较损失大小,保存损失最小的模型参数。
3.3 识别结果
使用训练好的模型对测试集中4类共1 220张垃圾图片进行检测,其mAP可达82.87%,对测试集检测的部分结果如图2所示,其中,rec_w为可回收垃圾(recyclable waste),resi_w为干垃圾(residual waste),hou_f_w为湿垃圾(household food waste),haz_w为有害垃圾(hazardous waste),從图2可以看出本方法能对垃圾进行有效的分类和定位。
4 结语
基于对垃圾分类的要求,本文提出了一种基于YOLO V3的检测方法。该方法采用K-means++算法对先验框的大小进行了优化,利用YOLO V3完成了对垃圾的定位及分类,其最终的mAP可达82.87%,另外,得益于YOLO V3在目标检测速度上的优势,本文所提方法能够满足垃圾分类任务的要求,在城市垃圾分类方面有广阔的应用前景。
[参考文献]
[1]GIRSHICK R.Fast R-CNN[C].Washington:IEEE Conference on Computer Vision and Pattern Recognition,2015.
[2]REN S,HE K,GIRSHICK R,et al.Faster R-CNN:towards real-time object detection with region proposal networks[J].IEEE Transactions on Pattern Analysis&Machine Intelligence,2017(6):1137-1149.
[3]LIU W,ANGUELOV D,ERHAN D,et al.SSD:single shot multiBox detector[J].European Conference on Computer Vision,2016(6):21-37.
关键词:YOLO V3;K-mean++;数据增强;垃圾分类
随着我国经济的发展和城镇化道路的实施,城市中产生的垃圾数量也在与日俱增,垃圾处理问题受到人们越来越多的关注。2019年4月26日,我国住房和城乡建设部等部门发布了《关于在全国地级及以上城市全面开展生活垃圾分类工作的通知》,决定从2019年开始按要求启动生活垃圾分类工作,所列的重点城市两年后需具备垃圾分类处理系統。对垃圾分类处理首先需要进行分类,而人工分类效率低,尤其在面对大量垃圾时,会由于分类环境恶劣、任务繁重对人的健康产生不利影响。如果垃圾数量过多,则可能无法完成对其的分类,而将剩余部分视为其他垃圾处理掉,对环境造成污染的同时,也浪费了可回收的资源。如今,伴随着人工智能,尤其是卷积神经网络在图像处理方面跨越式的发展,智能机器通过摄像头自动识别和定位不同种类的垃圾成为可能,进而可以实现对垃圾的自动分类投放,在减轻人工劳动量、提高分类效率的同时能够降低对环境的污染,减少对资源的浪费。
目标检测的方法有两种:(1)基于区域建议的两阶段法,主流的算法包括Fast R-CNN[1]和Faster R-CNN[2]。(2)无区域建议的一阶段法,主流的算法包括SSD[3]和YOLO V3。其中,YOLO V3不仅有较高的检测精度,而且检测速度也较快。本文选用YOLO V3对垃圾进行分类和定位,并根据公共场所垃圾图像的特点,重新选定了先验框大小及其他超参数。
1 试验数据
1.1 图像数据采集
本次试验的垃圾图像数据于2019年6—7月采集自太谷城区的公共场所。采集时从平视、俯视、斜视3个角度对垃圾进行图像采集,用手机作为采集设备,型号为红米note7,图像分辨率为4 000×3 000像素。图像数据中既有只含一种垃圾的图片,也有含两种或两种以上垃圾的图片。
1.2 数据集建立
本次试验共采集各类垃圾图像6 107张。其中仅含一类垃圾的图像有可回收物887张、湿垃圾873张、有害垃圾829张和干垃圾867张,含两类及两类以上垃圾的图像有2 651张。考虑到模型训练的速度及计算机内存和显存的占用情况,这里将所有图像在保证原始图像长宽比的前提下,压缩为416×416像素,空白部分用灰色(128,128,128)填充。从采集的各类垃圾图像6 107张中随机抽取1 220张作为测试集,剩余的作为训练集和验证集。使用LabelImg工具对图像进行目标位置及类别标注,生成XML文件,随后将其转为TXT文件,内含垃圾所属类别、中心坐标以及最小外接矩形框的长和宽。
为使最终的训练结果有较好的泛化性能,对训练集进行了数据增强,主要包括:水平翻转、垂直翻转、旋转180°、随机缩放宽高比例、随机剪切、亮度变化和饱和度变化。以一张垃圾图像为例,其图像数据增强结果如图1所示。经数据增强后,作为训练集和验证集的图像数量变为39 096张,后续训练时采用10折交叉验证。
2 检测方法
2.1 YOLO V3模型
YOLO V3模型是对YOLO V1和YOLO V2的改进。YOLO V3以Darknet-53为骨干网络,相对于YOLO V2中的Darknet-19去掉了池化层,改为用步长为2的卷积层,实现特征图的尺寸变换。除最后一个卷积层外,其余卷积层和Leaky ReLU之间都有一个BN层。Darknet-53网络通过对Resnet网络的借鉴使之拥有更深的网络深度,更好的分类效果。
YOLO V3采用多尺度检测,本文中图片大小为416× 416像素,所以多尺度对应的特征图大小分别为13×13像素,26×26像素和52×52像素。其中,13×13像素用于检测较大的物体,26×26像素用于检测中等大小的物体,52×52像素用于检测较小的物体,每种尺度对应3种先验框,共9种先验框。在对较小的物体进行检测时,将原图分为52×52个格子,当小物体的中心处于某个格子时,该格子对该物体进行检测。该格子输出的信息中包括物体预测框中心坐标(x,y)、预测框的宽与高(w,h)、物体而非背景的置信度C以及物体属于各类的可能性。对于像素为416×416的图片,YOLO V3可产生10 647个预测框,后期通过判断是否超过阈值和采用非极大值抑制来筛选预测框。
2.2 先验框计算
先验框参数不仅对YOLO V3在训练时的收敛速度有影响,而且对检测精度也会有一定程度的影响。为使YOLO V3对垃圾检测拥有较高的检测精度,本文对垃圾目标框采用聚类的方法来确定先验框参数。
K-means是一种常用的聚类方法,但K-means的聚类中心在初始时是随机选择的,这会导致最终的聚类结果存在较大的随机性。为尽量减小聚类结果的随机性,本文采用改进后的K-means++来确定先验框参数,并使用1-IOU代替欧氏距离作为聚类指标,其中IOU为垃圾目标框与先验框之间的交并比。经K-means++聚类确定的k=9时的先验框参数为(15,9)、(17,20)、(24,35)、(37,50)、(49,63)、(64,90)、(109,87)、(172,101)和(381,355)。
3 实验 3.1 评价指标
为评价本方法对垃圾进行定位及分类的性能优劣,本文使用平均精度均值(mean Average Precision,mAP)作为评价指标。平均精度均值可以通过计算精确度(Precision)和查全率(Recall)得到,具体计算公式为:
其中,TP为将某类垃圾正确预测为某类垃圾的个数,FP为将非某类垃圾错误预测为某类垃圾的个数,FN为将某类垃圾错误预测为不是某类垃圾的个数,AP为某类垃圾的平均精度。mAP是4类垃圾各自计算的AP的平均值。
3.2 训练设置
本文依靠迁移学习用经ImageNet数据集训练的Darknet-53参数进行初始化,训练时设置批次大小为16,最大训练次数为120 000,激活函数选用Leaky ReLU,优化器采用随机梯度下降算法(Stochastic Gradient Descent,SGD),初始学习率为0.001,动量为0.9,权重衰减正则系数为0.000 5,迭代至63 000次时,将学习率改为0.000 1,迭代至99 000次时,将学习率再改为0.000 01,迭代至120 000次或损失收敛时停止训练。在训练过程中通过比较损失大小,保存损失最小的模型参数。
3.3 识别结果
使用训练好的模型对测试集中4类共1 220张垃圾图片进行检测,其mAP可达82.87%,对测试集检测的部分结果如图2所示,其中,rec_w为可回收垃圾(recyclable waste),resi_w为干垃圾(residual waste),hou_f_w为湿垃圾(household food waste),haz_w为有害垃圾(hazardous waste),從图2可以看出本方法能对垃圾进行有效的分类和定位。
4 结语
基于对垃圾分类的要求,本文提出了一种基于YOLO V3的检测方法。该方法采用K-means++算法对先验框的大小进行了优化,利用YOLO V3完成了对垃圾的定位及分类,其最终的mAP可达82.87%,另外,得益于YOLO V3在目标检测速度上的优势,本文所提方法能够满足垃圾分类任务的要求,在城市垃圾分类方面有广阔的应用前景。
[参考文献]
[1]GIRSHICK R.Fast R-CNN[C].Washington:IEEE Conference on Computer Vision and Pattern Recognition,2015.
[2]REN S,HE K,GIRSHICK R,et al.Faster R-CNN:towards real-time object detection with region proposal networks[J].IEEE Transactions on Pattern Analysis&Machine Intelligence,2017(6):1137-1149.
[3]LIU W,ANGUELOV D,ERHAN D,et al.SSD:single shot multiBox detector[J].European Conference on Computer Vision,2016(6):21-37.