網頁

2022年8月27日 星期六

Pixel:Bit -人臉辨識-基本介紹

主題

使用 法蘭斯老師的上課例子,學習如何使用 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 雲端硬碟,再使用共用分享連結,對本程式是沒有用。
如果自架網站,因為使用私有網址,對本程式是沒有用。