如何在有限的算力下实现智能驾驶多任务高精度识别?

近年来,随着自动驾驶、车路协同等概念的日益普及,地图厂商、传统汽车厂商、互联网背景的“造车新势力”纷纷加入到智能升级的探索中。为了让智能驾驶更安全、更可靠,实现对周围环境的高精度实时感知技术非常重要。该技术不仅可以准确快速地识别车道线、行驶区域、行人、车辆等,还可以“绘制”出车辆的行驶路线。在地面上,为驾驶员提供车距监测、行人预警、车道偏离提醒、红绿灯提醒等一系列安全辅助功能,帮助驾驶系统高效决策。

70710c2110615070eb08d214547a8138.png

图1 百度地图AR导航功能展示

但在现实行业中,要实现高精度的行车环境感知并非易事,在实际路况中存在各种问题:

  • 摄像头拍摄的图像会受到树木、建筑物和车辆移动的影响;
  • 天气多变,适应白天、黑夜、雾雨等;
  • 车道线的磨损程度各不相同,不同区域的新旧车道线对识别的影响也很大。

针对上述场景,本次飞桨产业实践范例库基于真实场景中的车载影像数据,推出了目标检测和车道线分割多任务处理的智能驾驶感知实践示例,提供从数据准备、技术方案、模型训练优化,到模型部署的全流程可复用方案,有效解决了不同光照、不同天气等室外复杂环境下的目标识别问题,适用于AR地图导航、机器人教育、厂区自动巡检、自动驾驶等多个产业应用。

⭐项目链接⭐

https://github.com/PaddlePaddle/awesome-DeepLearning

所有源码及教程均已开源,欢迎大家star鼓励~

基于深度学习

实现驾驶环境意识

  ”

基于深度学习实现驾驶环境感知要对机动车、非机动车、行人以及交通信号灯(红灯, 黄灯, 绿灯,灭灯) 这7类对象进行目标检测, 同时对实车道线、虚车道线和斑马线3类目标进行分割, 并且要求检测速度不低于20 fps才能进一步端侧移植,因此,如何在有限算力下实现多任务的高精度识别将会是驾驶环境感知应用最核心的问题。

d5b9ac038f46a234c9e1a0fb42a26177.png

图2 场景识别目标说明

项目困难

难点数据:同一个目标(标签)在不同环境下呈现出较大的形状差异。例如,城市和农村地区的实车道线和虚线车道线难以区分;数据存在样本小、样本不平衡的问题,车辆和行人的标签较多。红绿灯数据比较少见。

任务很多:需要同时解决检测和分割两个任务。在选择模型和优化时,需要权衡准确性和速度两个方面。

效率高:模型要尽量小,训练与预测速度要尽量快,在V100的平台至少实现20fps才能端侧移植。

项目建议书

针对上述难点,在考虑模型的性能精度和速度后,最终选择了飞桨目标检测套件。

PaddleDetection中的PP-YOLOv2和飞桨图像分割套件。PaddleSeg中的HardNet模型作为Baseline模型进行相应的优化,使用多进程异步处理,进一步提升了部署性能。

ae063bc6e60cb4470ad111a99d2907c0.png

图3 baseline模型选择策略

解决方案优化

本算法设计重点关注计算效率、不平衡问题、小目标分布、模型稳定性四个方面,处理真实道路场景。

d83c761335325d646b8cf6b3c399fac0.png

图4 场景说明

检测模型优化过程

数据处理:

1、数据为车载记录仪拍摄的道路画面,其目标均为交通目标,尺寸和比例相对稳定,但经常会受到光照、传感器噪声等因素影响,偶尔还会出现运动模糊,为此在数据增强过程中,调整RandomDistort(随机像素替换) 中参数hue、saturation、contrast、brightness范围由到[0.8, 1.2],从而使得模型收敛效率显著提升。

2、为了提高模型的泛化能力,针对车载摄像头的场景,在训练全过程中随机加入albumentations库中的JpegCompression(降画质) 、MotionaBlur(运动模糊)、RandomBrightnessContrast(亮度对比度)等数据增强的方法。

dadaac6b82dcc340a56f1189a311de57.png

图5 数据增强策略说明

模型结构优化:

1、模型检测头复现,使用飞桨复现YOLOX Decoupled Head,相比之前的YOLOX Head检测精度提升了2%。

e19b794926e845971aec0512db7564cd.png

图6 不同检测头的精度对比

2、在PP-YOLOv2的Matrix nms的处理结果之后增加merge nms,增加保留框位置平滑策略(重叠框位置信息求解平均值),使框的位置更加精确。

2e8a417f9418c4f53f7fe6ba5e6e7c4e.png

图7 更换nms后位置精度示意

分割模型优化

1、由于项目中数据为车载记录仪拍摄的道路画面,分割的语义都是地面标识,所以在大小、尺寸、色彩方面都相对稳定,因此数据增强不需要太多,只需要能体现一定的变化规律即可,同时为了避免随机裁剪过程中导致实车道线和虚车道线产生混淆,因此在数据中去掉了随机裁剪的数据增强方式。

2、调整模型分辨率:HardNet 1024 (w) * 1024(h) ->1056(w) * 608(h),训练采用多尺度 。

项目效果

经过一系列的优化,模型实现了对驾驶过程中的机动车、行人、红绿灯、车道线等目标的识别,最终整体识别精度达到85%。

8808b476e08bc3fa7c44d1ddcac64b48.png

图8 效果展示说明

部署优化

一开始使用模型串联的形式,先进行分割的后处理,但时间不满足要求。通过进一步优化部署,最终采用多线程的方式加载模型并行预测,实现了高效部署,最终在v100服务器达到了22fps,满足端侧移植的条件。

52399d21ac722de0246eb6d385d2da30.png

图9 推理流程说明

部署方面使用飞桨原生推理库PaddleLite进行部署,满足用户批量预测、数据安全性高、延迟低的需求,快速在本地完成部署方案,当前部署方案已经发布,欢迎小伙伴们使用尝试。

9c1ad0e12bc2796deab2fcab71fcc484.png

图10 安卓app示范

工业实践示例教程

助力企业跨越AI落地鸿沟

  ”

飞桨产业实践范例,致力于加速AI在产业落地的前进路径,减少理论技术与产业应用的差距。范例来源于产业真实业务场景,通过完整的代码实现,提供从数据准备到模型部署的方案过程解析,堪称产业落地的“自动导航”。

  • 真实产业场景:与实际具有AI应用的企业合作共建,选取企业高频需求的AI应用场景如智慧城市-安全帽检测、智能制造-表计读数等;
  • 完整代码实现:提供可一键运行的代码,在“AIStudio一站式开发平台”上使用免费算力一键Notebook运行;
  • 详细过程解析:深度解析从数据准备和处理、模型选择、模型优化和部署的AI落地全流程,共享可复用的模型调参和优化经验;
  • 直达项目落地:百度高工手把手教用户进行全流程代码实践,轻松直达项目POC阶段。

精彩课程预告

  ”

为了让小伙伴们更便捷地实践和应用驾驶环境感知,百度飞桨产品经理将于3月17日20:30-21:00为大家深度解析从数据准备、方案设计到模型优化部署的开发全流程,手把手教大家进行代码实践。

欢迎您扫描二维码入群,获取免费直播课和播放视频链接,并有机会获得涵盖智慧城市、工业制造、金融、互联网等行业的飞桨行业实战实例手册!也欢迎有兴趣的公司和开发者与我们联系,交流技术,洽谈合作。

扫码报名直播课,加入技术交流群

👇

12ebc09fcc0d4cc483211b50a17ec39c.png

72706c8ec57e676f25c9568c57a01362.png

引文注释

  • [图片6来源] Ge Z, Liu S, Wang F, et al. Yolox: Exceeding yolo series in 2021[J]. arXiv preprint arXiv:2107.08430, 2021.
  • [图片5来源] 公开网络资源

2b4f81a3880f48fbb395f48248c0ab2a.gif

关注【飞桨PaddlePaddle】公众号

获取更多技术内容~

c345c1d5cb254dedef6a57aa0cecd9cd.png

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2022年3月16日 下午1:40
下一篇 2022年3月16日 下午2:04

相关推荐