Select Page
Google Teachable Machine 無程式碼建立 AI 模型

Google Teachable Machine 無程式碼建立 AI 模型

還記得 2013 年,我用圖形演算法寫了一個跟電視裡面的 Show Girl 玩剪刀、石頭、布,贏的就拿到 Candy ,是真的會從螢幕後面跑出一粒糖果的那種遊戲,靈感來源自於 Candy Crush ,只是我的是真實版本,不能線上玩得,2013 年寫這樣的軟體應該是很厲害的那種,2022 年居然不需要再寫程式碼就可以自己訓練模型,只要在短短的程式碼去呼叫就可以使用它了,What!

2013年版本的圖形辨識手部完玩剪刀、石頭、布

來看看年輕版本的我

Teachable Machine 介紹

  • Images,圖像分類器,https://medium.com/@warronbebster/4bfffa765866
  • Sounds,聲音分類器,https://medium.com/@warronbebster/4212fd7f3555
  • Poses,人體的姿勢分辨器,https://medium.com/@warronbebster/f4f6116f491

Teachable Machine Images

Images 可以很快速且簡易的製作圖像分類器,比起 Microsoft Azure Custom vision 要來的簡單些,但功能要來的少一些,最大的好處是支援 tensorflow 以及 https://www.tensorflow.org/js,這樣可以很快速且方便的讓我把模型放在 Edge 端。

Teachable Machine Sounds

聲音分類器比較難懂,可以看看強者學弟林智源它們公司的產品,簡單的說明,他是可以讓記者在訪問火箭升空的現場時,還可以分離人聲以及火箭的噪音的服務,如果你也想要自行訓練模型的話,就是要用到這個功能了。

迪威智能,https://dwave.cc/

Teachable Machine Poses

一個跟 Processing 、 Kinect 、 OpenNI 類似功能的應用服務,回想在 2011 年拿下微軟的 kinect for windows 第一屆的無限可能獎,說起會拿這個獎也很意外,那天比賽時後其實只取前三名,我在等到第一名公布後都沒有自己的名字後,突然間評審說還有一個跟第一名實在無法區分的獎項,是由評審們討論出來要加開的,叫做無限可能獎,才又找我原本失落的心,不枉費我前一天沒睡覺在開發這套看電子結婚照,還可以虛空把照片抓到自己手機的軟體。

我在 2:19 秒,Motion Welcome
Kinect MotionWelcome Demo

Teachable Machine 的輸出

這是最關鍵的一環,可以輸出各種模型給各種市面上的終端設備使用,Android、Coral、Raspberry Pi、Intel Vino等,這也是我覺得最強大的部分,也是最能說服我採用 Teachable Machine 的功能

Teachable Machine 應用

Teachable Machine 官網

https://teachablemachine.withgoogle.com/

寫在最後,下一次要示範一下如何在 raspberry pi 中,如果大家有想看的題目可以留言給我

用 Raspberry Pi 4 + OpenCV 4 做個人臉辨識放在辦公室打卡吧

辦公室打卡到底要用甚麼方法最好,是員工卡嗎?還是手機APP定位?還是用打卡鐘?在2020年之後一定是跟你說生物辨識最好,因為又有疫情影響,大家最愛的是「人臉辨識」系統,非接觸,難造假,順便量體溫,噴個酒精,一切都這麼美好,但是只有千金難買好系統,一套好用的人臉辨識系統加上網動輒1萬元台幣,這時工程師的我們一定要自己DIY來一個「人臉辨識」打卡下。

Raspberry Pi 4 的 OpenCV 4 準備

採用 opencv_facerecognition 解決方案

https://github.com/mickey9801/opencv_facerecognition

首先安裝相關的依賴以及DB

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install python3-opencv python3-picamera python3-numpy python3-pil
sudo apt-get install sqlitebrowser

下載 opencv_facerecognition,並且解開壓縮

cd ~
wget https://github.com/mickey9801/opencv_facerecognition/archive/refs/heads/master.zip
unzip master
cd opencv_facerecognition-master/

設定環境人臉辨識的資料以及環境

等等會用到 haarcascade_frontalface_default.xml ,不要用 OpenCV 3版本的,要用之前安裝的版本,我將路徑放在下方

# 複製 xml 
cp ~/opencv/data/haarcascades/haarcascade_frontalface_default.xml ~/opencv_facerecognition-master/haarcascade_frontalface_default.xml
# 設定環境
python3 setup.py

擷取人臉用來訓練圖像

如果你是用 usb webcam 可以執行 recordface_webcam.py ,如果是用 PiCam 就用 python3 recordface_picam.py,此時會先問你的名字,提供完名字後,會開啟相機,當相機偵測到人臉時候,按下 「f」 鍵,就會開始抓取 30 張人像,放在 dataset 下

python3 recordface_webcam.py # for using webcam
python3 recordface_picam.py # for using PiCam v2

訓練人臉的圖像

在我們的系統中 OpenCV4,要修改 trainer.py 中的程式碼以符合現況

nano trainer.py

找到 recognizer = cv2.face.createLBPHFaceRecognizer() 把它改成 recognizer = cv2.face.LBPHFaceRecognizer_create()

#recognizer = cv2.face.createLBPHFaceRecognizer() # or 
recognizer = cv2.face.LBPHFaceRecognizer_create()

開始訓練,訓練完畢後會在目錄中取得一個 recognizer 目錄,裡面存放訓練後的資料

python3 trainer.py

開始辨識人臉

有了訓練資料後,就可以開始測試準度了,開始前記得也要改一下程式碼,符合現況

nano detector_picam.py

找到 Setup LBPH recognizer for face recognition,更改成下面的程式碼

# Setup LBPH recognizer for face recognition
#recognizer = cv2.face.createLBPHFaceRecognizer() # or LBPHFaceRecognizer_create()
recognizer = cv2.face.LBPHFaceRecognizer_create()

# Load training data
#recognizer.load(fname) # change to read() for LBPHFaceRecognizer_create()
recognizer.read(fname)

存檔後執行 detector_picam.py,就可以在辦公室打卡了

python3 detector_webcam.py # for using webcam
python3 detector_picam.py # for using PiCam v2

未來,再補影片~~相信OpenCV的安裝一定很多困難,只能說關關難關關過~~