作者丨StrongerTang
来源丨https://zhuanlan.zhihu.com/p/496228909
编辑丨计算机视觉工坊
分享前段时间看的一篇车道线检测方向的新工作,也是中了最近公开结果的2022CVPR,是上海交大、华东师大、香港城市大学和商汤科技合作完成的,代码已经开源。
论文链接: https://arxiv.org/abs/2203.02431
代码链接: https://github.com/voldemortX/pytorch-auto-drive
如上图所示,基于深度学习的车道线检测方法可分为三大类:基于分割的方案(图中绿色示例)、基于点检测的方案(图中蓝色示例)和基于多项式曲线的方案(图中黄色示例)。
其中基于分割和点检测的方案一般效果性能更好,但基于分割方案和基于点检测方案的表征是局部的、间接的,且在多项式曲线中的抽象因子(a, b, c, d)难于优化。为此,文章提出了基于三次B´ezier 曲线的方案,即上图中的红色曲线和虚线框,因为贝塞尔曲线具有易于计算、稳定、转换自由等特点。此外,作者也设计了基于可形变卷积的特征翻转融合模块,进行车道线对称属性的探究。
最终文章的方案在保持高速度(>150FPS)和小尺寸(<10M)的同时,在车道线检测基准数据集LLAMAS上取得了新的SOTA表现,同时在TuSimple和CULane数据集上取得了竞争力的精度表现。
贝塞尔曲线(以3阶为例)是依据四个位置任意的点坐标绘制出的一条光滑曲线。其通过控制曲线上的四个点(起始点、终止点以及两个相互分离的中间点)来创造、编辑图形。其中起重要作用的是位于曲线中央的控制线。这条线是虚拟的,中间与贝塞尔曲线交叉,两端是控制端点。移动两端的端点时贝塞尔曲线改变曲线的曲率(弯曲的程度);移动中间点(也就是移动虚拟的控制线)时,贝塞尔曲线在起始点和终止点锁定的情况下做均匀移动。
对于任意阶贝塞尔曲线,可通过以下公式进行表示:
文章也对贝塞尔曲线和多项式方程曲线进行了对比实验,如下表所示,表中指标是在TuSimple测试集上的结果,越低越好。
通过上述实验,文章选择使用经典的3阶贝塞尔曲线(n=3), 因为实验中发现3阶足够用来进行车道线建模,同时与3阶多项式曲线相比具有更好的拟合能力,而3阶多项式曲线是之前众多方案中的基础方程(论文中如此说),实际小汤在自己参与的部分工作及和同行交流中得知,目前各家实际量产中的方案也大都为3阶多项式曲线方案。文章也指出更高阶的曲线并没有带来相应的性能提升,但却会由于高自由度而造成不稳定性。
对于输入的RGB图像,经过特征提取得到的特征图送入特征翻转融合模块,得到 CxH/16xW/16 大小的特征图,再经过平均池化得到的CxW/16的特征图,最后经过一个分类和一个回归分支得到相应的贝塞尔曲线结果。
特征翻转模块是文章的主要工作之一。
通过对车道线作为历史曲线来建模,文章集中于各条车道线的几何特性,如瘦、长、连续等特性。当从前视相机的角度来考虑车道线的全局结构事,道路具有空间等分的车道线,近似于对称,例如。左边车道线的存在可能暗示其右侧存在对应的车道线。文章对这种对称性进行建模,为此设计了特征翻转模块。
文章还在ResNet backbone上设计了一个额外的二分类分割分支,旨在加强对于空间细节的学习。并通过实验发现这个额外的分支只有在和特征翻转融合模块一起工作时才起作用。这是因为分割任务的定位有利于提供一个空间上更准确的特征图,这个反过来支持翻转特征图之间更准确融合。
这个额外的二分类分割分支只在训练时使用,推理时关掉。
文章通过上图所示的Grad-CAM可视化效果对这一设计的影响进行了说明,详细细节可以阅读原文。
因为在车道线检测数据集中,并不存在正负样本不平衡问题,所以分类和分割都使用了简单的加权交叉熵损失。
Results on test set of CULane and TuSimple. *reproduced results in our code framework, best performance from three random runs. **reported from reliable open-source codes from the authors.
文章给出的是效果比较好的结果,但是在匝道、大拐弯等场景效果还是有问题,感兴趣的朋友可以自己跑一下代码看看。(以下四张是用文章开源代码和权重跑的结果,感兴趣的可以自己跑一下看看)
最后,由于自己对车道线看的不多,写作能力也有限,有不对的地方欢迎大家批评指正。也欢迎对车道线检测、自动驾驶、计算机视觉等方向感兴趣的朋友加入 自动驾驶交流群 一起学习一起玩!!
本文仅做学术分享,如有侵权,请联系删文。
干货下载与学习
后台回复:巴塞罗那自治大学课件,即可下载国外大学沉淀数年3D Vison精品课件
后台回复:计算机视觉书籍,即可下载3D视觉领域经典书籍pdf
后台回复:3D视觉课程,即可学习3D视觉领域精品课程
计算机视觉工坊精品课程官网:3dcver.com
1.面向自动驾驶领域的多传感器数据融合技术
2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)
9.从零搭建一套结构光3D重建系统[理论+源码+实践]
10.单目深度估计方法:算法梳理与代码实现
11.自动驾驶中的深度学习模型部署实战
12.相机模型与标定(单目+双目+鱼眼)
13.重磅!四旋翼飞行器:算法与实战
14.ROS2从入门到精通:理论与实战
15.国内首个3D缺陷检测教程:理论、源码与实战
重磅!计算机视觉工坊-学习交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。
▲长按加微信群或投稿
▲长按关注公众号
3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、可答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~