YOLOv5 支持將模型導出為以下幾種常見的格式,您可以根據不同的需求選擇合適的格式進行導出。YOLOv5 的 export.py 腳本可以幫助您將模型轉換為各種格式。

1. PyTorch (.pt)

  • 用途: 這是 YOLOv5 默認的格式,通常用於 PyTorch 中進行訓練和推理。

  • 導出命令: 默認情況下,訓練完成的模型就是 .pt 格式。

  • 範例: yolov5s.ptbest.pt

2. ONNX (.onnx)

  • 用途: 用於跨平台的推理,支持多種框架,如 ONNX Runtime、TensorFlow、Caffe2 等。它可以在許多深度學習推理引擎中使用,包括 C# 中的 ONNX Runtime。

  • 導出命令:

    bash
     
    python export.py --weights yolov5s.pt --img-size 640 --batch-size 1 --dynamic --include onnx
  • 範例: best.onnx

3. TensorFlow (.savedmodel)

  • 用途: 用於 TensorFlow 框架,支持 TensorFlow 1.x 和 2.x。TensorFlow 模型可以用於推理,也可以進行微調。

  • 導出命令:

    bash
     
    python export.py --weights yolov5s.pt --img-size 640 --batch-size 1 --dynamic --include savedmodel
  • 範例: saved_model 目錄下的模型。

4. CoreML (.mlmodel)

  • 用途: 用於在 Apple 設備(如 iOS 和 macOS)上運行深度學習推理。適用於在 iPhone、iPad 和其他 Apple 設備上部署模型。

  • 導出命令:

    bash
     
    python export.py --weights yolov5s.pt --img-size 640 --batch-size 1 --dynamic --include coreml
  • 範例: model.mlmodel

5. TensorRT (.trt)

  • 用途: 用於高效的推理,專為 NVIDIA GPU 設計,利用 TensorRT 進行優化。這個格式通常用於需要高效推理的情況,特別是在 NVIDIA GPU 上。

  • 導出命令:

    bash
     
    python export.py --weights yolov5s.pt --img-size 640 --batch-size 1 --dynamic --include engine
  • 範例: model.trt

6. TorchScript (.pt)

  • 用途: 用於將 PyTorch 模型導出為靜態圖模型,這樣可以提高模型的運行效率。這個格式可以在不需要 PyTorch 解釋器的情況下進行推理。

  • 導出命令:

    bash
     
    python export.py --weights yolov5s.pt --img-size 640 --batch-size 1 --dynamic --include torchscript
  • 範例: model_torchscript.pt

7. OpenVINO (.xml.bin)

  • 用途: 用於在英特爾硬件(如 CPU 和 VPU)上運行推理,OpenVINO 是一個由英特爾開發的深度學習推理引擎。

  • 導出命令:

    bash
     
    python export.py --weights yolov5s.pt --img-size 640 --batch-size 1 --dynamic --include openvino
  • 範例: model.xmlmodel.bin

8. MNN (.mnn)

  • 用途: 用於在移動端設備(如 Android 和 iOS)上進行推理。MNN 是一個開源的深度學習推理引擎,特別針對移動端做了優化。

  • 導出命令:

    bash
     
    python export.py --weights yolov5s.pt --img-size 640 --batch-size 1 --dynamic --include mnn
  • 範例: model.mnn

9. ULTRA Fast YOLO

  • 用途: 用於極速推理,專為特定場景和應用而優化。通常用于嵌入式系統或移動設備上。

  • 導出命令: 這通常需要進一步的自定義腳本或配置。


如何導出 YOLOv5 模型為不同格式

以 YOLOv5 export.py 腳本為例,以下是基本的導出命令範例,這些命令會將 .pt 模型轉換為不同格式:

# ONNX 格式
python export.py --weights yolov5s.pt --img-size 640 --batch-size 1 --dynamic --include onnx

# TensorFlow SavedModel 格式
python export.py --weights yolov5s.pt --img-size 640 --batch-size 1 --dynamic --include savedmodel

# CoreML 格式
python export.py --weights yolov5s.pt --img-size 640 --batch-size 1 --dynamic --include coreml

# TensorRT 格式
python export.py --weights yolov5s.pt --img-size 640 --batch-size 1 --dynamic --include engine

# OpenVINO 格式
python export.py --weights yolov5s.pt --img-size 640 --batch-size 1 --dynamic --include openvino

 

您可以根據具體需求選擇相應的導出格式,並將 YOLOv5 模型導出為所需的格式進行部署。

總結

YOLOv5 支持多種導出格式,包括 ONNX、TensorFlow、CoreML、TensorRT、OpenVINO 等。您可以使用 export.py 腳本將模型轉換為不同的格式,從而適應不同平台和框架的需求。

創作者介紹
創作者 IMM 的頭像
IMM-AT

IMM

IMM-AT 發表在 痞客邦 留言(0) 人氣( 0 )