日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

詳解非極大值抑制算法之Python實現

瀏覽:214日期:2022-06-15 16:35:56
目錄一、概述二、NMS 在目標檢測中的應用2.1、人臉檢測框重疊例子2.2、目標檢測 pipline三、NMS 原理3.1、重疊率(重疊區域面積比例IOU)閾值3.2、代碼示例四、NMS loss五、Soft-NMS5.1、python代碼實現5.2、Caffe C++ 版實現六、其它應用一、概述

這里不討論通用的NMS算法(參考論文《Efficient Non-Maximum Suppression》對1維和2維數據的NMS實現),而是用于目標檢測中提取分數最高的窗口的。例如在行人檢測中,滑動窗口經提取特征,經分類器分類識別后,每個窗口都會得到一個分數。但是滑動窗口會導致很多窗口與其他窗口存在包含或者大部分交叉的情況。這時就需要用到NMS來選取那些鄰域里分數最高(是行人的概率最大),并且抑制那些分數低的窗口。

NMS在計算機視覺領域有著非常重要的應用,如視頻目標跟蹤、數據挖掘、3D重建、目標識別以及紋理分析等。

二、NMS 在目標檢測中的應用2.1、人臉檢測框重疊例子

詳解非極大值抑制算法之Python實現

我們的目的就是要去除冗余的檢測框,保留最好的一個.

有多種方式可以解決這個問題,Triggs et al. 建議使用Mean-Shift 算法,利用bbox的坐標和當前圖片尺度的對數來檢測bbox的多種模式.但效果可能并不如使用強分類器結合NMS的效果好.

2.2、目標檢測 pipline

詳解非極大值抑制算法之Python實現

產生proposal后使用分類網絡給出每個框的每類置信度,使用回歸網絡修正位置,最終應用NMS.

三、NMS 原理

對于Bounding Box的列表B及其對應的置信度S,采用下面的計算方式.選擇具有最大score的檢測框M,將其從B集合中移除并加入到最終的檢測結果D中.通常將B中剩余檢測框中與M的IoU大于閾值Nt的框從B中移除.重復這個過程,直到B為空.

3.1、重疊率(重疊區域面積比例IOU)閾值

常用的閾值是 0.3 ~ 0.5.

其中用到排序,可以按照右下角的坐標排序或者面積排序,也可以是通過SVM等分類器得到的得分或概率,R-CNN中就是按得分進行的排序.

詳解非極大值抑制算法之Python實現

就像上面的圖片一樣,定位一個車輛,最后算法就找出了一堆的方框,我們需要判別哪些矩形框是沒用的。非極大值抑制的方法是:先假設有6個矩形框,根據分類器的類別分類概率做排序,假設從小到大屬于車輛的概率 分別為A、B、C、D、E、F。

(1)從最大概率矩形框F開始,分別判斷A~E與F的重疊度IOU是否大于某個設定的閾值;

(2)假設B、D與F的重疊度超過閾值,那么就扔掉B、D;并標記第一個矩形框F,是我們保留下來的。

(3)從剩下的矩形框A、C、E中,選擇概率最大的E,然后判斷E與A、C的重疊度,重疊度大于一定的閾值,那么就扔掉;并標記E是我們保留下來的第二個矩形框。

就這樣一直重復,找到所有被保留下來的矩形框。

3.2、代碼示例

在R-CNN中使用了NMS來確定最終的bbox,其對每個候選框送入分類器,根據分類器的類別分類概率做排序(論文中稱為greedy-NMS).但其實也可以在分類之前運用簡單版本的NMS來去除一些框.

python實現的單類別nms:py_cpu_nms.py.

def py_cpu_nms(dets, thresh): '''Pure Python NMS baseline.''' #x1、y1、x2、y2、以及score賦值 x1 = dets[:, 0] y1 = dets[:, 1] x2 = dets[:, 2] y2 = dets[:, 3] scores = dets[:, 4] #每一個檢測框的面積 areas = (x2 - x1 + 1) * (y2 - y1 + 1) #按照score置信度降序排序 order = scores.argsort()[::-1] keep = [] #保留的結果框集合 while order.size > 0: i = order[0] keep.append(i) #保留該類剩余box中得分最高的一個 #得到相交區域,左上及右下 xx1 = np.maximum(x1[i], x1[order[1:]]) yy1 = np.maximum(y1[i], y1[order[1:]]) xx2 = np.minimum(x2[i], x2[order[1:]]) yy2 = np.minimum(y2[i], y2[order[1:]]) #計算相交的面積,不重疊時面積為0 w = np.maximum(0.0, xx2 - xx1 + 1) h = np.maximum(0.0, yy2 - yy1 + 1) inter = w * h #計算IoU:重疊面積 /(面積1+面積2-重疊面積) ovr = inter / (areas[i] + areas[order[1:]] - inter) #保留IoU小于閾值的box inds = np.where(ovr <= thresh)[0] order = order[inds + 1] #因為ovr數組的長度比order數組少一個,所以這里要將所有下標后移一位 return keep

Faster R-CNN的MATLAB實現與python版實現一致,代碼在這里:nms.m.另外,nms_multiclass.m是多類別nms,加了一層for循環對每類進行nms而已.

四、NMS loss

值的注意的是對多類別檢測任務,如果對每類分別進行NMS,那么當檢測結果中包含兩個被分到不同類別的目標且其IoU較大時,會得到不可接受的結果。如下圖所示:

詳解非極大值抑制算法之Python實現

一種改進方式便是在損失函數中加入一部分NMS損失。NMS損失可以定義為與分類損失相同:

詳解非極大值抑制算法之Python實現

即真實列別u對應的log損失,p是C個類別的預測概率。實際相當于增加分類誤差。參考論文《Rotated Region Based CNN for Ship Detection》(IEEE2017會議論文)的Multi-task for NMS部分。

五、Soft-NMS

上述NMS算法的一個主要問題是當兩個ground truth的目標的確重疊度很高時,NMS會將具有較低置信度的框去掉(置信度改成0),參見下圖所示.

詳解非極大值抑制算法之Python實現

論文:《Improving Object Detection With One Line of Code》改進之處:

詳解非極大值抑制算法之Python實現

改進方法在于將置信度改為IoU的函數:f(IoU),具有較低的值而不至于從排序列表中刪去.

1.線性函數

詳解非極大值抑制算法之Python實現

函數值不連續,在某一點的值發生跳躍.

2.高斯函數

詳解非極大值抑制算法之Python實現

時間復雜度同傳統的greedy-NMS,為

詳解非極大值抑制算法之Python實現

5.1、python代碼實現

ua = float((tx2 - tx1 + 1) * (ty2 - ty1 + 1) + area - iw * ih) ov = iw * ih / ua #iou between max box and detection box if method == 1: # linear if ov > Nt: weight = 1 - ov else: weight = 1 elif method == 2: # gaussian weight = np.exp(-(ov * ov)/sigma) else: # original NMS if ov > Nt: weight = 0 else: weight = 1 # re-scoring 修改置信度 # boxes[pos, 4] = weight*boxes[pos, 4]5.2、Caffe C++ 版實現

makefile/frcnn

效果

詳解非極大值抑制算法之Python實現

在基于proposal方法的模型結果上應用比較好,檢測效果提升:

詳解非極大值抑制算法之Python實現

在R-FCN以及Faster-RCNN模型中的測試階段運用Soft-NMS,在MS-COCO數據集上mAP@[0.5:0.95]能夠獲得大約1%的提升(詳見這里). 如果應用到訓練階段的proposal選取過程理論上也能獲得提升. 在自己的實驗中發現確實對易重疊的目標類型有提高(目標不一定真的有像素上的重疊,切斜的目標的矩形邊框會有較大的重疊).而在SSD,YOLO等非proposal方法中沒有提升.

六、其它應用

邊緣檢測:Canny算子中的非極大值抑制是沿著梯度方向進行的,即是否為梯度方向上的極值點;

特征點檢測:在角點檢測等場景下說的非極大值抑制,則是檢測中心點處的值是否是某一個鄰域內的最大值.

以上就是詳解非極大值抑制算法之Python實現的詳細內容,更多關于非極大值抑制 Python實現的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
999久久久免费精品国产| 在线精品国产亚洲| 久久国产三级精品| 日韩午夜视频在线| 日韩成人午夜精品| 国产色噜噜噜91在线精品| 久久国产精品色av免费看| 欧美久久精品| 国产成人精品一区二区三区视频 | 韩国女主播一区二区三区| 久久国产麻豆精品| 国产精品天天看天天狠| 精品色999| 久久国产影院| 在线精品亚洲| 久久免费影院| 欧美1区免费| 天海翼精品一区二区三区| 久久99影视| 婷婷精品视频| 日韩三级精品| 国产色噜噜噜91在线精品| 成人美女视频| 午夜亚洲精品| 激情国产在线| 亚洲1区在线| zzzwww在线看片免费| 三级亚洲高清视频| 成人三级高清视频在线看| 蜜臀久久久99精品久久久久久| 欧美交a欧美精品喷水| 亚洲欧美日韩视频二区| 日韩av二区| 欧美日韩亚洲一区三区| 久久久噜噜噜| 久久国内精品| 亚洲欧洲一区| 卡一卡二国产精品| 日韩国产一二三区| 亚洲激情二区| 免费高潮视频95在线观看网站| 人人精品久久| 欧美一区=区| 99久久婷婷| 电影91久久久| 麻豆成人在线观看| 国产亚洲人成a在线v网站| 四虎国产精品免费久久| 亚洲免费影院| 视频一区中文字幕| 伊人影院久久| 国产精品久久久久蜜臀| 91p九色成人| 欧美久久亚洲| 91成人在线| 青青国产精品| 国产精品网址| 免费在线观看一区| 日韩av一区二区三区| 日韩三级精品| 欧美天堂一区| 欧美一区精品| 国产精品夜夜夜| 精品视频97| 国产精品二区不卡| 日本少妇一区| 激情黄产视频在线免费观看| 免费看一区二区三区| 精品日韩一区| 精品国产乱码久久久| 国产91在线播放精品| 一本大道色婷婷在线| 欧美日韩亚洲在线观看| 国产视频亚洲| 婷婷成人av| 国产精品久久久久9999高清| 福利一区二区三区视频在线观看| 成人日韩在线观看| 蜜臀精品久久久久久蜜臀| 日本不卡视频一二三区| 久久亚洲精精品中文字幕| 成人在线黄色| 欧美日韩四区| 日韩av二区在线播放| 高清久久精品| 免费一级片91| 你懂的亚洲视频| 欧美亚洲国产一区| 日韩成人在线看| 88xx成人免费观看视频库| 久久成人国产| 国产成人精品一区二区三区视频| 日韩视频不卡| 超碰99在线| 天堂精品久久久久| 三上亚洲一区二区| 久久亚洲欧洲| 精品国产精品国产偷麻豆| 91久久中文| 超碰在线99| 一区二区91| 免费福利视频一区二区三区| 免费在线看一区| 不卡在线一区| 激情久久五月| 日本国产精品| 精品免费av在线| 国产精品日本一区二区三区在线| 亚洲欧美久久精品| 91精品丝袜国产高跟在线| 日韩高清在线不卡| 免费在线看一区| 快she精品国产999| 亚洲欧美视频一区二区三区| 亚洲男女自偷自拍| 日韩精品一卡二卡三卡四卡无卡| 蜜臀久久99精品久久久久久9 | 精品久久电影| 麻豆国产91在线播放| 国产精久久久| 欧美国产另类| 激情久久99| 中文字幕在线视频网站| 国产精品蜜月aⅴ在线| 国产精品亲子伦av一区二区三区| 日韩精品国产精品| 久久激五月天综合精品| 欧美a一区二区| 日韩电影免费网站| 午夜国产一区二区| 老鸭窝毛片一区二区三区| 亚洲日本欧美| 欧美精品不卡| 欧美亚洲国产一区| 久久亚洲国产精品一区二区| 涩涩涩久久久成人精品| 国产精品最新自拍| 日本精品不卡| 欧美福利在线| 欧美日韩99| 国产精选在线| 99热精品在线| 国产精品一区三区在线观看| 成人在线超碰| 国产亚洲欧洲| 另类综合日韩欧美亚洲| 色婷婷精品视频| 亚洲ww精品| 日韩不卡在线| 91欧美极品| 激情婷婷欧美| 国产调教一区二区三区| 久久国产精品成人免费观看的软件| 一区久久精品| 久久天堂成人| 日韩精品免费观看视频| 日韩精品dvd| 老司机免费视频一区二区三区| 免费视频最近日韩| 激情综合自拍| 日韩精品dvd| 亚洲黄色中文字幕| 美女精品一区二区| 国产日韩在线观看视频| 亚洲3区在线| 亚洲区国产区| 中文一区一区三区免费在线观 | 免费日韩精品中文字幕视频在线| 蜜桃av一区二区| 国产一区国产二区国产三区 | 久久精品国产一区二区| 国产一区日韩欧美| 欧美激情99| 亚洲精品乱码| 国产精品99一区二区| 欧美国产专区| 日韩精品中文字幕吗一区二区| 影视先锋久久| 精品一区视频| 伊人国产精品| 99久久精品网| 日韩在线免费| 日韩电影二区| 亚洲黄色免费av| 日韩av二区| 日本一区二区免费高清| 久久亚洲道色| 久久精品国产在热久久| 欧美国产日本| 精品一区电影| 国产精品成久久久久| 日韩中文字幕高清在线观看| 日韩欧美二区| 久久久精品日韩| 国产一区二区三区不卡视频网站| 国产精品videosex极品| 久久国产麻豆精品| 久久一区亚洲| 色婷婷精品视频| 99成人在线|