当前疫情形势严峻,商场、火车站、地铁口等公共场所对人员流量的统计至关重要。“每天进出多少人?” “现在商场中人员数量有多少?”这些关键数据直接影响到相关防疫管控措施。因为人员基数较大、流动性较高,通过人工来进行流量统计费时费力,更难保障准确性。针对上述难点,大量场景开始使用深度学习中视觉技术来解决此类问题。
小伙伴肯定好奇,如何才能快速上手这么经典的深度学习产业应用呢?本次飞桨产业实践范例库开源人流量统计的产业应用方案,提供了从数据准备、模型训练及优化的全流程可复用方案,降低产业落地门槛,
适用于商场、地铁、高铁等多种场景
。
https://github.com/PaddlePaddle/paddledetection#产业实践范例库
图1 人流量统计结果
人流量统计任务需要在检测到目标的类别和位置信息的同时,识别出帧与帧间的关联信息,确保视频中的同一个人不会被多次识别并计数。本案例选取飞桨目标检测套件PaddleDetection目标跟踪算法中的FairMOT模型来解决人流量统计问题,不仅可以识别密度,还可以统计到人的流向,从而得到精确的进出人流信息。
FairMOT以AnchorFree的CenterNet检测器为基础,深浅层特征融合使得检测和ReID任务各自获得所需要的特征,实现了两个任务之间的公平性,并获得了更高的模型精度。
在产业落地时,场景差异较大,为了保障业务对模型精度和速度的要求,在baseline的基础上进行模型优化尤为重要。
本项目使用FairMOT作为基线模型(baseline),骨干网络(backbone)选择DLA-34。同时尝试了如下7种优化策略,供大家参考。
使用CutMix数据增强方式;
使用可变形卷积DCN;
使用EMA(指数移动平均)对模型的参数做平均,提高模型的鲁棒性;
使用Adam优化器和自适应学习率来加快收敛速度
加入注意力机制,让网络更加关注重点信息并忽略无关信息;
更换backbone:将baseline中的CenterNet的backbone由DLA-34更换为其他模型,如:DLA-46-C、DLA-60或DLA-102;
增加GIoU Loss。
滑动查看优化策略
模型优化的实验结果如图2所示,实验均在NVIDIA Tesla V100机器上实现,测速时开启 TensorRT。从实验结果可以发现,精度最高的模型并不是推理速度最快的,推理速度最快的模型,精度效果未必是最好的,具体使用什么模型还需要根据业务分析。
本案例为用户提供了基于Jetson NX的部署Demo方案,如下图2所示。支持用户输入单张图片、文件夹文件夹或视频流进行预测。详细流程参见JetsonNX部署方案:
https://github.com/cjh3020889729/The-PaddleX-QT-Visualize-GUI/tree/main/deploy/cpp/docs/jetson_deploy
飞桨目标检测开发套件PaddleDetection中提供丰富的检测算法,无论你追求的是高精度、轻量化,还是场景预训练模型,能以业界超高标准满足你的需求。同时还在目标检测的基础上,持续拓展了如人体关键点、目标跟踪、人体属性分析、行为识别等高阶任务功能,并且提供统一的使用方式及部署策略,让你不再需要进行模型转化、接口调整,更贴合工业大生产标准化、模块化的需求。
飞桨产业实践范例,致力于加速AI在产业落地的前进路径,减少理论技术与产业应用的差距。范例来源于产业真实业务场景,通过完整的代码实现,提供从数据准备到模型部署的方案过程解析,堪称产业落地的“自动导航”。
真实产业场景:与实际具有AI应用的企业合作共建,选取企业高频需求的AI应用场景如智慧城市-安全帽检测、智能制造-表计读数等;
完整代码实现:提供可一键运行的代码,在“AI Studio一站式开发平台”上使用免费算力一键Notebook运行;
详细过程解析:深度解析从数据准备和处理、模型选择、模型优化和部署的AI落地全流程,共享可复用的模型调参和优化经验;
直达项目落地:百度高工手把手教用户进行全流程代码实践,轻松直达项目POC阶段。
为了让小伙伴们更便捷地应用人流量统计范例教程,百度高级研发工程师于5月11日(周三)19:00点为大家深度解析从数据准备、方案设计到模型优化部署的开发全流程,手把手教大家进行代码实践。
关注【飞桨PaddlePaddle】公众号
获取更多技术内容~