深度學習目標檢測算法SSD300 訓練自己的數據與測試(基於Keras WIN10 Python3.6)數據集製作、代碼詳細介紹 (源代碼、相關軟件及權值下載)

基於Keras搭建的SSD300目標檢測神經網絡

先看看效果(圖片來源:視覺中國 www.vcg.com,這裏只做演示使用,我也不獲利,請視覺中國不要告我,實在不讓我用就聯繫我刪了吧,感恩
在這裏插入圖片描述

1. 運行需要的模塊

代碼運行需要部分必須的Python模塊包括:(部分依賴模塊未列出)

  • Keras >= 2.0.0
  • TensorFlow >= 1.7.0
  • Tensorboard >= 1.7.0
  • numpy >= 1.9.0
  • opencv >= 3.3.1

2. 測試代碼運行情況

下載好的代碼及權值文件(源代碼及權值文件免費下載見文章尾
最終你的項目文件夾應該是這樣的
在這裏插入圖片描述

將下載好的權值文件放在 SSD300_Train/weights 文件夾中
運行 SSD_test.py 即可得到上圖的效果 ~ ~
如果沒報錯就說明的Python環境配置正確了,恭喜進入下一階段

3. SSD_test.py 講解

項目自帶的權值文件是以VOC數據集訓練的,能夠檢測20種目標。詳細內部實現不作詳細講解,主要介紹下面的主要部分。

在這裏插入圖片描述

4. 訓練自己的數據集

4.1 創建自己的數據集

代碼的數據集使用的VOC的數據格式(不知道的請自行百度一下,這裏不細說),使用ImgLabel軟件標註,軟件下載可以去GitHub搜索imglabel源代碼copy下來,使用方法請自行百度。文章尾部也給出了已經編譯好了的exe版本下載地址(免費),嫌麻煩的也可以直接下載我上傳到CSDN上的版本

重點!!!!!!

  • 在進行標計前建議將拍攝的原始圖像進行一定的縮放,保證圖片的大小在200k左右,要不訓練超級慢。
  • 標記前請一定先確定好自己數據集存放的位置,一旦確定就不要變了,要不會很麻煩。
    具體原因:代碼中圖片的具體讀取是通過 讀取標記文件(.xml)中的圖片路徑來讀取圖片的(如下圖中紅線的部分),如果數據集位置變了但文件中有沒改這裏,就會讀取不到圖片。
    使用我上傳到CSDN上的imglabel軟件標註的同學可能會注意到路徑中缺少文件後綴,請不要擔心,繼續往下看
    在這裏插入圖片描述
  • 標註時同一類目標的名稱一定要完全一樣(包括大小寫),要不就不是同一類了不是?
  • 標註完畢後在數據集文件夾中創建一個name.txt,將數據集中的類別名稱填入文件中,每個類名一行(例如下圖),一定要和數據集中的類名完全一樣。

5. 開始訓練

訓練包括兩部,第一步生成標記數據文件(文件夾中的my_new_data.pkl);第二步配置訓練參數開始訓練。

5.1 生成標記數據文件

注意:每次更改訓練集內的圖片都應該重新生成標記數據文件!!!!
生成標記數據文件主要用到 TransData.py
使用時主要修改main函數
在這裏插入圖片描述
4.1中提到的.xml文件中的圖片路徑中缺少文件後綴同學請執行下一步,如果沒有出現文件後綴丟失,請忽略。
在這裏插入圖片描述
沒有後綴的在這裏添加上後綴(包括後綴中的點), 如果數據集中的圖片後綴不統一的話還是寫個腳本將.xml文件中的後綴添加上,有需要的同學請評論聯繫我。
生成成功後應該會有一個.pkl文件產生(或者更新覆蓋原來的)。

5.2 配置訓練參數開始訓練

主要修改TrainSSD.py文件
修改參數主要包括以下幾個:

  • 設置訓練集的比例
    此處設置訓練集的個數佔總的數據集的0.8,剩下的0.2爲測試集在這裏插入圖片描述

  • 設置訓練的batch_size
    此處設置batch_size爲每個batch 16張在這裏插入圖片描述

  • 設置凍結層
    這裏涉及到遷移學習的一點概念思想,感興趣的同學建議自己查查。這裏我們將產生特徵層的網絡部分凍結起來,只訓練類別預測和位置迴歸的部分,這樣即使訓練集很小也可以獲得不錯的訓練效果。當然如果你的訓練集比較大還是重頭訓練的好。
    在這裏插入圖片描述

  • 設置基礎學習率
    訓練時學習率採用指數下降方式,每訓練一個epoch,梯度都會改變,這裏設置的是基礎學習率
    在這裏插入圖片描述

  • 設置訓練回合數
    這裏設置訓練100回合在這裏插入圖片描述

5.3 開始訓練

按實際情況更改下列變量的值
在這裏插入圖片描述
修改完成後,開始訓練,每訓練一個回合後,權值文件會自動保存,同時代碼中設置了Tensorboard的回調函數,可以調用tensorboard可視化訓練信息。

調用tensorboard

打開cmd cd 到項目文件夾中 輸入 tensorboard --logdir logs
將返回的連接複製到瀏覽器中打開即可

下載源代碼

爲了保障所有人能免費下載到源代碼,同時推廣一下自己建立的公衆號(主要分享一些教程),請掃描下方二維碼關注公衆號回覆相應的關鍵字獲取下載鏈接

  • 源代碼及權值下載地址:回覆“SSD訓練”。

  • imglabel標註工具下載地址:回覆“標註工具

  • 有需要rely源碼的直接回復“rely下載”,就不一一發郵箱了。

在這裏插入圖片描述

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