windows 下faster rcnn入門3:訓練自己的數據

目錄

 

訓練自己的數據(這裏用小浣熊數據集)

一、數據處理

二、修改代碼及模型位置

train階段

測試階段


自制目標檢測數據集鏈接數據集1數據集2數據集3

使用小浣熊數據集

前提基於https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3.5代碼,網上有兩版不同的tensorflow下的faster rcnn代碼

一、數據處理


voc數據集下修改這三個文件夾:

  •   Annotations---用於存放使用labelimage生成的xml 文件 
  •  ImageSets\Main---用於存放trian.txt 、test.txt 、trainval.txt、 val.txt
  •  JPEGImages—你所有的jpg格式的圖片

這裏爲了測試,使用了小浣熊數據集https://github.com/datitran/raccoon_dataset,數據集裏有200張浣熊的照片;數據集已經標記好了,Annotations文件夾裏是製作好的標籤,JPEGImages文件夾裏是源圖像。
使用的話只需要在ImageSets\Main 下生成的txt,參照博客https://blog.csdn.net/qq_36301716/article/details/79018170

import os
import random

trainval_percent = 0.9 # trainval數據集佔所有數據的比例
train_percent = 8/9.0 # train數據集佔trainval數據的比例
xmlfilepath = 'F:/TensorFlow/Faster-RCNN/data/VOCDevkit2007/VOC2007/Annotations'
txtsavepath = 'F:/TensorFlow/Faster-RCNN/data/VOCDevkit2007/VOC2007/ImageSets/Main'
total_xml = os.listdir(xmlfilepath)

num=len(total_xml)
list=range(num)
tv=int(num*trainval_percent)
tr=int(tv*train_percent)
trainval= random.sample(list,tv)
train=random.sample(trainval,tr)

ftrainval = open('F:/TensorFlow/Faster-RCNN/data/VOCDevkit2007/VOC2007/ImageSets/Main/trainval.txt', 'w')
ftest = open('F:/TensorFlow/Faster-RCNN/data/VOCDevkit2007/VOC2007/ImageSets/Main/test.txt', 'w')
ftrain = open('F:/TensorFlow/Faster-RCNN/data/VOCDevkit2007/VOC2007/ImageSets/Main/train.txt', 'w')
fval = open('F:/TensorFlow/Faster-RCNN/data/VOCDevkit2007/VOC2007/ImageSets/Main/val.txt', 'w')

for i in list:
    name=total_xml[i][:-4]+'\n'
    if i in trainval:
      ftrainval.write(name)
      if i in train:
        ftrain.write(name)
      else:
        fval.write(name)
    else:
      ftest.write(name)

ftrainval.close()
ftrain.close()
fval.close()
ftest .close()

這些也是製作自己數據集必備步驟,這裏我沒有用到,用到後來追加

  1.  批量化命名圖片名
  2.   resize圖片大小(一般500-600)
  3.   labelIImg標註了自己的圖片

二、修改代碼及模型位置

train階段

1、標籤修改:代碼位於lib\datasets\pascal_voc.py,pascal_voc.py腳本第34行,不要更改_background_,將34行中的標籤替換成自己的標籤,這裏只用到了一個標籤:raccoon(之前寫錯了,暈,一直報錯keyerror)。

 2、訓練參數修改:代碼位於lib\config\config.py文件中,可以更改訓練的總步數(max_iters)、權值衰減(weight_decay)、學習率(learning_rate)、批次大小(batch_size)等參數。

3、模型位置參數修改 :運行train.py,模型訓練完後,模型保存在..\default\voc_2007_trainval\default中,把四個文件拷貝出來放到output\vgg16\voc_2007_trainval\default文件夾中,如下圖所示。

測試階段

修改demo.py中的標籤及測試圖片修改

批量化處理(見上一篇博客)

測試的結果如下圖所示:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章