探索目標檢測:邊界框與錨框的奧秘

筆者在2022年開始學習目標檢測的時候,對各種框的概念那是相當混淆,比如:

  • 中文名詞:邊界框、錨框、真實框、預測框等
  • 英文名詞:BoundingBox、AnchorBox、Ground Truth等

同一個英文名詞比如BoundingBox翻譯成中文也有多個叫法。下面注重區分這些概念。

一、真實框Ground Truth & 邊界框Bounding Box

1??真實框Ground Truth與邊界框Bounding Box的定義

目標檢測需要識別圖片中多個物體的位置與類別。

為了方便模型訓練,我們人為地將圖片中物體的位置與種類標注出來,這就是真實邊界框Ground Truth

  • 「Ground Truth」等價于「Ground Truth Bounding Box(GT BBox)」

邊界框Bounding Box則更多的是一種泛指,它可以指代各個類型的框。


2??GT BBox的標注常見于兩種形式:
  1. PascalVOC的xml標注文件: ( x 1 , y 1 , x 2 , y 2 ) (x_1, y_1, x_2, y_2) (x1?,y1?,x2?,y2?),分別是矩形框左上角、右下角的坐標;
    如下圖中的坐標(1, 1)
  2. COCO的json標注文件: ( x , y , w , h ) (x, y, w, h) (x,y,w,h),xy是矩陣框的中心點坐標,wh是矩陣框的寬高;

標注文件中每行表示一個物體,一般是:圖片文件名、物體類別、邊緣框。

請添加圖片描述



二、邊界框的回歸 BoundingBox Regression

模型對其「預測框」進行微調,使其接近Ground Truth Bounding Box。
如下圖對紅色的BBox回歸,使其接近綠色的GT Box。

請添加圖片描述



三、錨框Anchor Box

1??Ground Truth Bounding Box與Anchor的區別:

錨框Anchor是算法自動生成出的,GT BBox是人為的標注框。

目前定位精準的目標檢測算法還是基于錨框的,即Anchor-based。


2??錨框的使用:
在訓練集上利用k-means等方法聚類出多個大小寬高不同的錨框
預測:每個錨框中是否含有目標物體
預測:從該錨框到邊界框的偏移

3??在目標檢測任務中,我們如何選擇錨框尺寸?

1)要么設定好錨框的尺寸:

  •   anchors:- [10,13, 16,30, 33,23]  # P3/8- [30,61, 62,45, 59,119]  # P4/16- [116,90, 156,198, 373,326]  # P5/32
    

2)要么通過k-means自動生成錨框,比如yolov5默認通過k-means自動生成錨框尺寸

3)作為超參數學習。我還沒見過,估計這會產生額外的計算量


4??錨框的標注過程

主流的目標檢測算法大多基于錨框Anchor Box,每一個錨框都是一個訓練樣本。

對于每個錨框,要么標注成背景(負樣本),要么關聯上一個真實邊界框(正樣本)。

一張圖片可能會產生上萬個錨框,其中絕大多數都是背景,即大量的負樣本,與之相比,正樣本可能只有幾十個。

請添加圖片描述

圖. 錨框的標注
  • 假設4個目標物體對應著4個GT BBox,模型對每個目標物體各生成9個錨框;
  • 計算每個GT與Anchor之間的IoU值,找到當前最大的IoU值 x 23 x_{23} x23?,將錨框關聯上BBox_3,由它去預測BBox_3。刪去該行該列;
  • 繼續找當前最大的IoU值 x 71 x_{71} x71?,重復如上操作,刪去該行該列;

與BBox關聯的錨框作為正樣本,其他的作為背景就是負樣本

PS:Anchor的概念最早出現在Faster RCNN提出的RPN網絡,RPN網絡的Anchor啟發了后面的SSDYolov2算法。



四、額外:召回與排序的概念

召回:將所有“可能的正確結果”返回給排序

排序:會將所有召回的結果進行排序,將最靠前的結果作為最終答案


如果這篇文章對您有些許幫助,請幫忙點個贊👍或收個藏📃。您的支持是我繼續創作的動力💪!


不要害怕,不要著急。保持每日的前進??與積極的內心??,命運總在曲折中饋贈最好的禮物。

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

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

相關文章

[原創](現代Delphi 12指南):[macOS 64bit App開發]: [1]如何使用原生NSAlert消息框 (runModal模式)

[作者] 常用網名: 豬頭三 出生日期: 1981.XX.XX 企鵝交流: 643439947 個人網站: 80x86匯編小站 編程生涯: 2001年~至今[共24年] 職業生涯: 22年 開發語言: C/C++、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 開發工具: Visual Studio、Delphi、XCode、…

LangChain的向量RAG與MCP在意圖識別的主要區別

LangChain的向量RAG與MCP在意圖識別實現上的區別主要體現在技術路徑、流程設計以及應用場景三個方面: 1. 技術路徑差異 LangChain向量RAG 語義相似度驅動:通過用戶輸入的原始查詢與向量化知識庫的語義匹配實現意圖識別。例如,用戶提問"…

[特殊字符] Spring Cloud 微服務配置統一管理:基于 Nacos 的最佳實踐詳解

在微服務架構中,配置文件眾多、管理復雜是常見問題。本文將手把手演示如何將配置集中托管到 Nacos,并在 Spring Cloud Alibaba 項目中實現統一配置管理 自動刷新機制。 一、為什么要使用 Nacos 統一配置? 傳統方式下,每個服務都…

2025平航杯—團隊賽

2025平航杯團隊賽 計算機取證 分析起早王的計算機檢材,起早王的計算機插入過USB序列號是什么(格式:1)分析起早王的計算機檢材,起早王的便簽里有幾條待干(格式:1)分析起早王的計算機檢材,起早王的計算機默認瀏覽器是什…

JSON-RPC 2.0 規范中文版——無狀態輕量級遠程過程調用協議

前言 JSON-RPC是一種簡單、輕量且無狀態的遠程過程調用(RPC)協議,它允許不同系統通過標準化的數據格式進行通信。自2010年由JSON-RPC工作組發布以來,已成為眾多應用中實現遠程交互的基礎協議之一。本規范主要表達了JSON-RPC 2.0版…

微控制器編程 | ISP、IAP 與 ICP 的原理與比較

注:英文引文,機翻未校。 圖片清晰度限于引文原狀。 Introduction to Programming of Microcontroller: ISP, IAP and ICP 微控制器編程介紹:ISP、IAP 和 ICP Date: 30-11-2022 1. What is Microcontroller Programming 什么是微控制器編…

Allegro23.1新功能之新型via structure創建方法操作指導

Allegro23.1新功能之新型via structure創建方法操作指導 Allegro升級到了23.1后,支持創建新型via structure 通過直接定義參數來生成 具體操作如下 打開軟件,選擇 Allegro PCB Designer

IBM WebSphere Application Server 7.0/8.5.5證書過期問題處理

證書過期錯誤日志: [3/14/16 7:22:20:332 PDT] 0000007d WSX509TrustMa E CWPKI0312E: The certificate with subject DN CNMXSYSTEMS, OUctgNodeCell01, OUctgNode01, OIBM, CUS has an end date Mon Jan 11 11:17:18 PST 2016 which is no longer valid. [3/14/…

select,poll,epoll區別聯系

selsect,poll,epoll區別聯系 目錄 一、區別 二、聯系 select、poll 和 epoll 都是在 Linux 系統中用于實現 I/O 多路復用的機制,它們的主要目的是讓程序能夠同時監控多個文件描述符,以判斷是否有事件發生,從而提高 I/O 操作的效率。 一、區…

curl和wget的使用介紹

目錄 一、curl 和 wget 區別 二、wget的使用 2.1 參數說明 2.2 wget 使用示例 三、curl的使用 3.1 參數說明 3.2 curl使用示例 一、curl 和 wget 區別 wget 和 curl 都可以下載內容。它們都可以向互聯網發送請求并返回請求項,可以是文件、圖片或者是其他諸如…

日語學習-日語知識點小記-構建基礎-JLPT-N4階段(12): ておき ます

日語學習-日語知識點小記-構建基礎-JLPT-N4階段(12): ておき ます。 1、前言(1)情況說明(2)工程師的信仰 2、知識點(1)~ておき ます。(2&#x…

高質量水火焰無損音效包

今天設計寶藏給大家分享的是Cinematic Elements: Fire & Water音頻資源庫包含大量高質量的火焰和水的聲音效果。它具有非常強烈的個性特征和次世代的音效。火焰和水是兩個令人印象深刻而 interessing 的元素。它們的表現形式從微小無害到巨大毀滅性都有。因此,它們的聲音特…

畢業論文 | 傳統特征點提取算法與匹配算法對比分析

傳統特征點提取算法與匹配算法對比分析 一、特征點提取算法對比二、特征匹配算法對比三、核心算法原理與公式1. **Harris角點檢測**2. **SIFT描述子生成**3. **ORB描述子**四、完整Matlab代碼示例1. **Harris角點檢測與匹配**2. **SIFT特征匹配(需VLFeat庫)**3. **ORB特征匹配…

【網絡原理】從零開始深入理解HTTP的報文格式(二)

本篇博客給大家帶來的是網絡HTTP協議的知識點, 續上篇文章,接著介紹HTTP的報文格式. 🐎文章專欄: JavaEE初階 🚀若有問題 評論區見 ? 歡迎大家點贊 評論 收藏 分享 如果你不知道分享給誰,那就分享給薯條. 你們的支持是我不斷創作的動力 . 王子,公主請閱…

Microsoft .NET Framework 3.5 離線安裝包 下載

Microsoft. NET Framework 3.5 是支持生成和運行下一代應用程序和XML Web Services 的內部Windows 組件, 對 .NET Framework 2.0 和 3.0 中的許多新功能進行了更新和增補, 且附帶了 .NET Framework 2.0 Service Pack 1 和 .NET Framework 3.0 Service…

Flask + ajax上傳文件(三)--圖片上傳與OCR識別

本教程將詳細介紹如何使用Flask框架構建一個圖片上傳與文字識別(OCR)的Web應用。我們將使用EasyOCR作為OCR引擎,實現一個支持中文和英文識別的完整應用。 環境準備 首先,確保你已經安裝了Python 3.7+環境,然后安裝必要的依賴庫: pip install flask easyocr pillow werkz…

模型部署技巧(一)

模型部署技巧(一) 以下內容是參考CUDA與TensorRT模型部署內容第六章,主要針對圖像的前/后處理中的trick。 參考: 1.部署分類器-int8-calibration 2. cudnn安裝地址 3. 如何查找Tensor版本,與cuda 和 cudnn匹配 4. ti…

MySQL--數據引擎詳解

存儲引擎 MySQL體系結構 連接層: 主要接收客戶端的連接,然后完成一些鏈接的處理,以及認證授權的相關操作和安全方案,還要去檢查是否超過最大連接數等等,比如在連接MySQL服務器時需要輸入用戶名,密碼&#…

【含文檔+PPT+源碼】基于微信小程序的健康飲食食譜推薦平臺的設計與實現

項目介紹 本課程演示的是一款基于微信小程序的健康飲食食譜推薦平臺的設計與實現,主要針對計算機相關專業的正在做畢設的學生與需要項目實戰練習的 Java 學習者。 1.包含:項目源碼、項目文檔、數據庫腳本、軟件工具等所有資料 2.帶你從零開始部署運行本…

當OA闖入元宇宙:打卡、報銷和會議的未來狂想

引言:虛實共生中的組織基因突變 元宇宙正以虛實共生的形態重構人類協作的底層邏輯。傳統OA系統建立的物理規則——指紋打卡驗證在場性、紙質票據堆砌信任鏈、會議室排期協調時空資源——在元宇宙的數字原野上迎來基因級重組。這場變革不僅是技術工具的迭代&#xf…