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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Faster-RCNN训练时遇到的问题

發布時間:2024/9/21 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Faster-RCNN训练时遇到的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第一次寫博客,沒想太多。只是想記錄一下訓練Faster-rcnn是遇見的一些問題。因為在我訓練出bug的時候有點絕望,懷疑人生。不過在看到開始訓練的一瞬間又覺得活著挺好的。


1.環境搭建

? ?rbg大神很周到,需要的東西全都有(從硬件的要求,到需要的各種model)

? ?Faster-rcnn:https://github.com/rbgirshick/py-faster-rcnn(在此感謝rbg大神,獻出我的膝蓋)


2.制作數據

? ?推薦:http://blog.leanote.com/post/wjgaas@126.com/Faster-RCNN-%E8%AE%AD%E7%BB%83

? ?按照這個大神的的方法,很容易做出自己的 數據集。有一些具體注意點。

? ?!比如:圖片命名不要用中文;標簽不要有大寫字母;圖片命名要6位數字;圖片格式.jpg。

? ?不知道這些有什么后果,我還是聽話的改了,畢竟大家踩過的坑繞道比較節省時間。

? ?但是他沒給.xml文件批量更改的方法。下面的大神給了個源碼,無腦運行就好了。笑


? ?推薦:https://saicoco.github.io/object-detection-4/

? ?對于他推薦的軟件LabelImg,下面是我自己的小經驗。

2.1.?LabelImg環境搭建

? ?推薦在ubuntu系統下搭建環境。(開始的時候在windows上搭了2天的環境,最后還是放棄了。而在ubuntu系統下根據下面的教程。只用了2小時,基本上是在下載。在家里實驗了mac,15年那款pro,2天放棄。。。。)

? ?教程:http://www.linuxdiyf.com/Linux/14134.html(在此感謝大神分享經驗,省了不少時間)

? ?(這個教程好像,鏈接打不開??梢怨雀枰幌?#xff1a;“ubuntu下qt4+pyqt4+eric4快速安裝,qt4pyqt4_Python教程| 幫客之家”)

? ?

? 我用的是教程中的 ? ?5.一次性安裝 ? 。安裝完成后,運行Faster-rcnn官網上的demo,會缺少個model,在網上直接把那個錯誤打出來搜一下有很多教程。(一句命令就可以能好)

? 注意:作為個新手,不推薦在其他系統下搭建環境。搭環境真的很煩。還有個坑,一開始裝的ubuntu 14,東西裝的很順利。但是為了下teamview12,好像是升級了下以后,待機后發現連不上網了。查了下原因,好像說是因為dell電腦不支持ubuntu 16。之后就再也連不上網了。(悲傷的表情)


3.修改代碼

? ?推薦:http://blog.csdn.NET/sinat_30071459/article/details/51332084

? ?咸魚大神的博客簡單易懂。并且對于一些訓練時出現的問題給出了解答。(5星好評)

? ?到這里,如過沒出錯,已經能訓練了。


4.自己碰到的問題(5個)

? 一.

? ?完成第3步以后,我在跑

?./experiments/scripts/faster_rcnn_alt_opt.sh?0?ZF?pascal_voc?

?這句話的時候,報了個很稀奇的錯,而且網上沒找到答案。

?AssertionError: Path does not exist: /home/dl-box/wei/py-faster-rcnn/data/VOCdevkit2007/VOC2007/JPEGImages/000001.jpg

? 找不到這個路徑,但是我的文件確實放對了地方,而且當我用cd命令的時候可以進入這個文件夾,打開對應的.jpg文件。

? 可能有兩個原因:

? 1.沒有權限對文件操作

? ?解決:chmod -R 777 /home/dl-box/wei/py-faster-rcnn/data/VOCdevkit2007/VOC2007/JPEGImages/

? 2.可能是編碼問題,要改成utf-8的格式

? ?解決:在這個文件中py-faster-rcnn/lib/datasets/pascal_voc.py的_load_image_set_index下

? ?將?image_index = [x.strip() for x in f.readlines()] 改成?image_index = [x.decode('utf-8-sig').strip() for x in f.readlines()] 就好了。

? ?如果有編碼問題的話可能你還要修改另一個地方,要不test的時候會報錯。

? ?解決:py-faster-rcnn/lib/datasets/voc_eval.py這個文件

? ?將imagenames = [x.strip() for x in lines]改成imagenames = [x.decode('utf-8-sig').strip() for x in lines]

? ?

? 二.

? ?由于沒有計劃多少個標簽(加上背景,我標了98個,捂臉),這個py-faster-rcnn/lib/datasets/pascal_voc.py添加標簽的時候可能有漏掉的。

? ?就會報

? ?KeyError:’漏掉的標簽‘

? ?這個錯?

? ?解決:在這個py-faster-rcnn/lib/datasets/pascal_voc.py下添加漏掉的標簽就好了。

? 三.

? ?運行時又報了個缺少model : ZF.v2.caffemodel?的錯。(我用的是ZF訓練,所以缺少這個caffemodel ,其他訓練的話應該是其他的)

? ?解決:https://people.eecs.berkeley.edu/~rbg/faster-rcnn-data/?(rbg大神的官網什么都有)

? ?下這個imagenet_models.tgz,然后解壓找到ZF.v2.caffemodel?放到py-faster-rcnn\data\faster_rcnn_models下就好了。*如果data文件夾下沒有faster_rcnn_models文件夾,自己建一個就好了。(自己動手,豐衣足食)

? 四.

? ?訓練的最后完事后,遇到個錯誤

? ?Cannot copy param 0 weights from layer 'cls_score'; shape mismatch.? Source param shape is21 4096 (86016); target param shape is2 4096 (8192). To learn this layer's parameters from scratch rather than copying from a saved net, rename the layer.

? 如果出這個錯,說明ZF_faster_rcnn_final.caffemodel這個東西和你現在訓練的模型的類別數不匹配。

? 因為我在訓練自己的數據前用過rbg大神的來跑demo,所以這個是他的.caffemodel,就是標注的紅色部分21各類。

? 后面綠色的是你自己的類的數目。

? *咸魚大神的博客在 ?9.測試 ?這里原話是

? ?將訓練得到的py-faster-rcnn\output\faster_rcnn_alt_opt\***_trainval中ZF的caffemodel拷貝至py-faster-rcnn\data\faster_rcnn_models(如果沒有這個文件夾,就新建一個)

? *跑demo的話會有這個文件夾和這個.caffemodel。新手的一定不要以為是faster-rcnn自動生成了ZF_faster_rcnn_final.caffemodel,名字是一樣的。我以為是自動生成的就出現了上面的這個錯。

?五.

? 都能好了,demo能跑完,但是不出結果。沒有跑rbg大神demo時候的圖片框出現。(有點急,后天就要交稿了,自己的demo還沒跑出來)

? 浪費了一天,后來突發奇想解決了。

? 解決:py/data/faster_rcnn_models文件夾下,還有個VGG16_faster_rcnn_final.caffemodel東西導致機器學不出來。把它移走就可以了。

? (我也忘了是什么時候放到這個文件夾下的了。可能是之前跑rbg大神的demo的時候,也可能是之前搭環境的時候。)


*越南小哥給我的一個建議:(節省時間的小技巧)

? 為了省時間,先運行幾條數據試試水。

? 后來發現,時間跟迭代次數有關,跟數據多少關系好像不大。所以就修改了迭代次數。

??迭代次數可在py-faster-rcnn\tools的train_faster_rcnn_alt_opt.py中修改:

? ??

  • max_iters?=?[80000,?40000,?80000,?40000]??

  • ? ? 分別為4個階段(rpn第1階段,fast rcnn第1階段,rpn第2階段,fast rcnn第2階段)的迭代次數??筛某赡阆M牡螖?。

    如果改了這些數值,最好把py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_alt_opt里對應的solver文件(有4個)也修改,stepsize小于上面修改的數值。


    ? 我改的比較極端[40,20,40,20],一路跑下來到最后的時候會有另一個錯。

    File "/home/dl-box/wei/py-faster-rcnn/tools/../lib/datasets/voc_eval.py", line 149, in voc_eval BB = BB[sorted_ind, :] IndexError: too many indices for array 這個錯是說沒有學習到東西,我用了[4000,2000,4000,2000]試了一下也不行。不過能看到這個錯誤,如果你的數據集做的沒有問題的話,用[80000,40000,80000,40000](親測大概16小時,1341張圖)運行你自己的數據集就沒問題了。為了省時間我用的是[40000,20000,40000,2000](大概8小時,50張圖)。這個時間好像與圖片大小和圖片數量關系不大。感覺只與迭代次數有關。


    ? ?到這是我經歷的各種坑。一個小白的心路歷程,希望大家不要再踩了。(捂臉)

    ? *還有個我自己的小技巧:沒有什么事是上心了還做好的。這兩天,睡覺5點都會驚醒,然后穿上衣服直奔研究室。


    這是我做的數據(我只用了50張訓練2個類,samurai和背景。最后的結果不是很理想,框子有點大??赡苁菙祿粔虻脑?#xff09;


    這是我的結果

    總結

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

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