1. github开源代码
RetinaFace TensorRT推理的开源代码位置在https://github.com/linghu8812/tensorrt_inference/tree/master/RetinaFace

https://github.com/jacke121/tensorrt_inference

文章目录
RetinaFace MXNet模型转ONNX转TensorRT
1. github开源代码
2. MXNet模型转ONNX模型
3. ONNX模型转TensorRT模型
3.1 概述
3.2 编译
3.3 运行
4. 推理结果
RetinaFace MXNet模型转ONNX转TensorRT

2. MXNet模型转ONNX模型
首先通过命令git clone https://github.com/deepinsight/insightface.gitclone insightface的代码,然后将export_onnx.py文件拷贝到./detection/RetinaFace或者./detection/RetinaFaceAntiCov文件夹中,通过以下命令生成ONNX文件。对于RetinaFace-R50,RetinaFace-MobileNet0.25和RetinaFaceAntiCov这几个模型都可以支持。通过以下命令可以导出模型:

导出resnet50模型
python3 export_onnx.py

导出mobilenet 0.25模型
python3 export_onnx.py  --prefix ./model/mnet.25

导出RetinaFaceAntiCov模型
python3 export_onnx.py  --prefix ./model/mnet_cov2 --network net3l

同YOLOv4模型一样,对输出结果也做了concat,如下图所示:

输出矩阵的第一列为人脸的得分,第2到5列为人脸检测框的坐标,第6到15列为人脸关键点的位置。

3. ONNX模型转TensorRT模型
3.1 概述
TensorRT模型即TensorRT的推理引擎,代码中通过C++实现。相关配置写在config.yaml文件中,如果存在engine_file的路径,则读取engine_file,否则从onnx_file生成engine_file。

void RetinaFace::LoadEngine() {
    // create and load engine
    std::fstream existEngine;
    existEngine.open(engine_file, std::ios::in);
    if (existEngine) {
        readTrtFile(engine_file, engine);
        assert(engine != nullptr);
    } else {
        onnxToTRTModel(onnx_file, engine_file, engine, BATCH_SIZE);
        assert(engine != nullptr);
    }
}

config.yaml文件可以设置batch size,图像的size及模型的anchor等。

RetinaFace:
    onnx_file:     "../R50.onnx"
    engine_file:   "../R50.trt"
    BATCH_SIZE:    1
    INPUT_CHANNEL: 3
    IMAGE_WIDTH:   640
    IMAGE_HEIGHT:  640
    obj_threshold: 0.5
    nms_threshold: 0.45
    detect_mask:   False
    mask_thresh:   0.5
    landmark_std:  1
    feature_steps: [32, 16, 8]
    anchor_sizes:  [[512, 256], [128, 64], [32, 16]]

3.2 编译
通过以下命令对项目进行编译,生成RetinaFace_trt

mkdir build && cd build
cmake ..
make -j
1
2
3
3.3 运行
通过以下命令运行项目,得到推理结果

RetinaFace模型推理
./RetinaFace_trt../config.yaml ../samples
1
RetinaFaceAntiCov模型推理
./RetinaFace_trt ../config_anti.yaml ../samples
1
4. 推理结果
RetinaFace推理结果:

RetinaFaceAntiCov推理结果:

————————————————
版权声明:本文为CSDN博主「芦花似雪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/linghu8812/article/details/110677016

RetinaFace Mxnet转TensorRT相关推荐

  1. Mxnet TensorRT

    Optimizing Deep Learning Computation Graphs with TensorRT CUDA9.0或9.2 Pascal或更新架构的显卡 下载并安装TensorRT库 ...

  2. Retinaface c++

    https://github.com/wzj5133329/retinaface_caffe 官方retinaface(mxnet实现) :https://github.com/deepinsight ...

  3. 【TensorRT】将 PyTorch 转化为可部署的 TensorRT

    文章目录 一.什么是 ONNX 二.PyTorch 转 ONNX 三.什么是 TensorRT 四.ONNX 转 TensorRT 在深度学习模型落地的过程中,会面临将模型部署到边端设备的问题,模型训 ...

  4. ML模型部署-工具箱

    ML模型部署-工具箱 Machine Learning模型部署涉及两大工程部分,服务优化和模型优化.服务优化就是大家熟知的后端开发优化,涉及的指标有吞吐量.响应时间.CPU占用和服务内存占用等.而模型 ...

  5. 采用 NVIDIA DGX A100 系统和 Mellanox 频谱以太网交换机的 NetApp ONTAP AI NVA 设计(上)

    采用 NVIDIA DGX A100 系统和 Mellanox 频谱 以太网交换机的 NetApp ONTAP AI NVA 设计 NetApp 公司 David Arnette 和 Sung-Han ...

  6. TensorRT实现RetinaFace推理加速(一)

    一.参考资料 tensorrtx/retinaface TensorRT实现yolov5推理加速(一) TensorRT实现yolov5推理加速(二) 二.实验环境 ##系统环境 Environmen ...

  7. retinaface tensorRT

    https://zhuanlan.zhihu.com/p/86827710 https://www.jianshu.com/p/14ddc581fee8 http://manaai.cn/aicode ...

  8. ONNX+TensorRT

    使用ONNX+TensorRT部署人脸检测和关键点250fps This article was original written by Jin Tian, welcome re-post, firs ...

  9. TensorRT简介

    TensorRT 介绍 引用:https://arleyzhang.github.io/articles/7f4b25ce/ 1 简介 TensorRT是一个高性能的深度学习推理(Inference) ...

最新文章

  1. xp http文件服务器,在XP sp3下用IIS搭建http服务器总结
  2. 如何将UI5应用部署到Fiori On-Premise和On-Cloud的Launchpad上去
  3. python函数type的用意_python之type函数
  4. ora-03115:不支持的网络数据类型 oracle,Oracle10g新增DBMS_FILE_TRANSFER包(二)
  5. 平台or职位,你怎么选?
  6. 字典生成工具_CANOpen系列教程09_CANOpen对象字典
  7. ajax拼接显示不同样式,Ajax重点整理
  8. android控件单位,Android控件相对位置及长度单位
  9. redis php方法,PHP操作Redis的基本方法
  10. linux C 语言的 system
  11. 《Arduino开发实战指南:机器人卷》一3.6 编程原理与示例程序
  12. BZOJ_5369_[Pkusc2018]最大前缀和_状压DP
  13. #2013年Google官方技术求职大礼包#面试求职技巧篇
  14. 云原生--k8s之pod
  15. c语言递归的用法,C语言递归操作用法总结
  16. 关于参与新星计划的那一刻
  17. c++判断字符串是否包含指定字符串/判断字符串是否相等/保留小数点后几位
  18. 企业网站建设的详细教程
  19. 2015年10月22日CSS学习笔记
  20. php select sum字段求和,PostgreSQL sum()函数

热门文章

  1. Linux中设置服务自启动的三种方式
  2. API Monitor(API监控工具)
  3. CentOS7.2 开启内网转发
  4. qemu-kvm部分流程/源代码分析
  5. 华为备忘录导入印记云笔记_原来华为手机自带会议神器,开会不用手写,这个功能就能搞定...
  6. python按概率输出分类结果_sklearn例程:多分类输出概率
  7. m行n列最大值和最小值C语言,找数组最值 按如下函数原型编程从键盘输入一个m行n列的二维数...
  8. java spring context_java将对象注册到spring context中 | 学步园
  9. windows安装包安装mysql5.7_Windows7 64位压缩包安装MySQL5.7.9
  10. mysql8.0远程linux_【Linux】【mysql】mysql8.0开启远程访问及常见问题