日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

使用py-faster-rcnn来训练voc2007数据集(Ubuntu)

發布時間:2024/9/21 Ubuntu 78 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用py-faster-rcnn来训练voc2007数据集(Ubuntu) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據集

1、下載數據集:?
輸入指令:

wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar
  • 1
  • 2
  • 3

文件挺大,要下載一段時間。如果嫌慢的話,直接打開url使用其他下載器下載也可以。?
下載完成后得到三個文件:?

2、解壓:

tar -xvf VOCtrainval_06-Nov-2007.tar tar -xvf VOCtest_06-Nov-2007.tar tar -xvf VOCdevkit_08-Jun-2007.tar

解壓后其中的文件會自動合并到一起。?
?
其中比較重要的兩個文件夾分別是VOC2007和VOCcode。?

3、將VOCdevkit文件夾放到py-faster-rcnn的data目錄,即FRCNROOT/dataFRCN_ROOT表示py-faster-rcnn的根目錄。?
輸入指令,為PASCAL_VOC dataset創建鏈接 :

cd $FRCN_ROOT/data ln -s $VOCdevkit VOCdevkit2007

4、下載預訓練模型:

cd $FRCN_ROOT ./data/scripts/fetch_imagenet_models.sh

文件挺大的,下載時間可能會比較長。?
當然下載方法也很多,也可以到csdn下載區找到,不多說了。

訓練數據集

好了,到目前為止都很簡單。接下來要使用指令來訓練了,一般來說都會因為環境不兼容碰到各種坑,后面會給出解決辦法。

使用交替優化算法訓練RPN?
指令說明:

cd $FRCN_ROOT ./experiments/scripts/faster_rcnn_alt_opt.sh [GPU_ID] [NET] [--set ...]

GPU_ID:你的GPU號,默認為0;?
NET:使用的網絡模型,模型有三種{ZF, VGG_CNN_M_1024, VGG16},其中zf較小,vgg16最大;?
set 訓練集設置,使用的數據集是pascal_voc;

示例:

cd $FRCN_ROOT ./experiments/scripts/faster_rcnn_alt_opt.sh 0 VGG16 pascal_voc

使用聯合訓練的方法訓練RPN?
指令說明:

cd $FRCN_ROOT ./experiments/scripts/faster_rcnn_end2end.sh [GPU_ID] [NET] [--set ...]

GPU_ID:你的GPU號,默認為0;?
NET:使用的網絡模型,模型有三種{ZF, VGG_CNN_M_1024, VGG16},其中zf較小,vgg16最大;?
set 訓練集設置,使用的數據集是pascal_voc;

這里跟前面類似,只是訓練的方法不一樣,使用的網絡模型和數據集等等都是一樣的。?
示例:

cd $FRCN_ROOT ./experiments/scripts/faster_rcnn_end2end.sh 0 VGG16 pascal_voc

可能遇到的問題

好了,前面的就是基本的操作步驟了。現在介紹一下可能遇到的問題。?
錯誤1:

TypeError: slice indices must be integers or None or have an index method

這個報錯是因為numpy的版本太高,默認我們裝anaconda的話,使用的numpy版本是1.12的,而這里用的是numpy1.11。由于語法不同,不兼容,所以報錯。

解決方法一:對numpy版本做調整,把numpy版本降低到1.11。?
輸入指令:

sudo pip install -U numpy==1.11.0
  • 1

如果裝的是anaconda的話,要使用conda install指令來重新安裝numpy。但是不建議,因為會將一系列的python包更改掉,管理會變得很混亂,所以我沒有采取這種方法。

給個參考鏈接,感興趣的可以去看看:跑py-faster-rcnn過程中遇到的問題

解決辦法二:?
由于是numpy版本不兼容,我們就自己修改代碼,使代碼能兼容1.12版本的numpy。?
修改$FRCN_ROOT/lib/rpn/proposal_target_layer.py,從第123行起:

for ind in inds:cls = clss[ind]start = 4 * clsend = start + 4bbox_targets[ind, start:end] = bbox_target_data[ind, 1:]bbox_inside_weights[ind, start:end] = cfg.TRAIN.BBOX_INSIDE_WEIGHTSreturn bbox_targets, bbox_inside_weights

修改為:

for ind in inds:ind = int(ind)cls = clss[ind]start = int(4 * cls)end = int(start + 4)bbox_targets[ind, start:end] = bbox_target_data[ind, 1:]bbox_inside_weights[ind, start:end] = cfg.TRAIN.BBOX_INSIDE_WEIGHTSreturn bbox_targets, bbox_inside_weights

只是更改了ind,start,end變量,因為他們是numpy.int類型,將其進行強制類型轉換,才能做索引。

錯誤2:

TypeError: 'numpy.float64' object cannot be interpreted as an index

這個報錯也是numpy的版本問題,有可能會遇到報錯也有可能不會。?
要么更換numpy版本,要么就是自己修改源碼。

1) $FRCN_ROOT/lib/roi_data_layer/minibatch.py

將第26行:

fg_rois_per_image = np.round(cfg.TRAIN.FG_FRACTION * rois_per_image)

改為:

fg_rois_per_image = np.round(cfg.TRAIN.FG_FRACTION * rois_per_image).astype(np.int)

2) $FRCN_ROOT/lib/datasets/ds_utils.py

將第12行:

hashes = np.round(boxes * scale).dot(v)

改為:

hashes = np.round(boxes * scale).dot(v).astype(np.int)

3) $FRCN_ROOT/lib/fast_rcnn/test.py

將第129行:

hashes = np.round(blobs['rois'] * cfg.DEDUP_BOXES).dot(v)

改為:

hashes = np.round(blobs['rois'] * cfg.DEDUP_BOXES).dot(v).astype(np.int)

4) $FRCN_ROOT/lib/rpn/proposal_target_layer.py

將第60行:

fg_rois_per_image = np.round(cfg.TRAIN.FG_FRACTION * rois_per_image)

改為:

fg_rois_per_image = np.round(cfg.TRAIN.FG_FRACTION * rois_per_image).astype(np.int)

接下來可以回去前面輸入指令測試了。如果還遇到了其他問題,下面給出幾個參考博客鏈接:?
Faster RCNN 訓練中的一些問題及解決辦法?
Ubuntu16.04+cuda8.0+cudnn5.1配置faster-rcnn的方法以及訓練自己的數據出現的問題

總結

以上是生活随笔為你收集整理的使用py-faster-rcnn来训练voc2007数据集(Ubuntu)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。