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

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

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

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

在 MaaXBoard Mini 上安裝 Edge Impulse Linux SDK
什么是 Edge Impulse Linux CLI 或 SDK?
Edge Impulse Linux CLI 或 SDK(文檔交替使用這兩個(gè)術(shù)語)是下載和運(yùn)行為 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
上面的命令應(yīng)該為您提供路徑上的節(jié)點(diǎn)版本。在這種情況下,它應(yīng)該是14.x
。
您將需要許多依賴項(xiàng),包括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.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 現(xiàn)在已安裝在您的 MaaXBoard 上。

收集數(shù)據(jù)
在 Edge Impulse 中收集數(shù)據(jù)的主要方式有 3 種
- 使用 Edge Impulse Linux SDK 連接開發(fā)板并通過 Web 界面收集數(shù)據(jù)
- 收集板上的數(shù)據(jù),并通過 GUI 上傳器上傳
- 收集板上的數(shù)據(jù),或使用現(xiàn)有數(shù)據(jù)集,然后使用主機(jī) PC 上 Edge Impulse CLI 中的 Edge Impulse Uploader 上傳數(shù)據(jù)。
刪除示例項(xiàng)目中的現(xiàn)有數(shù)據(jù)
您之前在 Edge Impulse 中復(fù)制的項(xiàng)目已經(jīng)有一些與之關(guān)聯(lián)的數(shù)據(jù)。在開始收集數(shù)據(jù)之前,您需要將其從項(xiàng)目中刪除。轉(zhuǎn)到數(shù)據(jù)采集選項(xiàng)卡并選擇復(fù)選標(biāo)記以選擇多個(gè)項(xiàng)目。全選并選擇“刪除所選內(nèi)容”。在“測試數(shù)據(jù)”選項(xiàng)卡上執(zhí)行相同的操作。

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

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

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

使用 GUI 上傳器上傳數(shù)據(jù)
使用 Edge Impulse 采樣數(shù)據(jù)非常有用,但它一次只能采集一張圖像。由于我需要在一段時(shí)間內(nèi)收集大量數(shù)據(jù),因此最簡單的方法是編寫一個(gè)腳本來收集 MaaXBoard 上的數(shù)據(jù),將其壓縮,然后將其發(fā)送到我的 PC 進(jìn)行上傳。
在這種情況下,我將使用ffmeg庫連續(xù)拍攝圖像:
sudo apt install ffmpeg
創(chuàng)建一個(gè)名為 hardhats 的文件夾并將cd放入其中。運(yùn)行如下腳本開始收集 322 像素圖像(Edge Impulse 中對象檢測項(xiàng)目中圖像的最大尺寸)。
我的地下室碰巧有一個(gè)實(shí)際的建筑工地,所以我在粉刷地下室時(shí)讓 ffmeg 運(yùn)行,中途脫下安全帽。
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
在我的主機(jī) PC 上,我將壓縮文件夾復(fù)制到:
scp ebv@192.168.1.14:hardhats.zip .
然后,我只需使用 Edge Impulse 界面的 Data Acquisition 選項(xiàng)卡上的上傳按鈕解壓縮并上傳整個(gè)文件夾:

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

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

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

設(shè)置和訓(xùn)練您的模型
生成特征
現(xiàn)在您的圖像已被標(biāo)記,是時(shí)候設(shè)置訓(xùn)練了。為此,請轉(zhuǎn)到Impulse design
選項(xiàng)卡。在第一個(gè)子選項(xiàng)卡上,Create Impulse
目標(biāo)檢測模型沒有太多工作要做,因?yàn)檫@里的參數(shù)受到限制。
選擇Image
選項(xiàng)卡,然后單擊Generate features 。單擊“生成特征”按鈕。

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

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

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

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

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

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

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

從 CLI 運(yùn)行您的項(xiàng)目
要實(shí)際運(yùn)行您的模型,首先您必須在“部署”選項(xiàng)卡下構(gòu)建它。選擇Linux板,然后選擇build :

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

您可以通過轉(zhuǎn)到終端輸出 EG 中列出的 IP 地址來查看您的模型所看到的內(nèi)容
每當(dāng)您的模型檢測到不安全的情況時(shí)發(fā)送短信
在twilio上創(chuàng)建一個(gè)帳戶并在“購買號碼”頁面上購買“發(fā)件人”電話號碼以允許發(fā)送 SMS。設(shè)置一個(gè)免費(fèi)帳戶可為您提供 15 美元的信用額度,因此您不必花任何錢。
我從 Edge Impulse 分叉了一個(gè)簡單的 web 應(yīng)用程序,它運(yùn)行您的模型并在每次檢測到?jīng)]有安全帽的人時(shí)通過 Twilio 發(fā)送文本警報(bào)。
在您的 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 并安裝依賴項(xiàng):
cd example-linux-with-twilio.git
npm install
通過以下方式啟動應(yīng)用程序:
npm run build
node build/webserver-twilio.js modelfile.eim
您將在終端中看到警報(bào),在您的網(wǎng)絡(luò)瀏覽器中http://localhost:4911 ,您還將開始在手機(jī)上收到警報(bào)!

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