資料介紹
描述
介紹
為什么選擇 MaaXBoard Mini?
MaaXBoard Mini是基于 NXP 的i.MX 8M Mini 處理器的Avnet 開發板,該處理器具有四個 Cortex-A53 內核平臺,每個內核的時鐘頻率為 1.8GHz。它具有一個 Pi hat 接口,以及四個 USB 端口、BLE 4.0、WIFI、一個 MIPI 攝像頭接口和一個 MIPI 顯示接口。

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

我認為它是用于機器學習的完美小型單板計算機,我想將它與Edge Impulse配對,Edge Impulse是在邊緣訓練機器學習的理想軟件平臺。
為什么要進行安全帽檢測?
安全帽檢測是用于建筑工地安全的有用的計算機視覺應用程序。是否有人在沒有適當安全裝備的情況下走進建筑工地?使用機器學習模型提醒您的施工主管注意不安全的情況。

設置
您需要執行幾個設置步驟才能讓 Edge Impulse CLI 在您的 MaaXBoard 或 MaaXBoard Mini 上運行。
設置您的 MaaXBoard
您需要做的第一件事是閱讀我的Headless Setup 指南,使用 Debian 操作系統設置 MaaXBoard Mini,創建一個非 root 用戶,然后通過 SSH 連接。
在 Edge Impulse 上創建一個新項目
如果您還沒有帳戶,下一步是在Edge Impulse上創建一個帳戶。
轉到 Edge Impulse 中的Object Detection 項目,然后選擇“clone this project”。

在 MaaXBoard Mini 上安裝 Edge Impulse Linux SDK
什么是 Edge Impulse Linux CLI 或 SDK?
Edge Impulse Linux CLI 或 SDK(文檔交替使用這兩個術語)是下載和運行為 linux 打包的 .eim 文件所必需的。它還允許從 Web 界面連接到電路板并收集傳感器數據。有四種不同的語言 SDK。在這種情況下,我們將使用node.js SDK 。
為 Node.js 安裝 Edge Impulse CLI 和 Linux SDK
啟動您的 MaaXBoard Mini 并以您在Headless Setup期間創建的非 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
上面的命令應該為您提供路徑上的節點版本。在這種情況下,它應該是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
您現在可以刪除壓縮的安裝文件夾node-v12.13.0-linux-arm64.tar.xz和vips-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 現在已安裝在您的 MaaXBoard 上。

收集數據
在 Edge Impulse 中收集數據的主要方式有 3 種
- 使用 Edge Impulse Linux SDK 連接開發板并通過 Web 界面收集數據
- 收集板上的數據,并通過 GUI 上傳器上傳
- 收集板上的數據,或使用現有數據集,然后使用主機 PC 上 Edge Impulse CLI 中的 Edge Impulse Uploader 上傳數據。
刪除示例項目中的現有數據
您之前在 Edge Impulse 中復制的項目已經有一些與之關聯的數據。在開始收集數據之前,您需要將其從項目中刪除。轉到數據采集選項卡并選擇復選標記以選擇多個項目。全選并選擇“刪除所選內容”。在“測試數據”選項卡上執行相同的操作。

將您的網絡攝像頭連接到 MaaXBoard Mini
我正在使用 USB 網絡攝像頭 - HD Pro Webcam C920 。拍攝只有 320x320 像素的圖像有點矯枉過正,但我??喜歡這個,因為它有一個支架,所以我可以將它連接到三腳架上。
將您的 USB 網絡攝像頭連接到 MaaXBoard Mini 上的 USB 端口之一。接下來,確保您擁有網絡攝像頭權限。編輯/etc/rc.local文件,以在每次板子啟動時授予您自己的攝像頭權限:
sudo nano /etc/rc.local
exit 0
在rc.local中的" " 之前包含這一行:
sudo chmod -R a+rwx /dev/video1
在 MaaXBoard 上,video0 是 MIPI-CSI 攝像頭,video1+ 是 USB 攝像頭。編輯rc.local后,運行:
sync
sudo reboot
重新登錄后,您現在應該在運行時看到您擁有攝像頭權限ls -l /dev/video*
。

使用 Edge Impulse Linux SDKTY 收集新數據
在您的 MaaXBoard Mini 上運行 Edge Impulse Linux SDK:
edge-impulse-linux
出現提示時,登錄您的 Edge Impulse 帳戶并命名您的設備(我將我的設備命名為“mini”)。當您轉到 Edge Impulse 上的項目頁面時,您現在會看到 MaaXBoard Mini 已連接:

如果您想連接到不同的項目,您始終可以通過鍵入以下內容來清除您的憑據:
edge-impulse-linux --clean
您還可以通過鍵入ctrl-c退出 CLI 。
連接您的電路板后,可以直接使用 Edge Impulse 的 Web 界面從您的 MaaXBoard Mini 收集數據。在Data Acquisition頁面上,選擇您的設備,輸入標簽(對于對象檢測,這只是文件名,不會創建標簽),選擇您的傳感器(選擇相機)并開始采樣!
您將看到相機源的預覽。

使用 GUI 上傳器上傳數據
使用 Edge Impulse 采樣數據非常有用,但它一次只能采集一張圖像。由于我需要在一段時間內收集大量數據,因此最簡單的方法是編寫一個腳本來收集 MaaXBoard 上的數據,將其壓縮,然后將其發送到我的 PC 進行上傳。
在這種情況下,我將使用ffmeg庫連續拍攝圖像:
sudo apt install ffmpeg
創建一個名為 hardhats 的文件夾并將cd放入其中。運行如下腳本開始收集 322 像素圖像(Edge Impulse 中對象檢測項目中圖像的最大尺寸)。
我的地下室碰巧有一個實際的建筑工地,所以我在粉刷地下室時讓 ffmeg 運行,中途脫下安全帽。
mkdir hardhats
cd hardhats
nohup ffmpeg -s 320x320 -i /dev/video1 -r 2 hardhats-%04d.jpg

壓縮名為hardhats的文件夾:
sudo apt install zip
zip -r hardhats.zip hardhats
在我的主機 PC 上,我將壓縮文件夾復制到:
scp ebv@192.168.1.14:hardhats.zip .
然后,我只需使用 Edge Impulse 界面的 Data Acquisition 選項卡上的上傳按鈕解壓縮并上傳整個文件夾:

使用 Edge Impulse CLI 上傳數據
您還可以使用edge-uploader cli從主機輕松上傳數據。這有一個額外的好處,就是能夠上傳已經注釋的數據,只要注釋的格式正確。
首先,安裝 Python3 和Node.js v14 或更高版本。然后安裝 CLI。在這里,我將它安裝在我的 Mac 上(Linux、Windows 和 Mac 的完整說明在這里):
npm install -g edge-impulse-cli --force
要將數據上傳到 Edge Impulse,請運行edge-impulse-uploader
您的數據目錄,例如:
edge-impulse-uploader /Users/monica/Documents/EdgeImpulseTalk/restsubset2898/output/.*jpg
這將引導您配置 CLI 以上傳到所需的項目。它會讓您知道文件是否成功上傳。

如果要使用不同的項目重新配置 CLI,請運行:
edge-impulse-uploader --clean
注釋數據
Edge Impulse 讓您可以直接在 Web 界面中注釋數據。單擊數據點旁邊的三個點,然后選擇編輯標簽。您還可以通過選擇“標記隊列”選項卡一次編輯所有未標記的圖像。
在圖像上拖動鼠標以標記它。輸入標簽名稱,然后單擊設置標簽。最后,選擇保存標簽。

使用現有標簽上傳數據
如果您選擇使用預先注釋的數據集或在另一個工具中注釋您的數據(要了解有關注釋數據的更多信息,請參閱我的項目“機器學習注釋數據”),您可以通過將注釋保存在單個文件中來上傳注釋您的主機 PC 稱為bounding_boxes.labels 。您可以在Edge Impulse 的文檔中的“邊界框”標題下查看有關 Edge Impulse 使用的特定 JSON 注釋格式的更多信息。
我編寫了一個 python腳本來將流行的注釋格式Pascal VOC轉換為 Edge Impulse JSON 格式。如果您的標簽是另一種格式,您可以使用 Roboflow 的有用工具將它們轉換為 Pascal VOC,然后使用我的腳本將它們轉換為 Edge Impulse 格式。
要上傳您的注釋,請將bounding_boxes.labels與您的圖像放在同一文件夾中并運行邊緣脈沖上傳器。

設置和訓練您的模型
生成特征
現在您的圖像已被標記,是時候設置訓練了。為此,請轉到Impulse design
選項卡。在第一個子選項卡上,Create Impulse
目標檢測模型沒有太多工作要做,因為這里的參數受到限制。
選擇Image
選項卡,然后單擊Generate features 。單擊“生成特征”按鈕。

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

您可以將鼠標懸停在每個數據點上并單擊以查看與其相關的圖像。通過這樣做,我能夠看到中間的圖像往往有非常小的注釋,所以我提高了注釋的最小尺寸,再次上傳我的數據,這樣可以獲得更好的數據。
訓練模型
是時候訓練你的模型了。如果您熟悉 Keras,可以使用 Keras 模式來選擇模型設置。從 GUI 中,您可以輕松選擇不同的模型、訓練周期數、學習率和分數閾值。最后,選擇開始訓練來訓練您的模型。

測試和部署您的模型
測試你的模型
訓練模型后,您將看到 Precision 分數和估計的設備性能。
Edge Impulse 讓您可以在板上測試您的項目。只要您的電路板已連接,您就可以使用MaaXBoard Mini的實時分類進行測試。只需像在數據采集期間一樣選擇您的設備,然后選擇Start Sampling 。

默認情況下,此處拍攝的圖像會添加到測試集中。您可以通過選擇“摘要”旁邊的三個點并選擇移動到訓練集來將項目移動到訓練集。將其移至訓練集后,它還將顯示在Labeling queue下的Data Acquisition
選項卡下,您可以在其中添加標簽。
然后,您可以使用這些測試圖像測試您的模型。要專門為測試集上傳數據,您必須在上傳中指定。上傳您的測試數據并指定--category testing
.
edge-impulse-uploader --category testing C:\Users\044560\Documents\EdgeImpulseTalk\testset\output\*.jpg
你的訓練集應該是你圖像的 80%,而你的測試集應該是 20%。如果您的測試集中有太多或太少的圖像,您會在Data Acquisition
選項卡上看到一個警告按鈕。您可以通過單擊它并選擇Perform train / test split來修復您的拆分。

您將能夠在Model Testing
側邊欄下看到所有測試數據。要在您的測試數據上測試您的模型,只需選擇Classify all 。圖像分類后,您可以通過單擊圖像旁邊的三個欄并選擇“顯示分類”來獲得更好的視圖。
在這里,您可以準確地查看模型分類錯誤的內容,并使用此信息來改進您的模型。例如,我的模型在這張圖片中只正確分類了最大的頭盔,所以我可以推斷當主體太遠時它的表現很差:

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

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

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

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

您可以通過轉到終端輸出 EG 中列出的 IP 地址來查看您的模型所看到的內容
每當您的模型檢測到不安全的情況時發送短信
在twilio上創建一個帳戶并在“購買號碼”頁面上購買“發件人”電話號碼以允許發送 SMS。設置一個免費帳戶可為您提供 15 美元的信用額度,因此您不必花任何錢。
我從 Edge Impulse 分叉了一個簡單的 web 應用程序,它運行您的模型并在每次檢測到沒有安全帽的人時通過 Twilio 發送文本警報。
在您的 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
您將在終端中看到警報,在您的網絡瀏覽器中http://localhost:4911 ,您還將開始在手機上收到警報!

?
- 使用Edge Impulse關鍵字識別控制筆記本電腦
- 智能安全帽開源構建
- 使用Edge Impulse和Nvidia Jetson的面罩檢測器
- 使用XIAO BLE Sense&Edge Impulse的寵物活動追蹤器
- 使用Edge Impulse在pico上進行手勢識別
- 通過Edge Impulse開始使用TinyML
- 使用Python進行伺服PWM控制的MaaxBoard設置
- 使用Edge Impulse的Covid患者健康評估設備
- 使用Edge Impulse識別大象活動
- 在MaaXBoard RT上運行幾乎任何TensorFlow模型
- MAT400安全帽標簽
- 帶UWB定位標簽的安全帽VDU1506數據手冊 0次下載
- 基于YOLOv3的施工安全帽圖像檢測算法 7次下載
- 3G視頻安全帽設計方案 3次下載
- 基于AD7705的安全帽質量檢測 53次下載
- 在ELF 1 開發板上實現讀取攝像頭視頻進行目標檢測 737次閱讀
- YOLOv8自定義數據集訓練實現安全帽檢測 1299次閱讀
- 基于XIAO的圖像分類處理項目 1429次閱讀
- 基于STM32單片機的私家車安全檢測系統設計 1200次閱讀
- 基于Arduino的機器學習開發 1.9w次閱讀
- 安全電子認證如何降低即時檢測的風險 685次閱讀
- 高壓驗電器的使用 接地線掛拆方法(口訣) 1231次閱讀
- 如何在Ubuntu 22.04上安裝Microsoft Edge瀏覽器 1.2w次閱讀
- 使用MATLAB進行異常檢測(下) 2254次閱讀
- 使用MATLAB進行異常檢測(上) 3563次閱讀
- 在Windows 10上阻止Microsoft Edge Chromium自動安裝的方法 5071次閱讀
- dfrobot多彩跳帽簡介 3117次閱讀
- 在貼片加工廠中有哪些安全防護需要了解 1409次閱讀
- 福祿克為益海嘉里提供減少在生產過程中消耗大量的電能的措施 2061次閱讀
- Mini LED和Micro LED是怎樣的顯示技術?與當前主流的OLED顯示有何區別? 2.4w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論