FasterRCNN目標檢測實踐紀實


 

首先聲明參考博客:https://blog.csdn.net/beyond_xnsx/article/details/79771690?tdsourcetag=s_pcqq_aiomsg

實踐過程主線參考這篇博客,相應地方進行了變通。接下來記載我的實踐過程。

 

 

一、GPU版的TensorFlow的安裝

准備工作:

筆者電腦是Windows10企業版操作系統,在這之前已經通過Anaconda安裝了python3.5.2和CPU版本的TensorFlow1.12.0。Anaconda就跟普通的軟件一樣,下載完圖形化界面引導式安裝就可以,不會的百度一大堆,這里就不說這個了。     筆者也不確定CPU版TensorFlow和GPU版的TensorFlow可以並存否,不過據我資料搜索顯示可以並存,不過,筆者也是初學,為了安全起見,就決定先卸載掉CPU版的TensorFlow,在Anaconda Prompt中輸入pip uninstall TensorFlow,有時候可能顯示沒有找到或無法卸載之類的提示,為了保險,筆者進入Anaconda文件系統內部(筆者的路徑:D:\DevelopmentTools\Anaconda3\Lib\site-packages),手動將TensorFlow和TensorBoard兩個文件夾刪除掉了,也就是說這個完全可以手動刪除,但要把相關的刪除干凈為好,不一定非得要命令行卸載。    下面開始GPU版TensorFlow的安裝:

1、英偉達(NVIDIA)CUDA和CuDnn的安裝

英偉達顯卡更多是面向游戲用戶的,所以並未直接在驅動中內置關於深度學習的組件,所以需要將用於支持深度學習的組件添加進NVIDIA驅動或安裝包,這里有兩個東西:CUDA和CuDnn。

筆者電腦的GPU是NVIDIA GeForce GTX 1060 with Max-Q Design,所以首先查看下自己的GPU是否支持CUDA功能,如果支持,那么CUDA和CuDnn不同版本選擇和GPU型號沒有關系,主要看其和TensorFlow版本的兼容性,如果版本不兼容,會產生一系列問題,令人琢磨不透,這個還是要弄清楚才好。筆者最終選擇的是CUDA9.0和CdDnn9.0,對應選擇的TensorFlow版本是1.10.0。下一步來講TensorFlow安裝

CUDN網盤鏈接:鏈接:https://pan.baidu.com/s/1VAw1bMtSyUmJ4Uv7X44MsA      提取碼:mgam

CuDnn網盤鏈接:鏈接:https://pan.baidu.com/s/175b0OId84-xbzhq24eAv5w          提取碼:q7ni

CUDN的安裝用cuda_9.0.176_win10.exe就和普通軟件安裝一樣,目錄使用默認的,環境變量自動添加。然后將cuda9.0+cudnn-9.0-windows10-x64-v7.1.zip解壓到一個目錄等待使用即可,如下:

 

 

 
 然后到C盤的NVIDIA安裝文件夾下,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0,將解壓文件夾下的對應目錄下的文件拷貝進下面目錄下的同名對應文件夾下,如下:
cudnn64_7.dll 拷貝到:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin
cudnn 拷貝到:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include
cudnn 拷貝到:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64

 

 這里,就完成了GPU端的相關內容。    下面進入TensorFlow的安裝。

 

2、TensorFlow-gpu的安裝

進入Anaconda Prompt命令行下,使用pip install --ignore-installed --upgrade tensorflow-gpu==1.10.0來安裝,會自動下載安裝的。這里需要注意的是版本號是否兼容,這里使用的是TensorFlow-gpu-1.10.0和CUDA9.0,其它版本需要查證版本兼容問題,而且這里安裝會提示不兼容的錯誤的,還有之前若有CPU版TensorFlow可能會有不確定的問題,我是卸載刪除干凈之后才進行安裝的。   

 

 3、測試

在命令行中,進入python,並輸入以下代碼:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
輸出:
b’ Hello, TensorFlow!

出現如上界面信息,沒有明顯的異常錯誤信息,就表示TensorFlow-gpu安裝成功。  下面進入FasterRCNN相關內容。

 

 

二、下載並部署FasterRCNN的源碼

代碼GitHub鏈接:https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3.5

這里還有一點,需要安裝cython, python-opencv, easydict三個包,同理,在Anaconda Prompt命令行下,用pip來安裝,如果以有opencv,就不用安裝python-opencv了。

下載完,直接用PyCharm打開即可,

三、數據集

 可以收集自己的數據,進行標注,使用labelImg-master工具進行標注,按照VOC2007規范化數據圖片及標注結果的xml文件。我這里將組中集體合作標注的數據集修改了又修改,但是最終還是沒能正確使用起來,我修改的內容就是那些未被標注的圖片和標注不兼容的圖片,前者是直接將未被標注的圖片和相關文件刪除掉,后者是重新標注。 自己標注的數據集總是有問題,目前還沒有解決,之后會更新。

最終使用公有數據集進行訓練,如下:

下載數據集

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
將三個文件同時解壓到VOCdevkit2007目錄下(三個都解壓到一個文件夾下),並將VOCdevkit2007目錄存放於data目錄下
文件名和路徑結構一定要設置對,否則會報錯

然后就用此數據集替換項目代碼中的數據集,以本人的pycharm項目路徑為例,如:D:\IDE\PyCharm\Project\Faster-RCNN-TensorFlow-Python3.5-master\data\VOCdevkit2007\VOC2007

直接替換即可。

 

四、預訓練模型植入

簡單講,這里相當於一個遷移學習,因為自己從零開始訓練一個模型很費勁,關鍵是要想訓練出比較准確或者說很准確的模型,那要耗費很高的GPU資源和更多的時間,所以這里就是運用別人訓練了一部分的一個模型,叫做預訓練模型,選擇Vgg16預訓練模型,下載鏈接:http://download.tensorflow.org/models/vgg_16_2016_08_28.tar.gz

解壓並改名為vgg16.ckpt(原來是vgg_16.ckpt)存放在Faster-RCNN-TensorFlow-Python3.5-master\data\imagenet_weights\目錄下(注:這個imagenet_weights文件夾並不存在,自己新建一個即可),解壓后一定要改名為vgg16.ckpt 而不是vgg_16.ckpt否則會報錯:

 

五、開始訓練

這時,就可以運行train.py了,我大約訓練了七八個小時吧,我是凌晨12點睡覺前開始訓練,早上起來就訓練好了,

 

六、運行demo.py

然后運行demo.py,就可以對文件夾下的六張圖片進行標注並顯示了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM