對於 YuwenXiong-py-R-FCN 的理解與案例調節

從E,P,T 下手調節代碼,梳理作者思路

綜合分析

	E:
	類別名的修改
	訓練集標註
	訓練集測試集的拆分
	數據處理:訓練尺寸:最小尺寸和最大尺寸
		
	P:
	預訓練權重
	rpn框數
	
	T:
	學習率
	最大迭代次數
		保存模型迭代次數

詳細步驟

首先可以肯定的是代碼以 experiments文件 中的 腳本文件scripts 開頭
我們以 rfcn_end2end_ohem.sh 爲案例開始梳理
在這裏插入圖片描述

期間調用了很多的配置文件需要我們修改,我們逐個分析:

一:運行文件
rfcn_end2end_ohem.sh 爲第一個修改內容,它是一個運行整個程序的腳本文件,可以修改的地方是第一個pascal_voc中的iters迭代次數 ITERS
同時我們也看到了三個配置文件的路徑
TRAIN_IMDB :訓練集路徑
TEST_IMDB:測試集路徑
PT_DIR:配置路徑
都需要進行修改,但這三個我們暫時不去理會
在這裏插入圖片描述
二:配置文件
同樣在experiments文件下有一個叫cfgs的文件夾,其中放了相對腳本的配置文件
所以我們修改的是 rfcn_end2end_ohem.yml 其中可以修改的參數是
SNAPSHOT_ITERS:參數,循環多少次,保存一次模型
RPN_POST_NMS_TOP_N : 選取多少個rpn框

三:數據安放
這時候就需要我們對EPT思路有所理解了,E代表數據,所以我們就先處理數據
首先我們要建立一個類似下面的結構,Annotations 存放xml文件 ,JPEGimages 存放圖片 , Main存放圖片名字類型的txt
然後將整個ImageSets文件放入data文件夾下,閱讀readme即可知詳細位置
在這裏插入圖片描述
Please copy this folder to $RFCN_ROOT/data/VOCdevkit0712/VOC0712 根據readme內容可知,最後的路徑在
在這裏插入圖片描述

四:修改類名
在lib文件夾下的 datasets/pascal_voc 是修改類名的py文件
同時在 fast_rcnn/config 中可以修改圖片尺度大小的配置,完成多尺度訓練
在這裏插入圖片描述
配置最大尺度和最小尺度

五:添加網絡
在data文件中 的imagenet_models 下添加主幹網絡,沒有則新建,閱讀readme即可得到下載網址
在這裏插入圖片描述
./data/scripts/fetch_imagenet_models.sh

六:迭代修改
model/pascal_voc/ResNet-50/rfcn_end2ends/solver_ohem.prototxt :
①調整學習率,多少次降低一次學習率,打印跨數
②模型名稱 snapshot_prefix = “ ”

在這裏插入圖片描述
在這裏插入圖片描述

model/pascal_voc/ResNet-50/rfcn_end2ends/train_agnostic_ohem.prototxt 和 test_agnostic.prototxt 相同
①類別數
②搜索PSROIPooling 修改num_output
③修改position sensitive ROI pooling 輸出
output
group_size
在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述

文件分析

	data:
		新建cache(貯存器) 所有的標籤讀取起來,然後放在一起 
		* 要常清理,默認有的話會直接讀取,但我們的數據時有改變
		* 還記錄了對數據集的所有操作,相當於日誌
		
		imagenet_models:主幹網絡
		
		main:分配好訓練集和測試集的圖片名,不需要後綴
	
	experiments:
		cfgs:配置參數
		
		logs:觀看日誌可知後臺是否在運行程序
		
		scripts:代碼運行文件
			
	lib:庫
		rpn:pyc是py編譯的中間過程,是rcnn的主要文件
		datasets:
			pascal_voc:
				1.編輯類名
				2.問題1:而此代碼的pascal設置第一位是1,所以減一
				  問題2:有的圖片設置位置超出區域後會轉回來
				  可以設置臨界點,比如大於20就規定20
             
			fast_rcnn:
					config:控制是否多尺度訓

						
	model:
		pascal_voc:
			ResNet-50:
				rfcn_end2ends:
					solver_ohem.prototxt 
						①調整學習率,多少次降低一次學習率,打印跨數
						②模型名稱	snapshot_prefix	=   “     ”  			
					train_agnostic_ohem.prototxt
						①類別數
						②搜索ps   修改num_output
						③修改position sensitive ROI pooling 輸出
							output
							group_size 

參考圖:

在這裏插入圖片描述

職業化:控制邊框邊界溢出

在這裏插入圖片描述

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