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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

目标检测中如何定义正负样本,和正负样本在学习过程中loss计算起的作用

發布時間:2023/11/27 生活经验 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 目标检测中如何定义正负样本,和正负样本在学习过程中loss计算起的作用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如何定義正負樣本,和正負樣本在學習過程中loss計算起的作用

    • 正負樣本定義
    • 分類和回歸head如何學習和利用劃分后的正負樣本(loss如何計算)
      • 正負樣本在分類中loss計算的處理
      • 正樣本在bbox 回歸中的loss計算

在目標檢測中,經常說起正負樣本。本文仔細說一下,如何定義正負樣本;定義正負樣本之后,在loss計算中,正負樣本分別參與到classification head和regression head中,是如何使用正負樣本信息進行監督學習的。loss如何從正負樣本中,直接得到這兩類樣本對不同任務的損失函數和梯度更新。

正負樣本定義

在ROI RPN過程中,整個圖像中,正樣本的區域少,大部分是負樣本,因此,要處理好正負樣本不平衡問題,網絡提取特征,feature中的絕大多數都是negative,只有和ground truth,iou較高的區域,才被assign為positive sample。因此,2000個proposal,幾十個是positive,大多數是negative,極度不平衡。此時,就有一些正負樣本采樣的方法,提出來。anchor 和gt的最大iou,大于某個a閾值,為positive,anchor 和gt的最大iou 小于 某個b閾值,為negative。對于沒有被分配到anchor的gt,分配任何一個與他iou 大于某個c閾值的gt。確保每個gt都有一個或多個anchor對應。其他的是ignore。

positive,negative,比例1:3。這是roi的選擇,rpn階段,同理,rcnn階段,再進行樣本采樣。 然后,再進行特征提取,做classification和regression。讓模型學到有用的特征。

都會在loss里, 進行處理。負樣本,直接在loss里面。如果負樣本太多,雖然大多數容易分對,但是對loss的貢獻很大,導致正樣本難以處理。

對于目標檢測算法,主要需要關注的是對應著真實物體的正樣本,在訓練時會根據其loss來調整網絡參數。相比之下,負樣本對應著圖像的背景,如果有大量的負樣本參與訓練,則會淹沒正樣本的損失,從而降低網絡收斂的效率與檢測精度。

回歸方式:從點回歸,還是anchor回歸。anchor free, anchor based問題的一些區別:正負樣本定義;2.回歸分支中從point回歸還是從anchor回歸。從point回歸就是指的每個點預測距離4條邊的距離模式,而從anchor回歸是指的retinanet那種基于anchor回歸的模式。 說明正負樣本定義的不同是決定anchor-base和anchor-free的本質區別。

RetinaNet 特點:(1) 多尺度預測輸出;(2) 采用FPN結構進行多層特征圖融合。 網絡進行多尺度預測,尺度一共是5個,每個尺度共享同一個head結構,但是分類和回歸分支是不共享權重的。

在loss里面,調節,最著名的是focal loss。對預測概率高的,減少loss,對概率低的,增加loss。抑制簡單樣本對loss的貢獻,加大難樣本對loss的貢獻。難易樣本主要是通過調節loss處理。難分,易分。

分類和回歸head如何學習和利用劃分后的正負樣本(loss如何計算)

正負樣本在分類中loss計算的處理

  • 只有正負樣本,參與到classification的loss計算中。用來監督classification head對正樣本,預測的類別為1,one-hot編碼下的位置為1,其余負樣本為0。由于ignore的是目標的邊緣和背景區域,難以學習和判斷,直接忽略掉,不進行loss的計算。只需要將正樣本,判斷為對應target;負樣本, 全部判斷為0就行。

RetinaNet FPN 這個結構,對label的編碼,是包含在正負樣本定義中的。

所有的anchor,計算和gt box的iou。如果與某個anchor與 gt box 的iou,大于0.5, 為正樣本1,

如果anchor 的最大iou,小于0.4,為負樣本,0。

如果anchor與gt的iou>0.4, <0.5,分配為ignore樣本,忽略樣本,-1。

一共9個anchor,分別是1:2, 2:1, 1:1, aspect ratio為1, 2^(1/3), 2^(2/3)

分類:

classification: focal loss, ignore cases where cls_tgt == -1只負責0,1正負樣本的回歸。

pos_neg = cls_targets > -1

給正樣本打標簽的時候,是將1給到指定的那個class下,為1,其他為0。也就是一個grid位置下的相同形狀anchor,只有第i個類別的target為1,其他為0。

(num_classes, num_anchors, fmh, fmw)
(4, num_anchors, fmh, fmw)Classification targets are defined as-  1 if IoU with the anchor box in [0.5, 1.0] (positive label)- -1 if IoU with the anchor box in [0.4, 0.5] (to be ignored in the loss)-  0 if IoU with the anchor box in [0.0, 0.4] (negative label)

正樣本在bbox 回歸中的loss計算

  • Bounding Box的回歸,只負責處理positive正樣本的區域。regression head中,只對劃分成正樣本的,anchor box,進行 xywh的loss計算。只有正樣本,包含了所負責的檢測的目標,所以只需要將正樣本的anchor回歸做好,就能減少bbox 的regression loss。

回歸的target為:只負責1,pos樣本,也就是正樣本anchor的回歸。

regression: include all anchor boxes where any class is positive

    pos_loc = cls_targets > 0  tx = (x - anchor_x) / anchor_wty = (y - anchor_y) / anchor_htw = log(w / anchor_w)th = log(h / anchor_h)
    Classification targets are defined as-  1 if IoU with the anchor box in [0.5, 1.0] (positive label)-  -1 if IoU with the anchor box in [0.4, 0.5] (to be ignored in the loss)-  0 if IoU with the anchor box in [0.0, 0.4] (negative label)

兩個gt box,分別是兩類,分別為 類別1,2。則編碼出來的,是與其 iou最大的anchor box,其負責這一類的分類與回歸。例如:第i個anchor,負責第1類,則[0, 1, 0] one hot 編碼。 第j個anchor 負責第2類,則[0, 0, 1]。只需要對應的[第i類,第幾個anchor,anchor的grid的位置h,anchor所在的grid位置w]=1。

計算loss的時候,只需要負責處理target為0,1樣本,忽略掉ignore樣本。

由于RetinaNet采用了Focal Loss進行正負樣本的平衡,所以沒有使用采樣的方法,來平衡樣本。

min_pos_iou=0,可以保證每個GT一定有對應的anchor負責預測。0.4以下是負樣本,0.5以上且是最大Iou的anchor是正樣本0.4~0.5之間的anchor是忽略樣本。其不需要正負樣本采樣器,因為其是通過平衡分類loss來解決的。

如果有用,記得點贊👍加收藏哦。!!!!

總結

以上是生活随笔為你收集整理的目标检测中如何定义正负样本,和正负样本在学习过程中loss计算起的作用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。