資料介紹
我們可以看到圖像中每個(gè)感興趣的邊界框,并為它們分配一個(gè)類標(biāo)簽。物體檢測最常見的應(yīng)用是人臉識(shí)別、口罩檢測等。因此,我們將構(gòu)建一個(gè)口罩檢測器來檢測人是否戴口罩。在 COVID 情況下,為了解決當(dāng)前場景的問題,使用技術(shù)將自動(dòng)執(zhí)行檢測任務(wù),并避免手動(dòng)檢查違規(guī)者。
在今天的教程中,我們將學(xué)習(xí)如何使用強(qiáng)大的云平臺(tái)Edge Impulse構(gòu)建我們自己的口罩檢測模型,通過該平臺(tái)我們?cè)?NVIDIA Jetson 板上部署經(jīng)過訓(xùn)練的模型,并將其與 CSI 攝像頭傳感器連接以捕獲實(shí)時(shí)圖像。本教程可以應(yīng)用來自您自己的圖像數(shù)據(jù)集的數(shù)據(jù)集或來自Kaggle的標(biāo)記公共數(shù)據(jù)集。圖像數(shù)據(jù)集有兩個(gè)類,分別是with_mask和without_mask。
在本教程結(jié)束時(shí),您將能夠:
使用Edge Impulse平臺(tái)收集用于實(shí)時(shí)檢測的良好數(shù)據(jù)集
數(shù)據(jù)標(biāo)注
使用Edge Impulse訓(xùn)練口罩檢測模型
在 NVIDIA Jetson 板上部署對(duì)象檢測
要求
我們的項(xiàng)目將需要以下內(nèi)容:
所需硬件:
NVIDIA Jetson 板(這里我們將使用Xavier NX 開發(fā)工具包)
筆記本電腦或獨(dú)立 PC
對(duì)于實(shí)時(shí)攝像頭演示,需要 Raspberry Pi 攝像頭模塊等攝像頭。在這里,我們將使用Arducam Complete High Quality Camera Bundle。
所需軟件:
邊緣脈沖帳戶。
一些TinyML和深度學(xué)習(xí)的經(jīng)驗(yàn)是有幫助的,但不是必需的。
要無頭運(yùn)行 NVIDIA Jetson Nano 板(不帶顯示器),請(qǐng)從您的筆記本電腦設(shè)置 SSH 訪問或 RDP 連接。
熟悉Linux命令行,bash之類的shell,nano之類的編輯器。
NVIDIA Jetson Xavier NX 開發(fā)者套件
在這里,我將使用 Nvidia Xavier NX 板。與 Jetson Nano 相比,Xavier NX 的速度要快兩到七倍,具體取決于應(yīng)用。
在 NVIDIA Jetson 主板上安裝 Edge Impulse
Edge Impulse是一個(gè)基于云的平臺(tái)。使用 Edge Impulse 平臺(tái),用戶無需深入了解編程或 AI、ML 概念即可訓(xùn)練他們的 AI、ML 模型。
要使用Edge Impulse訓(xùn)練機(jī)器學(xué)習(xí)模型,請(qǐng)創(chuàng)建一個(gè)Edge Impulse帳戶,驗(yàn)證您的帳戶,然后開始一個(gè)新項(xiàng)目。
在開始任何事情之前,最好更新所有內(nèi)容。您可以通過輸入以下命令來做到這一點(diǎn)。
?
sudo apt-get update sudo apt-get upgrade
?
同樣在我們開始之前,將您的相機(jī)模塊連接到您的 Nvidia Jetson 板上的 CSI 端口。然后,要在 Nvidia Jetson 板上使用 Edge Impulse,您首先必須安裝 Edge Impulse 及其依賴項(xiàng)。
從終端運(yùn)行:
?
wget -q -O - https://cdn.edgeimpulse.com/firmware/linux/jetson.sh | bash
?
您應(yīng)該得到如下所示的響應(yīng)。
?
+ edge-impulse-linux@1.3.3 added 347 packages from 416 contributors in 68.138
?
現(xiàn)在,使用以下命令運(yùn)行 Edge Impulse:
?
edge-impulse-linux
?
您將被要求登錄您的 Edge Impulse 帳戶。然后系統(tǒng)會(huì)要求您選擇一個(gè)項(xiàng)目,最后選擇一個(gè)麥克風(fēng)和攝像頭以連接到該項(xiàng)目。
?
Edge Impulse Linux client v1.3.3 ? What is your user name or e-mail address (edgeimpulse.com)? com ? What is your password? [hidden] ? Select a microphone (or run this command with --disable-microphone to skip sel ection) jetson-xaviernx - jetson-xaviernx-ape [SER] Using microphone hw:1,0 [SER] Using camera CSI camera starting... [SER] Connected to camera [WS ] Connecting to wss://remote-mgmt.edgeimpulse.com [WS ] Connected to wss://remote-mgmt.edgeimpulse.com ? What name do you want to give this device? Jetson [WS ] Device "Jetson" is now connected to project "shakhizat-project-1" [WS ] Go to https://studio.edgeimpulse.com/studio/45666/acquisition/training to build your machine learning model!
?
現(xiàn)在,您已在 Nvidia Jetson 板上成功安裝 Edge Impulse。
如果一切正常,您應(yīng)該在 Edge Impulse 的設(shè)備部分看到以下內(nèi)容:
數(shù)據(jù)收集
對(duì)于這個(gè)口罩檢測項(xiàng)目,我們應(yīng)該收集模仿真實(shí)情況的圖像數(shù)據(jù)集。我們應(yīng)該為每個(gè)班級(jí)收集足夠的圖像。您可以使用手機(jī)、Nvidia Jetson 板來收集樣本,也可以將圖像上傳到邊緣脈沖帳戶。
要加載樣本,請(qǐng)單擊Edge Impulse 的數(shù)據(jù)采集部分。
然后,單擊讓我們收集一些數(shù)據(jù)按鈕。
由于我們要訓(xùn)練和測試圖像數(shù)據(jù)集,我們應(yīng)該將其拆分為 80-20。
對(duì)于面罩檢測,我們需要我們的邊界框來分類我們的類。因此,我們需要使用 Edge Impulse 標(biāo)注工具對(duì)圖像進(jìn)行標(biāo)注。
1 / 2
如果您有很多圖像和類,則此過程需要時(shí)間。
理想情況下,建議從Kaggle獲取面罩?jǐn)?shù)據(jù)集。這個(gè)用于機(jī)器學(xué)習(xí)的數(shù)據(jù)集以及它們的 PASCAL VOC 格式的邊界框已經(jīng)過注釋。Pascal VOC 是一個(gè) XML 文件,不像 COCO 有一個(gè) JSON 文件,后者已成為對(duì)象檢測標(biāo)簽的常見交換格式。但是,Edge Impulse使用 JSON 格式的另一種格式。您可以使用此python 腳本將注釋從 Pascal VOC 轉(zhuǎn)換為Edge Impulse格式。
完整的項(xiàng)目可以從這里找到,由Peter Ing實(shí)施。一探究竟。
訓(xùn)練模型
現(xiàn)在我們已經(jīng)收集了口罩樣本,我們可以將它們傳遞給神經(jīng)網(wǎng)絡(luò)并開始訓(xùn)練過程以自動(dòng)檢測一個(gè)人是否戴口罩。所以打開 Edge Impulse 的Impulse設(shè)計(jì)部分。
當(dāng)我們的數(shù)據(jù)集準(zhǔn)備好后,現(xiàn)在我們將為我們的數(shù)據(jù)創(chuàng)建一個(gè)脈沖。為此,請(qǐng)轉(zhuǎn)到創(chuàng)建沖動(dòng)部分。
單擊添加處理塊。
選擇圖像選項(xiàng)。
然后,單擊一個(gè)學(xué)習(xí)塊并添加對(duì)象檢測選項(xiàng)。
將其重命名為面罩檢測,然后單擊保存脈沖按鈕。
接下來,轉(zhuǎn)到Impulse design菜單項(xiàng)下的Images部分,然后單擊Generate Features選項(xiàng)卡,然后單擊Generate features按鈕。
之后,點(diǎn)擊Impulse design 菜單項(xiàng)下的Face mask detection部分,然后點(diǎn)擊頁面底部的Start training按鈕。在這里,我們使用了默認(rèn)的MobileNetV2 。如果需要,您可以使用不同的訓(xùn)練模型。
訓(xùn)練輸出:
?
Creating job... OK (ID: 2325943) Scheduling job in cluster... Job started Splitting data into training and validation sets... Splitting data into training and validation sets OK Training model... Training on 129 inputs, validating on 33 inputs Building model and restoring weights for fine-tuning... Finished restoring weights Fine tuning... Attached to job 2325943... Epoch 1 of 50, loss=1.0996249, val_loss=1.2549742 Epoch 2 of 50, loss=0.5730881, val_loss=1.0309869 Epoch 3 of 50, loss=0.37260413, val_loss=0.88406265 Epoch 4 of 50, loss=0.2732575, val_loss=0.8300728 Epoch 5 of 50, loss=0.21881193, val_loss=0.7985368 Epoch 6 of 50, loss=0.1842412, val_loss=0.77767074 Epoch 7 of 50, loss=0.15971155, val_loss=0.75798315 Epoch 8 of 50, loss=0.141622, val_loss=0.74178046 Epoch 9 of 50, loss=0.12764679, val_loss=0.7201556 Epoch 10 of 50, loss=0.124089435, val_loss=0.7229701 Epoch 11 of 50, loss=0.13733643, val_loss=0.6930027 Epoch 12 of 50, loss=0.10552671, val_loss=0.68260795 Epoch 13 of 50, loss=0.09776387, val_loss=0.6571001 Epoch 14 of 50, loss=0.09269215, val_loss=0.65096503 Epoch 15 of 50, loss=0.08853194, val_loss=0.6398335 Epoch 16 of 50, loss=0.08513473, val_loss=0.6339971 Epoch 17 of 50, loss=0.08155578, val_loss=0.6237093 Epoch 18 of 50, loss=0.07958686, val_loss=0.62563324 Epoch 19 of 50, loss=0.08469187, val_loss=0.60824037 Epoch 20 of 50, loss=0.106107965, val_loss=0.65657234 Epoch 21 of 50, loss=0.08075548, val_loss=0.60204226 Epoch 22 of 50, loss=0.06780515, val_loss=0.61008215 Epoch 23 of 50, loss=0.07962225, val_loss=0.6042041 Epoch 24 of 50, loss=0.07898002, val_loss=0.62557745 Epoch 25 of 50, loss=0.07712146, val_loss=0.6038083 Epoch 26 of 50, loss=0.059002914, val_loss=0.604347 Epoch 27 of 50, loss=0.060714073, val_loss=0.598505 Epoch 28 of 50, loss=0.056586243, val_loss=0.6049032 Epoch 29 of 50, loss=0.06364094, val_loss=0.5943693 Epoch 30 of 50, loss=0.0693655, val_loss=0.6258873 Epoch 31 of 50, loss=0.06930919, val_loss=0.5844879 Epoch 32 of 50, loss=0.055322483, val_loss=0.60721684 Epoch 33 of 50, loss=0.053181175, val_loss=0.5940475 Epoch 34 of 50, loss=0.071890086, val_loss=0.6106543 Epoch 35 of 50, loss=0.09753211, val_loss=0.63664484 Epoch 36 of 50, loss=0.063474864, val_loss=0.5776911 Epoch 37 of 50, loss=0.056974597, val_loss=0.5894003 Epoch 38 of 50, loss=0.05551439, val_loss=0.5942682 Epoch 39 of 50, loss=0.07409478, val_loss=0.5911636 Epoch 40 of 50, loss=0.0580862, val_loss=0.61330724 Epoch 41 of 50, loss=0.057891976, val_loss=0.58406746 Epoch 42 of 50, loss=0.052040614, val_loss=0.61015534 Epoch 43 of 50, loss=0.051715873, val_loss=0.5831931 Epoch 44 of 50, loss=0.052400388, val_loss=0.6184015 Epoch 45 of 50, loss=0.057132762, val_loss=0.5842898 Epoch 46 of 50, loss=0.061072033, val_loss=0.6269493 Epoch 47 of 50, loss=0.0581602, val_loss=0.6031094 Epoch 48 of 50, loss=0.051550377, val_loss=0.6048402 Epoch 49 of 50, loss=0.05313967, val_loss=0.6296155 Epoch 50 of 50, loss=0.050658334, val_loss=0.6037806 Finished fine tuning Checkpoint saved Finished training Creating SavedModel for conversion... Attached to job 2325943... Converting TensorFlow Lite float32 model... Converting TensorFlow Lite int8 quantized model with int8 input and float32 output... Calculating performance metrics... Calculating inferencing time... Attached to job 2325943... Job completed
?
訓(xùn)練過程完成后,我們可以將訓(xùn)練好的Edge 脈沖圖像分類模型部署到 NVIDIA Jetson 板上。
下面的結(jié)果可視化:
在本教程中,您學(xué)習(xí)了如何使用Edge Impulse構(gòu)建圖像數(shù)據(jù)集,如何構(gòu)建用于檢測這些圖像中的面罩的機(jī)器學(xué)習(xí)模型,以及如何將該模型部署到 NVIDIA Jetson 板等邊緣設(shè)備并在其中進(jìn)行測試一個(gè)真實(shí)的時(shí)間。簡而言之,Edge Impulse是非編碼人員開發(fā)機(jī)器學(xué)習(xí)模型的絕佳平臺(tái)。強(qiáng)烈推薦。
參考
邊緣脈沖對(duì)象檢測初學(xué)者指南
在 Raspberry Pi 上使用 Edge Impulse TinyML 進(jìn)行對(duì)象分類
?
- 使用XIAO BLE Sense&Edge Impulse的寵物活動(dòng)追蹤器
- 在MaaXBoard Mini上使用Edge Impulse進(jìn)行安全帽檢測
- 使用Edge Impulse在pico上進(jìn)行手勢識(shí)別
- 通過Edge Impulse開始使用TinyML
- Nvidia Jetson Nano面罩Yolov4探測器
- 使用Edge Impulse的Covid患者健康評(píng)估設(shè)備
- 使用Edge Impulse識(shí)別大象活動(dòng)
- NVIDIA Jetson Nano 2GB 系列文章(1):開箱介紹
- 基于LaBVIEW的供氧面罩防窒息活門檢測 20次下載
- 一種基于檢測器集層次聚類的否定選擇算法 13次下載
- NDIR氣體檢測器解決方案和PID氣體檢測器解決方案
- 電阻式溫度檢測器(RTD)基礎(chǔ)知識(shí)及參考設(shè)計(jì)
- 車輛檢測器的低功耗設(shè)計(jì) 13次下載
- 穩(wěn)健的高效MIMO檢測器
- 反射式紅外檢測器電路及制作
- 電路檢測器和電流檢測器的區(qū)別 319次閱讀
- 手機(jī)檢測器電路圖 手機(jī)檢測器的功能和應(yīng)用 652次閱讀
- 簡單的檢測器電路圖分享 1652次閱讀
- 什么是過零檢測器 過零檢測器的原理 2755次閱讀
- 過零檢測器的原理 3669次閱讀
- 使用NVIDIA Jetson Orin Nano解決入門級(jí)邊緣人工智能挑戰(zhàn) 2175次閱讀
- 基于555的聲光數(shù)字電平檢測器電路 2856次閱讀
- 熒光檢測器工作原理及特點(diǎn) 4.9w次閱讀
- 地磁車輛檢測器的應(yīng)用領(lǐng)域_地磁車輛檢測器與其他車輛檢測技術(shù)的優(yōu)劣對(duì)比 4517次閱讀
- 地磁車輛檢測器主要組成部分 4833次閱讀
- 微波運(yùn)動(dòng)檢測器 4085次閱讀
- 酸雨檢測器 1.6w次閱讀
- 過零檢測器電路圖4 4564次閱讀
- 過零檢測器電路圖2 4386次閱讀
- 過零檢測器電路圖1 5060次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 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)用手冊(cè)
- 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電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(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é)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多