YOLOV5標注訓練自己的數據全流程教程

概述

yolo在目標檢測領域是非常有代表性的模型,它速度快識別效果也很精準,是實時檢測模型中應用最廣泛的。yolo的原理和代碼是很容易獲得的,且有各式各樣的教程,但是模型怎么使用的教程相對比較少。本文講解如何使用yolov5模型訓練自己的模型,同時也包含了如何標注自己的數據。

標注自己的數據

首先要收集自己的要訓練的數據,可以通過網絡收集或者自己拍攝的途徑獲得。收集好圖片之后就要進行圖片的標注,這里推薦使用labelimg標注工具標注,可以自行在網絡搜索獲得。安裝完成labelimg標注軟件之后,打卡標注軟件,軟件內部如下圖所示。
在這里插入圖片描述
在標注之前我們要將搜集的圖片存放在一個文件夾下,然后新建一個文件夾用來存放標注文件。點擊軟件左上角的"Open Dir"圖標打開自己存放圖片的路徑,接著點擊"Change Save Dir"圖標打開剛剛創建的保存標注文件的路徑。然后點擊下圖箭頭指向的地方,點擊切換為"YOLO"圖標(代表使用yolo格式存儲,便于后續訓練)。

在這里插入圖片描述完成上述操作之后就可以開始標注圖片了。按w新建標注框,編輯標簽名稱,保存后就成功標注了第一張圖片。
在這里插入圖片描述
保存后查看標注文件保存的路徑會看到新建了兩個文件,classes.txt代表類別,另一個代表剛剛標注的文件對應的類別和坐標信息和原圖片名稱相對應。
在這里插入圖片描述

在代碼中配置自己的標注文件

標注就演示到這里了。這里只演示了單張的圖片的標注,實際的項目中樣本量至少也要幾十張,多張標注方式和這個一樣。
標注完成數據之后要劃分訓練數據集和驗證數據集,可以按8:2的比例劃分。劃分時候的目錄結構可以參考下圖。在這里插入圖片描述

標注完數據之后就要進行訓練了,yolov5使用的是ultralytics版本的代碼,可以自行在github中下載。打卡工程文件之后找到下圖所示的data路徑,新建一個自己的yaml文件,
在這里插入圖片描述
打開新建的yaml文件,將自己的圖片數據和對應標注文件劃分好訓練和驗證的路徑填寫在“train”和“val”后,代碼如下:

train: D:\mydata\train# 訓練數據的路徑
val: D:\mydata\val# 驗證數據的路徑# Classes 
names:0: fire #這里填寫自己標注的類別名稱。

訓練自己的數據集

經過以上操作數據集的標注和配置文件的編寫就完成了,接下來要進行到訓練步驟了。當然在訓練模型之前要配置好自己的代碼環境,在項目根目錄下可以找到requirements.txt文件,根據里面的對應的軟件包名稱完成環境配置。配置好環境之后,我們找到yolov5項目文件的根目錄,在終端中打開。在終端中輸入以下命令,–data后加自己的創建的yaml文件,–weight代表預訓練權重 使用yolov5s.pt文件即可,–cfg代表模型配置文件使用yolov5s.yaml即可,–batch-size 代表同時訓練的圖片張數(如果顯卡的顯存較小,適當寫小一點,在硬件支持的條件下越大越好),–epochs代表訓練的輪次。

python train.py --data mydata.yaml --weight yolov5s.pt --cfg yolov5s.yaml --batch-size 10 --epochs 100

如沒有問題就開始訓練了,終端會輸出訓練的進度。
在這里插入圖片描述
訓練結束之后終端里會輸出生成的pt文件存放路徑,以及這次訓練的精度的統計,還有存放這次訓練的結果路徑,可以通過這些數據回顧整個訓練過程。保存的pt文件可以為自己模型推理和預測。
在這里插入圖片描述

用訓練的模型pt文件進行預測

訓練完自己的數據集之后得到了pt文件,這個文件可以預測自己的目標檢測對象,預測在yolov5中使用的detect.py文件,和上文一樣在終端中打開項目文件的根目錄,在終端中輸入以下命令。–weight使用自己的pt文件,–source 代表用來預測的圖片或視頻的路徑。

python detect.py --weight fire.pt --source D:\video\fire.mp4

執行上述代碼之后會進行預測,在對應的結果目錄找到預測的結果便能知曉模型效果。下圖為火焰檢測的效果。
在這里插入圖片描述

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

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

相關文章

Linux運行jmeter報錯java.sql.SQLException:Cannot create PoolableConnectionFactory

在性能測試過程中遇見1個問題,終于解決了,具體問題如下。 問題 在windows電腦寫jmeter腳本連接數據庫連接成功 然后把該腳本放到Linux服務器上面,并把jmeter mysql驅動放到服務器上面,修改jmeter的mysql驅動路徑信息 注意&…

第十三章 : Spring Boot 日志記錄脫敏

第十三章 : Spring Boot 日志記錄脫敏 前言 本章重點:介紹secure-ext-spring-boot-starter 如何引入以及敏感數據脫敏,打印日志過程中自動脫敏,且支持手機號、郵箱、身份證號、住址、中文名、座機號、銀行卡、自定義等多種類型的脫敏。 基于Spring boot 2.3.2.RELEASE 背景…

【快速解決】實驗一:模擬實現進程的創建《操作系統上機》實驗報告

目錄 實驗要求 正文開始 ?編輯 難點講解 結語 實驗要求 實驗一:進程的創建 一、實驗項目類型:設計型 二、實驗目的和要求 加深對進程概念的理解,熟悉PCB的組織,深入了解創建進程的一般過程,掌握用隊列組織進程的…

數據庫系統之常用數據庫你用過幾個?

MySQL 開發廠商:AB公司——>Sun公司——>甲骨文公司 最新版本:5.7.43、8.0.34 發行方式: 社區版(MySQL Community Server) 免費,MySQL不提供任何技術支持 商業版(MySQL Enterprise Edition&#xff0…

LLVM學習筆記(62)

4.4.3.3.2. 指令處理的設置 4.4.3.3.2.1. 目標機器相關設置 除了基類以外,X86TargetLowering構造函數本身也是一個龐然大物,我們必須要分段來看。V7.0做了不小的改動,改進了代碼的結構,修改了一些指令的設置。 100 X86Targ…

加班做報表被嘲低效!快用大數據分析工具

做數據分析報表很耗時間,因為不僅要解決多業務系統數據質量標準不一問題,還需要進行大量的公式計算、報表設計與制作。但那是以前,在大數據分析工具強勢崛起的當下,這些工作都能交給大數據分析工具來做了。以前是花90%的時間做報表…

9.Docker的虛懸鏡像-Dangling Image

1.虛懸鏡像的概念 虛懸鏡像 (Dangling Image) 指的是倉庫名 (鏡像名) 和標簽 TAG 都是 的鏡像。 2.構建本地虛懸鏡像 這里我以unbuntu為例來說明。 2.1 編寫Dockerfile文件 FROM ubuntu:22.042.2 根據Dockerfile文件構建虛懸鏡像 docker build .上面這段命令&#xff0c…

選擇ERP系統的關鍵指標

在制造業工廠中,選擇一個合適的ERP系統能夠顯著提升生產效率、優化資源管理、增強決策支持。然而,如何從眾多ERP系統中選擇一個適合自己企業的系統,是許多負責人在面臨的問題。本文將詳細介紹選擇ERP系統的關鍵指標,幫助制造業工廠…

python查看目錄屬性

os.chown(path, uid, gid)

[MySQL-基礎]SQL語句

目錄 hello! 這里是歐_aita的頻道。 今日語錄: 只有放棄才是真正的失敗。 祝福語:愿你的代碼生活充滿注釋,邏輯清晰,debug之路暢通無阻。 大家可以在評論區暢所欲言,可以指出我的錯誤,在交流中共同進步。 歡迎關注我的…

基于51單片機的病床呼叫系統設計

**單片機設計介紹, 基于51單片機的病床呼叫系統設計 文章目錄 一 概要二、功能設計設計思路 三、 軟件設計原理圖 五、 程序六、 文章目錄 一 概要 基于51單片機的病床呼叫系統是一種用于醫療機構的設備,旨在提供快速、可靠的病人呼叫和監控功能。以下是…

HDFS元數據管理/磁盤清理維護

元數據管理 1.元數據管理概述 > HDFS分類-類型分包括以下幾部分 文件、目錄自身的屬性信息,例如文件名,目錄名,修改信息等 文件記錄的信息的存儲相關的信息,例如存儲塊信息,分塊情況,副本個數等 記錄…

03_使用API_系統與數學工具

數學工具 Math 代表數學,是一個工具類,里面提供的都是對數據進行操作的一些靜態方法 public class Test {public static void main(String[] args) {// 1. Math.abs() : 取絕對值System.out.println(Math.abs(-3.14)); // >>> 3.14// 2. Ma…

Centos7使用rpm安裝mysql 5.7.43

Centos7使用rpm安裝mysql 5.7.43 1、下載rpm包 wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.43-1.el7.x86_64.rpm-bundle.tar2、解壓并安裝 tar xf mysql-5.7.43-1.el7.x86_64.rpm-bundle.tar yum -y install mysql-*3、按需修改mysql配置 #注意&a…

Django框架環境的搭建(圖文詳解)

目錄 day01 Web框架和Django基礎 1.web框架底層 1.1 網絡通信?編輯 1.2 常見軟件架構 1.3 手擼web框架 2.web框架 2.1 wsgiref 2.2 werkzeug 2.3 各框架的區別 3.快速上手django框架 3.1 安裝 3.2 命令行 3.3 Pycharm 4.虛擬環境 4.1 創建虛擬環境 - 命令行 4…

7.華為OD技術面手撕代碼實錄:判斷ip地址

判斷ip地址 編寫一個函數來驗證輸入的字符串是否是有效的 Pv4Q 或IPv6 地址。IPv4 地址由十進制數和點來表示,每個地址包含4個十進制數,其范圍為 0-255,用(“.”)分割。比如,172.16.254.1: 同時,IPv4 地址內的數不會以 0 開頭。比如,地址 172.16.254.01 是不合法的。IPv6…

頁面添加水印效果實現

頁面效果&#xff1a; 源代碼&#xff1a; <div id"water-wrapper"></div> <div><div>111111111111111111111111111111111111111111111111111111111111111111111111111111111111</div><div>1111111111111111111111111111111111…

電線電纜行業生產管理怎么數字化?

行業介紹 隨著市場環境的變化和現代生產管理理念的不斷更新&#xff0c;電纜的生產模式也在發生轉變&#xff0c;批量小&#xff0c;規格多&#xff0c;交期短的新型制造需求逐年上升&#xff0c;所以企業車間管理的重要性越發凸顯&#xff0c;作為企業良性運營的關鍵&#xf…

Python學習:常用數據結構

Python DataStructure 一、數組(array)二、雙向鏈表(linkedlist)三、棧(stack)四、隊列(queue)五、Python中的可變與不可變類型 一、數組(array) class array:def __init__(self, capacity: int):self._data []self._capacity capacitydef __getitem__(self, position: int)…

2023 年 亞太賽 APMCM (A題)國際大學生數學建模挑戰賽 |數學建模完整代碼+建模過程全解全析

當大家面臨著復雜的數學建模問題時&#xff0c;你是否曾經感到茫然無措&#xff1f;作為2022年美國大學生數學建模比賽的O獎得主&#xff0c;我為大家提供了一套優秀的解題思路&#xff0c;讓你輕松應對各種難題。 完整內容可以在文章末尾領取&#xff01; 問題1 圖像處理&am…