如何提高目標檢測模型的置信度,提高mAP

2021-10-23 20:09:26 字數 808 閱讀 9637

首先引用

這種方法屬於見效快,但是治標不治本。在驗證階段直接調小score_threshold,可以將map快速提公升,但是實際上你的模型**的結果,置信度還是很低。

將原本的batch_size調小,同時增大learning_rate,batch_size可以嘗試慢慢調小,因為batch_size小,訓練速度會變慢,batch_size大訓練速度會相對快一些。

原理是假設你正在看一本書,書的總頁數是固定的(相當於資料集的大小)batch_size越大,相當於你每次同時看batch_size頁的書,雖然learning_rate較低,即每次看的較慢,但是最終花費的時間短,理解的東西會比較片面,導致閱讀質量下降,即**結果置信度很低,即評估只能通過設定很小的score_threshold,來提公升map。

所以解決方法是,調小的batch_size,同時增大learning_rate。即每次看較少數量的內容,但是提高閱讀速度,總花費時間較長,但理解的東西比較深刻,即最終模型訓練的結果也會較好,評估階段置信度較高。

我遇到的問題是,前期precision很低,recall相對較高,檢視結果是**結果太多了,我的解決方法是提高nms階段的score_threshold,原本0.01我調整到0.1又調到0.05,最終發現0.05效果較好。

加更,nms階段的score_threshold可以繼續增加,也可以提公升一部分的map

更換優化器,即optimizer_name,可嘗試替換其他優化器,檢視效果

上述是我將kmeans應用到yolov3中,更換自己的anchors時,map一直很低,自己多次調整之後,總結的經驗。加油自己!離成功又近了一步~

如何確定容器內含有石墨的置信度

method 基於模糊置信庫的啟發式專家系統 eg.假設 原始值假定值 1 h,1 or h 1 0.5 m,1 or m 0.5 0 l,1 or l 0 輸入轉化 0.98 0.60.2 子規則庫1的推理 其他子規則庫的推理如上 通過cri rimer rimer brb的比較發現,rimer ...

如何理解目標檢測中的SSD

好記性不如爛筆頭。下面的第乙個4表示的是4個default box 與faster r cnn 和yolo不同,這裡是中心座標加上寬高 其中 classifer是通過3 3 4 classes 4 的卷積實現的,得到結果即是檢測的結果,然後將不同feature map的檢測結果放在一起。先過濾掉co...

如何提高訓練模型的準確率

1.dropout 使用dropout收斂變慢,正確率也下降,可能是我使用方法有問題。2.更換優化器,我一般選擇adam優化器,可以提高準確率,收斂速度。3.學習率 改為動態學習率下降有利於快速收斂 4.shuffle 可以明顯提高準確率。5.資料增廣 需要根據實際場景選擇合適的資料增廣方法,否則可...