静态IP 学生排队 Android开发 网络营销推广 dtel语言 uiwebview seo vue插件库 vue样式 pmp视频 angular视频 jquery的点击事件 jq触发点击事件 jq选择第一个子元素 webform开发教程 excel带格式复制粘贴 mysql 连接 python中count python链接mysql数据库 python程序代码 java基础教学 javase教程 java类型 java中的string java的环境配置 java语言介绍 java项目下载 ps校正倾斜照片 pr黑场过渡 全英雄守城战 dnf传说装备 mac版matlab 国都证券官网下载 彻底卸载mysql 斐讯k3刷机 联想7450加粉清零 微信超额20万怎么办 python进制转换 安装telnet js鼠标悬停事件
当前位置: 首页 > 学习教程  > 编程语言

RetinaFace MXNet模型转ONNX转TensorRT

2020/12/5 9:54:50 文章标签:

文章目录RetinaFace MXNet模型转ONNX转TensorRT1. github开源代码2. MXNet模型转ONNX模型3. ONNX模型转TensorRT模型3.1 概述3.2 编译3.3 运行4. 推理结果RetinaFace MXNet模型转ONNX转TensorRT 1. github开源代码 RetinaFace TensorRT推理的开源代码位置在https://github.co…

文章目录

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

RetinaFace MXNet模型转ONNX转TensorRT

1. github开源代码

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

2. MXNet模型转ONNX模型

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

  • 导出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,如下图所示。
在这里插入图片描述

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

3.3 运行

通过以下命令运行项目,得到推理结果

  • RetinaFace模型推理
./RetinaFace_trt../config.yaml ../samples
  • RetinaFaceAntiCov模型推理
./RetinaFace_trt ../config_anti.yaml ../samples

4. 推理结果

  • RetinaFace推理结果:
    在这里插入图片描述
  • RetinaFaceAntiCov推理结果:
    在这里插入图片描述

本文链接: http://www.dtmao.cc/news_show_450111.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?