共用方式為


使用 TensorFlow 定型物件偵測模型

既然我們已設定 TensorFlow,我們將使用 YOLO 架構來定型物件偵測模型。 YOLO 是一種神經網路,可預測單一評估中影像中的周框方塊和類別機率。 YOLO 模型每秒可以處理超過 60 個畫面格,使其成為偵測影片中物件的絕佳架構。 您可以在這裡 找到 YOLO 運作 方式的詳細資訊。

使用 YOLO

首先,下載 此 YOLO 範例檔案 ,其中包含要開始使用的協助程式腳本。

使用 YOLO 時,我們有 3 個選項:

  1. 針對 YOLO 利用預先定型的模型權數。 預先定型的模型已在具有 80 個類別(類別)的大型資料集上定型,適用于公共汽車、人員、三明治等日常物件。如果您想要以 ONNX 格式下載預先定型的 YOLO 模型,您可以在這裡 執行此 動作。 然後,您可以繼續進行 本教學課程 的最後階段,以瞭解如何將該模型整合到應用程式中。

  2. 使用自訂資料集實作傳輸學習。 轉移學習是使用定型模型作為起點的方法,用來定型解決不同但相關工作的模型。 本教學課程將使用具有 80 個類別的預先定型 YOLO 權數,將具有 20 個類別的模型定型為 VOC 資料集 。 如果您想要使用自訂類別建立自己的資料集,請參閱這裡的 指示

  3. 從頭開始訓練 YOLO。 不建議使用這項技術,因為很難交集。 原始的YOLO報紙在訓練整個網路之前,在圖像網上訓練了深網(包含數十萬張照片)。

在預先定型的 YOLO 加權上實作傳輸學習至 VOC 資料集:

讓我們繼續進行第二個選項,並使用下列步驟實作傳輸學習。

  1. 在 miniconda 視窗中,流覽至 yolo 範例目錄,然後執行下列命令以安裝 YOLO 所需的所有 pip 套件。

pip install -r requirements.txt

  1. 執行安裝腳本以下載資料和預先定型的權數

python setup.py

  1. 轉換資料集。 如需實作, 請參閱 tools/voc2012.py - 此格式是以 tensorflow 物件偵測 API 為基礎。 許多欄位並非必要,但這裡已填入 ,以便與官方 API 相容。
python tools/voc2012.py \
  --data_dir './data/voc2012_raw/VOCdevkit/VOC2012' \
  --split train \
  --output_file ./data/voc2012_train.tfrecord

python tools/voc2012.py \
  --data_dir './data/voc2012_raw/VOCdevkit/VOC2012' \
  --split val \
  --output_file ./data/voc2012_val.tfrecord
  1. 定型模型。 執行下列命令:
python convert.py
python detect.py --image ./data/meme.jpg # Sanity check

python train.py \
	--dataset ./data/voc2012_train.tfrecord \
	--val_dataset ./data/voc2012_val.tfrecord \
	--classes ./data/voc2012.names \
	--num_classes 20 \
	--mode fit --transfer darknet \
	--batch_size 16 \
	--epochs 10 \
	--weights ./checkpoints/yolov3.tf \
	--weights_num_classes 80 

您現在已有 20 個類別的重新定型模型,可供使用。

下一步

既然我們已建立 TensorFlow 模型,我們需要 將它轉換成 ONNX 格式 ,以搭配 Windows 機器學習 API 使用。