talebolano / TensorRT_Seg_LW_Refinenet

一个简单的TensorRT实现语义分割的C++程序
58 stars 18 forks source link
light-weight onnx pytorch refinenet semantic-segmentation tensorrt

TensorRT for a simple segmentation model

LICENSE 996.icu

使用VOC Person Part 训练LW Refinenet ——resnet50 作为神经网络,生成onnx模型并导入c++中实现实时语义分割。

下载Resnet50 精度为64.1mIOU的onnx模型:百度云 密码:kx0j

效果

实验GPU:gtx1060 输入图像:512*512

模型 速度
pytorch源码 11FPS
FP32 21FPS
INT8 32FPS

how to use

第一次推理,没有序列化模型:

TensorRT_Seg.exe no_have_serialize_txt int8 save_serialize_name here_your_video_file_name_or_cam here_your_onnxmodel_name here_your_Calibrator_file_name

TensorRT_Seg.exe no_have_serialize_txt float32 save_serialize_name here_your_video_file_name_or_cam here_your_onnxmodel_name

保存序列化模型后:

TensorRT_Seg.exe have_serialize_txt int8 saved_serialize_name here_your_video_file_name_or_cam here_your_Calibrator_file_name

TensorRT_Seg.exe have_serialize_txt float32 saved_serialize_name here_your_video_file_name_or_cam

Todo

1.实现int8推理

2.实现upsample插件层(目前使用反卷积层代替)(tensorRT5.1已有upsmaplenearest的操作,还是没有bilinear的操作)

3.实现现有模型的剪枝,并进行时间的比较