Ubuntu18.04编译TensorRT MaskRCNN例子和模型转化---sampleuffMaskRCNN

2023-05-16

Ubuntu18.04编译TensorRT MaskRCNN例子和模型转化

  • 0.前期准备
  • Step1 安装requirement.txt需要的依赖
  • Step2 安装编译sample需要的其他系统的包
  • Step3 Clone github 的TensorRT库
  • Step4 开始编译
  • Step5 修改conv2d_transpose function in UFF的conversion_functions.py
  • Step6 下载Mask R-CNN库并设置PYTHONPATH.
  • Step7 Apply the patch into Mask R-CNN repo to update the model from NHWC to NCHW
  • Step8 下载Mask-RCNN必须的包:
  • Step9 将h5模型转为uff模型
  • Step10 测试

0.前期准备

本教程主要测试tensorrt的maskrcnn例子,官方网址为sampleUffMaskRCNN
请确认已经安装好TensorRT 6.0,如果未安装,可参考博客
Ubuntu 18.04 安装配置TensorRT 6.0
本文基于以上链接,在conda创建名为trt的虚拟环境中进行.

Step1 安装requirement.txt需要的依赖

依赖位置: TensorRT/samples/opensource/sampleUffMaskRCnn/converted/requirements.txt

conda install keras==2.1.3
conda install tensorflow-gpu=1.14.0 #默认下载了cudatoolkit==10.1
conda install scikit-image

Step2 安装编译sample需要的其他系统的包

   pip3 install cmake==3.13 #要求最低3.13
   #如果当前GNU Make版本为v4.1 最低要求为v4.1无需安装,否则,安装GNU Make
   pip3 install --upgrade pip #升级pip 要求最低19.0
   sudo apt-get install git

Step3 Clone github 的TensorRT库

   # git clone -b master https://github.com/nvidia/TensorRT TensorRT #原github版本不对!应改为下一句:
    git clone -b release/6.0 https://github.com/nvidia/TensorRT TensorRT
    cd TensorRT
    git submodule update --init --recursive

Step4 开始编译

	export TRT_SOURCE=`pwd`
 	export TRT_RELEASE=`pwd`/../TensorRT-6.0.1.5 #你的tensorrt安装目录
    cd $TRT_SOURCE
    mkdir -p build && cd build 
    cmake .. -DTRT_LIB_DIR=$TRT_RELEASE/lib -DTRT_BIN_DIR=`pwd`/out
    make -j$(nproc)

Step5 修改conv2d_transpose function in UFF的conversion_functions.py

#如果使用了trt虚拟环境
vim /home/lixj/anaconda3/envs/trt/lib/python3.6/site-packages/uff/converters/tensorflow/converter_functions.py
#否则,如果没有使用conda 虚拟环境
# vim /home/lxj/.local/lib/python3.6/site-packages/uff/converters/tensorflow/converter_functions.py

找到524行,更换通道顺序

uff_graph.conv_transpose(
    inputs[0], inputs[2], inputs[1],
    strides, padding,
    dilation=None, number_groups=number_groups,
    left_format=lhs_fmt, right_format=rhs_fmt,
    name=name, fields=fields
    )

Step6 下载Mask R-CNN库并设置PYTHONPATH.

   git clone https://github.com/matterport/Mask_RCNN.git
   export PYTHONPATH=$PYTHONPATH:$PWD/Mask_RCNN

Step7 Apply the patch into Mask R-CNN repo to update the model from NHWC to NCHW

方法如下:

    cd Mask_RCNN
    git checkout 3deaec5
    git am $TRT_SOURCE/samples/opensource/sampleUffMaskRCNN/converted/0001-Update-the-Mask_RCNN-model-from-NHWC-to-NCHW.patch

上句若找不到.patch文件,可以手动找到之后,例如我的:

    git am ~/Downloads/TensorRT/samples/opensource/sampleUffMaskRCNN/converted/0001-Update-the-Mask_RCNN-model-from-NHWC-to-NCHW.patch

注意,这里需要登录自己的github账号

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

Step8 下载Mask-RCNN必须的包:

  pip3 install imgaug
  pip3 install keras==2.1.3

Step9 将h5模型转为uff模型

例如我的训练好的模型为mask_rcnn_coco.h5 (257.6MB),需要事先根据你的分割任务训练好。
保存到 Mask_RCNN/data/路径下.

 cd $TRT_SOURCE/samples/opensource/sampleUffMaskRCNN/converted/

修改config.py文件,注意,转换之后再修改sampleUffMaskRCNN/config.h是无效的,一定要在转换模型的时候将类别转换为你所需要的分类类别。
修改mrcnn_to_trt_single.py文件,第91行将类别80+1改为你分类的类别

 python mrcnn_to_trt_single.py -w /path/to/data/mask_rcnn_coco.h5 -o /path/to/data/mrcnn_nchw.uff -p ./config.py

这里,/path/to/data/需要改为你的路径,例如我的为

python mrcnn_to_trt_single.py -w ~/Mask_RCNN/data/mask_rcnn_coco.h5 -o ~/Mask_RCNN/data/mrcnn_nchw.uff -p ./config.py

转换成功,输出

UFF Output written to /home/lxj/Mask_RCNN/data/mrcnn_nchw.uff    (257MB)
UFF Text Output written to /home/lxj/Mask_RCNN/data/mrcnn_nchw.pbtxt  (1.1MB)

Step10 测试

测试参见
TX2上编译安装TensorRT的SampleUffMaskRCNN示例程序
注意修改config.h文件中的类别名.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu18.04编译TensorRT MaskRCNN例子和模型转化---sampleuffMaskRCNN 的相关文章

  • 【ROS】机械人开发一--树莓派安装ubuntu18.04

    前言 xff1a 安装了一天的树莓派系统 xff0c 遇到了很多坑 xff0c 这里将教程详细分享一下 xff0c 方便大家快速的安装系统 目录 一 操作环境硬件软件 二 资源下载链接三 具体步骤烧入修改镜像文件问题修改重启时间PC端使用x
  • Ubuntu18.04 安装 Odoo10

    安装Ubuntu 18 04 xff0c 省略 安装时 xff0c 默认用户名为 odoo ubuntu 16 04 开始 使用 systemd 管理服务 xff0c 但是systemd 兼容 sysv init 脚本 下载 odoo源码
  • Ubuntu18.04 方便好用的截图工具

    安装flameshot 下载地址 xff1a https github com lupoDharkael flameshot 安装命令 xff1a sudo apt get install flameshot 配置快捷键 设置 gt 设备
  • ubuntu18.04 安装Qt交叉编译环境目标机为rk3288

    本文在虚拟机条件下安装成功 xff0c 采用Ubuntu18 04 64位镜像作为编译环境 需要准备材料 交叉编译器 xff1a 目标机器为64位的使用 gcc linaro 6 3 1 2017 05 x86 64 aarch64 lin
  • Ubuntu18.04切换Python版本

    转载自 xff1a Ubuntu18 04 切换 Python 版本 前言 Ubuntu18 04 默认安装了两个版本 Python2 7 和 Python3 6 查看可用二进制文件 ls usr bin python 过程 使用 upda
  • 【RPLIDAR】ubuntu18.04安装cartographer源码并使用RPLIDAR A2M8 - R4建图

    1 创建工作空间 mkdir cartographer ws cd cartographer ws wstool init src 2 下载cartographer源码包 wstool merge t src https raw githu
  • ubuntu18.04安装、使用evo

    ubuntu18 04安装evo 1 切换python版本2 安装pip33 安装evo4 自带test测试5 evo工具介绍6 evo使用6 针对不同数据集的格式以及evo命令 官方连接 xff1a https github com Mi
  • jetson nano ubuntu18.04 ROS安装

    历时一天 xff0c 因为之前用手机热点 xff0c 即使换源了下载还是很慢 今天用校园网以后好了很多了 xff08 校园网还是挺好用的 xff09 xff0c 期间也踩了点坑 xff0c 记录一下 xff0c 也希望能帮到看这篇博客的你
  • TensorRT cuda8.0 cudnn 7.0.5 tar包安装

    总体步骤参考这篇文章 https zhuanlan zhihu com p 35468450 1 准备环境 TensorRT 依赖cuda和cudnn xff0c 且根据下载的TensorRT版本 xff0c 需要严格保证cuda和cudn
  • Ubuntu18.04+ROS+kalibr标定工具箱安装编译

    目录 前言 一 安装ROS 1 设置镜像源 2 更新软件包索引 3 安装ROS 4 测试ROS是否安装成功 二 安装kalibr melodic 1 kalibr简介 2 安装kalibr 3 测试kalibr 参考文献 xff1a 前言
  • TensorRT INT8量化说明文档

    TensorRT developer guide intro quantization 7 Working with INT8 7 1 Introduction to Quantization 7 1 1 Quantization Work
  • Ubuntu18.04 ,安装opencv4.5.4

    背景 手眼标定时候 xff0c 需要用到opencv4的findChessboardCornersSB 所以需要下载opencv4 5 4 安装 Ubuntu 18 04 安装opencv4 2 0 遇到的问题 安装结束后 xff0c 出现
  • 【SLAM】——DynaSLAM项目环境配置(超多坑)

    DynaSLAM 坑多 慢慢来 不要急 先整体说一下 项目是在ORB SLAM2项目的基础上 加上maskrcnn的融合 主流程采用还是采用ORB SLAM2的流程 maskrcnn部分采用c 调用python的实现 其中又穿插opencv
  • TensorRT 初探(1)—— conv2d:IConvolutionLayer

    tensorrt之conv2d计算详解 环境搭建 简介 代码 设置prepadding和postpadding prepadding postpadding与paddingNd冲突时 设置padding mode 总结 附录 环境搭建 环境
  • 1. TensorRT量化的定义及意义

    前言 手写AI推出的全新TensorRT模型量化课程 链接 TensorRT下的模型量化 课程大纲如下 1 量化的定义及意义 1 1 什么是量化 定义 量化 Quantization 是指将高精度浮点数 如float32 表示为低精度整数
  • 解决CuDNN runtime版本和编译版本不同的问题

    在编译安装好TensorFlow后 可下载示例代码运行 但在执行run all sh时 出现如下错误 该错误意思就是CuDNN的runtime版本和编译时指定的版本不同 2018 05 08 09 00 18 042137 E tensor
  • mask-rcnn训练识别纸箱模型

    源码来源 matterport Mask RCNN https github com matterport Mask RCNN 一 开发环境及工具 1 开发环境 anaconda3 python3 6 jupyter pycharm 2 样
  • tensorRT 分类模型构建与推理

    tensorRT分类模型构建与推理示例代码classifier cpp tensorRT include 编译用的头文件 include
  • 【C++】【TensorRT】检测时间不稳定原因汇总(持续更新)

    本人使用C 版本的TensorRT框架做模型部署的开发工作 在实际上线具体的项目过程中碰到过检测时间不理想的情况 所以本人专门为此写一篇博客记录曾经遇到过的坑以及对应的解决方案 一 相同型号的机器和显卡检测时间不同 1 问题描述 两台相同型
  • TensorRT学习(二)通过C++使用

    本文源于学习TensorRT文档 TensorRT Developer Guide 第2章 WORKING WITH TENSORRT USING THE C API 的理解 一 TensorRT实例化对象 使用TensorRT进行推理需要

随机推荐

  • ubuntu实现屏幕的旋转和开启自动旋转屏幕

    1 旋转屏幕 有两种方法 xff0c 一种是命令行 xff0c 一种是图形界面 这里只介绍命令行 xff0c 因为其简单 xrandr o left 向左旋转90度 xff0c 用于横屏转竖屏 xrandr o right 向右旋转90度
  • MaskRCNN在Jetson tx2上的测速结果

    博主测试了在不同模式 精度下降MaskRCNN部署到Jetson TX2上的测速结果 xff0c 与大家分享讨论 对FasterRCNN的测速可见FasterRcnn在Jetson TX2上测速 使用的MaskRCNN框架 matterpo
  • FasterRcnn在Jetson TX2上测速

    博主测试了在不同模式 精度下将FasterRCNN部署到Jetson TX2上的测速结果 xff0c 与大家分享讨论 对于MaskRCNN的部署结果可参见 MaskRCNN在Jetson tx2上的测速结果 使用的Caffe版本Faster
  • Linux学习笔记导航页

    本博客中与博主Linux学习相关的博文导航 xff0c 方便查看 Linux系统ls命令详解Linux系统中目录的内容详解 bin dev etc home lib opt usr varLinux操作文件与目录 cp mv mkdir r
  • Jetson TX2使用经验导航页

    本博客中与Jetson TX2使用相关的博文导航 xff0c 方便查看 JetsonTX2 之刷机 Jetpack 4 3TX2 ubuntu 18 04 更换清华镜像源Jetson TX2刷机后查看CUDA和CUDNN版本 以JetPac
  • Pytorch学习导航页

    本博客中与pytorch学习相关的博文 xff0c 方便查看 Pytorch源码学习之一 xff1a torchvision models alexnetPytorch源码学习之二 xff1a torchvision models vggP
  • Python小技巧导航页

    本博客中与Python使用技巧相关的博文 xff0c 方便查看 使用matplotlib绘图库的pyplot快速绘图Python调用face 43 43 API完成本地图片的人脸检测Python爬虫 按照关键词爬取视觉中国高清图像pytho
  • Linux归档与备份——gzip、gunzip、bzip2、bunzip2、tar、zip、unzip、rsync

    维护系统数据安全是计算机系统管理者的基本任务之一 xff0c 及时创建系统文件的备份文件是维度系统数据安全的一种常用方法 本节主要介绍以下命令 文件压缩程序 gzip 压缩和解压缩文件工具bzip2 块排序文件压缩工具 文件归档程序 tar
  • Linux之存储介质——mount、umount、fdisk、mkfs

    本节讨论设备级别的数据处理 对于诸如硬盘之类的物理存储器 网络存储器以及像RAID 独立冗余磁盘陈列 和LVM 逻辑卷管理 之类的虚拟存储器 xff0c Linux都有惊人的处理能力 本节主要用到以下命令 mount 挂载文件系统umoun
  • Jetson TX2挂载SD卡--亲测有效!

    不得不说 xff0c TX2用于深度学习算法的部署 xff0c 一个很大的问题是硬盘容量太小 xff0c 由于我的应用需求需要存储大量数据 xff0c 因此需要挂载一个SD卡 关于Linux挂载存储介质相关原理可参考我的博客 Linux之存
  • 实用的测试流程梳理总结(质量保障)

    废话不多说 xff0c 简明扼要的列出我认为测试最重要的几点 xff1a 1 测试思维 xff1a 优秀的测试思维对case设计的好坏起决定作用 xff0c case的好坏对测试效率和测试质量起决定作用 xff0c 所以测试思维非常重要 我
  • Linux之正则表达式---grep、元字符、任意字符、锚、中括号、否定、POSIX字符类

    正则表达式是一个非常重要的用于文本操作的工具 0 参考文献 Linux命令行大全 美 William E Shotts Jr 著 郭光伟 郝记生 译 xff0c 人民邮电出版社 更多有用的Linux知识详解 xff0c 可参加博主的Linu
  • Linux之文本处理---cat、sort、uniq、cut、paste、join、comm、diff、patch、tr、sed、aspell

    由于所有类UNIX操作系统都严重依赖于文本文件来进行某些数据类型的存储 所以需要很多可以进行文本操作的工具 常见的文本格式有 文件 xff1a 使用纯文本格式编辑的文件 在使用文本格式编辑较大文件时 xff0c 常用的方法是 xff0c 首
  • Linux之编译程序详细介绍---./configure、make、make install

    本节介绍如何通过源代码生成可执行程序 xff0c 在博主前期使用NVIDIA Jetson TX2时 由于Arm架构的各个包不完备 经常需要源码编译OpenCV等 为什么要编译软件呢 xff1f 可用性 尽管有些发行版已经包含了版本库中的一
  • 使用Visual Genome API + python3使用及数据集详情

    Visual Genome数据集 Visual Genome 主页Visual Genome APIVisual Genome Python DriverVisual Genome 论文 注意 xff0c API多为python2的实现 x
  • PIL:Python图像处理类库的基本用法

    span class token keyword from span PIL span class token keyword import span Image span class token keyword import span o
  • Leetcode之单调栈题目解答----基于python3

    一 单调栈 顾名思义 xff0c 单调栈就是栈里面存放的数据都是有序的 xff0c 所以可以分为单调递增栈和单调递减栈两种 单调递增栈就是从栈底到栈顶是从大到小 单调递减栈就是从栈底到栈顶是从小到大 基于它的特性 xff0c 其十分适合处理
  • TX2上编译安装TensorRT的SampleUffMaskRCNN示例程序

    安装目录 主要参考网址Step1 TX2刷机Jetpack 4 3Step2 重装curl以支持httpsStep3 TX2升级cmakeStep4 克隆TensorRT库 注意版本号 xff01 Step5 开始编译sampleUffMa
  • Ubuntu 18.04 安装配置TensorRT 6.0

    Ubuntu 18 04 安装配置TensorRT 6 0 Step1 安装anacondaStep2 安装CUDA10 1Step3 安装cudnn 7 6 5Step4 配置cuda路径Step5 安装pipStep 6 conda创建
  • Ubuntu18.04编译TensorRT MaskRCNN例子和模型转化---sampleuffMaskRCNN

    Ubuntu18 04编译TensorRT MaskRCNN例子和模型转化 0 前期准备Step1 安装requirement txt需要的依赖Step2 安装编译sample需要的其他系统的包Step3 Clone github 的Ten