Faster-RCNN-TF測試及問題

前面僅說了如何訓練自己的數據,其實運行Faster-RCNN-TF訓練後,也會經過驗證以及測試,最後產生一個結果,具體結果就是我們常說的AP值,當然對於多分類問題程序會求出mAP值。這裏主要是記錄一下在訓練後會出現的問題,然後能讓我們進行接下來的測試集測試以及demo的測試,同時通過測試,可以幫助我們更好的優化我們的模型,讓模型達到更好的效果。

一、測試

測試前準備

對於測試,我們在訓練完成後,Faster-RCNN-TF會將訓練好的模型保存在output文件夾下,具體如下,這裏是自己訓練的一個模型 ,前面迭代次數保存的模型,自己刪掉了,所以,就只看一下這個吧。

對於需要調整參數進行優化的我們來講,我們最好對於不同迭代次數產生的模型都進行測試,能夠讓我們很好的找到一個合適的迭代次數。

訓練完成後,會產生許多數據的計算值,並保存了下來,但是在單獨測試(單獨)時,我們就要將這些文件刪除了,以免會產生錯誤,如下圖

另外,在測試前,一定要進入自己數據集中的ImageSet/Main文件夾下,重新看一下自己的訓練、驗證、測試集編號和數量,確認沒有問題。

測試

我們可以根據tool文件夾裏的test_net.py文件能夠得到我們的訓練語句,如下圖

這裏,根據自己的情況進行修改,其中default中的值就是默認值,如果你在測試時,在終端輸入時對這部分不賦值,那麼就會按照default中默認值進行賦值。如果你想壓縮在終端時的賦值語句,就完全可以把這部分的default值全部按照自己要輸入的值修改好。
這裏是自己的一個測試語句

這裏,採用gpu,weights就是我們訓練好的模型位置。cfg就選擇你測試的方式,這裏使用的就是端到端的方式,即由輸入直接得到結果。networks就是你使用的網絡結構,當然,如果你有自己的網絡結構,可以使用自己的,只是自己需要重新修改定義。

測試的結果,自然是計算AP值,針對多分類任務,會求出mAP值,我們也一直使用它來衡量模型的效果。

有時,自己會使用alt_opt的方法,也就是交替優化,這種方法,可以先找出目標位置和大小,再經過第二部分網絡,判斷目標存在以及分類。這樣增加訓練的時長,但有助於我們修改以及理解算法。

二、問題

這部分產生的問題,主要還是沒有全部將代碼修改好,如果我們想通過訓練然後直接得到目標迭代次數的模型結果,我們就要將測試部分的代碼也修改好。
如在lib/networks/VGGnet_test.py,需要修改類別

另外在lib/fast_rcnn/config.py中修改超參數,這個根據自己目標情況修改。

最重要的問題,自己在訓練完成到測試時會產生一個問題,就是無法找到comp文件,文件名太長,就不寫了,直接截圖了

就是放在這個位置的txt文件,當然,前面的results/VOC2007/Main文件夾也不存在,最終在同學的指導幫助下,就是自己直接在訓練前或者測試前,建立results/VOC2007/Main文件夾,並建立以comp這個名字命名的txt文件,這樣就解決了出錯的問題。
但是,爲什麼這樣修改,這個問題一直困擾着自己,所以如果最近有同學也遇到相同的問題,可以一起交流一下!!

這些只是自己的總結,不足的地方希望閱讀者指正見諒!

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