我的ESP32實做書籍:我出書了 ESP32 物聯網專題
博客來網址:https://www.books.com.tw/products/0010901195
實做說明
前先日子Google宣布Tensorflow將出一版Tensorflow Micro版,比Tensorflow Lite更小要支援arduino系統,尤其標明要給esp32系列,讓人非常驚奇,大家一開始在PC上跑python tensorflow,後來在樹莓派、Jetson nano上跑Keras Tensorflow,沒想到現在竟然可以在ESP32上面跑Tensorflow。
雖然聽到這樣的消息,但也沒時間去研究,直到某天ESP32愛玩的版友詢問esp32cam要怎麼載入Tensorflow模型,我才知道Arduino程式庫竟然已經有範例了,在這裡就先測試ESP32CAM的人體偵測範例。
先放一張我的輪廓圖
一、準備裝置
首先你要有一組ESP32CAM以及一條CP2102下載線,或者ESP32CAM CH340接口加一條USB線。
二、Arduino環境設定
環境設定可以參考本篇:ESP32-CAM (arduino)影像伺服器及臉部辨識教學原始檔Video Stream Server,最好先利用 ESP32/Camera/CameraWebServer 測試,確認晶片及鏡頭運作正常。
三、Arduino IDE安裝Tensorflow Lite程式庫
功能表/程式庫/管理程式庫,開啟程式庫管理員
輸入關鍵字:Tensorflow,找到名稱為TensorFlowLite_ESP32的程式庫,並點選右側安裝
四、載入範例程式
完成程式庫安裝後,直接載入TensorFlowLite_ESP32的範例程式,位置在功能表/檔案/範例/最下方第三方程式庫的範例/TensorFlow_ESP32/person_detection_ESP32-Camera
載入後,點選頁簽config.h,將第12行的#define CONFIG_CAMERA_MODEL_AI_THINKER 1前方註解刪除,若您使用別種裝置,請自行選擇型號。
完成上述動作後,點選上傳程式碼
五、人體偵測結果
1.無人測試
我先照著電腦螢幕看看,分數看得出來,是沒人得分比較多,中間一圈圓圓的應該是很亮的螢幕
把螢幕開一個空白的記事本,並放在螢幕上半部,可以看到結果
把記事本放到下半部時的結果
到此看得出來,他是透過ASCII code去簡單呈現畫面的
2.人體測試
這隻程式說是偵測人體,那對著我會出現什麼呢?
照著自己可以大致看到大叔我帥氣的輪廓,不知道大家看得出來嗎?
也可以看到Person的Score較高,代表有人的機率很高
剪刀石頭布,看得出來我比什麼嗎?
最後用一個讚做結尾
結論
- FPS大約1張/5秒
- 人體辨識效果還算不錯,當然不能像YOLO,一隻手都可以判斷出人
- 機身不會發燙