iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0
AI & Data

YOLO系列網路技術採用以及實作系列 第 23

[DAY 23] YOLOv5模型訓練

  • 分享至 

  • xImage
  •  

建立所需環境

  1. 下載yolov5程式碼
  2. 在電腦當中建立虛擬環境,因為我的筆電已經有安裝anaconda,所以這邊我直接利用anaconda建立新的環境就可以了。
    conda create -n yolov5 python=3.8
    
  3. 建立環境好後,啟動該環境:
    conda activate yolov5
    
  4. 安裝yolov5所需套件(需花一段時間進行下載及安裝):
    pip install -r requirement.txt
    
  5. 安裝好後進行測試環境:
    python detect.py --source data\images\zidane.jpg
    
    • 執行後會自動下載yolov5的權重檔。
      https://ithelp.ithome.com.tw/upload/images/20231008/20120310DICcLpf5Q4.png
    • 辨識結果會存在runs\detect\exp資料夾裡面。
      https://ithelp.ithome.com.tw/upload/images/20231008/20120310l2gJL0XRC4.png

若在該資料夾中有看到這張輸出影像,就代表安裝環境成功囉。

https://ithelp.ithome.com.tw/upload/images/20231008/20120310YtAnnhLEPd.png

訓練階段(以飛機機身缺陷偵測資料集為例)

  1. 因為yolov5 訓練集的存放方式與yolov3、yolov4不同,剛好aircraft_fuselage_yolo資料夾中的影像擺放方式符合yolov5所需。
    https://ithelp.ithome.com.tw/upload/images/20231008/20120310S6Gc3pU3zh.png
  2. 複製data資料夾中的coco.yaml,並在原data資料夾貼上,並改名稱為custom.yaml。
  3. 開啟custom.yaml,並將data路徑以及類別名稱進行修改。
    • 檔案內容:
      path: ../aircraft_fuselage_yolo/ # dataset root dir
      train: images/train  # train images
      val: images/val  # val images
      test: 
      # Classes
      nc : 4
      names: ['scratch','paint_peel','rust','rivet_damage']
      
  4. 開始訓練-指令:
    python train.py --img-size 640 --batch 2 --epochs 300 --data data\custom.yaml --weights yolov5s.pt
    

成功執行訓練會顯示:

https://ithelp.ithome.com.tw/upload/images/20231008/20120310GqDf9budJq.png

可能會遇到的錯誤:

  1. urllib.error.URLError:<urlopen error[SSL:CERTIFICATE_VERIFY_FAILED]

    解決辦法: 開啟../../anaconda3/envs/yolov5/Lib/urllib中的request.py文件,並新增以下兩行在檔案的import library區。

    import ssl
    ssl._create_default_https_context = ssl._create_unverified_context
    
  2. out of memory:

    解決辦法: 將模型訓練的輸入影像大小或是batch設小一點。

這邊同樣只演示能成功進行訓練的步驟,沒有讓訓練跑到底,後續回到宿舍後,會利用散熱效果較好的桌上型電腦進行訓練,並在最後的幾篇文章中,統一將每一代的YOLO訓練結果數據進行展示。


上一篇
[DAY 22] YOLOv3、YOLOv4模型訓練
下一篇
[DAY 24] YOLOv6模型訓練
系列文
YOLO系列網路技術採用以及實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言