標簽數量多少合適目標檢測訓練
A. 小目標檢測相關技巧總結
小目標問題在物體檢測和語義分割等視覺任務中一直是存在的一個難點,小目標的檢測精度通常只有大目標的一半。
CVPR2019論文: Augmentation for small object detection 提到了一些應對小目標檢測的方法,筆者結合這篇論文以及查閱其它資料,對小目標檢測相關技巧在本文進行了部分總結。
小目標的定義: 在MS COCO數據集中,面積小於 32*32 的物體被認為是小物體。
小目標難以檢測的原因: 解析度低,圖像模糊,攜帶的信息少。由此所導致特徵表達能力弱,也就是在提取特徵的過程中,能提取到的特徵非常少,這不利於我們對小目標的檢測。
1、由於小目標面積太小,可以放大圖片後再做檢測,也就是在尺度上做文章,如FPN(Feature Pyramid Networks for Object Detection),SNIP(An Analysis of Scale Invariance in Object Detection – SNIP)。
Feature-Fused SSD: Fast Detection for Small Objects, Detecting Small Objects Using a Channel-Aware Deconvolutional Network 也是在多尺度上做文章的論文。
2、在Anchor上做文章(Faster Rcnn,SSD, FPN都有各自的anchor設計),anchor在設置方面需要考慮三個因素:
anchor的密度: 由檢測所用feature map的stride決定,這個值與前景閾值密切相關。
anchor的范圍: RetinaNet中是anchor范圍是32~512,這里應根據任務檢測目標的范圍確定,按需調整anchor范圍,或目標變化范圍太大如MS COCO,這時候應採用多尺度測試。
anchor的形狀數量: RetinaNet每個位置預測三尺度三比例共9個形狀的anchor,這樣可以增加anchor的密度,但stride決定這些形狀都是同樣的滑窗步進,需考慮步進會不會太大,如RetinaNet框架前景閾值是0.5時,一般anchor大小是stride的4倍左右。
該部分anchor內容參考於: https://zhuanlan.hu.com/p/55824651
3、在ROI Pooling上做文章,文章SINet: A Scale-Insensitive Convolutional Neural Network for Fast Vehicle Detection 認為小目標在pooling之後會導致物體結構失真,於是提出了新的Context-Aware RoI Pooling方法陸臘。
4、用生成對抗網路(GAN)來做小目標檢測:Perceptual Generative Adversarial Networks for Small Object Detection。
1、從COCO上的統計圖可以發現,小目標的個數多,佔到了41.43%,但是含有小目標的圖片只有51.82%,大目標所佔比例為24.24%,但是含有大目標的圖像卻有82.28%。這說明有早鄭滑一半的圖像是不含小目標的,大部分的小目標都集中在一些少量的圖片中。這就導致在訓練的過程中,模型有一半的時間是學習不到小目叢念標的特性的。
此外,對於小目標,平均能夠匹配的anchor數量為1個,平均最大的IoU為0.29,這說明很多情況下,有些小目標是沒有對應的anchor或者對應的anchor非常少的,即使有對應的anchor,他們的IoU也比較小,平均最大的IoU也才0.29。
如上圖,左上角是一個anchor示意圖,右上角是一個小目標所對應的anchor,一共有隻有三個anchor能夠與小目標配對,且配對的IoU也不高。左下角是一個大目標對應的anchor,可以發現有非常多的anchor能夠與其匹配。匹配的anchor數量越多,則此目標被檢出的概率也就越大。
實現方法:
1、Oversampling :我們通過在訓練期間對這些圖像進行過采樣來解決包含小對象的相對較少圖像的問題(多用這類圖片)。在實驗中,我們改變了過采樣率和研究不僅對小物體檢測而且對檢測中大物體的過采樣效果
2、Copy-Pasting Strategies:將小物體在圖片中復制多分,在保證不影響其他物體的基礎上,增加小物體在圖片中出現的次數(把小目標扣下來貼到原圖中去),提升被anchor包含的概率。
如上圖右下角,本來只有一個小目標,對應的anchor數量為3個,現在將其復制三份,則在圖中就出現了四個小目標,對應的anchor數量也就變成了12個,大大增加了這個小目標被檢出的概率。從而讓模型在訓練的過程中,也能夠有機會得到更多的小目標訓練樣本。
具體的實現方式如下圖:圖中網球和飛碟都是小物體,本來圖中只有一個網球,一個飛碟,通過人工復制的方式,在圖像中復制多份。同時要保證復制後的小物體不能夠覆蓋該原來存在的目標。
網上有人說可以試一下lucid data dreaming Lucid Data Dreaming for Multiple Object Tracking ,這是一種在視頻跟蹤/分割裡面比較有效的數據增強手段,據說對於小目標物體檢測也很有效。
基於無人機拍攝圖片的檢測目前也是個熱門研究點(難點是目標小,密度大)。
相關論文:
The Unmanned Aerial Vehicle Benchmark: Object Detection and Tracking(數據集)
Drone-based Object Counting by Spatially Regularized Regional Proposal Network
Simultaneously Detecting and Counting Dense Vehicles from Drone Images
Vision Meets Drones: A Challenge(數據集)
1: https://zhuanlan.hu.com/p/55824651
2: https://zhuanlan.hu.com/p/57760020
3: https://www.hu.com/question/269877902/answer/548594081
4: https://zhuanlan.hu.com/p/60033229
5: https://arxiv.org/abs/1902.07296
6: http://openaccess.thecvf.com/content_cvpr_2017/papers/Li_Perceptual_Generative_Adversarial_CVPR_2017_paper.pdf
7: http://openaccess.thecvf.com/content_cvpr_2017/papers/Lin_Feature_Pyramid_Networks_CVPR_2017_paper.pdf
B. fasterrcnn目標檢測map達到多少比較好
fasterrcnn目標檢測map達到75+好。根據查詢相關資料顯示,小目標車輛檢測的精度能達到75+,小目標車輛檢測的時候其實李滑橡精度能達到75+,這取決於數據情況,加上一些設定(圖像對比度,模糊程哪旁度,特殊檢測框大小等前提),修改mAP的計算方式可以達到讓缺94+。mAP是計算所有類別P-R曲線下面積的平均值。
C. 目標檢測小目標/多尺度難題
場景 :目標檢測中存在尺寸很小的目標,或同時存在大小差距很大的目標,小目標由於下采樣/數量少丟失風險大
方案一:構造傳統多尺度圖像空間
在傳統的圖像處理,多尺度問題通常通過上/下采樣得到不同解析度圖像,構造多尺度圖像空間,在各層使用不同大小檢測器進行檢測。可認為是密集采樣檢測,無法有效區分小目標與背景干擾。
方案二:提高神經網路訓練集小目標樣本佔比,或提升小目標樣本的loss權重
神經網路學習訓練數據的分布,如果小目標太少,容易在網路參數的優化中被稀釋,因此提升小樣本目標的佔比屬於基礎且高性價比操作:
2.1 paste
隨機選擇目標,並縮小後paste到新的訓練樣本中,以增加小樣本數量
2.2 mosaic
將原始樣本進行多合一拼接,達到下采樣效果,同時改變目標的尺寸、位置、形態,增加每張圖中小樣本的數量。
2.3 oversampling
訓練過程中過采樣包含小尺度目標的圖像,即更多使用包含小目標進行訓練,且增加程度Rate可調節。
方案三:增加anchor的覆蓋范圍
基於anchor的目標檢測中,anchor的存在降低了坐標回歸的難度,同時也一定程度上決定了網路檢測的范圍,因此在網路設定anchor的時候,更多的設置小尺寸的anchor,將對網路在不同尺度捕獲小目標起到積極作用。此外,小目標的回歸難度顯著大於大目標,因此計算小目標的Anchor IoU時,閾值可適當降低。
方案四:提升不同尺度的feature的融合程度
神經網路的核心是對輸入數據進行特徵表徵,以適應label監督的分布,FPN與傳統圖像多尺度空間的思路類似,不同之處在於:1、不同尺度層之間存在特徵的融合;2、各層特徵由網路動態學習得到,而傳統多尺度空間是靜態的特徵。
方案五: 提高輸入解析度,預訓練+finetuning
放大輸入圖像+使用高分率圖像預訓練再在小圖上微調,在實踐中要優於專門針對小目標訓練一個分類器。同時必須控制下采樣率,避免小目標信息丟失。
方案六:結合anchor和anchor-free的方法
在FSAF中結合了anchor和anchor-free兩條檢測分支,anchor分支根據預設的anchor size可以檢測絕大部分預期的目標,anchor-free的分支對於anchor范圍外的目標(例如小目標)可以起到補充檢測的作用。
如果同一場景中,目標尺度差異過大,可採用兩個模型來檢測,針對小目標進行調小iou閾值,以保留更多的小目標,檢測結果後處理合並。
D. 網站tag標簽如何使用布局
一、TAG標簽的作用
Tag標簽態森有兩個明顯的特性,一是可以自定義,二是對文章的高概括性。這就決定了它的作用是讓我們發布的文章更容易被用戶搜索到,便於用戶根據興趣或需求快速找到目標文章。
二、TAG標簽的優化
1、始終要記得是為了方便用戶而設置的
如果我們的網站沒有足夠優秀的用戶體驗,就亂汪很難獲得排名、留住用戶、促進產品交易,始終要記得TAG標簽使用原則第一點就是注重用戶,高於SEO。
2、與文章具有相關性的長尾詞是最佳選擇
TAG標簽是為了將網站上同類或同主題的文章聚集在一起而生的,所以在設置的時候要保持與文章的相關性是必然,那麼為什麼還要用長尾詞呢,不能用核心詞嗎嘩閉仔?如果你想造成頁面內部競爭,分散內部權重的話,就盡管把標簽寫成首頁核心關鍵詞吧!
3、每篇文章的TAG標簽數量保持在3個為宜
對於tag標簽的數量,億豐網路之前做過一個小調查,有的站長從來不寫標簽,有的站長只是象徵性地寫1個,還有的站長習慣寫一大堆,5個起步,7個不嫌多。其實,不管多少都不叫錯,只要站長高興、認為有用就可以。若是把優化效果考慮在內的話,保持在3個為宜。
4、TAG標簽字數不宜過長且一定不能是句子
不超過5個字的tag標簽對用戶體驗是最有利的,最不利的就是直接使用一個完整的句子。
5、tag標簽頁面內容要充實
這一點無需多說什麼了吧,即便是新手站長,想必也不會犯這個錯誤吧。