關(guān)鍵點在于:弄清YOLOv3數(shù)據(jù)集的組織形式,需要按照這個生成數(shù)據(jù)。
一. 訓(xùn)練環(huán)境
1. YOLOv3編譯:OpenCV+GPU
git clone https://github.com/pjreddie/darknet
cd darknet
vim ...
2. 下載預(yù)訓(xùn)練權(quán)重(只包含卷積層)
wget https://pjreddie.com/media/files/darknet53.conv.74
二. 數(shù)據(jù)準備
0. 因為YOLOv3提供了一個將VOC數(shù)據(jù)集轉(zhuǎn)成自己訓(xùn)練的數(shù)據(jù)集格式的工具:scripts/voc_label.py,
因此,訓(xùn)練數(shù)據(jù)只需要按VOC數(shù)據(jù)集的格式準備就好, 再執(zhí)行voc_label.py即可
另一種思路,直接生成YOLO格式的?YOLO的格式更簡潔些。
1. VOC2012
http://host.robots.ox.ac.uk/pascal/VOC/voc2012/
研究下文件組織結(jié)構(gòu)
Annotations:用于存放與圖片對應(yīng)的XML文件
JPEGImages: 存放所有的圖片,png是否可以?
2. 對自己的圖片數(shù)據(jù)打標,按照YOLOv3的方式準備數(shù)據(jù)集
人工選取: l78z/projects/video_roi/video_roi_manual.py
自動保存: l78z/projects/video_roi/video_roi_crop.py
其他:labelImg: https://github.com/tzutalin/labelImg#macos
很多教程是基于次標注工具產(chǎn)出數(shù)據(jù),再轉(zhuǎn)成yolo訓(xùn)練數(shù)據(jù)
該工具支持直接生成YOLO格式,
基于cvui搞個工具?
ctrl+t , 打開新視頻
左鍵選擇,右鍵取消
3. 使用 scripts/voc_label.py 生成
三、 修改YOLOv3的配置文件
1. data/voc.names #修改成自己的分類
2. cfg/voc.data
classes = N #(N為自己的分類數(shù)量,如有10類不同的對象,N = 10)
train = /home/XXX/darknet/trainImagePath.txt # 訓(xùn)練集完整路徑列表
valid = /home/XXX/darknet/validateImagePath.txt # 測試集完整路徑列表
names = data/voc.names # 類別文件
backup = backup #(訓(xùn)練結(jié)果保存在darknet/backup/目錄下)
3. cfg/yolov3-voc.cfg
classes = N (N為自己的分類數(shù))
filters = 3*(classes+1+4), 修改每一個[yolo]層(一共有3處)之前的filters.
(可選) 修改訓(xùn)練的最大迭代次數(shù), max_batches = N
四、 YOLOv3訓(xùn)練&測試
訓(xùn)練:
./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74
測試:
./darknet detector test cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_final.weights 01.jpg
五、題外話,說說視頻標注工具的設(shè)計
1. 讀取video_list.txt,創(chuàng)建目錄文件,下載視頻,存放至約定的文件夾,文件價格結(jié)構(gòu):
video_list.txt, video_id \t video_download_url
Videos/ 用于存放下載的視頻
Manual/ 用于存放用戶選擇的圖片、區(qū)域、區(qū)域裁剪圖
JPEGImages/ 存放自動生成的圖片
Annotations/ 用于圖片對應(yīng)的選取信息
class.txt 所有分類匯總
class/ 選取區(qū)域的圖像 ?
class1/file1.jpg
2. 自動定位至還沒有標注數(shù)據(jù)的,顯示標注進度。
3. 快捷鍵設(shè)定:按游戲的設(shè)定w前進幀,s后退幀,d下一個,a上一個(上下切換視頻,左右調(diào)節(jié)幀,方向鍵位于右側(cè),影響鼠標操作),上下切換時,自動保存。
4. 拖拽選中區(qū)域,要有x/y輔助線,右鍵取消上一次選中,
5. 選中結(jié)束,彈窗,類名,設(shè)置類名時,除了文字外有對應(yīng)的縮略圖
6. 保存VOC格式, 全部結(jié)束后,自動生成YOLO格式。
參考文檔:
https://blog.csdn.net/dcrmg/article/details/81296520
http://www.lxweimin.com/p/f4518fe04da1
http://www.lxweimin.com/p/91eafe0f3719
https://www.cnblogs.com/pprp/p/9525508.html