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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Faster-RCNN.Pytorch的使用

發布時間:2023/12/10 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Faster-RCNN.Pytorch的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 一、Colab運行Faster-RCNN
      • 慈善GPU
      • Google云
      • 1、克隆倉庫
      • 2、創建數據文件夾
      • 3、下載數據
      • 4、下載預訓練模型
      • 5、上傳到Google云盤
      • 6、編譯
      • 7、訓練
      • 8、測試
      • 9、運行demo
    • 二、遠程服務器運行Faster-RCNN
      • 1、服務器環境介紹
      • 2、編譯
      • 3、其余
    • 三、使用自己的數據集訓練
      • 1、準備數據
      • 2、制作訓練集trainval.txt
      • 3、修改訓練類別信息
      • 4、訓練

一、Colab運行Faster-RCNN

慈善GPU

??Google大大免費開放了GPU給全世界使用相信很多人已經知道了,那么我們把Goolge云和慈善GPU結合起來使用簡直不要太方便!再也不用排隊等待老板的GPU了!
??有效利用慈善GPU跑模型需要兩個條件:1、Goolge賬號,2、科學上網

Google云

??只要注冊一個Google賬號,就會免費送15G的空間,良心谷歌啊。當然如果嫌小可以花錢擴容,價格也沒有很貴。這個注冊過程和科學上網過程我就不說了。
??我們登錄上谷歌云,把項目上傳到谷歌云里,然后打開Caloboratory,加載完谷歌硬盤就可以進行操作啦。下面就來說一說詳細步驟。

1、克隆倉庫

??我們先將faster-rcnn的倉庫克隆到本地,我這里使用的是jwyang的faster-rcnn.pytorch。當然如果想要使用其他大佬的其他框架的faster-rcnn也可以。注意,克隆到本地需要先安裝Git,這個可以參考廖雪峰的Git教程。在你想要克隆的文件夾下打開 Git bash,輸入以下命令:

git clone -b pytorch-1.0 --single-branch --depth=1 --recursive https://github.com/jwyang/faster-rcnn.pytorch.git

??git -b 分支名 --single-branch是克隆指定分支的命令,因為我需要克隆的模型是pytorch1.0的faster-rcnn,而master下的faster-rcnn是0.4版本的,所以我需要到pytorch-1.0下去克隆。
??--depth==1是指克隆最近一次更改,因為將整個倉庫克隆下來可能會因為倉庫太大而報錯無法克隆。
??--recursive用于循環遞歸克隆子項目

2、創建數據文件夾

cd faster-rcnn.pyroch mkdir data

這個沒啥好說的

3、下載數據

  • 下載壓縮文件到data
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

??注意:wget是一個下載工具,linux系統中會自帶wget,Windows環境下需要下載,教程地址:windows安裝wget教程

  • 解壓數據到data/VOCdevkit
tar xvf VOCtrainval_06-Nov-2007.tar tar xvf VOCtest_06-Nov-2007.tar tar xvf VOCdevkit_08-Jun-2007.tar
  • 創建軟鏈接
cd faster-rcnn.pytorch/data ln -s VOCdevkit的絕對路徑 VOCdevkit2007

Tips:其實這步可以不執行,直接將VOCdevkit改成VOCdevkit2007
PASCAL VOC 2010 and 2012、COCO等數據集也是如此操作。

4、下載預訓練模型

??VGG16: Dropbox, VT Server
??ResNet101: Dropbox, VT Server
??基于caffe訓練的模型要比基于pytorch訓練的模型表現好些,推薦下載Dropbox。下載完以后,把這兩個模型都放進/data/pretrained_model/里。

5、上傳到Google云盤



??再點擊上傳即可。

6、編譯

??其實從一到五可以直接在谷歌云上完成,但是我沒試,各位大佬如果有感興趣的可以試一下。
??接著打開Colaboratory,確認你的賬號已經登錄,然后掛載你的谷歌硬盤
注意:下面的工作目錄若非特意cd,都是/content/drive/My Drive/faster-rcnn.pytorch
??使用pip命令安裝所有的python依賴包

pip install -r requirements.txt

??使用下面的命令編譯CUDA依賴環境

cd lib !python setup.py build develop cd ..

Tips:要注意如果出現can’t import ‘imread’,請檢查scipy的版本是否超過了1.0,因為1.0以上的版本里,scipy不再使用imread。并且推薦更改pillow版本為5.2.0。而且scipy和pillow要在同一路徑下

pip uninstall scipy pip install scipy==1.0pip uninstall pillow pip install pillow==5.2.0

7、訓練

??在訓練之前,設置 正確的保存和加載模型的目錄,改變trainval_net和test_net.py中的參數save_dir和loader_dir以適應你的環境。
??使用vgg16在pascal_voc上訓練你的faster-rcnn模型,運行下面代碼:

!CUDA_VISIBLE_DEVICES=0 python trainval_net.py \--dataset pascal_voc --net vgg16 \--epochs 1 --bs 1 --nw 4 \--lr 1e-3 --lr_decay_step 5 \--cuda

??bs是batch size,默認為1
??dataset是要在什么數據集上訓練
??net是你要使用的預訓練模型,可以換為resnet101
??epoch是要訓練的輪數
??nw是number work
??lr是學習率
??由上, BATCH_SIZE 和 WORKER_NUMBER 可以根據你的GPU情況來設置.。比如在 12G的Titan Xp上,可以達到4。如果你有多個GPU,可以使用下面代碼使用全部的GPU來訓練

!python trainval_net.py --dataset pascal_voc --net vgg16 \--bs 24 --nw 8 \--lr $LEARNING_RATE --lr_decay_step $DECAY_STEP \--cuda --mGPUs

8、測試

??如果你想要估計vgg16的預訓練模型在pascal_voc測試集上的表現,運行以下代碼即可

!python test_net.py --dataset pascal_voc --net vgg16 \--checksession $SESSION --checkepoch $EPOCH --checkpoint $CHECKPOINT \--cuda

??要指定具體的checksession、checkepoch、checkpoint數值。如果你不知該如何設置,可以根據你訓練出來的模型名字來設置。
例如:

!python test_net.py --dataset pascal_voc --net vgg16 \--checksession 1 --checkepoch 1 --checkpoint 10021 \--cuda

9、運行demo

??如果你想要運行預訓練模型去檢測你自己的圖片,要先下載預訓練模型或者訓練你自己模型,然后把圖片放到工作目錄下的images文件夾里,再運行

!python demo.py --net vgg16 \--checksession $SESSION --checkepoch $EPOCH \--checkpoint $CHECKPOINT \--cuda --load_dir path/to/model/directoy

??除了指定那三個數值外,還要寫清楚存放vgg16/pascal_voc/模型.pth的文件夾。例如我的是

那么,命令就是

!python demo.py --net vgg16 \--checksession 1 --checkepoch 1 \--checkpoint 10021 \--cuda --load_dir models

二、遠程服務器運行Faster-RCNN

1、服務器環境介紹

??torch版本:1.0.1
??Python版本:3.6
??torchvision版本:0.2.1
??需要OpenCV3、matplotlib、numpy等
??Ubuntu16.04(這是我自己的系統版本)
??CUDA版本:9.0
??GPU型號:GTX1080
查看上述信息的命令參見https://blog.csdn.net/ThunderF/article/details/100727446

2、編譯

??克隆倉庫、創建數據文件夾、下載數據、下載預訓練模型這幾步可以參考上面的部分,編譯步驟也與上面相似。
??使用pip命令安裝所有的python依賴包

pip install -r requirements.txt

??使用下面的命令編譯CUDA依賴環境

cd lib !python setup.py build develop cd ..

Tips:
1、要注意如果出現can't import 'imread',這個問題的處理與上面相同。
2、報can not import _mask等類似的錯誤,大概是coco編譯環境錯誤,網上的方法我也試了,并沒有起作用。后來我編譯了兩次setup,問題解決了。

如果你已經執行了上面 python setup.py build develop,那么將lib下生成build文件夾和faster-rcnn.egg-info刪掉,再執行下面的操作
一、將本文上傳的setup.py文件放入pycocotools文件夾下

再執行下面命令

# 進入pycocotools文件下 python setup.py build develop

二、再退回到lib文件夾下再執行一次上面的命令即可

3、其余

??訓練、測試的命令操作和上面的基本一致。若運行時出現faster rcnn:assert (boxes[:, 2] >= boxes[:, 0]).all()的錯誤,可以參考https://blog.csdn.net/10km/article/details/64641322。

三、使用自己的數據集訓練

1、準備數據

??我們仍然采用VOC2007外表,把我們自己的數據集“塞進去”

---VOC2007------Annotations------ImagesSet---------Main------JPEGImages

??真正“起作用”的訓練集其實是這四個文件夾,位置是

faster-rcnn.pytorch/data/VOCdevkit2007/VOC2007/
  • Annotations為標注文件夾,存放的是標注文件,后綴名是xml,所以我們也要把該文件夾下的xml文件替換為自己的。
  • ImagesSet文件夾下的Main里,保存了需要訓練圖片的名稱,以txt文本存儲。
  • JPEGImage文件夾保存了訓練圖片。

??首先把我們的訓練圖片放進進JPEGImage文件夾里。該文件夾下原來的圖片我們需要備份,并從JPEGImage里移除。然后將Annotations下的xml文件替換為自己的,原來的xml文件備份后從該文件夾下移除。

2、制作訓練集trainval.txt

??接著我們自己制作trainval.txt文件,即將trainval.txt文件里的圖片名稱替換為自己的圖片名稱,具體請看圖:

3、修改訓練類別信息

??制作完成后用其替換掉ImagesSet\Main\下的trainval.txt。然后修改lib\datasets\pascal_voc.py中的類別信息,即把原來的類別換成你要訓練的類別。如:

4、訓練

??訓練命令與前面一致。

不對的地方還請各位大佬指正!留言和點贊Thanks?(・ω・)ノ

總結

以上是生活随笔為你收集整理的Faster-RCNN.Pytorch的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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