精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

PyQT5案例開發

OpenCV學堂 ? 來源:OpenCV學堂 ? 2023-05-25 09:46 ? 次閱讀

基本設計思路

基于YOLOv8對象檢測/實例分割模型,實現一個基于檢測的對象跟蹤算法,YOLOv8支持兩種主流的對象跟蹤算法ByteTrack與Botsort。通過自定義數據訓練YOLOv8對象檢測器可以實現不同類別的對象的跟蹤。同時基于檢測與跟蹤模型的輸出,實現了對象計數、指定類別跟蹤、區域流量統計、指定ID跟蹤、單對象與多對象跟蹤等操作。

應用開發層面,需要三個主要的交互與顯示界面,一個是針對YOLOv8檢測與跟蹤模型的模型參數設置;第二個是針對YOLOv8檢測與跟蹤結果的顯示過濾與輸出過濾的后處理;第三個是針對后處理數據的顯示包括流量出入、是否需要語音報警等應用層面的數據展示。

整個程序開發實現了跟蹤線程與界面線程分別獨立工作,支持數據交互,實時顯示運行結果與流量統計信息展示。最終完成的界面設計如下:

cc1564a4-fa35-11ed-90ce-dac502259ad0.png

運行截圖

實時車輛流量統計

cc1c9206-fa35-11ed-90ce-dac502259ad0.png

基于對象ID的單對象跟蹤:

cc291350-fa35-11ed-90ce-dac502259ad0.png

人流量出入統計

cc325618-fa35-11ed-90ce-dac502259ad0.png

代碼

啟動跟蹤開始交通流量統計線程的代碼如下:

defon_yolov8_track(self):
image_file=self.image_file_edit.text()
label_file=self.label_file_path.text()
model_file=self.weight_file_path.text()
iflen(image_file)==0orlen(label_file)==0orlen(model_file)==0:
QtWidgets.QMessageBox.warning(self,"警告","參數文件未選擇...")
return

self.traffic_delta_label.setText("流量凈值:0")
self.traffic_jam_label.setText("總流量:0")
self.input_traffic_label.setText("進流量:0")
self.output_traffic_label.setText("出流量:0")

settings=DLInferSettings()
settings.weight_file_path=self.weight_file_path.text()
settings.label_map_file_path=self.label_file_path.text()
settings.score_threshold=self.conf_spinbox.value()
settings.input_image=image_file
settings.track_vehicle=self.vehicle_chkbox.isChecked()
settings.track_person=self.person_chkbox.isChecked()
settings.track_by_category_index=self.category_combox.currentIndex()
settings.track_id=self.track_by_id_spin_box.value()
settings.target_deploy=1
ifself.hline_rbtn.isChecked():
settings.track_line_type=0
ifself.vline_rbtn.isChecked():
settings.track_line_type=1
ifself.diagonal_rbtn.isChecked():
settings.track_line_type=2

self.work_thread=InferenceThread(settings)
self.work_thread.fire_stats_signal.connect(self.on_update_result_image)
self.work_thread.finished.connect(self.work_thread.deleteLater)
self.work_thread.start()
self.startBtn.setStyleSheet("background-color:gray;color:white")
self.startBtn.setEnabled(False)
self.stopBtn.setStyleSheet("background-color:cyan;color:black")
self.stopBtn.setEnabled(True)
使用槽函數更新界面,實現實時分析結果顯示的代碼如下:
defon_update_result_image(self,outs):
image=outs.get("result")
done=outs.get("done")
num_in=outs.get("num_in")
num_out=outs.get("num_out")
ifimageisnotNone:
dst=cv.cvtColor(image,cv.COLOR_BGR2RGB)
height,width,channel=dst.shape
bytesPerLine=3*width
img=QtGui.QImage(dst.data,width,height,bytesPerLine,QtGui.QImage.Format_RGB888)
pixmap=QtGui.QPixmap(img)
pix=pixmap.scaled(QtCore.QSize(1280,720),QtCore.Qt.KeepAspectRatio)
self.label.setPixmap(pix)
self.show_text("OpenCV開發者聯盟-跟蹤演示")
self.traffic_delta_label.setText("流量凈值:%d"%(num_in-num_out))
self.traffic_jam_label.setText("總流量:%d"%(num_in+num_out))
self.input_traffic_label.setText("進流量:%d"%num_in)
self.output_traffic_label.setText("出流量:%d"%num_out)
ifdoneisnotNone:
self.stopBtn.setStyleSheet("background-color:gray;color:white")
self.stopBtn.setEnabled(False)
self.startBtn.setStyleSheet("background-color:cyan;color:black")
self.startBtn.setEnabled(True)





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 檢測器
    +關注

    關注

    1

    文章

    860

    瀏覽量

    47652
  • 過濾器
    +關注

    關注

    1

    文章

    427

    瀏覽量

    19559

原文標題:PyQT5案例開發

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    在全志H616核桃派開發板上進行PyQt5的代碼編寫和運行

    : utf-8 -*- # pyQT5 For WalnutPi from PyQt5 import QtCore, QtGui, QtWidgets classUi_MainWindow(object
    發表于 05-13 09:59

    在全志H616核桃派開發板上部署PyQt5的信號與槽詳解

    什么是信號和槽 信號(signal)和槽(slot)是PyQt5對象之間通訊紐帶。一個完整的信號和槽流程有4個內容: 發送者、信號、接收者、槽。 他們之間最簡單的流程如下: 舉個例子:在前面第一個
    發表于 05-13 10:10

    【Firefly RK3399試用體驗】第二篇:PyQt5大戰點燈

    ,使用命令apt install python3-pyqt5Ubuntu里也提供了一些IDE開發工具如IDLE、Spyder等等,此處不詳細介紹它們安裝過程。之后我們開始編寫Pyqt5點燈,需要的前提
    發表于 06-12 07:49

    利用PyQt5編輯軟件界面的簡單步驟

    的操作以及利用PyQt5編輯軟件界面的簡單步驟。實現難度不大,但需要運行第二線程運行輸出脈沖的程序。 首先,推薦一下PyQt5和Eric6的學習資料...
    發表于 09-16 07:48

    如何使用Python配合PyQT5模塊來開發圖形化應用程序

    By Toradex秦海1).簡介隨著Python在互聯網人工智能領域的流行,大家也慢慢感受到Python開發的便利,本文就基于嵌入式ARM平臺,介紹使用Python配合PyQT5模塊來開發圖形化
    發表于 12-24 06:41

    魯班貓0 ubuntu20 解決python3.10安裝pyqt5

    前面用pip install pyqt5,總是安裝不成功。經查閱資料,最后用:udo apt install python3-pyqt5成功安裝cat@lubancat:~$
    發表于 04-09 11:04

    Python PyQt5工具在Windows平臺上的安裝方法

    Python PyQt5工具安裝步驟:1. 安裝Python3.4.1,默認安裝路徑:C:\Python34;2. 安裝PyQt5,會根據Python的安裝路徑自動進行安裝,不需要修改;3. 測試安裝是否成功。創建一個py文件,寫入以下代碼,運行后彈出widget窗口就說
    發表于 02-13 10:45 ?2596次閱讀

    PyQt5的中文教程電子書免費下載

     本教程的目的是帶領你入門PyQt5。教程內所有代碼都在Linux上測試通過。PyQt4 教程是PyQt4的教程,PyQt4是一個Python(同時支持 2和3)版的Qt庫。
    發表于 08-06 08:00 ?13次下載
    <b class='flag-5'>PyQt5</b>的中文教程電子書免費下載

    PyQT5+OpenCV開發的應用如何打包發布?

    我自己用PyQT5寫了一個應用程序,基本上都寫好了,到了打包發布這個環節,我知道的有兩個工具可以幫我打包分別是。
    的頭像 發表于 10-25 09:40 ?2589次閱讀

    OpenCV+PyQT5開發桌面應用幾個重要的坑與解決

    大概去年八月份的時候,我打算用OpenCV+PyQT5開發一套OpenCV教學演示與快速驗證桌面軟件,說實話那個時候我對PyQT5的理解就是Hello World水平。經過一年多開發
    的頭像 發表于 12-13 11:55 ?1625次閱讀

    2023年Python GUI桌面應用開發該選哪個庫

    當前主流的Python GUI庫主要有PyQT5、TKinter、Pyside、PyQT5/PySide+QML、Kivy、PySimpleGUI等,PyQT5是它們當中絕對的佼佼者,它基于著名的Qt框架構建,擁有眾多
    的頭像 發表于 01-30 11:57 ?1663次閱讀

    請問PyQT5是如何構建YOLOv8界面應用程序的

    PyQT5中引用OpenMV2023版本支持SDK,實現二次開發使用。OpenMV算法層已經開放SDK調用支持,從圖像處理、分析、測量到深度學習推理全部支持SDK調用方式實現第三方應用與程序集成。
    的頭像 發表于 02-14 17:07 ?1465次閱讀

    使用pycharm開發上位機配置pyqt5的環境

    在上位機的開發過程中,使用QT的圖形化界面,是開發上位機最好最簡單的選擇,因此我將講述配置pyqt5的環境。 軟件安裝: 安裝:pycharm的社區2021.02版 QT(安裝參考https
    發表于 05-29 16:12 ?0次下載
    使用pycharm<b class='flag-5'>開發</b>上位機配置<b class='flag-5'>pyqt5</b>的環境

    PYQT5自動化上位機開發記錄

    記錄使用PYQT5快速開發生產工具使用python開發用于wafer切割系統控制部分 文章簡介 項目簡介 控制框圖 DEMO展示 基礎環境搭建 因其他原因停止更新使用python開發
    發表于 05-11 18:25 ?2次下載
    <b class='flag-5'>PYQT5</b>自動化上位機<b class='flag-5'>開發</b>記錄

    基于PyQT5與ONNXRUNTIME實現風格遷移應用

    2023年一月份跟二月份創建了一個PyQT5人工智能軟件開發系列的文章系列,過去的兩個月都沒怎么更新,心里一直想有時間繼續更新下去,今天又更新了一篇,基于PyQT5實現多線程、界面化、風格遷移模型的實時推理。
    的頭像 發表于 10-25 10:35 ?498次閱讀
    基于<b class='flag-5'>PyQT5</b>與ONNXRUNTIME實現風格遷移應用