ATSS的核心思想:不要用固定的 IoU 閾值,而是根據(jù)每個(gè)物體的具體情況,動(dòng)態(tài)地選擇正負(fù)樣本。這樣,模型能更好地學(xué)習(xí)不同物體和場景的特征。
ATSS 的操作可以分成以下幾步,用一個(gè)簡單的例子來幫助理解:
1.找到每個(gè)真實(shí)物體框的“候選錨框”:
- 對(duì)于圖片里的每個(gè)真實(shí)物體框(比如一只貓的邊界框),ATSS 會(huì)找到離這個(gè)物體中心點(diǎn)最近的 K 個(gè)錨框(K 通常是 9 個(gè))。
- 這些錨框是“離物體最近”的,所以最有可能是正樣本。
2.計(jì)算這些錨框和真實(shí)物體框的重疊度(IoU):
- 對(duì)這 K 個(gè)錨框,計(jì)算它們和真實(shí)物體框的 IoU,得到 K 個(gè) IoU 值(比如 0.6、0.7、0.4 等)。
3.統(tǒng)計(jì)這些 IoU 的均值和標(biāo)準(zhǔn)差:
- 計(jì)算這 K 個(gè) IoU 的平均值(均值)和標(biāo)準(zhǔn)差(standard deviation,表示數(shù)據(jù)的分散程度)。
4.動(dòng)態(tài)設(shè)置正樣本的閾值:
- 對(duì)于每個(gè)真實(shí)物體框,ATSS 會(huì)根據(jù)這 K 個(gè) IoU 的均值和標(biāo)準(zhǔn)差,計(jì)算一個(gè)動(dòng)態(tài)的閾值:
- 閾值 = 均值 + 標(biāo)準(zhǔn)差。
- 這個(gè)閾值是因物體而異的,不同物體框有不同的閾值。
5.選擇正樣本:
- 如果一個(gè)錨框滿足以下兩個(gè)條件,就被選為正樣本:
- 這個(gè)錨框和真實(shí)物體框的 IoU 大于剛才計(jì)算的動(dòng)態(tài)閾值。
- 這個(gè)錨框的中心點(diǎn)在真實(shí)物體框內(nèi)。
- 這樣,ATSS 就能根據(jù)每個(gè)物體的具體情況,靈活地選擇正樣本。
6.選擇負(fù)樣本:
- 對(duì)于那些沒有被選為正樣本的錨框,如果它們的 IoU 小于某個(gè)固定閾值(比如 0.5),就被認(rèn)為是負(fù)樣本。