日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python中的snip用法_简单说说SNIP

發(fā)布時(shí)間:2023/12/18 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中的snip用法_简单说说SNIP 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

論文:An Analysis of Scale Invariance in Object Detection – SNIP

論文鏈接:An Analysis of Scale Invariance in Object Detection - SNIP?arxiv.org

1. Background & Related Work

1.1 簡(jiǎn)介

這篇文章主要的研究點(diǎn)是目標(biāo)檢測(cè)中的小物體問題。小物體檢測(cè)一直是目標(biāo)檢測(cè)中的難題,做過實(shí)驗(yàn)的同學(xué)應(yīng)該都知道數(shù)據(jù)集中small類的AP基本是最低的,主要原因是兩個(gè),一個(gè)就是CNN網(wǎng)絡(luò)提取到的語義化特征和分辨率之間的矛盾;另一個(gè)就是目前的目標(biāo)檢測(cè)都采用了Faster RCNN的Anchor思想,小物體有時(shí)候即使全部在Anchor內(nèi),也容易因?yàn)樾∶娣e導(dǎo)致IoU過低。Anchor本質(zhì)上是大小固定的box,過小物體會(huì)出現(xiàn)IoU過低,過大物體也容易出現(xiàn)IoU過低,結(jié)果就是容易漏檢……

文章分析了小尺度與預(yù)訓(xùn)練模型尺度之間的關(guān)系, 并且提出了一個(gè)和 Cascade R-CNN 有異曲同工之妙的中心思想:要讓輸入分布接近模型預(yù)訓(xùn)練的分布(本文主要探討尺度的分布不一致帶來的問題). 之后利用分析的結(jié)論, 提出了一個(gè)多尺度訓(xùn)練(MST)的升級(jí)版:Scale Normalization for Image Pyramids (SNIP).

1.2 分類和檢測(cè)的難度差異

使用深度網(wǎng)絡(luò)后, 分類任務(wù)已經(jīng)做到了誤差率2%(ImageNet). 為什么在COCO上才62%? 這么懸殊的距離主要因?yàn)闄z測(cè)數(shù)據(jù)集中包含了大量小物體, 他們成了絆腳石.

可以看到,COCO 90%的Instance的大小都在0.472以下,和ImageNet差別非常大,在 ImageNet (classification) vs COCO (detection), 其中等尺度目標(biāo)在圖像中的占比分別是 0.554 and 0.106 respectively。所以在COCO 中大部分目標(biāo)在圖像中小于 1% 的面積。更糟糕的是在 COCO 最小最大10%的目標(biāo)在圖像中的占面積比是 0.024 and 0.472 respectively(導(dǎo)致尺度相差近20倍)。

這一方面說明了類似COCO這樣的數(shù)據(jù)集中存在著大量的小物體,另一方面也說明了ImageNet預(yù)訓(xùn)練的模型在遷移到樣本大小差異較大的COCO中時(shí)很可能產(chǎn)生一定的domain-shift偏差。因此作者產(chǎn)生這樣的motivation:

1. 現(xiàn)在檢測(cè)網(wǎng)絡(luò)為了提高對(duì)小目標(biāo)的效果,都采用upsample的方法,這個(gè)真的是必要的嗎?我能不能直接用低分辨率的圖像不做upsample來訓(xùn)練網(wǎng)絡(luò)(需要調(diào)小strides)?

2. 能不能通過挑選樣本的方式來增加網(wǎng)絡(luò)效果的,比如我upsample調(diào)整了大小以后,只用64x64~256x256的ground truth來訓(xùn)練?用所有的gt來訓(xùn)練真的更好嗎?

1.3 各種對(duì)付尺度變化的方法

實(shí)際上,現(xiàn)在有很多針對(duì)小目標(biāo)的措施和改良,包括:

1. 使用dilated/strous或者deformable這類特殊的卷積來提高檢測(cè)器對(duì)分辨率的敏感度

2. 最常用的,upsample來rezie網(wǎng)絡(luò)輸入圖像的大小

3. 使用FPN這種把淺層特征和深層特征融合的,或者最后在預(yù)測(cè)的時(shí)候,使用淺層特征和深層特征一起預(yù)測(cè);也有比較直接地在淺層和深層的feature map上直接各自獨(dú)立做預(yù)測(cè)的;這個(gè)也就是我們常說的尺度問題(scales)

4. 多尺度訓(xùn)練/測(cè)試

1.4 本文的主要工作:

1. 通過實(shí)驗(yàn)驗(yàn)證了upsampling對(duì)于提高小目標(biāo)檢測(cè)的效果

2. 提出了一種Scale Normalization for Image Pyramids的方法

2. 探究性實(shí)驗(yàn)

2.1 分析現(xiàn)存的解決方法淺層小物體, 深層大尺度

例子: SDP, SSH, MS-CNN.

缺點(diǎn): 在淺層預(yù)測(cè)小物體時(shí), 是以犧牲語意抽象性來實(shí)現(xiàn)的.特征融合/特征金字塔

> 盡管Feature Pyramids 有效的綜合了多卷積層特征圖信息,但是對(duì)于very small/large objects 檢測(cè)效果不是很好。

例子: FPN, Mask-RCNN, RetinaNet

缺點(diǎn): 若一個(gè)25x25的物體, 即使融合上采樣x2后也仍然只有50x50. 距離預(yù)訓(xùn)練模型224x224還是有很大差距.多尺度分類問題

> 借由分類模型的實(shí)驗(yàn), 探索檢測(cè)中domain-shift帶來的影響. 檢測(cè)中的Domain-shift主要來自于訓(xùn)練/測(cè)試尺度不匹配:

訓(xùn)練800x1200. 因?yàn)轱@存有所限制, 不能更大了 ,測(cè)試1400x2000. 為了提升小物體檢測(cè)性能

2.2 實(shí)驗(yàn)一

作者在這一步主要探究的是低分辨率圖像+特定的改良網(wǎng)絡(luò)結(jié)構(gòu)是否會(huì)有比較好的效果。

他訓(xùn)練了三個(gè)網(wǎng)絡(luò):

這三個(gè)網(wǎng)絡(luò):CNN-B使用高分辨率圖像訓(xùn)練,分類經(jīng)過降采樣和upsample的圖片

CNN-S使用低分辨率圖像訓(xùn)練,分類經(jīng)過降采樣的圖片

CNN-B-FT使用高分辨率圖像訓(xùn)練,然后在低分辨率圖像上fine-tune,分類經(jīng)過降采樣和upsample的圖片

2.2.1 CNN-B: 原圖訓(xùn)練 / 偽高清測(cè)試

CNN-B是一個(gè)在224x224尺度上訓(xùn)練的模型, 其stride=2. 我們將測(cè)試圖片降采樣到 [48x48, 64x64, 80x80, 96x96,128x128], 然后再放大回224x224用于測(cè)試. 結(jié)果如圖:

結(jié)論: 訓(xùn)/測(cè)尺度(實(shí)際上是清晰度)差距越大, 性能跌的越厲害. 因?yàn)椴挥门c訓(xùn)練尺度相互匹配的尺度進(jìn)行測(cè)試, 會(huì)使得模型一直在sub-optimal發(fā)揮.

2.2.2 CNN-S: 低清訓(xùn)練 / 低清測(cè)試

CNN-S是根據(jù)上述原則, 我們做一個(gè)訓(xùn)/測(cè)尺度匹配的實(shí)驗(yàn). 選取48x48作為訓(xùn)/測(cè)尺度. 并且stride=1, 因?yàn)槿绻恍薷膕tride的話很容易就卷沒了. 模型架構(gòu)變了, 于是針對(duì)與上文CNN-S的可比較性問題, 作者說:

> After-all, network architectures which obtain best performance on CIFAR10 [17] (which contains small objects) are different from ImageNet.

根據(jù)結(jié)果看到, 訓(xùn)/測(cè)尺度匹配后, 性能大幅提升. 同樣將48換成96也得到一致的結(jié)果.

2.2.3 CNN-B-FT: 原圖訓(xùn)練, 偽高清微調(diào) / 偽高清測(cè)試

我們很容易想到的另一種方法就是, 為了在偽高清尺度測(cè)試, 我們就把由原圖訓(xùn)練的CNN-B用偽高清去做微調(diào). 最終CNN-B-FT的結(jié)果甚至好于CNN-S.

2.2.4 分析與結(jié)論

本質(zhì)上,其實(shí)三個(gè)網(wǎng)絡(luò)都是在對(duì)小目標(biāo)進(jìn)行分類,不過CNN-S因?yàn)楸旧砭W(wǎng)絡(luò)結(jié)構(gòu)就不同,輸入比較小,不需要經(jīng)過upsample。最后結(jié)果,CNN-B-FT準(zhǔn)確率最高,CNN-S其次,作者認(rèn)為這是因?yàn)槟P蛷母叻直媛蕡D像中得到了充分的學(xué)習(xí)。

這就說明了,訓(xùn)練樣本和輸入樣本如果分辨率存在太大誤差,performance必然下降。與其為了小目標(biāo)而專門使用改變網(wǎng)絡(luò)結(jié)構(gòu)(CNN-S),直接upsample和使用高分辨率圖像預(yù)訓(xùn)練得到的模型是更好的選擇(CNN-B-FT)。

可以這樣理解作者的三個(gè)實(shí)驗(yàn):ImageNet物體大、分辨率高,而COCO目標(biāo)都很小,直接遷移會(huì)有問題,作者在試圖探究如何進(jìn)行遷移。降采樣后的小圖像數(shù)據(jù)集其實(shí)對(duì)應(yīng)的是COCO數(shù)據(jù)集普遍存在的小目標(biāo)的情況,試圖模仿COCO數(shù)據(jù)集。因此三個(gè)網(wǎng)絡(luò)的含義應(yīng)該是:CNN-B,ImageNet預(yù)訓(xùn)練后的參數(shù)直接用來給COCO這種分辨率低的數(shù)據(jù)集用;CNN-S,不用ImageNet這種高分辨率的數(shù)據(jù)集做訓(xùn)練,我把網(wǎng)絡(luò)就設(shè)置成適合COCO這類數(shù)據(jù)集的,訓(xùn)練和測(cè)試都用分辨率低的數(shù)據(jù)集;CNN-B-FT,ImageNet人家都訓(xùn)練好了,不用白不用,但是用之前,先用低分辨率數(shù)據(jù)集做一下fine-tune改良效果。

從CNN-B-FT的實(shí)驗(yàn)可以得出:在高清訓(xùn)練集學(xué)出來的模型依然有辦法在低清晰度的圖片上做預(yù)測(cè). 直接用低清晰度圖片微調(diào)好過將stride降低重新訓(xùn)練一個(gè)網(wǎng)絡(luò)推廣到目標(biāo)檢測(cè)上, 當(dāng)尺度不同時(shí), 我們可以選擇更換在ImageNet上pre-trained網(wǎng)絡(luò)架構(gòu).

2.3 實(shí)驗(yàn)二,分析尺度變化

這個(gè)是只檢測(cè)小目標(biāo)的不同檢測(cè)器的mAP值,然后800all和1400all分別是圖像統(tǒng)一resize到短邊為800、1400的大小,然后使用所有樣本進(jìn)行訓(xùn)練的模型;1400<80px是upsample后只用小目標(biāo)進(jìn)行訓(xùn)練的模型……而MST是隨機(jī)在低分辨率和高分辨率之間采樣進(jìn)行訓(xùn)練的模型

作者通過這個(gè)實(shí)驗(yàn)說明如下:upsample確實(shí)一定程度上可以提高性能,但是并不顯著,這是因?yàn)閁psample提高了小目標(biāo)的檢測(cè)效果,但會(huì)讓本來正常大小或者本來就大的目標(biāo)過大,性能下降。

訓(xùn)練網(wǎng)絡(luò)需要使用所有樣本,樣本損失會(huì)導(dǎo)致性能下降

隨機(jī)在分辨率之間采樣的效果也不好,雖然你的樣本滿足了多尺度條件,但是還有其它原因限制了性能。

2.3.2 總結(jié)

這是因?yàn)镃NN網(wǎng)絡(luò)沒有尺度不變形,沒有把scale這個(gè)隱藏變量學(xué)習(xí)到的機(jī)制,只能通過大量參數(shù)來強(qiáng)行記憶不同scale的物體。

3.IPN與SNIP

作者的主要思路就是在訓(xùn)練和反向傳播更新參數(shù)時(shí),只考慮哪些在指定的尺度范圍內(nèi)的目標(biāo),由此提出了一種特別的多尺度訓(xùn)練方法,即SNIP(Scale Normalization for Image Pyramids)。SNIP是MST的升級(jí)版. 只有當(dāng)這個(gè)物體的尺度與預(yù)訓(xùn)練數(shù)據(jù)集的尺度(通常224x224)接近時(shí), 我們才把它用來做檢測(cè)器的訓(xùn)練樣本.

還基于一個(gè)假設(shè), 即不同尺度的物體, 因?yàn)槎喑叨扔?xùn)練, 總有機(jī)會(huì)落在一個(gè)合理的尺度范圍內(nèi). 只有這部分合理尺度的物體參與了訓(xùn)練, 剩余部分在BP的時(shí)候被忽略了

作者在訓(xùn)練時(shí)劃分了三個(gè)尺度,對(duì)應(yīng)三種不同分辨率的圖像。每個(gè)分辨率i下的RoI都有其指定范圍,如果gt的box大小在這個(gè)范圍內(nèi),就被標(biāo)記做valid,否則就被標(biāo)記為invalid。

在生成Anchor并給Anchor分配label的時(shí)候,檢查該Anchor是否和某個(gè)invalid gt box的overlap超過0.3,若存在,則該Anchor會(huì)被視作invalid Anchor;若不存在,則會(huì)被視作valid Anchor……這些invalie anchor在train的時(shí)候都會(huì)被無效化,也不會(huì)加入到反向傳播的過程中從而對(duì)參數(shù)產(chǎn)生影響,相當(dāng)于在每個(gè)分辨率上,只對(duì)大小合適的目標(biāo)進(jìn)行訓(xùn)練,這就符合了作者設(shè)計(jì)的初衷。相應(yīng)的,在inference時(shí)候,如果區(qū)域面積在那個(gè)分辨率的指定范圍外,也同樣會(huì)被拋棄,最后,再進(jìn)行rescale和NMS……

思想很簡(jiǎn)單,但是效果很好,實(shí)現(xiàn)起來要考慮的因素還是比較多的:

1. 作者使用的是Deformable RFCN detector而不是常見的一般卷積,當(dāng)然受制于實(shí)驗(yàn)自身,需要作出一定的改變。

2. 作者使用的網(wǎng)絡(luò)結(jié)構(gòu)是Dual path networks(DPN)和ResNet-101,由于需要內(nèi)存很大,為了適應(yīng)GPU內(nèi)存,作者對(duì)圖像進(jìn)行了采樣,具體方法是選取一個(gè)1000x1000的包含最多目標(biāo)的區(qū)域作為子圖像,然后重復(fù)該步驟直到所有目標(biāo)都被選取

3. 作者為了提升RPN的效果,嘗試了使用7個(gè)尺度,連接conv4和conv5的輸出等等;當(dāng)然還有其他一些設(shè)置,這里就不詳細(xì)提了.

總結(jié)

以上是生活随笔為你收集整理的python中的snip用法_简单说说SNIP的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。