实时语义分割PIDNet算法TensorRT转换

[PIDNet](GitHub - XuJiacong/PIDNet: This is the official repository for our recent work: PIDNet)

是22年新开源的实时语义分割算法,和DDRNet一样具有不错的性能

网络结构如下:

网络分为三个分支,如上图,整体结构和DDRNet比较类似,包括源代码也和DDRNet比较类似。

这里多的一个分支新增了分割边缘的信息。

这里采用tensorrtx方式将网络逐层转为TensorRT模型,项目具体不赘述,见:https://github.com/midasklr/PIDNet.TensorRT/blob/main/READMECH.md

需要注意的是实现中的一些细节:

  1. Pytorch源码的cityscape数据集训练是:输入数据2048x1024,然后预处理,随机crop出1024x1024训练,测试时候输入是2048x1024,这里TensorRT模型采用输入数据resize成1024x1024然后推理,实测损失不大,主要原因在于做tensorrt和pytorch模型的精度矫正时候发现这种输入损失最小(非常小)。

  2. 训练时,读取图片=>1024x512=>随机crop出512x512训练。相比原操作训练提升3+倍速度,训练时间从一周降低到2天,代价是mIOU下降约1%。

  3. 源代码采用DP模式支持多卡训练,测试发现不如单卡训练速度。

    扫描二维码关注公众号,回复: 15226329 查看本文章
  4. PAPPM模块修改。原PAPPM中pooling的感受野用于适应2048x1024输入,到PAPPM模块输入时候变为(1, 512,32,64),对应kernel=5、9、17、global。当输入改为1024x512,spp输入(1,512,16,32),pooling kernel如何调整适合。

  5. 注意PAPPM模块中scale_process中卷积为group=4分组卷积!

TensorRT源码:GitHub - midasklr/PIDNet.TensorRT: TensorRT project of PIDNet

猜你喜欢

转载自blog.csdn.net/IEEE_FELLOW/article/details/130566378