本周工作
第三周继续探索相关的车道线识别的网络,上一周的对于RESA的探索中,当把模型跑通时,发现该模型的时间也并不足够快,在3090显卡上1280*720的图片帧率为50帧左右,这将在Jeston的板子上会很慢,因此我还需要进一步探索更快的车道线检测办法来实现实时检索。
再不断翻阅论文的过程,我发现Ultra-fast-lane-detection这篇论文的思想和前面复现的几个模型不太相同,在论文他所提到了它的推理速度达到了300+fps。因此我便展开了对于Ultra-fast-lane-detection模型的尝试,将该模型进行了复现和相关的测试。
模型介绍:
加快推理预测的主要原理
之前的车道线分割的网络模型是多是根据逐个像素进行预测是否属于车道线,这样极大的减慢了推理的速度。直观上来车道线的预测不需要每个像素的预测。该模型便推出了一种新的车道线定义,它将车道线检测定义在寻找车道线在某些行上的集合,即基于行方向上的位置选择和分类问题。
如上图所示,该模型针对分出的每一行h上的列维度w上进行车道线位置的选择,h
和w是可以远小于原图像的H,W的,这样推理的速度便会极大的提升。就如下图所示:
它相比于全像素的分割,计算的量级极大的减少。根据我对论文的阅读,它的推理过程是提取h*w的特征图,对于每一行的预测过程是输出w+1的特征,和上图相同,直观上来讲就是越有可能属于车道线的cell的颜色越深。
全局感受野
车道线的识别不应该单纯只是单像素的分割识别,而是应该各个像素之间要有所关联,也就是感受野的大小,当车道线有所破损时,感受野的作用便凸显出来了。
该模型是一般的基于全连接层的分类,它所使用的特征是全局特征。这样就直接解决了感受野的问题,对于我们的方法,在检测某一行的车道线位置时,感受野就是全图大小,因此他对于遮挡和损坏的车道线的推测效果更好。
其主要关于全连接的代码如图所示
self.cls = torch.nn.Sequential(
torch.nn.Linear(1800, 2048),
torch.nn.ReLU(),
torch.nn.Linear