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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

py-faster-rcnn + ZF 实现自己的数据训练与检测(一)

發布時間:2024/9/21 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 py-faster-rcnn + ZF 实现自己的数据训练与检测(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0.前言

最近兩個星期,一直在看faster rcnn物體檢測,在一段折騰之后,總算能夠訓練自己的數據并進行物體檢測了。這篇博客就當作是對最近整個實驗過程的記錄吧。首先先從最開始如何配置py-faster-rcnn并訓練PASCALVOC2007開始講起,然后再對代碼和數據集進行修改實現自己數據的訓練與檢測。我的實驗平臺是Ubuntu14.04 LTS?

1.配置py-faster-rcnn

(1)這里,首先不用說的,大家肯定都已經在自己的機器上配好了caffe的環境,那各種依賴項的安裝就不必多說。在配置之前,需要安裝一下幾個Python包:cython,python-OpenCV和easydict

[python] view plaincopy
  • <pre?name="code"?class="python">pip?install?cython??
  • pip?install?easydict??
  • apt-get?install?python-opencv??
  • (2)從github上clone項目文件,注意:一定要在clone時加入--recursive參數,不然會很麻煩,也不要直接下載

    [python] view plaincopy
  • <pre?name="code"?class="python">git?clone?--recursive?https://github.com/rbgirshick/py-faster-rcnn.git??

  • (3)Cython模塊的編譯

    [python] view plaincopy
  • cd?py-faster-rcnn/lib??
  • make??
  • (4)Caffe和Pycaffe的編譯,在編譯之前,主要將makefile.config文件配置好,具體如何配置在你自己安裝caffe框架時肯定已經接觸過。這里也提供一個鏈接:實驗室歐大神的主頁Caffe + Ubuntu 15.04 + CUDA 7.5 新手安裝配置指南

    [python] view plaincopy
  • cd?py-faster-rcnn??
  • make?all?-j8?&&?make?pycaffe??
  • (5)下載訓練好的模型,運行demo.py看效果

    [python] view plaincopy
  • cd?py-faster-rcnn??
  • ./data/scripts/fetch_faster_rcnn_models.sh??
  • ./tools/demo.py?--net?ZF??
  • 下載模型時,直接在腳本文件中復制URL使用迅雷下載更快。因為自己的電腦配置不是很高,所以就只實驗了ZF net的訓練效果。demo.py默認加載的模型是VGG16,運行時可以自己修改代碼,也可以加命令參數。

    相信到了這一步,看到運行之后的結果是不是很開心呢,不過在我實驗過程中,執行demo.py時總是出現bug:

    [plain] view plaincopy
  • <span?style="font-size:18px;">Loaded?network?/home/ubuntu/py-faster-rcnn/data/faster_rcnn_models/ZF_faster_rcnn_final.caffemodel????
  • F1008?04:30:16.139123?5360?roi_pooling_layer.cu:91]?Check?failed:?error?==?cudaSuccess?(8?vs.?0)?invalid?device?function??</span>??
  • 抓耳撓腮查了好久資料終于找到問題所在:顯卡的計算能力不匹配,如何修改請看這里cudaSuccess( 8 vs.0 )


    2.訓練PASCAL VOC 2007的數據

    (1)下載pascal voc2007的訓練集,測試集和VOCdevkit

    [plain] view plaincopy
  • <pre?name="code"?class="plain"><span?style="font-size:18px;">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</span>??

  • 下載完成之后,將三個壓縮包解壓合并到一起。整體結構如下所示

    $VOCdevkit/ # development kit $VOCdevkit/VOCcode/ # VOC utility code $VOCdevkit/VOC2007 # image sets, annotations, etc. # ... and several other directories ... 將VOCdevkit改名為VOCdevkit2007,然后放到data文件夾下,亦可以使用軟連接的方式,這里不再說明。

    (2)下載預訓練好的ImageNet模型

    cd py-faster-rcnn ./data/scripts/fetch_imagenet_models.sh

    下載這個模型和之前的faster rcnn訓練好的模型時,不一定非要執行腳本,直接在腳本中找到資源的URL用迅雷下載更快。然后解壓到data文件夾即可。

    (3)使用交替優化來訓練數據

    cd py-faster-rcnn ./experiments/scripts/faster_rcnn_alt_opt.sh [GPU_ID] [NET] [--set ...] # GPU_ID is the GPU you want to train on # NET in {ZF, VGG_CNN_M_1024, VGG16} is the network arch to use # --set ... allows you to specify fast_rcnn.config options, e.g. # --set EXP_DIR seed_rng1701 RNG_SEED 1701 #例如命令./experiments/scripts/faster_rcnn_alt_opt.sh 0 ZF pascal_voc

    默認的迭代次數是[80000, 40000, 80000, 40000]不過這對于我這種想看到實驗能否正常運行的人來說,實在要的等的太久,就在./tools/train_faster_rcnn_alt_opt.py中將迭代次數改為100吧

    在程序運行到第一階段的第三部分“訓練fast r-cnn”時,很可能會報錯:out of memory !根據我的經驗所得,修改./lib/fast_rcnn/config.py 中的圖片大小,論文中作者使用的是將短邊縮放為600 pixels,對于我的渣渣電腦而言是吃不消的,所以修改如下:

    # Scales to use during training (can list multiple scales) # Each scale is the pixel size of an image's shortest side __C.TRAIN.SCALES = (450, ) # Max pixel size of the longest side of a scaled input image __C.TRAIN.MAX_SIZE = 750

    如果對作者論文中其他實驗也感興趣的話,可以嘗試一下experiments文件夾中的其他訓練腳本。最后,所有的輸出結果都在output文件夾


    接下將如何在本篇博客的基礎上訓練自己的數據集并進行檢測

    未完待續。。。

    總結

    以上是生活随笔為你收集整理的py-faster-rcnn + ZF 实现自己的数据训练与检测(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

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