陆 宾,代旭尧
(上海外国语大学附属外国语学校东校,上海 200086)
河道漂浮物治理以及水体污染监测是城市环境治理的重要部分,但传统河道治理主要依靠人工驾驶船舶的方式,不仅耗时耗力且船舶驾驶过程本身也会产生污染。近年来,利用无人机、无人船航拍河道的方式逐渐代替了人工巡检,但漂浮物或污染物的判别还主要依靠人工方式,因为无人机航拍过程中存在背景干扰,且存在污染水体颜色不明显、细小漂浮物垃圾在航拍图片中占比过小很难识别等困难,航拍方式起到的作用有限。
近年来,随着人工智能的发展,特别是基于机器学习目标检测技术的发展,目标检测技术被应用在河道漂浮物垃圾分类检测及污染水体检测领域,通过机器学习对无人机航拍图片进行图像分割,对分割区域目标的颜色、面积和纹理等进行特征提取后分类识别,自动判断是否为漂浮物,可大幅提高河道治理的效率。
本研究基于百度飞桨Paddlex 平台YOLOv5s 深度学习模型,针对漂浮物垃圾在无人机影像中占比小、漂浮物垃圾类别不均衡、污染水体和正常水体在光线干扰下容易混淆等情况进行改进,降低了检测过程中不同类别漂浮物精度差异,同时大幅提高了饮料包装等小目标漂浮物的检测精度。
基于深度学习的目标检测算法主要有双精度目标检测算法和单精度目标检测算法两类。单精度检测算法最具代表性的有YOLO 系列[1-3]和SSD 系列[4-5],双精度目标检测算法最具代表性的有Fast R-CNN[6]、Faster R-CNN[7]、R-FCN[8]和Mask R-CNN[9]。双精度检测算法虽然精度高,但是检测慢,对硬件配置要求较高,不能满足河道检测便利性和实时性的要求。单精度算法省略了区域提取环节,算法速度快,但是需要对小目标检测精度及多类别检测方面进行优化。
和其他检测算法相比,YOLOv5s 算法省去了穷举候选框步骤,兼顾实时性检测效果的同时提高了多尺度目标检测精度,采用Pytorch 框架简化代码,提升了GPU 运行速度,在公开测试中检测精度和速度均优于其他单阶段目标检测算法[10]。因此本研究采用了YOLOv5s 算法。YOLOv5s 算法网络结构如图1 所示。
图1 YOLOv5s 算法网络结构
算法自动将图片缩放至608×608 大小后划分成S×S个网格,经过卷积、归一化等操作,将图片特征提取到19×19、38×38、76×76 这3 个不同尺寸的特征图上,特征图有3×(1+4+B)个通道,以此预测3 种不同形状的目标。其中,3 为Anchor box 个数,1 为锚框置信度,4 为先验锚框坐标,相对于预测框坐标的偏移量(tx,ty,th,tw),B为目标类别总数。最后得出锚框置信度C的公式如下:
式中:P(O)为目标中心点在网格中的概率的数值;I为真实框与预测框的交并比值。
锚框的类别置信度公式如下:
如前所述,为了满足小目标检测精度及多类别检测2 个方面特殊的要求,本研究在YOLOv5s 算法基础上针对Mosaic 增强模块[11]、图像增强模块[12]及SPP模块[13]进行了改进。
YOLOv5s 的Mosaic 增强默认将4 幅图片通过随机缩放、裁剪、排列等方式拼接,本研究中调整为将一张选定的图片与随机8 张图片,共9 张图片随机裁剪、拼接到一张图上,来提高模型对小目标的检测性能(自定义load_mosaic9 函数)。Mosaic 增强对比如图2 所示。
图2 Mosaic 增强对比
为了消除水面阳光反射或阴影的影响,通过调用Albumentations 增强包,对图像进行直方图均衡化处理。Albumentations 是一个用于图像增强的Python 库。Albumentations 可实现丰富多样的图像变换操作,这些操作对性能进行了优化,同时为不同的计算机视觉任务(包括对象分类、分割和检测)提供了简洁而强大的图像增强接口。阴影消除对比如图3 所示。
图3 阴影消除对比
在原有SPP 模块的5×5、9×9 和13×13 这3 个最大池滤波器基础上,增加一个3×3 滤波器,进一步提升模型的感受野。SPP 改进对比如图4 所示。
图4 SPP 改进对比
本研究采用了开放数据集(FloW 数据集)。该数据集来自IEEE International Conference on Computer Vision 2021 (ICCV 2021)。FloW 数据集和其他垃圾检测数据集的对比如图5 所示。
图5 FloW 数据集和其他垃圾检测数据集的对比
FloW 数据集包括图像(FloW-Img)及多模态(FloW-RI)2 个子数据集。本研究仅使用FloW-Img子数据集,FloW-Img 包含2 000 张图像和5 271 个标记目标,小目标(Area 小于32×32)占其中的50%以上。除了标注的图像,还包括200 个未标注的视频序列。数据集采集于不同的光照和波浪条件下,在不同方向和视角上对目标进行了观测。数据集使用LabelImg 工具进行标注。
本研究使用的硬件设备主要是mac book pro2015版,软件环境为Windows10 操作系统,采用Python3.10.8编程语言、百度飞桨Paddlex 包。
为了进行训练,研究将数据划分为训练集、验证集和测试集,比例为7∶2∶1。Paddlex 训练参数设置如表1 所示。
表1 训练参数设置
经训练后,本模型较好地过滤了倒影,识别了常见的河道漂浮垃圾,如塑料袋、饮料瓶、零食包装袋、泡沫饭盒、泡沫及树枝等,并对正常和污染水体的颜色进行了区分。部分识别效果图如图6 所示。
图6 识别效果图
研究采用类别均衡准确率(meanAverage Precision,mAP)来评估模型检测精度,公式如下:
式中:amAP为多个样本查准率和查全率曲线下面积的均值;P为查准率的数值;R为查全率的数值。
经分析,优化后的检测算法类别均衡准确率可以达到67.36%,常见的漂浮垃圾识别准确率可以达到65%以上,达到了预期目标。
本研究基于百度飞桨Paddlex 模型库,采用YOLOv5s 深度学习网络,对河道漂浮垃圾及污染水体水质进行分类检测。所采用的数据集为FloW 公开数据集,该数据集采用LabelImg 工具对河道漂浮垃圾及污染水体进行标注,数据集包含2 000 张图像和5 271 个标记目标,小目标(Area 小于32×32)占其中的50%以上,数据集采集于不同的光照和波浪条件下,基本覆盖了常用场景。
鉴于河道漂浮垃圾及污染水体水质检测中的小目标占比较高、类别不均衡等特点,对YOLOv5s 模型中的Mosaic 增强、图像增强及SPP 模块进行了针对性改进,优化后的检测算法类别均衡准确率可以达到67.36%,常见的漂浮垃圾识别准确率可以达到65%以上,达到了研究目的。