3139 views
--- title: 人臉辨識教學 - Web:AI 教學手冊 description: Web:AI 人臉辨識可以透過最簡單的方式學習人臉辨識原理,透過程式積木組合,自行編寫門禁系統、上班打卡、人臉解鎖等等人臉辨識應用功能,體驗最熱門的 AI 教育應用。 GA: UA-62202920-22 --- #### 回到 [`教學大綱`](https://md.kingkit.codes/s/siSKyknlU) / [`Web:AI 程式積木`](https://md.kingkit.codes/s/X4vMmbtp_) <style> blockquote.announcement { background-color: #f4aa14; height: 50px; width: 100%; display: flex; justify-content: center; border-left: none; } blockquote.announcement p { color: white; height: 100%; align-items: center; display: flex; } .announcement a { background-color: rgba(0, 0, 0, 0.2); text-decoration: none; padding: 6px 16px; border: 1px; border-radius: 8px; color: #fff; line-height: 30px; } </style> <blockquote class="announcement"> <p> Webduino 學習手冊網站即將改版,提供您更好的閱讀體驗!<a href="https://resource.webduino.io/docs/webai" target="_blank" rel="noopener" >搶先試用</a > </p> </blockquote> # 人臉辨識 在 AI 科技教育中,常見的人臉辨識能夠根據人臉的特徵,如:眼睛、鼻子、嘴巴等,計算出人臉的特徵值。再藉由比對各個人臉的特徵值,判斷人臉的身份以及相似度。 Web:AI 除了可以學習人臉辨識原理,還能提供人臉的座標位置、辨識信心度,在課堂中做出輕鬆人臉辨識、門禁系統、照片比對、人臉解鎖等等 AI 生活應用。 ## 匯入人臉模型 在使用「人臉辨識」積木前,需要先透過「匯入模型」將「人臉辨識模型」下載入板子中,才能開始進行人臉辨識。 ### 步驟 1. 下載[人臉辨識模型](https://drive.google.com/uc?export=download&id=1zPPtIxObstJ4yNCF80_vqF0onZDc7Q5J) ![](/uploads/upload_9d610624bcffc082787e375c5c3ae3f1.png) 2. 將 Web:AI 開發板透過 USB 連接上積木平台。 2. 點擊「更多」中的「匯入模型」。 ![](/uploads/upload_3d6e7a11528d4610e64b55ab4491b1b1.png) 3. 選擇剛剛下載的「face_recognition.kmodel」。 4. 等待匯入模型完成就可以開始使用「人臉辨識」積木! ![](/uploads/upload_90bbbddcc7d9b277cace0f2286e5b7a5.png) ## 開始人臉辨識 「開始人臉辨識」積木會自動開啟 Web:AI 開發板鏡頭,並讀取人臉辨識模型。 使用時,可以透過右側方框選擇: - 是否框選螢幕中的人臉 - 是否框選螢幕中的人臉五官 ![](/uploads/upload_4ecd716f096be04c1b695fcd8288c87f.png) 使用時會**執行辨識 1 次**,可以搭配「重複」積木重複辨識。 ![](/uploads/upload_3fd1adec15a039de3d4712d5302b8aec.png) ## 人臉特徵值 在比對人臉前,需要先取得人臉的特徵值,「人臉特徵值」積木能夠將人臉五官特徵轉換成字串資訊。 藉由比對這些「人臉特徵值」,能夠判斷人臉之間的相似度。 ![](/uploads/upload_6ef736b9a7f1a3c1e6f4f9abd25c0f36.png) 將「拍攝照片」積木或「圖檔」積木放入,能夠將拍攝到的照片或圖檔中的人臉資訊轉換成特徵值。 ![](/uploads/upload_22c21ccf1909577d1d3d9dbbad0848ec.png) > 因為使用的模型與訓練方式不同,無法和 [Webduino 兌換券 - 人臉辨識+情緒感知](https://store.webduino.io/products/voucher-face) 中的臉部特徵值共用! ### 範例:說出人臉的特徵值 #### ➤ 前往 [`範例連結`](https://ai-blockly.webduino.io?hashid=vjGpzkBBGa) 1. 使用「開始人臉辨識」積木搭配「重複」積木,讓 Web:AI 能不斷辨識人臉。 ![](/uploads/upload_079903252ec3f1ae0736968afb56cdd8.png) 2. 將「拍攝照片」積木放入「人臉特徵值」積木中,並使用「按鈕」積木觸發動作。 ![](/uploads/upload_625f45bc493e31b28e14d032f767da8c.png) 3. 完成積木如下,執行後對著拍攝的人臉按下 L 按鈕,可以看到小怪獸說出特徵值。 > 特徵值為一段相當長的字串。 ![](/uploads/upload_020461221299149c009044a7051c48ec.png) ![](/uploads/upload_d6856b6a9f3000e05e040ce07d99da14.png) ## 人臉命名 為了做出門禁系統等生活應用情境,需要將「取得的特徵值」紀錄到 Web:AI 中,「人臉命名」積木能夠將人臉命名為「小明」、「小王」等自訂的名稱。 > 因為人臉數量越多會影響辨識度,建議設定人臉數量為 5 個內。 ![](/uploads/upload_34004d852e8f6f2e3bf7d524428630da.png) 「人臉命名」積木中必須放入「人臉特徵值」積木。 ![](/uploads/upload_cf67921f641b0d353855e27db29b890c.png) ## 人臉資訊 辨識到人臉時,可以使用「人臉資訊」積木取得以下資訊: - 名稱 - 信心度 - x 座標 - y 座標 ![](/uploads/upload_56dc3641abfda6b1fe4c320f5317d797.png) 人臉名稱為「人臉命名」積木設定的人臉 > 如果辨識到的是未設定的人臉,則會顯示半形問號「?」。 ![](/uploads/upload_ef85d1a585754d0288589b4ea6d6cffe.png) ### 範例:辨識與設定人臉 #### ➤ 前往 [`範例連結`](https://ai-blockly.webduino.io?hashid=brBPkjk67K) 1. 使用「開始人臉辨識」積木,搭配「LCD 顯示」積木和「重複」積木,能夠重複辨識並在螢幕上顯示人臉名稱。 ![](/uploads/upload_5eb20fd4703e6087043845b7b7af2c58.png) 2. 在程式剛執行時,設定變數「順序」為 0,並在每次按下 L 按鈕時「順序」增加 1。 ![](/uploads/upload_ce8423b79d3cfa46070fa11192912b07.png) 3. 接著分別設定 ( 此處命名的字串可以自訂名稱 ): - 當順序 = 1:將拍攝的人臉命名為「studentA」 - 當順序 = 2:將拍攝的人臉命名為「studentB」 - 當順序 = 3:將拍攝的人臉命名為「studentC」 ![](/uploads/upload_fd0052117aa94207ead747e915bba5cc.png) 4. 將積木組合起來如下圖,按 L 按鈕分別設定人臉 A、B、C,並且在螢幕上顯示辨識到的人臉名稱。 ![](/uploads/upload_299552a134a804739d5ed3a241102811.png) ## 應用範例:LINE 警報通知 #### ➤ 前往 [`範例連結`](https://ai-blockly.webduino.io/?hashid=gM0MeleZAN#/) 當 Web:AI 偵測到不認識的人臉時,會傳送照片連結和警報訊息到 LINE。 1. 使用「開始人臉辨識」積木,搭配「重複」積木,能夠重複辨識螢幕上的人臉。 ![](/uploads/upload_fb1b5c44c3484a7081755d70c3608b6d.png) 2. 辨識到陌生人會發送通知。 使用「邏輯」積木搭配「重複」積木,當「辨識人臉的名稱」是「?」時,會執行後續的動作。 因為使用到兩個「重複」積木,所以需要勾選「背景執行」。 ![](/uploads/upload_764b1ab902a727ab425cc3254ae8973a.png) 3. 先拍照上傳雲端,再將圖片網址透過 LINE Notify 發送,加入 2 秒的延遲時間。 >- 使用前必須先設定 LINE Notify,歡迎參考:[LINE 積木](https://md.kingkit.codes/s/LCGRt1Jve)。 >- 因為「重複」積木會不斷發送訊息,因此多增加 2 秒的時間間隔。 ![](/uploads/upload_61593802e2bd1327376cf3fc6df8c78a.png) 4. 將積木組合如下,當辨識到陌生人時,會傳送照片連結並發送 LINE 通知。 ![](/uploads/upload_2ad76690edaf5f61cc0c8d5ec5fa2972.png) ![](/uploads/upload_62039cbefa603da7899a0a41cf9182fb.png)