資料介紹
當(dāng)我們開始處于封鎖狀態(tài)時,我有很多時間思考我可以做的項目,這些項目將涉及我對機(jī)器學(xué)習(xí)和硬件黑客的興趣。我認(rèn)為可以監(jiān)控出口點(diǎn)(入口和出口)的小型設(shè)備可以自動識別符合口罩要求的人。這可能是一種有趣的方式,可以讓技術(shù)解決在試圖保護(hù)人們安全的同時發(fā)生的一些復(fù)雜的人際互動。
我決定創(chuàng)建一個“Covid Mask Detector”,它將使用一個小型便宜的 Raspberry Pi 和一個定制的對象檢測模型,該模型在戴口罩和不戴口罩的臉上進(jìn)行訓(xùn)練。
機(jī)器學(xué)習(xí)模型
為了在 TensorFlow 中創(chuàng)建機(jī)器學(xué)習(xí)模型,我首先需要收集大量有面孔的圖像,并對戴口罩和不戴口罩的人進(jìn)行標(biāo)注。為此,我需要從收集大量面部圖像開始。
收集圖像
為了協(xié)助收集面部圖像,我編寫了一個 Nodejs 腳本,該腳本將使用 Google Images 作為其來源并將搜索參數(shù)傳遞給該服務(wù),然后下載最大版本的結(jié)果。該代碼可在此處獲得:
https://github.com/contractorwolf/googleimagedownloader
要使用 Nodejs 腳本,只需轉(zhuǎn)到它所在的文件夾并首先運(yùn)行npm install (安裝 axios 和 fs),然后像這樣運(yùn)行腳本:
> node getimages covid masks
上面的命令將下載與“covid masks”相關(guān)的圖像。我用幾個不同的搜索參數(shù)收集圖像,以確保我收集的是各種種族/性別/年齡/風(fēng)格的面孔圖像。我在搜索參數(shù)上花了很多時間(不僅僅是上面那個)。在識別人臉以及識別醫(yī)用口罩和女仆/定制口罩時,我想盡可能地消除偏見。
在我收集了各種帶有面具和沒有面具的圖像后,我仔細(xì)檢查并刪除了對模型訓(xùn)練沒有幫助的所有圖像。然后我移動并調(diào)整圖像大小以使它們統(tǒng)一(自動執(zhí)行這些操作的腳本也在回購協(xié)議中)。完成這些任務(wù)后,我需要對圖像進(jìn)行注釋并確定每張圖像中人臉的位置,以及確定人臉是否戴著面具。
注釋圖像
為了注釋或“標(biāo)記”圖像,我使用了名為LabelImg(直接下載)的軟件,該軟件是開源的,已記錄在LabelImg 的 Github頁面上。該軟件為每個圖像創(chuàng)建一個 XML 文件,為每個圖像定義機(jī)器學(xué)習(xí)“標(biāo)簽”(遮罩或不遮罩)以及面部邊界框(面部在圖像上的位置)。注釋一千張口罩和沒有口罩的圖像的過程需要一段時間,但我知道準(zhǔn)確性與準(zhǔn)確收集和標(biāo)記圖像所花費(fèi)的時間直接相關(guān)。
在收集和注釋圖像后,必須將它們分成訓(xùn)練文件夾和測試文件夾,比例為 80/20。如果您想查看到目前為止的過程輸出,可以下載生成的文件夾:
測試圖像和注釋 XML 文件:
https://github.com/contractorwolf/coronavirus-mask-detection/blob/master/images/test.zip
測試圖像和注釋 XML 文件:
https://github.com/contractorwolf/coronavirus-mask-detection/blob/master/images/train.zip
?
使用 Google Colab 訓(xùn)練模型
在我獲得生成機(jī)器學(xué)習(xí)模型所需的圖像后,該模型可以識別戴/不戴口罩之間的區(qū)別,我必須編寫代碼來生成模型。我決定修改我發(fā)現(xiàn)的一些用Tensorflow編寫的其他示例。我最初嘗試使用我的顯卡在我的個人臺式機(jī)上執(zhí)行此操作,但遇到了問題,所以我決定嘗試使用 Google 的 Colab,這是一個 Web 界面,用于編寫可以在 Google 的 GPU(或 TPU?。┥厦赓M(fèi)運(yùn)行的機(jī)器學(xué)習(xí)筆記本。
我寫了筆記本來使用上面定義的圖像,并試圖記錄每一步發(fā)生的事情:
https://colab.research.google.com/drive/1uEkP5j7KM9eSkCUtUyauy7-Dyd5XAY6e?usp=sharing
Colab使用預(yù)訓(xùn)練的MobileNet Coco模型,然后使用上面創(chuàng)建的圖像重新訓(xùn)練最后一步,使圖像模型專門識別戴面具和不戴面具的人臉。以下是 Colab 中記錄的主要步驟:
- 安裝所需的 Tensorflow 版本
- 設(shè)置對象檢測項目
- 下載 Coco 模型
- 下載需要的圖片
- 火車模型
- 測試模型
- 為樹莓派創(chuàng)建文件
- 在 Raspberry Pi 上為 TPU 創(chuàng)建文件
該過程需要一些時間,您需要確保閱讀并運(yùn)行每個塊并查看輸出。如果您對 Colab 或代碼或該項目中的任何內(nèi)容有任何疑問,請隨時將它們留在下面,我會盡力回答。
硬件
硬件基本上是帶有Google Coral TPU 的Raspberry Pi (用于更快的推理)。我添加了 Armor Casing(用于外觀和設(shè)備保護(hù))和 Adafruit Mini PiTFT 作為用戶界面,以便設(shè)備無需插入顯示器即可提供基本反饋。
谷歌珊瑚 TPU
Google Coral TPU通過 USB 連接,能夠處理進(jìn)行機(jī)器學(xué)習(xí)推理(預(yù)測)時所需的大量矩陣數(shù)學(xué)運(yùn)算。使用 TPU(模型設(shè)置為使用 TPU 和代碼集以利用 TPU)允許模型能夠以每秒 15 幀的速度進(jìn)行預(yù)測。如果沒有 TPU,Raspberry Pi 只能以大約每秒 3 幀的速度處理 USB 攝像頭圖像的預(yù)測。我的 Github Repo 中的默認(rèn)代碼設(shè)置為使用 TPU,但您會看到注釋掉的部分,這些部分將允許它在沒有 TPU 的情況下僅在 Raspberry Pi 上運(yùn)行(盡管速度較慢)。
TFT基本接口
我使用 Adafruit MiniPiTFT 作為該項目的主要外部接口。目標(biāo)是提供機(jī)器學(xué)習(xí)模型完成的評估以及一些其他基本參數(shù)的外部通知。右圖中顯示的框表示USB攝像頭看到的圖像是否是“戴著COVID口罩”(下圖綠色框)
當(dāng)設(shè)備在范圍內(nèi)看到一個人時,它會放置一個彩色框來勾勒出他們的臉。彩色框表示他們是否戴著口罩。如果它看到如下圖所示的面具,它將在他們的臉上用綠色框表示,并在 MiniPiTFT 上閃爍一個綠色框,如上圖所示。
。
如果正在使用顯示器,還會在臉部周圍顯示一個紅色框,如下圖所示。
基本的想法是,該設(shè)備可以獨(dú)立于插入顯示器或屏幕而工作,只需依靠。其他顯示參數(shù)如下:
- N :(無掩碼,紅色)具有估計的確定性
- 或M :(看到面具,綠色)估計確定性
- S :屏幕中圖像的大小百分比F :估計正在進(jìn)行的每秒幀數(shù)
- T : CPU 溫度
定制電纜
我最初只是買了我能找到的最短的雙直角 USB 數(shù)據(jù)線,然后將它綁在外殼上,但我認(rèn)為我可以做得更好,所以我一直在改進(jìn)。
最后我只是從上面剪下電纜并重新連接兩端,所以它看起來像這樣:
USB 實(shí)際上只有 4 根線,它們采用顏色編碼,因此過程很簡單。我實(shí)際上也有一個小的拉鏈領(lǐng)帶,以承受大部分的彎曲壓力并防止它們斷裂。最后看起來像這樣安裝:
軟件
Raspberry Pi 可以啟動到 python 程序,該程序?qū)⒈O(jiān)控 USB 網(wǎng)絡(luò)攝像頭并運(yùn)行一個
https://github.com/contractorwolf/rpi-tensorflow-mask-detector/blob/master/maskclassifier.py
從基本 tensorflow 對象檢測示例修改而來,但使用經(jīng)過重新訓(xùn)練的模型的修改版本以僅識別“面具”或“無面具”面孔。還修改為使用 TPU 進(jìn)行快速推理并將數(shù)據(jù)輸出到迷你 PiTFT 屏幕。
代碼啟動并開始處理來自它可以識別的第一個 USB 網(wǎng)絡(luò)攝像頭的圖像。圖像被加載,機(jī)器學(xué)習(xí)模型嘗試對其是否看到面具進(jìn)行分類。它還會在圖像中看到的每張可識別面孔周圍繪制一個邊界框,并對最大的一張是否戴著口罩進(jìn)行分類。 PiTFT 還用于顯示有關(guān)圖像的計算。如果您沒有 TFT 或不需要任何額外的顯示器,可以簡單地注釋掉該代碼。如果您的模型不是為 TPU 處理構(gòu)建的,也可以刪除 TPU 代碼,但它會以低得多的幀速率進(jìn)行處理。當(dāng)我使用非 TPU 模型在 RPi 4 上運(yùn)行它時,我看到幀率為 ~2-3FPS,而 TPU 允許我以~15FPS 的速度處理。
如果您有任何其他問題,只需將它們放在評論中,我會盡可能提供幫助。感謝您的觀看!
- 使用Raspberry Pi的Motioneyeos網(wǎng)絡(luò)攝像頭運(yùn)動檢測
- 基于諾基亞5110的Raspberry Pi帽子 0次下載
- 可以檢測鴿子并在Raspberry Pi上運(yùn)行的系統(tǒng)
- 基于ML的鳥類和松鼠檢測器(Raspberry Pi和AWS)
- 使用Raspberry Pi的溫度跟蹤器
- 使用Raspberry Pi的音頻可視化器
- 基于tensorflow的BlazeFace-lite人臉檢測器
- 可視頻直播的Raspberry Pi網(wǎng)絡(luò)控制機(jī)器人 14次下載
- NDIR氣體檢測器解決方案和PID氣體檢測器解決方案
- 樹莓派Raspberry Pi 4 Model B的電路原理圖免費(fèi)下載 409次下載
- 《愛上Raspberry Pi》中譯版-電子書籍.pdf 0次下載
- Instant Raspberry Pi Gaming 6次下載
- Raspberry_Pi詳解 15次下載
- raspberry_pi各版本差別 0次下載
- Getting Started with Raspberry Pi 0次下載
- 電路檢測器和電流檢測器的區(qū)別 323次閱讀
- 5分鐘內(nèi)將Raspberry Pi Pico變成簡單的示波器+波形發(fā)生器 1522次閱讀
- 使用Raspberry Pi Pico W和MicroPython開發(fā)物聯(lián)網(wǎng)應(yīng)用 1673次閱讀
- 什么是過零檢測器 過零檢測器的原理 2755次閱讀
- 用于測試項目的4個最佳樹莓派Raspberry Pi模擬器 5985次閱讀
- 如何通過Raspberry Pi設(shè)置CE電流監(jiān)視器 2124次閱讀
- 基于樹莓派產(chǎn)品 Raspberry Pi微控制器板的優(yōu)缺點(diǎn) 2710次閱讀
- 基于Raspberry Pi Pico開發(fā)先進(jìn)的家庭自動化系統(tǒng) 2850次閱讀
- 微雪電子ZeroW| Raspberry Pi ZeroW主板簡介 2429次閱讀
- 微雪電子Raspberry Pi 3 Model主板簡介 2873次閱讀
- 微雪電子Raspberry Pi 3 Model擴(kuò)展板簡介 1512次閱讀
- 利用Raspberry Pi構(gòu)建存儲和虛擬化時間序列數(shù)據(jù) 884次閱讀
- 一文了解Raspberry Pi 4各項性能跑分 2.9w次閱讀
- 視覺享受!用Raspberry Pi實(shí)現(xiàn)圣誕樹燈光秀 8127次閱讀
- 酸雨檢測器 1.6w次閱讀
下載排行
本周
- 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元宇宙底層硬件系列報告
- 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è)計實(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è)計》 溫德爾著
- 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)
評論
查看更多