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

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
运行:
./bin/RetinaFaceTvm

关于工程

  • 每个部分基本上都有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层踩坑

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值