# TensorRT7-DCNv2-Plugin **Repository Path**: alinn66/TensorRT7-DCNv2-Plugin ## Basic Information - **Project Name**: TensorRT7-DCNv2-Plugin - **Description**: No description available - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-19 - **Last Updated**: 2021-08-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DCNv2 ONNX to TensorRT 该文档描述了如何编译DCNv2Plugin,并安装到TensorRT7中,解决centernet/MonoFlex中的DLASeg无法解析dcnv2的问题。 ## 环境安装 #### 1.下载TensorRT的源码和release版本 ​ 1.1 在NVIDIA官方下载TensorRT7.0.0.11的release版本(推荐tar包,对应cuda10.2/cudnn7.6.5) ​ ![](https://gitee.com/alinn66/TensorRT7-DCNv2-Plugin/raw/master/imgs/0.png) ​ 1.2 在github下载TensorRT的源码 ```bash git clone https://github.com/nvidia/TensorRT cd TensorRT git submodule update --init --recursive git checkout release/7.0(# 注意需要将parse/onnx同样切换到release/v7.0) ``` ​ 将下载的TensorRT源码和1.1下载的TensorRT的tar包放置在同一目录下。 ​ ![](https://gitee.com/alinn66/TensorRT7-DCNv2-Plugin/raw/master/imgs/1.png) ### 添加Plugin 下载DCNv2源码 ```bash # download DCNv2 $ https://gitee.com/alinn66/TensorRT7-DCNv2-Plugin.git mv TensorRT7-DCNv2-Plugin-master $TRT_ROOT cd $TRT_ROOT cp -r TensorRT7-DCNv2-Plugin-master/DCNv2 ../TensorRT-src/plugin cp -f TensorRT7-DCNv2-Plugin-master/CMakeLists.txt ../TensorRT-src/plugin cd ../TensorRT-src/plugin vim InferPlugin.cpp #修改如下图 ``` ​ 修改1:添加头文件 ![](https://gitee.com/alinn66/TensorRT7-DCNv2-Plugin/raw/master/imgs/2.png) ​ 修改2:添加initializePlugin: ![](https://gitee.com/alinn66/TensorRT7-DCNv2-Plugin/raw/master/imgs/3.png) ### 编译 ```bash # 进入存放源码的路径 cd TRT_ROOT export TRT_RELEASE=`pwd`/TensorRT-7.0.0.11 export TENSORRT_LIBRARY_INFER=$TRT_RELEASE/targets/x86_64-linux-gnu/lib/libnvinfer.so.7 export TENSORRT_LIBRARY_INFER_PLUGIN=$TRT_RELEASE/targets/x86_64-linux-gnu/lib/libnvinfer_plugin.so.7 export TENSORRT_LIBRARY_MYELIN=$TRT_RELEASE/targets/x86_64-linux-gnu/lib/libmyelin.so export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRT_RELEASE/lib $ cd $TRT_ROOT/TensorRT-src $ mkdir build $ cd build $ cmake .. -DBUILD_PARSERS=OFF -DBUILD_SAMPLES=OFF -DTRT_LIB_DIR=$TRT_RELEASE/lib -DTRT_BIN_DIR=`pwd`/out -DBUILD_PLUGINS=ON $ make -j${nproc} #会编译生成libnvinfer_plugin库 $ cp -f $TRT_ROOT/TensorRT7-DCNv2-Plugin-master/builtin_op_importers.cpp $TRT_ROOT/TensorRT-src/parsers/onnx/ $ cd ../parses/onnx $ mkdir build && cd build $ cmake .. -DTENSORRT_ROOT=$TRT_ROOT/TensorRT-7.0.0.11 # TENSORRT_ROOT是 TensorRT 安装的位置 $ make -j${nproc} $ make install DESTDIR=/install/directory # 可指定安装路径,随后将install安装的全部lib文件拷贝至$TRT_ROOT/TensorRT-7.0.0.11/lib 和 include中替换即可 ``` 至此,就可以使用更新后的TensorRT7的库来解析带有dcnv2层的onnx模型了。