【RK3588部署yolo】算法篇

簡歷描述

· 收集并制作軍事偽裝目標數據集,包含真實與偽裝各種類型軍事目標共計60余類。其中,包含最新戰場充氣偽裝軍事裝備30余類,并為每一張圖片制作了詳細的標注。
· 針對軍事偽裝目標的特點,在YOLOv8的Backbone與Neck部分分別加入分組動態感知注意力、跨通道信息交互模塊,顯著提升了軍事偽裝目標的識別精度。

YOLO

YOLOv1

2016cvpr
作者在v3之后由于軍方用不干了,后續由別人開發
在這里插入圖片描述

在這里插入圖片描述

YOLOv2

在這里插入圖片描述

  • 高分辨率如圖

在這里插入圖片描述

  • 加了BN
  • 引入錨框
    中心點偏移權重來算長寬,讓他不全圖亂跑
    錨框中心點雙重約束使得收斂變快

錨框是針對每個圖像網格單元(grid cell)定義的,而不是針對整個圖像。具體來說,YOLOv2(以及YOLO系列的其他版本)在訓練時,對于每個網格單元,會使用多個錨框來預測目標的邊界框。
具體解釋:
每個網格單元有多個錨框:在YOLOv2中,目標圖像被分成一個S x S的網格,每個網格單元負責檢測某個區域內的目標。每個網格單元上會預測多個邊界框(通常是5個),這些框的初始形狀(寬高)是由預定義的錨框確定的。
錨框的數量與每個網格單元的預測數目:每個網格單元會用5個錨框來做預測,這些錨框是根據訓練數據中目標的尺度和寬高比預先確定的(通常通過K-means聚類)。因此,每個網格單元的5個錨框是針對該網格位置的不同尺度和不同寬高比的預測框。
舉個例子:
假設你有一個416x416的圖像,并且網絡將其劃分為13x13的網格(即每個網格的大小為32x32像素)。那么:
圖像的每個網格單元都有5個錨框(這5個錨框的尺寸是根據聚類或其他方法確定的)。
每個網格單元會預測5個邊界框,每個框對應一個錨框。網絡會根據實際物體的位置、尺寸以及錨框的預設位置來進行回歸調整。
錨框和目標物體匹配:
目標物體與網格單元的錨框之間會根據**IoU(Intersection over Union)**來進行匹配。
對于每個物體,選擇與其匹配度最高的錨框。
該錨框會預測物體的邊界框。實際預測的邊界框會根據錨框的位置、寬高進行調整(回歸)。
為什么每個網格單元有多個錨框?
不同的目標物體具有不同的尺寸、形狀(寬高比),單一的錨框無法涵蓋所有物體的特征。因此,YOLOv2設計了每個網格單元使用多個錨框來應對這些變化。多個錨框可以有效地覆蓋不同尺度和不同形狀的物體,從而提高目標檢測的準確性。
總結:
每個網格單元都有多個錨框(通常是5個)。
這些錨框是根據數據集中的目標物體的尺寸和寬高比來預定義的,目的是幫助模型更好地預測不同尺度和形狀的物體。

  • 采用特征融合,A+B,殘差連接類似于resnet
  • 把圖像縮放不同尺寸輸入訓練

YOLOv3
在這里插入圖片描述

maxpoll換成卷積,加殘差連接
在這里插入圖片描述

多個檢測頭,針對大、中、小物體
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

YOLOv4

  • 改進

在這里插入圖片描述

  • spp、pan
    在這里插入圖片描述

在這里插入圖片描述
pan就是一個思想,深層和主干網絡的融合
spp就是多感受野一個模塊

  • 數據增強

在這里插入圖片描述
圖示已經很清楚的說明了兩個圖像增強策略是什么
在這里插入圖片描述
相當于在正向的時候給圖片加噪聲,提升魯棒性
在這里插入圖片描述
改進了歸一化方法,這里不贅述
在這里插入圖片描述
將標簽變成軟平滑標簽,解決梯度問題
在這里插入圖片描述
換了激活函數,如圖詳細說明了他更平滑
在這里插入圖片描述
如圖很詳細說明了一些原因,不贅述
在這里插入圖片描述
如圖說明很清楚
在這里插入圖片描述
在這里插入圖片描述

Iou、GIou、DIou屬于不斷解決原有loss的問題
CIou(DIou pro)屬于在原有的loss上加功能
在這里插入圖片描述
在這里插入圖片描述

消除網格敏感性:讓bx,by的范圍變大,然后會出現如下情況
在這里插入圖片描述

中心點不再限制在一個格子里,相當于三個格子做預測,又有正樣本 閾值去篩選,所以就正樣本變多了

YOLOv5

無論文
只有代碼
但是代碼很具備工業可用性
yolov5 有 n、s、m、l、x不同大小的版本
在這里插入圖片描述
在這里插入圖片描述

  • 整體概述:
    上來肯定是backbone提取不同層級的這個特征,至于backbone肯定是自己選
    neck就是一個融合的模塊罷了,他的策略就是一條貪吃蛇
    先不斷下采樣再不斷上采樣,其中不斷上采樣涉及到解碼
    不斷下采樣也是通過一些模塊就行堆疊,這其中可以控制網絡深度
    其次就是引入pan思想,也可理解為是一個不同層級特征去進行重組(在neck中融合 的一種方法),其實是很普遍的方法。
  • 數據增強變成用Mixup、另外一個方法還是用Mosaic
  • 加入一些訓練策略
    在這里插入圖片描述
  • 損失函數
    用的CIoU
  • 同v4有消除網格敏感性,但正樣本錨框篩選不用IoU了,用他自己的方法,如下圖
    在這里插入圖片描述
    在這里插入圖片描述
    根據GT的長寬的比例倍數去篩選錨框,不能太大也不能太小

YOLOv8

無論文,只有代碼
由Ultralytics公司2023年1.10發布
支持obb任務(無人機圖像斜著框如下圖,這是我們項目中旋轉的重要原因)
在這里插入圖片描述yolov8

yolov8創新點

在這里插入圖片描述

yolov8結構圖與改進思路

在這里插入圖片描述
在yolov8.yaml文件中,網絡尺寸大小是是和depth_multiple 和width_multiple 參數控制的!
在這里插入圖片描述
換neck部分的兩個中間的c2f模塊為分組動態感知注意力
在backbone里面加入TSC挖掘模塊并融合
在這里插入圖片描述

yolov8重大特點之解耦頭Decoupled Head設計

最后的輸出是兩個特征圖,一個是分類特征圖對應著cls_loss,一個是回歸特征圖box_loss
在這里插入圖片描述

yolov8重大特點之Anchor-Free設計

傳統的先搞一堆錨框,一個中心點三個,然后生成很多樣本去篩選
現在,不撒錨框、不做匹配,模型直接“看圖說話”,你在哪、你多大、你是誰,全都由網絡自己學。

  • Anchor-Based的Anchor數量:(80x80+40x40+20x20)x3=25200 檢測頭數量:9個
  • Anchor-Free的預測框數量:80x80+40x40+20x20=8400 (一個grid cell的中心點就對應一個預測框)
    檢測頭數量:3個

在這里插入圖片描述
篩選的話人家自創了一套方法
篩選步驟:
1、獲取三個檢測頭的輸出結果(預測框、概率值)
2、將三個檢測頭的結果映射到同一原圖(640x640),同時將(l,t,r,b)坐標轉化為左上坐標(X_min ,Y_min)和右下坐標(X_max,Y_max)
3、初篩:所有的grid cell的中心點(anchor point)在GT框內的即為初始正樣本
4、提取對應類別的pred_score,計算CIOU計算align_matric=pred_score^0.5 * CIoU^6根據align_matric的值,篩選出top-N作為正樣本
5、處理一個中心點可能匹配到多個GT框的情況,僅保留最大的CIoU的值對應的預測框
其中pred_score 是類別特征圖中對應的最大類別的概率

yolov8重大特點之DFL LOSS設計

在這里插入圖片描述
在這里插入圖片描述
主要是為了消除平峰,,得到尖峰

yolov11

主要是網絡結構改的比較大
backbone的c2k換成c3k2
sppf后面加了一個c2psa
在這里插入圖片描述
在這里插入圖片描述

yolov12

中科院改的
創新的融入注意力機制
在這里插入圖片描述

  • 網絡圖

在這里插入圖片描述
可見A2C2f被廣泛使用,A2C2f是A2組成的
保留部分C3k2

  • A2的思想,FlashAttention是一個常用的庫

在這里插入圖片描述

  • A2

在這里插入圖片描述

  • R-ELAN
    圖示說的很清楚了
    在這里插入圖片描述
  • backbone對比
    總結就是前面都一樣后面變了,C3k2被A2C2f廣泛的替換了

在這里插入圖片描述

  • 其他的微調

在這里插入圖片描述

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

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

相關文章

【Spring Boot 快速入門】一、入門

目錄Spring Boot 簡介Web 入門Spring Boot 快速入門HTTP 協議概述請求協議響應協議解析協議TomcatSpring Boot 簡介 Spring Boot 是由 Pivotal 團隊(后被 VMware 收購)開發的基于 Spring 框架的開源項目,于 2014 年首次發布。其核心目標是簡…

如何調整服務器的內核參數?-哈爾濱云前沿

調整服務器內核參數是一項較為專業的操作,不同的操作系統調整方式略有不同,以下以常見的 Linux 系統為例,介紹一些調整服務器內核參數的一般步驟和常用參數:一般步驟 備份當前配置:在修改內核參數之前,先備…

C++基礎:模擬實現queue和stack。底層:適配器

引言模擬實現queue和stack,理解適配器,實現起來非常簡單。一、適配器 適配器是一種能讓原本不兼容的接口協同工作的設計模式或者組件。它的主要作用是對一個類的接口進行轉換,使其符合另一個類的期望接口,進而實現適配和復用。&am…

OI 雜題

OI 雜題字符串括號匹配例 1:與之前的類似,就是講一點技巧,但是比較亂,湊合著看吧。 字符串 括號匹配 幾何意義:考慮令 ( 為 111 變換,令 ) 為 ?1-1?1 變換,然后對這個 1/?11/-11/?1 構成…

【論文閱讀】Safety Alignment Should Be Made More Than Just a Few Tokens Deep

Safety Alignment Should Be Made More Than Just a Few Tokens Deep原文摘要問題提出現狀與漏洞:當前LLMs的安全對齊機制容易被攻破,即使是簡單的攻擊(如對抗性后綴攻擊)或良性的微調也可能導致模型越獄。核心論點: 作…

Generative AI in Game Development

如有侵權或其他問題,歡迎留言聯系更正或刪除。 出處:CHI 20241. 一段話總結本研究通過對來自 Reddit 和 Facebook 群組的 3,091 條獨立游戲開發者的在線帖子和評論進行定性分析,探討了他們對生成式 AI在游戲開發中多方面作用的認知與設想。研…

【C++算法】72.隊列+寬搜_二叉樹的最大寬度

文章目錄題目鏈接:題目描述:解法C 算法代碼:題目鏈接: 662. 二叉樹最大寬度 題目描述: 解法 這里的寬度指的是一層的最右邊的非空節點到一層的最左邊的非空節點,一共的節點數。 解法一:硬來&am…

什么是3DVR?VR技術有哪些應用場景?

VR與3D技術解析及應用在高科技領域,VR和3D是兩個常被提及的名詞。那么,這兩者之間究竟存在著怎樣的區別與聯系呢?簡而來說,VR技術是3D技術的一種高級延展和深化應用。3D技術,即將二維設計圖轉化為立體、逼真的視覺效果…

棧與隊列:數據結構核心解密

棧和隊列的基本 棧(Stack)是一種后進先出(LIFO, Last In First Out)的數據結構。元素的插入和刪除操作只能在棧頂進行。常見的操作包括壓棧(push)和彈棧(pop)。 隊列(Queue)是一種先進先出(FIFO, First In First Out)的數據結構。元素的插入在隊尾進行,刪除在隊…

《C++初階之STL》【list容器:詳解 + 實現】

【list容器:詳解 實現】目錄前言------------標準接口介紹------------標準模板庫中的list容器是什么樣的呢?1. 常見的構造2. 迭代器操作std::list::beginstd::list::endstd::list::rbeginstd::list::rend3. 容量的操作std::list::sizestd::list::empty…

【灰度實驗】——圖像預處理(OpenCV)

目錄 1 灰度圖 2 最大值法 3 平均值法 4 加權均值法 5 兩個極端的灰度值 將彩色圖轉為灰度圖地過程稱為灰度化。 灰度圖是單通道圖像,灰度化本質就是將彩色圖的三通道合并成一個通道的過程。三種合并方法:最大值法,平均值法和加權均值法…

【linux驅動開發】編譯linux驅動程序報錯:ERROR: Kernel configuration is invalid.

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄一、報錯二、解決方法1.先編譯linux內核源碼2.再重新編譯驅動程序一、報錯 在編譯驅動程序過程中,經常碰到的一個小問題: make -C /home/lu…

Java面試寶典:MySQL中的鎖

InnoDB中鎖的類型非常多,總體上可以如下分類: 這些鎖都是做什么的?具體含義是什么?我們現在來一一學習。 1. 解決并發事務問題 我們已經知道事務并發執行時可能帶來的各種問題。最大的一個難點是:一方面要最大程度地利用數據庫的并發訪問能力,另一方面又要確保每個用戶…

設備識別最佳實踐:四維交叉驗證框架

設備識別最佳實踐:四維交叉驗證框架 1. MAC地址分析(40%權重) - 設備身份核驗 核心方法: # MAC地址標準化(OUI提取) mac"B4:2E:99:FB:9D:78" oui$(echo $mac | tr -d : | cut -c 1-6 | tr a-f A-…

《Java 程序設計》第 9 章 - 內部類、枚舉和注解

大家好,今天我們來學習《Java 程序設計》第 9 章的內容 —— 內部類、枚舉和注解。這三個知識點是 Java 中提升代碼靈活性和可讀性的重要工具,在實際開發中非常常用。接下來我們逐一展開講解,每個知識點都會配上可直接運行的代碼示例&#xf…

CTF Misc入門篇

在CTF比賽中,misc方向是必考的一個方向,其中,圖形隱寫是最最常見的類型。 先從Misc開始入門,一般會借助CTF SHOW解題平臺,解題,然后進行技巧總結。 目錄 圖片篇(基礎操作) misc1 misc2 misc3 misc4 …

Vulnhub 02 Breakout靶機

一、信息收集 我是在僅主機模式下掃描的。 以此去訪問端口。 80端口是上面的主頁,查看一下源代碼,發現了如下圖所示的注釋,翻譯過來是:別擔心,沒有人會來這里,安全地與你分享我的訪問權限,它是…

論文閱讀:2024 arxiv AutoDefense: Multi-Agent LLM Defense against Jailbreak Attacks

總目錄 大模型安全相關研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 AutoDefense: Multi-Agent LLM Defense against Jailbreak Attacks https://arxiv.org/pdf/2403.04783#page9.14 https://www.doubao.com/chat/14064782214316034 文章目錄…

Spring Boot 請求限流實戰:基于 IP 的高效防刷策略

前言 互聯網流量就像洪水猛獸,來得快去得也快。如果不給接口裝個“限速閥”,服務器瞬間被刷爆,宕機成真,根本不稀奇。沒有限流機制,系統就像沒有剎車的賽車,跑得太快反而翻車。為了保證服務穩定、響應迅速,保護后端資源不被惡意請求掏空,限流成必備武器。 本篇文章將…

機器學習第二課之線性回歸的實戰技巧

1 線性回歸簡介 1 線性回歸應用場景 線性回歸是一種用于分析自變量與連續型因變量之間線性關系的模型,其核心是通過擬合線性方程(y w_1x_1 w_2x_2 ... w_nx_n b)來預測因變量或解釋自變量的影響。由于其簡單、可解釋性強的特點,線性回歸…