近来,很多人在使用tensorrt部署centerface遇到了各种问题,下面进行了一些解答和代码release:
1、版本:tensorrt 6.0.1+,python3.7
2、onnx模型转化为tensorrt格式。需要注意,repo里提供centerface.onnx的input shape是10x1x32x32,需要先改为目标分辨率,再转换到tensorrt格式。相关代码如下:
import onnx
import math
input_size =(1088,1920)
model = onnx.load_model("centerface.onnx")
d = model.graph.input[0].type.tensor_type.shape.dim
print(d)
rate = (int(math.ceil(input_size[0]/d[2].dim_value)),int(math.ceil(input_size[1]/d[3].dim_value)))
print("rare",rate)
d[0].dim_value = 1
d[2].dim_value *= rate[0]
d[3].dim_value *= rate[1]
for output in model.graph.output:
d = output.type.tensor_type.shape.dim
print(d)
d[0].dim_value = 1
d[2].dim_value *= rate[0]
d[3].dim_value *= rate[1]
onnx.save_model(model,"centerface_1088_1920.onnx" )
3、其他问题,可能和tensorrt安装有关。
现在就详细介绍如何安装tensorrt和部署centerface。
1、Centerface模型介绍
Centerface具有具有小巧精度高特点,是目前最快的人脸和关键点检测的方法。该网络采用了anchor-free的方法,并引入了FPN的结构和思想,使得模型在小尺度的脸上具有更好的鲁棒性。
Centerface链接:
2、TensorRT 安装
TensorRT的安装方式有好几种安装方式,可以采用简单便捷的tar包的安装方式。
2.1 下载安装包
先使用下面命令确认机器的cuda、cudnn的版本,然后对应下载相应的安装包;
cat /usr/local/cuda/version.txt
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
根据输出进行版本信息获取:
CUDA Version 10.1.243
#define CUDNN_MAJOR 7
#define