简述
在本地数据集合上测试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 |