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

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

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