tensorrt加速模型转换过程为:wieghts=>onnx=>trt
实验环境:ubuntu16.04+cuda10.0+tensorrt 7.0.0.11+Anaconda3+python2.7/python3.6/python3.7
跑通版本:
yolov3+tensorrt 摄像头+视频文件实时测试
yolov3 tiny+tensorrt 摄像头+视频文件实时测试
yolov4+tensorrt 摄像头+视频文件实时测试
yolov4 tiny+tensorrt 摄像头+视频文件实时测试
本次研究全部使用python代码实现,具体结果可以查看我B站发布的演示视频,本次研究我已经全部封装为接口方便调用和快速开发,其中摄像头代码开源如下:
import cv2 from InferenceManager import * infer = InferenceManager('yolov3.trt') infer.load_labels('coco.names') cap = cv2.VideoCapture(0) #目前网上yolov4和yolov4 tiny基本没有全的代码,需要可以联系我们。 while True: ret, frame = cap.read() image_raw, boxes, classes, scores = infer.inference_image(frame) obj_detected_img = infer.draw_bboxes(image_raw, boxes, scores, classes) cv2.imshow('frame', obj_detected_img) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows()
代码全部被我封装,调用十分简单,并提供转换接口,infer.inference_image可以对opencv读取图像推理,这个接口可以对单张图片、摄像头甚至视频文件都可以方便调用。后面会陆续研究pytorch版本yolo和Tensorflow版本的yolo tensorrt转换过程。