반응형
이전 포스팅
2023.07.21 - [DeepLearning/YOLO] - [YOLOv8] YOLOv8 install windows 10
YOLOv8 Export
- ultralytics에서는 ONNX, OpenVINO, TensorRT 등 다양한 format으로 export가 가능하다.
- 학습된 모델을 최적화하여 NVIDIA GPU에서 추론 속도를 향상시키는 TensorRT로의 export를 소개하려 한다.
1. TensorRT Install
https://developer.nvidia.com/tensorrt
- Anaconda prompt에서 이전 YOLOv8를 설치한 환경을 활성화. 해당 환경에서 TensorRT를 설치한다.
- 본인은 TensorRT 8.5.1.7을 사용.
cd graphsurgeon
pip install graphsurgeon-0.4.6-py2.py3-none-any.whl
cd onnx_graphsurgeon
pip install onnx_graphsurgeon-0.3.12-py2.py3-none-any.whl
cd python
pip install tensorrt-8.5.1.7-cp39-none-win_amd64.whl
cd uff
pip install uff-0.6.9-py2.py3-none-any.whl
- yolov8 환경에서 위 명령어를 통해 TensorRT 설치.
- tensorrt-8.5.1.7-cp39-none-win_amd64.whl의 경우 자신의 Python version에 맞게 설치해야 한다.
- tensorrt 설치 확인.
2. Export TensorRT
from ultralytics import YOLO
# Load a model
model = YOLO('yolov8n.pt')
# Export the model
model.export(format='engine', device=0)
- format='engine'으로 pytorch model을 TensorRT로 export.
3. Python 환경에서 Predict Test
from ultralytics import YOLO
import cv2
# Load a model
model = YOLO('yolov8n.engine') # pretrained YOLOv8n model
# Load a image
image = cv2.imread('./test_image.jpg')
# Run inference
results = model(image, conf=0.4)
# Draw results
result_plotted = results[0].plot()
cv2.imshow("result", result_plotted)
cv2.waitKey(0)
- 위에서 생성한 .engine model을 불러와 predict.
Pytorch vs TensorRT
- 두 모델을 같은 이미지로 실행한 결과 inference time이 13.0ms -> 1.0ms로 줄어든 것을 확인할 수 있다.
끝.
반응형
'DeepLearning > YOLO' 카테고리의 다른 글
[YOLOv8] YOLOv8 TensorRT C++(CPP) Inference (11) | 2023.09.04 |
---|---|
[YOLOv8] YOLOv8 Export, Pytorch -> ONNX -> TensorRT (0) | 2023.07.26 |
[YOLOv8] YOLOv8 install windows 10 (0) | 2023.07.21 |
[YOLO] yolov7 windows install 및 detect test (0) | 2022.12.09 |
3. YOLO c++, cpp dll 활용 (MFC) (4) | 2021.01.04 |