計算機視覺實習面試整理

頭條AI Lab

  • 如何計算IoU,二叉樹逐行遍歷
  • focal loss有什麼缺點
  • batch norm有在什麼情況下效果不好
  • 檢測中one-stage和two stage區別是什麼,爲什麼one-stage的方法精度底
  • 如何判斷一個點是否在凸多邊形內
  • mask rcnn的損失函數

yolov3

  • anchor如何計算?
    採用標準的k-means(即用歐式距離來衡量差異),在box的尺寸比較大的時候其誤差也更大,而我們希望的是誤差和box的尺寸沒有太大關係。因爲框的大小不一樣,這樣大的定位框的誤差可能更大,小的定位框誤差會小,這樣不均衡,很難判斷聚類效果的好
    d(box,centroid)=1IOU(box,centroid)d(box,centroid)=1−IOU(box,centroid)
    在計算anchor boxes時我們將所有boxes中心點的x,y座標都置爲0

  • 如何計算IoU
    在這裏插入圖片描述
    W=max(min(X1,A1)max(X0,A0),0)W=max(min(X1,A1)−max(X0,A0),0)

  • Loss function
    置信度損失+分類損失(只包含物體)+(僅計算包含物體框的x,y,w,h的損失mse)

faster rcnn

參考https://github.com/matterport/Mask_RCNN/blob/master/mrcnn/model.py

  • backbone :
    resnet101提取特徵C2,C3,C4,C5
    利用C2-C5構建FPN金字塔特徵P2,P3,P4,P5(上採樣後,相加,在卷積),P6(maxpooling P5)
  • rpn網絡(只預測是否是物體)
    (rpn網絡類似yolo)
    rpn的feature map是[P2, P3, P4, P5, P6]
    輸入時【圖片,標籤】
    輸出是【feature map對應點的每一類的可能性,物體的可能性,bbox的位置】
    對輸出的概率排序,保存前景概率大的一部分,然後選取想對應的anchor,利用rpn的輸出迴歸值對anchor進行第一次修正。修正完利用極大抑制方法,刪除其中的一部分anchor。獲的最後的anchor。
    rpn的loss
    L({pi},{ti})=1NclsiLcls(pi,pi)+λ1NregipiLreg(ti,ti)L(\{p_i\},\{t_i\}) = \frac{1}{N_{cls}}\sum_iL_{cls}(p_i,p_i^*)+\lambda\frac{1}{N_{reg}}\sum_ip_i^*L_{reg}(t_i,t_i^*)
    LclsL_{cls}是是否是物體的log loss,Lreg=R(ti,ti)L_{reg}=R(t_i,t_i^*)是smooth L1 loss tit_i是4個參數的vector
    tx=(xxa)/wa,ty=(yya)/hatw=log(w/wa),th=log(h/ha)tx=(xxa)/wa,ty=(yya)/hatw=log(w/wa),th=log(h/ha)t_x = (x-x_a)/w_a,t_y=(y-y_a)/h_a \\t_w = log(w/w_a),t_h = log(h/h_a)\\ t_x^* = (x^*-x_a)/w_a,t_y^*=(y^*-y_a)/h_a\\ t_w* = log(w^*/w_a),t_h^*=log(h^*/h_a)

通過rpn網絡得到的anchor,選擇出來正負樣本,並計算出正樣本和真實框的差距,以及要預測的mask的值,這些都是在後面的網絡中計算損失函數需要的真實值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章