交并比 (IoU), mAP (mean Average Precision), 非极大值抑制 (NMS, Soft NMS, Softer NMS, IoU-Net)
目錄
- 目標(biāo)檢測的評價指標(biāo)
- 交并比 (Intersection of Union, IoU)
- mAP (mean Average Precision)
- 其他指標(biāo)
- 非極大值抑制 (Non-Maximum Suppression, NMS)
- NMS 基本過程
- 抑制得分: Soft NMS
- 加權(quán)平均: Softer NMS
- Bounding Box Parameterization
- Bounding Box Regression with KL Loss
- Variance Voting
- 定位置信度: IoU-Net
- Precise RoI Pooling (PrRoI Pooling)
- Learning to predict IoU
- IoU-guided NMS
- Bounding box refinement as an optimization procedure
- 參考文獻
目標(biāo)檢測的評價指標(biāo)
交并比 (Intersection of Union, IoU)
def iou(boxA, boxB):# 計算重合部分的上、下、左、右 4 個邊的值,注意最大最小函數(shù)的使用left_max = max(boxA[0], boxB[0])top_max = max(boxA[1], boxB[1])right_min = min(boxA[2], boxB[2])bottom_min = min(boxA[3], boxB[3])# 計算重合部分的面積inter = max(0, (right_min-left_max))* max(0, (bottom_min-top_max) Sa = (boxA[2]-boxA[0])*(boxA[3]-boxA[1])Sb = (boxB[2]-boxB[0])*(boxB[3]-boxB[1])# 計算所有區(qū)域的面積并計算iou,如果是Python 2,則要增加浮點化操作union = Sa+Sb-interiou = inter/unionreturn ioumAP (mean Average Precision)
TP, FP, FN, TN
- 由于圖像中存在背景與物體兩種標(biāo)簽,預(yù)測框也分為正確與錯誤,因此在評測時會產(chǎn)生以下 4 種樣本:
- (1) 正確檢測框 TP (True Positive):預(yù)測框正確地與標(biāo)簽框匹配了,兩者間的 IoU 大于 0.5
- (2) 誤檢框 FP (False Positive):將背景預(yù)測成了物體,通常這種框與圖中所有標(biāo)簽的 IoU 都不會超過 0.5
- (3) 漏檢框 FN (False Negative):本來需要模型檢測出的物體,模型沒有檢測出
- (4) 正確背景 TN (True Negative):本身是背景,模型也沒有檢測出來,這種情況在物體檢測中通常不需要考慮
P-R 曲線
預(yù)測值 (Dets): 物體類別、邊框位置的 4 個預(yù)測值、該物體的得分
標(biāo)簽值 (GTs): 物體類別、邊框位置的 4 個真值
- 遍歷到每一個預(yù)測框時,都可以生成一個對應(yīng)的 PPP (Precision, 準(zhǔn)確率) 與 RRR (Recall, 召回率):
P=TPTP+FPP=\frac{TP}{TP+FP}P=TP+FPTP?R=TPTP+FN=TPlen(GTs)R=\frac{TP}{TP+FN}=\frac{TP}{len(GTs)}R=TP+FNTP?=len(GTs)TP?將所有的點繪制成曲線,即形成了 P-R 曲線 (每一個類別都可以繪制出一個單獨的 P-R 曲線):
mAP (mean Average Precision)
- 即使有了 P-R 曲線,評價模型仍然不直觀,如果直接取曲線上的點,在哪里選取都不合適,因為召回率高的時候準(zhǔn)確率會很低,準(zhǔn)確率高的時候往往召回率很低。這時,AP 就派上用場了:
AP=∫01PdRAP=\int_0^1PdRAP=∫01?PdR嚴(yán)格意義上講,還需要對曲線進行一定的修正,再進行 AP 計算。除了求面積的方式,還可以使用 11 個不同召回率對應(yīng)的準(zhǔn)確率求平均的方式求 AP - 每個類別的 AP 是相互獨立的,將每個類別的 AP 進行平均,即可得到 mAP。我們常使用 mAP 這一指標(biāo)來評價一個模型的好壞
其他指標(biāo)
- 速度需求:自動駕駛等場景下,通常需要對圖像處理達到非常低的時延才能保證足夠的安全,這時檢測器需要達到實時性;而在機械臂自動分揀等系統(tǒng)中,速度并不是第一考慮因素
- 召回率:在交通流量統(tǒng)計系統(tǒng)中,首先需要保障的指標(biāo)是車輛、行人等物體的召回率,這會直接影響流量統(tǒng)計,相比之下,檢測的邊框精準(zhǔn)度是次要的指標(biāo)
- 邊框精準(zhǔn)度:在智能測量、機械臂自動分揀等應(yīng)用中,檢測邊框的精準(zhǔn)度直接影響系統(tǒng)的成功率,因此需要選擇邊框精準(zhǔn)度更高的網(wǎng)絡(luò),這是首要因素
- …
非極大值抑制 (Non-Maximum Suppression, NMS)
NMS 基本過程
- 當(dāng)前的物體檢測算法為了保證召回率,對于同一個真實物體往往會有多于 1 個的候選框輸出。由于多余的候選框會影響檢測精度,因此需要利用 NMS 過濾掉重疊的候選框,得到最佳的預(yù)測輸出
在上圖中,候選框 C 的得分比 A 要低,在評測時,C 候選框會被當(dāng)做一個 False Positive 來看待,從而降低模型精度。實際上,由于候選框 A 的質(zhì)量要比 C 好,理想的輸出是 A 而不是 C,我們希望能夠抑制掉候選框 C
NMS 方法
- NMS 方法簡單有效,并且對檢測結(jié)果至關(guān)重要,在物體檢測算法中有著廣泛的應(yīng)用。基本的 NMS 方法利用得分高的邊框抑制得分低且重疊程度高的邊框,因此涉及以下兩個量化指標(biāo):
- 預(yù)測得分:NMS 假設(shè)一個邊框的預(yù)測得分越高,這個框就要被優(yōu)先考慮,其他與其重疊超過一定程度的邊框要被舍棄,非極大值即是指得分的非極大值
- IoU:IoU 用于評價兩個邊框的重合程度。如果兩個邊框的 IoU 超過一定閾值時,得分低的邊框會被舍棄。閾值通常會取 0.5 或者 0.7
NMS 方法的實現(xiàn)
def nms(bboxes, scores, thresh=0.5):"""Args:bboxes: 所有預(yù)測框的左上點坐標(biāo)、右下點坐標(biāo) (圖片的最左上點坐標(biāo)為 [0, 0])scores: 所有預(yù)測框的得分thresh: 設(shè)定的 IoU 閾值"""x1, y1 = bboxes[:,0], bboxes[:,1] # 所有預(yù)測框的左上角坐標(biāo)x2, y2 = bboxes[:,2], bboxes[:,3] # 所有預(yù)測框的右下角坐標(biāo)# 計算每個 box 的面積areas = (x2 - x1 + 1) * (y2 - y1 + 1)# 對得分進行降序排列,order 為降序排列的索引_, order = scores.sort(0, descending=True)# keep 保留了 NMS 留下的邊框 boxkeep = []while order.numel() > 0:if order.numel() == 1: # 保留框只剩一個 i = order.item()keep.append(i)breakelse:i = order[0].item() # 保留 scores 最大的那個框 box[i]keep.append(i)# 巧妙利用 tensor.clamp 函數(shù)求取每一個框與當(dāng)前框的最大值和最小值xx1 = x1[order[1:]].clamp(min=x1[i]) # 取 Anchor[i] 與其余 Anchors 的最大 x1, y1yy1 = y1[order[1:]].clamp(min=y1[i]) xx2 = x2[order[1:]].clamp(max=x2[i]) # 取 Anchor[i] 與其余 Anchors 的最小 x2, y2yy2 = y2[order[1:]].clamp(max=y2[i])# 求取每一個框與當(dāng)前框的重合部分面積inter = (xx2 - xx1 + 1).clamp(min=0) * (yy2 - yy1 + 1).clamp(min=0)# 計算每一個框與當(dāng)前框的 IoUiou = inter / (areas[i] + areas[order[1:]] - inter)# 保留 IoU 小于閾值的邊框索引 (nonzero 用于返回非零元素的索引)idx = (iou <= threshold).nonzero().squeeze()if idx.numel() == 0:break# 這里的 +1 是為了補充 idx 與 order 之間的索引差order = order[idx+1]# 返回保留下的所有邊框的索引值return torch.LongTensor(keep)NMS 的缺陷
- (1) 最大的問題就是將得分較低的邊框強制性地去掉,如果物體出現(xiàn)較為密集時,本身屬于兩個物體的邊框,其中得分較低的也有可能被抑制掉,從而降低了模型的召回率
- (2) 閾值難以確定。過高的閾值容易出現(xiàn)大量誤檢,而過低的閾值則容易降低模型的召回率,這個超參很難確定
- (3) 將得分作為衡量指標(biāo)。NMS 簡單地將得分作為一個邊框的置信度,但在一些情況下,得分高的邊框不一定位置更準(zhǔn),因此這個衡量指標(biāo)也有待考量
- (4) 速度:NMS 的實現(xiàn)存在較多的循環(huán)步驟,GPU 的并行化實現(xiàn)不是特別容易,尤其是預(yù)測框較多時,耗時較多
針對上述問題陸續(xù)產(chǎn)生了一系列改進的方法,如 Soft NMS、Softer NMS 及 IoU-Net 等
抑制得分: Soft NMS
- 如前所述,當(dāng)物體比較密集時,NMS 有降低召回率的風(fēng)險:
造成這種現(xiàn)象的原因在于 NMS 的計算公式:
其中,sis_isi? 代表了每個個邊框的得分,MMM 為當(dāng)前得分最高的框,bib_ibi? 為剩余框的某一個,NtN_tNt? 為設(shè)定的閾值,可以看到當(dāng) IoU 大于 NtN_tNt? 時,該邊框的得分直接置 0,相當(dāng)于被舍棄掉了,從而有可能造成邊框的漏檢 - 基于此原因,誕生了 Soft NMS 方法,它對于 IoU 大于閾值的邊框,沒有將其得分直接置 0,而是降低該邊框的得分:
但上式并不是一個連續(xù)的函數(shù),當(dāng)一個邊框與 MMM 的重疊 IoU 超過閾值 NtN_tNt? 時,其得分會發(fā)生跳變,這種跳變會對檢測結(jié)果產(chǎn)生較大的波動,因此還需要尋找一個更為穩(wěn)定、連續(xù)的得分重置函數(shù),最終 Soft NMS 給出了如下式所示的重置函數(shù)進行得分衰減:
Soft NMS 的計算復(fù)雜度與 NMS 相同,是一種更為通用的非極大值抑制方法,可以將 NMS 看做 Soft NMS 的二值化特例。當(dāng)然,Soft NMS 也是一種貪心算法,并不能保證找到最優(yōu)的得分重置映射。經(jīng)過多種實驗證明,Soft NMS 在不影響前向速度的前提下,能夠有效提升物體檢測的精度
Soft NMS 只是降低了一些檢測框的置信度,因此仍需要調(diào)節(jié)閾值超參
加權(quán)平均: Softer NMS
- paper: Bounding Box Regression with Uncertainty for Accurate Object Detection
Bounding Box Parameterization
位置置信度與分類置信度
- NMS 的本意是篩選出位置最精準(zhǔn)的邊框,但 NMS 與 Soft NMS 算法都使用了預(yù)測分類置信度作為衡量指標(biāo),即假定分類置信度越高的邊框,其位置也更為精準(zhǔn),而具有高分類置信度的邊框位置并不總是最精準(zhǔn)的,也就是說,位置置信度與分類置信度并不是強相關(guān)的關(guān)系,直接使用分類置信度作為 NMS 的衡量指標(biāo)并非是最佳選擇
- 為此,Softer NMS 額外讓網(wǎng)絡(luò)輸出邊框的位置置信度 (Localization Confidence)
分布假設(shè)與位置置信度
- 設(shè)預(yù)測框為 xex_exe? (xex_exe? 可表示 (x1,y1,x2,y2)(x_1,y_1,x_2,y_2)(x1?,y1?,x2?,y2?) 中的任何一個坐標(biāo)),GT 框為 xgx_gxg?
- 單變量高斯分布 PΘ(x)P_\Theta(x)PΘ?(x): Softer NMS 假設(shè)預(yù)測框 xxx 服從如下單變量高斯分布 (這是一個比較強的先驗條件,它假定了邊框的 4 個坐標(biāo)之間相互獨立,也沒有考慮高斯混合分布等更加復(fù)雜的分布情況):
其中 Θ\ThetaΘ 為網(wǎng)絡(luò)參數(shù),標(biāo)準(zhǔn)差 σ\sigmaσ 可用于衡量預(yù)測框的位置置信度,例如 σ→0\sigma\rightarrow0σ→0 表示網(wǎng)絡(luò)對預(yù)測框位置置信度很高。如下圖所示,Softer NMS 直接使用一個新的全連接層 + 絕對值層來輸出標(biāo)準(zhǔn)差 σ\sigmaσ (使用絕對值層而非 ReLU 是為了防止標(biāo)準(zhǔn)差為 0):
- Dirac delta 分布 PD(x)P_D(x)PD?(x): 真實物體邊框 xxx 服從 Dirac delta function:
其中,狄拉克分布為標(biāo)準(zhǔn)差為 0 的高斯分布的極限:
δ(x)={∞if?x=00if?x≠0\delta(x)=\left\{\begin{aligned} \infty & \quad\text { if } x=0 \\ 0 &\quad \text { if } x \neq 0 \end{aligned}\right.δ(x)={∞0??if?x=0?if?x?=0?
Bounding Box Regression with KL Loss
- 上面給出了預(yù)測框和真實物體邊框服從的分布,因此很自然地就可以想到讓這兩個分布盡量接近。為此,Softer NMS 將回歸損失定義為了預(yù)測框分布 PΘ(x)P_\Theta(x)PΘ?(x) 和真實物體邊框 PD(x)P_D(x)PD?(x) 的 KL 散度:
Lreg?=DKL(PD(x)∥PΘ(x))=∫PD(x)log?PD(x)dx?∫PD(x)log?PΘ(x)dx=?H(PD(x))?PD(xg)log?PΘ(xg)=?log?PΘ(xg)?H(PD(x))=(xg?xe)22σ2+log?(σ2)2+log?(2π)2?H(PD(x))\begin{aligned} L_{\text {reg }} &=D_{K L}\left(P_{D}(x) \| P_{\Theta}(x)\right) \\ &=\int P_{D}(x) \log P_{D}(x) \mathrmze8trgl8bvbq x-\int P_{D}(x) \log P_{\Theta}(x) \mathrmze8trgl8bvbq x \\ &=-H\left(P_{D}(x)\right)-P_D(x_g)\log P_\Theta(x_g)\\ &=-\log P_\Theta(x_g)-H\left(P_{D}(x)\right) \\ &=\frac{\left(x_{g}-x_{e}\right)^{2}}{2 \sigma^{2}}+\frac{\log \left(\sigma^{2}\right)}{2}+\frac{\log (2 \pi)}{2}-H\left(P_{D}(x)\right) \end{aligned} Lreg???=DKL?(PD?(x)∥PΘ?(x))=∫PD?(x)logPD?(x)dx?∫PD?(x)logPΘ?(x)dx=?H(PD?(x))?PD?(xg?)logPΘ?(xg?)=?logPΘ?(xg?)?H(PD?(x))=2σ2(xg??xe?)2?+2log(σ2)?+2log(2π)??H(PD?(x))?去掉最后兩項常數(shù)項可得:
Lreg∝(xg?xe)22σ2+12log?(σ2)L_{r e g} \propto \frac{\left(x_{g}-x_{e}\right)^{2}}{2 \sigma^{2}}+\frac{1}{2} \log \left(\sigma^{2}\right)Lreg?∝2σ2(xg??xe?)2?+21?log(σ2)(當(dāng) σ=1\sigma=1σ=1 時,KL 損失就退化為了標(biāo)準(zhǔn)的歐幾里得損失) - 將回歸損失對 xex_exe? 和 σ\sigmaσ 求導(dǎo)可得:
由于 σ\sigmaσ 在分母上,在訓(xùn)練初期很可能出現(xiàn)梯度爆炸的情況,為此,網(wǎng)絡(luò)不再直接輸出 σ\sigmaσ,而是改為輸出 α=log?(σ2)\alpha=\log(\sigma^2)α=log(σ2),此時回歸損失為:
與 Faster RCNN 類似,當(dāng) δ=∣xg?xe∣>1\delta=|x_g-x_e|>1δ=∣xg??xe?∣>1 時,Softer NMS 也采用了 smooth L1L_1L1? loss 來幫助模型收斂:
設(shè) δ=∣xg?xe∣\delta=|x_g-x_e|δ=∣xg??xe?∣,則 dLregdα=?12δ2e?α+12\frac{dL_{reg}}{d\alpha}=-\frac{1}{2}\delta^2e^{-\alpha}+\frac{1}{2}dαdLreg??=?21?δ2e?α+21?. 令 dLregdα=0\frac{dL_{reg}}{d\alpha}=0dαdLreg??=0 可得 α=log?δ2\alpha=\log\delta^2α=logδ2 時回歸損失有最小值,也就是說,當(dāng)預(yù)測框與 GT 框差別很大時,理想模型輸出的標(biāo)準(zhǔn)差 σ\sigmaσ 也應(yīng)該很大:
Variance Voting
- 如下圖所示,對于一個真實物體,可能所有的預(yù)測邊框都是不準(zhǔn)確的
為此,Softer NMS 利用位置置信度將多個框加權(quán)合成最后的框,從而使得高分類置信度的邊框位置變得更加準(zhǔn)確,有效提升了檢測性能
B\mathcal BB 為所有預(yù)測框的位置坐標(biāo),S\mathcal SS 為所有預(yù)測框的分類置信度,C\mathcal CC 為所有預(yù)測框的位置置信度,D\mathcal DD 為所有利用 var voting 更新完位置坐標(biāo)的預(yù)測框,σt\sigma_tσt? 為 var voting 的溫度系數(shù),Sf()\mathcal {Sf}()Sf() 為 Soft NMS 對應(yīng)的分類得分衰減函數(shù)
- Softer NMS 在 Soft NMS 的基礎(chǔ)上增加了綠色的 3 行代碼。在選出當(dāng)前具有最大分類得分的預(yù)測框 bbb 后,使用加權(quán)平均的方法,利用 bbb 周圍的預(yù)測框去提升 bbb 的位置精度:
其中,pi/σx,i2p_i/\sigma_{x,i}^2pi?/σx,i2? 為預(yù)測框 bbb 附近邊框 bib_ibi? 的權(quán)重,bib_ibi? 與 bbb 的 IoU 越大、位置置信度越高,則它的權(quán)重就越大;xxx 為加權(quán)平均后預(yù)測框 bbb 的新坐標(biāo) (注意,在位置修正的過程中,只用到了位置置信度,沒有使用分類置信度) - 至此,通過這種加權(quán)平均的方法,Softer NMS 成功避免了下面兩種檢測錯誤:
定位置信度: IoU-Net
- paper: Acquisition of Localization Con?dence for Accurate Object Detection
- 與 Softer NMS 類似,IoU-Net 也是瞄準(zhǔn)了當(dāng)前目標(biāo)檢測網(wǎng)絡(luò)不能輸出定位置信度的痛點,在 Faster RCNN 的網(wǎng)絡(luò)基礎(chǔ)上設(shè)計了新的網(wǎng)絡(luò)分支去輸出預(yù)測框和 GT 框的 IoU 作為當(dāng)前預(yù)測框的定位置信度,并通過位置置信度改進 NMS 來保留位置更精準(zhǔn)的預(yù)測框。除此之外,IoU-Net 還進一步提出了基于優(yōu)化的預(yù)測框位置修正方法,通過最大化定位置信度來修正預(yù)測框位置
Precise RoI Pooling (PrRoI Pooling)
- RoI Align 通過采樣的方法有效避免了量化操作,減小了 RoI Pooling 的誤差,但 RoI Align 也存在一個缺點,即對每一個區(qū)域都采取固定數(shù)量的采樣點,但區(qū)域有大有小,都采取同一個數(shù)量點,顯然不是最優(yōu)的方法
- 以此為出發(fā)點,IoU-Net 提出了 PrRoI Pooling,采用積分的方式實現(xiàn)了更為精準(zhǔn)的感興趣區(qū)域池化。與 RoI Align 只采樣 4 個點不同,PrRoI Pooling 方法將整個區(qū)域看做是連續(xù)的,采用積分公式求解每一個區(qū)域的池化輸出值:
其中 binbinbin 為 RoI 中的一個區(qū)域,F\mathcal FF 為特征圖,f(x,y)f(x,y)f(x,y) 為通過雙線性插值得到的點 (x,y)(x,y)(x,y) 處的權(quán)重:
其中,wi,jw_{i,j}wi,j? 為 F\mathcal FF 上點 (i,j)(i,j)(i,j) 處的權(quán)重,
IC(x,y,i,j)=max?(0,1?∣x?i∣)×max?(0,1?∣y?j∣)I C(x, y, i, j)=\max (0,1-|x-i|) \times \max (0,1-|y-j|)IC(x,y,i,j)=max(0,1?∣x?i∣)×max(0,1?∣y?j∣)
- 總的來說,PrRoI Pooling 避免了任何的坐標(biāo)量化過程,同時與 RoI Align 和 RoI Pooling 不同,PrRoI Pooling 對于預(yù)測框的坐標(biāo) x1,x2,y1,y2x_1,x_2,y_1,y_2x1?,x2?,y1?,y2? 還連續(xù)可導(dǎo),這有利于之后的預(yù)測框位置修正過程
實現(xiàn)時仍然通過采樣離散的點去近似積分項
Learning to predict IoU
- IoU-Net 在 Head 處增加了一個預(yù)測 IoU 的分支,與分類回歸分支并行,用于預(yù)測每一個候選框的定位置信度 (IoU-Net uses class-aware IoU predictors)
- 需要注意的是,在訓(xùn)練時 IoU-Net 通過自動生成候選框的方式來訓(xùn)練 IoU 分支,而不是從 RPN 獲取。具體來講,Jittered RoIs 在訓(xùn)練集的真實物體框上增加隨機擾動,生成了一系列候選框,并移除與真實物體框 IoU 小于 0.5 的邊框。實驗證明這種方法來訓(xùn)練 IoU 分支可以帶來更高的性能與穩(wěn)健性。因此,在整個模型的聯(lián)合訓(xùn)練時,IoU 預(yù)測分支的訓(xùn)練數(shù)據(jù)需要從每一批的輸入圖像中單獨生成。此外,還需要對 IoU 分支的標(biāo)簽進行歸一化,保證其分布在 [?1,1][-1,1][?1,1] 區(qū)間中
由于這種訓(xùn)練方式只需要提供特征圖和 GT 框,因此不依賴于任何特定的目標(biāo)檢測器,當(dāng)與不同的目標(biāo)檢測器結(jié)合使用時都能具有不錯的魯棒性
IoU-guided NMS
- IoU-Net 使用預(yù)測的 IoU 而非分類置信度作為預(yù)測框排序的依據(jù),并抑制掉與當(dāng)前框 IoU 超過設(shè)定閾值的其他候選框,從而解決了傳統(tǒng) NMS 分類置信度與定位精度不匹配的問題。此外,在 NMS 過程中,IoU-Net 還做了分類置信度的聚類。具體做法是,在 NMS 過程中,當(dāng)邊框 iii 抑制邊框 jjj 時,通過 si=max?(si,sj)s_i=\max(s_i,s_j)si?=max(si?,sj?) 來更新邊框 iii 的分類置信度,即對于匹配到同一真實物體的邊框,選取其中最大的類別置信度
Bounding box refinement as an optimization procedure
- 預(yù)測框位置修正的問題可以被看作如下優(yōu)化問題:
其中,boxdetbox_{det}boxdet? 為預(yù)測框,boxgtbox_{gt}boxgt? 為 GT 框;transform\text{transform}transform 為一個變換函數(shù),接受參數(shù) ccc 來調(diào)整預(yù)測框的位置;critcritcrit 為衡量兩個邊界框距離的度量指標(biāo) - Regression-based algorithms: 基于回歸的預(yù)測框位置修正算法直接通過一次網(wǎng)絡(luò)的前向傳播,由網(wǎng)絡(luò)的回歸分支得到 c?c^*c?。但這種迭代的回歸算法極容易受到輸入分布變化的影響,使得迭代過程中定位精度反而下降。同時,定位置信度的缺失也使得回歸修正算法缺少可解釋性
- optimization-based bounding box refinement method: 為了解決回歸修正算法中存在的問題,IoU-Net 直接將網(wǎng)絡(luò)預(yù)測的 IoU 作為優(yōu)化指標(biāo),利用梯度上升來進行位置修正 (這得益于 PrRoI Pooling 對預(yù)測框坐標(biāo)連續(xù)可導(dǎo)),同時還利用預(yù)測 IoU 采取早停策略防止迭代過程中定位精度下降。這不僅提高了位置修正的性能,還提高了算法的可解釋性
算法第 6 行的 scalescalescale 表示根據(jù)坐標(biāo)所在軸對應(yīng)的邊框尺寸大小對梯度進行放大,例如將 ?x1\nabla x_1?x1? 放大 width(bj)width(b_j)width(bj?) 倍
參考文獻
- 《深度學(xué)習(xí)之 PyTorch 物體檢測實戰(zhàn)》
- 知乎 Mark Lue 關(guān)于 AP 的回答
總結(jié)
以上是生活随笔為你收集整理的交并比 (IoU), mAP (mean Average Precision), 非极大值抑制 (NMS, Soft NMS, Softer NMS, IoU-Net)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GP232RL:国产USB转串口/UAR
- 下一篇: 关于单片机代码的风格