[论文笔记] Line-CNN: End-to-End Traffic Line Detection With Line Proposal Unit

IEEE TITS 2019 YangJian

简介

名词解释:

  • LP: line proposal 候选线(和候选框类似) , 用于确定正负样本和车道线位置回归
  • LPU: line proposal unit, 一种网络结构, 与RPN中的结构类似, 主要是用来生成LP

本文提出了一个端到端的车道线检测模型Line-CNN, 该模型的使用ResNet提取特征, 使用RPN思想实现车道线检测, 其核心是提出LPU结构, LPU解决了车道线误差计算的问题, 使得该检测模型达到蛮好效果.

  • 端到端的车道线检测网络
  • SOTA & real time ( 30 FPS)

网络结构

  • 特征提取 使用ResNet提取图像特征,文中分别使用50, 101, 122, 200层网络进行实验, 保持性能和速度平衡情况下最终选择122层网络
  • 车道线检测 使用LPU依据LP直接预测整个车道线(位置和类别)

LPU

在车道线检测中使用射线代替RPN中的Anchor box, 这个射线就称为LP

  • 车道线都是从图片的左侧,右侧或者底部出现, 失在灭点消失, 所以只需在特征图的三个边界(左,右,下)的每个点生成一簇LP, 分别用 k l k_l kl​, k r k_r kr​, k d k_d kd​ 表示
  • 如果特征图高H,宽W, 则特征图共生成line proposal个数为 H ∗ ( k l + k r ) + W ∗ k d H*(k_l + k_r ) + W*k_d H∗(kl​+kr​)+W∗kd​
  • LPU直接在三个边界上的每个滑窗预测k条直线(直接预测车道线), k中的每个直线都有两个是否为车道线的置信度分数, S+1坐标,用于描述车道线位置
  • 一点区别: RPN: Anchor box -> region proposal -> 最终检测框; LPU(射线)->车道线

  • 用三个1x1的卷积分别在三个边界进行滑动, 每个位置生成了1024维的特征向量, 将该向量输入进全连接层, 分别为回归层和分类层
  • 由于迷你网络以滑动窗口的方式运行,完全连接的层分别在每个边界的所有空间位置上共享
  • 网络设计成了三个并行的1x1的卷积层, 每个卷积层之后分别连接一个回归层和一个分类层

车道线参数化表示

  • 原始图片用S条水平线均匀分割成S-1份, 水平分割线索引用1,2,3, … S表示, 注意: 是从图像底部->图像顶部顺序!!
  • 参数化表示一条车道线原始表示方式为一条曲线, 参数化表示为这条曲线和水平分割线的交点, 所以是点集
  • 车道线长度可以由起始索引s和结束索引e包含的点的数量可以直观的确定车道线的长度
  • 车道线 l l l 表示如下, l = { x s l , x s l + 1 , ⋯ , x e l } l=\left\{x_{s^{l}}, x_{s^{l}+1}, \cdots, x_{e^{l}}\right\} l={xsl​,xsl+1​,⋯,xel​}, s l s^l sl 是车道线 l l l的起始索引, s e s^e se为结束索引; LP表示为 L = { X s L , X s L + 1 , ⋯ , X i n f } L=\left\{X_{s}^{L}, X_{s^{L}+1}, \cdots, X_{i n f}\right\} L={XsL​,XsL+1​,⋯,Xinf​} X i n f = i n f X_{inf} = inf Xinf​=inf

车道线距离计算

D ( L i , l j ) = { ∑ p = s c e c ∣ X p − x p ∣ e c − s c + 1 , e c ≥ s c i n f , e c < s c D\left(L_{i}, l_{j}\right)= \begin{cases}\frac{\sum_{p=s^{c}}^{e^{c}}\left|X_{p}-x_{p}\right|}{e^{c}-s^{c}+1}, & e^{c} \geq s^{c} \\ i n f, & e^{c}<s^{c}\end{cases} D(Li​,lj​)={ec−sc+1∑p=scec​∣Xp​−xp​∣​,inf,​ec≥scec<sc​

车道线 l i l_i li​ 和 LP L i L_i Li​之间的距离用上述公式计算;

  • 起始索引选车道线和LP最大的索引, s c = max ⁡ ( s L i , s l j ) s^{c}=\max \left(s^{L_{i}}, s^{l_{j}}\right) sc=max(sLi​,slj​) 注意: 由于索引是从下往上递增的, 所以两者中的大的值是离边缘较远的那个索引.

  • 结束索引选车道线和LP最小的, LP索引结束索引会是无穷大, 即为车道线结束索引 e c = min ⁡ ( e^{c}=\min \left(\right. ec=min( inf, e l j ) = e l j \left.e^{l_{j}}\right)=e^{l_{j}} elj​)=elj​

    该距离度量公式可以计算两个车道线的距离, 可以做线的聚类

Line-CNN损失函数

  • 首先将LP L i L_i Li​ 设置正负标签, 如果满足1. D ( L i , l j ) = d D\left(L_{i}, l_{j}\right)=d D(Li​,lj​)=d 是最小的, 2. d < t p o s d<t_{pos} d<tpos​ 即小于阈值 设置该 L i L_i Li​为正标签

  • 由于一条车道线可能将多个LP设置为正标签, 所以将一个非正的LP设置为负标签如果该LP对于所有的车道线的距离都大于 t n e g t_{neg} tneg​

  • 没有标签的LP不会参与模型训练

L ( p i , r i ) = λ ∑ i L c l s ( p i , p i ∗ ) + ∑ i p i ∗ L r e g ( r i , r i ∗ ) \mathcal{L}\left(p_{i}, \mathbf{r}_{i}\right)=\lambda \sum_{i} \mathcal{L}_{c l s}\left(p_{i}, p_{i}^{*}\right)+\sum_{i} p_{i}^{*} \mathcal{L}_{r e g}\left(\mathbf{r}_{i}, \mathbf{r}_{i}^{*}\right) L(pi​,ri​)=λ∑i​Lcls​(pi​,pi∗​)+∑i​pi∗​Lreg​(ri​,ri∗​)

  • i i i是LP的索引
  • p i p_i pi​是 L i L_i Li​ (LP)预测为车道线的概率; p i ∗ p^*_i pi∗​是车道线的GT, 取值为1或0
  • r i r_i ri​ 是预测的S+1个坐标向量; r i ∗ r^*_i ri∗​ 是与 L i L_i Li​距离最小的 l i l_i li​的坐标向量
  • 分类损失为log损失; 回归损失是smoothL1, 回归损失只有正标签才有响应

r i ∗ = { e l j − s l j + 1 , x s l j − X s L i , x s l j + 1 − X s L i + 1 , ⋯ } \mathbf{r}_{i}^{*}=\left\{e^{l_{j}}-s^{l_{j}}+1, x_{s}^{l_{j}}-X_{s} L_{i}, x_{s^{l_{j}}+1}-X_{s} L_{i}+1, \cdots\right\} ri∗​={elj​−slj​+1,xslj​​−Xs​Li​,xslj​+1​−Xs​Li​+1,⋯}

  • 第一个位置为点的数量
  • 区域位置为车道线到LP的偏移量
  • 实际计算过程中将 s l j = s L i s^{l_{j}}=s^{L_{i}} slj​=sLi​, 将真实车道线的起点等于LP的起点, 为了正确计算回归损失

特征图上提取的LP如何映射回原图

网络输入原始图像尺寸为288x512, 假设特征图为原来的1/16, 特征图大小为18x32; 特征图上的每个像素生成的k( k l k_l kl​,或 k r k_r kr​,或 k d k_d kd​)个LP会映射到原始图像中, 和RPN的Anchor映射会原图的原理是一样的, 这个是我猜的, 毕竟论文中也没写实怎么映射的, 需要看代码了FC.

总结

为了解决车道线检测问题, 提出了LPU来提取LP用于车道线的位置回归和类别判断, 思路挺朴素但是效果挺好; 文章不足, 特征图提取的LP如何映射回原图没有写, 还是我自己猜的, 应该和RPN差不多; 数据集代码都没有, 简直太坑了, 数据集可以没有, 代码不开源都不知道细节怎么实现的, 好在LaneATT是开源的, 从这里应该能够知道这篇文章的实现细节吧, 但愿如此.

[论文笔记] Line-CNN: End-to-End Traffic Line Detection With Line Proposal Unit相关推荐

  1. 论文笔记 Object-Aware Instance Labeling for Weakly Supervised Object Detection - ICCV 2019

    Object-Aware Instance Labeling for Weakly Supervised Object Detection Kosugi ICCV, 2019 (PDF) (Citat ...

  2. 论文笔记 Feature Selective Anchor-Free Module for Single-Shot Object Detection - CVPR 2019

    2019 FSAF Feature Selective Anchor-Free Module for Single-Shot Object Detection Chenchen Zhu, Yihui ...

  3. 【论文笔记】A Transformer-based Siamese network for change detection

    论文 论文题目:A TRANSFORMER-BASED SIAMESE NETWORK FOR CHANGE DETECTION 收录:IGARSS 2022 论文地址:https://arxiv.o ...

  4. 读书笔记:Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks

    Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks 著名的faster R-CNN 当然应该好好 ...

  5. 【论文笔记】CNN for NLP

    什么是Convolutional Neural Network(卷积神经网络)? 最早应该是LeCun(1998)年论文提出,其结果如下:运用于手写数字识别.详细就不介绍,可参考zouxy09的专栏, ...

  6. [论文笔记]基于 CNN+双向LSTM 实现服饰搭配的生成

    论文:<Learning Fashion Compatibility with Bidirectional LSTMs> 论文地址:https://arxiv.org/abs/1707.0 ...

  7. [深度学习论文笔记]Multimodal CNN Networks for Brain Tumor Segmentation in MRI

    Multimodal CNN Networks for Brain Tumor Segmentation in MRI: A BraTS 2022 Challenge Solution MRI中用于脑 ...

  8. 论文笔记-YOLOv4: Optimal Speed and Accuracy of Object Detection

    论文地址:https://arxiv.org/pdf/2004.10934v1.pdf code:https://github.com/AlexeyAB/darknet. 摘要 有大量的技巧可以提高C ...

  9. 【论文笔记】Region-based Convolutional Networks for Accurate Object Detection and Segmentation

    <Region-based Convolutional Networks for Accurate Object Detection and Segmentation>是将卷积神经网络应用 ...

  10. 论文笔记 EMNLP 2021|Treasures Outside Contexts: Improving Event Detection via Global Statistics

    文章目录 1 简介 1.1 动机 1.2 创新 2 方法 2.1 语义特征提取器 2.2 统计特征提取器 3 实验 1 简介 论文题目:Treasures Outside Contexts: Impr ...

最新文章

  1. jmeter ForEach控制器学习
  2. 世界十大无法科学解释灵异事件(进来发表自己看发)
  3. win10企业版更新和安全中没有 “恢复”这个选项_通知:微软已强制对Windows 10更新升级...
  4. 1万字30张图说清TCP协议
  5. 我为什么放弃饿了么产品总监不干,却从事自由职业?
  6. Python-Learn
  7. 物联网linux_Linux的未来,Google的物联网标准等
  8. python pyqt教程_『开发技巧』PyQt5入门教程
  9. java 如何取01 zz_java中synchronized用法(zz)
  10. Leetcode 5
  11. 基于Javaee的影视创作论坛的设计与实现(含源文件)
  12. 数据可视化实战案例分享
  13. 守望先锋等FPS游戏的网络同步
  14. 微信摇一摇linux,关于微信摇一摇iBeacon配置流程
  15. 阿里云的专业技术认证分为哪些?为啥要获得阿里云的ACP认证!
  16. 舌尖上的职场(三)我来买单!
  17. 这是一篇转载:HOG特征(这是我看到过的讲的最适合我的博客)
  18. python递归解压文件_递归调用解压zip包或rar包
  19. python基础学习与应用
  20. java cas logout无效_CAS logout 解决方案

热门文章

  1. 综合实验一 狐狸逮兔子
  2. vivo电池损耗指令代码_iPhone提高电池续航的10个技巧,收藏版
  3. 算法艺术与信息学竞赛
  4. [iOS翻译]《iOS7 by Tutorials》在Xcode 5里使用单元测试(下)
  5. 【更新】网盘不限速下载 2021.01.13
  6. Java 垃圾回收器与内存分配策略 JVM
  7. 就业歧视“花样翻新” 学者建议制定专门法律
  8. 如何看待职场的越级汇报问题
  9. 通过简单的计算理解sumproduct函数(图文)
  10. word打印机显示服务器脱机,电脑中打开word文件时总显示打印机没有响应的解决方法...