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上方選單列的「工具」——「資料編輯器」——「匯出」——「上傳」——「透過API Key上傳」,複製「API Key」上傳即可。

上傳時資料將自動劃分為訓練集和測試集,我們預設選擇比例為「80%和20%」即可。我們一共採集了400多張人臉圖片,其中80%的訓練資料即預設將80%的資料用於訓練,剩餘的20%用作測試集。

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

03、訓練資料集

資料集準備就緒,您就可以在EdgeImpulse網站介面中訓練資料集了。

* 配置處理模組:

首先選擇「Impulse Design」,配置處理模組:

設定預設的圖像長寬為「96 x 96」;

選擇「圖像Images」模組,表示我們正在進行圖像分類訓練(你也可以使用EdgeImpulse分類聲音、影片等);

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

選擇「儲存Save impulse」,顯示Successfully即表示配置成功。

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

* 影像預處理:

點擊左側選單中的「圖像Image」,將顏色格式設定為「RGB」,然後點擊「儲存」。

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

接下來選擇「生成特徵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分鐘。

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

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

測試模型:

訓練完成後,我們將使用測試數據來檢驗模型。

選擇「模型測試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中。在OpenMV IDE中開啟ei_image_classification.py檔案,可以看到我們剛剛在EdgeImpulse中產生的程式碼。點擊執行,序列終端機中將會顯示執行的結果。

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

好的,你已經成功為OpenMV增加了自行訓練神經網路的功能。

期待你的成果!

相關文章

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

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

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

越界识别

人員越界立即發出警報,OpenMV 體現「安全邊界感」

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

占道经营识别

「AI城管」來囉,基於OpenMV建構佔道營業自動辨識系統

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

煤气罐违规摆放识别

瓦斯桶隨意放置?運用 OpenMV 自動觸發危險警示

自動辨識瓦斯桶違規擺放位置,提前發現燃氣安全隱患。

绝缘手套佩戴识别

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

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

铝板缺陷识别

運用 OpenMV 智慧攝影機,即時辨識鋁板表面缺陷

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

熱門分類

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