谷歌colab訓練自己的資料集YOLOv3
自己電腦的GPU不支援cuda,所以嘗試使用谷歌的Colabortory,免費提供GPU,最長執行時間12小時,因此一般需要掛載到谷歌雲盤上,儲存檔案。
資料集
目標檢測的資料集需要自己手動標註目標物體位置並對應生成xml檔案表示目標框的位置,本文簡單介紹windows系統下標註工具LabelImg的使用。
LabelImg下載連結:LabeIImg
下載好labelImg-master.zip後解壓得到如下圖所示。
shift+右擊空白處開啟powershell視窗
輸入兩個命令Pyrcc5 -o resources.py resources.qrc
python labelImg.py
可能會出現no module named libs.resources這樣的錯誤,將resources.py拷貝到同級的libs目錄下就可以解決了。再輸入第二條命令就可以執行成功了。具體使用可以參考這篇windows下使用labelImg標註影像
本次採用的資料集是紅細胞的檢測,已經標註好的資料連結:已標註好的細胞資料連線,Annotations檔案是已經標註好目標框的xml檔案,JPEGImages是jpg圖片檔案。
colab使用
首先需要建立一個谷歌雲盤賬號,右鍵空白處->更多->Google Colabortory,相應目錄下會生成一個.ipynb檔案,下次使用可直接右鍵此檔案以Google Colabortory方式開啟。如果沒有Googel Colabortory選項,點選關聯更多應用新增。
首先訓練自己的資料集需要掛載谷歌雲盤,方便檔案的傳輸。點選連結進去,複製程式碼到下面框中即可。
掛載成功如下圖
下面介紹一些簡單的檔案操作:
設定GPU模式
配置檔案
首先clone專案構建Darknet,輸入以下命令
構建好後,右側檔案如下圖:
上傳並構建資料集
將剛才下載好的資料集上傳到/darknet/data/目錄下,在谷歌雲盤中相應目錄下空白處右擊上傳即可,修改資料集名字為yolov3。
點進Yolov3,建立imagesets和labels兩個空資料夾,imagesets存放圖片路徑,labels存放目標框位置。
imagesets路徑編寫生成的txt檔案內容如下,每張圖片的完整路徑。
分割資料集為訓練集和測試集,分割後圖片的名字存在imagesets下
imagesets下的檔案
從xml檔案中提取目標框座標,並存入labels資料夾裡,生成train.txt和test.txt,與上面生成的不一樣,這裡是圖片的完整路徑
生成的labels檔案內容如下:
配置檔案
在/darknet/data/目錄下建立rbc.data和rbc.names檔案,如下:
網路結構配置,將/darknet/cfg/目錄下的yolov3.cf檔案基礎上改,可以將yolov3.cf檔案複製重新命名為yolov3_custom.cfg再存到cfg目錄下。修改地方如下,如何修改可參考Yolov3 win10+vs17 執行及訓練自己的資料集
開始訓練
下載預訓練權重
訓練,第一行是防止Permission denied錯誤。這裡注意前面構建資料的檔案一定要放對路徑,不然會報奇奇怪怪的錯。訓練產生的權重檔案自動儲存在/darknet/backup中
如中間因不明原因停止可以檢視backup目錄下最後一次權重是多少(比如yolov3_custom_700.weights),然後執行如下程式碼就可以了。
相關文章
- 資料庫索引
- 二進位制函式JSON資料分類問題——機器學習
- 如何將EXCEL資料表裡面的資料逆時針旋轉90度
- 資料庫關鍵詞 drop、truncate和delete的用法
- 資料庫之建立索引
- Spark儲存Parquet資料到Hive,對map、array、struct欄位型別的處理
- K 均值演算法-如何讓資料自動分組
- AHT20資料採集原理電路設計
- 2.1趣說什麼是陣列,以及資料的讀取、更新、插入、刪除等操作程式碼(1)
- 微軟sql server 資料庫 2016版本將在2021-01-31停止考試認證
- 【資料結構】哈夫曼樹的建立與基礎應用
- 2.1趣說什麼是陣列,以及資料的讀取、更新、插入、刪除等操作程式碼(2)
- 資料結構與演算法--簡單棧實現及其應用
- kafka 消費組功能驗證以及消費者資料重複資料丟失問題說明 3
- 聊天資料表設計
- 1.2 資料型別
- 按 F12獲取登陸資料,一鍵登陸巴西衛生部資料庫
- 《大資料: ZooKeeper 資料同步流程》
- Redis筆記(4)redis五大資料型別1----string(字串)
- 使用Mysql工具進行資料清洗