当前位置:   article > 正文

RetinaFace使用TNN、TVM、NCNN、Openvino实现_tnn gitee

tnn gitee

RetinaFace使用TVM、Openvino、TNN、NCNN实现

前言

  • 这几天用了TNN、TVM、NCNN、Openvino四个前向推理框实现RetinaFace,并决定开源这些代码,希望个位大佬能指出不足,也欢迎大家一起讨论.
  • 先上gitee地址:https://gitee.com/damon93/inference_retina_face.git
  • 为了下载后直接能编译运行,基本上第三方库、原始模型、转换后的模型都上传了
  • 在使用这份工程前默认您对RetinaFace的用途以及算法相当熟悉,并对C++代码以及Cmake都有一定的了解,适合算法工程化行业的同学.

RetinaFace算法来自:

https://github.com/deepinsight/insightface/tree/master/detection/RetinaFace

RetinaFace模型来自:

yangfly: RetinaFace-MobileNet0.25 (baidu cloud:nzof).
WiderFace validation mAP: Hard 82.5. (model size: 1.68Mb)

上述RetinaFace-MobileNet0.25 已保存在./original_model/目录下[mnet.25-0000.params, mnet.25-symbol.json]


工程目录

├── common 通用模块
├── config.cmake 编译配置文件,按自身环境配置
├── image 测试图片
├── original_model 原始模型
├── README.md
├── tool
├── openvino 使用Openvino实现RetinaFace工程目录
├── tnn 使用Tnn实现RetinaFace工程目录
├── ncnn 使用Ncnn实现RetinaFace工程目录
└── tvm 使用TVM实现RetinaFace工程目录


编译与运行

  • 编译前准备:按自身环境修改config.cmake文件,主要是配置OpenCV_DIR

  • 下面以TVM的工程为例子,其他工程类似,注意buildLinux.sh中有部分配置项,如GPU的使用与否 -DUSE_GPU=OFF或-DUSE_GPU=ON

编译:
cd ./tvm
./scripts/buildLinux.sh
  • 1
  • 2
运行:
./bin/RetinaFaceTvm
  • 1

关于工程

  • 每个部分基本上都有readme,具体的实现也有相应的代码以及注释,就不展开讲了.

四个框架运行结果

四个框架运行时间

  • 不计前处理和后处理,只测框架进行前向推理的时间
  • 注意这里得出的时间是在模型输入为1x3x320x320, date type: float32, 有些框架可能在做过int8量化之后会有速度大幅提升,下面这个表只能是一个参考,并没有全面的测试过其他的date type和size下的情况,表中的TNN没有选择Tenorrt和openvino编译
TVM(ms)OpenVino(ms)TNN(ms)NCNN(ms)
Cpu [Core i7-7700]3.654175.217067.98988.97799
Gpu [GTX1080Ti]1.09579---

四个框架的个人使用心得

TVM、Openvino、TNN、NCNN前向推理框架使用心得

其他

RtinaFace Mxnet模型转TNN,附Reshape层踩坑

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/284953
推荐阅读
相关标签
  

闽ICP备14008679号