NMS及其變體


nms:1.首先將pred_data中置信度小於x的過濾掉,2.根據conf從大到小重新排序並記為P。3.將P[0]保存到另一個列表R中並計算其與P[1:]的IOU(可選項:是否在不同類間計算IOU),過濾掉其中IOU大於y的P[1:]。4.重復步驟3直到P為空

batch-nms:它並非是真正的在一個batch間進行nms,只是給每個box的坐標加上cls_id*max_wh,將每個類的box分隔開來好計算不同類間的IOU,算是加速計算的一種技巧

weighted-nms:它在進行nms步驟3時,將所有與它IOU大於iou_thresh的box的box_conf為權重*各自的坐標並取加權平均記為weight_box,最終返回weight_box而非P[0]並重復步驟3直到P為空

merge-nms:它是先走一遍普通nms的流程得出的nms_box后再跟原始的pred_box計算IOU,然后將大於iou_thresh的IOU*conf([c,n]*[1,n]->[c,n])記為weight再與pred_box做矩陣乘法([c,n]*[n,4]->[c,4])最后除以weight.sum(1)得到的box作為merge-nms結果返回

soft-nms:多了一個soft_thresh參數,在普通nms中計算IOU后,對大於iou_thresh的box_conf做衰減(線性衰減或指數衰減)(普通nms中是直接將box_conf置為0),然后過濾掉box_conf小於soft_thresh的box,繼續重復nms中的步驟3。

diou-nms:nms中計算IOU的方法改為DIOU即可,可以緩解遮擋問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM