环境卫生是城市的名片,智慧环卫更是智慧城市中不可缺少的板块。随着作业严格化、服务综合化、人口老龄化等趋势的发展,环卫行业面临诸多新问题和新挑战,而AI技术的发展成为一大助力,帮助环卫智能升级,实现设施智能化、运营管理信息化、分析决策智慧化。如何充分利用现有的环卫车辆和设备,对城市整洁度实现实时的监控?如何在减少人工的前提下,更及时地发现问题,解决问题?如何有效监督环卫作业的完成质量?
北京德厚泉科技有限公司基于飞桨目标检测开发套件PaddleDetection提供了一套完整的智慧城市垃圾检测方案,通过在市政车辆上安装摄像头对路面垃圾检测并分析,实现对路面遗撒的垃圾进行监控,记录并通知环卫人员清理,大大提升了环卫人效。把清洁工人从日复一日的街道巡检中解放出来,用深度学习还城市一片净土。
环境复杂但精度要求高:目标尺寸小,外形不规则,还有遮挡、堆叠、抖动、光线、天气等多种情况都容易影响识别精度
方案设计
针对以上难点和挑战,我们的解决方案和选型思路如下:
在真实数据缺失的情况下,主要通过网络搜集尽量贴近真实场景的数据图片(角度、光线、分辨率、清晰度)。并在标注过程中尽量精细的框选目标物,以肉眼可见的最小目标为标注基线,适当框选有重叠和遮挡的部分作为单一候选框的主体。
模型选择
模型评估
虽然通常目标检测模型是使用精度mAP作为评估指标,但是在垃圾识别项目的实际应用中,如果继续使用mAP指标进行评估则会有很大问题。主要原因是计算mAP时,由于实际垃圾的尺寸浮动较大,标注框和预测框之间的区域重合会有较大偏差,从而导致mAP值未必理想。然而,我们的最终目的是检测是否存在垃圾,以及垃圾在图片中的位置,并不在意检测到的是一堆垃圾还是一个垃圾。因此,我们重新将召回率与漏检率作为最终的评估指标,具体含义如下:
召回率
误检率
模型优化
本次范例提供了包括原始数据的扩充、加载预训练集多种优化方案。考虑到最终部署的硬件设备是算力和内存都比较受限的ARM设备,还需要进一步减小模型体积、提高预测速度。具体的,我们首先通过 PaddleLite opt提供的 FP16混合精度预测,减小模型体积,提高预测速度。
但是由于在部分如ARM V7等设备上无法支持FP16预测,于是,再次基于PaddleSlim提供的量化训练,将FP32浮点数量化成INT8整数进行存储和计算,减小模型体积的同时提高预测速度,再经过finetune训练减少量化运算带来的误差,降低量化模型的精度损失。
模型部署
本项目最终的部署环境为:车载终端设备,ARM CPU CortexA9 dual,256MB闪存。考虑到实际部署效率,采用 C++ 开发,在端侧设备上实现基于Paddle Lite C++ API的调用,准确检出道路垃圾。同时PaddleDetection中也提供了完整的使用示例和开发说明文档,可以参考以下教程快速学习,并针对实际项目进行开发和集成。
小编为你送上项目链接:
https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.4/deploy/lite
尤其需要注意的是,如果模型有多个输入,每一个模型输入都需要准确设置shape和data。具体如下图所示,可以通过飞桨可视化分析工具VisualDL查看模型的输入,并对照修改配置代码:
飞桨产业实践范例
助力企业跨越AI落地鸿沟
精彩课程预告
关注【飞桨PaddlePaddle】公众号
获取更多技术内容~