Windows11家庭版配置frigate 嵌入自研算法(基于Yolov8)-【2】

使用 YOLOv8 的 results.xyxy 結構,下面是一個完整的 MQTT 推送腳本,用于把識別到的目標(比如突涌水、水漬、障礙物等)發送到 Frigate 的 MQTT 接口。


? 前提假設

  1. YOLOv8 推理代碼已經運行并生成 results.xyxy
  2. 每一行是 [x1, y1, x2, y2, conf, class_id]
  3. 類別標簽由你自己定義,如 model.names[class_id]
  4. MQTT 服務運行在本地(或局域網),默認端口 1883。
  5. Frigate 配置正確,監聽 frigate/events 主題。

📜 完整 Python 腳本(YOLOv8 + MQTT 發事件)

import paho.mqtt.publish as publish
import uuid
import json
from ultralytics import YOLO
import cv2# ---------- 你可以自定義的變量 ----------
MQTT_HOST = '127.0.0.1'       # Mosquitto服務器地址
MQTT_PORT = 1883              # MQTT端口
FRIGATE_TOPIC = 'frigate/events'
CAMERA_NAME = 'usb_cam'       # Frigate中配置的攝像頭名
DETECTION_CONFIDENCE_THRESHOLD = 0.5
# ----------------------------------------# 加載你訓練好的YOLOv8模型
model = YOLO("best.pt")  # 改成你的模型路徑# 讀取圖片/視頻幀(你可以用cv2.VideoCapture循環處理流)
frame = cv2.imread("test.jpg")  # 或者循環處理幀# 推理
results = model(frame)# 遍歷檢測結果(默認只有一張圖)
for r in results:boxes = r.boxes.xyxy.cpu().numpy()       # shape: (n, 4)scores = r.boxes.conf.cpu().numpy()      # shape: (n,)classes = r.boxes.cls.cpu().numpy().astype(int)for i in range(len(boxes)):conf = scores[i]if conf < DETECTION_CONFIDENCE_THRESHOLD:continue  # 忽略低置信度結果box = boxes[i]class_id = classes[i]label = model.names[class_id]  # 類別名payload = {"type": "new","after": {"id": str(uuid.uuid4()),"camera": CAMERA_NAME,"label": label,"top_score": float(conf),"box": {"x_min": int(box[0]),"y_min": int(box[1]),"x_max": int(box[2]),"y_max": int(box[3])}}}# 發布到 MQTTpublish.single(topic=FRIGATE_TOPIC,payload=json.dumps(payload),hostname=MQTT_HOST,port=MQTT_PORT)print(f"已發送檢測事件: {label} ({conf:.2f})")

🧪 示例運行流程

  1. 替換你的模型路徑和攝像頭名稱(與你 Frigate 中的一致);
  2. 放一張測試圖片 test.jpg
  3. 運行腳本,Frigate 界面就能看到事件了。

📌 可選增強

目標實現方式
處理實時攝像頭流cv2.VideoCapture() 讀取幀循環處理
支持多幀批量推送放在循環中,設置時間間隔
顯示檢測圖像cv2.rectangle() 可視化框

🚨 注意事項

  • MQTT 消息中 camera 字段必須是 Frigate 配置文件中的某個攝像頭名。
  • box 坐標建議使用整數。
  • YOLO 推理較慢時注意控制幀率,不要每幀都發(可 1~2 秒一次)。
  • 如果你在 Windows 下網絡受限,確保 Frigate、MQTT、這個腳本三者之間是能連通的(用 127.0.0.1 通常沒問題)。

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

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

相關文章

安裝llama-factory報錯 error: subprocess-exited-with-error

報錯信息如下 Using cached https://mirrors.aliyun.com/pypi/packages/17/89/940a509ee7e9449f0c877fa984b37b7cc485546035cc67bbc353f2ac20f3/av-15.0.0.tar.gz (3.8 MB)Preparing metadata (pyproject.toml) ... errorerror: subprocess-exited-with-error Preparing metad…

QT 多線程 管理串口

記錄一下自己使用多線程進行串口管理和數據讀取的過程。如果有問題的話可以發消息給我。背景在使用QT制作一個串口數據讀取處理的小軟件的時候&#xff0c;發現了存在界面卡頓的情況&#xff0c;感覺性能太低&#xff0c;于是考慮把串口數據的讀取和處理都放到子線程的緩沖區中…

在虛擬環境中復現論文(環境配置)

前提&#xff1a;已經下載condawinR&#xff0c;輸入cmd進入命令行conda create -n PPT python3.8.3 pytorch1.7.0conda create -n PPT(虛擬環境名) python3.8.3(包名) pytorch1.7.0(包名)安裝完畢&#xff0c;激活虛擬環境&#xff1a;conda activate PPT根據論文readme要求安…

Flutter Web 的發展歷程:Dart、Flutter 與 WasmGC

Flutter Web 應該是 Flutter 開發者里最不“受寵”的平臺了&#xff0c;但是其實 Flutter 和 Dart 團隊對于 Web 的投入一直沒有減少&#xff0c;這也和 Flutter 還有 Dart 的"出生"有關系&#xff0c;今天就借著 Dart 團隊的 mer A?acan 和 Martin Kustermann 在油…

c#方法關鍵字,ref、out、int

在 C# 中&#xff0c;ref、out 和 in 是用于方法參數傳遞的關鍵字&#xff0c;它們控制參數如何在方法和調用者之間傳遞數據。以下是對這三個關鍵字的詳細分析&#xff1a;1. ref 關鍵字&#xff08;引用傳遞&#xff09;作用允許方法修改調用者的變量&#xff1a;通過引用傳遞…

設計模式—初識設計模式

1.設計模式經典面試題分析幾個常見的設計模式對應的面試題。1.1原型設計模式1.使用UML類圖畫出原型模式核心角色&#xff08;意思就是使用會考察使用UML畫出設計模式中關鍵角色和關系圖等&#xff09;2.原型設計模式的深拷貝和淺拷貝是什么&#xff0c;寫出深拷貝的兩種方式的源…

深度學習-參數初始化、損失函數

A、參數初始化參數初始化對模型的訓練速度、收斂性以及最終的性能產生重要影響。它可以盡量避免梯度消失和梯度爆炸的情況。一、固定值初始化在神經網絡訓練開始時&#xff0c;將權重或偏置初始化為常數。但這種方法在實際操作中并不常見。1.1全零初始化將所有的權重參數初始化…

格密碼--Ring-SIS和Ring-LWE

1. 多項式環&#xff08;Polynomial Rings&#xff09; 設 f∈Z[x]f \in \mathbb{Z}[x]f∈Z[x] 是首一多項式&#xff08;最高次項系數為1&#xff09; 則環 RZ[x]/(f)R \mathbb{Z}[x]/(f)RZ[x]/(f) 元素為&#xff1a;所有次數 <deg?(f)< \deg(f)<deg(f) 的多項式…

前端工作需要和哪些人打交道?

前端工作中需要協作的角色及協作要點 前端工作中需要協作的角色及協作要點 前端開發處于產品實現的 “中間環節”,既要將設計方案轉化為可交互的界面,又要與后端對接數據,還需配合團隊推進項目進度。日常工作中,需要頻繁對接的角色包括以下幾類,每類協作都有其核心目標和…

萬字長文解析 OneCode3.0 AI創新設計

一、研究概述與背景 1.1 研究背景與意義 在 AI 技術重塑軟件開發的浪潮中&#xff0c;低代碼平臺正經歷從 “可視化編程” 到 “意圖驅動開發” 的根本性轉變。這種變革不僅提升了開發效率&#xff0c;更重新定義了人與系統的交互方式。作為國內領先的低代碼平臺&#xff0c;On…

重學前端006 --- 響應式網頁設計 CSS 彈性盒子

文章目錄盒模型一、盒模型的基本概念二、兩種盒模型的對比 舉例三、總結Flexbox 彈性盒子布局一、Flexbox 的核心概念??二、Flexbox 的基本語法????1. 定義 Flex 容器???2. Flex 容器的主要屬性????3. Flex 項目的主要屬性????三、Flexbox 的常見布局示例??…

rLLM:用于LLM Agent RL后訓練的創新框架

rLLM&#xff1a;用于LLM Agent RL后訓練的創新框架 本文介紹了rLLM&#xff0c;一個用于語言智能體后訓練的可擴展框架。它能讓用戶輕松構建自定義智能體與環境&#xff0c;通過強化學習進行訓練并部署。文中還展示了用其訓練的DeepSWE等智能體的出色表現&#xff0c;以及rLL…

rocky8 --Elasticsearch+Logstash+Filebeat+Kibana部署【7.1.1版本】

軟件說明&#xff1a; 所有軟件包下載地址&#xff1a;Past Releases of Elastic Stack Software | Elastic 打開頁面后選擇對應的組件及版本即可&#xff01; 所有軟件包名稱如下&#xff1a; 架構拓撲&#xff1a; 集群模式&#xff1a; 單機模式 架構規劃&#xff1a…

【JVM】內存分配與回收原則

在 Java 開發中&#xff0c;自動內存管理是 JVM 的核心能力之一&#xff0c;而內存分配與回收的策略直接影響程序的性能和穩定性。本文將詳細解析 JVM 的內存分配機制、對象回收規則以及背后的設計思想&#xff0c;幫助開發者更好地理解 JVM 的 "自動化" 內存管理邏輯…

Qt獲取hid設備信息

Qt 中通過 HID&#xff08;Human Interface Device&#xff09;接口獲取指定的 USB 設備&#xff0c;并讀取其數據。資源文件中包含了 hidapi.h、hidapi.dll 和 hidapi.lib。通過這些文件&#xff0c;您可以在 Qt 項目中實現對 USB 設備的 HID 接口調用。#include <QObject&…

Anaconda Jupyter 使用注意事項

Anaconda Jupyter 使用注意事項 1.將cell轉換為markdown。 First, select the cell you want to convertPress Esc to enter command mode (the cell border should turn blue)Press M to convert the cell to Markdown在編輯模式下按下ESC鍵&#xff0c;使單元塊&#xff08;c…

[硬件電路-20]:模擬信號處理運算與數字信號處理運算的相同點與不同點

模擬信號處理運算與數字信號處理運算是信號處理領域的兩大核心方法&#xff0c;二者在信號形式、處理機制、性能特點和應用場景上存在顯著差異&#xff0c;但也共享一些基礎目標與理論支撐。以下從多個維度進行系統對比分析&#xff1a;一、相同點1. 核心目標一致信號變換與分析…

Redis 高頻面試題

1. 緩存穿透 1.1 描述 用戶想要查詢某個數據,在 Redis 中查詢不到,即沒有緩存命中,這時就會直接訪問數據庫進行查詢。當請求量超出數據庫最大承載量時,就會導致數據庫崩潰。這種情況一般發生在非正常 URL 訪問,目的不是為了獲取數據,而是進行惡意攻擊。 1.2 現象 1、應…

OWASP Top 10 攻擊場景實戰

OWASP (開放式Web應用程序安全項目) Top 10 榜單是全球公認的、針對Web應用最關鍵安全風險的權威指南。它不是一份詳盡無遺的清單&#xff0c;而是一份凝聚了安全專家共識的“高危預警”。本文將不止于羅列這些風險&#xff0c;而是深入每個風險的核心&#xff0c;通過生動的比…

Three.js 實戰:使用 PBR 貼圖打造真實地面材質

在 Three.js 中&#xff0c;我們可以通過 MeshStandardMaterial 材質配合多張貼圖來實現真實的地面效果。這種方式模擬了物理世界中光照與表面材質的復雜交互&#xff0c;常用于構建高質量場景&#xff0c;如數字孿生、建筑可視化、游戲等。 本文將以一個完整示例為基礎&#x…