麗臺教學 | 利用 NVIDIA Jetson Nano 制作人臉識別“門禁系統” 第一部分
來源:麗臺科技 編輯:lsy631994092 2021-01-14 08:34:53 加入收藏 咨詢

所在單位: | * |
姓名: | * |
手機: | * |
職位: | |
郵箱: | * |
其他聯系方式: | |
咨詢內容: | |
驗證碼: |
|
深度學習目前應用最廣泛的即屬影像辨識相關應用,例如自動駕駛系統、保安監控系統、工業瑕疵檢測應用、工廠安全監測系統及醫療影像檢測應用等。其中人臉辨識技術算是發展最久且應用范圍最廣。人臉辨識技術可結合多種不同產業的應用,如配合公司人員數據庫可開發門禁系統,整合犯罪數據庫可開發保安監控系統,配合商場可做為后續市場分析應用。人臉辨識整合進數據庫,辨識出特定人員后,再整合控制即可衍生出很多應用。
人臉辨識主要流程分為三個步驟:
· 人臉檢測(Face Detection)
· 人臉對齊(Face Alignment)
· 人臉特征表征(Feature Representation)
傳統機器學習的人臉辨識中,一般可分為高維度人工特征提取(例如 : LBP, Gabor)和降維(例如 : PCA, LDA)兩個步驟。不過透過深度學習,可以從原始圖像直接學習人臉表征。主要三步驟如下:
找到所有臉孔
Step 1
現行常用的臉孔搜尋方法為2005年由Navneet Dalal及Bill Triggs所開發的,稱為定向梯度直方圖(Histogram of Oriented Gradient,簡稱HOG)。
HOG臉孔特征搜尋
臉孔特征點定位
Step 2
找到臉孔位置后,接下來則是進一步找到臉孔上各部位的特征點,此處使用的是2014年Vahid Kazemi和Josephine Sullivan開發的方法。即便每個人的臉孔輪廓會有不同,但在人臉上基本都可以找到這68個定位點。若能訓練模型準確定位,不論臉孔位置如何改變,都可以準確的找到臉孔各部位的相對位置。
臉孔特征點定位
臉孔編碼
Step 3
此部分如同我們在訓練一組卷積神經網絡(CNN),不過并非訓練整張臉孔,而是訓練一個模型讓每個臉部可以生成128個測量值。主要程序分別為載入已知人物的臉孔影像、載入同一位已知人物的另一張臉孔影像、載入完全不同的人物的臉孔影像。透過臉孔比對128個測量值,由于同一個人的任10張測量值都應該大致相同,所以系統透過此方法可以快速比對及識別身份。此方法是由Google研究人員Florian Schroff、Dmitry Kalenichenko及James Philbin在2015年研發出來的。
臉孔編碼對比
上述簡單介紹人臉辨識的概念及理論。接下來就透過簡易的實操讓大家了解人臉辨識技術的導入其實并不難。
以下是所有的材料,當然需要另行自備屏幕。NVIDIA Jetson Nano的顯示界面為HDMI。
除了房子模型外,其他裝置都可以很容易取得,請發揮創意制作好模型。
組裝完成后的成品如下圖,這里小麗還另外加裝一組按鈕,方便開關機。
馬達則安裝在下方門軸處。
大家可以發揮巧思,例如馬達軸心如果安裝在嘴巴處,就可以讓骷髏模型做嘴巴開合的動作。
組裝完成后,接下來就是Jetson Nano要載入人臉辨識的模型,小麗這里不僅導入人臉辨識模型,也導入包含情緒、年齡及性別共四個模型。
模型的參考資料如下:
人臉識別:
https://github.com/ageitgey/face_recognition
情緒識別:
https://github.com/amineHorseman/facial-expression-recognition-using-cnn
年齡以及性別識別:
https://github.com/dpressel/rude-carnie
大家可以參考一下上述的網址,這里小麗就先賣個關子,下篇中會繼續介紹如何組裝及導入四個模型進行辨識。
評論comment