环境卫生是城市的名片,智慧环卫更是智慧城市中不可缺少的板块。随着作业严格化、服务综合化、人口老龄化等趋势的发展,环卫行业面临诸多新问题和新挑战,而AI技术的发展成为一大助力,帮助环卫智能升级,实现设施智能化、运营管理信息化、分析决策智慧化。如何充分利用现有的环卫车辆和设备,对城市整洁度实现实时的监控?如何在减少人工的前提下,更及时地发现问题,解决问题?如何有效监督环卫作业的完成质量?
北京德厚泉科技有限公司基于飞桨目标检测开发套件PaddleDetection提供了一套完整的智慧城市垃圾检测方案,通过在市政车辆上安装摄像头对路面垃圾检测并分析,实现对路面遗撒的垃圾进行监控,记录并通知环卫人员清理,大大提升了环卫人效。把清洁工人从日复一日的街道巡检中解放出来,用深度学习还城市一片净土。
小伙伴们肯定好奇,如何才能快速上手这么有价值的深度学习产业应用呢?飞桨与德厚泉科技联合开源了垃圾检测的产业实践范例,提供了从数据准备、模型训练及优化的全流程可复用方案,降低产业落地门槛。
⭐点击阅读原文GET项目链接⭐
https://github.com/PaddlePaddle/paddledetection#产业实践范例库
所有源码及教程均已开源
欢迎大家使用,star鼓励~
场景难点
- 环境复杂但精度要求高:目标尺寸小,外形不规则,还有遮挡、堆叠、抖动、光线、天气等多种情况都容易影响识别精度
- 大量干扰下容易造成误检:交通标示物、行人等对识别造成很大干扰
- 车载硬件如何低保障部署效果:车载设备算力低,图片质量差,如何兼顾速度与精度。
方案设计
针对以上难点和挑战,我们的解决方案和选型思路如下:
在真实数据缺失的情况下,主要通过网络搜集尽量贴近真实场景的数据图片(角度、光线、分辨率、清晰度)。并在标注过程中尽量精细的框选目标物,以肉眼可见的最小目标为标注基线,适当框选有重叠和遮挡的部分作为单一候选框的主体。
模型选择
PaddleDetection提供了非常丰富的目标检测模型,我们需要从项目实际场景特点出发,选择最贴合实际部署需求的模型:小体积、高精度、预测速度快。
因此我们将候选模型锁定在 PP-YOLO-tiny 和 PP-PicoDet增强版这两个模型上。
接下来,在PaddleDetection 提供的模型基线中,通过简单的对比可以发现,PP-PicoDet-s-416在速度-精度的平衡上达到了目前同等体量模型中的最优性能,因此本范例将选择此模型,进行后续的演示。
模型评估
虽然通常目标检测模型是使用精度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落地鸿沟
飞桨产业实践范例,致力于加速AI在产业落地的前进路径,减少理论技术与产业应用的差距。范例来源于产业真实业务场景,通过完整的代码实现,提供从数据准备到模型部署的方案过程解析,堪称产业落地的“自动导航”。
- 真实产业场景:与实际具有AI应用的企业合作共建,选取企业高频需求的AI应用场景如智慧城市-安全帽检测、智能制造-表计读数等;
- 完整代码实现:提供可一键运行的代码,在“AI Studio一站式开发平台”上使用免费算力一键Notebook运行;
- 详细过程解析:深度解析从数据准备和处理、模型选择、模型优化和部署的AI落地全流程,共享可复用的模型调参和优化经验;
- 直达项目落地:百度高工手把手教用户进行全流程代码实践,轻松直达项目POC阶段。