在目標檢測的實際應用場景中,我們經(jīng)常會遇到類別增多的情況.
- 這時候我們是重新把源數(shù)據(jù)集中新類別進行標注重新訓練模型?
- 還是只用新圖片標注新類別,然后訓練一個新類別的目標檢測模型,在工作時候運行兩個目標檢測模型?
來自于商湯的一篇文章可能用于解決這個問題:
Cross-dataset Training for Class Increasing Object Detection
文中提出了 跨數(shù)據(jù)集的訓練方法,用于合并多個數(shù)據(jù)集之間的訓練;
如文章中采用coco 2017目標檢測數(shù)據(jù)集、WIDER FACE人臉數(shù)據(jù)集進行聯(lián)合訓練,一個檢測模型的情況同時能對coco的80類和人臉進行檢測,然而精度只丟失1%左右.
整體框架如圖所示:

跨數(shù)據(jù)集訓練pipeline
- label mapping 合并重復標簽
- 通過串聯(lián)標簽,形成混合數(shù)據(jù)集(但是不需要重新標注)
- 建立 avoidance relationship across(記錄某個標簽來源于哪個數(shù)據(jù)集)
- 根據(jù)avoidance relationship across計算loss,作者稱之為dataset-aware classification loss
label-mapping
如圖所示,

假如我們有兩個數(shù)據(jù)集,其標簽分別為 、 ,其中標簽具有相同含義,那么在新標簽中,將其映射為同一個標簽
dataset-aware classification loss
文中采用focal loss 作為classification loss.然而,針對不同數(shù)據(jù)集的的正負樣本可能會發(fā)生沖突,如wide face 數(shù)據(jù)集中的人臉樣本可能在coco數(shù)據(jù)集中可能被誤判為負樣本,這樣會降低檢測器的性能.
因此作者改進了原始的focal loss,將其適用于多數(shù)據(jù)集聯(lián)合訓練上.
原始的focal loss 示意為:
其中為ground truth class label.
為估計概率.
而作者改寫的dataset-aware classification loss很簡單,則修改了!=1時的定義,
!=1在單數(shù)據(jù)集訓練中代表了其為負樣本,但是在多數(shù)據(jù)集聯(lián)合訓練中,它有可能代表了其是其他數(shù)據(jù)集中正樣本,所以其應該為1;
所以修改后的 dataset-aware focal loss為:
總結(jié)
作者通過提出兩點來解決多數(shù)據(jù)集聯(lián)合訓練問題:
- label mapping
- dataset-aware focal loss
其idea主要是將focal loss 用來解決正負樣本不均衡問題應用到不同數(shù)據(jù)集中關(guān)于不用label的樣本問題上.
reference
- Yao Y, Wang Y, Guo Y, et al. Cross-dataset Training for Class Increasing Object Detection[J]. arXiv preprint arXiv:2001.04621, 2020.