当前位置:   article > 正文

车道线检测1. lanenet代码精读(记录)_lanenet ncnn

lanenet ncnn

前言知识点:

因为公司做自动驾驶,所以打算对自动驾驶中的一些任务有个了解,看看论文,首先是一篇基于2d视觉的一篇车道线检测的文章。首先先上资料,也供大家学习参考,最后一个是3d检测的

Lane Detection(一)Traditional lane detection method - 知乎

Apply IPM in Lane Detection from BEV | LeijieZhang

实例分割最新最全面综述:从Mask R-CNN到BlendMask - 知乎

利用逆透视变换获取车载图象的鸟瞰图_玉米味土豆片的博客-CSDN博客_opencv 鸟瞰图

GitHub - amusi/awesome-lane-detection: A paper list of lane detection.

通用汽车最新提出:3-D车道线检测新方法 - 腾讯云开发者社区-腾讯云

这里再写一些资料的补充

IPM Transform的优势可以看第一篇,还有在于遮挡问题,也就是车对于车道线的这档问题

                                                                      侵删

OHEM online hard example mining 数据增强解决正负样本不平衡,其主要是不需要人为设定正负样本的比例。算法的核心思想是对样本进行训练,选择其中loss较高的N个样本作为难例,表示对分类和检测影响较大的样本,然后将筛选得到的这些样本采用反向传播进行loss下降。

 模型初始化,模型分开为两个部分,front负责模型的主干以及分类头等等,而back_end负责对于模型输出进行处理以及loss的计算

直接看模型,首先se_block就是基本模型模块单元,centext_embedding_block一个模块, _GatherExpansion是采用se_block的基础上进行了深度可分离卷积, 分为_apply_ge_when_stride_equal_one和_apply_ge_when_stride_equal_two,是深度可分离卷积中stride的值的区别,当为2时会导致下采样。

具体模型结果如下图

 可以看到整体模型架构就是

先并行使用两个模块提取信息,再采用aggregation_branch进行信息的融合,在分开两个分割头,一个头是二进制的语义分割,用来区分背景与车道线,另一个负责实例分割,将不同的车道线分割开。

然后就可以进入到back_end中看看head和loss

 先看看head,其实非常简单,就是拿到backbone输出得到的二值分割和实例分割的结果,对于二值就是用来区分背景和车道线,简单的二分类问题,采用softmax加上argmax来做。也就是对应下图的第二个

         而对于实例分割模块,本文采用度量学习,聚类的思想来使得不受限于车道线的数目,简单来说就是通过一个bn-relu-conv2d的结果来使得输出结果尺寸与原图一致,并且每个像素点用emding_dim来表示,其实就是做一个embeding。

然后看最重要的loss

 先看二值的,也很简单,就是三个通道,每个通道都做ce

 核心看discriminative_loss看看度量学习是咋搞的

 这里其实也是主要看discriminative_loss_single,其他的就是看tf.while_loop这个函数,就是判断cond是否满足,然后循环执行body,其实就是bach中的数据一个一个来都别急

 前两步没啥可说的,就是调整数据格式,需要看的是这个函数

 同时利用tf.unsorted_segment_sum实现将每个像素分到自己的label,也就是将像素聚类区分,这里不太好理解,就是说,一共有这么多类,然后idx就是每个像素对应的类的索引,所以就可以得到每个像素到底是哪个类

 tf.reduce_mean 函数用于计算张量tensor沿着指定的数轴(tensor的某一维度)上的的平均值,主要用作降维或者计算tensor(图像)的平均值, tf.subtract减法,tf.divide对应元素相除

在论文中损失函数分为两份,也就是Lvar和Ldist

 一个使得同一类的像素点与均值更加靠近,而另一个使得不同类的像素点远离。这tensorflow没咋用过,用pytorch居多,这函数太多,理解意思即可。

tensorflow太难读了,后续再补上,看论文知识点可以参考

Lane Detection(二)LaneNet - 知乎

如有错误,欢迎批评指正

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/841181
推荐阅读
相关标签
  

闽ICP备14008679号