目標檢測算法YOLOv8簡介

? ? ? YOLOv8論文尚未發布,YOLOv8由Ultralytics公司推出并維護,源碼見:https://github.com/ultralytics/ultralytics ,于2024年1月發布v8.1.0版本,最新發布版本為v8.2.0,License為AGPL-3.0。

? ? ? 以下內容主要來自:

? ? ? 1.?https://docs.ultralytics.com/

? ? ? 2.?https://github.com/ultralytics/ultralytics/issues/189

? ? ? 3.?https://viso.ai/deep-learning/yolov8-guide/

? ? ? Ultralytics YOLOv8是一種尖端、最先進(state-of-the-art, SOTA)的模型,它建立在先前YOLO版本成功的基礎上,并引入了新功能和改進,以進一步提高性能和靈活性。YOLOv8的設計目標是快速、準確且易于使用,使其成為各種目標檢測和跟蹤、實例分割、圖像分類和姿態估計任務的絕佳選擇

? ? ? 向YOLOv5一樣,根據參數數量,YOLOv8有5種不同類型的模型:nano(n), small(s), medium(m), large(l), and extra large(x),如下圖所示:

? ? ? YOLOv8檢測模型結構如下所示:來源:https://github.com/ultralytics/ultralytics/issues/189 ,與?YOLOv5 相比,改變如下:

? ? ? (1).將C3模塊替換為C2f模塊;

? ? ? (2).將Backbone中的第一個6*6 Conv替換為3*3 Conv;

? ? ? (3).刪除兩個Conv(YOLOv5配置中的No.10和No.14);

? ? ? (4).將Bottleneck中的第一個1*1 Conv替換為3*3 Conv;

? ? ? (5).使用解耦頭(decoupled head)并刪除objectness分支.

? ? ? YOLOv8架構利用幾個關鍵組件來執行目標檢測任務:

? ? ? (1).Backbone是一系列卷積層,用于從輸入圖像中提取相關特征。SPPF層和后續的卷積層處理各種尺度的特征,而上采樣層則提高特征圖的分辨率。C2f模塊將高級特征(high-level features)與上下文信息相結合,以提高檢測精度。最后,檢測模塊使用一系列卷積層和線性層將高維特征(high-dimensional features)映射到輸出邊界框和目標類別。

? ? ? (2).Head負責獲取Backbone生成的特征圖并進一步處理它們,以邊界框和目標類別的形式生成模型的最終輸出。在YOLOv8中,Head被設計為解耦,這意味著它獨立處理對象性(objectness)、分類和回歸任務。這種設計使得每個分支能夠專注于各自的任務,并提高了模型的整體準確性。為了處理特征圖,Head使用一系列卷積層,然后是線性層來預測邊界框和類別概率。Head的設計針對速度和精度進行了優化,特別關注每層的通道數量和kernel大小,以最大限度地提高性能。注:新版本中objectness head已被刪除

? ? ? (3).YOLOv8中使用的框回歸損失基于Smooth L1損失函數,該函數常用于目標檢測任務。該損失函數平衡了L1和L2損失函數,并且對訓練數據中的異常值不太敏感。它用于計算預測的邊界框坐標與ground truth坐標之間的差異。然后使用損失函數在訓練過程中更新網絡的權重。注:早期版本使用的是Smooth L1,新版本是CIoU、DFL、BCE.

? ? ? (4).在YOLOv8的輸出層中,我們使用sigmoid函數作為objectness分數的激活函數,它表示邊界框包含目標的概率。對于類別概率,我們使用softmax函數,它表示目標屬于每個可能類別的概率。

? ? ? (5).YOLOv8中的Neck結構,它是一個新穎的C2f模塊,與YOLOv5中使用的PANet結構不同。C2f模塊取代了傳統的YOLO Neck結構,并改進了網絡中的特征提取。

? ? ? (6).YOLOv8中使用的網格單元的大小取決于圖像的輸入大小。具體來說,網格單元的大小是通過將輸入圖像劃分為具有一定數量單元的網格來確定的,其中每個單元對應于輸出特征圖的一個區域。在YOLOv8中,這個網格大小由Backbone中最終卷積層的步長決定。例如,如果最終卷積層的步長(Stride)為32,則輸入圖像將被劃分為32*32單元的網格,網格中的每個單元格將對應于輸出特征圖的大小為80*80的區域。類似地,如果最終的卷積層的步長為16,那么輸入圖像將被劃分為16*16單元的網格,網格中的每個單元將對應于輸出特征圖的大小為40*40的區域。YOLOv8中的Stride參數是指輸入圖像在Backbone中下采樣的像素數。

? ? ? YOLOv8主要features:

? ? ? (1).Mosaic數據增強:YOLOv8的變化是在最后10個epoch停止Mosaic增強操作以提高性能;

? ? ? (2).Anchor-Free Detection:YOLOv8改用無錨(anchor-free)檢測來提高泛化能力,基于錨點(anchor-based)的檢測的問題是預定義的錨點框降低了自定義數據集的學習速度。通過無錨檢測,模型直接預測目標的中心點并減少邊界框預測的數量,這有助于加速非最大值抑制(Non-maximum Suppression,NMS),用于消除冗余的檢測框;

? ? ? (3).C2f Module:YOLOv8模型的Backbone現在由C2f模塊而不是C3模塊組成。兩者的區別在于,在C2f中,模型連接了所有Bottleneck模塊的輸出。相反,在C3中,模型使用最后一個Bottleneck模塊的輸出。Bottleneck模塊由bottleneck殘差塊組成,可減少深度學習網絡中的計算成本。這加快了訓練過程并改善了梯度流(gradient flow)。

? ? ? (4).Decoupled Head:Head部不再一起執行分類和回歸。相反,它單獨執行task,這提高了模型性能。

? ? ? (5).Loss:使用BCE(Binary Cross-entropy)計算分類損失;使用CIoU(Complete IoU)和DFL(Distributional Focal Loss)計算回歸損失。DFL背后的主要思想是解決訓練數據中類別不平衡的問題。

? ? ? GitHub:https://github.com/fengbingchun/NN_Test

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

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

相關文章

FFmpeg 中 -f 命令參數詳解

FFmpeg FFmpeg是一個開源的、功能強大的多媒體框架,它能夠處理幾乎所有格式的音頻和視頻文件。FFmpeg由Fabrice Bellard創立,并由Michael Niedermayer等人繼續開發。它包括了libavcodec(用于編解碼)、libavformat(用于格式轉換)、libavfilter(用于音視頻過濾)、libavd…

微信授權登錄01-PC端

目錄 ## 前言 1.準備工作 1.1 網站域名 1.2 微信開放平臺 2.授權授權登錄開發 2.1 前端開發 2.1.1 發起授權登錄跳轉至掃碼頁面 2.1.2 掃碼成功后回調處理 2.2 后端開發 2.2.1 根據code查詢用戶信息 2.2.2 自動注冊登錄 ## 后記 ## 前言 最近整了個AI助手網站&am…

React 學習-5

React 條件渲染: 與js中的寫法一致 注意:在 JavaScript 中,true && expression 總是返回 expression,而 false && expression 總是返回 false。 因此,如果條件是 true,&& 右側的元素就會被渲…

BL120協議Modbus RTU和Modbus TCP互轉

Modbus網關BL120是一款專注于Modbus協議之間相互轉換的通信設備。Modbus網關BL120支持多種下行采集協議,包括Modbus RTU和Modbus TCP,同時在上行轉發協議方面同樣支持Modbus RTU和Modbus TCP。Modbus網關為Modbus RTU和Modbus TCP協議的相互轉換提供了穩…

回爐重造java----單列集合(List,Set)

體系結構: 集合主要分為兩種,單列集合collection和雙列集合Map,區別在于單列集合一次插入一條數據,而雙列的一次插入類似于key-value的形式 單列集合collection 注:紅色的表示是接口,藍色的是實現類 ①操作功能: 增加: add()&am…

SRS流媒體服務器在Linux下的安裝

目錄 一、安裝 1、切換到管理員權限 2、先安裝基礎依賴環境 3、下載SRS源文件

引領AI數據標注新紀元:景聯文科技為智能未來筑基

在人工智能蓬勃發展的今天,數據如同燃料,驅動著每一次技術飛躍。在這場智能革命的浪潮中,景聯文科技憑借其深厚的專業實力與前瞻性的戰略眼光,正站在行業前沿,為全球的人工智能企業提供堅實的數據支撐。 全國布局&…

智能座艙語音助手產品方案

一、用戶調研與痛點分析 1.目標用戶分析 用戶畫像 性別女性年齡50地域2-3線城市職業退休或退居二線教育中專、 大專、 本科財務家庭財務管理者愛好享受生活、 照顧家庭標簽有閑有小錢二、產品定位與賣點提煉 購車目的 愉悅自我, 專屬于自己的座駕: 家…

bitmap requires a valid src attribute

關于作者:CSDN內容合伙人、技術專家, 從零開始做日活千萬級APP。 專注于分享各領域原創系列文章 ,擅長java后端、移動開發、商業變現、人工智能等,希望大家多多支持。 未經允許不得轉載 目錄 一、導讀二、概覽三、問題記錄四、 推…

ncnn 算子操作描述

ncnn 算子操作描述,具體查詢見 ncnn/docs/developer-guide/operators.md at master Tencent/ncnn GitHub 都是從上述地方copy過來的,做備份。 具體如下:(針對有些算子 用pytorch 實現了用例,可以對比學習&#xf…

Java學習筆記網站技術博客匯總

江南一點雨網站 https://www.javaboy.org/ 個人博客 https://yanbingzn.github.io/ CS-Notes 面試筆記 https://www.cyc2018.xyz/ JavaGuide(Java學習&面試指南) https://javaguide.cn/home.html SpringMVC 教程 https://springmvc.javaboy…

C++運算符重載(操作符重載)

運算符重載 1. 運算符重載基礎1.1 運算符重載語法1.2 運算符重載細節補充1.3 更多的運算符重載 2. 重載單目運算符3. 如何直接輸入輸出對象類型——重載運算符 << 和 >>3.1 單個對象實現 cou <<3.2 多個對象實現 cout<<3.3 右移運算符 輸入 cin >&g…

Excel-VBA報錯01-解決方法

【已刪除的部件:部件/xl/vbaProject.bin。(Visual Basic for Applications(VBA))】 1.問題復現&#xff1a; Win10 &#xff1b;64位 &#xff1b;Office Excel 2016 打開帶有宏的Excel文件&#xff0c;報錯&#xff1a;【已刪除的部件&#xff1a;部件/xl/vbaProject.bin。…

KBU1010-ASEMI新能源專用KBU1010

編輯&#xff1a;ll KBU1010-ASEMI新能源專用KBU1010 型號&#xff1a;KBU1010 品牌&#xff1a;ASEMI 封裝&#xff1a;KBU-4 最大重復峰值反向電壓&#xff1a;1000V 最大正向平均整流電流(Vdss)&#xff1a;10A 功率(Pd)&#xff1a;中小功率 芯片個數&#xff1a;4…

pandas數據清洗和統計實例

步驟&#xff1a; 統計每一個列的標簽個數去除或者填充某一列NaN值遍歷某一列分組統計在DataFrame中插入行在DataFrame中追加行 pandas讀取Json數據或csv數據 以一個json數據為例&#xff0c;只要json每一個object都一致就可以&#xff1a; # 讀取json或csv df_f pd.read_…

抖店選品都怎么選品?什么樣的產品更吸引人,更具有購買力?

大家好&#xff0c;我是電商花花。 抖店選品一直都是我們無貨源商家的核心問題&#xff0c;不管是出單、還是爆單&#xff0c;店鋪想要有銷量的前提下都是選品。 很多人一上來就是就是選品&#xff0c;沒有選品經驗還瞎選品&#xff0c;結果到最后選了一堆出單的產品&#xf…

回聲消除原理

回聲消除原理 回聲消除是一種音頻處理技術&#xff0c;用于消除聲學空間中發生的回聲。其基本原理如下&#xff1a; 1. 遠端信號估計 捕獲遠端揚聲器發出的信號&#xff08;通常通過麥克風&#xff09;。使用自適應濾波器估計遠端信號&#xff0c;即回聲信號。 2. 回聲信號…

用wordpress建外貿獨立站的是主流的外貿建站方式

WordPress因其易用性、靈活性和強大的功能支持&#xff0c;成為了外貿企業首選的網站建設平臺。 從技術和功能角度來看&#xff0c;WordPress提供了豐富的主題和插件&#xff0c;這些都是構建專業外貿網站所必需的。例如&#xff0c;有專門為外貿網站設計的主題和插件&#xf…

【棧】Leetcode 驗證棧序列

題目講解 946. 驗證棧序列 算法講解 在這里就只需要模擬一下這個棧的出棧順序即可&#xff1a;使用一個stack&#xff0c;每次讓pushed里面的元素入棧&#xff0c;如果當前棧頂的元素等于poped容器中的當前元素&#xff0c;因此就需要讓棧頂元素出棧&#xff0c;poped的遍歷…

一篇文章幫你搞定微軟云計算證書Renew

IT證書都有過期的時間&#xff0c;像AWS是3年有效期&#xff0c;谷歌是2年&#xff0c;微軟是1年&#xff0c;那這些證書到期該怎么Renew更新呢&#xff1f; 小李哥最近的微軟AZ-204證書要到期了&#xff0c;到期前半年就會收到Microsoft發來提醒郵件。大家在這半年內任何時間都…