一位算法工程师从30+场秋招面试中总结出的超强面经——目标检测篇(含答案)
作者丨燈會(huì)
來(lái)源丨極市平臺(tái)
編輯丨極市平臺(tái)
本文為極市平臺(tái)原創(chuàng),轉(zhuǎn)載須經(jīng)授權(quán)并注明來(lái)源
作者燈會(huì)為21屆中部985研究生,七月份將入職某互聯(lián)網(wǎng)大廠cv算法工程師。在去年灰飛煙滅的算法求職季中,經(jīng)過(guò)幾十場(chǎng)不同公司以及不同部門(mén)的面試中積累出了CV總復(fù)習(xí)系列,此為目標(biāo)檢測(cè)篇。
Faster-Rcnn網(wǎng)絡(luò)
1.faster RCNN原理介紹,要詳細(xì)畫(huà)出圖
? Faster R-CNN是一種兩階段(two-stage)方法,它提出的RPN網(wǎng)絡(luò)取代了選擇性搜索(Selective search)算法后使檢測(cè)任務(wù)可以由神經(jīng)網(wǎng)絡(luò)端到端地完成。在結(jié)構(gòu)上,Faster RCNN將特征抽取(feature extraction),候選區(qū)域提取(Region proposal提取),邊框回歸(bounding box regression),分類(lèi)(classification)都整合在了一個(gè)網(wǎng)絡(luò)中,使得綜合性能有較大提高,在檢測(cè)速度方面尤為明顯。
2.RPN(Region Proposal Network)網(wǎng)絡(luò)的作用、實(shí)現(xiàn)細(xì)節(jié)
RPN網(wǎng)絡(luò)的作用: RPN專(zhuān)門(mén)用來(lái)提取候選框,一方面RPN耗時(shí)少,另一方面RPN可以很容易結(jié)合到Fast RCNN中,成為一個(gè)整體。
RPN網(wǎng)絡(luò)的實(shí)現(xiàn)細(xì)節(jié):一個(gè)特征圖(Faster RCNN的公共Feature Map)經(jīng)過(guò)sliding window處理,得到256維特征,對(duì)每個(gè)特征向量做兩次全連接操作,一個(gè)得到2個(gè)分?jǐn)?shù),一個(gè)得到4個(gè)坐標(biāo){然后通過(guò)兩次全連接得到結(jié)果2k個(gè)分?jǐn)?shù)和4k個(gè)坐標(biāo)[k指的是由錨點(diǎn)產(chǎn)生的K個(gè)框(K anchor boxes)]}
2個(gè)分?jǐn)?shù),因?yàn)镽PN是提候選框,還不用判斷類(lèi)別,所以只要求區(qū)分是不是物體就行,那么就有兩個(gè)分?jǐn)?shù),前景(物體)的分?jǐn)?shù),和背景的分?jǐn)?shù); 4個(gè)坐標(biāo)是指針對(duì)原圖坐標(biāo)的偏移,首先一定要記住是原圖;
預(yù)先設(shè)定好共有9種組合,所以k等于9,最后我們的結(jié)果是針對(duì)這9種組合的,所以有H x W x 9個(gè)結(jié)果,也就是18個(gè)分?jǐn)?shù)和36個(gè)坐標(biāo)。
寫(xiě)一下RPN的損失函數(shù)(多任務(wù)損失:二分類(lèi)損失+SmoothL1損失)
訓(xùn)練RPN網(wǎng)絡(luò)時(shí),對(duì)于每個(gè)錨點(diǎn)我們定義了一個(gè)二分類(lèi)標(biāo)簽(是該物體或不是)。
以下兩種情況我們視錨點(diǎn)為了一個(gè)正樣本標(biāo)簽時(shí):
1.錨點(diǎn)和錨點(diǎn)們與標(biāo)注之間的最高重疊矩形區(qū)域
2.或者錨點(diǎn)和標(biāo)注的重疊區(qū)域指標(biāo)(IOU)>0.7
L(pi,ti)=1Ncls∑iLcls(pi,pi?)+λ1Nreg∑ipi?Lreg(ti,ti?)L\left(p_{i}, t_{i}\right)=\frac{1}{N_{c l s}} \sum_{i} L_{c l s}\left(p_{i}, p_{i}^{*}\right)+\lambda \frac{1}{N_{r e g}} \sum_{i} p_{i}^{*} L_{r e g}\left(t_{i}, t_{i}^{*}\right) L(pi?,ti?)=Ncls?1?i∑?Lcls?(pi?,pi??)+λNreg?1?i∑?pi??Lreg?(ti?,ti??)
RPN損失中的回歸損失部分輸入變量是怎么計(jì)算的?(注意回歸的不是坐標(biāo)和寬高,而是由它們計(jì)算得到的偏移量)
smooth?L1(x)={0.5x2if?∣x∣<1∣x∣?0.5otherwise?\operatorname{smooth}_{L_{1}}(x)=\left\{\begin{array}{ll} 0.5 x^{2} & \text { if }|x|<1 \\ |x|-0.5 & \text { otherwise } \end{array}\right. smoothL1??(x)={0.5x2∣x∣?0.5??if?∣x∣<1?otherwise??
? ti 和 ti* 分別為網(wǎng)絡(luò)的預(yù)測(cè)值和回歸的目標(biāo)
tx=(x?xa)/wa,ty=(y?ya)/ha,tw=log?(w/wa),th=log?(h/ha)tx?=(x??xa)/wa,ty?=(y??ya)/ha,tw?=log?(w?/wa),th?=log?(h?/ha),\begin{array}{r} t_{x}=\left(x-x_{a}\right) / w_{a}, \quad t_{y}=\left(y-y_{a}\right) / h_{a}, \quad t_{w}=\log \left(w / w_{a}\right), \quad t_{h}=\log \left(h / h_{a}\right) \\ t_{x}^{*}=\left(x^{*}-x_{a}\right) / w_{a}, \quad t_{y}^{*}=\left(y^{*}-y_{a}\right) / h_{a}, \quad t_{w}^{*}=\log \left(w^{*} / w_{a}\right), \quad t_{h}^{*}=\log \left(h^{*} / h_{a}\right), \end{array} tx?=(x?xa?)/wa?,ty?=(y?ya?)/ha?,tw?=log(w/wa?),th?=log(h/ha?)tx??=(x??xa?)/wa?,ty??=(y??ya?)/ha?,tw??=log(w?/wa?),th??=log(h?/ha?),?
? 在訓(xùn)練RPN時(shí)需要準(zhǔn)備好目標(biāo)t*。它是通過(guò)ground-truth box(目標(biāo)真實(shí)box)和anchor box(按一定規(guī)則生成的anchor box)計(jì)算得出的,代表的是ground-truth box與anchor box之間的轉(zhuǎn)化關(guān)系。用這個(gè)來(lái)訓(xùn)練rpn,那么rpn最終學(xué)會(huì)輸出一個(gè)良好的轉(zhuǎn)化關(guān)系t。而這個(gè)t,是predicted box與anchor box之間的轉(zhuǎn)化關(guān)系。通過(guò)這個(gè)t和anchor box,可以計(jì)算出預(yù)測(cè)框box的真實(shí)坐標(biāo)。
RPN中的anchor box是怎么選取的?
滑窗的中心在原像素空間的映射點(diǎn)稱(chēng)為anchor,以此anchor為中心,生成k(paper中default k=9, 3 scales and 3 aspect ratios/不同尺寸和不同長(zhǎng)寬比)個(gè)proposals。三個(gè)面積尺寸(1282,2562,512^2),然后在每個(gè)面積尺寸下,取三種不同的長(zhǎng)寬比例(1:1,1:2,2:1)
為什么提出anchor box?
全文鏈接:CV 面試問(wèn)題詳解寶典–目標(biāo)檢測(cè)篇
推薦大家關(guān)注極市平臺(tái)公眾號(hào),每天都會(huì)更新最新的計(jì)算機(jī)視覺(jué)論文解讀、綜述盤(pán)點(diǎn)、調(diào)參攻略、面試經(jīng)驗(yàn)等干貨~
總結(jié)
以上是生活随笔為你收集整理的一位算法工程师从30+场秋招面试中总结出的超强面经——目标检测篇(含答案)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CVPR2021 论文大盘点:全景分割论
- 下一篇: 重庆邮电大学发布2021年最新小样本目标