• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

TensorRT之TX2部署TensorFlow目标检测模型

人工智能 宗孝鹏 1875次浏览 0个评论

参考:https://github.com/jkjung-avt/tf_trt_models/tree/tf-1.8之前的文章中,详细介绍了tensorflow目标检测接口的使用方法,包括训练与推理流程,该工作主要是在服务器端完成的,而我们实际应用的时候,推理不一定发生在服务器上,而可能是TX2等终端设备,因此,在TX2上进行模型的推理加速,对于实际应用很有必要。 幸运的是,nvidia已经针对推理加速提供了一套框架tensorrt,关于tensorrt的介绍,我之前也提到过,这里不再赘述,本文主要讲解如何在TX2上应用tensorrt来对目标检测模型进行加速。 注意:本文介绍的tensorrt加速方法与官网介绍的有区别,不是在x86主机上生成uff文件然后导入到TX2上,而是直接在TX2上用tensorrt优化生成pb文件,然后按照传统的方法读入推理(关于第一种实现方法,有时间会尝试)

1 环境准备

TX2刷机JetPack3.3,安装时注意勾选TensorRT tensorflow-gpu 1.8(1.8版本支持最友好,1.9/1.10等会有各种问题),安装方法参考《TX2之tensorflow环境部署(最简单)》》 opencv3.4  

2 下载代码

git clone –recursive https://github.com/jkjung-avt/tf_trt_models cd tf_trt_models ./install.sh

3 安装tensorrt

由于我刷机时没有留意,导致在TX2上没有安装tensorrt,不过没有关系,我们可以手动安装 刷机时,在host主机上生成一个jetpack_download的文件夹,我们把它拷贝到TX2上 然后读进该目录,运行安装以下包 sudo dpkg -i libnvinfer4_4.1.3-1+cuda9.0_arm64.deb sudo dpkg -i libnvinfer-dev_4.1.3-1+cuda9.0_arm64.deb sudo dpkg -i libnvinfer-samples_4.1.3-1+cuda9.0_arm64.deb sudo dpkg -i tensorrt_4.0.2.0-1+cuda9.0_arm64.deb

4 运行示例

4.1 示例1

原作者提供了两个例子,第一个例子是运行摄像头进行检测,我给TX2插了一个USB摄像头,然后运行以下语句 python3 camera_tf_trt.py –usb –model ssd_mobilenet_v1_coco –build 表示构建ssd_mobilenet_v1_coco优化的Tensorrt模型,然后进行摄像头的实时检测,运行后结果如下  
  可以看到检测速度能达到10帧,还是很不错的  

4.2 示例2

第二个例子是读取优化后的模型,然后进行图片检测 python3 camera_tf_trt.py –image –filename examples/detection/data/huskies.jpg –model ssd_mobilenet_v1_coco 运行结果如下
 

5 优化自己的模型

通过以上步骤,我们就将所需要的环境配置完毕了,接下来就开始优化我们自己的模型,测试一下实际效果   首先还是按照《TensorFlow之目标检测API接口调试(超详细)》里边介绍的方法,准备数据,训练模型,我这里使用的预训练模型是ssd_mobilenet_v1_coco,训练结束后,在结果保存文件里生成了以下三个文 件,具体的数字根据训练的回合数可能不一样,总之选择一组模型导出  
TensorRT之TX2部署TensorFlow目标检测模型   将上述3个文件导入到TX2的tf_trt_models/data/ssd_mobilenet_v1_egohands文件夹下(其他模型可仿照博主已给的模型方法构建),然后根据README.md文件里的提示,将数字统一改为20000,修改data文件 夹下的ssd_mobilenet_v1_egohands.config文件,将num_classes值修改为自己的类别数,否则会报错   同时将训练时的object-detection.pbtxt文件导出,放到data文件夹下   接下来就可以进行模型转化了,运行如下代码,记得第一次运行要加–build选项   python3 camera_tf_trt.py –image –filename examples/detection/data/huskies.jpg –model ssd_mobilenet_v1_egohands –build –labelmap data/object-detection.pbtxt 运行成功之后,会生成ssd_mobilenet_v1_coco_trt.pb文件,接下来我们可以用该文件来验证(不需要再加build选项),比如说检测一个视频   python3 camera_tf_trt.py –file –filename 2018-09-10_162811.mp4 –model ssd_mobilenet_v1_egohands –labelmap data/object-detection.pbtxt 运行成功后,显示如下画面  
  我又测试了不用tensorrt优化的pb模型,画面如下
  可以看到,tensorrt会有一定的速度提升,但是也损失了一部分精度,并不一定好用,我们在实际使用时要注意做对比,选择满足自己使用要求的模型 ———————————————— 版权声明:本文为CSDN博主「ZONG_XP」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/zong596568821xp/article/details/86622430


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明TensorRT之TX2部署TensorFlow目标检测模型
喜欢 (0)

您必须 登录 才能发表评论!

加载中……