1. 前言
前一篇博文「Tensorflow 2.6 CNN架構下的Audio關鍵詞檢測模型訓練流程」教大家使用TensorFlow進行模型訓練,這次要為大家帶來另外一種常見的AI框架PyTorch並搭配YOLOv5模型進行遷移學習訓練。
由於工安事件在每個工作環境下是大家最不樂意見到的事情,因此我們可以利用AI檢測方式協助檢測員工是否正確穿著該工作環境之裝備以降低工作場所發生事故機率。
2. 相關開發環境工具安裝與YOLOv5訓練環境建置
2.1看官們可以回顧筆者之前寫的Anaconda搭配CUDA及cuDNN安裝及介紹(Win10平台),裡面有教大家如何於Window 10上架設Anaconda環境及安裝CUDA與cuDNN。
2.2 創建Anaconda虛擬環境並安裝Python 3.9
命令提示字元中進行創建一個新的Anaconda虛擬環境:
創建名稱為pytorch且python版本為3.9的Anaconda虛擬環境,並進入pytorch 虛擬環境(圖1)。
(圖1) |
2.3 YOLOv5訓練環境建置
透過以下指令,建置YOLOv5資料夾進行套件安裝。
git clone https://github.com/ultralytics/yolov5.git
cd yolov5
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116
pip install -r requirements.txt
3. 模型訓練資料集建置
筆者以工廠場景進行範例介紹,工廠場景辨識使用以下四個類別:Helmet、Goggles、Vest、Gloves。
可透過roboflow網站,尋找PPE相關資料集,找到相關資料集後(圖2),可下載成YOLOv5格式(圖3)。
(圖2) |
(圖3) |
3.1資料集下載完成後,需要進行資料篩選;請將下載檔案進行解壓縮可以看到data.yaml 檔案(圖4),檔案內會說明下載的資料集提供哪些類別(圖5)。
(圖4) |
(圖5) |
3.2 利用自行撰寫的python程式進行類別篩選,由於YOLOv5格式是利用0~10編號進行物件標記(圖6),因此可以利用delete_txt_lable.py (圖7)刪除不需要的類別或者利用modify_txt_lable.py進行標記編號修改(圖8),相關編號標記請參考PPE_Factory_Train.yaml (圖10)。
(圖6) |
(圖7) |
(圖8) |
4. YOLOv5模型訓練
4.1 於下方連結,下載yolov5s.pt預訓練權重進行訓練,如(圖9)所示。
https://github.com/ultralytics/yolov5/releases
(圖9) |
4.2 將工廠場景資料集移至yolov5/data資料夾,並新增PPE_Factory_Train.yaml (圖10)。
(圖10) |
4.3 執行下方指令進行工廠場景模型訓練
python train.py --data data/PPE_Factory_Train.yaml --cfg models/yolov5s.yaml --weights weights/yolov5s.pt
5. YOLOv5模型驗證
使用以下指令可以對測試集圖片進行檢測 (圖11)
python detect.py --source C:\Users\User\Downloads\PPE_all.v3i.yolov5pytorch\test\images --weights D:\pytorch\yolov5\runs\exp\weights\best.pt
或者使用以下指令進行camera即時檢測 (圖12)
python detect.py --source 0 --weights D:\pytorch\yolov5\runs\exp\weights\best.pt
(圖11) |
(圖12) |
結語
透過以上的教學,相信各位已經能夠成功地訓練工廠場景的個人防護裝置檢測,大家還可以找尋不同的資料及進行不同場景的應用(如:醫院、無塵室或化工廠),有問題的看官們歡迎聯繫我,我們一同討論。
喜歡我的帖子,請幫我按個”收藏”,我們下回見。
以上範例程式已於Qualcomm 產品上成功應用,有興趣看展示或者需要相關資訊,歡迎與我司Qualcomm PM聯繫。
評論