YOLOv10(7):YOLOv10訓練(以訓練VOC數據集為例)

YOLOv10(1):初探,訓練自己的數據_yolov10 訓練-CSDN博客

YOLOv10(2):網絡結構及其檢測模型代碼部分閱讀_yolov10網絡結構圖-CSDN博客

YOLOv10(4):損失(Loss)計算及其檢測模型代碼部分閱讀_yolov10損失函數-CSDN博客

YOLOv10(6):YOLOv10基于TensorRT的部署(基于INetworkDefinition)_yolov10網絡結構圖-CSDN博客


目錄

1. 寫在前面

2. 數據集準備

3. 訓練前配置

4. 開始訓練

5. 評估模型


1. 寫在前面

????????我們在YOLOv10初探第一課中,已經涉及到了一些關于如何訓練自己數據集的信息,接下來本節將以VOC數據集(VOC標注形式)來更詳細的帶領小伙伴們走一遍訓練。

2. 數據集準備

????????VOC數據集,全稱為Visual Object Classes數據集,是一種廣泛使用的計算機視覺數據集,主要用于目標檢測、圖像分割和圖像分類等任務。

????????VOC類型的標注一般我們可以使用labelimg軟件完成,標注后所得到的標簽文件一般是XML類型,其中的內容形式如下。其中坐標信息是左上右下的形式。

我們要訓練 YOLOv10,一種方法是轉換成YOLO格式(txt文件形式),其內容參考如下,每一行是一個目標,包含類別ID,中心點和寬高信息(歸一化之后)。

這一步我們可以通過腳本來轉換,參考s1_voc2yolo_convert.py文件。運行該腳本以后,會在指定的數據及路徑下生成labels子文件夾,文件夾中的內容如下所示,每一張圖片對應生成一個txt標注文件。

轉換完成以后,還需要將完整的數據集劃分為測試集、訓練集和評估集,參考腳本s2_split_train_val_test.py

運行完該腳本以后,會在數據集路徑下生成四個txt文件,分別是test.txt、train.txt、trainval.txt和val.txt,其中內容為完整的圖像路徑,如下。

3. 訓練前配置

經過以上的數據集轉換、處理以后,接下來僅需要進行簡單的配置就可以進行訓練了。

首先是數據集文件,在路徑ultralytics/cfg/datasets路徑下,仿照VOC.yaml創建一個新的文件即可。其內容如下所示。

然后是模型文件,如選擇YOLOv10m,可以直接修改ultralytics/cfg/models/v10/yolov10m.yaml文件,將其中的nc改成對應的類別數。

4. 開始訓練

處理完成數據,完成配置以后,就可以進行訓練了,前面講過,先對./ultralytics/models/yolov10/train進行一些改動,參考如下。

之后就可以開始訓練了,首先進入YOLOv10的頂層路徑,執行如下指令開始訓練。

python3 ./ultralytics/models/yolov10/train.py。

必要時使用sudo。

5. 評估模型

在訓練過程中,每一個epoch訓練完成以后都會進行相應的評估,可以觀察P、R、mAP@0.5、mAP@0.5:0.95等評估參數

也可以通過運行模型,將檢測結果繪制在圖像上進行觀看,具體使用python3 ./ultralytics/models/yolov10/predict.py,完成繪制以后,效果如下。

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

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

相關文章

汽車之家論壇評論全面采集實戰指南:Python爬蟲篇

聚焦汽車之家,解鎖評論寶藏 在這個數據為王的時代,每一個角落的信息都可能成為寶貴的洞察來源。汽車之家,作為汽車行業內的權威論壇,其海量的用戶評論不僅是消費者購車的重要參考,也是汽車品牌與市場研究者不可忽視的…

【Android面試八股文】在你之前的Android項目中,你是如何進行性能優化的?

在之前的Android項目中,優化和提升性能是一個重要且常見的任務。 以下是一些常用的性能優化方法和策略: 分析和測量: 使用Android Studio中的Profiling工具(如Profiler、Trace等)進行性能分析,識別CPU、內存和網絡使用情況。使用第三方工具(如Systrace)來分析系統層面…

iOS 練習項目 Landmarks (四):添加 AutoLayout 約束

iOS 練習項目 Landmarks (四):添加 AutoLayout 約束 iOS 練習項目 Landmarks (四):添加 AutoLayout 約束新增 topLabel圖片視圖圓形裁切陰影使用 AutoLayout 為詳情頁的組件添加約束DetailViewControllerDe…

如何在 Logback 和 Log4j 中獲取日志:一個開發者指南

日志記錄是軟件開發中的關鍵實踐,它幫助我們監控應用程序的行為,定位問題并優化性能。在 Java 生態系統中,Logback 和 Log4j 是兩個廣泛使用的日志框架,它們都基于 SLF4J API 提供日志服務。本文將指導你如何在這兩個框架中獲取日…

7-490 將字符串“software“賦給一個字符指針,并從第一個字母開始間隔地輸出該串(簡單字符串)

編程將字符串"software"賦給一個字符指針 然后從第一個字母開始間隔地輸出該串 請用指針法完成。 輸入樣例: 在這里給出一組輸入。例如&#xff1a; 無輸入輸出樣例: 在這里給出相應的輸出。例如&#xff1a; sfwr #include <stdio.h> #include <stri…

Linux環境下快速部署Spring Boot應用:高效命令組合實踐

概要&#xff1a; 本文旨在介紹一種高效的Linux命令組合&#xff0c;用于簡化Spring Boot項目的部署與管理流程。通過結合使用nohup、java -jar、輸出重定向以及進程管理命令&#xff0c;我們能夠實現Spring Boot應用的快速后臺啟動及便捷的進程控制&#xff0c;尤其適合于自動…

什么是 JVM( Java 虛擬機),它在 Java 程序執行中扮演什么角色?

JVM&#xff0c;全稱Java Virtual Machine&#xff0c;中文譯作“Java虛擬機”&#xff0c;它是運行Java程序的軟件環境&#xff0c;也是Java語言的核心部分之一。 想象一下&#xff0c;如果你是一位環球旅行家&#xff0c;每到一個新的國家&#xff0c;都需要學習當地的語言才…

【Linux】初識操作系統

一、馮?諾依曼體系結構 在學習操作系統之前&#xff0c;我們先來認識一下馮?諾依曼體系結構&#xff0c;我們常見的計算機&#xff0c;如筆記本。我們不常見的計算機&#xff0c;如服務器&#xff0c;大部分都遵守馮諾依曼體系。 截至目前&#xff0c;我們所認識的計算機&am…

神經網絡訓練(一):基于殘差連接的圖片分類網絡(ResNet18)

目錄 一、簡介:二、圖片分類網絡1.記載訓練數據(torch自帶的cifa10數據集)2.數據增強3.模型構建4.模型訓練三、完整源碼及文檔一、簡介: 基于殘差連接的圖片分類網絡,本網絡使用ResNet18作為基礎模塊,根據cifa10的特點進行改進網絡,使用交叉熵損失函數和SGD優化器。本網…

使用pyqt5編寫一個七彩時鐘

使用pyqt5編寫一個七彩時鐘 效果代碼解析定義 RainbowClockWindow 類初始化用戶界面顯示時間方法 完整代碼 在這篇博客中&#xff0c;我們將使用 PyQt5 創建一個簡單的七彩數字時鐘。 效果 代碼解析 定義 RainbowClockWindow 類 class RainbowClockWindow(QMainWindow):def _…

【TB作品】溫濕度監控系統設計,ATMEGA16單片機,Proteus仿真

題2:溫濕度監控系統設計 功能要求: 1)開機顯示時間(小時、分)、時分可修改; 2)用兩個滑動變阻器分別模擬溫度傳感器(測量范 圍0-100度)與濕度傳感器(0-100%),通過按鍵 可以在數碼管切換顯示當前溫度值、濕度值; 3)當溫度低于20度時,紅燈長亮; 4)當濕度高于70%時,黃燈長亮; 5)當…

安卓實現微信聊天氣泡

一搜沒一個能用的&#xff0c;我來&#xff1a; 布局文件&#xff1a; <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xml…

Tech Talk:智能電視eMMC存儲的五問五答

智能電視作為搭載操作系統的綜合影音載體&#xff0c;以穩步擴大的市場規模走入越來越多的家庭&#xff0c;成為人們生活娛樂的重要組成部分。存儲部件是智能電視不可或缺的組成部分&#xff0c;用于保存操作系統、應用程序、多媒體文件和用戶數據等信息。智能電視使用eMMC作為…

vue3中使用Antv G6渲染樹形結構并支持節點增刪改

寫在前面 在一些管理系統中&#xff0c;會對組織架構、級聯數據等做一些管理&#xff0c;你會怎么實現呢&#xff1f;在經過調研很多插件之后決定使用 Antv G6 實現&#xff0c;文檔也比較清晰&#xff0c;看看怎么實現吧&#xff0c;先來看看效果圖。點擊在線體驗 實現的功能…

服務端開發過程中常見的安全性問題

身份驗證與授權 密碼加密 加密傳輸 Https DDoS SQL注入 SQL注入的本質:數據和代碼未分離&#xff0c;即數據當做了代碼來執行。 解決辦法 檢查輸入的數據是否符合預期&#xff0c;不能直接放入數據庫中進行查詢字符串長度驗證mybatis具有防sql注入的方式 使用#{}代替${…

深入探討光刻技術:半導體制造的關鍵工藝

前言 光刻&#xff08;Photolithography&#xff09;是現代半導體制造過程中不可或缺的一環&#xff0c;它的精度和能力直接決定了芯片的性能和密度。本文將詳細介紹光刻技術的基本原理、過程、關鍵技術及其在半導體制造中的重要性。 光刻技術的基本原理 光刻是一種利用光化…

受限玻爾茲曼機淺析

受限玻爾茲曼機&#xff08;Restricted Boltzmann Machine&#xff0c;簡稱RBM&#xff09;是一種特殊的隨機生成神經網絡&#xff0c;能夠學習并發現數據的復雜規則分布。以下是關于受限玻爾茲曼機算法的詳細介紹&#xff1a; ?? 定義與起源 定義&#xff1a; 受限玻爾茲…

深入剖析Tomcat(十四) Server、Service 組件:如何啟停Tomcat服務?

通過前面文章的學習&#xff0c;我們已經了解了連接器&#xff0c;四大容器是如何配合工作的&#xff0c;在源碼中提供的示例也都是“一個連接器”“一個頂層容器”的結構。并且啟動方式是分別啟動連接器和容器&#xff0c;類似下面代碼 connector.setContainer(engine); try …

主流分布式消息中間件RabbitMQ、RocketMQ

分布式消息中間件在現代分布式系統中起著至關重要的作用。以下是一些主流的分布式消息中間件&#xff1a; 1. Apache Kafka - 特點&#xff1a;高吞吐量、低延遲、持久化、水平可擴展、分布式日志系統。 - 使用場景&#xff1a;日志收集與處理、實時流處理、事件驅動架構、大數…

NC204871 求和

鏈接 思路&#xff1a; 對于一個子樹來說&#xff0c;子樹的節點就包括在整顆樹的dfs序中子樹根節點出現的前后之間&#xff0c;所以我們先進行一次dfs&#xff0c;用b數組的0表示區間左端點&#xff0c;1表示區間右端點&#xff0c;同時用a數組來標記dfs序中的值。處理完dfs序…