復現 faster rcnn

已經好幾天沒接着看faster rcnn的源代碼了,前幾天試了一下可以成功訓練了。
jwyang’s github: https://github.com/jwyang/faster-rcnn.pytorch
記錄一下怎麼做的吧。憑印象回憶一下吧。

虛擬環境

安裝虛擬環境 pip install --user virtualenv
進入虛擬環境 source zyfenv/bin/activate
(注,後來我用conda創建的虛擬環境可以這樣進:source activate zyfenv)
退出虛擬環境 deactivate

在虛擬環境裏面配置自己需要的環境
pip install numpy torchvision_nightly
pip install torch_nightly -f https://download.pytorch.org/whl/nightly/cu90/torch_nightly.html
conda install pytorch=0.4.1 cuda90 -c pytorch
wget https://repo.anaconda.com/archive/Anaconda2-2018.12-Linux-x86_64.sh
pip install https://download.pytorch.org/whl/cu90/torch-0.4.0-cp36-cp36m-linux_x86_64.whl

faster rcnn主目錄下操作

mkdir data
在這裏插入圖片描述
在這裏插入圖片描述
這裏編譯時nvcc好像有問題,我是直接把裏面的nvcc換成了具體地址。

插一句,如何在服務器跑matlab的m文件
在這裏插入圖片描述

預訓練vgg模型

vgg16_caffe.pth 有些連接還得翻牆,很麻煩,就是他,我在百度網盤找的。

因爲有一些參數都有默認值,最後我運行train的代碼就OK了
python trainval_net.py --save_dir ./data/voc_2007_trainval/ --cuda
這裏得強調一下需要修改的有
在這裏插入圖片描述
這個路徑下有一堆txt文件,訓練的圖片的name好像就是在trainval.txt裏面,自己可以改裏面的內容確定用哪些來訓練。

訓練的樣子是這樣的,GPU資源不足,我暫時用20個圖片訓練
啊哦 有問題
在這裏插入圖片描述
不過這就是我之前訓練的模型
在這裏插入圖片描述
2019.5.3
後來test也跑通了,上次沒跑通是因爲沒有[‘width’]的錯誤,也不太清楚是什麼錯誤,反正清一下緩存就行了。訓練的時候有可能也出現斷言錯誤,還是清一下緩存就好了。我也不知道爲什麼清緩存就可以了。怎麼清緩存,就是data/cache路徑下的那個。

訓練時要記得改一下
/fasterrcnn.pytorch/data/VOCdevkit2007/VOC2007/ImageSets/Main/trainval.txt裏面的圖片名字(這裏用1673個),因爲有些不存在。
CUDA_VISIBLE_DEVICES=3 python trainval_net.py --save_dir ./data/voc_2007_trainval/ --cuda
在這裏插入圖片描述
測試時要改一下跟trainval.txt同路徑下的test.txt文件(我這裏有3009個)
CUDA_VISIBLE_DEVICES=3 python ./test_net.py --load_dir ./data/voc_2007_trainval/ --checksession 1 --checkepoch 20 --checkpoint 1673 --net vgg16 --cuda
這裏要加上vgg16因爲默認好像是resnet。
在這裏插入圖片描述
啊哦,test又出錯了。
那我刪除一些,留999個,再試試。
還是000008這個KeyError。
然後faster-rcnn.pytorch/data/VOCdevkit2007/annotations_cache這裏面的我也刪了,還不行。
找了好一會,感覺沒問題了啊。。。。。。。。
那我把test.txt裏面的000008刪了試試呢。
還是不行,又是000010了。

運行demo
CUDA_VISIBLE_DEVICES=3 python ./demo.py --load_dir ./data/voc_2007_trainval/ --checksession 1 --checkepoch 20 --checkpoint 1673 --net vgg16 --cuda
他可以把images文件夾裏所有的圖片都給處理了。
在這裏插入圖片描述
在這裏插入圖片描述
還行,把人像給框起來了,還是0.996。



2019.5.18
#####conda create -n tensorflow-gpu python=3.6

test的問題沒解決,我重新復現。這次安裝github上的步驟來。上次是自己從其他博客上學的。

安裝github上的步驟來,操作。
CUDA_VISIBLE_DEVICES=0 python trainval_net.py --dataset pascal_voc --net vgg16 --bs 5 --nw 1 --lr 0.001 --lr_decay_step 100 --cuda
在這裏插入圖片描述
這邊爲啥有10022個image,我看了一下trainval.txt文件下有5011個數據,所以有可能是我沒刪cache中的文件就直接訓練導致的。
在這裏插入圖片描述
服務器扛不住

bs nw都小一點
在這裏插入圖片描述

在這裏插入圖片描述

訓練每次save模型時有個小報錯,但是不影響後續訓練
在這裏插入圖片描述

在這裏插入圖片描述

試試test
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
wc,終於能夠沒bug跑通test了。
之前是什麼問題?不知道。可能之前自己太菜了。
這次我是完全從頭來做的,所謂的破而後立。


-------------補充一下-----------------------------------------

在主目錄output裏面有pkl格式的檢測結果
在主目錄data/VOCdevkit/results/VOC2007/Main裏面有每個類別的txt文件,包含五列,第一列是名字,第二列是該類別得分,剩下四列是框的座標。
每個名字可能會對應很多行,但是存在很多得分是接近0的,這種就不算屬於這種類別了。

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