【HZHY-AI3甜心聊包養網00G智能盒試用連載體驗】+ 智能產業internet網關

感激電子發熱友和北京合眾恒躍科技無限公司供給的評測機遇。

​HZHY-AI300G產業級國產化智盒,采用RK3588產業級芯片組順應-40℃-85℃產業級寬溫網關。

以前測試過其他店家的RK3568產物,對瑞芯微的東西也比擬清楚。

此次評測的項目打算:
1)依據文檔,進修RK3588的AI開闢周遭的狀況和相干的法式框架。
2)應用RKNN框架停止錄像辨認的模子構建任務。
3)應用該開闢板的接話柄現WiFi和RS485傳感器的銜接任務,構建產業internet關。
4)將所接受到的數據上傳至MQTT辦事器平臺。

周末就拿到了開闢板,很是的玲瓏,和試驗室應用的產業網關做個對照,的確是美男和野獸包養俱樂部的差別。

微信圖片_20240715193541.jpg

產物配了兩根天線,短的是WiFi的,長的是4G的。
image.png

作為一款在復雜工況中應用的產物,4G模塊仍是很是有效的。

在合眾恒躍的網站上可以看到基礎的材料:RK3588-文檔教程README–ShowDoc (hzhytech.com) 。假如需求具體材料,包含東西鏈、BSP、出廠鏡像等,可以向淘寶客服索要。

​網盤的內在的事務重要是原廠供給的材料。各級目次下包含的重要內在的事務如下。
image.png

產物的接口很是豐盛,包含兩個網口、兩個USB口、一個調試口、一個OTG口、TF卡和SIM卡的接口。

image.png

產物還供給了GPIO、2個RS485、1個RS232接口,采用的是插拔式的PCB接線座,很是便利應用。

image.png

合眾恒躍在B站上供給了良多進修錄像,這點仍是值得稱道的:合眾恒躍的小我空間-合眾恒躍小我主頁-嗶哩嗶哩錄像 (bilibili.com)

內在的事務重要包含:

AI 300G的周遭的狀況構建和外設測試;RK3588,包含RKNN開闢東西的先容;RK35588項目實戰,包含OCR辨認、YOLOv8目的辨認、人臉辨認等。

廠商還供給了Linux進門的教程, 這對老手很是友愛。我以前接觸過一些工程師,他們以前有MCU經歷,可是初試進修Linux仍是有些艱苦的。

做RK3588的產物的廠商今朝良多,合眾恒躍仍是給人不錯的第一印象。


• 【HZHY-AI300G智能盒試用連載體驗】+ 具有 Local AI 效能的產業用照明把持器 826
• 【HZHY-AI300G智能盒試用連載體驗】基建聰明工地物聯邊沿代表技巧研討及利用 594
• 產物測評:【HZHY-AI300G智能盒試用體驗】+ 具有 Local AI 效能的產業用照明把持器 436
• 案例分送朋友 | 摸索HZHY-AI300G產業智能盒:從硬件接口到云端集成的全方位利用 154

HZHY-AI300G智能盒默許的體系是Ubuntu,如許很是便利應用,接上USB鍵盤和鼠包養價格標就像應用電腦一樣。

Screenshot from 2024-07-16 15-20-14.png

廠商在百度盤中供給了測試例程,明天就來簡略的測試一下。

RTC測試

廠商供給的例程是針對穿插編譯周遭的狀況的,要在當地編譯,修正修正一下Makefile。

將本來的代碼中的CC注釋失落:

#CC=/home/hzhy/HZHY/RK3568/蔡修立即彎下膝蓋,默默道謝。rk356x_linux_sdk/buildroot/output/rockchip_rk3568/host/bin/aarch64-buildroot-linux-gnu-gcc
CC=/home/hzhy/HZHY/RK3568/3568_demo/HZ-EVM-RK3568-GCC/bin/aarch64-buildroot-linux-gnu-gcc
APP_SRC_DIR = ./src
APP_INC_DIR = ./inc

改為:

#CC=/home/hzhy/HZHY/RK3568/rk356x_linux_sdk/buildroot/output/rockchip_rk3568/host/bin/aarch64-buildroot-linux-gnu-gcc
#CC=/home/hzhy/HZHY/RK3568/3568_demo/HZ-EVM-RK3568-GCC/bin/aarch64-buildroot-linux-gnu-gcc
APP_SRC_DIR = ./src
APP_INC_DIR = ./inc

然后Make就可以獲得可履行文件了。

開闢板的RTC裝備為/dev/rtc或/dev/rtc0。默許的裝備拜訪權限是只要root用戶可以讀寫,所以應用sudo chmod 666 /dev/rtc將裝備修正為人人可以讀寫。然后運轉./rtc_demo rtc -r就可以讀出RTC數據了。

Screenshot from 2024-07-16 15-24-42.png

UART測試

我在后面會用到RS485,所以也簡略的運轉了一下UART的法式法式。

Screenshot from 2024-07-16 15-25-44.png

從法式的成果可以包養違法看出,體系中有4個USB串口,這是4G模塊所應用的,可以經由過程串口給模塊發指令,停止上彀操縱;別的三個串口,ttyS0應當是RS232,而ttyS7和ttyS8應當是RS485接口。

后面,我會專門測試串口的應用。


Neuron產業協定網關軟件

為了可以或許將RS485等接口裝備轉換為MQTT裝備,我應用了Neuron產業協定網關軟件。Neuron是EMQ(杭州映云科技無限公司)出品的,它在物聯網和產業internet範疇算是個搶先廠商。我以前上課用的MQTTX客戶端就是該公司的產物。
連接海量異構工業設備從邊緣到云端

Neuron起初是開源軟件,焦點部門和MODBUS、MQTT插件都不花錢。此刻NeuronEx是最新版本,曾經不開源了。

軟件裝置

Neuron是可以直接用現成的deb軟件包裝置的。廠商供給的x86和ARM架構的分歧軟件包。

依據分歧版本及架構下載裝置包,例如:

wget https://www.emqx.com/zh/downloads/neuron/2.6.8/neuron-2.6.8-linux-amd64.deb
sudo apt install neuron-2.6.8-linux-amd64.deb

裝置后的版本,Neuron 供給了 30 個點(30 個銜接和 30 個數據標簽)的不花錢額度。可在不裝置 EMQ 允許證的情形下,運轉這些貿易模塊。超越不花錢額度后,則必需裝置有用的試用版或官方 EMQ 允許證。

軟件運轉

在閱讀器輸出http://localhost:7000就可以看到Neuron的登錄界面了。
Screenshot from 2024-07-17 16-00-33.png

創立南向裝備

在南向裝備中選擇新扶植備,創立一個名為RS485的裝備,裝備類型選擇Modbus-RTU。

Screenshot from 2024-07-17 15-57-07.png

在創立裝備的頁面,物理鏈路選擇為Serial,串口裝備設置為/dev/ttyS8。

Screenshot from 2024-07-17 15-57-45.png

創立要監督的數據點位

完成南向插件的添加和設置裝備擺設后,要樹立裝備與 Neuron 之間的通訊,起首應為南向驅動法式添加組和點位。點擊RS485裝備,添加一個名為 Data 的數據組 。

點位是分派給一條信息的非分層獨一要害字,此中界說了裝備中的數據存儲地位和數據操縱屬性,還包括有關數據的一些元數據信息,如比例因子、準確度和讀/寫屬性等。我應用的溫濕度傳感器有兩個點位:溫度和濕度。點位將被分派到組中。統一個組的數據以雷同的頻率停止采集以及上報。創立好組和點位,即可從數據監控中獲取點位包養行情的及時值。

​ 我選用的傳感器是冀歐速傳感器,它的產物采用的是MODBUS協定。MODBUS是一個很是老的協定,1979年景為現實上的國際尺度,今朝有個國際組織停止保護:The Modbus Organization。

RS485接口產包養意思物中應用的是MODBUS over Serial Line協定,或許稱為MODBUS RTU協定,其官方文檔界說:Specification and Implementation Guide for MODBUS over serial line

​​ 協定的基礎格局很是簡略,有地址域、效能碼、數據和CRC校驗構成。

冀歐速傳感器的查詢號令如下,這里效能碼0x03就是用來查詢數據的。

​​

​對數據簡略說明一下:

濕度數據0x164,就是10進制的356,對應著35.6% RH
溫度數據0xFFDD,就是-35的補碼,對應-3.5℃。

在組列表頁,點擊組稱號進進點位列表頁,添加需求采集的裝備點位,包含點位地址,點位屬性,數據類型等。我們添加兩個點位:

溫度:read屬性,INT16類型,地址:1!40001,乘系數值為 0.1
濕度:read屬性,INT16類型,地址:1!40002,乘系數值為 0.1

此中,此中Read屬性用于讀取數據,1 代表 Modbus 模仿器中設置的點位站點號,40001 代表點位存放器地址,400001是第一個堅持存放器,裝備值 * 乘系數 = 顯示值`。

數據檢查

在南向裝備中,可以看到RS485裝備的運轉狀況。

Screenshot from 2024-07-17 15-57-14.png

在數據監控頁面就可以看到溫濕度傳感器傳過去的信息。

Screenshot from 2024-07-17 15-55-48.png

至此,我們完成了南向裝備的添加任務。


後面先容了若何在HZHY-AI300G智能盒創立南向裝備,有了南向裝備就可以完成數據采集,可是還需求樹立北向裝備才幹將數據發送到MQTT辦事器上。在先容北向裝備之前,先先容若何在huaweiIoTDA平臺上樹立裝備。

huaweiIoTDA平臺

huawei云裝備接進IoTDA指的是裝備接進辦事(IoT Device Access),是huawei云的物聯網平臺供給海量裝備銜接上云、裝備和云端雙向新聞通訊、批量裝備治理、長途把持和監控、OTA進級、裝備聯動規定等才能,并可將裝備數據機動流轉到huawei云其他辦事,輔助物聯網行業用戶疾速完成裝備聯網及行業利用集成。

起首進進huawei云IoTDA網站:huawei云物聯網平臺_huawe短期包養i云IoT平臺_IoT_裝備接進-huawei云,點擊把持臺按鈕停止登錄。把持臺界面如下圖:

image.png

注冊IoTDA實例

在把持臺界面處點擊左上角三條橫線,會呈現菜單;

選擇“IoT物聯網”——“裝備接進IoTDA”;
在左側欄目中選擇IoTDA實例,在尺度版處選擇購置實例;
每位用戶都有一次不花錢的應用機遇,在此中選擇不花錢單位即可。

注冊勝利后可以點擊左欄中的“總覽”,顯示運轉中闡明辦事器正常。
image.png

創立產物
在左欄中選擇 產物→創立產物;
填寫產物稱號、協定類型(MQTT)和數據格局(JSON);
裝備類型選擇調劑為“自界說類型”,裝備類型隨便填寫;
創立完產物進進產物概況界面,隨后可認為產物界說物模子,添加物模子中的辦事,并添加響應的效能屬性。不外Neuron的MQTT插件不支撐huawei物模子的數據格局,除非專門寫一個北向插件,不然Neuron發送的數據可以被huawei云接受處置,可是不克不及顯示為huawei物模子,所以我們省略物模子的構建。

image.png

添加裝備

選擇左欄中的“裝備→一切裝備” 注冊新裝備,為后面Neuron的數據上傳做預備。
image.png


明天先容一下若何樹立北向利用將采集到的數據發送到huawei云物聯網辦事器上。

Neuron的北向利用

Neuron 是運轉在物聯網邊沿網關硬件上的產業協定網關軟件,經由過程未來自複雜多樣產業裝備的分歧協定類型數據轉換為同一尺度的物聯網 MQTT 新聞,完成裝備與產業物聯網體系之間、裝備彼此之間的互聯互通,停止長途的直接把持和信息獲取。Neuron 支撐同時為多個分歧通信協定裝備、數十種產業協定停止一站式接進及 MQTT協定轉換。北向插件用于銜接到IOT平臺或邊沿流處置引擎,北向插件和南向插件組合應用完成數據采集和數據傳遞。

創立甜心寶貝包養網北向節點

在Neuron把持臺創立北向 MQTT 節點,銜接并將點位數值上傳到 MQTT Broker,此處是huaweiIoTDA平臺。

在設置裝備擺設 -> 北向利用,點擊 添加利用 添加 MQTT 客戶端節點:

稱號:此利用節點稱號,例如,HuaweiIoT;
插件:選擇 MQTT 插件。
13365947294488091.png

點擊創立后,將跳轉至利用設置裝備擺設頁面,我們將在這里設置裝備擺設 Neuron 與北向利用樹立銜接所需的參數。您也可點擊裝備卡片上的裝備設置裝備擺設圖標進進利用設置裝備擺設界面。

設置MQTT銜接參數

點擊利用卡片上的 利用設置裝備擺設 按鍵進進利用設置裝備擺設界面設置 MQTT 銜接。
13365947322301648.png
13365947333750502.png

上述參數可以在云平臺的左欄中 “裝備→一切裝備“,然后選定要應用的裝備,進進裝備概況后,選擇”MQTT銜接參數:檢查” 中找到。我選擇非SSL形式,這里的端口信息必定要選擇1883。假如要應用SSL,則端口為8883,則在辦事器和Neuron中都需求設置裝備擺設CA證書。
mqttparam1.png
mqttparam2.png

在Neuron中點擊提交,完成北向利用的設置裝備擺設,利用卡片主動進進 運轉中 的任務狀況。

假如銜接狀況顯示為斷開,請檢討收集狀況或許MQTT銜接參數能否對的。

訂閱南向裝備的數據

采集點位是以組為單元停止數據上傳的,訂閱選摘要上傳的點位組。

點擊 MQTT 節點卡片,進進組列表頁,點擊 添加訂閱 選摘要訂閱的點位組,訂閱南向裝備的點位組。
13365947308986407.png

在裝包養網評價備卡片或裝備列,可點擊數據統計圖表檢查及利用運轉情形、接受和發送的數據情形。

在huawei云上檢查上傳數據

假如Neuron中裝備狀況顯示為已銜接,就意味數據被勝利發送到包養妹h包養金額uawei云上了。

登錄huawei云的把持臺,在左欄中點擊“監控運維→在線調試/新聞跟蹤→選擇裝備” 選中目的裝備后前往點擊IoT平臺即可檢查到相干日志。
FireShot Capture 147 - 設備接入-控制臺 - console.huaweicloud.com.png
消息跟蹤.png

數據也可以導包養站長出為Excel文件供進一個步驟剖析。數據也可以轉發給huawei的數據庫,然后應用數據年夜屏停止可視化剖析。這些內在的事務超越了本次測評的范圍,就不具體先容了。


後面曾經展現了AI300G智能盒轉為產業網關的才能,接上去我們將測試RK3588的NPU推理才能。

起首,需求裝置RKNN相干東西和Python的周遭的狀況。

裝置RKNN東西

瑞芯微供給的NPU相干東西包含RKNN-Toolkit2、RKNN Toolkit Lite2。

RKNN-Toolkit2是為用戶供給在 PC、 Rockchip NPU平臺長進行模子轉換、 推理和機能評價的開闢套件, 用戶經由過程該東西供給的 Python接口可以便捷地完成以下效能:

模子轉換: 支撐 Caffe、 TensorFlow、 TensorFlow Lite、 ONNX、 DarkNet、 PyTorch等模子轉為 RKNN模子, 并支撐 RKNN模子導進導出, RKNN模子可以或許在 Rockchip NPU平臺   上加載應用。
量化效能: 支撐將浮點模子量化為定點模子, 今朝支撐的量化方式為非對稱量化

( asymmetric_quantized-8及asymmetric_quantized-16) , 并 支 持 混 合 量 化 功 能 。
模子推理: 可以或許在 PC上模仿 Rockchip NPU運轉 RKNN模子并獲取推理成果; 或將 **RKNN模子分發到指定的 NPU裝備長進行推理并獲取推理成果。
機能評價: 將 RKNN模子分發到指定 NPU裝備上運轉, 以評價模子在現實裝備上運轉時** 的機能。
內存評價: 評價模子運轉時的內存的占用情形。 應用該效能時, 必需將 **RKNN 模子分發 到 NPU裝備中運轉, 并挪用相干接口獲取內存應用信息。
量化精度剖析: 該效能將給出模子量化前后每一層推理成果與浮點模子推理成果的余弦間隔, 以便于剖析量化誤差是若何呈現的, 為進步量化模子的精度供給思緒。

RKNN T包養甜心oolkit Lite2為 Rockchip NPU平臺供給 Python編程接口,輔助用戶安排 RKNN模子,加快 AI利用的落地。

我們在開闢板上普通只需求裝置RKNN Toolkit Lite2,而RKNN-Toolkit2凡是是裝置在電腦上的。

裝置pip3

AI-300G包養犯法嗎采用的是Ubuntu體系,默許是裝置了Python 3.8,可是沒有裝置RKNN相干的東西。

開闢板上沒有pip3,所以需求先裝置一個:

sudo apt install python3-pip

裝置RKNN Toolkit Lite2

然后從ht“別和你媽裝傻了,快點。”裴母目瞪口呆。tps://github.com/airockchip/rknn-toolkit2/tree/master/rknn-toolkit-lite2/packages下載所需求rknn_toolkit_lite2的裝置包,對于我的設置裝備擺設,就是rknn_toolkit_lite2-2.0.0b0-cp38-cp38-linux_aarch64.whl文件。

image.png

應用pip停止裝置:

pip install rknn_toolkit_lite2-2.0.0b0-cp38-cp38-linux_aarch64.whl

別的,裝置一下OpenCV,便利停止圖像處置:

pip install -i https://mirror.baidu.com/pypi/simple opencv_contrib_python

裝置RKNPU2運轉庫

瑞芯微的NPU運轉還需求RKNPU2運轉庫支撐。

起首從https://github.com/airockchip/rknn-toolkit2/tree/master/rknpu2/runtime/Linux下載所需求的RKNN Server和RKNPU2 Runtime庫。留意:不要應用廠商供給的百度盤里面的庫文件,那些文件版本太低了。 瑞芯微的NPU相干東西迭代速率相當快,要留意模子、東西之間的版本婚配。

image.png

# 裝置rknn server
sudo cp rknn_server/aarch64/usr/bin/rknn_server /usr/bin/rknn_server
sudo cp rknn_server/aarch64/usr/bin/start_rknn.sh /usr/bin/start_rknn.sh
sudo cp rknn_server/aarch64/usr/bin/restart_rknn.sh /usr/bin/restart_rknn.sh
# 裝置 RKNPU2 Runtime庫
cp librknn_api女大生包養俱樂部/aarch64/librknnrt.so /usr/lib/librknnrt.so
# 創立一個軟銜接到librknnrt.so
sudo ln -s /usr/lib/librknnrt.so /usr/lib/librknn_api.so

至此,運轉Python NPU推理法式的開闢周遭的狀況就預備好了。


周遭的狀況預備好之后,接上去應用瑞芯微的NPU停止途徑錄像中的車輛辨認,依據辨認到的車輛的多少數字估量途徑的流量情形,完成聰明路況中的流量監控效能。

YOLOv8的RKNN模子

我們應用YOLOv8框架停止目包養站長的的檢測。YOLOv8(You Only Look Once version 8)是一個深度進修框架,用于完成及時對象檢測。YOLOv8 繼續了前代模子的長處,并在此基本長進行了多項改良,包含更復雜的收集架構、更優化的練習流程和更強盛的特征提取才能。

瑞芯微在其Github倉庫中供給了大批曾經優化和測實驗證過的模子,此中就包含YOLOv8:

https://github.com/airockchip/rknn_model_zoo/blob/main/examples/yolov8/README.md。

瑞芯微供給的模子是一個優化后的模子,與官方原始模子分歧。以yolov8n.onnx為例來展現它們之間的差別。

1、它們輸入信息的對照如下。右邊是官方原始模子的輸入,左邊是優化后的模子輸入。如圖所示,原始模子的輸入被分為三個部門。例如,在輸入聚集([1,64,80,80],[1,80,80,80],[1,1,80,80])中,[1,64,80,80]是鴻溝框的坐標,[1,80,80,80]是對應于80個種別的鴻溝框相信度,而[1,1,80,80]是80個種別相信度的總和。

請留意,這里的說明是基于罕見目的檢測模子(如YOLO系列)的輸入格局,詳細細節(如維度寄義)能夠因模子版本或完成而異。但普通來說,上述說明供給了關于YOLO類模子輸入構造的通用懂得。

image.png

2、以輸入聚集([1,64,80,80],[1,80,80,80],[1,1,80,80])為長期包養例,瑞芯微在模子中移除了兩個卷積節點之后的子圖,保存了這兩個卷積的輸入([1,64,80,80],[1,80,80,80]),并增添了一個reducesum+clip分支來盤算80個種別相信度的總和([1,1,80,80])。

這里的“reducesum”操縱凡是用于對某個維度上的元素停止乞降,而“clip”操縱用于限制乞降成果的取值范圍,台灣包養網以防止數值溢出或堅持數值在特定范圍內。

image.png

瑞芯微供給的YOLOv8模子的練習方式和官方的完整雷同,只是在導出的時辰做了一些修正,有關導出 RKNPU 適配模子闡明請見:https://github.com/airockchip/ultralytics_yolov8/blob/main/RKOPT_README.zh-CN.md。

法式的安排

YOLOv8法式在RK3588上的安排,我們參考了鷂子2100的博文https://blog.csdn.net/weixin_42206548/article/details/138507491,在此表現感激。

和RKNN_model_zoo 中的

examples 供給的YOLOv8 的相干 demo,該法式有兩點改良:

1)借助rknn-multi-threaded(https://github.com/leafqycc/rknn-multi-threaded)應用多線程推理進步NPU的占用率,參考:https://blog.csdn.net/2401_84011132/article/details/137803348

2)優化了Python 后處置部門往除PyTorch 依靠,將后包養平台處置耗時從幾百毫秒下降到了幾十毫秒。

在 main.py 文件中,可以修正模子、線程數,還可以修正成及時推理攝像頭。

# 推理錄像文件
cap = cv2.VideoCapture( ./720p60hz.mp4 )
# 推理及時攝像頭
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH,640)cap.set(cv2.CAP_PROP_FRAME_HEIGHT,480)

法式啟動后會顯示RNKK的相干信息:

python3 main.py
I RKNN: [19:25:32.433] RKNN Runtime Information, librknnrt version: 2.0.0b0 (35a6907d79@2024-03-24T10:31:14)
I RKNN: [19:25:32.433] RKNN Driver Information, version: 0.9.3
I RKNN: [19:25:32.434] RKNN Model Information, version: 6, toolkit version: 1.6.0+81f21f4d(compiler version: 1.6.0 (585b3edcf@2023-12-11T07:42:56)), target: RKNPU v2, target platform: rk3588, framework name: ONNX, framework layout: NCHW, model inference type: static_shape
./rknnModel/yolov8s.rknn       done
I RKNN: [19:25:32.644] RKNN Runtime Information, librknnrt version: 2.0.0b0 (35a6907d79@2024-03-24T10:31:14)
I RKNN: [19:25:32.644] RKNN Driver Information, version: 0.9.3
I RKNN:包養條件 [19:25:32.644] RKNN Model Information, version: 6, toolkit version: 1.6.0+81f21f4d(compiler version: 1.6.0 (585b3edcf@2023-12-11T07:42:56)), target: RKNPU v2, target platform: rk3588, f包養dcardramework name: ONNX, framework layout: NCHW, model inference type: static_shape
./rknnModel/yolov8s.rknn       done
I RKNN: [19:25:32.770] RKNN Runtime Information, librknnrt 包養網車馬費version: 2.0.0b0 (35a6907d79@2024-03-24T10:31:14)
I RKNN: [19:25:32.770] RKNN Driver Information, version: 0.9.3
I RKNN: [19:25:32.771] RKNN Model Information, version: 6, toolkit version: 1.6.0+81f21f4d(compiler version: 包養網ppt1.6.0 (585b3edcf@2023-12-11T07:42:56)), target: RKNPU v2, target platform: rk3588, framework name: ONNX, framework layout: NCH包養網推薦W, model inference type: static_shape
./rknnModel/yolov8s.rknn       done

流量統計

我們在每幀推理停止后,統計此中”car”、”motorbike “、 “bus”和包養故事“truck”對象的多少數字,作為流量統計的根據。

def myFunc(rknn_lite, IMG):
    IMG2 = cv2.cvtColor(IMG, cv2.COLOR_BGR2RGB)
    # 等比例縮放
    IMG2, ratio, padding = letterbox(IMG2)
    # 強迫放縮
    # IMG2 = cv2.resize(IMG, (IMG_SIZE, IMG_SIZE))
    IMG2 = np.expand_dims(IMG2, 0)
   
    outputs = rknn_lite.inference(inputs=[IMG2],data_format=[ nhwc ])
    #print("oups1",len(outputs))
    #print("oups2",outputs[0].shape)
    boxes, classes, scores = yolov8_post_process(outputs)
   
    global car_num
    global truck_num
    global motorbike_num
    global bus_num
   
    car_num = 0
    truck_num = 0
    motorbike_num = 0
    bus_num = 0
    if classes is not None:
            for box, score, cl in zip(boxes, scores, classes):
              if CLASSES[cl] == car :
                car_num = car_num + 1
              elif CLASSES[cl] == motorbike :
                motorbike_num = motorbike_num + 1
              elif CLASSES[cl] 包養一個月== bus :
 包養條件               bus_num = bus_num + 1
              elif CLASSES[cl] == truck :
                truck_num = truck_num + 1
    if boxes is not None:
     draw(IMG, boxes, scores, classes, ratio, padding)
    return IMG

為了防止上傳到云辦事器的數據過多,每30幀上傳一次數據。


我的法式曾經可以在開闢板上及時運轉,并顯示車輛檢測成果。

包養網心得

Screenshot from 2024-07-27 21-45-04.png

完成了車輛檢測任務,我們將數據經由過程MQTT協定上傳到huaweiIoTDA辦事器。

huaweiIoTDA樹立產物和裝備

huaweiIoTDA的用法後面曾經先容了,這里就簡略描寫一下步調。先在huawei云中創立一個產物。
image.png

然后在該產物的物模子中,添加5個屬性,即算計、轎車、卡車、摩托車和客車。
image.png

再在產物中創立一個裝備用于MQTT接進。

Python法式編寫MQTT客戶端

pip install paho.mqtt法式中應用了paho.mqtt庫,所以先需求裝置該庫文件:

pip install paho.mqtt

每30幀發送一次數據到辦事器,發送數據的函數界說如下:

def publish(car, motorbike, bus, truck):
    global msg_count
    global client
    msg_count = 0
    #while True:
     #time.sleep(3)
    # 獲取以後體系時光,并格局化為"YYYYMMDDTHHMMSSZ" 
    now = datetime.utcnow().replace(tzinfo=timezone.utc).strftime("%Y%m%dT%H包養妹%M%SZ")
    sum = car + motorbike + bus + truck
    msg = f""" 
     {{ 
         "services": [ 
         {{ 
       這樣的任性,這樣的不祥,這樣的隨心所欲,只是她未婚時的那種待遇,還是藍家養尊處優的女兒吧?因為嫁為妻兒媳之後,     "serviceId": "車流統計", 
            "properties"包養女人: {{ 
             "算計": {sum}, 
             "轎車": {car}, 
             "卡車": {truck} ,
             "摩托車": {motorbike}, 
             "客車": {bus}
               
            }}, 
            "event_time": "{now}" 
         }} 
         ] 
     }}
    """
    result = client.publish(topic, msg)
    # result: [0, 1]
    status = result[0]
    if status == 0:
     print(f"Send `{msg}` to topic `{topic}`")
    else:
     print(f"Failed to send message to topic {topic}")
    msg_count += 1

運轉法式,從huawei云的把持臺,我們就可以看到上傳的數據了。
image.png

法式下載

完全的法式可以從這里下載:*附件:hzhy-ai300g.zip

闡明:此中MQTT的參數被用XXXX取代了,需求用真正的的huawei云接進參數取代。測試用的720p60hz.mp4和RKNN模子文件太年夜了,需求的同窗請到publish / rknn3588-yolov8 · GitLab (bwbot.org)下載。

至此,我們此次評測就完整停止了,接待大師留言提出可貴的看法。


我的法式曾經可以在開闢板上及時運轉,并顯示車輛檢測成果。

Screenshot from 2024-07-27 21-45-04.png

完成了車輛檢測任務,我們將數據經由過程MQTT協定上傳到huaweiIoTDA辦事器。

huaweiIoTDA樹立產物和裝備

huaweiIoTDA的用法後面曾經先容了,這里就簡略描寫一下步調。先在huawei云中創立一個產物。
image.png

然后在該產物的物模子中,添加5個屬性,即算計、轎車、卡車、摩托車和客車。
image.png

再在產物中創立一個裝備用于MQTT接進包養網站

Python法式編寫MQTT客戶端

pip install paho.mqtt法式中應用了paho.mqtt庫,所以先需求裝置該庫文件:

pip install paho.mqtt

每30幀發送一次數據到辦事器,發送數據的函數界說如下:

def publish(car, motorbike, bus, truck):
    global msg_count
    global client
    msg_count = 0
    #while True:
     #time.sleep(3)
    # 獲取以後體系時光,并格局化為"YYYYMMDDTHHMMSSZ" 
    now = datetime.utcnow().replace(tzinfo=timezone.utc).strftime("%Y%m%dT%H%M%SZ")
    sum = car + motorbike + bus + truck
    msg = f""" 
     {{ 
         "services": [ 
         {{ 
            "serviceId": "車流統計", 
            "properties": {{ 
             "算計": {sum}, 
             "轎車": {car}, 
             "卡車": {truck} ,
             "摩托車": {motorbike}, 
             "客車": {bus}
               
            }}, 
            "event_time": "{now}" 
         }} 
         ] 
     }}
    """
    result = client.publish(topic, msg)
    # result: [0, 1]
    status = result[0]
    if status == 0:
     print(f"Send `{msg}` to 包養一個月價錢topic `{topic}`")
    else:
     print(f"Failed to send message to topic {topic}")
    msg_count += 1

運轉法式,從huawei云的把持臺,我們就可以看到上傳的數據了。
image.png

法式下載

完全的法式可以從這里下載:*附件:hzhy-ai300g.zip

闡明:此中MQTT的參數被用XXXX取代了,需求用真正的的huawei云接進參數取代。測試用的720p60hz.mp4和RKNN模子文件太年夜了,需求的同窗請到publish / rknn3588-yolov8 · GitLab (bwbot.org)下載。

至此,我們此次評測就完整停止了,接待大師留言提出可貴的看法。


已發佈

分類:

作者:

標籤:

留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *