检测到目标服务器启用了trace方法_综述:目标检测中的多尺度检测方法
生活随笔
收集整理的這篇文章主要介紹了
检测到目标服务器启用了trace方法_综述:目标检测中的多尺度检测方法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
↑ 點(diǎn)擊藍(lán)字?關(guān)注極市平臺(tái)作者丨SFXiang來(lái)源丨AI算法修煉營(yíng)編輯丨極市平臺(tái)
極市導(dǎo)讀
?本文從降低下采樣率與空洞卷積、多尺度訓(xùn)練、優(yōu)化Anchor尺寸設(shè)計(jì)、深層和淺層特征融合等多個(gè)方面入手,對(duì)目標(biāo)檢測(cè)中的多尺度檢測(cè)方法進(jìn)行了全面概述,并介紹了多尺度檢測(cè)相關(guān)方法。
前面的話
傳統(tǒng)卷積網(wǎng)絡(luò)通常采用從上到下的單行結(jié)構(gòu)。對(duì)于大物體而言,其語(yǔ)義信息將出現(xiàn)在較深的特征圖中;而對(duì)于小物體,其語(yǔ)義信息出現(xiàn)在較淺的特征圖中,隨著網(wǎng)絡(luò)的加深,其細(xì)節(jié)信息可能會(huì)完全消失。多尺度檢測(cè)也是當(dāng)今物體檢測(cè)領(lǐng)域最為活躍的研究主題之一,本文主要介紹:多尺度檢測(cè)。多尺度是目標(biāo)檢測(cè)與圖像分類兩個(gè)任務(wù)的一大區(qū)別。分類問題通常針對(duì)同一種尺度,如ImageNet中的224大小;而目標(biāo)檢測(cè)中,模型需要對(duì)不同尺度的物體都能檢測(cè)出來(lái),這要求模型對(duì)于尺度要具有魯棒性。在多尺度的物體中,大尺度的物體由于面積大、特征豐富,通常來(lái)講較為容易檢測(cè)。難度較大的主要是小尺度的物體,而這部分小物體在實(shí)際工程中卻占據(jù)了較大的比例。通常認(rèn)為絕對(duì)尺寸小于32×32的物體,可以視為小物體或者物體寬高是原圖寬高的1/10以下,可以視為小物體。小物體由于其尺寸較小,可利用的特征有限,這使得其檢測(cè)較為困難。當(dāng)前的檢測(cè)算法對(duì)于小物體并不友好,體現(xiàn)在以下4個(gè)方面:
1、過大的下采樣率:假設(shè)當(dāng)前小物體尺寸為15×15,一般的物體檢測(cè)中卷積下采樣率為16,這樣在特征圖上,過大的下采樣率使得小物體連一個(gè)像素點(diǎn)都占據(jù)不到。2、過大的感受野:在卷積網(wǎng)絡(luò)中,特征圖上特征點(diǎn)的感受野比下采樣率大很多,導(dǎo)致在特征圖上的一個(gè)點(diǎn)中,小物體占據(jù)的特征更少,會(huì)包含大量周圍區(qū)域的特征,從而影響其檢測(cè)結(jié)果。?3、語(yǔ)義與空間的矛盾:當(dāng)前檢測(cè)算法,如Faster RCNN,其Backbone大都是自上到下的方式,深層與淺層特征圖在語(yǔ)義性與空間性上沒有做到更好的均衡。?4、SSD一階算法缺乏特征融合:SSD雖然使用了多層特征圖,但淺層的特征圖語(yǔ)義信息不足,沒有進(jìn)行特征的融合,致使小物體檢測(cè)的結(jié)果較差。多尺度的檢測(cè)能力實(shí)際上體現(xiàn)了尺度的不變性,當(dāng)前的卷積網(wǎng)絡(luò)能夠檢測(cè)多種尺度的物體,很大程度上是由于其本身具有超強(qiáng)的擬合能力。較為通用的提升多尺度檢測(cè)的經(jīng)典方法有:降低下采樣率與空洞卷積可以顯著提升小物體的檢測(cè)性能;設(shè)計(jì)更好的Anchor可以有效提升Proposal的質(zhì)量;多尺度的訓(xùn)練可以近似構(gòu)建出圖像金字塔,增加樣本的多樣性;特征融合可以構(gòu)建出特征金字塔,將淺層與深層特征的優(yōu)勢(shì)互補(bǔ)。下面將詳細(xì)介紹:1?降低下采樣率與空洞卷積
對(duì)于小物體檢測(cè)而言,降低網(wǎng)絡(luò)的下采樣率通常的做法是直接去除掉Pooling層。例如,將原始的VGGNet-16作為物體檢測(cè)的Backbone時(shí),通常是將第5個(gè)Pooling層之前的特征圖作為輸出的特征圖,一共擁有4個(gè)Pooling層,這時(shí)下采樣率為16。為了降低下采樣率,我們可以將第4個(gè)Pooling層去掉,使得下采樣率變?yōu)?,減少了小物體在特征圖上的信息損失。但是,如果僅僅去除掉Pooling層,則會(huì)減小后續(xù)層的感受野。如果使用預(yù)訓(xùn)練模型進(jìn)行微調(diào)(Fine-tune),則僅去除掉Pooling層會(huì)使得后續(xù)層感受野與預(yù)訓(xùn)練模型對(duì)應(yīng)層的感受野不同,從而導(dǎo)致不能很好地收斂。因此,需要在去除Pooling的前提下增加后續(xù)層的感受野,使用空洞卷積可以在保證不改變網(wǎng)絡(luò)分辨率的前提下增加網(wǎng)絡(luò)的感受野。需要注意的是,采用空洞卷積也不能保證修改后與修改前的感受野完全相同,但能夠最大限度地使感受野在可接受的誤差內(nèi)。2 多尺度訓(xùn)練?
多尺度類似于數(shù)字圖像處理中的圖像金字塔,即將輸入圖片縮放到多個(gè)尺度下,每一個(gè)尺度單獨(dú)地計(jì)算特征圖,并進(jìn)行后續(xù)的檢測(cè)。這種方式雖然一定程度上可以提升檢測(cè)精度,但由于多個(gè)尺度完全并行,耗時(shí)巨大。多尺度訓(xùn)練(Multi Scale Training, MST)通常是指設(shè)置幾種不同的圖片輸入尺度,訓(xùn)練時(shí)從多個(gè)尺度中隨機(jī)選取一種尺度,將輸入圖片縮放到該尺度并送入網(wǎng)絡(luò)中,是一種簡(jiǎn)單又有效的提升多尺度物體檢測(cè)的方法。雖然一次迭代時(shí)都是單一尺度的,但每次都各不相同,增加了網(wǎng)絡(luò)的魯棒性,又不至于增加過多的計(jì)算量。而在測(cè)試時(shí),為了得到更為精準(zhǔn)的檢測(cè)結(jié)果,也可以將測(cè)試圖片的尺度放大,例如放大4倍,這樣可以避免過多的小物體。多尺度訓(xùn)練是一種十分有效的trick方法,放大了小物體的尺度,同時(shí)增加了多尺度物體的多樣性,在多個(gè)檢測(cè)算法中都可以直接嵌入,在不要求速度的場(chǎng)合或者各大物體檢測(cè)競(jìng)賽中尤為常見。3?優(yōu)化Anchor尺寸設(shè)計(jì)
現(xiàn)今較為成熟的檢測(cè)算法大都采用Anchor作為先驗(yàn)框,如Faster RCNN和SSD等。模型在Anchor的基礎(chǔ)上只需要去預(yù)測(cè)其與真實(shí)物體邊框的偏移即可,可以說(shuō)是物體檢測(cè)算法發(fā)展中的一個(gè)相當(dāng)經(jīng)典的設(shè)計(jì)。Anchor通常是多個(gè)不同大小與寬高的邊框,這個(gè)大小與寬高是一組超參數(shù),需要我們手動(dòng)配置。在不同的數(shù)據(jù)集與任務(wù)中,由于物體的尺度、大小會(huì)有差距,例如行人檢測(cè)的數(shù)據(jù)集中,行人標(biāo)簽寬高比通常為0.41,與通用物體的標(biāo)簽會(huì)有所區(qū)別,這時(shí)就需要相應(yīng)地調(diào)整Anchor的大小與寬高。如果Anchor設(shè)計(jì)的不合理,與數(shù)據(jù)集中的物體分布存在差距,則會(huì)給模型收斂帶來(lái)較大的困難,影響模型的精度,甚至不會(huì)收斂。另外,Anchor的設(shè)計(jì)對(duì)于小物體的檢測(cè)也尤為重要,如果Anchor過大,即使小物體全部在Anchor內(nèi),也會(huì)因?yàn)槠渥陨砻娣e小導(dǎo)致IoU低,從而造成漏檢。通常來(lái)講,可以從以下兩個(gè)角度考慮如何設(shè)計(jì)一組好的Anchor。1.?? 統(tǒng)計(jì)實(shí)驗(yàn),手工設(shè)計(jì)在Faster RCNN的RPN階段,所有Anchor會(huì)與真實(shí)標(biāo)簽進(jìn)行匹配,根據(jù)匹配的IoU值得到正樣本與負(fù)樣本,正樣本的IoU閾值為0.7。在這個(gè)過程中,Anchor與真實(shí)標(biāo)簽越接近,正樣本的IoU會(huì)更高,RPN階段對(duì)于真實(shí)標(biāo)簽的召回率會(huì)越高,正樣本也會(huì)更豐富,模型效果會(huì)更好。因此,可以僅僅利用訓(xùn)練集的標(biāo)簽與設(shè)計(jì)的Anchor進(jìn)行匹配試驗(yàn),試驗(yàn)的指標(biāo)是所有訓(xùn)練標(biāo)簽的召回率,以及正樣本的平均IoU值。當(dāng)然,也可以增加每個(gè)標(biāo)簽的正樣本數(shù)、標(biāo)簽的最大IoU等作為輔助指標(biāo)。為了方便地匹配,在此不考慮Anchor與標(biāo)簽的位置偏移,而是把兩者的中心點(diǎn)放在一起,僅僅利用其寬高信息進(jìn)行匹配。這種統(tǒng)計(jì)實(shí)驗(yàn)實(shí)際是通過手工設(shè)計(jì)的方式,尋找與標(biāo)簽寬高分布最為一致的一組Anchor。2.邊框聚類相比起手工尋找標(biāo)簽的寬高分布,也可以利用聚類的思想,在訓(xùn)練集的標(biāo)簽上直接聚類出一組合適的Anchor。由于一組Anchor會(huì)出現(xiàn)在特征圖的每一個(gè)位置上,因此沒有位置區(qū)別,可以只關(guān)注標(biāo)簽里的物體寬高,而沒必要關(guān)心物體出現(xiàn)的位置。邊框聚類時(shí)通常使用K-Means算法,這也是YOLO采用的Anchor聚類方法。K-Means算法輸入超參數(shù)K,即最終想要獲得的邊框數(shù)量,首先隨機(jī)選取K個(gè)中心點(diǎn),然后遍歷所有的數(shù)據(jù),并將所有的邊框劃分到最近的中心點(diǎn)中。在每個(gè)邊框都落到不同的聚類后,計(jì)算每一個(gè)聚類的平均值,并將此平均值作為新的中心點(diǎn)。重復(fù)上述過程,直到算法收斂。在聚類過程中,Anchor的數(shù)量K是一個(gè)較為重要的超參,數(shù)量越多,精度越高,但與此同時(shí)會(huì)帶來(lái)計(jì)算量的增加。對(duì)于使用Anchor的物體檢測(cè)算法而言,設(shè)計(jì)一組好的Anchor是基礎(chǔ),這對(duì)于多尺度、擁擠等問題都有較大的幫助。4 深層和淺層特征融合
傳統(tǒng)的卷積網(wǎng)絡(luò)通常是自上而下的模式,隨著網(wǎng)絡(luò)層數(shù)的增加,感受野會(huì)增大,語(yǔ)義信息也更為豐富。這種自上而下的結(jié)構(gòu)本身對(duì)于多尺度的物體檢測(cè)就存在弊端,尤其是小物體,其特征可能會(huì)隨著深度的增加而漸漸丟失,從而導(dǎo)致檢測(cè)性能的降低??梢詫⑸顚拥恼Z(yǔ)義信息添加到淺層的特征圖中,融合兩者的特征,優(yōu)勢(shì)互補(bǔ),從而提升對(duì)于小物體的檢測(cè)性能。特征融合有多種方式,增大特征圖尺寸可以使用上采樣、反卷積等,融合方法有逐元素相加、相乘和通道拼接等,具體哪種效果更好,還要看實(shí)際的檢測(cè)任務(wù)及使用的檢測(cè)算法。特征融合的普遍缺點(diǎn)是通常會(huì)帶來(lái)一定計(jì)算量的增加。特征融合方法示例:1. FPN(Feature Pyramid Network)將深層信息上采樣,與淺層信息逐元素地相加,從而構(gòu)建了尺寸不同的特征金字塔結(jié)構(gòu),性能優(yōu)越,現(xiàn)已成為目標(biāo)檢測(cè)算法的一個(gè)標(biāo)準(zhǔn)組件。FPN的結(jié)構(gòu)如下所示。自下而上:最左側(cè)為普通的卷積網(wǎng)絡(luò),默認(rèn)使用ResNet結(jié)構(gòu),用作提取語(yǔ)義信息。C1代表了ResNet的前幾個(gè)卷積與池化層,而C2至C5分別為不同的ResNet卷積組,這些卷積組包含了多個(gè)Bottleneck結(jié)構(gòu),組內(nèi)的特征圖大小相同,組間大小遞減。自上而下:首先對(duì)C5進(jìn)行1×1卷積降低通道數(shù)得到P5,然后依次進(jìn)行上采樣得到P4、P3和P2,目的是得到與C4、C3與C2長(zhǎng)寬相同的特征,以方便下一步進(jìn)行逐元素相加。這里采用2倍最鄰近上采樣,即直接對(duì)臨近元素進(jìn)行復(fù)制,而非線性插值。橫向連接(Lateral Connection):目的是為了將上采樣后的高語(yǔ)義特征與淺層的定位細(xì)節(jié)特征進(jìn)行融合。高語(yǔ)義特征經(jīng)過上采樣后,其長(zhǎng)寬與對(duì)應(yīng)的淺層特征相同,而通道數(shù)固定為256,因此需要對(duì)底層特征C2至C4進(jìn)行11卷積使得其通道數(shù)變?yōu)?56,然后兩者進(jìn)行逐元素相加得到P4、P3與P2。由于C1的特征圖尺寸較大且語(yǔ)義信息不足,因此沒有把C1放到橫向連接中。卷積融合:在得到相加后的特征后,利用3×3卷積對(duì)生成的P2至P4再進(jìn)行融合,目的是消除上采樣過程帶來(lái)的重疊效應(yīng),以生成最終的特征圖。FPN對(duì)于不同大小的RoI,使用不同的特征圖,大尺度的RoI在深層的特征圖上進(jìn)行提取,如P5,小尺度的RoI在淺層的特征圖上進(jìn)行提取,如P2。FPN的代碼實(shí)現(xiàn)如下:import torch.nn as nnimport torch.nn.functional as Fimport mathclass Bottleneck(nn.Module): expansion = 4 def __init__(self, in_planes, planes, stride=1, downsample=None): super(Bottleneck, self).__init__() self.bottleneck = nn.Sequential( nn.Conv2d(in_planes, planes, 1, bias=False), nn.BatchNorm2d(planes), nn.ReLU(inplace=True), nn.Conv2d(planes, planes, 3, stride, 1, bias=False), nn.BatchNorm2d(planes), nn.ReLU(inplace=True), nn.Conv2d(planes, self.expansion * planes, 1, bias=False), nn.BatchNorm2d(self.expansion * planes), ) self.relu = nn.ReLU(inplace=True) self.downsample = downsample def forward(self, x): identity = x out = self.bottleneck(x) if self.downsample is not None: identity = self.downsample(x) out += identity out = self.relu(out) return outclass FPN(nn.Module): def __init__(self, layers): super(FPN, self).__init__() self.inplanes = 64 self.conv1 = nn.Conv2d(3, 64, 7, 2, 3, bias=False) self.bn1 = nn.BatchNorm2d(64) self.relu = nn.ReLU(inplace=True) self.maxpool = nn.MaxPool2d(3, 2, 1) self.layer1 = self._make_layer(64, layers[0]) self.layer2 = self._make_layer(128, layers[1], 2) self.layer3 = self._make_layer(256, layers[2], 2) self.layer4 = self._make_layer(512, layers[3], 2) self.toplayer = nn.Conv2d(2048, 256, 1, 1, 0) self.smooth1 = nn.Conv2d(256, 256, 3, 1, 1) self.smooth2 = nn.Conv2d(256, 256, 3, 1, 1) self.smooth3 = nn.Conv2d(256, 256, 3, 1, 1) self.latlayer1 = nn.Conv2d(1024, 256, 1, 1, 0) self.latlayer2 = nn.Conv2d( 512, 256, 1, 1, 0) self.latlayer3 = nn.Conv2d( 256, 256, 1, 1, 0) def _make_layer(self, planes, blocks, stride=1): downsample = None if stride != 1 or self.inplanes != Bottleneck.expansion * planes: downsample = nn.Sequential( nn.Conv2d(self.inplanes, Bottleneck.expansion * planes, 1, stride, bias=False), nn.BatchNorm2d(Bottleneck.expansion * planes) ) layers = [] layers.append(Bottleneck(self.inplanes, planes, stride, downsample)) self.inplanes = planes * Bottleneck.expansion for i in range(1, blocks): layers.append(Bottleneck(self.inplanes, planes)) return nn.Sequential(*layers) def _upsample_add(self, x, y): _,_,H,W = y.shape return F.upsample(x, size=(H,W), mode='bilinear') + y def forward(self, x): c1 = self.maxpool(self.relu(self.bn1(self.conv1(x)))) c2 = self.layer1(c1) c3 = self.layer2(c2) c4 = self.layer3(c3) c5 = self.layer4(c4) p5 = self.toplayer(c5) p4 = self._upsample_add(p5, self.latlayer1(c4)) p3 = self._upsample_add(p4, self.latlayer2(c3)) p2 = self._upsample_add(p3, self.latlayer3(c2)) p4 = self.smooth1(p4) p3 = self.smooth2(p3) p2 = self.smooth3(p2)????????return?p2,?p3,?p4,?p52. DetNet:專為目標(biāo)檢測(cè)而生的Backbone,利用空洞卷積與殘差結(jié)構(gòu),使得多個(gè)融合后的特征圖尺寸相同,從而也避免了上采樣操作。3. Faster RCNN系列中,HyperNet將第1、3、5個(gè)卷積組后得到的特征圖進(jìn)行融合,淺層的特征進(jìn)行池化、深層的特征進(jìn)行反卷積,最終采用通道拼接的方式進(jìn)行融合,優(yōu)勢(shì)互補(bǔ)。4. SSD系列中,DSSD在SSD的基礎(chǔ)上,對(duì)深層特征圖進(jìn)行反卷積,與淺層的特征相乘,得到了更優(yōu)的多層特征圖,這對(duì)于小物體的檢測(cè)十分有利。5.?RefineDet將SSD的多層特征圖結(jié)構(gòu)作為了Faster RCNN的RPN網(wǎng)絡(luò),結(jié)合了兩者的優(yōu)點(diǎn)。特征圖處理上與FPN類似,利用反卷積與逐元素相加,將深層特征圖與淺層的特征圖進(jìn)行結(jié)合,實(shí)現(xiàn)了一個(gè)十分精巧的檢測(cè)網(wǎng)絡(luò)。6. YOLO系列中,YOLO v3也使用了特征融合的思想,通過上采樣與通道拼接的方式,最終輸出了3種尺寸的特征圖。5?SNIP:尺度歸一化
論文地址:
https://arxiv.org/abs/1711.08189
代碼地址:https://github.com/mahyarnajibi/SNIPER當(dāng)前的物體檢測(cè)算法通常使用微調(diào)的方法,即先在ImageNet數(shù)據(jù)集上訓(xùn)練分類任務(wù),然后再遷移到物體檢測(cè)的數(shù)據(jù)集上,如COCO來(lái)訓(xùn)練檢測(cè)任務(wù)。我們可以將ImageNet的分類任務(wù)看做224×224的尺度,而COCO中的物體尺度大部分在幾十像素的范圍內(nèi),并且包含大量小物體,物體尺度差距更大,因此兩者的樣本差距太大,會(huì)導(dǎo)致映射遷移(Domain Shift)的誤差。SNIP是多尺度訓(xùn)練(Multi-Scale Training)的改進(jìn)版本。MST的思想是使用隨機(jī)采樣的多分辨率圖像使檢測(cè)器具有尺度不變特性。然而作者通過實(shí)驗(yàn)發(fā)現(xiàn),在MST中,對(duì)于極大目標(biāo)和過小目標(biāo)的檢測(cè)效果并不好,但是MST也有一些優(yōu)點(diǎn),比如對(duì)一張圖片會(huì)有幾種不同分辨率,每個(gè)目標(biāo)在訓(xùn)練時(shí)都會(huì)有幾個(gè)不同的尺寸,那么總有一個(gè)尺寸在指定的尺寸范圍內(nèi)。SNIP的做法是只對(duì)size在指定范圍內(nèi)的目標(biāo)回傳損失,即訓(xùn)練過程實(shí)際上只是針對(duì)某些特定目標(biāo)進(jìn)行,這樣就能減少domain-shift帶來(lái)的影響。SNIP的網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示:具體的實(shí)現(xiàn)細(xì)節(jié)(1)3個(gè)尺度分別擁有各自的RPN模塊,并且各自預(yù)測(cè)指定范圍內(nèi)的物體。(2)對(duì)于大尺度的特征圖,其RPN只負(fù)責(zé)預(yù)測(cè)被放大的小物體,對(duì)于小尺度的特征圖,其RPN只負(fù)責(zé)預(yù)測(cè)被縮小的大物體,這樣真實(shí)的物體尺度分布在較小的區(qū)間內(nèi),避免了極大或者極小的物體。(3)在RPN階段,如果真實(shí)物體不在該RPN預(yù)測(cè)范圍內(nèi),會(huì)被判定為無(wú)效,并且與該無(wú)效物體的IoU大于0.3的Anchor也被判定為無(wú)效的Anchor。(4)在訓(xùn)練時(shí),只對(duì)有效的Proposal進(jìn)行反向傳播。在測(cè)試階段,對(duì)有效的預(yù)測(cè)Boxes先縮放到原圖尺度,利用Soft NMS將不同分辨率的預(yù)測(cè)結(jié)果合并。(5)實(shí)現(xiàn)時(shí)SNIP采用了可變形卷積的卷積方式,并且為了降低對(duì)于GPU的占用,將原圖隨機(jī)裁剪為1000×1000大小的圖像。總體來(lái)說(shuō),SNIP讓模型更專注于物體本身的檢測(cè),剝離了多尺度的學(xué)習(xí)難題。在網(wǎng)絡(luò)搭建時(shí),SNIP也使用了類似于MST的多尺度訓(xùn)練方法,構(gòu)建了3個(gè)尺度的圖像金字塔,但在訓(xùn)練時(shí),只對(duì)指定范圍內(nèi)的Proposal進(jìn)行反向傳播,而忽略掉過大或者過小的Proposal。SNIP方法雖然實(shí)現(xiàn)簡(jiǎn)單,但其背后卻蘊(yùn)藏深意,更深入地分析了當(dāng)前檢測(cè)算法在多尺度檢測(cè)上的問題所在,在訓(xùn)練時(shí)只選擇在一定尺度范圍內(nèi)的物體進(jìn)行學(xué)習(xí),在COCO數(shù)據(jù)集上有3%的檢測(cè)精度提升,可謂是大道至簡(jiǎn)。6 TridentNet:三叉戟網(wǎng)絡(luò)
論文地址:https://arxiv.org/abs/1901.01892代碼地址:https://github.com/TuSimple/simpledet/tree/master/models/tridentnet傳統(tǒng)的解決多尺度檢測(cè)的算法,大都依賴于圖像金字塔與特征金字塔。與上述算法不同,圖森組對(duì)感受野這一因素進(jìn)行了深入的分析,并利用了空洞卷積這一利器,構(gòu)建了簡(jiǎn)單的三分支網(wǎng)絡(luò)TridentNet,對(duì)于多尺度物體的檢測(cè)有了明顯的精度提升。TridentNet網(wǎng)絡(luò)的作者將3種不同的感受野網(wǎng)絡(luò)并行化,提出了如下圖所示的檢測(cè)框架。采用ResNet作為基礎(chǔ)Backbone,前三個(gè)stage沿用原始的結(jié)構(gòu),在第四個(gè)stage,使用了三個(gè)感受野不同的并行網(wǎng)絡(luò)。具體實(shí)現(xiàn)細(xì)節(jié)(1)3個(gè)不同的分支使用了空洞數(shù)不同的空洞卷積,感受野由小到大,可以更好地覆蓋多尺度的物體分布。(2)由于3個(gè)分支要檢測(cè)的內(nèi)容是相同的、要學(xué)習(xí)的特征也是相同的,只不過是形成了不同的感受野來(lái)檢測(cè)不同尺度的物體,因此,3個(gè)分支共享權(quán)重,這樣既充分利用了樣本信息,學(xué)習(xí)到更本質(zhì)的目標(biāo)檢測(cè)信息,也減少了參數(shù)量與過擬合的風(fēng)險(xiǎn)。(3)借鑒了SNIP的思想,在每一個(gè)分支內(nèi)只訓(xùn)練一定范圍內(nèi)的樣本,避免了過大與過小的樣本對(duì)于網(wǎng)絡(luò)參數(shù)的影響。在訓(xùn)練時(shí),TridentNet網(wǎng)絡(luò)的三個(gè)分支會(huì)接入三個(gè)不同的head網(wǎng)絡(luò)進(jìn)行后續(xù)損失計(jì)算。在測(cè)試時(shí),由于沒有先驗(yàn)的標(biāo)簽來(lái)選擇不同的分支,因此只保留了一個(gè)分支進(jìn)行前向計(jì)算,這種前向方法只有少量的精度損失。具體細(xì)節(jié)可以參考論文。參考資料1.深度學(xué)習(xí)之PyTorch物體檢測(cè)實(shí)戰(zhàn) 董洪義2.https://link.zhihu.com/?target=https%3A//arxiv.org/abs/1901.018923.https://zhuanlan.zhihu.com/p/744156024.https://zhuanlan.zhihu.com/p/61536443推薦閱讀
無(wú)痛漲點(diǎn):目標(biāo)檢測(cè)優(yōu)化的實(shí)用Trick
綜述:目標(biāo)檢測(cè)二十年
總結(jié)目標(biāo)檢測(cè)匹配策略與改進(jìn)思路
總結(jié)
以上是生活随笔為你收集整理的检测到目标服务器启用了trace方法_综述:目标检测中的多尺度检测方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我想看基金27005_宅家变富,你知道如
- 下一篇: 按周选择的时间控件_基金定投到底是选择按