One-to-Few Label Assignment for End-to-End Dense Detection閱讀筆記

One-to-Few Label Assignment for End-to-End Dense Detection閱讀筆記

Abstract

一對一(o2o)標簽分配對基于變換器的端到端檢測起著關鍵作用,最近已經被引入到全卷積檢測器中,用于端到端密集檢測。然而,o2o可能因為正樣本數量有限而降低特征學習效率。盡管最近的DETRs引入了額外的正樣本來緩解這個問題,但解碼器中的自注意力和交叉注意力計算限制了其在密集和全卷積檢測器中的實際應用。在這項工作中,我們提出了一種簡單而有效的一對少數(o2f)標簽分配策略,用于端到端密集檢測。除了為每個對象定義一個正錨點和多個負錨點之外,我們還定義了幾個軟錨點(soft anchor),同時充當正負樣本。這些軟錨點的正負權重在訓練過程中動態調整,使它們在訓練初期更多地貢獻于“表示學習”,在后期更多地貢獻于“重復預測移除”。以這種方式訓練的檢測器不僅可以學習強大的特征表示,還能進行端到端密集檢測。在COCO和CrowdHuman數據集上的實驗展示了o2f方案的有效性。代碼可在以下鏈接獲取:https://github.com/strongwolf/o2f。

Introduction

(僅記錄一些我認為比較重要的句子)

  • During the evolution of object detectors, one important trend is to remove the hand-crafted components to achieve end-to-end detection.

  • One hand-crafted component in object detection is the design of training samples.

    • However, the performance of anchor-based detectors is sensitive to the shape and size of anchor boxes. To mitigate this issue, anchor-free [19,48] and query-based [5,8,34,61] detectors have been proposed to replace anchor boxes by anchor points and learnable positional queries, respectively.
  • Another hand-crafted component is non-maximum suppression(NMS) to remove duplicated predictions.

    • Since NMS has hyperparameters to tune and introduces additional cost, NMS-free end-to-end object detection is highly desired. (由于NMS需要調整超參數并帶來額外的成本,因此非常希望實現無NMS的端到端對象檢測。)
  • With a transformer architecture, DETR [5] achieves competitive end-to-end detection performance.

    • However, o2o can impede the training efficiency due to the limited number of positive samples.
  • Recent studies [7, 17, 22] on DETR try to overcome this shortcoming of o2o scheme by introducing independent query groups to increase the number of positive samples. The independency between different query groups is ensured by the self-attention computed in the decoder, which is however infeasible for FCN-based detectors.(最近的研究[7, 17, 22]嘗試通過引入獨立的查詢組來增加正樣本數量,以克服DETR中一對一(o2o)方案的這一缺點。不同查詢組之間的獨立性由解碼器中計算的自注意力來保證,但這對于基于FCN的檢測器來說是不可行的。)

  • In this paper, we aim to develop an efficient FCN-based dense detector, which is NMS-free yet end-to-end trainable.

    • 我們觀察到,在一對一(o2o)方案中,將語義上類似于正樣本的模糊錨點設為完全負樣本是不合適的。相反,這些錨點可以在訓練期間同時用于計算正損失和負損失,如果損失權重設計得當,不會影響端到端的能力。基于上述觀察,我們提議為這些模糊錨點分配動態的軟分類標簽。如圖1所示,與o2o不同,后者將模糊錨點(錨點B或C)設為完全負樣本,我們將每個模糊錨點標記為部分正樣本和部分負樣本。正負標簽的程度在訓練過程中自適應調整,以保持“表示學習”和“重復預測移除”之間的良好平衡。特別是,在訓練的早期階段,我們開始以較大的正度數和較小的負度數,以便網絡能更有效地學習特征表示能力,而在后期訓練階段,我們逐漸增加模糊錨點的負度數,以指導網絡學習去除重復預測。我們將我們的方法命名為一對少數(o2f)標簽分配,因為一個對象可以有幾個軟錨點。我們將o2f LA實例化到密集檢測器FCOS中,我們在COCO [29]和CrowHuman [40]的實驗表明,它實現了與帶有NMS的檢測器相當甚至更好的性能。

image-20231207113459473

Related Work

在過去的十年里,隨著深度學習技術[14, 32, 41, 49, 52, 55]的迅猛發展,對象檢測領域取得了巨大進展。現代對象檢測器大致可以分為兩種類型:基于卷積神經網絡(CNN)的檢測器[1, 3, 21, 28, 31, 36-38, 48, 50]和基于變換器的檢測器[5, 8, 30, 34, 53, 54, 61]。

2.1. 基于CNN的對象檢測器

基于CNN的檢測器可進一步劃分為兩階段檢測器和一階段檢測器。兩階段檢測器[3, 38]在第一階段生成區域提議,在第二階段細化這些提議的位置并預測類別,而一階段檢測器[28, 31]直接在卷積特征圖上預測密集錨點的類別和位置偏移。早期的檢測器大多使用預定義的錨點作為訓練樣本。由于不同數據集的適宜設置不同,必須仔細調整錨點形狀和大小的超參數。為了克服這一問題,提出了無錨點檢測器[19, 48]以簡化檢測流程。FCOS [48]和CenterNet [10]用錨點替代錨框,并直接使用這些點來回歸目標對象。CornerNet [20]首先預測對象關鍵點,然后使用關聯嵌入將它們組合成邊界框。

大多數基于CNN的檢測器在訓練過程中采用一對多(o2m)的標簽分配方案。早期的檢測器,如Faster RCNN [38]、SSD [31]和RetinaNet [28],使用IoU作為定義正負錨點的指標。FCOS限制正錨點必須在對象的某些尺度和范圍內。最近的方法[11, 18, 23, 57, 59, 60]通常考慮網絡預測的質量和分布,以更可靠地分配錨點的標簽。然而,o2m標簽分配需要一個后處理步驟,即非極大值抑制(NMS),以去除重復的預測。NMS引入了一個參數來折衷所有實例的精確度和召回率,但這對于擁擠場景尤其不理想。在本文中,我們的目標是去除基于CNN檢測器中的手工NMS步驟,實現端到端的密集檢測。

2.2. 基于Transformer的對象檢測器

作為先驅的基于Transformer的檢測器,DETR [5] 使用一套可學習的對象查詢作為與圖像特征互動的訓練候選項。它通過使用一對一的二部匹配和全局注意力機制,實現了具有競爭力的端到端檢測性能。然而,DETR在小物體上的性能較差,收斂速度慢。許多后續工作[8, 12, 35, 56]旨在改進特征圖和對象查詢之間的注意力建模機制,以提取更相關和精確的特征,提升小物體的檢測性能。最近的研究[7, 17, 22]表明,正樣本數量有限是導致DETR收斂緩慢的原因。因此,它們引入了幾個額外的解碼器來增加正樣本數量。然而,這些方法都基于稀疏候選項,其計算成本在進行密集預測時可能難以承受。與這些方法不同,我們提出了一種軟標簽分配方案,引入更多的正樣本,使得端到端密集檢測器能夠更容易地進行訓練。

One-to-Few Soft Labeling

3.1. Ambiguous Anchors

image-20231207113629109

  • o2o僅選擇一個anchor作為正樣本分配為positive sample,而o2m則選取多個anchor作為Positive sample。在o2o和o2m中,除了正樣本之外的其余錨點都被定義為負樣本。

  • 圖2中,紅色為certain anchor,綠色為ambiguous anchors

  • Now we have divided the anchors into three groups: one certain positive anchor, a few ambiguous anchors, and the remaining multiple negative anchors.

  • 第一個選項是將一對一(o2o)改為一對二,為每個實例增加一個正樣本。第二個選項是為每個模糊錨點分配一個軟標簽t,其中0 ≤ t ≤ 1表示其正樣本程度,因此1 ? t是其負樣本程度。我們定義正錨點和負錨點的分類損失分別為?log§和?log(1 ? p),其中p是預測的分類得分。那么第二個選項的分類損失將是?t × log§ ? (1 ? t) × log(1 ? p)。在COCO數據集上的檢測結果如表1所示,我們可以看到,即使只增加一個正樣本,一對二的標簽分配方案也會顯著降低性能。相比之下,為模糊錨點分配合適的軟標簽可以有效提高端到端性能。(軟標簽分配的細節將在后面的章節中討論。)

    • 上述結果表明,使一個模糊錨點同時具有正負屬性可能是有效實現端到端密集檢測的一個可行方案。因此,我們提出了一種一對少數(o2f)標簽分配策略,它選擇一個確定的錨點作為完全正樣本,幾個模糊錨點同時作為正負樣本,其余錨點作為負樣本。模糊錨點的正負程度在訓練過程中動態調整,使得網絡既能保持強大的特征表征能力,又能實現端到端檢測能力。

image-20231207150736829

3.2. Selection of Certain Positive Anchor

在我們的方法中,每個實例都將選定一個確定的正錨點。之前基于一對一(o2o)的檢測器都使用一個預測感知的選擇度量,考慮了分類和回歸的成本來選擇唯一的正樣本。我們遵循這一原則,并將分類得分和IoU整合進確定錨點的選擇度量中,其定義為:
S i , j = 1 [ i ∈ Ω j ] × p i , c j 1 ? α × IoU ( b i , b j ) α , S_{i,j} = \mathbb{1}[i \in \Omega_j] \times p_{i,c_j}^{1-\alpha} \times \text{IoU}(b_i, b_j)^\alpha, Si,j?=1[iΩj?]×pi,cj?1?α?×IoU(bi?,bj?)α,

其中 S_{i,j} 表示錨點i和實例j之間的匹配得分,c_j 是實例j的類別標簽,p_{i,c_j} 是錨點i屬于類別 c_j 的預測分類得分,b_i 是錨點i的預測邊界框坐標,b_j 表示實例j的坐標,而 \alpha 控制分類和回歸的重要程度。當錨點i的中心點在實例j的中心區域 \Omega_j 內時,空間指示器 1[i \in \Omega_j] 輸出1;否則輸出0。這種空間先驗在基于o2o和o2m的方法中被普遍使用,因為觀察到實例中心區域的錨點更有可能是正樣本。

錨點可以根據度量 ( S_{i,j} ) 進行降序排序。之前的研究通常將正錨點選擇問題構建為一個二分匹配問題,并使用匈牙利算法解決。為了簡化,在本研究中,我們直接為每個實例選擇得分最高的錨點作為確定的正錨點。

3.3. Label Assignment for Ambiguous Anchors

除了確定的正錨點之外,我們根據得分 S i , j S_{i,j} Si,j?選擇排名前K的錨點作為模糊錨點,因為它們與確定的正錨點有相似的語義上下文。為了減少重復預測的可能性,我們為這些模糊錨點分配動態軟標簽。假設我們訓練網絡N個周期,在第j個周期中,每個模糊錨點i的分類損失定義為:

l i j = ? t i j × log ? ( p i ) ? ( 1 ? t i j ) × log ? ( 1 ? p i ) l_i^j = -t_i^j \times \log(p_i) - (1 - t_i^j) \times \log(1 - p_i) lij?=?tij?×log(pi?)?(1?tij?)×log(1?pi?)

除了確定的正錨點,我們基于得分 (S_{i,j}) 選擇排名前K的錨點作為模糊錨點,因為它們與確定的正錨點有相似的語義環境。為了降低重復預測的可能性,我們為這些模糊錨點分配動態軟標簽。假設我們訓練網絡進行N個周期,每個模糊錨點i在第j個周期的分類損失定義為:

l i j = ? t i j × log ? ( p i ) ? ( 1 ? t i j ) × log ? ( 1 ? p i ) , l_i^j = -t_i^j \times \log(p_i) - (1 - t_i^j) \times \log(1 - p_i), lij?=?tij?×log(pi?)?(1?tij?)×log(1?pi?), (隨著epochs的增加, l i j l_i^j lij?逐漸的就只等于 ? ( 1 ? t i j ) × log ? ( 1 ? p i ) - (1 - t_i^j) \times \log(1 - p_i) ?(1?tij?)×log(1?pi?))

其中 (p_i) 是錨點i的預測分類得分,(t_i^j) 和 (1 - t_i^j) 分別是該錨點在第j個周期的正負程度(即,損失權重)。(t_i^j) 的動態定義為:

t i j = p i max ? k p k × T j , t_i^j = \frac{p_i}{\max_k p_k} \times T_j, tij?=maxk?pk?pi??×Tj?,

T j = T m i n ? T m a x N ? 1 × j + T m a x , T_j = \frac{T_{min} - T_{max}}{N - 1} \times j + T_{max}, Tj?=N?1Tmin??Tmax??×j+Tmax?,

其中 (T_j) 是一個隨時間變化的變量,它在第j個周期為所有樣本分配相同的值,(T_{max}) 和 (T_{min}) 控制模糊錨點在第一個周期和最后一個周期的degree。我們將損失權重與分類得分呈正相關,考慮到預測得分較高的錨點應該更多地貢獻于正信號。直接使用 ( p_i ) 作為權重會使得在難樣本上的訓練變得不穩定,因為這些樣本的預測得分遠小于簡單樣本的得分。因此,我們使用 ( p_i ) 與最大得分的比率來規范化不同樣本的權重至同一尺度。動態調整 ( T_j ) 是很重要的,因為它在不同的訓練階段控制著“特征學習”與“重復預測移除”之間的平衡。

在訓練的早期階段,我們設置 (T_j) 相對較大,以引入更多的正監督信號以進行表示學習,從而使網絡能夠迅速收斂到一個穩健的特征表示空間。隨著訓練的進行,我們逐漸減少模糊錨點的正度,以便網絡學會去除重復的預測。

3.4. Network Structure

我們將提出的一對少數(o2f)標簽分配策略應用到FCOS上,這是一個典型的全卷積密集檢測器。網絡結構如圖3所示。檢測頭由兩個平行的卷積分支組成,每個特征金字塔網絡(FPN)層的輸出都連接一個分支。一個分支預測大小為 ( H × W × C H \times W \times C H×W×C) 的得分圖,其中 (C) 是數據集中的類別數,(H) 和 (W) 分別是特征圖的高度和寬度。另一個分支預測大小為 ( H × W × 4 H \times W \times 4 H×W×4) 的位置偏移圖和大小為 ( H × W × 1 H \times W \times 1 H×W×1) 的中心度圖。我們按照之前的工作將中心度圖與分類得分圖相乘,作為最終的分類-交并比聯合得分。

"Centerness map"是FCOS(Fully Convolutional One-Stage Object Detector)中用于提高檢測性能的一個概念。它是一個得分,用來表示一個位置相對于其目標邊界框中心的偏離程度。這個得分用于在非極大抑制(NMS)過程中下調低質量邊界框的權重,以抑制這些低質量的檢測結果。"Centerness"得分是通過與邊界框回歸分支平行的一個分支(只有一層)來預測的,這個簡單而有效的"centerness"分支能夠顯著提高檢測性能,而計算時間的增加微不足道

對于每個實例,我們選擇一個確定的正錨點和 (K) 個模糊錨點。其余的錨點被設置為負樣本。分類分支的訓練目標為每個實例定義如下:

L c l s = B C E ( p c , 1 ) + ∑ i ∈ A B C E ( p i , t i ) + ∑ i ∈ B F L ( p i , 0 ) L_{cls} = BCE(p_c, 1) + \sum_{i \in A} BCE(p_i, t_i) + \sum_{i \in B} FL(p_i, 0) Lcls?=BCE(pc?,1)+iA?BCE(pi?,ti?)+iB?FL(pi?,0)

其中 (p_c) 是單個確定錨點的分類得分,(A) 和 (B) 分別代表模糊錨點和負錨點的集合。BCE表示二元交叉熵損失,FL表示焦點損失。回歸損失定義為:

L r e g = ∑ i ∈ B G I o U ( b i , b g t ) L_{reg} = \sum_{i \in B} GIoU(b_i, b_{gt}) Lreg?=iB?GIoU(bi?,bgt?)

其中GIoU損失是基于廣義交并比的位置損失,(b_i) 是錨點 (i) 的預測位置,(b_{gt}) 是與錨點 (i) 對應的GT對象的位置。請注意,我們對正錨點和模糊錨點都應用了回歸損失。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/207246.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/207246.shtml
英文地址,請注明出處:http://en.pswp.cn/news/207246.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[動態規劃及遞歸記憶搜索法]1.鋼條切割問題

摘要 本系列從6道經典的動態規劃題入手,去理解動態規劃的基本思路和想法,以及動態規劃和遞歸記憶搜索法存在的某些聯系,對于每道題目,我們將用兩種方法去實現,這里講解第一道題目,作個開頭。 前言 我們知…

elasticsearch 內網下如何以離線的方式上傳任意的huggingFace上的NLP模型(國內避坑指南)

es自2020年的8.x版本以來,就提供了機器學習的能力。我們可以使用es官方提供的工具eland,將hugging face上的NLP模型,上傳到es集群中。利用es的機器學習模塊,來運維部署管理模型。配合es的管道處理,來更加便捷的處理數據…

吳恩達《機器學習》12-1:優化目標

在機器學習的旅程中,我們已經接觸了多種學習算法。在監督學習中,選擇使用算法 A 還是算法 B 的重要性逐漸減弱,而更關鍵的是如何在應用這些算法時優化目標。這包括設計特征、選擇正則化參數等因素,這些在不同水平的實踐者之間可能…

UG NX二次開發(C#)-求曲線在某一點處的法矢和切矢

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 1、前言2、在UG NX中創建一個曲線3、直接放代碼4、測試案例1、前言 最近確實有點忙了,好久沒更新博客了。今天恰好有時間,就更新下,還請家人們見諒。 今天我們講一下如何獲取一條曲線上某一條曲…

注意力機制的快速學習

注意力機制的快速學習 注意力機制 將焦點聚焦在比較重要的事物上 我(查詢對象Q),這張圖(被查詢對象V) 我看一張圖,第一眼,就會判斷那些東西對我而言比較重要,那些對于我不重要&…

Pytorch從零開始實戰12

Pytorch從零開始實戰——DenseNet算法實戰 本系列來源于365天深度學習訓練營 原作者K同學 文章目錄 Pytorch從零開始實戰——DenseNet算法實戰環境準備數據集模型選擇開始訓練可視化總結 環境準備 本文基于Jupyter notebook,使用Python3.8,Pytorch2.…

Elasticsearch、Logstash、Kibana(ELK)環境搭建

下面是 Elasticsearch、Logstash、Kibana(ELK)環境搭建的具體操作步驟: 安裝 Java ELK 是基于 Java 編寫的,因此需要先安裝 Java。建議安裝 Java 8 或以上版本。 下載并安裝 Elasticsearch Elasticsearch 是一個基于 Lucene 的…

DevEco Studio 運行項目有時會自動出現.js和.map文件

運行的時候報錯了,發現多了.js和.map,而且還不是一個,很多個。 通過查詢,好像是之前已知問題了,給的建議是手動刪除(一個一個刪),而且有的評論還說,一周出現了3次,太可怕了。 搜的過…

【網絡編程】-- 02 端口、通信協議

網絡編程 3 端口 端口表示計算機上的一個程序的進程 不同的進程有不同的端口號!用來區分不同的軟件進程 被規定總共0~65535 TCP,UDP:65535 * 2 在同一協議下,端口號不可以沖突占用 端口分類: 公有端口:0~1023 HT…

【android開發-23】android中WebView的用法詳解

1,WabView的用法 在Android中,WebView是一個非常重要的組件,它允許我們在Android應用中嵌入網頁,展示HTML內容。WebView是Android SDK中提供的標準組件,使用它我們可以很方便地將web頁面直接嵌入到Android應用中。Web…

亞信安慧AntDB數據庫中級培訓ACP上線,中國移動總部首批客戶認證通過

近日,亞信安慧AntDB數據庫ACP(AntDB Certified Professional)中級培訓課程于官網上線。在中國移動總部客戶運維團隊、現場項目部伙伴和AntDB數據庫成員的協同組織下,首批中級認證學員順利完成相關課程的培訓,并獲得Ant…

自然語言處理22-基于本地知識庫的快速問答系統,利用大模型的中文訓練集為知識庫

大家好,我是微學AI,今天給大家介紹一下自然語言處理22-基于本地知識庫的快速問答系統,利用大模型的中文訓練集為知識庫。我們的快速問答系統是基于本地知識庫和大模型的最新技術,它利用了經過訓練的中文大模型,該模型使用了包括alpaca_gpt4_data的開源數據集。 一、本地…

C //例10.3 從鍵盤讀入若干個字符串,對它們按字母大小的順序排序,然后把排好序的字符串送到磁盤文件中保存。

C程序設計 (第四版) 譚浩強 例10.3 例10.3 從鍵盤讀入若干個字符串,對它們按字母大小的順序排序,然后把排好序的字符串送到磁盤文件中保存。 IDE工具:VS2010 Note: 使用不同的IDE工具可能有部分差異。 代碼塊 方法…

2023_Spark_實驗二十五:SparkStreaming讀取Kafka數據源:使用Direct方式

SparkStreaming讀取Kafka數據源:使用Direct方式 一、前提工作 安裝了zookeeper 安裝了Kafka 實驗環境:kafka zookeeper spark 實驗流程 二、實驗內容 實驗要求:實現的從kafka讀取實現wordcount程序 啟動zookeeper zk.sh start# zk.sh…

生成元(Digit Generator, ACM/ICPC Seoul 2005, UVa1583)

如果x加上x的各個數字之和得到y,就說x是y的生成元。 給出n(1≤n≤100000),求最小生成元。 無解輸出0。 例如,n216,121,2005時的解分別為198,0,1979。 我的思路很簡單&am…

element-UI中el-scrollbar的使用

在elment-ui中有這么一個滾動條&#xff0c;當鼠標over到內容部分才會顯示&#xff0c;移開鼠標之后滾動條就會隱藏起來&#xff0c;相較于原生的滾動條比較美觀。 <el-scrollbar> //將滾動條的內部的內容放在里面即可 </el-scrollbar> 在使用過程中&#xff…

SNMP陷阱監控工具

SNMP&#xff08;簡單網絡管理協議&#xff09;是網絡管理的一個重要方面&#xff0c;其中網絡設備&#xff08;包括路由器、交換機和服務器&#xff09;在滿足預定義條件時將SNMP陷阱作為異步通知發送到中央管理系統。簡而言之&#xff0c;每當發生關鍵服務器不可用或硬件高溫…

microblaze仿真

verdivcs (1) vlogan/vcs增加編譯選項 -debug_accessall -kdb -lca (2) 在 simulation 選項中加入下面三個選項 -guiverdi UVM_VERDI_TRACE"UVM_AWARERALHIERCOMPWAVE" UVM_TR_RECORD 這里 -guiverdi是啟動verdi 和vcs聯合仿真。UVM_VERDI_TRACE 這里是記錄 U…

第四十二篇,MATLAB on Linux

最近在Ubuntu上安裝了一把MATLAB&#xff0c;以下操作親測有效。 一、版本 Linux&#xff1a;Ubuntu 18.04 MATLAB&#xff1a;R2021a Linux版&#xff0c;910 MATLAB下載鏈接&#xff1a;提取碼MUYU&#xff0c;感謝大佬無私奉獻&#xff01; 二、安裝 詳細的安裝步驟不…

linux高級篇基礎理論七(Tomcat)

??作者&#xff1a;小劉在C站 ??個人主頁&#xff1a; 小劉主頁 ??不能因為人生的道路坎坷,就使自己的身軀變得彎曲;不能因為生活的歷程漫長,就使求索的 腳步遲緩。 ??學習兩年總結出的運維經驗&#xff0c;以及思科模擬器全套網絡實驗教程。專欄&#xff1a;云計算技…