YOLOv5-入門篇筆記

1.創建環境

conda create -n yolvo5 python=3.8

去pytorch.org下載1.8.2的版本。

pip --default-timeout=1688 install torch==1.8.2 torchvision==0.9.2 torchaudio==0.8.2 --extra-index-url https://download.pytorch.org/whl/lts/1.8/cu111

github上下載yolov5的zip

pip --default-timeout=1688 install -r requirements.txt

通過網盤分享的文件:yolov5
鏈接: https://pan.baidu.com/s/1oigw2mPo9uVoX4hWXmiGWA?pwd=npue 提取碼: npue

安裝jupyter

pip install pywinpty==2.0.5
pip --default-timeout=1688 install jupyterlab

安裝標注工具

pip install labelimg
pip install pyqt5 sip

2.模型檢測

weights

訓練好的模型文件

python detect.py --weights yolov5x.pt

source

檢測的目標,可以是單張圖片,文件夾,屏幕或者攝像頭等。

conf-thres

iou-thres

基于torch.hub的檢測方法

import torchmodel = torch.hub.load("./", "yolov5s", source = "local")img = "./data/images/zidane.jpg"results = model(img)results.show()

3.數據集構建

用labelimg

存儲格式改成yolov

a上一張圖

d下一張圖

w創建框

4.模型訓練

創建

分別存放沒標注的和標注的文件

把labels里的classes移到和images、labels同一目錄

看detect.py文件中的weight和data參數

相關文件的路徑

把.yaml中的內容修改,訓練要把train.py的

修改成修改的.yaml的路徑。

修改虛擬內存

設置? ?系統? 系統信息 高級系統設置

更改所在盤的虛擬內存就行了。

訓練好后,可以用

tensorboard --logdir runs

看參數

沒數據的話,安裝一下這個

pip install protobuf==3.20.0

檢測視頻

python detect.py --weights runs/train/exp11/weights/best.pt --source BVN.mp4 --view-img

5.Pyside6可視化界面

pip install Pyside6

在可視化界面弄好前端后,在vscode中下載pyside6插件后。將ui文件轉換成py

import cv2
import sys
import torch
from PySide6.QtWidgets import QMainWindow, QApplication, QFileDialog
from PySide6.QtGui import QPixmap, QImage
from PySide6.QtCore import QTimerfrom main_window_ui import Ui_MainWindowdef convert2QImage(img):height, width, channel = img.shapereturn QImage(img, width, height, width * channel, QImage.Format_RGB888)class MainWindow(QMainWindow, Ui_MainWindow):def __init__(self):super(MainWindow, self).__init__()self.model = torch.hub.load('./',  # 指向本地克隆的倉庫'custom', path='runs/train/exp11/weights/best.pt',source='local')self.setupUi(self)self.timer = QTimer()self.timer.setInterval(100)self.video = Noneself.bind_slots()def image_pred(self, file_path):results = self.model(file_path)image = results.render()[0]return convert2QImage(image)def open_image(self):print("點擊了檢測文件")self.timer.stop()file_path, _ = QFileDialog.getOpenFileName(self, dir = "./demo_images/images/train", filter = "*.jpg;*.png;*.jpeg")if file_path:pixmap = QPixmap(file_path)qimage = self.image_pred(file_path)self.input.setPixmap(pixmap)self.output.setPixmap(QPixmap.fromImage(qimage))def video_pred(self):ret, frame = self.video.read()if not ret:self.timer.stop()else:frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)self.input.setPixmap(QPixmap.fromImage(convert2QImage(frame)))results = self.model(frame)image = results.render()[0]self.output.setPixmap(QPixmap.fromImage(convert2QImage(image)))def open_video(self):print("點擊了檢測文件")file_path, _ = QFileDialog.getOpenFileName(self, dir = "./", filter = "*.mp4")if file_path:self.video = cv2.VideoCapture(file_path)self.timer.start()   def bind_slots(self):self.detpic.clicked.connect(self.open_image)self.detvid.clicked.connect(self.open_video)self.timer.timeout.connect(self.video_pred)if __name__ == "__main__":app = QApplication(sys.argv)window = MainWindow()window.show()app.exec()

6.Gradio搭建Web GUI

pip install gradio
import torch
import gradio as grmodel = torch.hub.load('./', 'custom', path='runs/train/exp11/weights/best.pt',source='local')title = "基于Gradio的YOLOv5演示項目"desc = "這是一個基于Gradio的YOLOv5演示項目,非常簡潔,非常方便!"base_conf, base_iou = 0.25, 0.45def det_image(img, conf, iou):model.conf = confmodel.iou = ioureturn model(img).render()[0]
gr.Interface(inputs = ["image", gr.Slider(minimum = 0, maximum = 1, value = base_conf, interactive=True), gr.Slider(minimum = 0, maximum = 1, value = base_iou, interactive=True)],outputs = ["image"],fn = det_image,title = title,description = desc,live = True,examples = [["./demo_images/images/train/demo_images30.jpg", base_conf, base_iou], ["./demo_images/images/train/demo_images120.jpg", base_conf, base_iou]]).launch()

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

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

相關文章

【PostgreSQL 03】PostGIS空間數據深度實戰:從地圖服務到智慧城市

PostGIS空間數據深度實戰:從地圖服務到智慧城市 關鍵詞 PostGIS, 空間數據庫, 地理信息系統, GIS, 空間查詢, 地理分析, 位置服務, 智慧城市, 空間索引, 坐標系統 摘要 PostGIS是PostgreSQL的空間數據擴展,它將普通的關系數據庫轉變為強大的地理信息系統…

科技修真的解決方案

“科技修真”是一個結合現代科技與修真(玄幻)元素的創新概念,通常出現在科幻或玄幻文學作品中,但也可能指代現實中的科技與傳統文化、超自然理念的融合探索。以下是幾種可能的“科技修真”方案,涵蓋技術實現、文化融合…

STM32的HAL編碼流程總結(上部)

目錄 一、GPIO二、中斷系統三、USART串口通信四、I2C通信五、定時器 一、GPIO 1.選擇調試類型 在SYS中Debug選擇Serial Wire模式 2.選擇時鐘源 在RCC中將HSE和LSH都選擇為內部晶振 3.時鐘樹配置 4.GPIO配置 在芯片圖上選擇開啟的引腳和其功能 配置引腳的各自屬性 5.工…

java直接獲取MyBatis將要執行的動態sql命令(不是攔截器方式)

目錄 前言 一. 準備數據 1. 傳輸過來的json條件數據 2. mybatis 配置的動態sql 3. 想要的最終會執行的sql并返回給頁面展示 二. 實現方式 三. 最終代碼 前言 1.在平常開發過程中,MyBatis使用時非常多的,一般情況下我們只需要在控制臺看看MyBatis輸出的日志,要不就是實…

機器學習算法-決策樹

今天我們用一個 「相親決策」 的例子來講解決策樹算法,保證你輕松理解原理和實現! 🌳 決策樹是什么? 決策樹就像玩 「20個問題」猜謎游戲: 你心里想一個東西(比如「蘋果」) 朋友通過一系列問題…

2025——》VSCode Windows 最新安裝指南/VSCode安裝完成后如何驗證是否成功?2025最新VSCode安裝配置全攻略

1.VSCode Windows 最新安裝指南: 以下是 2025 年 Windows 系統下安裝 Visual Studio Code(VSCode)的最新指南,結合官方文檔與實際操作經驗整理而成: 一、下載官方安裝包: 1.訪問官網: 打開瀏覽器,進入 VSCode 官方下載頁面https://code.visualstudio.com/Download 2…

【Elasticsearch】suggest

在Elasticsearch中,suggest 是一個非常強大的功能,用于實現自動補全、拼寫糾錯和模糊搜索等功能。它可以幫助用戶更快地找到他們想要的內容,同時提升搜索體驗。以下是關于 suggest 的詳細使用方法和常見場景。 1\. Suggest 的基本概念 sugges…

[SAP] 如何查詢當前屏幕的Tcode?

事務代碼Tcode是SAP中到達特定屏幕的快捷路徑 如何查詢以下屏幕的事務碼Tcode? 要瀏覽當前所使用的屏幕的事務碼,可以選擇System | Status 這里的事務代碼是[VA22],它是Change Quotation的事務代碼

PostgreSQL的擴展 dblink

PostgreSQL的擴展 dblink dblink 是 PostgreSQL 的一個核心擴展,允許在當前數據庫中訪問其他 PostgreSQL 數據庫的數據,實現跨數據庫查詢功能。 一、dblink 擴展安裝與啟用 1. 安裝擴展 -- 使用超級用戶安裝 CREATE EXTENSION dblink;2. 驗證安裝 -…

ADB推送文件到指定路徑解析

您執行的命令 adb push ota.zip /sdcard/Download 中,目標路徑 /sdcard/Download 是您顯式指定的,因此 ADB 會直接將文件推送到此位置。具體過程如下: 1. 命令結構解析 adb push:ADB 的推送指令。ota.zip:本地計算機上…

Linux 內核中 skb_orphan 的深度解析:從版本差異到核心機制

引言 在 Linux 內核網絡子系統中,struct sk_buff(簡稱 skb)是管理網絡數據包的核心數據結構。skb_orphan 作為其生命周期管理的關鍵函數,負責切斷 skb 與所屬 socket 的關聯,確保數據包在復雜處理流程中的獨立性。本文將從代碼實現、版本差異、使用場景等多個維度,深入解…

03.MySQL表的操作詳解

MySQL表的操作詳解 MySQL 表的操作概述創建表 2.1 創建表的基本語法查看表結構修改表 4.1 新增列 4.2 修改列屬性 4.3 修改列名 4.4 修改表名 4.5 刪除列刪除表 1. MySQL表的操作概述 MySQL表的操作是數據庫開發和管理中的核心內容,主要涉及**數據定義語言&#…

Flink系列文章列表

把寫的文章做一個匯總,會陸續更新的。 Flink流處理原理與實踐:狀態管理、窗口操作與容錯機制-CSDN博客

【目標檢測】【AAAI-2022】Anchor DETR

Anchor DETR: Query Design for Transformer-Based Object Detection 錨點DETR:基于Transformer的目標檢測查詢設計 論文鏈接 代碼鏈接 摘要 在本文中,我們提出了一種基于Transformer的目標檢測新型查詢設計。此前的Transformer檢測器中&am…

apptrace 的優勢以及對 App 的價值

官網地址:AppTrace - 專業的移動應用推廣追蹤平臺 apptrace 的優勢以及對 App 的價值? App 拉起作為移動端深度鏈接技術的關鍵應用,能實現從 H5 網頁到 App 的無縫跳轉,并精準定位到 App 內指定頁面。apptrace 憑借專業的技術與豐富的經驗…

16-前端Web實戰(Tlias案例-部門管理)

在前面的課程中,我們學習了Vue工程化的基礎內容、TS、ElementPlus,那接下來呢,我們要通過一個案例,加強大家對于Vue項目的理解,并掌握Vue項目的開發。 這個案例呢,就是我們之前所做的Tlias智能學習輔助系統…

Python爬蟲實戰:研究Goutte庫相關技術

1. 引言 1.1 研究背景與意義 隨著互聯網信息的爆炸式增長,如何高效、準確地獲取和分析 Web 數據成為重要研究課題。網絡爬蟲作為自動獲取網頁內容的關鍵技術,在搜索引擎優化、輿情分析、市場調研等領域具有廣泛應用。然而,現代網站越來越多地采用 JavaScript 動態渲染技術…

Python----目標檢測(《基于區域提議網絡的實時目標檢測方法》和Faster R-CNN)

一、《基于區域提議網絡的實時目標檢測方法》 1.1、基本信息 標題:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 作者:任少卿(中國科學技術大學、微軟研究院)、何凱明(微軟研究…

吳恩達講解MCP基礎概念

簡介 MCP 是一個開放協議 標準化了您的語言模型應用如何獲取工具和數據資源的上下文。基于客戶端-服務器架構,它定義了您的語言模型應用中的MCP客戶端與MCP服務器之間的通信方式,MCP服務器提供工具 數據資源和提示模板給您的應用,自Anthropic于2024年11月推出MCP以來,MCP生…

Git入門到精通:30分鐘掌握核心技巧

目錄 一、基礎理論片 Git簡介 Git安裝 Git倉庫 Git基本命令用法 倉庫別名 二、實操命令篇 遠程分支 分支的新建和合并 實操演示 1 本地新建倉庫 2 gitee新建倉庫 3 建立關系 4 新建分支 5 開發新功能 6 推送新分支 7 合并新分支到主分支 三、可視化工具篇 G…