YOLOv5可視化界面

Pyside6可視化界面

安裝Pyside6

激活之前的虛擬環境yolov5

在該環境的終端輸入以下命令

image-20230804130702828

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyside6

image-20230804130800817

輸入where python找到當前使用的Python的路徑

image-20230804130822697

找到該路徑下的designer.exe文件(/Lib/site-packages/PySide6/designer.exe),然后發送到桌面創建快捷方式

image-20230804131040967

UI設計

  1. 打開designer
  2. 選擇Main Window

image-20230804135928424

  1. 移除菜單欄

image-20230804140001249

  1. 拖兩個label個一個line進來

image-20230804140218860

  1. 拖兩個button進入,并進行命名

image-20230804140548127

  1. 調整界面,填寫兩個label里面文件,將界面調小一些

image-20230804140817179

  1. 居中對齊,同時勾選scaledContents

image-20230804140925757

  1. 元素名稱更改

image-20230804141119743

  1. Ctrl+S保存,保存到上一部分訓練數據集的文件內

image-20230804141230616

設置Pyside6-uic 工具

  1. 在當前虛擬環境的Python路徑下,打開Scripts文件夾夾,找到pyside6-uic.exe,記住當前路徑

image-20230804133419243

  1. 創建工具

image-20230804133534319

名稱:PyUic(可自己定義)
程序:E:\kaifa\Anaconda3\envs\yolov5\Scripts\pyside6-uic.exe
實參:$FileName$ -o $FileNameWithoutExtension$.py
工作目錄: $FileDir$
  1. 使用該工具

先在pycharm中打開剛才生成的ui文件

雙擊打不開的話,把文件拖到右邊就可以打開了

image-20230804141619914

然后在【工具】選項卡下的【external tools】下,點擊【PyUic】(這個名稱是你剛才自己設計的)

image-20230804133624645

如果生成了相同文件名的.py文件,即說明設置成功

image-20230804141836515

編寫運行程序

創建模板文件base_ui.py

import sys
import torch
from PySide6.QtGui import QPixmap, QImage
from PySide6.QtWidgets import QMainWindow, QApplication, QFileDialogfrom main_window import Ui_MainWindow #main_windows是剛才生成的ui對用的Python文件名def 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.setupUi(self)if __name__ == "__main__":app = QApplication(sys.argv)window = MainWindow()window.show()app.exec()

編譯運行,彈出窗口說明成功

編寫內部具體功能的代碼

講解視頻:YOLOv5 Pyside6可視化界面

import sys
import cv2
import torch
from PySide6.QtGui import QPixmap, QImage
from PySide6.QtWidgets import QMainWindow, QApplication, QFileDialog
from PySide6.QtCore import QTimerfrom main_window import Ui_MainWindow  # main_windows是剛才生成的ui對用的Python文件名def 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.setupUi(self)self.model = torch.hub.load("./", "custom", path="runs/train/exp/weights/best.pt", source="local")self.video = Noneself.timer = QTimer()self.timer.setInterval(1)self.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="./data02/images/train", filter="*.jpg;*.png;*.jpeg")if file_path[0]:file_path = file_path[0]qimage = self.image_pred(file_path)self.input.setPixmap(QPixmap(file_path))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="./data02", filter="*.mp4")if file_path[0]:file_path = file_path[0]self.video = cv2.VideoCapture(file_path)self.timer.start()def bind_slots(self):  # 綁定槽函數self.det_image.clicked.connect(self.open_image)self.det_video.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()

Gradio搭建Web GUI

安裝Gradio

激活之前的虛擬環境yolov5

在該環境的終端輸入以下命令

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple gradio

實現

新建gradio_demo.py文件

輸入圖片、輸出圖片、預測函數

Gradio不支持實時檢測

import torch
import gradio as grmodel = torch.hub.load("./", "custom", path="runs/train/exp/weights/best.pt", source="local")title = "基于Gradio的YOLOv5演示項目"desc = "這是一個基于Gradio的YOLOv5演示項目,非常簡潔,非常方便!"base_conf, base_iou = 0.25, 0.45def det_image(img, conf_thres, iou_thres):model.conf = conf_thresmodel.iou = iou_thresreturn model(img).render()[0]gr.Interface(inputs=["image", gr.Slider(minimum=0, maximum=1, value=base_conf), gr.Slider(minimum=0, maximum=1, value=base_iou)],outputs=["image"],fn=det_image,title=title,description=desc,live=True,examples=[["./data02/images/train/30.jpg", base_conf, base_iou],["./data02/images/train/60.jpg", 0.3, base_iou]]
).launch(share=True)

如果想發布到網上,設置share=True參數,但是運行的時候會因為網絡原因,報出下面的錯誤,可以通過提示的網址下載對應文件,重命名后放到相應的目錄下,重新運行

image-20230804221752389

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

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

相關文章

布置Zabbix監控

一、在 Web 頁面中添加 agent 主機 1.1打開Zabbix的Web頁面 2.2在 Web 頁面中添加 agent 主機 二、在 Web 頁面創建自定義監控項模板 2.1創建模版

《Java面向對象程序設計》學習筆記——第 8 章 設計模式

?專欄:《Java面向對象程序設計》學習筆記 第 8 章 設計模式 一個好的設計系統往往是易維護、易擴展、易復用的。 8.1 設計模式簡介 8.1.1 什么是設計模式 一個設計模式 (pattern) 是針對某一類問題的最佳解決方案,而且己經被成功應用于許多系統的設…

[QT/C++]如何得知鼠標事件是由觸摸事件轉換而來的,使得鼠標觸摸事件分離

依據來源&#xff1a;https://doc.qt.io/qt-5/qml-qtquick-mouseevent.html 具體是在event事件或者mouse系列事件中捕獲到鼠標事件后&#xff0c;用如下代碼判斷鼠標事件是否由觸摸事件轉換而來的 if(mouseEvent->source()Qt::MouseEventSynthesizedBySystem){qDebug()<&…

Chrome

Chrome 簡介下載 簡介 Chrome 是由 Google 開發的一款流行的網絡瀏覽器。它以其快速的性能、強大的功能和用戶友好的界面而聞名&#xff0c;并且在全球范圍內被廣泛使用。Chrome 支持多種操作系統&#xff0c;包括 Windows、macOS、Linux 和移動平臺。 Chrome官網: https://ww…

css3新增選擇器總結

目錄 一、屬性選擇器 二、結構偽類選擇器 三、偽元素選擇器 四、UI狀態偽類選擇器 五、反選偽類選擇器 六、target選擇器 七、父親選擇器、后代選擇器 八、相鄰兄弟選擇器、兄弟們選擇器 一、屬性選擇器 &#xff08;除IE6外的大部分瀏覽器支持&#xff09; E&#…

嵌入式面試筆試刷題(day10)

文章目錄 前言一、數組和鏈表的區別二、什么是內存對齊三、IIC的時序四、static作用五、查看tty設備的方法六、查找指定文件命令七、三次握手和四次揮手1.三次握手2.四次揮手 八、半關閉狀態九、字節流和數據報總結 前言 本篇文章繼續講解筆試和面試。 一、數組和鏈表的區別 …

PHP 使用ThinkPHP實現電子郵件發送示例

文章目錄 首先我們需要設置我們的郵箱客戶端授權&#xff0c;獲取到授權碼找到我們的郵箱設置去賬號中找到這一堆服務&#xff0c;找到后開啟smtp服務開啟服務后管理服務 接下來需要去下載相應的第三方類庫(我這里使用的是PHPMailer)在thinkPHP中封裝一下郵件服務類實際調用效果…

Ajax_4(進階)同步異步+ 宏任務微任務 + Promise鏈 + async終極解決方案 +事件循環原理 + 綜合案例

Ajax(進階) 文章目錄 Ajax(進階)01-同步代碼和異步代碼什么是同步代碼&#xff1f;什么是異步代碼&#xff1f;代碼閱讀 02-回調函數地域概念缺點代碼示例 03-Promise鏈式調用概念細節好處代碼示例 04-Promise鏈式應用代碼示例 05-async函數和await概念代碼示例 06-async和awai…

Mysql 建索引規范

索引規范 今天在建線上表的時候&#xff0c;做了一個varchar的索引&#xff0c;運維說varchar的索引會占用很大的內存。 于是 上網搜了一下建索引規范 一、建表規約 【強制】&#xff08;1&#xff09; 存儲引擎必須使用InnoDB 解讀&#xff1a;InnoDB支持事物、行級鎖、并發…

數據結構—圖的應用

6.4圖的應用 概念回顧—生成樹 生成樹&#xff1a;所有頂點均由邊連接在一起&#xff0c;但不存在回路的圖。 一個圖可以有許多棵不同的生成樹、含有n個頂點 n-1 條邊的圖不一定是生成樹所有生成樹具有以下共同特點 生成樹的頂點個數與圖的頂點個數相同&#xff1b;生成樹是圖的…

如何運用小程序技術閉環運營鏈路?

如何通過線上小程序獲取用戶線索&#xff0c;提高企業抗風險能力&#xff0c;建立有效的營銷數字化系統一直是困擾每一個小程序開發者與運營者的問題。 當我們選擇使用小程序設計自己的運營流程時&#xff0c;從「推廣」到「轉化」&#xff0c;再到最終的「留存」都是運營過程…

ABeam×Startup丨德碩管理咨詢(深圳)創新研究團隊前往靈境至維·既明科技進行拜訪交流

近日&#xff0c;德碩管理咨詢&#xff08;深圳&#xff09;&#xff08;以下簡稱“ABeam-SZ”&#xff09;創新研究團隊一行前往靈境至維既明科技有限公司&#xff08;以下簡稱“靈境至維”&#xff09;進行拜訪交流&#xff0c;探討線上虛擬空間的商業模式。 現場合影 &…

前臺測試轉后臺優化歷險記,應屆生薪資8K逆襲,從此扶搖直上九萬里!

優橙教育每一期都會有不少從前臺測試轉到后臺的小伙伴應邀而來&#xff0c;其實每個人的經歷都是大致相同的&#xff0c;這時候肯定會有很多小伙伴問&#xff0c;為什么出來花錢出來參加培訓而不是在項目上轉呢&#xff1f; 或許是因為在項目上摸爬滾打太久了&#xff0c;吃不下…

Qt掃盲-QWidget理論使用總結

QWidget理論使用總結 一、概述二、頂層 控件 和子 控件三、復合控件四、自定義控件和繪制五、大小提示和大小策略六、事件七、一組函數和屬性八、QWidget樣式表九、透明度和雙緩沖十、創建半透明窗口 一、概述 widget 是用戶界面的最小單位&#xff1a;它從window系統接收鼠標…

Jsoup爬取簡單信息

1. 豆瓣圖書最受關注 1.1 創建SpringBoot項目或者Maven項目 1.2 引入jsoup <dependency><!-- jsoup HTML parser library https://jsoup.org/ --><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.15.3<…

Qt應用開發(基礎篇)——堆棧窗口 QStackedWidget

一、前言 QStackedWidget繼承于QFrame&#xff0c;QFrame繼承于QWidget&#xff0c;是Qt常用的堆棧窗口部件。 框架類QFrame介紹 QStackedWidget堆棧窗口&#xff0c;根據下標切換&#xff0c;一次顯示一個小部件&#xff0c;常用于應用界面切換、圖片輪詢播放等場景。 二、QSt…

用Java調用C#的WebService接口

這是一個用Java調用C#版程序的例子,廢話不多說,上代碼: C#接口代碼: using System; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; using System.Web.Services.Description;[WebService(Namespace = " http://www.ta…

如何在Springboot項目中讀取zip壓縮包并且把文件導出成zip壓縮包

文章目錄 設想場景實現流程小結 設想場景 為方便老師錄入大量學生圖片信息&#xff0c;在添加照片時&#xff0c;學生的相關資料以身份證號碼圖片描述命名如 &#xff08;1231231234567一寸照片.jpg&#xff09; &#xff08;1231231234567身份證正面照片.jpg&#xff09; &am…

中小企業體育代言:探索費用策略與實際操作

隨著體育市場的不斷擴大和企業品牌的不斷提升&#xff0c;中小型企業正逐漸將目光投向了體育明星代言&#xff0c;希望通過這一策略來提升品牌知名度、美譽度&#xff0c;進而吸引目標消費者的注意力并提升銷售量。然而&#xff0c;中小型企業請體育明星代言的費用究竟是多少呢…

docker 離線模式-部署容器

有網絡的情況下下載需要的鏡像 比如(下面以tomcat為例子&#xff0c;其他鏡像類似) docker pull tomcat打包鏡像文件到本地 docker save tomcat -o tomcat.tar將tomcat.tar 上傳到內網服務器&#xff08;無外網環境&#xff09; 導入鏡像 docker load -i tomcat.tar創建容器…