基于DETR目標檢測項目

DETR見解

DETR(Detection Transformer)是一種端到端的目標檢測模型,由Facebook AI Research(FAIR)于2020年提出。DETR采用了Transformer架構,與傳統的基于區域的目標檢測方法有所不同,它通過全局上下文來預測圖像中的目標,而無需使用先前的候選框或區域建議網絡。整個DETR可以分為四個部分,分別是:backbone、encoder、decoder以及predictionheads。基本思想是,首先用cnn抽取圖像特征,拿到每一個patch對應的向量,并加上位置編碼。然后用transformer encoder學習全局特征,幫助后面做檢測。接著將encoder的輸出作為tranformer deoder的輸入,同時還輸入了一個對象查詢。對象查詢按我的理解就是,它生成一個查詢分量q和前面encoder傳進來的k和v做一個交互,生成很多預測框。然后把預測框和真實框做匹配,詢問框內是否包含目標,然后在匹配上的這些框里面計算loss,進而向后傳播。接著就是預測頭的建立,最后生成預測結果。所以整個DETR網絡的工作就是:特征提取--特征加強--特征查詢--預測結果

建議使用云服務器進行操作(如果本機沒有GPU或者顯存資源不充足情況下)

一、代碼拉取

官方:GitHub直接搜索即可

改進版:代碼私信發送(資源免費)(主要原因就是資源綁定不成功? :(? 哭泣哭泣 )

論文:文章頂部下載

二、環境準備

解壓代碼,進入主目錄

安裝對應包

pip install -r requirements.txt

三、數據集準備

數據集下載

數據集建議準備VOC格式或者是COCO格式。(GitHub上官方使用數據集格式為coco格式)

其實不論是yolo格式或者是VOC格式,他們之間都可以通過代碼去轉換。

建議在訓練前,隨機抽取幾張圖片和標簽,查看標注是否準確無誤。

推薦數據集:CCTSDB_VOC_數據集-飛槳AI Studio星河社區

推薦數據集:水果分類目標檢測VOC數據集_數據集-飛槳AI Studio星河社區

數據集加載

導入數據集之后,查看數據集是否包括:JPG和XML,以及train.txt、val.txt、test.txt

使用運行test.py生成一個存在于主目錄下的train.txt和test.txt。這樣我們就設置完成訓練集和測試集的加載路徑了。

四、模型訓練

參數修改

打開detr.py,和train.py?

里面有相關參數,我們可以進行設置,其中包括凍結訓練層數以及解凍層數,這個是比較重要的。

detr.py參數:?

train.py參數修改

其中預訓練權重文件可以選擇resnet50或者是resnet101,可自行修改

?

五、訓練結果可視化

運行get_map.py生成loss、Map、recall等(如果不懂可以具體了解一下模型評估的幾個參數)

5.1模型評估參數介紹

  • 1. 精確率(Precision)?
    • 定義:在所有被模型預測為正類(即存在目標)的樣本中,實際為正類的比例。
    • 公式?:
    • Precision=(True Positives (TP)+False Positives (FP)) / True Positives (TP)
    • 解釋:
    • TP(True Positive)?:模型正確預測了目標的邊界框和類別。
    • FP(False Positive)?:模型錯誤地預測了目標的邊界框或類別(例如,將背景誤判為目標)。
    • 意義:高精確率意味著模型在預測目標時較少出現誤報。
  • 2. 召回率(Recall)?
    • 定義:在所有實際為正類的樣本中,被模型正確預測為正類的比例。
    • 公式?:
    • Recall=True Positives (TP) / (True Positives (TP)+False Negatives (FN))
    • 解釋?:
    • FN(False Negative)?:模型未能檢測到實際存在的目標。
    • 意義?:高召回率意味著模型能夠檢測到更多的真實目標,減少漏檢。
  • 3. 平均精度(Average Precision, AP)?
    • 定義:在不同置信度閾值下,精確率和召回率的綜合表現,通常以AP@[IoU閾值]表示,如AP@0.5。
    • 計算方法?:
    • 對每個類別,根據預測的置信度從高到低排序。
    • 計算不同置信度閾值下的精確率和召回率。
    • 繪制精確率-召回率曲線(Precision-Recall Curve)。
    • 計算曲線下的面積(Area Under Curve, AUC),即AP。
    • 意義?:AP綜合考量了模型在不同置信度下的精確率和召回率,是評估目標檢測模型性能的重要指標。
  • 4. 平均精度均值(Mean Average Precision, mAP)?
    • 定義:在多個類別上計算的平均AP值。
    • 公式?:
    • mAP=N1∑i=1NAPi
    • 其中,N 是類別的總數,APi 是第 i 個類別的AP值。
    • 常見變體?:
    • mAP@[IoU閾值]?:如mAP@0.5表示IoU閾值為0.5時的平均精度均值。
    • mAP@[0.5:0.95]?:在IoU閾值從0.5到0.95(步長為0.05)范圍內計算的平均mAP,更全面地評估模型性能。
    • 意義?:mAP綜合考慮了所有類別的性能,是目標檢測任務中最常用的綜合評估指標。
  • 5. 交并比(Intersection over Union, IoU)?
    • 定義:預測邊界框與真實邊界框之間的重疊程度。
    • 公式?:
    • IoU=Area of UnionArea of Overlap
    • 解釋?:
    • IoU值范圍在0到1之間,值越大表示預測框與真實框的重疊程度越高。
    • 常用IoU閾值(如0.5、0.75)來判斷預測框是否正確。
    • 意義?:IoU用于評估單個預測框的準確性,是計算TP、FP和FN的基礎。
  • 6. 其他相關指標?
    • F1分數(F1-Score):精確率和召回率的調和平均數,用于平衡兩者。
    • F1=2×Precision+RecallPrecision×Recall
    • 每秒幀數(Frames Per Second, FPS)?:模型推理速度,適用于實時檢測任務。
    • GFLOPs(Giga Floating Point Operations)?:模型的計算復雜度,影響推理速度和硬件需求。
  • Instances 的含義
    • 定義:
    • Instances 指的是當前批次(Batch)中所有圖像中真實存在的目標對象數量的總和?。

六、模型調優

yolo相關參數介紹鏈接:(https://docs.ultralytics.com/zh/modes/train/#train-settings)?

可以參考里面的參數介紹,來進行調優

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

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

相關文章

ZooKeeper 集群部署

ZooKeeper 集群部署 前言安裝部署資源下載JDK 部署Zookeeper 部署 前言 在 Linux 服務器上部署 Zookeeper 之前,需要先安裝 JDK。以下是相關版本及環境信息: JDK 版本 jdk-17_linux-x64_bin.tar.gz Zookeeper 部署的版本 3.5.7 操作系統版本 Red Hat E…

8.TCP Server端實現

1.C/S模型 2.Server 端功能分析 tcp_server.c #include "tcp_server.h" #include "lwip/sockets.h" #include <stdio.h>char ReadBuff[BUFF_SIZE]; /* TCP服務器任務函數 */ void vTcpserver_Task(void) {int sfd, cfd, n, i;struct sockaddr_in…

課設作業圖書管理系統

用戶注冊&#xff0c;登錄 播放地址 課設作業圖書管理系統_嗶哩嗶哩_bilibili 對圖書進行增刪改查 package com.xwr.controller; import com.xwr.entity.Book; import com.xwr.entity.Category; import com.xwr.service.BookService; import com.xwr.service.CategoryServ…

springboot 配置加密

springboot 配置加密 [TOC](springboot 配置加密) 前言一、在配置類賦值之前解密二、修改賦值后加密的配置類 前言 在一些國家項目中經常會要求不能暴露數據庫鏈接和密碼, 所以需要對配置文件里面的一些配置進行加密處理。 解決方法有兩種&#xff1a;一種是在配置加載后還沒給…

【操作系統】macOS軟件提示“已損壞,打不開”的解決方案

macOS軟件提示“已損壞&#xff0c;打不開”的解決方案 在使用 macOS 系統時&#xff0c;不少用戶都遇到過這樣的情況&#xff1a;當嘗試打開某個應用程序時&#xff0c;系統彈出提示“xxx 已損壞&#xff0c;打不開。您應該將它移到廢紙簍”&#xff0c;或者顯示“無法打開‘…

數據庫系統概論(二十)數據庫恢復技術

數據庫系統概論&#xff08;二十&#xff09;數據庫恢復技術 前言一、事務的基本概念1. 什么是事務&#xff1f;2. 事務的兩種"打開方式"2.1 隱式事務2.2 顯式事務&#xff1a;自己動手打包操作 3. 事務的四大"鐵律3.1 原子性3.2 一致性3.3 隔離性3.4 持久性 4.…

java將pdf文件轉換為圖片工具類

一、相關依賴 <!-- PDFBox for PDF processing --><dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.27</version></dependency>二、工具類 import org.apache.pdfbox.p…

零門檻探索國產數據庫硬核實力 —— 金倉數據庫在線體驗平臺體驗記

1、 金倉數據庫在線體驗平臺 最近&#xff0c;我發現了一個超棒的數據庫寶藏 —— 金倉數據庫在線體驗平臺。它在金倉社區上線后&#xff0c;憑借 “零門檻體驗 多場景交互” 的特點&#xff0c;迅速吸引了眾多數據庫愛好者的目光&#xff0c;我也忍不住去體驗了一番。 2、 …

Linux基本操作指令和vim編譯器

基本指令 查看日期與日歷 data 指令 顯示日期 用法1&#xff1a;data CST&#xff1a;China Standard Time 時區&#xff0c;中國標準時間 用法2&#xff1a; data 指定格式 常用格式&#xff1a; “%Y-%m-%d”(%F): 2025-06-16“%H:%M:%S”(%T): 20:19:45“%F%T”用法3&am…

“從HTTP到TCP/IP的旅程“-----深入淺出Java Web通信

先放結構圖&#xff1a; 一、引言&#xff1a;網絡通信就像寄快遞 想象一下我們在網上買了一本書&#xff0c;整個配送過程是這樣的&#xff1a; 應用層&#xff1a;你在購物網站填好收貨地址&#xff08;HTTP請求&#xff09;傳輸層&#xff1a;快遞公司把包裹打包&#xf…

docker build使用代理以實現構建過程中下載Github源碼等操作

在通過Dockerfile構建docker容器的過程中&#xff0c;經常會需要在構建過程中拉取Github上的代碼。當宿主機配好代理&#xff0c;但容器內是一個隔離的環境&#xff0c;若想在容器內訪問&#xff0c;則需再打通容器和宿主機之間的代理配置。 方法一&#xff1a; 若宿主機上的…

Docker 快速搭建一個基于 GPT-Vis 組件的統計圖表生成服務

以下是對工具簡單介紹&#xff1a; 可以在服務端使用 GPT-Vis 統計圖表組件直接渲染成圖片支持Docker一鍵部署&#xff0c;提供統計圖表渲染生成API接口支持多種GPT-Vis支持的組件&#xff0c;包括折線圖、柱形圖、餅圖、面積圖、條形圖、直方圖、散點圖、詞云圖、雷達圖、思維…

hal庫練習1

要求&#xff1a;一個按鍵實現呼吸燈的控制&#xff0c;一個按鍵控制LED燈的閃爍&#xff0c;串口發送數據控制燈的開關 定時器配置 1.選擇需要的定時器2.配置基礎參數&#xff08;根據時鐘樹給定時器輸入的時鐘&#xff09;3.打開中斷4.在主函數里打開中斷 定時器掃描按鍵 …

java線程(4)

程序(program) 是為完成制定任務,用某種語言編寫的一組指令的集合.簡單的話說:就是我們寫的代碼. 進程 1.進程是指進行中的程序,比如我們使用QQ,就啟動了一個進程,操作系統就會為該進程分配內存空間,當我們使用迅雷,又啟動了一個進程,操作系統將為迅雷分配新的內存空間. 2、…

02《F8Framework》核心入口 FF8.cs

FF8.cs類是 F8Framework的核心入口 采用單例模式 提供對各個功能模塊的全局訪問 【特點】通過靜態類FF8統一訪問所有功能 1.模塊化設計&#xff1a; 每個功能獨立 通過 ModuleCenter 統一管理 2.懶加載機制&#xff1a; …

【硬件】相機的硬件測試

相機測試 author: Alla Imatest 提供超過 30 種測試項目&#xff0c;主要包括&#xff1a; 1&#xff09;圖像基礎參數?&#xff1a;MTF&#xff08;調制傳遞函數&#xff09;、畸變、均勻性、動態范圍 2&#xff09;色彩與光學特性?&#xff1a;白平衡誤差、飽和度、gamma …

Profinet與Modbus TCP協議轉換技術:西門子S7-1500(主站)和歐姆龍NJ PLC的高效數據交換

一、項目背景 某大型現代化智慧農業養殖場致力于打造全方位智能化的養殖環境。其養殖系統中&#xff0c;環境監測與調控部分選用了西門子S7-1500PLC作為Profinet協議主站。該PLC憑借強大的運算能力和豐富的功能模塊&#xff0c;能夠精準地采集和處理養殖場內的溫度、濕度、空氣…

希爾伯特變換,實信號轉復信號的FPGA實現思路

希爾伯特變換將實信號轉復信號的原理 將實信號的相位推遲90度后作為復信號的虛部。 錯誤實現方式 實信號經過希爾伯特濾波后得到復信號的虛部&#xff0c;之后直接與實信號組成復信號。而由于濾波器本身會對信號延時&#xff0c;故I路與Q路并不是相差90度&#xff0c;所以此方…

多模態大語言模型演進:從視覺理解到具身智能的技術突破

多模態大語言模型演進:從視覺理解到具身智能的技術突破 多模態大語言模型(MLLMs)正在重塑人工智能的邊界,實現從"看見"到"理解"再到"行動"的全鏈條智能。本文將深入解析蘋果最新多模態研究進展,揭示視覺-語言模型十年演進的技術脈絡,剖析…

window顯示驅動開發—渲染管道

支持 Direct3D 版本 10 的圖形硬件可以使用共享可編程著色器核心進行設計。 GPU) (圖形處理單元可以編程著色器核心&#xff0c;這些著色器核心可以跨構成呈現管道的功能塊進行計劃。 這種負載均衡意味著硬件開發人員不需要使用每種著色器類型&#xff0c;而只需要使用執行呈現…