# Yolov4訓練資料前處理 ###### tags: `Yolov4` >written by 陳柏余 >此篇教學為把訓練資料前處理 >若尚未完成資料請參考此篇 ## 研究設備及器材 > 1. 訓練樣本 > 2. labelimg(用來標籤樣本) ## 蒐集樣本 我們做機器學習的訓練一定要有樣本(題目)以及標籤(解答)很類似人類的學習方式,所以稱為機器學習(Machine Learning)。我們樣本的主要來源有: :::info [Open ImagesDataset](https://storage.googleapis.com/openimages/web/visualizer/index.html) [kaggle](https://www.kaggle.com/) 自己收集 :camera_with_flash: ::: 通常機器學習最難的是「蒐集樣本」的部分,雖然蒐集樣本看起來很簡單,往往你要抓的時候會沒有東西可以蒐集xd。 ## 標籤樣本 蒐集完樣本後,把它丟到電腦上,並下載[labelimg](https://drive.google.com/uc?id=1J3nTNSnFHJ04_iq4e4Nv7Oqp7A773P5d&export=download) 解壓縮完後,先打開「data」資料夾  ㅤㅤㅤㅤㅤㅤㅤㅤㅤ 打開後裡面有一個叫做「predefined_classes.txt」,打開它。  ㅤㅤㅤㅤㅤㅤㅤㅤㅤ 裡面原本就有預設的標籤,可以把它全部刪掉並打上你想要的標籤。 ::: warning :warning: 順序必須和後面的.names一樣 ::: 接下來,就可以回到上一個資料夾並打開「labelImg.exe」了 進入到程式後,左邊有一排選單,分別選取「Open Dir」以及「Change Save Dir」。這兩個分別代表著「選取圖片資料夾」和「選取標籤檔資料夾」。  這兩個都要選你現在放圖片的位置。 再看到左下角的 要按它一下,才能切換標籤檔的格式。我們要的模式是YOLO模式喔~ :::success 這裡讓你看一下這兩個模式的不同。 PascalVOC :arrow_forward: .xml檔 YOLO :arrow_forward: txt檔 ::: ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ 接下來按下「W」即可開始標籤圖片 :+1: :::warning 按下「W」後如果沒有反應,有可能因為輸入法是中文,記得要切換成英文 ::: ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ::: info  這裡可以開啟自動存檔模式~ ::: ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ :::warning 標記完圖片後,記得要按 如果直接選取左邊清單的是不會幫你存檔的呦! ::: ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤ ## 編輯設定檔 首先,我們先建立一個資料夾(範例:yolo) #### 建立資料夾 進去以後,分別建立三個資料夾: backup:訓練時存放舊權重的地方。 ㅤㅤㅤㅤㅤ obj:放置要訓練的圖片+txt。(把剛剛標記完的整個資料夾內容傳過來) ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ vaild:放置要驗證的圖片+txt(通常是要訓練的20%) ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ :boom: 如果沒有放東西的話,訓練時的loss值會是"nan"(無法表示的數)ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ #### 建立.names檔 接下來,我們建立一個txt檔,(範例名稱:test) 再來,修改他的檔名。將副檔名(原"txt")改成"names"。前面的名字不變。 最後,把你的標籤輸入進去就完成了!  ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ #### 建立訓練以及驗證目錄 ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ 很簡單,先建立兩個txt檔(範例:test_train.txt&test_vaild.txt)一個是放要訓練圖片的路徑,則另外一個就是驗證圖片的路徑了。  ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤ #### 下載YOLOv4預權重 首先,我們先下載YOLOv4的預訓練檔(不管哪個訓練都一樣)和cfg檔。[載點](https://drive.google.com/u/0/uc?id=16J5ww7Mtwc2G7fo7sSAwJe3lGVx5Xtb5&export=download) 再來,把它解壓縮到yolo資料夾內。 接下來,我們只要修改裡面的yolov4-test.cfg就好,我們使用visual code來編輯它。  ㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤ  打開之後,開頭是一些個人化的設定參數,可以自己去調。 我們旁邊會有一個進度條,往下滑,會看到3個特別長的地方。 ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ  ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ 一一點進去修改。 ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ  以第一個為例,分別是「filters」以及「classes」要改。 **先把「classes」的數字改成你的分類數。 再把「filters」改成(classes+5)x3** 接下來的兩個地方也是依此類推囉~ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ #### .data檔處理ㅤㅤ 處理完後,就剩下一個檔案了! 就是.data檔(這裡我們檔名為test.data) 以下為test.data檔的內容 ``` classes = 2 train = /content/drive/MyDrive/yolo/test_train.txt valid = /content/drive/MyDrive/yolo/test_valid.txt names = /content/drive/MyDrive/yolo/test.names backup = /content/drive/MyDrive/yolo/backup/ ``` 分別是每個資料夾的路徑,只要把他們改成你的名稱即可。 /content/drive/MyDrive/是固定的~只要後面就好 ㅤㅤㅤㅤㅤㅤ 處理完後yolo資料夾應該會長這樣!  接下來就可以把資料夾丟到雲端上進行訓練囉~~~
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up