我已經嘗試過在tensorflow中使用SSD和YOLO實現。現在我想重新訓練我自己的數據集中的任何一個,說交通信號。除了pascal voc之外,我如何重新訓練數據?任何人都可以幫忙嗎?我正在使用tensorflow實現從https://github.com/balancap/SSD-Tensorflow如何重新調整我們自己的數據集的SSD對象檢測模型?
2
A
回答
0
您從完全連接的層從訓練的模型中刪除並添加您自己的完全連接圖層,將學會分類。
基本上,你有這樣的事情:
Image -> Conv1 -> Pool1 -> Conv2 -> Pool2 -> ... -> ConvN -> FC1 -> FC2 -> Softmax
的第一部分,轉化率和池層提取圖像特徵。分類部分發生在最後的FC -> FC -> Softmax
。爲了根據這個訓練好的模型訓練你自己的分類器,你將你自己完全連接的圖層連接到最後一個卷積圖層,將卷積圖層設置爲不可訓練,然後在你的數據集上訓練網絡。
說,要加3完全連接層和輸出層,就會變得像這樣:
Image -> Conv1 -> Pool1 -> ... -> ConvN - FC1 -> FC2 -> Softmax
\
MyFC1 -> MyFC2 -> MyFC3 -> MySoftmax
你的分類輸出將MySoftmax
將包含您的類的數量。
+0
你在說什麼是關於圖像分類器的轉移學習......我問的是物體檢測器... –
2
不特定的實現中,SSD,
- 由於所有層都是卷積,則需要更改的在預測層應用的過濾器的數量,因爲(根據紙在第4頁)的輸出作爲要預測的類別數量的函數給出:即,對於網絡中的任何預測層,對於特徵映射,我們預計
(c + 4)kmn
輸出/預測用於分類和本地化;c
是您嘗試預測的類的數量,k
是該特徵地圖中使用的錨/默認框的數量,m
和n
是特徵地圖的2維。 - 您可能希望改變錨/默認箱秤,每在報紙
具體到SSD-Tensorflow給出的公式,
- 你需要確保輸入格式匹配界面由
tf.contrib.slim
提供。目前SSD-Tensorflow僅支持Pascal VOC格式。我一直無法適應它接受其他數據集。對於示例KITTI界面,您可以看到https://github.com/balancap/SDC-Vehicle-Detection/。 SDC-Vehicle-Detection repo與SSD-Tensorflow的作者相同,儘管部分代碼庫已過時。
相關問題
- 1. Nvidia數字對象檢測自己的數據集
- 2. 重新培訓對象檢測模型與自己的圖像(tensorflow)
- 3. 如何模擬MongoDB對象來測試我的數據模型?
- 4. 我們如何在java中創建自己的數據類型?
- 5. tensorflow對象檢測與我自己的數據,你能幫我嗎?
- 6. 如何在caffe中訓練/測試我自己的數據集?
- 7. 如何在我自己的數據集圖像上測試mnist
- 8. 如何用自己的數據集重新創建.pb文件
- 9. 我將如何檢查對新數據的訓練模型預測
- 10. Django使用對象自己的數據進行多重更新?
- 11. 如何創建caffe中的對象檢測數據集?
- 12. 如何檢測除了coco數據集之外的對象?
- 13. SSD對象檢測如何計算它的班級分數和bbx位置?
- 14. WPF - 如何重新使用單數對象的數據模板進行收集?
- 15. 對自己的模糊函數調用
- 16. 如何不重複自己與Django中的類似模型對象
- 17. 測試我們自己的SCORM
- 18. SegNet - 訓練我自己的數據集
- 19. 如何編寫我自己的Django模型更新信號?
- 20. JList與自己的數據模型
- 21. 將您自己的QT C++數據模型與QML集成
- 22. TensorFlow:收集我自己的訓練數據集&使用該訓練數據集來查找對象的位置
- 23. 創建自己的對象模型(如Excel VBA的)
- 24. 如何檢測Django模型的對象何時添加/刪除?
- 25. 如何準備我自己的數據集到NLTK ConditionalFreqDist函數?
- 26. 如何對自己調用的函數進行單元測試
- 27. 按鈕調整他們自己?
- 28. 我們如何擴展CSLA.NET如果我們想要使用c#我們自己的業務對象
- 29. mysql如何更新自己的數據?
- 30. 將模型作爲自己的集合
剛剛編輯問題 –