本文介绍 超快的车道线检测TensorRT部署:120fps

超快的车道线检测TensorRT部署:120fps

本文由林大佬原创,转载请注明出处,来自腾讯、阿里等一线AI算法工程师组成的QQ交流群欢迎你的加入: 1037662480

前段时间有一个超快的车道线检测算法吸引了大家的注意, 简单的方法取得了一个很快的速度, 效果还不错. 这几天我们终于把这个算法迁移到了C++, 并且效果还不错. 大家可以看看:

lane

速度可以达到120fps, 普通显卡上可以跑到超实时, 对于一些低端显卡, 诸如我的笔记本MX250, 也可以跑到Realtime, 估计JetsonNano应该也不成问题, 关键是采用TensorRT加速之后, 速度更快. 视频中显示的是在CUlane上的效果.

01. 转换步骤

对于车道线检测模型来说, 最复杂是预处理和后处理, 对于预处理往往不仅仅是尺寸变换, 可能还会用到俯视图转换或者灰度化, 不过好在这个方法就是普通的预处理, 保留了尽可能多的信息, 其次最复杂的是后处理. 需要将车道线检测的结果再转换回到原图, 并归并好每一条车道线的点坐标.

我们的转换过程也很简单:

pytotorch模型 -> ONNX模型 -> TensorRT部署

对于ONNX模型导出, 大家可以参考github的源代码, 但是直接export是不可行的, 因为很多后处理是不支持导出到onnx的. 我们需要将一些简单的后处理移到onnx, 这样可以保证尽量少用代码去实现后处理. 另外对于一些无法用网络模型去实现的后处理, 我们再用代码去写.

整个过程其实很简单, 也不需要特殊的Plugin.

最终的onnx模型其实很小:

image-20200831120952065

如果MergeBn之后可以得到一个更小的模型.

02. 关于模型的结构

关于模型的结构其实有几个点, 很多人说这个模型迁移性不好, 其实不是的, 是因为如果图片的输入尺寸不同, 需要单独的进行处理. 比如在设置里面的这个raw_anchor:

tusimple_row_anchor = [ 64,  68,  72,  76,  80,  84,  88,  92,  96, 100, 104, 108, 112,
            116, 120, 124, 128, 132, 136, 140, 144, 148, 152, 156, 160, 164,
            168, 172, 176, 180, 184, 188, 192, 196, 200, 204, 208, 212, 216,
            220, 224, 228, 232, 236, 240, 244, 248, 252, 256, 260, 264, 268,
            272, 276, 280, 284]
culane_row_anchor = [121, 131, 141, 150, 160, 170, 180, 189, 199, 209, 219, 228, 238, 248, 258, 267, 277, 287]

对于不同的尺寸, 需要换算到raw_anchor的步长下. 比如我们可以再任意一张包含车道线的图片上推理culane的模型:

image-20200831121340677

其实效果还是可以的.

03. C++推理和加速

将模型转换到onnx之后, 我们就可以用各种手段加速了, 比如tnn, mnn, 比如tensorrt等.

最后加速之后推理的效果如下:

image-20200831123704433

整体模型前向传播的时间大概是3ms.

这个可以说是逆天杀神了.

04. Code

事实上, 对于UltrFastLane的训练代码大家可以参考官方的repo, 对于onnx导出代码和python的推理代码, 大家可以参考我们的fork版本:

http://manaai.cn/aicodes_detail3.html?id=68

关于C++部署代码, 可以参考对应的神力工具链来获取.

全中国最大的AI爱好者交流论坛:

http://t.manaai.cn

更多

image-20200820181257044

如果你想学习人工智能,对前沿的AI技术比较感兴趣,可以加入我们的知识星球,获取第一时间资讯,前沿学术动态,业界新闻等等!你的支持将会鼓励我们更频繁的创作,我们也会帮助你开启更深入的深度学习之旅!

image-20200515153654923

往期文章

https://zhuanlan.zhihu.com/p/165009477

https://zhuanlan.zhihu.com/p/149398749

https://zhuanlan.zhihu.com/p/147622974

https://zhuanlan.zhihu.com/p/144727162