【深度学习】一位算法工程师从30+场秋招面试中总结出的超强面经——目标检测篇(含答案)...
? 作者丨燈會(huì)
來源丨極市平臺(tái)
編輯丨極市平臺(tái)
導(dǎo)讀
?作者燈會(huì)為21屆中部985研究生,憑借自己整理的面經(jīng),去年在騰訊優(yōu)圖暑期實(shí)習(xí),七月份將入職百度cv算法工程師。在去年灰飛煙滅的算法求職季中,經(jīng)過30+場(chǎng)不同公司以及不同部門的面試中積累出了CV總復(fù)習(xí)系列,此為目標(biāo)檢測(cè)篇。?
Faster-Rcnn網(wǎng)絡(luò)
1.faster RCNN原理介紹,要詳細(xì)畫出圖
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),分類(classification)都整合在了一個(gè)網(wǎng)絡(luò)中,使得綜合性能有較大提高,在檢測(cè)速度方面尤為明顯。
2.RPN(Region Proposal Network)網(wǎng)絡(luò)的作用、實(shí)現(xiàn)細(xì)節(jié)
RPN網(wǎng)絡(luò)的作用: RPN專門用來提取候選框,一方面RPN耗時(shí)少,另一方面RPN可以很容易結(jié)合到Fast RCNN中,成為一個(gè)整體。
RPN網(wǎng)絡(luò)的實(shí)現(xiàn)細(xì)節(jié):一個(gè)特征圖(Faster RCNN的公共Feature Map)經(jīng)過sliding window處理,得到256維特征,對(duì)每個(gè)特征向量做兩次全連接操作,一個(gè)得到2個(gè)分?jǐn)?shù),一個(gè)得到4個(gè)坐標(biāo){然后通過兩次全連接得到結(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是提候選框,還不用判斷類別,所以只要求區(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)。
寫一下RPN的損失函數(shù)(多任務(wù)損失:二分類損失+SmoothL1損失)
訓(xùn)練RPN網(wǎng)絡(luò)時(shí),對(duì)于每個(gè)錨點(diǎn)我們定義了一個(gè)二分類標(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
RPN損失中的回歸損失部分輸入變量是怎么計(jì)算的?(注意回歸的不是坐標(biāo)和寬高,而是由它們計(jì)算得到的偏移量)
ti 和 ti* 分別為網(wǎng)絡(luò)的預(yù)測(cè)值和回歸的目標(biāo)
在訓(xùn)練RPN時(shí)需要準(zhǔn)備好目標(biāo)t*。它是通過ground-truth box(目標(biāo)真實(shí)box)和anchor box(按一定規(guī)則生成的anchor box)計(jì)算得出的,代表的是ground-truth box與anchor box之間的轉(zhuǎn)化關(guān)系。用這個(gè)來訓(xùn)練rpn,那么rpn最終學(xué)會(huì)輸出一個(gè)良好的轉(zhuǎn)化關(guān)系t。而這個(gè)t,是predicted box與anchor box之間的轉(zhuǎn)化關(guān)系。通過這個(gè)t和anchor box,可以計(jì)算出預(yù)測(cè)框box的真實(shí)坐標(biāo)。
RPN中的anchor box是怎么選取的?
滑窗的中心在原像素空間的映射點(diǎn)稱為anchor,以此anchor為中心,生成k(paper中default k=9, 3 scales and 3 aspect ratios/不同尺寸和不同長寬比)個(gè)proposals。三個(gè)面積尺寸(128^2,256^2,512^2),然后在每個(gè)面積尺寸下,取三種不同的長寬比例(1:1,1:2,2:1)
為什么提出anchor box?
主要有兩個(gè)原因:一個(gè)窗口只能檢測(cè)一個(gè)目標(biāo)、無法解決多尺度問題。
目前anchor box尺寸的選擇主要有三種方式:人為經(jīng)驗(yàn)選取、k-means聚類、作為超參數(shù)進(jìn)行學(xué)習(xí)
為什么使用不同尺寸和不同長寬比? 為了得到更大的交并比(IOU)。
3.說一下RoI Pooling是怎么做的?有什么缺陷?有什么作用
RoI Pooling的過程就是將一個(gè)個(gè)大小不同的box矩形框,都映射成大小固定(w * h)的矩形框
具體操作:(1)根據(jù)輸入image,將ROI映射到feature map對(duì)應(yīng)位置(2)將映射后的區(qū)域劃分為相同大小的ps(ps數(shù)量與輸出的維度相同);(3)對(duì)每個(gè)ps進(jìn)行max pooling操作;
這樣可以從不同大小的方框得到固定大小的相應(yīng)的feature maps。值得一提的是,輸出的feature maps的大小不取決于ROI和卷積feature maps大小。ROI pooling 最大的好處就在于極大地提高了處理速度。(在Pooling的過程中需要計(jì)算Pooling后的結(jié)果對(duì)應(yīng)到feature map上所占的范圍,然后在那個(gè)范圍中進(jìn)行取max或者取average。)
優(yōu)點(diǎn): 1.允許我們對(duì)CNN中的feature map進(jìn)行reuse;2.可以顯著加速training和testing速度;3.允許end-to-end的形式訓(xùn)練目標(biāo)檢測(cè)系統(tǒng)。
缺點(diǎn): 由于 RoIPooling 采用的是最近鄰插值(即INTER_NEAREST) ,在resize時(shí),對(duì)于縮放后坐標(biāo)不能剛好為整數(shù)的情況,采用了粗暴的舍去小數(shù),相當(dāng)于選取離目標(biāo)點(diǎn)最近的點(diǎn),損失一定的空間精度。
兩次整數(shù)化(量化)過程:1.region proposal的xywh通常是小數(shù),但是為了方便操作會(huì)把它整數(shù)化。2.將整數(shù)化后的邊界區(qū)域平均分割成 k x k 個(gè)單元,對(duì)每一個(gè)單元邊界進(jìn)行整數(shù)化。 ?//經(jīng)過上述兩次整數(shù)化,此時(shí)的候選框已經(jīng)和最開始回歸出來的位置有一定的偏差,這個(gè)偏差會(huì)影響檢測(cè)或者分割的準(zhǔn)確度
怎么做的映射: 映射規(guī)則比較簡單,就是把各個(gè)坐標(biāo)除以“輸入圖片與feature map的大小的比值”
ROI Pooling與ROI Align(Mask R-CNN)的區(qū)別
ROI Align: ROI Align的思路很簡單:取消量化操作,使用雙線性內(nèi)插的方法獲得坐標(biāo)為浮點(diǎn)數(shù)的像素點(diǎn)上的圖像數(shù)值,從而將整個(gè)特征聚集過程轉(zhuǎn)化為一個(gè)連續(xù)的操作;1.遍歷每一個(gè)候選區(qū)域,保持浮點(diǎn)數(shù)邊界不做量化。2.將候選區(qū)域分割成k x k個(gè)單元,每個(gè)單元的邊界也不做量化。3.在每個(gè)單元中計(jì)算固定四個(gè)坐標(biāo)位置,用雙線性內(nèi)插的方法計(jì)算出這四個(gè)位置的值,然后進(jìn)行最大池化操作。
區(qū)別: ROI Align舍去了近似像素取整數(shù)的量化方法,改用雙線性插值的方法確定特征圖坐標(biāo)對(duì)應(yīng)于原圖中的像素位置.ROI Align很好地解決了ROI Pooling操作中兩次量化造成的區(qū)域不匹配(mis-alignment)的問題。
對(duì)于檢測(cè)圖片中大目標(biāo)物體時(shí),兩種方案的差別不大,而如果是圖片中有較多小目標(biāo)物體需要檢測(cè),則優(yōu)先選擇RoiAlign,更精準(zhǔn)些。
RoI Align中雙線性插值計(jì)算像素值的具體方法
在數(shù)學(xué)上,雙線性插值是有兩個(gè)變量的插值函數(shù)的線性插值擴(kuò)展,其核心思想是在兩個(gè)方向分別進(jìn)行一次線性插值。
假如我們想得到未知函數(shù) f 在點(diǎn) P = (x, y) 的值,假設(shè)我們已知函數(shù) f 在 Q11 = (x1, y1)、Q12 = (x1, y2), Q21 = (x2, y1) 以及 Q22 = (x2, y2) 四個(gè)點(diǎn)的值。最常見的情況,f就是一個(gè)像素點(diǎn)的像素值。首先在 x 方向進(jìn)行線性插值,得到
然后在 y 方向進(jìn)行線性插值,得到
綜合起來就是雙線性插值最后的結(jié)果:
由于圖像雙線性插值只會(huì)用相鄰的4個(gè)點(diǎn),因此上述公式的分母都是1。
每個(gè)采樣點(diǎn)的特征值由其相鄰的4個(gè)整型特征點(diǎn)的像素值通過雙線性差值得到。
最近鄰插值法(圖像的內(nèi)插):在原圖中最近得像素點(diǎn)賦值給新的像素點(diǎn)
4.說一下非極大值抑制(NMS)(non maximum suppression) NMS實(shí)現(xiàn)細(xì)節(jié) 手寫NMS代碼
用處:本質(zhì)是搜索局部極大值,抑制非極大值元素。
原理:NMS為非極大值抑制,用來抑制檢測(cè)時(shí)冗余的框。
大致算法流程為:1.對(duì)所有預(yù)測(cè)框的置信度降序排序2.選出置信度最高的預(yù)測(cè)框,確認(rèn)其為正確預(yù)測(cè),并計(jì)算他與其他預(yù)測(cè)框的IOU 3.根據(jù)2中計(jì)算的IOU去除重疊度高的,IOU>threshold閾值就刪除 4.剩下的預(yù)測(cè)框返回第1步,直到?jīng)]有剩下的為止
(需要注意的是:Non-Maximum Suppression一次處理一個(gè)類別,如果有N個(gè)類別,Non-Maximum Suppression就需要執(zhí)行N次。)
假設(shè)兩個(gè)目標(biāo)靠的很近,則會(huì)識(shí)別成一個(gè)bbox,會(huì)有什么問題,怎么解決?
當(dāng)兩個(gè)目標(biāo)靠的非常近時(shí),置信度低的會(huì)被置信度高的框抑制掉,從而兩個(gè)目標(biāo)靠的非常近時(shí)會(huì)被識(shí)別成一個(gè)bbox。為了解決這個(gè)問題,可以使用softNMS(基本思想:用稍低一點(diǎn)的分?jǐn)?shù)來代替原有的分?jǐn)?shù),而不是直接置零)
5.Faster R-CNN是如何解決正負(fù)樣本不平衡的問題?
限制正負(fù)樣本比例為1:1,如果正樣本不足,就用負(fù)樣本補(bǔ)充,這種方法后面研究工作用的不多。通常針對(duì)類別不平衡問題可以從調(diào)整樣本數(shù)或修改loss weight兩方面去解決,常用的方法有OHEM、OHNM、class balanced loss和Focal loss。
Faster RCNN怎么篩選正負(fù)anchor
我們給兩種錨點(diǎn)分配一個(gè)正標(biāo)簽:(i)具有與實(shí)際邊界框的重疊最高交并比(IoU)的錨點(diǎn),
(ii)具有與實(shí)際邊界框的重疊超過0.7 IoU的錨點(diǎn)。IoU比率低于0.3,我們給非正面的錨點(diǎn)分配一個(gè)負(fù)標(biāo)簽。
6.faster-rcnn中bbox回歸用的是什么公式,說一下該網(wǎng)絡(luò)是怎么回歸bbox的?
其中x,y,w,h分別為bbox的中心點(diǎn)坐標(biāo),寬與高。分別是預(yù)測(cè)box、anchor box、真實(shí)box。
前兩行是預(yù)測(cè)的box關(guān)于anchor的offset與scales,后兩行是真實(shí)box與anchor的offset與scales。那回歸的目的很明顯,即使得盡可能相近。回歸損失函數(shù)利用的是Fast-RCNN中定義的smooth L1函數(shù),對(duì)外點(diǎn)更不敏感:
in which
損失函數(shù)優(yōu)化權(quán)重W,使得測(cè)試時(shí)bbox經(jīng)過W運(yùn)算后可以得到一個(gè)較好的平移量(offsets)與尺度(scales),利用這個(gè)平移量(offsets)與尺度(scales)可在原預(yù)測(cè)bbox上微調(diào),得到更好的預(yù)測(cè)結(jié)果。
為什么要做Bounding-box regression?
邊框回歸用來微調(diào)候選區(qū)域/框,使微調(diào)后的框更Ground Truth更接近。
7.簡述faster rcnn的前向計(jì)算過程 ?簡述faster rcnn訓(xùn)練步驟
輸入一張待檢測(cè)圖片->vgg16網(wǎng)絡(luò)conv layers提取整張圖片的特征,輸出feature map分別輸入到RPN和Fast RCNN網(wǎng)絡(luò)開頭->RPN網(wǎng)絡(luò)得出region proposal,將這些候選框信息送入到Fast RCNN網(wǎng)絡(luò)開頭->利用候選框在之前送到的feature map提取特征,并通過ROI Pooling層得到規(guī)定大小的feature map->將這些feature map送入Fast RCNN網(wǎng)絡(luò)中進(jìn)行分類和回歸坐標(biāo),最終得到需檢測(cè)物體的坐標(biāo)。
簡述faster rcnn訓(xùn)練步驟
第一步,訓(xùn)練RPN,該網(wǎng)絡(luò)用ImageNet預(yù)訓(xùn)練的模型初始化,并端到端微調(diào),用于生成region proposal;
第二步,訓(xùn)練Fast R-CNN,由imageNet model初始化,利用第一步的RPN生成的region proposals作為輸入數(shù)據(jù),訓(xùn)練Fast R-CNN一個(gè)單獨(dú)的檢測(cè)網(wǎng)絡(luò),這時(shí)候兩個(gè)網(wǎng)絡(luò)還沒有共享卷積層;
第三步,調(diào)優(yōu)RPN,用第二步的fast-rcnn model初始化RPN再次進(jìn)行訓(xùn)練,但固定共享的卷積層,并且只微調(diào)RPN獨(dú)有的層,現(xiàn)在兩個(gè)網(wǎng)絡(luò)共享卷積層了;
第四步,調(diào)優(yōu)Fast R-CNN,由第三步的RPN model初始化fast-RCNN網(wǎng)絡(luò),輸入數(shù)據(jù)為第三步生成的proposals。保持共享的卷積層固定,微調(diào)Fast R-CNN的fc層。這樣,兩個(gè)網(wǎng)絡(luò)共享相同的卷積層,構(gòu)成一個(gè)統(tǒng)一的網(wǎng)絡(luò)。
8. Faster rcnn有什么不足的地方嗎?如何改進(jìn)?
改進(jìn):1.更好的特征網(wǎng)絡(luò)ResNet等;2.更精確的RPN:可以使用FPN網(wǎng)絡(luò)架構(gòu)來設(shè)計(jì)RPN網(wǎng)絡(luò)3.更好的ROI分類方法:比如ROI分別在conv4和conv5上做ROI-Pooling,合并后再進(jìn)行分類,這樣基本不增加計(jì)算量,又能利用更高分辨率的conv4;4.使用softNMS代替NMS;
比較FasterRCNN在RCNN系列中的改進(jìn)點(diǎn) ? RPN提取RP
綜合問題
1.簡要闡述一下One-Stage、Two-Stage模型
One-Stage檢測(cè)算法,沒有selective search產(chǎn)生region proposal的階段,直接產(chǎn)生物體的類別概率和位置坐標(biāo),經(jīng)過單次檢測(cè)即可直接獲得最終的檢測(cè)結(jié)果。相比Two-Stage有更快的速度。代表網(wǎng)絡(luò)有YOLO v1/v2/v3/9000,SSD,Retina-Net. (two-stage算法中的roi pooling會(huì)對(duì)目標(biāo)做resize, 小目標(biāo)的特征被放大,其特征輪廓也更為清晰,因此檢測(cè)也更為準(zhǔn)確)
Two-Stage檢測(cè)算法將檢測(cè)問題劃分成兩個(gè)階段,首先是獲取region proposal進(jìn)行位置精修和分類階段。相比于One-Stage,精度高,漏檢率也低,但是速度較慢,代表網(wǎng)絡(luò)有Fast rcnn,Faster rcnn,mask rcnn等。
Two-Stage和One-Stage的異同(回答的是Two-Stage先對(duì)前景背景做了篩選,再進(jìn)行回歸,回歸效果比較好,準(zhǔn)度高但是相比較慢,One-Stage是直接對(duì)特征上的點(diǎn)進(jìn)行直接回歸,優(yōu)點(diǎn)是速度快,因?yàn)橛昧硕鄬犹卣鲌D出框可能小目標(biāo)效果比較好一點(diǎn)(個(gè)人看法),缺點(diǎn)是因?yàn)檎?fù)樣本失衡導(dǎo)致效果較差,要結(jié)合難例挖掘。)
one stage在哪些具體方面檢測(cè)精度不高(ROI+default box的深層理解)(one-stage算法對(duì)小目標(biāo)檢測(cè)效果較差,如果所有的anchor都沒有覆蓋到這個(gè)目標(biāo),那么這個(gè)目標(biāo)就會(huì)漏檢。)
Faster rcnn的兩階段訓(xùn)練和end-to-end訓(xùn)練的不一樣 (回答的是就是把RPN和二階段拆開訓(xùn),然后追問RPN在ENDTOEND中怎么回傳,答TOTALLoss中有一階段和二階段的LOSS,只是回傳影響的部分不一樣。)
目標(biāo)檢測(cè)的發(fā)展歷程,從傳統(tǒng)到深度(傳統(tǒng)部分回答的算子結(jié)合分類器分類,簡單說了一下缺陷,深度部分說了RCNN,FAST,FASTER,SSD,YOLO,FPN,MASK RCNN,Cascade RCNN,都簡單的介紹了一下)
傳統(tǒng)目標(biāo)檢測(cè):主線:區(qū)域選擇->特征提取->分類器
傳統(tǒng)的做目標(biāo)檢測(cè)的算法基本流程如下:1. 使用不同尺度的滑動(dòng)窗口選定圖像的某一區(qū)域?yàn)楹蜻x區(qū)域;2. 從對(duì)應(yīng)的候選區(qū)域提取如Harr HOG LBP LTP等一類或者多類特征;3. 使用Adaboost SVM 等分類算法對(duì)對(duì)應(yīng)的候選區(qū)域進(jìn)行分類,判斷是否屬于待檢測(cè)的目標(biāo)。
缺點(diǎn):1)基于滑動(dòng)窗口的區(qū)域選擇策略沒有針對(duì)性,時(shí)間復(fù)雜度高,窗口冗余2)手工設(shè)計(jì)的特征對(duì)于多樣性的變化沒有很好的魯棒性
2.YOLOV1、YOLOV2、YOLOV3復(fù)述一遍 ?YOLOv1到v3的發(fā)展歷程以及解決的問題。
YOLO系列算法是一類典型的one-stage目標(biāo)檢測(cè)算法,其利用anchor box將分類與目標(biāo)定位的回歸問題結(jié)合起來,從而做到了高效、靈活和泛化性能好。
YOLOv1:YOLOv1的核心思想就是利用整張圖作為網(wǎng)絡(luò)的輸入,直接在輸出層回歸 bounding box(邊界框) 的位置及其所屬的類別。
YOLOv1的基本思想是把一副圖片,首先reshape成448×448大小(由于網(wǎng)絡(luò)中使用了全連接層,所以圖片的尺寸需固定大小輸入到CNN中),然后將劃分成SxS個(gè)單元格(原文中S=7),以每個(gè)格子所在位置和對(duì)應(yīng)內(nèi)容為基礎(chǔ),來預(yù)測(cè)檢測(cè)框和每個(gè)框的Confidence以及每個(gè)格子預(yù)測(cè)一共C個(gè)類別的概率分?jǐn)?shù)。
創(chuàng)新點(diǎn):1. 將整張圖作為網(wǎng)絡(luò)的輸入,直接在輸出層回歸bounding box的位置和所屬的類別2. 速度快,one stage detection的開山之作
損失函數(shù)設(shè)計(jì)細(xì)節(jié):YOLOv1對(duì)位置坐標(biāo)誤差,IoU誤差,分類誤差均使用了均方差作為損失函數(shù)。激活函數(shù)(最后一層全連接層用線性激活函數(shù),其余層采用leak RELU)
缺點(diǎn):1. 首先,每個(gè)單元格只預(yù)測(cè)2個(gè)bbox,然后每個(gè)單元格最后只取與gt_bbox的IOU高的那個(gè)最為最后的檢測(cè)框,也只是說每個(gè)單元格最多只預(yù)測(cè)一個(gè)目標(biāo)。2. 損失函數(shù)中,大物體 IOU 誤差和小物體 IOU 誤差對(duì)網(wǎng)絡(luò)訓(xùn)練中 loss 貢獻(xiàn)值接近(雖然采用求平方根方式,但沒有根本解決問題)。因此,對(duì)于小物體,小的 IOU 誤差也會(huì)對(duì)網(wǎng)絡(luò)優(yōu)化過程造成很大的影響,從而降低了物體檢測(cè)的定位準(zhǔn)確性。3. 由于輸出層為全連接層,因此在檢測(cè)時(shí),YOLO 訓(xùn)練模型只支持與訓(xùn)練圖像相同的輸入分辨率的圖片。4. 和two-stage方法相比,沒有region proposal階段,召回率較低
YOLOv2:YOLOv2又叫YOLO9000,其能檢測(cè)超過9000種類別的物體。相比v1提高了訓(xùn)練圖像的分辨率;引入了faster rcnn中anchor box的思想,對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)進(jìn)行了改進(jìn),輸出層使用卷積層替代YOLO的全連接層,聯(lián)合使用coco物體檢測(cè)標(biāo)注數(shù)據(jù)和imagenet物體分類標(biāo)注數(shù)據(jù)訓(xùn)練物體檢測(cè)模型。相比YOLO,YOLO9000在識(shí)別種類、精度、速度、和定位準(zhǔn)確性等方面都有大大提升。相比于v1的改進(jìn): 1.Anchor: 引入了Faster R-CNN中使用的Anchor,作者通過在所有訓(xùn)練圖像的所有邊界框上運(yùn)行k-means聚類來選擇錨的個(gè)數(shù)和形狀(k = 5,因此它找到五個(gè)最常見的目標(biāo)形狀) 2. 修改了網(wǎng)絡(luò)結(jié)構(gòu),去掉了全連接層,改成了全卷積結(jié)構(gòu)。3. 使用Batch Normalization可以從model中去掉Dropout,而不會(huì)產(chǎn)生過擬合。4. 訓(xùn)練時(shí)引入了世界樹(WordTree)結(jié)構(gòu),將檢測(cè)和分類問題做成了一個(gè)統(tǒng)一的框架,并且提出了一種層次性聯(lián)合訓(xùn)練方法,將ImageNet分類數(shù)據(jù)集和COCO檢測(cè)數(shù)據(jù)集同時(shí)對(duì)模型訓(xùn)練。
YOLOv3:YOLOv3總結(jié)了自己在YOLOv2的基礎(chǔ)上做的一些嘗試性改進(jìn),有的嘗試取得了成功,而有的嘗試并沒有提升模型性能。其中有兩個(gè)值得一提的亮點(diǎn),一個(gè)是使用殘差模型,進(jìn)一步加深了網(wǎng)絡(luò)結(jié)構(gòu);另一個(gè)是使用FPN架構(gòu)實(shí)現(xiàn)多尺度檢測(cè)。
改進(jìn)點(diǎn):1.多尺度預(yù)測(cè) (類FPN):每種尺度預(yù)測(cè)3個(gè)box, anchor的設(shè)計(jì)方式仍然使用聚類,得到9個(gè)聚類中心。2.更好的基礎(chǔ)分類網(wǎng)絡(luò)(類ResNet)和分類器 darknet-53。3.用邏輯回歸替代softmax作為分類器。
(1)yolo的預(yù)測(cè)框是什么值(x,y,w,h)
(2)YOLOv2中如何通過K-Means得到anchor boxes
卷積神經(jīng)網(wǎng)絡(luò)具有平移不變性,且anchor boxes的位置被每個(gè)柵格固定,因此我們只需要通過k-means計(jì)算出anchor boxes的width和height即可
(3)YOLOv3框是怎么聚出來的? YOLOv3有沒有很致命的問題?
yolov3通過聚類的方式自定義anchor box的大小,在一定程度上,這可以提高定位的準(zhǔn)確率。缺點(diǎn): 識(shí)別物體位置精準(zhǔn)性差,召回率低(在每個(gè)網(wǎng)格中預(yù)測(cè)兩個(gè)bbox這種約束方式減少了對(duì)同一目標(biāo)的多次檢測(cè))(4)YOLO系列anchor的設(shè)計(jì)原理,kmeans的原理,anchor距離如何度量,如何改進(jìn)k-means原理:K-means算法是很典型的基于距離的聚類算法,采用距離作為相似性的評(píng)價(jià)指標(biāo),即認(rèn)為兩個(gè)對(duì)象的距離越近,其相似度就越大。該算法認(rèn)為簇是由距離靠近的對(duì)象組成的,因此把得到緊湊且獨(dú)立的簇作為最終目標(biāo)。
由于從標(biāo)記文件的width,height計(jì)算出的anchor boxes的width和height都是相對(duì)于整張圖片的比例(w=anchor_width*****input_width/downsamples、h=anchor_height*input_height/downsamples)
3.簡要闡述一下FPN網(wǎng)絡(luò)具體是怎么操作的 ?FPN網(wǎng)絡(luò)的結(jié)構(gòu)
FPN網(wǎng)絡(luò)直接在Faster R-CNN單網(wǎng)絡(luò)上做修改,每個(gè)分辨率的 feature map 引入后一分辨率縮放兩倍的 feature map 做 element-wise 相加的操作。通過這樣的連接,每一層預(yù)測(cè)所用的 feature map 都融合了不同分辨率、不同語義強(qiáng)度的特征,融合的不同分辨率的 feature map 分別做對(duì)應(yīng)分辨率大小的物體檢測(cè)。這樣保證了每一層都有合適的分辨率以及強(qiáng)語義(rich semantic)特征。同時(shí),由于此方法只是在原網(wǎng)絡(luò)基礎(chǔ)上加上了額外的跨層連接,在實(shí)際應(yīng)用中幾乎不增加額外的時(shí)間和計(jì)算量。
FPN的特征融合為什么是相加操作呢?
假設(shè)兩路輸入來說,如果是通道數(shù)相同且后面帶卷積的話,add等價(jià)于concat之后對(duì)應(yīng)通道共享同一個(gè)卷積核。FPN里的金字塔,是希望把分辨率最小但語義最強(qiáng)的特征圖增加分辨率,從性質(zhì)上是可以用add的。如果用concat,因?yàn)榉直媛市〉奶卣魍ǖ罃?shù)更多,計(jì)算量是一筆不小的開銷。所以FPN里特征融合使用相加操作可以理解為是為了降低計(jì)算量。
闡述一下FPN為什么能提升小目標(biāo)的準(zhǔn)確率
低層的特征語義信息比較少,但是目標(biāo)位置準(zhǔn)確;高層的特征語義信息比較豐富,但是目標(biāo)位置比較粗略。原來多數(shù)的object detection算法都是只采用頂層特征做預(yù)測(cè)。FPN同時(shí)利用低層特征高分辨率和高層特征的高語義信息,通過融合這些不同特征層的特征達(dá)到預(yù)測(cè)的效果。并且預(yù)測(cè)是在每個(gè)融合后的特征層上單獨(dú)進(jìn)行的。所以可以提升小目標(biāo)的準(zhǔn)確率。
基于FPN的RPN是怎么訓(xùn)練的?(在FPN的每個(gè)預(yù)測(cè)層上都接一個(gè)RPN子網(wǎng),確定RPN子網(wǎng)的正負(fù)anchor box樣本,再計(jì)算各預(yù)測(cè)層上RPN的anchor box分類和回歸損失,利用BP將梯度回傳更新權(quán)值)
4.簡要闡述一下SSD網(wǎng)絡(luò)
SSD網(wǎng)絡(luò)的特點(diǎn)是對(duì)不同尺度下的feature map中的每一個(gè)點(diǎn)都設(shè)置一些default box,這些default box有不同的大小和橫縱比例,對(duì)這些default box進(jìn)行分類和邊框回歸的操作。SSD的核心是對(duì)固定設(shè)置的default box(不同尺度feature map中每一個(gè)空間位置都設(shè)置一組default box,這里只考慮空間位置,不考慮feature的通道個(gè)數(shù))計(jì)算屬于各類物體的概率以及坐標(biāo)調(diào)整的數(shù)值。這個(gè)計(jì)算方式是對(duì)每層的feature map做卷積操作,卷積核設(shè)定為3*3,卷積核的個(gè)數(shù)是與default box個(gè)數(shù)相關(guān)。
優(yōu)點(diǎn):SSD的優(yōu)點(diǎn)是運(yùn)行速度超過yolo,精度在一定條件下超過faster rcnn。缺點(diǎn)是需要人工設(shè)置先驗(yàn)框(prior box)和min_size,max_size和長寬比(aspect_ratio)值,網(wǎng)絡(luò)中default_box的基礎(chǔ)大小和形狀不能直接通過學(xué)習(xí)獲得,而是需要手工設(shè)置,雖然使用了圖像金字塔的思路,但是對(duì)小目標(biāo)的recall(召回率)依然一般
簡述SSD網(wǎng)絡(luò)前向是如何計(jì)算的
1數(shù)據(jù)增強(qiáng),獲取訓(xùn)練樣本,將訓(xùn)練數(shù)據(jù)統(tǒng)一resize到固定尺寸;2.通過卷積網(wǎng)絡(luò)獲取feature map:①使用的卷積網(wǎng)絡(luò),前半部分使用基礎(chǔ)分類網(wǎng)絡(luò)獲取各層的feature map,這部分稱為base network。②下一步計(jì)算的輸入,就是上述的不同尺寸的feature map;3.通過卷積操作,從特征圖中獲取檢測(cè)信息。①此處實(shí)現(xiàn)方式與yolo類似;②與Faster R-CNN類似,在特征圖中每個(gè)點(diǎn)新建若干固定尺寸的anchor。檢測(cè)信息包括每個(gè)anchor的信息。主要包括:confidence(代表這個(gè)anchor中是否存在物體)、分類信息以及bbox信息。
SSD的致命缺點(diǎn),如何改進(jìn)
SSD主要缺點(diǎn):SSD對(duì)小目標(biāo)的檢測(cè)效果一般,作者認(rèn)為小目標(biāo)在高層沒有足夠的信息
對(duì)小目標(biāo)檢測(cè)的改進(jìn)可以從下面幾個(gè)方面考慮:1. 增大輸入尺寸2. 使用更低的特征圖做檢測(cè)(比如S3FD中使用更低的conv3_3檢測(cè))3. FPN(已經(jīng)是檢測(cè)網(wǎng)絡(luò)的標(biāo)配了)
5.簡要闡述一下RetinaNet
RetinaNet的作者對(duì)one-stage檢測(cè)器準(zhǔn)確率不高的問題原因進(jìn)行探究,發(fā)現(xiàn)主要問題在于正負(fù)類別不均衡,提出Focal Loss來解決類別不平衡問題。目的是通過減少易分類樣本的權(quán)重,從而使得模型在訓(xùn)練時(shí)更注重于難分類的樣本。RetinaNet=ResNet+FPN+Two sub-network+Focal Loss; RetinaNet由backbone網(wǎng)絡(luò)和兩個(gè)子任務(wù)網(wǎng)絡(luò)組成,backbone網(wǎng)絡(luò)負(fù)責(zé)計(jì)算feature map,子任務(wù)網(wǎng)絡(luò)一個(gè)負(fù)責(zé)目標(biāo)分類,一個(gè)負(fù)責(zé)bbox回歸,網(wǎng)絡(luò)的loss使用Focal loss。
闡述一下ssd和retinanet的區(qū)別
SSD的基礎(chǔ)網(wǎng)絡(luò)是VGG,且SSD在使用多層feature map時(shí)只是簡單的在不同層的feature map上放default box,并沒有真正將低維度特征和高維度特征進(jìn)行融合。且SSD網(wǎng)絡(luò)中使用的控制正負(fù)樣本數(shù)量比的方法是難樣本挖掘方法,loss是分類+回歸的loss。而RetinaNet網(wǎng)絡(luò)的基礎(chǔ)網(wǎng)絡(luò)是resnet+FPN,是真正將低維度的特征和高維度的特征進(jìn)行了特征融合后再來做檢測(cè)的。且控制正負(fù)樣本的方法是使用Focal Loss。
6. faster rcnn和yolo,ssd之間的區(qū)別和聯(lián)系
1.針對(duì)之前RCNN系列selective search的方法導(dǎo)致算法沒有實(shí)時(shí)性,所以faster rcnn提出RPN網(wǎng)絡(luò)來取代之前的方法,可以理解為fasterrcnn=fast rcnn+rpn網(wǎng)絡(luò),且rpn網(wǎng)絡(luò)和fast rcnn的分類,回歸網(wǎng)絡(luò)共用特征提取層,這樣使得引入RPN網(wǎng)絡(luò)不會(huì)增加太多計(jì)算量。整體流程為先使用RPN網(wǎng)絡(luò)找出可能存在object的區(qū)域,再將這些區(qū)域送入fast rcnn中進(jìn)一步定位和分類。所以faster rcnn是典型的Two stage算法。因?yàn)閒aster rcnn中包含了兩次定位,所以其精度一般高于YOLO和SSD算法,所以速度一般慢于YOLO和SSD。
2.YOLO算法的特點(diǎn)是將檢測(cè)問題轉(zhuǎn)換成回歸問題,即YOLO直接通過回歸一次既產(chǎn)生坐標(biāo),又產(chǎn)生每種類別的概率。YOLO中將每張圖分成7*7的網(wǎng)格,每個(gè)網(wǎng)格默認(rèn)可能屬于2個(gè)object,即在一張圖片上提取98個(gè)region proposal,相比于faster rcnn使用Anchor機(jī)制提取20k個(gè)anchor再從中提取最終的300個(gè)region proposal,所以faster rcnn的精度比YOLO要高,但是由于需要處理更多region proposal,所以faster rcnn的速度要比YOLO慢。
3.SSD相比于faster rcnn使用了多層網(wǎng)絡(luò)特征,而不僅僅使用最后一層feature map。SSD還借鑒了YOLO算法中將檢測(cè)任務(wù)轉(zhuǎn)換為回歸任務(wù)的思想,且SSD也借鑒了faster rcnn中的anchor機(jī)制,只是SSD的anchor不是每個(gè)位置的精調(diào),而是類似于YOLO那樣在feature map上分割出網(wǎng)格,在網(wǎng)格上產(chǎn)生anchor。但是SSD和YOLO不需要selective search步驟,所以SSD和YOLO同屬于One-Stage算法。
闡述一下Mask RCNN網(wǎng)絡(luò),這個(gè)網(wǎng)絡(luò)相比于Faster RCNN網(wǎng)絡(luò)有哪些改進(jìn)的地方
Mask rcnn網(wǎng)絡(luò)是基于faster rcnn網(wǎng)絡(luò)架構(gòu)提出的新的目標(biāo)檢測(cè)網(wǎng)絡(luò)。該網(wǎng)絡(luò)可以在有效地完成目標(biāo)檢測(cè)的同時(shí)完成實(shí)例分割。Mask RCNN主要的貢獻(xiàn)在于如下:1.強(qiáng)化了基礎(chǔ)網(wǎng)絡(luò):通過ResNeXt-101+FPN用作特征提取網(wǎng)絡(luò),達(dá)到state-of-the-art的效果。2.ROIAlign替換之前faster rcnn中的ROI Pooling,解決錯(cuò)位(Misalignment)問題。3.使用新的Loss Function:Mask RCNN的損失函數(shù)是分類,回歸再加上mask預(yù)測(cè)的損失之和。總結(jié)來說,mask rcnn的主要貢獻(xiàn)就是采用了ROI Align以及加了一個(gè)mask分支。
7.分析一下SSD,YOLO,Faster rcnn等常用檢測(cè)網(wǎng)絡(luò)對(duì)小目標(biāo)檢測(cè)效果不好的原因
SSD,YOLO等單階段多尺度算法,小目標(biāo)檢測(cè)需要較高的分辨率,SSD對(duì)于高分辨的低層特征沒有再利用,而這些層對(duì)于檢測(cè)小目標(biāo)很重要。按SSD的設(shè)計(jì)思想,其實(shí)SSD對(duì)小目標(biāo)應(yīng)該有比較好的效果,但是需要重新精細(xì)設(shè)計(jì)SSD中的default box,比如重新設(shè)計(jì)min_sizes參數(shù),擴(kuò)大小default box的數(shù)量來cover住小目標(biāo)。但是隨著default box數(shù)量的增加,網(wǎng)絡(luò)速度也會(huì)降低。YOLO網(wǎng)絡(luò)可以理解為是強(qiáng)行把圖片分割成7*7個(gè)網(wǎng)格,每個(gè)網(wǎng)格預(yù)測(cè)2個(gè)目標(biāo),相當(dāng)于只有98個(gè)anchor,所以不管是小目標(biāo),還是大目標(biāo),YOLO的表現(xiàn)都不是很理想,但是由于只需處理少量的anchor,所以YOLO的速度上有很大優(yōu)勢(shì)。
Faster rcnn系列對(duì)小目標(biāo)檢測(cè)效果不好的原因是faster rcnn只用卷積網(wǎng)絡(luò)的最后一層,但是卷積網(wǎng)絡(luò)的最后一層往往feature map太小,導(dǎo)致之后的檢測(cè)和回歸無法滿足要求。甚至一些小目標(biāo)在最后的卷積層上直接沒有特征點(diǎn)了。所以導(dǎo)致faster rcnn對(duì)小目標(biāo)檢測(cè)表現(xiàn)較差。
8.手寫計(jì)算IOU代碼
有兩個(gè)框,設(shè)第一個(gè)框的兩個(gè)關(guān)鍵點(diǎn)坐標(biāo):(x1,y1)(X1,Y1),第二個(gè)框的兩個(gè)關(guān)鍵點(diǎn)坐標(biāo):(x2,y2)(X2,Y2)。以大小寫來區(qū)分左上角坐標(biāo)和右下角坐標(biāo)。首先,要知道兩個(gè)框如果有交集,一定滿足下面這個(gè)公式:max(x1,x2)<=min(X1,X2) && max(y1,y2)<=min(Y1,Y2)!!!!
9.講一下目標(biāo)檢測(cè)優(yōu)化的方向
【可以從數(shù)據(jù)集下手,提升特征表征強(qiáng)度(backbone下手,加深加寬或者換卷積方式),RPN下手(級(jí)聯(lián),FPN,IOU NET),LOSS(行人檢測(cè)領(lǐng)域有些問題,如重疊,可以靠修改loss提升準(zhǔn)確度)。】
10.anchor設(shè)置的意義:
其實(shí)就是多尺度的滑動(dòng)窗口
11.如果只能修改RPN網(wǎng)絡(luò)的話,怎么修改可以提升網(wǎng)絡(luò)小目標(biāo)檢出率
①修改RPN網(wǎng)絡(luò)的結(jié)構(gòu),比如引入FPN結(jié)構(gòu),利用多層feature map融合來提高小目標(biāo)檢測(cè)的精度和召回;②針對(duì)小目標(biāo)重新精細(xì)設(shè)計(jì)Anchor的尺寸和形狀,從而更好地對(duì)小目標(biāo)進(jìn)行檢測(cè);
12.如何理解concat和add這兩種常見的feature map特征融合方式
兩者都可以理解為整合特征圖信息。concat是通道數(shù)的增加;add是特征圖相加,通道數(shù)不變。 ?add是描述圖像的特征下的信息量增多了,但是描述圖像的維度本身并沒有增加,只是每一維下的信息量在增加,這顯然是對(duì)最終的圖像的分類是有益的。而concatenate是通道數(shù)的合并,也就是說描述圖像本身的特征數(shù)(通道數(shù))增加了,而每一特征下的信息是沒有增加。 ?concat每個(gè)通道對(duì)應(yīng)著對(duì)應(yīng)的卷積核。 而add形式則將對(duì)應(yīng)的特征圖相加,再進(jìn)行下一步卷積操作,相當(dāng)于加了一個(gè)先驗(yàn):對(duì)應(yīng)通道的特征圖語義類似,從而對(duì)應(yīng)的特征圖共享一個(gè)卷積核(對(duì)于兩路輸入來說,如果是通道數(shù)相同且后面帶卷積的話,add等價(jià)于concat之后對(duì)應(yīng)通道共享同一個(gè)卷積核)。因此add可以認(rèn)為是特殊的concat形式。但是add的計(jì)算量要比concat的計(jì)算量小得多。
13.闡述一下如何檢測(cè)小物體
小目標(biāo)難以檢測(cè)的原因:分辨率低,圖像模糊,攜帶的信息少。
①借鑒FPN的思想,在FPN之前目標(biāo)檢測(cè)的大多數(shù)方法都是和分類一樣,使用頂層的特征來進(jìn)行處理。雖然這種方法只是用到了高層的語義信息,但是位置信息卻沒有得到,尤其在檢測(cè)目標(biāo)的過程中,位置信息是特別重要的,而位置信息又是主要在網(wǎng)絡(luò)的低層。因此FPN采用了多尺度特征融合的方式,采用不同特征層特征融合之后的結(jié)果來做預(yù)測(cè)。
②要讓輸入的分布盡可能地接近模型預(yù)訓(xùn)練的分布。先用ImageNet做預(yù)訓(xùn)練,之后使用原圖上采樣得到的圖像來做微調(diào),使用微調(diào)的模型來預(yù)測(cè)原圖經(jīng)過上采樣的圖像。該方法提升效果比較顯著。
③采用多尺度輸入訓(xùn)練方式來訓(xùn)練網(wǎng)絡(luò);
④借鑒Cascade R-CNN的設(shè)計(jì)思路,優(yōu)化目標(biāo)檢測(cè)中Two-Stage方法中的IOU閾值。檢測(cè)中的IOU閾值對(duì)于樣本的選取是至關(guān)重要的,如果IOU閾值過高,會(huì)導(dǎo)致正樣本質(zhì)量很高,但是數(shù)量會(huì)很少,會(huì)出現(xiàn)樣本比例不平衡的影響;如果IOU閾值較低,樣本數(shù)量就會(huì)增加,但是樣本的質(zhì)量也會(huì)下降。如何選取好的IOU,對(duì)于檢測(cè)結(jié)果來說很重要。⑤采用分割代替檢測(cè)方法,先分割,后回歸bbox來檢測(cè)微小目標(biāo)。
14.闡述一下目標(biāo)檢測(cè)任務(wù)中的多尺度
輸入圖片的尺寸對(duì)檢測(cè)模型的性能影響相當(dāng)明顯,事實(shí)上,多尺度是提升精度最明顯的技巧之一。在基礎(chǔ)網(wǎng)絡(luò)部分常常會(huì)生成比原圖小數(shù)十倍的特征圖,導(dǎo)致小物體的特征描述不容易被檢測(cè)網(wǎng)絡(luò)捕捉。通過輸入更大、更多尺寸的圖片進(jìn)行訓(xùn)練,能夠在一定程度上提高檢測(cè)模型對(duì)物體大小的魯棒性,僅在測(cè)試階段引入多尺度,也可享受大尺寸和多尺寸帶來的增益。
檢測(cè)網(wǎng)絡(luò)SSD中最后一層是由多個(gè)尺度的feature map一起組成的。FPN網(wǎng)絡(luò)中采用多尺度feature map分層融合,分層預(yù)測(cè)的方法可以提升小目標(biāo)的檢測(cè)效果。
闡述一下如何進(jìn)行多尺度訓(xùn)練
多尺度訓(xùn)練可以分為兩個(gè)方面:一個(gè)是圖像金字塔,一個(gè)是特征金字塔
1、人臉檢測(cè)的MTCNN就是圖像金字塔,使用多種分辨率的圖像送到網(wǎng)絡(luò)中識(shí)別,時(shí)間復(fù)雜度高,因?yàn)槊糠鶊D都要用多種scale去檢測(cè)。2、FPN網(wǎng)絡(luò)屬于采用了特征金字塔的網(wǎng)絡(luò),一次特征提取產(chǎn)生多個(gè)feature map即一次圖像輸入完成,所以時(shí)間復(fù)雜度并不會(huì)增加多少3、faster rcnn多個(gè)anchor帶來的多種尺寸的roi可以算muti scale思想的應(yīng)用。
15.如果有很長,很小,或者很寬的目標(biāo),應(yīng)該如何處理目標(biāo)檢測(cè)中如何解決目標(biāo)尺度大小不一的情況 ?小目標(biāo)不好檢測(cè),有試過其他的方法嗎?比如裁剪圖像進(jìn)行重疊
小目標(biāo)不好檢測(cè)的兩大原因:1)數(shù)據(jù)集中包含小目標(biāo)的圖片比較少,導(dǎo)致模型在訓(xùn)練的時(shí)候會(huì)偏向medium和large的目標(biāo)。2)小目標(biāo)的面積太小了,導(dǎo)致包含目標(biāo)的anchor比較少,這也意味著小目標(biāo)被檢測(cè)出的概率變小。
改進(jìn)方法: 1)對(duì)于數(shù)據(jù)集中含有小目標(biāo)圖片較少的情況,使用過度采樣(oversample)的方式,即多次訓(xùn)練這類樣本。2)對(duì)于第二類問題,則是對(duì)于那些包含小物體的圖像,將小物體在圖片中復(fù)制多分,在保證不影響其他物體的基礎(chǔ)上,人工增加小物體在圖片中出現(xiàn)的次數(shù),提升被anchor包含的概率。3)使用FPN;4)RPN中anchor size的設(shè)置一定要合適,這樣可提高proposal的準(zhǔn)確率。5)對(duì)于分辨率很低的小目標(biāo),我們可以對(duì)其所在的proposal進(jìn)行超分辨率,提升小目標(biāo)的特征質(zhì)量,更有利于小目標(biāo)的檢測(cè)。
16.檢測(cè)的框角度偏移了45度,這種情況怎么處理
RRPN也是基于Faster R-CNN,引入RPN,它對(duì)比CTPN加入了旋轉(zhuǎn)信息。CTPN只能檢測(cè)水平文本,而RRPN可以檢測(cè)任意方向的文本,因?yàn)镃TPN的提議框是水平的,而RRPN的提議框帶有旋轉(zhuǎn)角度。為什么提出旋轉(zhuǎn)的提議框呢?因?yàn)樗教嶙h框在檢測(cè)傾斜文本的時(shí)候會(huì)帶有一些冗余(非文本部分)
參考文獻(xiàn)
Redmon J, Divvala S, Girshick R, et al. You only look once: Unified, real-time object detection[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 779-788.
Redmon J, Farhadi A. YOLO9000: better, faster, stronger[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 7263-7271.
Redmon J, Farhadi A. Yolov3: An incremental improvement[J]. arXiv preprint arXiv:1804.02767, 2018.
Lin T Y, Dollár P, Girshick R, et al. Feature pyramid networks for object detection[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 2117-2125.
Liu W, Anguelov D, Erhan D, et al. Ssd: Single shot multibox detector[C]//European conference on computer vision. Springer, Cham, 2016: 21-37.
Ren S, He K, Girshick R, et al. Faster r-cnn: Towards real-time object detection with region proposal networks[J]. arXiv preprint arXiv:1506.01497, 2015.
Ren S, He K, Girshick R, et al. Faster r-cnn: Towards real-time object detection with region proposal networks[J]. arXiv preprint arXiv:1506.01497, 2015.
參考鏈接
https://zhuanlan.zhihu.com/p/137735486
https://zhuanlan.zhihu.com/p/137736076
https://blog.csdn.net/wshdkf/article/details/80456588
https://www.cnblogs.com/eilearn/p/9061814.html
https://zhuanlan.zhihu.com/p/56405179
https://bbs.cvmart.net/topics/1310
https://blog.csdn.net/zxd52csx/article/details/82795104
https://zhuanlan.zhihu.com/p/133368642
https://blog.csdn.net/xys430381_1/article/details/88355956
https://www.zhihu.com/question/271781123/answer/517607398
https://zhuanlan.zhihu.com/p/57760020
https://blog.csdn.net/weixin_38708130/article/details/83720633
本文亮點(diǎn)總結(jié)
1.NMS算法流程為:1.對(duì)所有預(yù)測(cè)框的置信度降序排序2.選出置信度最高的預(yù)測(cè)框,確認(rèn)其為正確預(yù)測(cè),并計(jì)算他與其他預(yù)測(cè)框的IOU 3.根據(jù)2中計(jì)算的IOU去除重疊度高的,IOU>threshold閾值就刪除 4.剩下的預(yù)測(cè)框返回第1步,直到?jīng)]有剩下的為止
2.Mask RCNN主要的貢獻(xiàn)在于如下:1.強(qiáng)化了基礎(chǔ)網(wǎng)絡(luò):通過ResNeXt-101+FPN用作特征提取網(wǎng)絡(luò),達(dá)到state-of-the-art的效果。2.ROIAlign替換之前faster rcnn中的ROI Pooling,解決錯(cuò)位(Misalignment)問題。3.使用新的Loss Function:Mask RCNN的損失函數(shù)是分類,回歸再加上mask預(yù)測(cè)的損失之和。
往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機(jī)器學(xué)習(xí)在線手冊(cè)深度學(xué)習(xí)筆記專輯《統(tǒng)計(jì)學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機(jī)器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯溫州大學(xué)《機(jī)器學(xué)習(xí)課程》視頻 本站qq群851320808,加入微信群請(qǐng)掃碼:總結(jié)
以上是生活随笔為你收集整理的【深度学习】一位算法工程师从30+场秋招面试中总结出的超强面经——目标检测篇(含答案)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win11系统怎样设置更改密码
- 下一篇: 技术员联盟win11系统64位专业版镜像