【學習AIGO課程】使用Yolo v5預測及訓練自定資料集

作者:曹永忠/郭耀文

在上篇文章《【學習AIGO課程】第一步:Docker環境建置中介紹了學習AIGO線上課程的Docker環境建置基本動作,本文接著來介紹這門課程:Yolo v5的應用學習課程。

課程官網

首先,我們先使用瀏覽器,在網址列輸入:https://aigo.org.tw/zh-tw/onlinecourse/482/content/197,,如下圖所示,我們進入AIGO計畫中Yolo v4與Yolo v5學習課程的主頁:

YOLOv4與YOLOv5應用的主頁

如下圖所示,我們先下載YOLO v5_偵測及訓練說明檔

下載YOLO v5_偵測及訓練說明檔

下載安裝Yolo v5

如下圖所示,我們先輸入『sudo apt install make git g++』,安裝git的安裝:

安裝git

如下圖所示,我們先輸入『git clone https://github.com/ultralytics/yolov5』,下載Yolo v5的程式:

下載Yolo v5的程式

如下圖所示,我們完成下載Yolo v5的程式:

完成下載Yolo v5的程式

複製coco128資料集

接下來我們必須複製coco128資料集,方面進行訓練時,快速得到結果。

如下圖所示,我們先輸入『python3 -c “from yolov5.utils.google_utils import gdrive_download; gdrive_download(‘1n_oKgR81BJtqk75b00eAjdv03qVCQn2f’,’coco128.zip’)”』,複製coco128資料集:

複製coco128資料集

如下圖所示,我們完成複製coco128資料集:

完成複製coco128資料集

安裝需要的python套件

由於Yolo v5需要一些python的環境與需求套件,接下來我們必須安裝需要的python套件,方便進行訓練時,可以得到正確結果。

如下圖所示,我們先輸入『cd yolov5』,安裝git的安裝:

進入Yolo v5目錄

如下圖所示,我們已進入Yolo v5目錄:

已進入Yolo v5目錄

如下圖所示,我們先輸入『pip install -U -r requirements.txt』,進行安裝需要的python套件:

安裝需要的python套件

如下圖所示,我們已經安裝好需要的python套件:

安裝好需要的python套件

進行偵測

我們已完成環境設定後,我們可以先進行偵測,來試看看結果如何,是否可以正常運作。

如下圖所示,我們先輸入『python detect.py』,進行第一步進行偵測:

第一步進行偵測

如下圖所示,我們可以在目錄『yolo5/data/images/』下,看到系統預設的兩張圖案:

系統預設的兩張圖案

跑完預測程式之後,如下圖所示,我們可以在目錄『yolo5/runs/detect/exp□□□』下,看到跑完預測程式之後的兩張圖案(請讀者注意,exp□□□之□□□,因為每跑一次,□□□的內容會增加,請讀者自行注意資料夾的日期與時間,來確定結果為哪一個):

跑完預測程式之後的兩張圖案

使用Yolo v5進行自選照片偵測

由於Yolo v5已經將整個套件模組化,所以我們可以使用自己的照片,進行預測。

首先,筆者先準備圖片資料,所以筆者使用瀏覽器,進入Google圖片搜尋:

https://www.google.com.tw/imghp?hl=zh-TW&tab=ri&ogbl

隨意選擇了三類的圖片,如果讀者想要這些圖片,請到筆者Github自行下載這些圖片,網址:

https://github.com/brucetsao/AI_Course/tree/main/Yolov5/detection_data/20201120Data

我們可以先看到這些圖片如下圖所示:

筆者準備圖片資料

如上圖所示,我們必須將這些要預測的圖片,如下圖所示,放在目錄『yolo5/data/images/』下,方可以直接使用預設程式:

置於偵測目錄下的圖片資料

如下圖所示,我們先輸入『python detect.py』,進行自選圖庫進行偵測:

自選圖庫進行偵測

如下圖所示,我們完成自選圖庫進行偵測:

完成自選圖片行偵測

如下表所示,我們可以看到自選圖庫進行偵測時,每一張圖片偵測找到的結果與花費時間:

Namespace(agnostic_nms=False, augment=False, classes=None, conf_thres=0.25, device=”, exist_ok=False, img_size=640, iou_thres=0.45, name=’exp’, project=’runs/detect’, save_conf=False, save_txt=False, source=’data/images’, update=False, view_img=False, weights=’yolov5s.pt’)

Using torch 1.7.0 CUDA:0 (GeForce GTX 1050, 4042MB)

 

Fusing layers…

Model Summary: 232 layers, 7459581 parameters, 0 gradients

image 1/20 /home/user/yolov5/data/images/0001.jpeg: 288×640 1 persons, 12 chairs, 2 potted plants, Done. (0.033s)

image 2/20 /home/user/yolov5/data/images/0002.jpg: 448×640 8 persons, 1 bottles, 4 wine glasss, 1 cups, 1 bowls, 3 chairs, Done. (0.048s)

image 3/20 /home/user/yolov5/data/images/0003.jpg: 384×640 8 persons, 1 bottles, 8 wine glasss, 2 cups, 2 chairs, 1 dining tables, 1 clocks, Done. (0.038s)

image 4/20 /home/user/yolov5/data/images/1001.jpg: 384×640 13 persons, 2 handbags, 1 chairs, 3 tvs, Done. (0.038s)

image 5/20 /home/user/yolov5/data/images/1002.jpg: 448×640 10 persons, 4 tvs, Done. (0.043s)

image 6/20 /home/user/yolov5/data/images/1003.jpg: 416×640 1 persons, Done. (0.040s)

image 7/20 /home/user/yolov5/data/images/1004.jpg: 512×640 9 persons, 2 ties, 4 teddy bears, Done. (0.044s)

image 8/20 /home/user/yolov5/data/images/1005.jpg: 384×640 7 persons, 2 ties, 2 sports balls, 1 teddy bears, Done. (0.036s)

image 9/20 /home/user/yolov5/data/images/2001.jpg: 480×640 1 persons, 40 cars, 3 buss, 9 trucks, Done. (0.045s)

image 10/20 /home/user/yolov5/data/images/2002.jpg: 448×640 26 cars, 3 buss, 7 trucks, Done. (0.042s)

image 11/20 /home/user/yolov5/data/images/2003.jpg: 384×640 4 cars, Done. (0.037s)

image 12/20 /home/user/yolov5/data/images/2004.jpg: 448×640 1 cars, Done. (0.040s)

image 13/20 /home/user/yolov5/data/images/2005.jpg: 480×640 26 cars, 3 buss, 4 trucks, Done. (0.044s)

image 14/20 /home/user/yolov5/data/images/3001.jpg: 448×640 6 cows, Done. (0.042s)

image 15/20 /home/user/yolov5/data/images/3002.jpg: 384×640 6 cows, Done. (0.037s)

image 16/20 /home/user/yolov5/data/images/3003.jpeg: 256×640 14 cows, Done. (0.026s)

image 17/20 /home/user/yolov5/data/images/3004.jpeg: 384×640 1 horses, 9 sheeps, Done. (0.036s)

image 18/20 /home/user/yolov5/data/images/3004.jpg: 448×640 1 cars, Done. (0.041s)

image 19/20 /home/user/yolov5/data/images/3005.jpg: 448×640 2 dogs, 2 cows, Done. (0.042s)

image 20/20 /home/user/yolov5/data/images/3006.jpg: 640×640 1 birds, 1 cakes, Done. (0.055s)

Results saved to runs/detect/exp

Done. (1.299s)

如下圖所示,我們可以看到下面為偵測的結果:

讀者也可以在筆者Github自行下載這些圖片,網址:

https://github.com/brucetsao/AI_Course/tree/main/Yolov5/detection_data/20201120Data_Results

 

 

 

自行圖庫預測完成圖

作者介紹

曹永忠 (Yung-Chung Tsao) 為國立中央大學資訊管理學系博士,目前在國立暨南國際大學電機工程學系兼任助理教授、國立高雄科技大學商務資訊應用系兼任助理教授,也是自由作家,專注於軟體工程、軟體開發與設計、物件導向程式設計、物聯網系統開發、Arduino開發、嵌入式系統開發。長期投入資訊系統設計與開發、企業應用系統開發、軟體工程、物聯網系統開發、軟硬體技術整合等領域,並持續發表作品及相關專業著作。

郭耀文 (Yaw-Wen Kuo) 為國立交通大學電信工程研究所博士,目前是國立暨南國際大學電機工程學系教授,曾任工研院電通所工程師、合勤科技局端設備部門資深工程師,主要研究領域是無線網路通訊協定設計、物聯網系統開發、嵌入式系統開發。

(責任編輯:林亮潔)

Author: 曹永忠

國立中央大學資訊管理學系博士,目前在國立暨南國際大學電機工程學系兼任助理教授、國立高雄科技大學商務資訊應用系兼任助理教授自由作家,專注於軟體工程、軟體開發與設計、物件導向程式設計、物聯網系統開發、Arduino開發、嵌入式系統開發。長期投入資訊系統設計與開發、企業應用系統開發、軟體工程、物聯網系統開發、軟硬體技術整合等領域,並持續發表作品及相關專業著作,並通過台灣圖霸的專家認證。

Share This Post On

發表

跳至工具列