天天看點

在keras-yolo3使用自己的VOC資料集訓練

本教程是作者自己參考了一系列資料,以及踩坑之後總結下來的。和大家分享一下。

這次使用的模型是YOLOv3 的keras版本。

連結如下:

https://github.com/qqwweee/keras-yolo3

具體的使用細節,github上都寫明了。

我這裡是為了檢測圖像,所示使用,記得下載下傳yolo的權重。

python yolo_video.py --image
           

就行了

要使用VOC的資料集。我們需要做的是在目前項目的目錄下建立VOCdevkit檔案夾。

檔案的目錄如下:

VOCdevkit
    --VOC2007
        --Annotations   用于存檔xml檔案
        --ImageSets
            --Main 存放訓練集和測試集需要用要的檔案編号   
        --JPEGImages2  存放需要檢測的圖檔
           

我們需要在Main目錄下,建立兩個檔案。test.txt和train.txt

這兩個檔案是給voc_annotation.py調用的,目的是用來生成符合keras-yolo3的資料格式。

如何生成test.txt和train.txt

這兩個檔案時需要我們自己編寫的,我利用的是python腳本将Annotations裡面的檔案,讀取出來随機打亂,然後按照八二開的原則,将檔案名字放入train和test檔案中,需要注意的是,不要包含字尾名。

在keras-yolo3使用自己的VOC資料集訓練

然後調用voc_annotation.py腳本

在keras-yolo3使用自己的VOC資料集訓練

這裡需要注意的是,sets要生成的檔案名,他會分别讀取Main路徑下的,train和val還有test。如果我們不需要其中的某一項,則将其從list中去掉。

在classes中把自己資料源中的需要識别的類加進去。我需要的隻是car和train。

調用之後會在根目錄生成

在keras-yolo3使用自己的VOC資料集訓練

三個檔案。接着打開

k-mean.py檔案,把filename改成自己需要訓練的資料集。該腳本會生成一個yolo_anchors.txt檔案,把這個檔案放入到model_data檔案中去。

在keras-yolo3使用自己的VOC資料集訓練
在keras-yolo3使用自己的VOC資料集訓練

打開train.py檔案

在keras-yolo3使用自己的VOC資料集訓練

把檔案對應的檔案名字修改成為你自己的檔案。并修改好input_shape.

在keras-yolo3使用自己的VOC資料集訓練

把自己下載下傳的權重的路徑修改好。修改對應的trian和fine-tune對應的參數,我修改的是batch_size和epochs。

使用 python train.py我們就可以跑起來了。

這樣我們就可以跑起來了。

繼續閱讀