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