1. 程式人生 > >tf-faster rcnn 配置 及自己資料

tf-faster rcnn 配置 及自己資料

下面主要針對 https://github.com/endernewton/tf-faster-rcnn工程,作者寫的很好,但是對於我這種常識比較少的小白還是會遇到很多問題,所有都是從網上一點點找到的,整理在下面,希望可以減少大家的配置時間。

因為我是在windows10 subsystem ubuntu下跑的,所以沒能用上GPU。下面我先按照我的配置說一遍,後面遇到什麼問題再補充。

一、tf-faster rcnn 配置

2、由於執行在cpu上,所以要進行一些配置

a. 修改lib/setup.py檔案,用‘return None’代替 ‘raise EnvironmentError’;註釋掉Extension(‘nms.gpu_nms’…)整段程式碼。

b.修改lib/model/nms_wrapper.py檔案,註釋掉‘import gpu_nms’並且設定 ‘force_cpu = True’

3、build Cython modules

   進入lib資料夾,執行 makeclean  make 命令

4、下載VOC資料 https://github.com/rbgirshick/py-faster-rcnn#beyond-the-demo-installation-for-training-and-testing-models

5、下載與訓練模型./data/scripts/fetch_faster_rcnn_models.sh

不知道是不是我網路的問題,我下載不下來,所以我通過文件中的連結下載的

解壓之後放在下圖的位置,並且驗證4個檔案全不全

為什麼是4個檔案呢? 我在網上查到說是tensorflow的模型就產生4個檔案,然後模型的名字是xxxx.ckpt。開始我遇到一個錯誤,我沒有把這個檔案放在這個目錄下,提示我是缺少ckpt.meta檔案,我只把xxxxx.ckpt.meta拷貝過來了,結果就報沒有ckpt檔案,我怎麼找都找不到,結果知道tensorflow模型是4個檔案之後才改正這個錯誤。

6、執行程式的demo ./tools/demo.py

7Train and test VOC

   下載預訓練模型已經train

mkdir -p data/imagenet_weights
cd data/imagenet_weights
wget -v http://download.tensorflow.org/models/resnet_v1_101_2016_08_28.tar.gz
tar -xzvf resnet_v1_101_2016_08_28.tar.gz
mv resnet_v1_101.ckpt res101.ckpt
cd ../..
./experiments/scripts/train_faster_rcnn.sh 0 pascal_voc res10

這個地方可能遇到一個錯誤,提示找不到test.txt檔案,我的解決方法就是建立一個test.txt檔案,然後copy一些train.txt的資料到test.txt下面。

二、訓練自己的資料 (我的是人臉檢測資料,相當於就是face和背景的分類)

1、製作VOC資料集

https://www.cnblogs.com/qw12/p/6185126.html

我是根據這個程式碼改的,由於我有標註好的資料,只是格式不同,我只用到了後面兩段程式碼。

2、修改程式碼 (http://blog.csdn.net/flashTianjiao/article/details/78032351?locationNum=4&fps=1#reply)

 a.修改 lib/datasets/pascal_voc.py  

self._classes = ('__background__'# always index 0

'face')

b.修改tools/demo.py.這裡的數字是類別+1

net.create_architecture("TEST",2,

                          tag='default',anchor_scales=[8, 16, 32])

3、可以訓練了

./experiments/scripts/train_faster_rcnn.sh0 pascal_voc res101

下面這些包需要安裝,也可以到出現錯誤的時候提示哪個裝哪個.

pip install cython,pip installopencv-python, pip installeasydict, pip install matplotlib, sudo apt-get installpython-tk, sudo pip install Pillow, sudo pip install scipy, pip install pyyaml

三、一些其他問題

1、'max_overlaps' issue on custom dataset!

刪除 data/cache 檔案即可。 Rm -rf data/cache

2、跑自己的資料的時候,遇到assert(boxes[:,2]>=boxes[:,0]).all()

我通過第一種方法就解決了。

3、KeyError:“chair” 這大概是你的資料類別沒有chair,而Annotations中的xml中的name有chair這一類。

這還是在配置完之後馬上寫的,已經有很多都不記得啦!腦子越來越不好使!