简述
在本地数据集合上测试libtorch和tensorrt的推理速度
内容
模型
基于YOLOv5的检测模型、分割模型和分类模型
数据集
检测数据集是电路板的电子器件图
检测数据集参数:图像大小128*128
图像类别 5
分割数据集是电池的缺陷检测数据集
分割数据集参数:图像大小224*224
图像类别 6
推理效果
模型检测效果
模型分割效果
框架速度比较
在libtorch和Tensorrt上的推理速度比较:
模式 |
推理框架 |
预处理时间(ms) |
推理时间(ms) |
NMS后处理时间(ms) |
目标检测 |
Libtorch |
0.2 |
17.8 |
0.9 |
TensorRT(python) |
0.5 |
4.8 |
1.3 |
|
TensorRT(c++) |
0.118 |
4.74 |
0.01 |
|
物体分割 |
Libtorch |
0.4 |
7.6 |
1.2 |
TensorRT(python) |
11.0 |
2.9 |
1.3 |
|
TensorRT(c++) |
0.66 |
3.09 |
1.1 |
多线程速度对比
将预处理过程、推理过程、后处理过程集成到一个线程中,比较不同线程下的速度;
Tensorrt多线程下的速度对比:
模式 |
测试图大小 |
测试图数目 |
推理框架 |
线程数 |
时间(初始化和读图) |
物体分割 |
224*224 |
97 |
TensorRT(c++) |
1 |
1568ms |
2 |
1290ms |
||||
4 |
1106ms |
模式 |
测试图大小 |
测试图数目 |
推理框架 |
线程数 |
时间 |
目标分类 |
640*640 |
400 |
TensorRT(c++) |
1 |
3178ms |
2 |
1754ms |
||||
4 |
1316ms |