資料介紹
我們可以看到圖像中每個感興趣的邊界框,并為它們分配一個類標簽。物體檢測最常見的應用是人臉識別、口罩檢測等。因此,我們將構建一個口罩檢測器來檢測人是否戴口罩。在 COVID 情況下,為了解決當前場景的問題,使用技術將自動執行檢測任務,并避免手動檢查違規者。
在今天的教程中,我們將學習如何使用強大的云平臺Edge Impulse構建我們自己的口罩檢測模型,通過該平臺我們在 NVIDIA Jetson 板上部署經過訓練的模型,并將其與 CSI 攝像頭傳感器連接以捕獲實時圖像。本教程可以應用來自您自己的圖像數據集的數據集或來自Kaggle的標記公共數據集。圖像數據集有兩個類,分別是with_mask和without_mask。
在本教程結束時,您將能夠:
使用Edge Impulse平臺收集用于實時檢測的良好數據集
數據標注
使用Edge Impulse訓練口罩檢測模型
在 NVIDIA Jetson 板上部署對象檢測
要求
我們的項目將需要以下內容:
所需硬件:
NVIDIA Jetson 板(這里我們將使用Xavier NX 開發工具包)
筆記本電腦或獨立 PC
對于實時攝像頭演示,需要 Raspberry Pi 攝像頭模塊等攝像頭。在這里,我們將使用Arducam Complete High Quality Camera Bundle。
所需軟件:
邊緣脈沖帳戶。
要無頭運行 NVIDIA Jetson Nano 板(不帶顯示器),請從您的筆記本電腦設置 SSH 訪問或 RDP 連接。
熟悉Linux命令行,bash之類的shell,nano之類的編輯器。
NVIDIA Jetson Xavier NX 開發者套件
在這里,我將使用 Nvidia Xavier NX 板。與 Jetson Nano 相比,Xavier NX 的速度要快兩到七倍,具體取決于應用。
在 NVIDIA Jetson 主板上安裝 Edge Impulse
Edge Impulse是一個基于云的平臺。使用 Edge Impulse 平臺,用戶無需深入了解編程或 AI、ML 概念即可訓練他們的 AI、ML 模型。
要使用Edge Impulse訓練機器學習模型,請創建一個Edge Impulse帳戶,驗證您的帳戶,然后開始一個新項目。
在開始任何事情之前,最好更新所有內容。您可以通過輸入以下命令來做到這一點。
?
sudo apt-get update sudo apt-get upgrade
?
同樣在我們開始之前,將您的相機模塊連接到您的 Nvidia Jetson 板上的 CSI 端口。然后,要在 Nvidia Jetson 板上使用 Edge Impulse,您首先必須安裝 Edge Impulse 及其依賴項。
從終端運行:
?
wget -q -O - https://cdn.edgeimpulse.com/firmware/linux/jetson.sh | bash
?
您應該得到如下所示的響應。
?
+ edge-impulse-linux@1.3.3 added 347 packages from 416 contributors in 68.138
?
現在,使用以下命令運行 Edge Impulse:
?
edge-impulse-linux
?
您將被要求登錄您的 Edge Impulse 帳戶。然后系統會要求您選擇一個項目,最后選擇一個麥克風和攝像頭以連接到該項目。
?
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!
?
現在,您已在 Nvidia Jetson 板上成功安裝 Edge Impulse。
如果一切正常,您應該在 Edge Impulse 的設備部分看到以下內容:
數據收集
對于這個口罩檢測項目,我們應該收集模仿真實情況的圖像數據集。我們應該為每個班級收集足夠的圖像。您可以使用手機、Nvidia Jetson 板來收集樣本,也可以將圖像上傳到邊緣脈沖帳戶。
要加載樣本,請單擊Edge Impulse 的數據采集部分。
然后,單擊讓我們收集一些數據按鈕。
由于我們要訓練和測試圖像數據集,我們應該將其拆分為 80-20。
對于面罩檢測,我們需要我們的邊界框來分類我們的類。因此,我們需要使用 Edge Impulse 標注工具對圖像進行標注。
1 / 2
如果您有很多圖像和類,則此過程需要時間。
理想情況下,建議從Kaggle獲取面罩數據集。這個用于機器學習的數據集以及它們的 PASCAL VOC 格式的邊界框已經過注釋。Pascal VOC 是一個 XML 文件,不像 COCO 有一個 JSON 文件,后者已成為對象檢測標簽的常見交換格式。但是,Edge Impulse使用 JSON 格式的另一種格式。您可以使用此python 腳本將注釋從 Pascal VOC 轉換為Edge Impulse格式。
完整的項目可以從這里找到,由Peter Ing實施。一探究竟。
訓練模型
現在我們已經收集了口罩樣本,我們可以將它們傳遞給神經網絡并開始訓練過程以自動檢測一個人是否戴口罩。所以打開 Edge Impulse 的Impulse設計部分。
當我們的數據集準備好后,現在我們將為我們的數據創建一個脈沖。為此,請轉到創建沖動部分。
單擊添加處理塊。
選擇圖像選項。
然后,單擊一個學習塊并添加對象檢測選項。
將其重命名為面罩檢測,然后單擊保存脈沖按鈕。
接下來,轉到Impulse design菜單項下的Images部分,然后單擊Generate Features選項卡,然后單擊Generate features按鈕。
之后,點擊Impulse design 菜單項下的Face mask detection部分,然后點擊頁面底部的Start training按鈕。在這里,我們使用了默認的MobileNetV2 。如果需要,您可以使用不同的訓練模型。
訓練輸出:
?
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
?
訓練過程完成后,我們可以將訓練好的Edge 脈沖圖像分類模型部署到 NVIDIA Jetson 板上。
下面的結果可視化:
在本教程中,您學習了如何使用Edge Impulse構建圖像數據集,如何構建用于檢測這些圖像中的面罩的機器學習模型,以及如何將該模型部署到 NVIDIA Jetson 板等邊緣設備并在其中進行測試一個真實的時間。簡而言之,Edge Impulse是非編碼人員開發機器學習模型的絕佳平臺。強烈推薦。
參考
邊緣脈沖對象檢測初學者指南
在 Raspberry Pi 上使用 Edge Impulse TinyML 進行對象分類
?
- 使用Edge Impulse關鍵字識別控制筆記本電腦 0次下載
- 帶有M5Stack和Edge Impulse的手勢控制無人機 0次下載
- 使用XIAO BLE Sense&Edge Impulse的寵物活動追蹤器 0次下載
- 在MaaXBoard Mini上使用Edge Impulse進行安全帽檢測 0次下載
- 使用Edge Impulse在pico上進行手勢識別 0次下載
- 通過Edge Impulse開始使用TinyML 1次下載
- Nvidia Jetson Nano面罩Yolov4探測器 0次下載
- 使用Edge Impulse的Covid患者健康評估設備 0次下載
- 修補Edge Impulse為MCU創建圖像、音頻和運動分類模型 0次下載
- 使用Edge Impulse識別大象活動 0次下載
- NVIDIA Jetson Nano 2GB 系列文章(1):開箱介紹 4次下載
- 基于LaBVIEW的供氧面罩防窒息活門檢測 19次下載
- 一種基于檢測器集層次聚類的否定選擇算法 13次下載
- NDIR氣體檢測器解決方案和PID氣體檢測器解決方案 35次下載
- 電阻式溫度檢測器(RTD)基礎知識及參考設計 26次下載
- 簡單的檢測器電路圖分享 337次閱讀
- 全面梳理電壓檢測器的定義、使用技巧和工作原理知識點 898次閱讀
- Jetson Orin NX Headless承載板 676次閱讀
- 什么是過零檢測器 過零檢測器的原理 1987次閱讀
- 簡單易學的Jetson Nano問題排除小秘訣 6175次閱讀
- 過零檢測器的原理 3037次閱讀
- 使用NVIDIA Jetson Orin Nano解決入門級邊緣人工智能挑戰 1761次閱讀
- 采用NVIDIA Jetson助力視頻數據低時延傳輸,提高智能分析標準 2892次閱讀
- 基于555的聲光數字電平檢測器電路 2565次閱讀
- 示差折光檢測器的原理及注意事項說明 2.4w次閱讀
- 熒光檢測器工作原理及特點 4.7w次閱讀
- 地磁車輛檢測器主要組成部分 4638次閱讀
- 微波運動檢測器 3830次閱讀
- 酸雨檢測器 1.6w次閱讀
- 編碼波形檢測器電路圖 1923次閱讀
下載排行
本周
- 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次下載 | 免費
評論
查看更多