欢迎光临散文网 会员登陆 & 注册

TensorFlow.Keras和TensorRT的检测效果对比

2023-03-09 16:48 作者:逍遥之韶OvO  | 我要投稿

1. 背景说明

通过安装在路口的交通用摄像头采集的数据,对特定路口进行路况观察,以便灵活调度警力。

观察对象(检测类别)

行人(person)

带自行车的人(bicycle_person)

带摩托车的人(bike_person)

汽车(car)

2. 数据集说明

  • 数据类别:person、bicycle_person、bike_person、car

  • 数据量:训练数据量:10501,验证数据量:2392,测试数据量:3639

  • 图像尺寸:1920 x 1080 x 3

  • 图像类型:JPEG

  • 示例图

样例

3. 网络组成

  • ResNet + SSD

  • ResNet:在传统的深度学习方案下,提出了残差结构的概念,以解决当网络深度足够深以后带来的网络性能下降的问题。

    • 常见的ResNet网络:ResNet18、ResNet50、ResNet101

    • 网络结构

    • 本次使用ResNet18ResNet50

  • SSD:在VGG的深度网络基础上,对最后几层进行特征提取,达到目标检测的效果。

    • 常见的SSD网络:SSD300、SSD512

    • 网络结构

  • 本次使用SSD512

4. 开发环境

  • TensorFlow.Keras的主要环境(用于训练和推理)

    • python==3.6.8

    • tensorflow-gpu==1.14.0

    • numpy==1.15.0

    • scipy==1.1.0

    • h5py==2.10.0

    • protobuf==3.10.0

  • TensorRT的主要环境(用于推理加速)

    • Jetson NANO使用Jetpack 4.4,tensorrt==7.1.3.0

    • Jetson NANO使用Jetpack 4.4,tensorflow-gpu==1.15.0

    • python==3.6.8

    • tensorflow-gpu==1.14.0

    • numpy==1.15.0

    • tensorrt==7.2.3.4

5. 使用方法

  • TensorFlow.Keras

    • 模型准备:将model中的h5模型复制到代码路径下

    • 运行代码:进入代码路径后,运行Test.py即可

  • TensorRT

    • 模型准备:将model中的h5模型复制到代码路径下

    • 模型转换:进入代码路径,运行convert_H5_to_PB.py将h5模型转换成pb模型

    • 运行代码:准备好pb模型后,运行TensorRT.py,程序会自动生成用于推理的engine文件(中间包含了转换uff模型的过程,uff模型没有显性导出

6. 检测结果对比

  • 预览效果

bicycle_person & car
person & bike_person & bicycle_person & car

person & bicycle_person
  • 精度(仅作参考,模型尚未训练到最佳状态)

精度
  • 时间

推理时间对比,单位:秒
  • ResNet18+SSD512:TensorRT相比Tensorflow.Keras,检测时间减少了47.8%

  • ResNet50+SSD512:TensorRT相比Tensorflow.Keras,检测时间减少了38.3%

7. 参考链接

测试代码链接:https://github.com/ShadowChenCSD/ResNet_SSD-based-on-TF.Keras-and-TensorRT

视频效果显示:https://www.bilibili.com/video/BV1FM4y1C75E

工程参考:https://github.com/rykov8/ssd_keras


TensorFlow.Keras和TensorRT的检测效果对比的评论 (共 条)

分享到微博请遵守国家法律