(三)yolov5——模型訓練

一、準備數據

先準備一個MP4的視頻

1.測試一幀

使用opencv來提取每一個視頻的幀

先使用以下代碼查看一幀的內容,是否符合預期

import cv2
import matplotlib.pyplot as plt# 打開視頻文件
video = cv2.VideoCapture("111.mp4")
# 讀取一幀
ret, frame = video.read()plt.imshow(frame)# 顏色通道轉換為RBG
frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
plt.imshow(frame_rgb)
plt.axis('off')
plt.show()

?運行結果:

?2.提取每一幀

video = cv2.VideoCapture("111.mp4")
num = 0          # 計數器
save_step = 10   # 間隔幀
while True:ret, frame = video.read()if not ret:breaknum += 1if num % save_step == 0:cv2.imwrite("./images/" + str(num) + ".jpg", frame)

?運行結果:

3.標注工具?

?在之前創建的yolov5中安裝labelimg

pip install labelimg

在終端中使用命令打開窗口

labelimg

在labelimg窗口中,點擊"Open Dir",選擇剛才提取視頻幀的文件

選擇"YOLO"格式,點擊圖中的位置會切換

?點擊"View"選擇"Auto Save mode"

?點擊窗口中的"Save",選擇保存路徑

為每一幀圖片進行標注?

點擊"Create RectBox",為圖中人物進行框選,并命名,之后點擊"ok",之后的每一張類似這樣的操作

?標注完成后,點擊保存圖片信息的文件夾

?二、數據調整

  • images:存放圖片
    • train:訓練集圖片
    • val:驗證集圖片
  • label:存放標簽
    • train:訓練集標簽文件(要與訓練集圖片名稱一致)
    • val:驗證機標簽文件(要與訓練集圖片名稱一致)

創建一個dataset將數據全部存入其中

?

注意:label中的clesses.txt要在此文件的根目錄下

最后的目錄結構

?

?

三、模型訓練參數設置?

將images中的train和label,復制到yolov5文件夾下的data/images中

?在data根目錄下創建一個yaml文件

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ./datasets # dataset root dir
train: images/train # 訓練集的圖片
val: images/val # 驗證集的圖片
test: # test images (optional)# Classes.txt中的內容填入其中
names:0: baiyi1: xiaoqiao

將yolov5根目錄下的train.py中修改

四、啟動模型訓練

在終端中使用命令啟動

python train.py

正在運行的輸出:

?運行成功后:

點擊runs/train/exp 可以看到結果

使用detect.py來檢測目標視頻?

python detect.py --weights runs/train/exp/weights/best.pt --source dataset/111.mp4 --view-img

?在runs/train/exp中即可找到目標文件

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

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

相關文章

008 Linux 開發工具(下) —— make、Makefile、git和gdb

🦄 個人主頁: 小米里的大麥-CSDN博客 🎏 所屬專欄: Linux_小米里的大麥的博客-CSDN博客 🎁 GitHub主頁: 小米里的大麥的 GitHub ?? 操作環境: Visual Studio 2022 文章目錄 Linux 開發工具(下)Linux 項目自動化構建工…

前綴和題目:連續的子數組和

文章目錄 題目標題和出處難度題目描述要求示例數據范圍 解法思路和算法代碼復雜度分析 題目 標題和出處 標題:連續的子數組和 出處:523. 連續的子數組和 難度 5 級 題目描述 要求 給定一個整數數組 nums \texttt{nums} nums 和一個整數 k \tex…

隊的簡單介紹

隊列:只允許在一端進行插入數據操作,在另一端進行刪除數據操作的特殊線性表,隊列具有先進先出 FIFO(First In First Out)的特點。 入隊列:進行插入操作的一端稱為隊尾。 出隊列:進行刪除操作的一端稱為隊頭。 入隊列…

AI-Sphere-Butler之如何將豆包桌面版對接到AI全能管家~新玩法(一)

環境: AI-Sphere-Butler VBCABLE2.1.58 Win10專業版 豆包桌面版1.47.4 ubuntu22.04 英偉達4070ti 12G python3.10 問題描述: AI-Sphere-Butler之如何將豆包桌面版對接到AI全能管家~新玩法(一) 聊天視頻: AI真…

【STM32】啟動流程

1、.s啟動文件解析 STM32的啟動文件(一般是.s匯編文件,如startup_stm32f407xx.s)是STM32上電后執行的第一段代碼,承擔著“系統初始化化引導員”的角色。 它的主要作用是設置初始化棧指針(SP)、程序計數器&…

【vim】通過vim編輯器打開、修改、退出配置文件

通過vim編輯器打開任一配置文件 vim /etc/profile 英文輸入下,按i鍵進入INSERT模式,修改配置文件 完成修改后,按esc鍵退出INSERT模式 英文輸入下,輸入":wq!",即可保存并退出 :q #不保存并退出 :q! …

Effective Modern C++ 條款6:當 auto 推導類型不符合預期時,使用顯式類型初始化慣用法

在C開發中,auto關鍵字以其簡潔性和高效性被廣泛使用。然而,“自動推導”并非萬能,尤其在某些特殊場景下,auto的推導結果可能與開發者預期不符,甚至導致未定義行為。今天,我們以《Effective Modern C》條款6…

學習Linux進程凍結技術

原文:蝸窩科技Linux進程凍結技術 功耗中經常需要用到,但是linux這塊了解甚少,看到這個文章還蠻適合我閱讀的 1 什么是進程凍結 進程凍結技術(freezing of tasks)是指在系統hibernate或者suspend的時候,將…

GitHub 趨勢日報 (2025年06月22日)

📊 由 TrendForge 系統生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日報中的項目描述已自動翻譯為中文 📈 今日獲星趨勢圖 今日獲星趨勢圖 624 LLMs-from-scratch 523 ai-engineering-hub 501 n8n 320 data-engineer-handb…

kotlin中為什么新增擴展函數功能?

在 Kotlin 中,擴展函數的本質是「不修改原有類代碼,為其新增功能」,這源自編程中「開閉原則」(對擴展開放,對修改關閉)的第一性原理。 核心需求:當需要給第三方庫的類(如 Android 的…

excel 數據透視表介紹

Excel 數據透視表(PivotTable)就是你的數據分析神器!它能幫你快速匯總、分類、比較和分析 大量數據,從看似雜亂無章的表格中一鍵提取關鍵信息 ,生成交互式的匯總報告。無需復雜公式,只需拖拽幾下,就能讓數據“開口說話”&#xff…

半導體行業中的專用標準產品ASSP是什么?

半導體行業中的專用標準產品ASSP是什么? “專用標準產品”(ASSP - Application Specific Standard Product)是半導體集成電路中的一個重要分類。 你可以把它理解為介于通用標準產品和全定制ASIC之間的一種芯片。以下是它的核心定義和特點&a…

秋招Day14 - MySQL - 鎖

MySQL中有幾種類型的鎖? 鎖粒度來分,有表鎖、頁鎖和行鎖。 加鎖機制劃分,有樂觀鎖和悲觀鎖。 按兼容性劃分,有共享鎖和排他鎖。 按鎖模式劃分,有記錄鎖,間隙鎖,next-key鎖,意向鎖…

/var/lib/docker/overlay2目錄過大怎么辦

/var/lib/docker/overlay2 是 Docker 默認用于存儲 容器鏡像和容器運行時數據 的核心目錄,基于 overlay2 存儲驅動實現。以下是其具體作用和內容的詳細解析: 1. overlay2 目錄的作用 存儲鏡像分層結構: Docker 鏡像采用分層設計,o…

JimuReport:一款免費的數據可視化報表工具

JimuReport(積木報表)是一款免費的企業級數據可視化報表軟件,提供拖拽的方式像搭建積木一樣完成在線設計,功能涵蓋數據報表、打印設計、圖表報表、門戶設計、大屏設計等。 數據源 JimuReport 支持 30 多種數據源,包括…

Neo4j.5.X社區版創建數據庫和切換數據庫

在使用Neo4j數據庫(版本:neo4j-community-5.22.0)時,系統自帶的“neo4j”和“system”數據庫適用于日常的簡單學習和練習,但對于新的項目,將項目數據與練習數據混用會帶來諸多不便,例如查詢效率…

DAY33神經網絡

浙大疏錦行 定義了一個簡單的神經網絡,主要是掌握pytorch框架

拼團系統多層限流架構詳解

拼團系統多層限流架構詳解 一、整體架構設計理念 多層限流采用"層層設防"思想,通過網關層全局流量控制→服務層接口粒度限流→本地資源隔離→熱點參數精準防護的四級防御體系,實現從粗到細的流量治理,確保大促期間系統穩定性。 …

[ctfshow web入門] web92 `==`特性與intval特性

信息收集 和之前的題差不多,這次是使用了不嚴格相等的,詳情看這篇博客: 和 在 PHP 中有何區別?一共包含哪些部分? 首先,不能使$num 4476,然后需要使intval($num,0)4476 include("flag…

在Springboot項目部署時遇到,centos服務器上,curl請求目標地址不通 ,curl -x 可以請求通的解決辦法

在甲方服務器部署項目時,通常遇到需要開通外網權限的問題,有的是直接給開通服務器的白名單,就可以直接訪問白名單外網地址了。也有的是通過網絡轉發,將url前面的部分替換,可以進行網絡請求。有一次遇到一個罕見的&…