win10+python3.66+vs2017+cuda9.2下執行tensorflow版的faster-Rcnn編譯訓練
win10+python3.66+vs2017+cuda9.2下執行tensorflow版的faster-Rcnn
配置Faster-RCNN(網上找的的都是基於python3.5的,不支援py3.6,本文主要嘗試用py3.6配置)
python3.5版本 https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3.5
由於上述版本中的python都是基於linux環境編寫的,windows執行需要進行改動。
基礎環境配置:
安裝TensorFlow的GPU版本,
安裝一些必要的庫:cython,easydict,python-opencv,庫的安裝可以直接用pip 命令,當然這裡的安裝位置要在你自己建的的TensorFlow-gpu環境中。
在命令列中 cd 一下進入原始碼中所給的 /data/coco/PythonAPI資料夾下,執行編譯提供的 setup.py
強調一下,最好按照原始碼給的參考裝python 3.5。偷懶不想換原來裝的其他版本會出會問題的,我就是,結果被一個bug坑了好久,我的基礎環境已經裝好,就不重複了。需要什麼模組大家直接安裝。
我的執行環境:tensorflow-gpu 1.10 win10 64bit i7-8700k+32G+gtx1070 CUDA:9.2 IDE:VS2017
This is the branch to compile Faster R-CNN on Windows. It is heavily inspired by the great work done here and here. I have not implemented anything new but I fixed the implementations for Windows and Python 3.5.
python3.5是必須的。我安裝了python3.66,but各種不行。如果你安裝python3.5,估計都沒什麼問題了,如果你不想折騰,你就安裝一個python3.5,如果想和我一樣折騰一下,就繼續往下看。
先執行一下demo.py
我們需要對Faster RCNN專案當中的setup.py進行一點點修改。G:\Tensorflow\Faster-RCNN-TensorFlow-Python3.5-master\data\coco\PythonAPI\setup.py,原始的是下面這樣的
我們在程式的16行加上
,
Extension( 'lib.utils.cython_bbox',
sources=['../../../lib/utils/bbox.c','../../../lib/utils/bbox.pyx'],
include_dirs = [np.get_include(), '/lib/utils'],
extra_compile_args=[], )
加完這些程式碼之後的Setup.py程式碼情況如下:
然後重新進行編譯,
C:\Users\WWWW>g:
G:\>cd G:\Tensorflow\Faster-RCNN-TensorFlow-Python3.5-master\data\coco\PythonAPI
G:\Tensorflow\Faster-RCNN-TensorFlow-Python3.5-master\data\coco\PythonAPI>python setup.py build_ext --inplace
G:\Tensorflow\Faster-RCNN-TensorFlow-Python3.5-master\data\coco\PythonAPI>python setup.py build_ext install
編譯成功之後在相應資料夾下,生成一個新的cython_bbox的檔案(這裡是針對Py36的版本)。我們將這個檔案放入對應位置:
然後把 G:\Tensorflow\Faster-RCNN-TensorFlow-Python3.5-master\data\coco\PythonAPI\build\lib.win-amd64-3.6\lib\utils\cython_bbox.cp36-win_amd64.pyd這個檔案複製到 G:\Tensorflow\Faster-RCNN-TensorFlow-Python3.5-master\lib\utils\目錄下
下載PyCoco database
可以在這裡下載:http://host.robots.ox.ac.uk:8080/pascal/VOC/voc2007/#devkit
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目錄下。
我的放置後的目錄結構見下文,供參考:
----\data\VOCDevkit2007\create_segmentations_from_detections.m
----\data\VOCDevkit2007\devkit_doc.pdf
----\data\VOCDevkit2007\example_classifier.m
----\data\VOCDevkit2007\example_detector.m
----\data\VOCDevkit2007\example_layout.m
----\data\VOCDevkit2007\example_segmenter.m
----\data\VOCDevkit2007\local
----\data\VOCDevkit2007\results
----\data\VOCDevkit2007\viewanno.m
----\data\VOCDevkit2007\viewdet.m
----\data\VOCDevkit2007\VOC2007
----\data\VOCDevkit2007\VOCcode
----\data\VOCDevkit2007\local\VOC2006
----\data\VOCDevkit2007\local\VOC2007
----\data\VOCDevkit2007\local\VOC2006\dummy
----\data\VOCDevkit2007\local\VOC2007\dummy
----\data\VOCDevkit2007\results\VOC2006
----\data\VOCDevkit2007\results\VOC2007
----\data\VOCDevkit2007\results\VOC2006\Main
----\data\VOCDevkit2007\results\VOC2006\Main\dummy
----\data\VOCDevkit2007\results\VOC2007\Layout
----\data\VOCDevkit2007\results\VOC2007\Main
----\data\VOCDevkit2007\results\VOC2007\Segmentation
----\data\VOCDevkit2007\results\VOC2007\Layout\dummy
----\data\VOCDevkit2007\results\VOC2007\Main\dummy
----\data\VOCDevkit2007\results\VOC2007\Segmentation\dummy
----\data\VOCDevkit2007\VOC2007\Annotations
----\data\VOCDevkit2007\VOC2007\ImageSets
----\data\VOCDevkit2007\VOC2007\JPEGImages
----\data\VOCDevkit2007\VOC2007\SegmentationClass
----\data\VOCDevkit2007\VOC2007\SegmentationObject
----\data\VOCDevkit2007\VOC2007\Annotations\000001.xml
----\data\VOCDevkit2007\VOC2007\Annotations\000002.xml
----\data\VOCDevkit2007\VOC2007\Annotations\000003.xml
----\data\VOCDevkit2007\VOC2007\Annotations\000004.xml
----\data\VOCDevkit2007\VOC2007\Annotations\000005.xml
...
----\data\VOCDevkit2007\VOC2007\Annotations\009962.xml
----\data\VOCDevkit2007\VOC2007\Annotations\009963.xml
----\data\VOCDevkit2007\VOC2007\ImageSets\Layout
----\data\VOCDevkit2007\VOC2007\ImageSets\Main
----\data\VOCDevkit2007\VOC2007\ImageSets\Segmentation
----\data\VOCDevkit2007\VOC2007\ImageSets\Layout\test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Layout\train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Layout\trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Layout\val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\aeroplane_test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\aeroplane_train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\aeroplane_trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\aeroplane_val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\bicycle_test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\bicycle_train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\bicycle_trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\bicycle_val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\bird_test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\bird_train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\bird_trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\bird_val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\boat_test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\boat_train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\boat_trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\boat_val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\bottle_test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\bottle_train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\bottle_trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\bottle_val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\bus_test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\bus_train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\bus_trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\bus_val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\car_test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\car_train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\car_trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\car_val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\cat_test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\cat_train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\cat_trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\cat_val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\chair_test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\chair_train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\chair_trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\chair_val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\cow_test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\cow_train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\cow_trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\cow_val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\diningtable_test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\diningtable_train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\diningtable_trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\diningtable_val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\dog_test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\dog_train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\dog_trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\dog_val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\horse_test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\horse_train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\horse_trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\horse_val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\motorbike_test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\motorbike_train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\motorbike_trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\motorbike_val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\person_test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\person_train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\person_trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\person_val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\pottedplant_test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\pottedplant_train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\pottedplant_trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\pottedplant_val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\sheep_test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\sheep_train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\sheep_trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\sheep_val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\sofa_test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\sofa_train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\sofa_trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\sofa_val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\train_test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\train_train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\train_trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\train_val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\tvmonitor_test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\tvmonitor_train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\tvmonitor_trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\tvmonitor_val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Main\val.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Segmentation\test.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Segmentation\train.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Segmentation\trainval.txt
----\data\VOCDevkit2007\VOC2007\ImageSets\Segmentation\val.txt
----\data\VOCDevkit2007\VOC2007\JPEGImages\000001.jpg
----\data\VOCDevkit2007\VOC2007\JPEGImages\000002.jpg
----\data\VOCDevkit2007\VOC2007\JPEGImages\000003.jpg
----\data\VOCDevkit2007\VOC2007\JPEGImages\000004.jpg
...
----\data\VOCDevkit2007\VOC2007\JPEGImages\009962.jpg
----\data\VOCDevkit2007\VOC2007\JPEGImages\009963.jpg
----\data\VOCDevkit2007\VOC2007\SegmentationClass\000032.png
----\data\VOCDevkit2007\VOC2007\SegmentationClass\000033.png
----\data\VOCDevkit2007\VOC2007\SegmentationClass\000039.png
...
----\data\VOCDevkit2007\VOC2007\SegmentationClass\009947.png
----\data\VOCDevkit2007\VOC2007\SegmentationClass\009950.png
----\data\VOCDevkit2007\VOC2007\SegmentationObject\000032.png
----\data\VOCDevkit2007\VOC2007\SegmentationObject\000033.png
----\data\VOCDevkit2007\VOC2007\SegmentationObject\000039.png
...
----\data\VOCDevkit2007\VOC2007\SegmentationObject\009947.png
----\data\VOCDevkit2007\VOC2007\SegmentationObject\009950.png
----\data\VOCDevkit2007\VOCcode\PASemptyobject.m
----\data\VOCDevkit2007\VOCcode\PASemptyrecord.m
----\data\VOCDevkit2007\VOCcode\PASerrmsg.m
----\data\VOCDevkit2007\VOCcode\PASreadrecord.m
----\data\VOCDevkit2007\VOCcode\PASreadrectxt.m
----\data\VOCDevkit2007\VOCcode\VOCevalcls.m
----\data\VOCDevkit2007\VOCcode\VOCevaldet.m
----\data\VOCDevkit2007\VOCcode\VOCevallayout.m
----\data\VOCDevkit2007\VOCcode\VOCevalseg.m
----\data\VOCDevkit2007\VOCcode\VOCinit.m
----\data\VOCDevkit2007\VOCcode\VOClabelcolormap.m
----\data\VOCDevkit2007\VOCcode\VOCreadrecxml.m
----\data\VOCDevkit2007\VOCcode\VOCreadxml.m
----\data\VOCDevkit2007\VOCcode\VOCwritexml.m
----\data\VOCDevkit2007\VOCcode\VOCxml2struct.m
VGG16模型預訓練權重下載地址:http://download.tensorflow.org/models/vgg_16_2016_08_28.tar.gz
可以使用這個百度雲連結進行下載,
模型下載後解壓,放在上面的路徑下,沒有就建立一個資料夾。 "data\imagenet_weights\vgg16.ckpt"
注意:下載後的VGG16模型的名字是vgg_16.ckpt,將其改為vgg16.ckpt,不然後面會報錯。
接下來就是跑 train.py 了。
訓練得到的模型儲存在根目錄下的\default\voc_2007_trainval\default,中如下圖所示。模型訓練過程中每5000次迭代儲存一次,一共迭代40000次(max_iters),可以加多一個0,改為400000。這些在config.py中可以自己設定。所以想要跑demo.py,先訓練吧。
然後就是開始訓練資料了,執行train.py.
訓練完成後,程式預設的模型儲存的路徑在下面這個位置。
Faster-RCNN-TensorFlow-Python3.5-master\default\voc_2007_trainval\default
下面就到了檢驗模型的時刻了,執行demo.py,不過在此之前需要將demo.py的第108行原來預設的res101,改成我們現在用的vgg16。就是下面這個位置。
如果改完上面直接執行demo.py還可能出現下面的問題,
OSError: output\vgg16\voc_2007_trainval+voc_2012_trainval\default\vgg16_faster_rcnn_iter_70000.ckpt.meta not found.
這個問題解決要兩步走,第一步是先修改一下訓練權重的的儲存位置,先新建一個名為output的資料夾,具體的檔名就按它報錯的位置跟著新建就行如下圖。
第二步就是後面那個迭代70000次的那個問題了,因為預設的最多迭代次數是40000次,所以不加修改前儲存的模型應該是最多儲存到40000次對應的模型的,需要將demo.py檔案中的第39行對應的迭代次數名給改一下,當然如果你之前訓練的模型裡面包含70000次這個,這步就是不必要的了。
然後就開始執行demo.py檔案了,
run python demo.py
首先在demo.py同級目錄下,建立一個這樣的目錄檔案:G:\Tensorflow\Faster-RCNN-TensorFlow-Python3.5-master\output\vgg16\voc_2007_trainval+voc_2012_trainval\default
然後將訓練完的模型移到該資料夾如面。如下圖所示:
然後,開啟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')
最後成功執行如下:
遇到的各種問題:
出現的錯誤這裡基本都包括了,我就不自己寫啦
http://blog.csdn.net/JiaJunLee/article/details/50373815
py_faster_rcnn識別出來的結果好多紅框重疊
py_faster_rcnn識別出來的結果好多紅框重疊, 可以通過調節demo.py中的NMS_THRESH的值進行限制。
NMS_THRESH表示非極大值抑制,這個值越小表示要求的紅框重疊度越小,0.0表示不允許重疊。有時候0.3會有好多重疊
92行 NMS_THRESH = 0.1
訓練自己的資料集
如何使用faster rcnn訓練自己的模型,然後識別圖片,可以參考下一篇部落格:
參考 https://blog.csdn.net/samylee/article/details/51201744
https://blog.csdn.net/char_QwQ/article/details/80980505
https://blog.csdn.net/Best_Coder/article/details/76577544
自己資料集的製作
-
xml檔案的製作需要labelImg軟體的幫助,這裡提供在window下的exe包,開啟即可使用
wget https://github.com/pprp/DL/blob/master/LabelIMG.zip
- 使用方法:
Ctrl + u 載入目錄中的所有影象,滑鼠點選Open dir同功能 Ctrl + r 更改預設註釋目標目錄(xml檔案儲存的地址) Ctrl + s 儲存 Ctrl + d 複製當前標籤和矩形框 space 將當前影象標記為已驗證 w 建立一個矩形框 d 下一張圖片 a 上一張圖片 del 刪除選定的矩形框 Ctrl++ 放大 Ctrl-- 縮小 ↑→↓← 鍵盤箭頭移動選定的矩形框
-
資料的放置結構(自己手動建立)
-data
- VOCdevkit2007
- VOC2007
- Annotations (標籤XML檔案,用對應的圖片處理工具人工生成的)
- ImageSets (生成的方法是用sh或者MATLAB語言生成)
- Main
- test.txt
- trian.txt
- trainval.txt
- val.txt
- JPEGImages(原始檔案)
-
Main中的四個txt檔案的製作
詳見附件二,注意要修改路徑位置,最好是絕對路徑
xmlfilepath = 'Annotations'
txtsavepath = 'ImageSets\Main'
替換成自己的資料
參考 https://www.cnblogs.com/pprp/p/9465065.html
將製作好的資料按照以上的目錄結構進行放置
用你的Annotations,ImagesSets和JPEGImages替換…\Faster-RCNN-TensorFlow-Python3.5\data\VOCdevkit2007\VOC2007中對應資料夾
### 將原始程式碼修改為適配你自己的程式碼
-
-
Pascal_VOC.py,修改自己的標註的類別
self._classes = ('__background__', # always index 0 'aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car', 'cat', 'chair', 'cow', 'diningtable', 'dog', 'horse', 'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', 'train', 'tvmonitor')
將這些類別替換成你自己的類別。
self.__classes=('__background__', '你的標籤1','你的標籤2',你的標籤3','你的標籤4')
-
-
-
demo.py, 修改為自己的標註類別
CLASSES = ('__background__', 'aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car', 'cat', 'chair', 'cow', 'diningtable', 'dog', 'horse', 'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', 'train', 'tvmonitor')
更改為:
CLASSES = ('__background__', '你的標籤1','你的標籤2',你的標籤3','你的標籤4')
-
-
-
demo.py 更改另外一處程式碼:
net.create_architecture(sess, "TEST", 21,tag='default', anchor_scales=[8, 16, 32])
更改為:
net.create_architecture(sess, "TEST", 5,tag='default', anchor_scales=[8, 16, 32])
原本的程式碼是有20類物體+背景,所以是21。 把類別數改為,你的類別+背景。如果是隻檢測一類物體,那就改為2
-
-
Faster R-CNN:tf-faster-rcnn程式碼結構
-
Section 1: ./tf-faster-rcnn目錄: ├── data //資料目錄主要儲存一些資料集比如VOC2007、coco等 │ ├── cache //儲存一些資料集的訓練集和測試集的proposals,比如voc_2007_test_gt_roidb.pkl,格式[{ },{ },...,{ }]。程式首先從這讀取,如果檔案存在 //否則讀取.xml檔案得到proposal,同時在該目錄下生成對應的.pkl檔案 Note:訓練集合和測試集變化了,一定的先delete該目錄下的對應的.pkl檔案 │ ├── cache.tgz │ ├── coco //Python COCO API. The code requires the API to access COCO dataset. │ ├── demo //儲存幾張圖片(.jpg檔案),用於演示demo │ ├── imagenet_weights //儲存在ImageNet資料集訓練好的分類模型(比如vgg16,res101),vgg16.ckpt和res101.ckpt │ ├── readme.txt │ ├── res101_voc_0712_80k-110k.tgz //原檔名為voc_0712_80k-110k.tgz faster-rcnn(res101)的模型壓縮檔案 │ ├── res101_voc_2007_trainval+voc_2012_trainval //由原名為voc_0712_80k-110k.tgz解壓出來的,faster-rcnn(res101)的模型 │ ├── scripts //包含fetch_faster_rcnn_models.sh,該指令碼可用來下載訓練好的faster-rcnn模型 │ ├── vgg16_voc_0712_80k-110k.tgz //原檔名為voc_0712_80k-110k.tgz faster-rcnn(vgg16)的模型壓縮檔案 │ ├── vgg16_voc_2007_trainval+voc_2012_trainval //由原名為voc_0712_80k-110k.tgz解壓出來的,faster-rcnn(vgg16)的模型 │ ├── VOCdevkit //PASCAL VOC 2007資料集開發工具箱 │ ├── VOCdevkit2007 -> VOCdevkit //軟連線 │ └── wget-log //下載模型的日誌檔案 ├── lib // │ ├── datasets //基類imdb 針對具體資料集的派生類如pascal_voc coco │ ├── layer_utils //與anchor proposal相關 │ ├── Makefile │ ├── model //config配置檔案 nms bbox test train_val等 │ ├── nets //基類Network,針對具體網路的派生類(如mobilenet_v1,resnet_v1,vgg16) │ ├── nms //c和cuda的加速程式碼,生成共享庫(.so) │ ├── roi_data_layer //RoI層 │ ├── setup.py //用於構建Cython模組 │ └── utils //一些輔助工具,計時、視覺化 ├── LICENSE ├── output //儲存訓練模型和測試結果 具體見section 2. │ ├── res101 │ └── vgg16 ├── README.md ├── run_demover1.sh //演示demo ├── run_test.sh //測試 ├── run_train.sh //訓練+測試 ├── tensorboard //視覺化tensorboard │ ├── res101 │ └── vgg16 └── tools ├── convert_from_depre.py ├── demo.py ├── demover1.py //demo ├── _init_paths.py ├── _init_paths.pyc ├── __pycache__ ├── reval.py ├── test_net.py //測試 └── trainval_net.py //訓練 Section 2: /tf-faster-rcnn/output目錄 ├── res101 //在faster-rcnn(res101) │ ├── voc_2007_test //測試結果,按類別儲存的.pkl檔案 │ │ └── default │ ├── voc_2007_trainval //訓練的模型儲存在該資料夾下 │ │ └── default │ └── voc_2007_trainval+voc_2012_trainval //在voc_07+voc_12上訓練好的faster-rcnn(res101)模型 從/data目錄下軟連結過來的 └── vgg16 ├── voc_2007_test //測試結果,按類別儲存的.pkl檔案 │ └── default ├── voc_2007_trainval //訓練的模型儲存在該資料夾下 │ └── default └── voc_2007_trainval+voc_2012_trainval └── default -> ../../../data/vgg16_voc_2007_trainval+voc_2012_trainval/ //軟連結過來的faster-r