電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>在MaaXBoard Mini上使用Edge Impulse進行安全帽檢測

在MaaXBoard Mini上使用Edge Impulse進行安全帽檢測

2023-06-15 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

介紹

為什么選擇 MaaXBoard Mini?

MaaXBoard Mini是基于 NXPi.MX 8M Mini 處理器的Avnet 開發(fā)板,該處理器具有四個 Cortex-A53 內(nèi)核平臺,每個內(nèi)核的時鐘頻率為 1.8GHz。它具有一個 Pi hat 接口,以及四個 USB 端口、BLE 4.0、WIFI、一個 MIPI 攝像頭接口和一個 MIPI 顯示接口。

pYYBAGNiSRKAOenEAAEOBfAMcOE569.png
?

今年 2 月,我在幾個機器學習模型上對 MaaXBoard Mini 和 8 臺類似的單板計算機進行了基準測試。它在 Mobilenet SSD V.1 和 V.2 上的速度優(yōu)于 Raspberry Pi 4 和 NVIDIA Jetson Nano (TF),并且在功耗方面優(yōu)于除 Movidius NCS 和 MaaXBoard 之外的所有主板。

?
?
?
poYBAGNiSRSAd5brAACGBpZcXSo314.png
?
1 / 2
?

我認為它是用于機器學習的完美小型單板計算機,我想將它與Edge Impulse配對,Edge Impulse是在邊緣訓練機器學習的理想軟件平臺。

為什么要進行安全帽檢測?

安全帽檢測是用于建筑工地安全的有用的計算機視覺應用程序。是否有人在沒有適當安全裝備的情況下走進建筑工地?使用機器學習模型提醒您的施工主管注意不安全的情況。

poYBAGNiSReAcxRCAAAxNXAp-m4638.jpg
?

設置

您需要執(zhí)行幾個設置步驟才能讓 Edge Impulse CLI 在您的 MaaXBoard 或 MaaXBoard Mini 上運行。

設置您的 MaaXBoard

您需要做的第一件事是閱讀我的Headless Setup 指南,使用 Debian 操作系統(tǒng)設置 MaaXBoard Mini,創(chuàng)建一個非 root 用戶,然后通過 SSH 連接。

在 Edge Impulse 上創(chuàng)建一個新項目

如果您還沒有帳戶,下一步是在Edge Impulse上創(chuàng)建一個帳戶。

轉到 Edge Impulse 中的Object Detection 項目,然后選擇“clone this project”。

poYBAGNiSRmAMhhBAACel0q_al4126.png
?

在 MaaXBoard Mini 上安裝 Edge Impulse Linux SDK

什么是 Edge Impulse Linux CLI 或 SDK?

Edge Impulse Linux CLI 或 SDK(文檔交替使用這兩個術語)是下載和運行為 linux 打包的 .eim 文件所必需的。它還允許從 Web 界面連接到電路板并收集傳感器數(shù)據(jù)。有四種不同的語言 SDK。在這種情況下,我們將使用node.js SDK 。

為 Node.js 安裝 Edge Impulse CLI 和 Linux SDK

啟動您的 MaaXBoard Mini 并以您在Headless Setup期間創(chuàng)建的非 root 用戶身份登錄

在您的 MaaXBoard 上安裝node.js :

set -e
sudo apt install curl
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt install -y nodejs
node -v

上面的命令應該為您提供路徑上的節(jié)點版本。在這種情況下,它應該是14.x

您將需要許多依賴項,包括libvips8 ,這是安裝圖像處理庫sharp的要求。安裝 libvips8 需要 20 多分鐘,所以喝杯茶什么的:

sudo apt install -y gcc g++ make build-essential pkg-config glib2.0-dev libexpat1-dev sox v4l-utils libjpeg62-turbo-dev
wget https://github.com/libvips/libvips/releases/download/v8.10.5/vips-8.10.5.tar.gz
tar xf vips-8.10.5.tar.gz
cd vips-8.10.5
./configure
make -j
sudo make install
sudo ldconfig

您現(xiàn)在可以刪除壓縮的安裝文件夾node-v12.13.0-linux-arm64.tar.xzvips-8.10.5.tar.gz 。

最后,安裝 edge-impulse CLI 和 Linux SDK:

sudo npm install edge-impulse-cli -g --unsafe-perm=true
sudo npm install edge-impulse-linux -g --unsafe-perm=true

如果您看到消息+ edge-impulse-linux@[VERSION]+ edge-impulse-cli@[VERSION] ,成功!Edge Impulse CLI 現(xiàn)在已安裝在您的 MaaXBoard 上。

?
?
?
pYYBAGNiSRuATUA5AACjCi4KNXU737.png
?
1 / 3 ?成功!
?

收集數(shù)據(jù)

在 Edge Impulse 中收集數(shù)據(jù)的主要方式有 3 種

  • 使用 Edge Impulse Linux SDK 連接開發(fā)板并通過 Web 界面收集數(shù)據(jù)
  • 收集板上的數(shù)據(jù),并通過 GUI 上傳器上傳
  • 收集板上的數(shù)據(jù),或使用現(xiàn)有數(shù)據(jù)集,然后使用主機 PC 上 Edge Impulse CLI 中的 Edge Impulse Uploader 上傳數(shù)據(jù)。

刪除示例項目中的現(xiàn)有數(shù)據(jù)

您之前在 Edge Impulse 中復制的項目已經(jīng)有一些與之關聯(lián)的數(shù)據(jù)。在開始收集數(shù)據(jù)之前,您需要將其從項目中刪除。轉到數(shù)據(jù)采集選項卡并選擇復選標記以選擇多個項目。全選并選擇“刪除所選內(nèi)容”。在“測試數(shù)據(jù)”選項卡上執(zhí)行相同的操作。

?
?
?
poYBAGNiSR6AabEqAADvJMJIunY288.png
?
1 / 3 ?轉到數(shù)據(jù)采集選項卡并選擇復選標記以選擇多個項目
?

將您的網(wǎng)絡攝像頭連接到 MaaXBoard Mini

我正在使用 USB 網(wǎng)絡攝像頭 - HD Pro Webcam C920 。拍攝只有 320x320 像素的圖像有點矯枉過正,但我??喜歡這個,因為它有一個支架,所以我可以將它連接到三腳架上。

將您的 USB 網(wǎng)絡攝像頭連接到 MaaXBoard Mini 上的 USB 端口之一。接下來,確保您擁有網(wǎng)絡攝像頭權限。編輯/etc/rc.local文件,以在每次板子啟動時授予您自己的攝像頭權限:

sudo nano /etc/rc.local

exit 0rc.local中的" " 之前包含這一行

sudo chmod -R a+rwx /dev/video1

在 MaaXBoard 上,video0 是 MIPI-CSI 攝像頭,video1+ 是 USB 攝像頭。編輯rc.local后,運行:

sync
sudo reboot

重新登錄后,您現(xiàn)在應該在運行時看到您擁有攝像頭權限ls -l /dev/video*

pYYBAGNiSSCAT3aLAAAYqLSJUeY320.png
?

使用 Edge Impulse Linux SDKTY 收集新數(shù)據(jù)

在您的 MaaXBoard Mini 上運行 Edge Impulse Linux SDK:

edge-impulse-linux

出現(xiàn)提示時,登錄您的 Edge Impulse 帳戶并命名您的設備(我將我的設備命名為“mini”)。當您轉到 Edge Impulse 上的項目頁面時,您現(xiàn)在會看到 MaaXBoard Mini 已連接:

?
?
?
pYYBAGNiSSSAZ393AABr8jXC3DM856.png
?
1 / 3 ?為您的設備命名
?

如果您想連接到不同的項目,您始終可以通過鍵入以下內(nèi)容來清除您的憑據(jù):

edge-impulse-linux --clean

您還可以通過鍵入ctrl-c退出 CLI 。

連接您的電路板后,可以直接使用 Edge Impulse 的 Web 界面從您的 MaaXBoard Mini 收集數(shù)據(jù)。Data Acquisition頁面上,選擇您的設備,輸入標簽(對于對象檢測,這只是文件名,不會創(chuàng)建標簽),選擇您的傳感器(選擇相機)并開始采樣

您將看到相機源的預覽。

?
?
?
poYBAGNiSSaANI0hAAC9A-FtEcA873.png
?
1 / 2 ?選擇您的設備和傳感器并開始采樣!
?

使用 GUI 上傳器上傳數(shù)據(jù)

使用 Edge Impulse 采樣數(shù)據(jù)非常有用,但它一次只能采集一張圖像。由于我需要在一段時間內(nèi)收集大量數(shù)據(jù),因此最簡單的方法是編寫一個腳本來收集 MaaXBoard 上的數(shù)據(jù),將其壓縮,然后將其發(fā)送到我的 PC 進行上傳。

在這種情況下,我將使用ffmeg庫連續(xù)拍攝圖像:

sudo apt install ffmpeg

創(chuàng)建一個名為 hardhats 的文件夾并將cd放入其中。運行如下腳本開始收集 322 像素圖像(Edge Impulse 中對象檢測項目中圖像的最大尺寸)。

我的地下室碰巧有一個實際的建筑工地,所以我在粉刷地下室時讓 ffmeg 運行,中途脫下安全帽。

mkdir hardhats
cd hardhats
nohup ffmpeg -s 320x320 -i /dev/video1 -r 2 hardhats-%04d.jpg
?
?
?
pYYBAGNiSSiABURkAAA63NFsYfE753.jpg
?
1 / 2 ?戴著安全帽繪畫
?

壓縮名為hardhats的文件夾

sudo apt install zip
zip -r hardhats.zip hardhats

在我的主機 PC 上,我將壓縮文件夾復制到:

scp ebv@192.168.1.14:hardhats.zip .

然后,我只需使用 Edge Impulse 界面的 Data Acquisition 選項卡上的上傳按鈕解壓縮并上傳整個文件夾:

?
?
?
poYBAGNiSSuAZ7yKAABqEsUDFwk646.png
?
1 / 2
?

使用 Edge Impulse CLI 上傳數(shù)據(jù)

您還可以使用edge-uploader cli從主機輕松上傳數(shù)據(jù)。這有一個額外的好處,就是能夠上傳已經(jīng)注釋的數(shù)據(jù),只要注釋的格式正確。

首先,安裝 Python3Node.js v14 或更高版本。然后安裝 CLI。在這里,我將它安裝在我的 Mac 上(Linux、Windows 和 Mac 的完整說明在這里):

npm install -g edge-impulse-cli --force

要將數(shù)據(jù)上傳到 Edge Impulse,請運行edge-impulse-uploader您的數(shù)據(jù)目錄,例如:

edge-impulse-uploader /Users/monica/Documents/EdgeImpulseTalk/restsubset2898/output/.*jpg

這將引導您配置 CLI 以上傳到所需的項目。它會讓您知道文件是否成功上傳。

poYBAGNiSS2ADcSiAADe9LvZ9LY478.png
?

如果要使用不同的項目重新配置 CLI,請運行:

edge-impulse-uploader --clean

注釋數(shù)據(jù)

Edge Impulse 讓您可以直接在 Web 界面中注釋數(shù)據(jù)。單擊數(shù)據(jù)點旁邊的三個點,然后選擇編輯標簽。您還可以通過選擇“標記隊列”選項卡一次編輯所有未標記的圖像。

在圖像上拖動鼠標以標記它。輸入標簽名稱,然后單擊設置標簽。最后,選擇保存標簽。

?
?
?
pYYBAGNiSS-AOd_jAACfHXBBC2I460.png
?
1 / 4 ?單擊數(shù)據(jù)點旁邊的三個點并選擇編輯標簽
?

使用現(xiàn)有標簽上傳數(shù)據(jù)

如果您選擇使用預先注釋的數(shù)據(jù)集或在另一個工具中注釋您的數(shù)據(jù)(要了解有關注釋數(shù)據(jù)的更多信息,請參閱我的項目“機器學習注釋數(shù)據(jù)”),您可以通過將注釋保存在單個文件中來上傳注釋您的主機 PC 稱為bounding_boxes.labels 。您可以在Edge Impulse 的文檔中的“邊界框”標題下查看有關 Edge Impulse 使用的特定 JSON 注釋格式的更多信息

我編寫了一個 python腳本來將流行的注釋格式Pascal VOC轉換為 Edge Impulse JSON 格式。如果您的標簽是另一種格式,您可以使用 Roboflow 的有用工具將它們轉換為 Pascal VOC,然后使用我的腳本將它們轉換為 Edge Impulse 格式。

要上傳您的注釋,請將bounding_boxes.labels與您的圖像放在同一文件夾中并運行邊緣脈沖上傳器。

?
?
?
poYBAGNiSTGAau8uAAAY4slT2zo015.png
?
1 / 3 ?注釋的文件夾結構
?

設置和訓練您的模型

生成特征

現(xiàn)在您的圖像已被標記,是時候設置訓練了。為此,請轉到Impulse design選項卡。在第一個子選項卡上,Create Impulse目標檢測模型沒有太多工作要做,因為這里的參數(shù)受到限制。

選擇Image選項卡,然后單擊Generate features 。單擊“生成特征”按鈕。

?
?
?
pYYBAGNiSTSAH85pAABnGqlGSVg385.png
?
1 / 2 ?單擊“生成特征”按鈕。
?

理想情況下,不同的特征應該聚集在不同的組中。如果您看到它們都聚集在一起,請檢查彼此靠近的不同特征,看看您的數(shù)據(jù)是否存在問題。

?
?
?
poYBAGNiSTeAVd4qAABfN4hxxKQ909.png
?
1 / 5 ?糟糕的數(shù)據(jù) - 特征彼此非常接近
?

您可以將鼠標懸停在每個數(shù)據(jù)點上并單擊以查看與其相關的圖像。通過這樣做,我能夠看到中間的圖像往往有非常小的注釋,所以我提高了注釋的最小尺寸,再次上傳我的數(shù)據(jù),這樣可以獲得更好的數(shù)據(jù)。

訓練模型

是時候訓練你的模型了。如果您熟悉 Keras,可以使用 Keras 模式來選擇模型設置。從 GUI 中,您可以輕松選擇不同的模型、訓練周期數(shù)、學習率和分數(shù)閾值。最后,選擇開始訓練來訓練您的模型。

pYYBAGNiSTqAI6T9AAD5lVruclg270.png
?

測試和部署您的模型

測試你的模型

訓練模型后,您將看到 Precision 分數(shù)和估計的設備性能。

Edge Impulse 讓您可以在板上測試您的項目。只要您的電路板已連接,您就可以使用MaaXBoard Mini的實時分類進行測試。只需像在數(shù)據(jù)采集期間一樣選擇您的設備,然后選擇Start Sampling 。

?
?
?
poYBAGNiST2AVN9jAACB-IHmU90511.png
?
1 / 3 ?選擇開始采樣
?

默認情況下,此處拍攝的圖像會添加到測試集中。您可以通過選擇“摘要”旁邊的三個點并選擇移動到訓練集來將項目移動到訓練集將其移至訓練集后,它還將顯示在Labeling queue下的Data Acquisition選項卡下,您可以在其中添加標簽。

然后,您可以使用這些測試圖像測試您的模型。要專門為測試集上傳數(shù)據(jù),您必須在上傳中指定。上傳您的測試數(shù)據(jù)并指定--category testing.

edge-impulse-uploader --category testing C:\Users\044560\Documents\EdgeImpulseTalk\testset\output\*.jpg

你的訓練集應該是你圖像的 80%,而你的測試集應該是 20%。如果您的測試集中有太多或太少的圖像,您會在Data Acquisition選項卡上看到一個警告按鈕。您可以通過單擊它并選擇Perform train / test split來修復您的拆分。

?
?
?
poYBAGNiSUKAX3JDAAB6k8EaBco864.png
?
1 / 2 ?數(shù)據(jù)采集選項卡上的警告按鈕
?

您將能夠在Model Testing側邊欄下看到所有測試數(shù)據(jù)。要在您的測試數(shù)據(jù)上測試您的模型,只需選擇Classify all 。圖像分類后,您可以通過單擊圖像旁邊的三個欄并選擇“顯示分類”來獲得更好的視圖。

在這里,您可以準確地查看模型分類錯誤的內(nèi)容,并使用此信息來改進您的模型。例如,我的模型在這張圖片中只正確分類了最大的頭盔,所以我可以推斷當主體太遠時它的表現(xiàn)很差:

?
?
?
pYYBAGNiSUWAK3CVAADtF-OzHi4380.png
?
1 / 3 ?要在您的測試數(shù)據(jù)上測試您的模型,只需選擇 Classify all
?

版本控制

如果您的模型獲得了不錯的準確性,最好保存它的一個版本。我喜歡在版本描述中注明準確性和我使用的數(shù)據(jù)集子集,以及訓練周期數(shù)和學習率:

?
?
?
pYYBAGNiSUiASyVYAACnRC_l8to879.png
?
1 / 2 ?保存版本
?

要恢復您的項目,請單擊它并選擇恢復在彈出窗口中,為您的項目命名并選擇Restore version 。Edge Impulse 會將您的版本恢復為一個全新的項目,其中包含完整的原始數(shù)據(jù)集。

?
?
?
pYYBAGNiSUuACsa7AABjgUbYMEA312.png
?
1 / 4 ?選擇恢復
?

從 CLI 運行您的項目

要實際運行您的模型,首先您必須在“部署”選項卡下構建它。選擇Linux,然后選擇build

poYBAGNiSU-AXiafAADB4x7jOlM509.png
選擇 Linux 板,然后選擇構建
?

再次運行edge-impulse-linux并連接到您的項目(如果您仍未連接)。下載模型文件并使用edge-impulse-linux-runner運行它

edge-impulse-linux
edge-impulse-linux-runner --download modelfile.eim
edge-impulse-linux-runner
?
?
?
pYYBAGNiSVGAaNxfAAB1tk7ba-g465.png
?
1 / 4 ?下載模型文件
?

您可以通過轉到終端輸出 EG 中列出的 IP 地址來查看您的模型所看到的內(nèi)容

http://10.0.0.79:4912

每當您的模型檢測到不安全的情況時發(fā)送短信

在twilio上創(chuàng)建一個帳戶并在“購買號碼”頁面上購買“發(fā)件人”電話號碼以允許發(fā)送 SMS。設置一個免費帳戶可為您提供 15 美元的信用額度,因此您不必花任何錢。

我從 Edge Impulse 分叉了一個簡單的 web 應用程序,它運行您的模型并在每次檢測到?jīng)]有安全帽的人時通過 Twilio 發(fā)送文本警報。

在您的 MaaXBoard Mini 上安裝 git 并克隆存儲庫:

sudo apt install git 
git clone https://github.com/zebular13/example-linux-with-twilio.git

將 your.eim 文件移動到 repo 文件夾中:

mv modelfile.eim example-linux-with-twilio.git/modelfile.eim

輸入 repo 并安裝依賴項:

cd example-linux-with-twilio.git
npm install

通過以下方式啟動應用程序:

npm run build
node build/webserver-twilio.js modelfile.eim

您將在終端中看到警報,在您的網(wǎng)絡瀏覽器中http://localhost:4911 ,您還將開始在手機上收到警報!

?
?
?
pYYBAGNiSVOAci07AACW6iRhLbE043.png
?
1 / 2
?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費