化妝品網(wǎng)站設(shè)計(jì)報(bào)告怎么網(wǎng)上推廣自己的產(chǎn)品
目錄
- 1 準(zhǔn)確率和召回率
- 2 P-R曲線的繪制
- 3 AP R11與AP R40標(biāo)準(zhǔn)
- 4 實(shí)際案例
1 準(zhǔn)確率和召回率
首先給出 T P TP TP、 F P FP FP、 F N FN FN、 T N TN TN的概念
- 真陽(yáng)性
True Positive
T P TP TP
預(yù)測(cè)為正(某類(lèi))且真值也為正(某類(lèi))的樣本數(shù),可視為 I o U > I o U t h r e s h o l d \mathrm{IoU>IoU_{threshold}} IoU>IoUthreshold?的檢測(cè)框數(shù)量 - 假陽(yáng)性
False Positive
F P FP FP
預(yù)測(cè)為正(某類(lèi))但真值為負(fù)(另一類(lèi))的樣本數(shù),可視為 I o U ≤ I o U t h r e s h o l d \mathrm{IoU\le IoU_{threshold}} IoU≤IoUthreshold?的檢測(cè)框數(shù)量 - 真陰性
True Negative
T N TN TN
預(yù)測(cè)為負(fù)(不是某類(lèi))且真值也為負(fù)(不是某類(lèi))的樣本數(shù) - 假陰性
False Negative
F N FN FN
預(yù)測(cè)為負(fù)(不是某類(lèi))但真值為正(某類(lèi))的樣本數(shù),即在真值區(qū)域沒(méi)有給出檢測(cè)框
基于上述概念給出準(zhǔn)確率和召回率的計(jì)算方法
- 準(zhǔn)確率
Precision
P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP?
- 召回率
Recall
R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP?
準(zhǔn)確率 P P P又稱(chēng)為查準(zhǔn)率,反映了目標(biāo)檢測(cè)的正確性;召回率 R R R又稱(chēng)為查全率,反映了目標(biāo)檢測(cè)的泛化性。
2 P-R曲線的繪制
P-R性能也稱(chēng)為準(zhǔn)確率-召回率性能,或稱(chēng)查準(zhǔn)率-查全率性能,常用于信息檢索、Web推薦引擎等應(yīng)用中。體現(xiàn)P-R性能的主要是P-R曲線,P-R曲線是用于評(píng)估二分類(lèi)模型性能的重要工具,它展示了在不同閾值下模型的準(zhǔn)確率和召回率之間的變化關(guān)系
P-R曲線的繪制過(guò)程是:將預(yù)測(cè)置信度從高到低排序,依次選擇置信度為預(yù)測(cè)閾值(即大于該閾值的判定為正樣本,否則為負(fù)樣本),計(jì)算該閾值下的TP、FN、FP,從而得到準(zhǔn)確率和召回率,從高到低移動(dòng)閾值形成P-R曲線
以一個(gè)實(shí)例說(shuō)明繪制過(guò)程
假設(shè)有10個(gè)樣本,其中正負(fù)樣本各5個(gè),按照預(yù)測(cè)置信度從高到低排序,依次計(jì)算準(zhǔn)確率和召回率
將形成的(Precision, Recall)坐標(biāo)對(duì)畫(huà)到坐標(biāo)系上可得
隨著樣本增加,折現(xiàn)會(huì)趨于曲線
3 AP R11與AP R40標(biāo)準(zhǔn)
P-R曲線圍成的面積稱(chēng)為平均準(zhǔn)確率(Average Precision, AP),用于衡量模型的綜合性能
對(duì)于面積的計(jì)算,一種方法是積分,但由于曲線形態(tài)各異,積分比較耗費(fèi)計(jì)算資源;另一種方法是離散化求和,即用若干個(gè)矩形面積來(lái)近似曲線下面積
具體的公式為
A P ∣ R = 1 ∣ R ∣ ∑ r ∈ R ρ i n t e r ( r ) AP\mid_{R}^{}=\frac{1}{\left| R \right|}\sum_{r\in R}{\rho _{\mathrm{inter}}\left( r \right)} AP∣R?=∣R∣1?r∈R∑?ρinter?(r)
其中 R = { r 1 , r 2 , ? , r n } R=\left\{ r_1,r_2,\cdots ,r_n \right\} R={r1?,r2?,?,rn?}是等間隔的召回率點(diǎn), R 11 R_{11} R11?和 R 40 R_{40} R40?分別指
R 11 = { 0 , 1 10 , 2 10 , ? , 1 } R 40 = { 1 40 , 2 40 , 3 40 , ? , 1 } R_{11}=\left\{ 0,\frac{1}{10},\frac{2}{10},\cdots ,1 \right\} \\ R_{40}=\left\{ \frac{1}{40},\frac{2}{40},\frac{3}{40},\cdots ,1 \right\} R11?={0,101?,102?,?,1}R40?={401?,402?,403?,?,1}
相當(dāng)于把召回率等分為 ∣ R ∣ \left| R \right| ∣R∣個(gè)矩形,高度為P-R曲線在該召回率點(diǎn)的準(zhǔn)確度。但問(wèn)題是可能原曲線在該點(diǎn)沒(méi)有計(jì)算準(zhǔn)確度指(因?yàn)楸举|(zhì)上還是離散曲線),因此就引入準(zhǔn)確度插值函數(shù)
ρ i n t e r ( r ) = max ? r ′ : r ′ > r ρ ( r ′ ) \rho _{\mathrm{inter}}\left( r \right) =\max _{r':r'>r}\rho \left( r' \right) ρinter?(r)=r′:r′>rmax?ρ(r′)
就是取召回率為 r ′ r' r′的位置之后所有準(zhǔn)確率的最大值,作為該點(diǎn)的插值準(zhǔn)確率,相當(dāng)于把P-R曲線化成階梯矩形,如下圖藍(lán)色曲線所示,接著按公式計(jì)算即可
R 40 R_{40} R40?一定程度上削弱了 R 11 R_{11} R11?在準(zhǔn)確率很低時(shí),AP結(jié)果仍然很高的情況,舉例而言
假設(shè)一個(gè)場(chǎng)景中有20個(gè)
Ground Truth
,但是算法只給出了一個(gè)檢測(cè)結(jié)果,且檢測(cè)的IoU大于閾值,即這是一個(gè)TP樣本。該置信度下, P r e c i s i o n = 1.0 Precision=1.0 Precision=1.0, R e c a l l = 1 20 = 0.05 Recall=\frac{1}{20}=0.05 Recall=201?=0.05
- 計(jì)算 A P ∣ R 11 = 1 11 = 0.0909 AP\mid_{R_{11}}^{}=\frac{1}{11}=0.0909 AP∣R11??=111?=0.0909,這里的1對(duì)應(yīng) R 11 R_{11} R11?中召回點(diǎn)0,而這個(gè)準(zhǔn)確率已經(jīng)超過(guò)了很多單目3D檢測(cè)算法的準(zhǔn)確率,顯然不合理
- 計(jì)算 A P ∣ R 40 = 1 + 1 40 = 0.05 AP\mid_{R_{40}}^{}=\frac{1+1}{40}=0.05 AP∣R40??=401+1?=0.05,這里的1對(duì)應(yīng) R 40 R_{40} R40?中召回點(diǎn) 1 40 \frac{1}{40} 401?和 2 40 \frac{2}{40} 402?
目前KITTI官方也認(rèn)可了 A P ∣ R 40 AP\mid_{R_{40}}^{} AP∣R40??指標(biāo),后續(xù)基本也采用 A P ∣ R 40 AP\mid_{R_{40}}^{} AP∣R40??進(jìn)行實(shí)驗(yàn)評(píng)估
以下是KITTI數(shù)據(jù)集AP檢測(cè)的實(shí)例
Car AP@0.70, 0.70, 0.70:
bbox AP:90.7769, 89.7942, 88.8813
bev AP:90.0097, 87.9282, 86.4528
3d AP:88.6137, 78.6245, 77.2243
aos AP:90.75, 89.66, 88.66
Car AP_R40@0.70, 0.70, 0.70:
bbox AP:95.5825, 94.0067, 91.5784
bev AP:92.4184, 88.5586, 87.6479
3d AP:90.5534, 81.6116, 78.6108
aos AP:95.55, 93.85, 91.33
解釋如下:
-
第一行
Car AP@0.70, 0.70, 0.70
Car
表示類(lèi)別,AP
表示基于AP R11
的平均準(zhǔn)確率,后面三個(gè)0.70
分別指代2D檢測(cè)框、BEV檢測(cè)框和3D檢測(cè)框的IoU
閾值,即大于這個(gè)閾值才認(rèn)為是正樣本 -
第二、三、四行
每一行指代一種檢測(cè)模式,即2D檢測(cè)框、BEV檢測(cè)框和3D檢測(cè)框,每一行的三個(gè)數(shù)值分別對(duì)應(yīng)Easy
、Moderate
和Hard
三種檢測(cè)難度的的結(jié)果,難度越大(例如遮擋嚴(yán)重),檢測(cè)準(zhǔn)確度越小 -
第五行
aos
表示平均朝向相似度(average orientation similarity),用于評(píng)價(jià)預(yù)測(cè)輸出的朝向與真實(shí)框朝向的相似程度
4 實(shí)際案例
在KITTI數(shù)據(jù)集中,按以下步驟計(jì)算AP數(shù)值
-
計(jì)算IoU,這部分原理參考3D目標(biāo)檢測(cè)實(shí)戰(zhàn) | 詳解2D/3D檢測(cè)框交并比IoU計(jì)算(附Python實(shí)現(xiàn))
frame_overlaps, parted_overlaps, gt_num, dt_num = iou(gt_annos, dt_annos, method, num_parts)
-
以0置信度閾值計(jì)算置信度列表,即只要IoU符合條件的都視為T(mén)P樣本,提取其置信度評(píng)分
rets = compute(frame_overlaps[i], gt_data_list[i], dt_data_list[i],ignored_gts[i], ignored_dts[i], min_overlap=min_overlap, thresh=0.0) _, _, _, _, scores_i = rets
-
對(duì)置信度列表均勻采樣41個(gè)點(diǎn),得到40個(gè)召回點(diǎn)對(duì)應(yīng)的置信度閾值
thresholds = getThresholds(np.array(scores), valid_gt_num)def getThresholds(scores: np.ndarray, num_gt, num_sample_pts=41):scores.sort()scores = scores[::-1]current_recall = 0thresholds = []for i, score in enumerate(scores):l_recall = (i + 1) / num_gtif i < (len(scores) - 1):r_recall = (i + 2) / num_gtelse:r_recall = l_recallif (((r_recall - current_recall) < (current_recall - l_recall))and (i < (len(scores) - 1))):continuethresholds.append(score)current_recall += 1 / (num_sample_pts - 1.0)return thresholds
-
遍歷每個(gè)閾值,計(jì)算該閾值下的TP、FP和FN,從而計(jì)算準(zhǔn)確率和召回率
for i in range(len(thresholds)):recall[m, l, k, i] = pr[i, 0] / (pr[i, 0] + pr[i, 2])precision[m, l, k, i] = pr[i, 0] / (pr[i, 0] + pr[i, 1])if compute_aos:aos[m, l, k, i] = pr[i, 3] / (pr[i, 0] + pr[i, 1])
-
取PR曲線外接矩形
for i in range(len(thresholds)):precision[m, l, k, i] = np.max(precision[m, l, k, i:], axis=-1)recall[m, l, k, i] = np.max(recall[m, l, k, i:], axis=-1)if compute_aos:aos[m, l, k, i] = np.max(aos[m, l, k, i:], axis=-1)
-
計(jì)算AP
def mAP(prec):sums = 0for i in range(0, prec.shape[-1], 4):sums = sums + prec[..., i]return sums / 11 * 100def mAPR40(prec):sums = 0for i in range(1, prec.shape[-1]):sums = sums + prec[..., i]return sums / 40 * 100
本文完整工程代碼請(qǐng)通過(guò)下方名片聯(lián)系博主獲取
🔥 更多精彩專(zhuān)欄:
- 《ROS從入門(mén)到精通》
- 《Pytorch深度學(xué)習(xí)實(shí)戰(zhàn)》
- 《機(jī)器學(xué)習(xí)強(qiáng)基計(jì)劃》
- 《運(yùn)動(dòng)規(guī)劃實(shí)戰(zhàn)精講》
- …