主題
使用 法蘭斯老師的上課例子,學習如何使用 Pixel:Bit 人臉辨識的功能。
有關 Pixel:Bit的入門介紹,請看我的另一篇文章「Pixel:Bit 的入門介紹 -學習範例」
原理
使用 face-api.js,網站:https://justadudewhohacks.github.io/face-api.js/docs/index.html。
提供的的功能:
- Face Detection(人臉偵測) Models
- 68 Point Face Landmark Detection( 68 個特徵點偵測)Models
- Face Recognition( 人臉辨識)Model
- Face Expression Recognition(人臉表情辨識) Model
執行BlocklyDuinoF2
COM 選在「裝置管理員」所看到的COM,我是COM5。
工作模式請選 「ESP32 Wrover Module」。
「啟動 Arduino IDE」。
在 Arduino ,「工具/開發板 /ESP32 Arduino/ESP32 Wrover Module」。
BlocklyDuinoF2 和 Arduino 的工作模式,二者要一樣。
工具/Partition Scheme /Huge APP,這樣的設定可容納比較大的程式。
本例要使用影像處理的功能,所以將UART 切換開關 切換到中間的 ESP 位置 。
在 BlocklyDuinoF2,開啟法蘭斯老師「人臉辨識_基本」此範例。
完整程式
程式說明
程式中 人物的圖片網址,請自行修改。
從 「法蘭斯積木/Server模組/人臉辨識(face-api)」,拿出 下面的「人臉辨識(face-api)視訊初始化」。
姓名標籤:以 ”分號” 區隔不同人的照片路徑
比對照片路徑設定:遠端照片網址,以”分號” 區隔不同人的照片路徑。
比對照片數:設為0,則為指定遠端一張照片。
相似度距離上限:比對的值如果在上限的下面,則顯示人名,否則顯示unknow。
顯示畫面時間:顯示辨識結果畫面持續時間。
顯示辨識結果:如果為 Y,則 顯示辨識結果。
透明度:若不顯示視訊畫面,可將透明度設為0。
有關照片的問題:
- 照片解析度不可太小
- 若照片檔案太大可擷取臉部局部另存檔案當樣本,減少載入時間
- 照片中只能出現一張人臉
- 照片臉部需清晰、光亮
- 照片副檔名須為jpg格式,副檔名jpg為小寫字母
上述參數的意思,皆參考 法蘭斯老師的資料。
從 「法蘭斯積木/Server模組/模組指令參數」,拿出 「回傳開發板網址參數指令 指令字串 cmd 重啟開發板 」。
從 「法蘭斯積木/Server模組/模組指令參數」,拿出 「指令字串」。
「回傳開發板網址參數指令 指令字串 cmd 重啟開發板 」把 「指令字串 cmd 重啟開發板」刪除,改用上述的「指令字串」取代。
按「下載」鈕,再按下面的「下載」,開始編譯程式,最後出現 Finish,表示成功。
「人臉辨識」 執行結果
按「PuTTY序列埠監看視窗」,鮑率選「57600」,按「開啟 PUTTY」。
查看 STAIP address 的 IP,我的是 192.168.1.105。
輸入 :http://192.168.1.105/?face
在 「PuTTY序列埠監看視窗」出現 ?face。
網頁出現目前的影像。
輸入 :http://192.168.1.105/?fa
在 「PuTTY序列埠監看視窗」沒有再出現 訊息,在網頁出現 「Command is not defined」.
輸入 :http://192.168.1.105/?face
在 「PuTTY序列埠監看視窗」再出現 ?face,變成2個。
網頁出現目前的影像。
輸入 :http://192.168.1.105/?face=1;阿旺師;台中;computer;Pixelbit;esp32;microbit;appinventor;雷雕
在 「PuTTY序列埠監看視窗」會出現
?face=1;阿旺師;台中;computer;Pixelbit;esp32;microbit;appinventor;雷雕
網頁出現目前的影像。
程式最多輸入9個參數。
將攝影機照網路上的相片,按「辨識」鈕以辨識。
如果把二張相片放在一起,可以同時辨識2個人。
註:此例子,要先按 「PuTTY序列埠監看視窗」,影片才會動,不然就卡住不動。
postimage的使用方式
免費上傳圖片的網站:https://postimages.org/,圖片的連結,一般人是猜不到。知道連結,任何人都可存取圖片。
可選圖片上傳後的大小 如 320x240 或 不縮放。
可選圖片上傳後何時被刪除,如 Remove after 1 day(1天後刪除) 或 No expiration (不刪除)。
按「選擇圖片」,選 一張圖片上傳。
有關上傳照片的問題 請看前面的敘述。例如 照片臉部需清晰、光亮,解析度不要太小。
注意圖片的連結是第2個,不是第1個連結,也就是連結的後面有 jpg 等圖片副檔名。
----------------------------------------------------------------------------------------------------------------------------
將相片上傳到Google 雲端硬碟,再使用共用分享連結,對本程式是沒有用。
如果自架網站,因為使用私有網址,對本程式是沒有用。