1. 程式人生 > >win7 環境下實現faster-rcnn

win7 環境下實現faster-rcnn

完成 join all 結果 data ger Git+http unknown parse

各軟件版本 cuda9.0,python3.5,tensorflow-gpu1.6.0,。因為網上代碼基本上都是在python3.5環境下實現的,原本安裝了cuda9.0,不想再換就試tensorflow的版本,發現tensorflow-gup1.6.0可以用。

1.首先上win7環境下代碼https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3.5

2.安裝python各種依賴庫(cython, opencv-python, easydict)

3. 在cmd中使用cd命令到解壓後的文件夾下../data/coco/PythonAPI目錄下,執行以下代碼:

cd C:\Users\master\Downloads\Faster-RCNN-TensorFlow-Python3.5-master\Faster-RCNN-TensorFlow-Python3.5-master\data\coco\PythonAPI

python setup.py build_ext --inplace

python setup.py build_ext install

4.下載VOC2007格式的數據集

下載地址:

http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar

http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar
將下載後的三個壓縮包解壓到同一個文件夾下,以WinRAR為例,同時選中三個壓縮包,右鍵,然後選擇解壓到當前文件夾可以得到VOCDevkit文件夾,將VOCDevkit重命名為VOCDevkit2007,然後將這個文件夾拷貝到你自己的Faster-RCNN中data目錄下。

5.VGG16模型預訓練權重下載地址:http://download.tensorflow.org/models/vgg_16_2016_08_28.tar.gz

模型下載後解壓,放在上面的路徑下,沒有就建立一個文件夾。 "data\imagenet_weights\vgg16.ckpt"

註意:下載後的VGG16模型的名字是vgg_16.ckpt,將其改為vgg16.ckpt,不然後面會報錯。
6.運行train.py,根據提示安裝各種庫。但是pycocotools這個庫安裝不上,原因是原作不支持windows,但github有人改好的。先下載安裝一個Git 網址https://gitforwindows.org/。一切默認。

安裝完成後在開始菜單中選擇Git CMD,打開命令框鍵入pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI命令完成庫的安裝。

技術分享圖片

8.然後訓練模型訓練結束後,在 ..\default\voc_2007_trainval\default目錄下可以看到訓練的模型。默認每5000次保存,一共叠代40000次(max_iters),這些在config.py中可以自己設置。

9.運行demo,在運行demo.py前在編輯器中對demo.py作些更改

tfmodel = os.path.join(‘output‘, demonet, DATASETS[dataset][0], ‘default‘, NETS[demonet][0])
這句代碼指向訓練模型結果,但實際是不存在的,需要我們新建文件夾,並且拷貝上一步生成的模型到該文件夾下,為簡化,直接把這句代碼替換成自己的路徑即可,例如:

tfmodel=r‘D:\FasterRCNN\output\vgg16\voc_2007_trainval\default\vgg16_faster_rcnn_iter_40000.ckpt‘

然後,打開demo.py, 將42行修改成如下:

修改前:
NETS = {‘vgg16‘: (‘vgg16_faster_rcnn_iter_10000.ckpt‘,), ‘res101‘: (‘res101_faster_rcnn_iter_110000.ckpt‘,)}

修改後:
NETS = {‘vgg16‘: (‘vgg16_faster_rcnn_iter_10000.ckpt‘,)}

將108行修改成如下:

修改前:parser.add_argument(‘--net‘, dest=‘demo_net‘, help=‘Network to use [vgg16 res101]‘,
choices=NETS.keys(), default=‘res101‘)


修改後:
parser.add_argument(‘--net‘, dest=‘demo_net‘, help=‘Network to use [vgg16 res101]‘,
choices=NETS.keys(), default=‘vgg16‘)

10這時又會報錯

我的在運行demo.py的時候出現了

absl.flags._exceptions.UnrecognizedFlagError: Unknown command line flag ‘net‘. Did you mean: network ?

最後發現是config.py文件中的參數沒有調用到 demo.py中

from lib.config import config as cfg

沒有用到config文件裏面的參數

第一種:最後我把cfg中的參數全部用相應的數字代替好了

第二種:我新建了一個.py文件 把demo.py文件復制到裏面也好了
用第二種方法可以實現

參考微博https://blog.csdn.net/qq_41895190/article/details/82877883和https://blog.csdn.net/tuoyakan9097/article/details/81782257

win7 環境下實現faster-rcnn