logo
OpenMV
家庭
應用
店鋪
AI
銷售通路
支援
OpenMVOpenMV
擴充板擴充板
鏡頭鏡頭
機器人機器人
電子書電子書
影片教學影片教學
下載下載
文件文件
論壇論壇
英文官網英文官網
GithubGithub

OpenMV4 Plus使用Edge Impulse自行训练神经网络进行口罩识别

去年四月份我哋嘅新產品OpenMV4 H7 Plus上市啦,今日我嚟同大家介紹一下OpenMV4 H7 Plus嘅新功能——利用EdgeImpulse在線網站自行訓練神經網絡進行分類識別。

喺呢個教程入面,你將會用機器學習去構建一個識別系統,呢個系統可以透過OpenMV4 H7 Plus智能攝像頭去識別人臉有冇戴到口罩,即係實現影像分類。

OpenMV产品图

EdgeImpulse係一個為嵌入式設備提供在線訓練神經網絡模型服務嘅網站,佢係我哋OpenMV嘅合作夥伴,同時亦都係ST意法半導體嘅官方合作夥伴。目前EdgeImpulse對我哋OpenMV用戶係免費開放嘅,OpenMV用戶可以免費使用EdgeImpulse在線訓練適用於OpenMV嘅神經網絡模型。

為嵌入式設備OpenMV增加神經網絡,可實現區分盜獵者同大象、對工廠生產線進行質量控制、讓遙控模型車自行駕駛等功能。

喺呢個教程入面,你將會學識點樣收集圖像去建立一個高質量嘅數據集,點樣應用遷移學習去訓練神經網絡,同埋點樣將系統部署到OpenMV。

另外我哋亦提供咗视频教程,可以喺官网搜索《OpenMV4 Plus训练神经网络进行口罩识别》嚟观看。

你可以喺以下地址查閱整個項目內容,所有代碼同模型都包括在內:https://book.openmv.cc/project/mask.html

使用EdgeImpulse在线训练适用于OpenMV嘅神经网络模型主要分为以下四个步骤:数据集采集、上传、训练同埋部署。

01、收集數據集

喺呢個教程入面,我哋會構建一個可以區分人臉有冇戴口罩嘅模型。當然你亦可以選擇分類其他物品。為咗實現機器學習模型嘅運作,你需要收集戴口罩同唔戴口罩兩種人臉嘅大量示例圖像。喺訓練嘅時候,呢啲示例圖像就用嚟做模型嘅區分練習。

我哋需要利用OpenMV IDE嚟採集我哋嘅數據集,採集圖像嘅步驟如下:

創建兩個分類:

打開OpenMV IDE功能表欄嘅「工具」,選擇「數據集編輯器」,點擊「新建數據集」,然後新建一個資料夾並打開,喺數據集裏面再新建兩個資料夾分別命名為mask(用嚟保存戴口罩嘅人面嘅相片)同face(用嚟保存唔戴口罩嘅人面嘅相片)。

口罩识别教程-新建数据集
口罩识别教程-创建分类文件夹

使用OpenMV擷取影像

首先我哋連接OpenMV,點擊IDE裏面嘅「連接」,點擊「運行」,Framebuffer幀緩衝區中可以睇到OpenMV實時嘅圖像,點擊左側菜單欄中嘅相片按鈕,OpenMV就會自動保存呢張圖片,呢個就係數據集裏面嘅一個數據。

首先我哋要保存嘅係戴咗口罩嘅人面,撳一下相片嘅掣,IDE下側就會影一張相,佢會自動命名為00000,然後下一張係00001,如此類推。

使用OpenMV分别采集200张戴口罩(男女各100张)同埋200张唔戴口罩(男女各占100张)嘅人脸照片。

口罩识别教程-用OopenMV采集男生戴口罩的图像
口罩识别教程-用OopenMV采集女生戴口罩的图像

注意:要确保采集到各种角度嘅相片,保证我哋训练学习嘅多样化。

如果在采集过程中发现某张图片采集得不够完美,可以右键点击此图片选择删除。

02、上傳

使用OpenMV采集完图像后,你需要注册账号登录EdgeImpulse官网(https://edgeimpulse.com/)开始上传图像,上传图像的步骤:

喺EdgeImpulse度開個新項目,撳「keys」,揀「API Key」然後複製「API Key」。透過API Key實現OpenMV IDE同Edge Impulse嘅連通。

口罩识别教程-和Edge Impulse的连通

選擇OpenMV IDE上方菜單欄嘅「工具」——「數據編輯器」——「Export」——「上傳」——「通過API Key上傳」,複製「API Key」上傳即可。

上傳時數據會自動劃分為訓練集同測試集,我哋默認選擇比例係「80%同20%」就得。我哋總共採集咗400幾張人臉圖片,其中80%嘅Training Date即係默認用你80%嘅數據嚟訓練,剩低嘅20%就用嚟做測試集。

口罩识别教程-用OpenMV上传数据集
口罩识别教程-将数据集上传到EdgeImpulse上

03、訓練數據集

數據集準備就緒,你就可以喺EdgeImpulse網站界面中訓練數據集喇。

配置處理模組:

首先选择“Impulse Design”,配置处理模块:

* 設定默認嘅圖像長寬為「96 x 96」;

選擇「圖像Images」模組,表示我哋係對圖像進行分類訓練(你亦可以用EdgeImpulse分類聲音、影片等);

* 選擇「遷移學習(圖像)Transfer Learning (Images)」,設定學習嘅模型;

選擇「保存Save impulse」,顯示Successfully就係配置成功咗。

口罩识别教程-配置处理模块

圖像預處理:

點擊左側菜單中嘅「圖像Image」,將顏色格式設定為「RGB」,然後點擊「Save」。

口罩识别教程-图像预处理

接下來選擇「生成特徵Generate features」來啟動流程,將會對400多張數據進行圖像預處理,右側會顯示完整數據集的3D可視化。

口罩识别教程-数据可视化处理

配置遷移學習模型

點擊左側菜單中嘅「遷移學習Transfer learning」,設定嘅參數全部選擇默認嘅就可以,亦都可以根據需求嚟更改參數:

1.將訓練週期數Number of training cycles設定默認為10

2.將學習率Learning rate設定為0.0005

3.可以勾選亦可以不勾選「數據增強Data augmentation」

4.將最低置信度Minimum confidence rating默認設置為0.8。

點擊「開始訓練Start training」,訓練嘅過程大概4到5分鐘左右。

模型訓練完成後,你可以查看準確度、混淆矩陣confusion matrix同預期設備性能。

口罩识别教程-训练完成后的表现

測試模型:

訓練完成後,我哋會用測試數據嚟檢驗模型。

選擇「模型測試Model testing」,勾選「樣本名稱Sample name」旁嘅複選框,點擊「分類選擇Classify selected」。呢度顯示嘅準確度達到咗97%,就一個數據甚少嘅模型而言實屬難得。

口罩识别教程-测试模型

發現顯示紅色嘅呢張圖片係唔確定嘅,點擊呢張圖片右側嘅三個點,選擇「顯示分類 Show classification」,你就會進入「實時分類」嘅界面,裡面包含文件嘅更多細節。呢個界面將幫助你確定圖片分類錯誤嘅原因。

口罩识别教程-无法分类的图片

如果数据在所有已知嘅集群(戴口罩/唔戴口罩)之外,呢个可能系同以前睇到嘅任何分类都唔匹配嘅数据——可能系因为头发遮住咗大半个人脸。

04、喺OpenMV上運行模型

完成咗訓練設計、模型訓練同模型驗證嘅步驟,你就可以將呢個模型導出到你嘅OpenMV,揀“OpenMV”,揀“Build”進行生成,佢自動生成咗3個文件:

* trained.tflite 訓練好嘅神經網絡模型

* labels.txt 兩個分類標籤(face同mask)

* ei_image_classification.py 係OpenMV上面要運行嘅代碼

口罩识别教程-在OpenMV上运行模型

連接OpenMV IDE,將呢3個檔案保存到OpenMV內置嘅Flash入面。將ei_image_classification.py檔案喺OpenMV IDE中打開,就可以睇到我哋啱啱喺EdgeImpulse裡面生成嘅代碼。點擊運行,喺串行終端裡面會顯示運行嘅結果。

口罩识别教程-识别戴口罩的人脸.
口罩识别教程-识别不戴口罩的人脸

好啦,你已經成功為OpenMV增加自行訓練神經網絡嘅功能啦。

期待你嘅成果!

相關文章

机房/配电房/单元门敞开识别

基於OpenMV之AI哨兵:重點場所未關自動提醒

自動判斷重點場所門口是否長時間未關閉,並即時發出提醒。

越界识别

人員越界即觸發警報,OpenMV演繹「安全邊界感」

透過虛擬警戒線識別人員或設備越界行為。

占道经营识别

「AI城管」來啦,基於OpenMV構建佔道經營自動識別系統

自動識別佔道經營行為,協助城市日常治理。

煤气罐违规摆放识别

煤氣罐亂放?利用OpenMV自動觸發危險預警

自動識別煤氣罐違規擺放位置,提前發現燃氣安全隱患。

绝缘手套佩戴识别

帶電作業未佩戴絕緣手套?OpenMV 即刻發出警報!

自動識別作業人員是否佩戴絕緣手套,以輔助安全作業。

铝板缺陷识别

採用OpenMV智能攝像頭,實時識別鋁板表面缺陷

線上識別鋁板表面劃痕、凹陷等缺陷,協助品質管控。

熱門分類

語言和地區
Copyright © 2025 星瞳科技SingTown
粤ICP备17045162号