延續上個月的練習,我利用 Apple Vision Framework 的文字檢測與辨識功能,寫了一個統一發票的對獎 app,目的是用來對獎傳統的統一發票。
傳統的統一發票沒有 QR code,所以我採用檢測文字的方式去檢測發票號碼,然後再比對有沒有中獎。
原始碼:https://github.com/kyumdbot/TaiwanReceiptLottery
Demo 影片:
延續上個月的練習,我利用 Apple Vision Framework 的文字檢測與辨識功能,寫了一個統一發票的對獎 app,目的是用來對獎傳統的統一發票。
傳統的統一發票沒有 QR code,所以我採用檢測文字的方式去檢測發票號碼,然後再比對有沒有中獎。
原始碼:https://github.com/kyumdbot/TaiwanReceiptLottery
Demo 影片:
這個月幾乎都在玩 Apple 的 Vision Framework,並寫了幾個 Demo app,分別有:
◎ 人臉檢測與 Object 檢測(查看原始碼):
◎ 手部姿勢檢測(查看原始碼):
◎ 手寫數字檢測(查看原始碼):
我覺得電腦視覺真的太好玩了,可以做很多有趣的應用,而且 Apple 已經推出 ARM 版 CPU 的 Mac 電腦了,希望 Apple 也能出一款體積比 Mac mini 還小的 Mac nano,用 ARM Mac 搭配 Vision Framework 與 CoreML 來做應用,應該會很有競爭力吧 (? 🤔 ,而且 macOS 的 GUI 比較容易寫的說(跟 GTK 相比)…
我不久前買了 Google 出的 Edge TPU 裝置:Coral USB Accelerator 來玩玩看,覺得這玩意非常不錯,台幣兩千多元,可以跑 TensorFlow Lite 格式的模型,我個人是覺得還蠻划算的。
我先用 Raspberry Pi 3 Model B+ 來測試 Pose Detection 模型,一開始使用預設的解析度:640×480,繪製的速度不是很理想,影片如下:
測試 Pose Detection pic.twitter.com/xbujQPy6p8
— 甘苦•柴犬圖靈機•求職中 (@riddle_ling) August 3, 2019
然後我把解析度設定成:480×360,繪製的速度有加快,但還是不盡理想,所以後來我改用一台 2013 年買的小筆電來跑,這次繪製的速度就相當不錯了,影片如下:
在一台 2013 年買的小筆電上測試,TrueFPS 大約在 22.x 左右,比 pi 快太多了吧!
— 甘苦•柴犬圖靈機•求職中 (@riddle_ling) August 6, 2019
———
這台小筆電的 CPU 是 Intel Celeron(R) CPU 847 @ 1.10GHz,記憶體 4GB,作業系統是 Debian 10 (buster) amd64 版 pic.twitter.com/JzWB3FK7eN
這台小筆電的規格為:CPU 是 Intel Celeron(R) CPU 847 @ 1.10GHz,記憶體 4GB,作業系統是 Debian 10 (buster) amd64 版,且有 USB 3 的插孔。
Raspberry Pi 3 Model B+ 除了 CPU 速度較慢之外,也沒有 USB 3 的插孔,所以整體上慢了一大截。但是前陣子出的 Raspberry Pi 4 Model B 有 USB 3 插孔,我已經訂了一台 Pi 4,等收到貨後再測試看看繪製速度是否有提升。
# 2019 年 11月 3 日補充: 我在 Raspberry Pi 4 (4GB 記憶體版本) 上測試了 Coral PoseNet,測試結果請看以下影片,TrueFPS 維持在 20.x 以上:
另一段在 Raspberry Pi 4 上的測試影片,FPS 也有維持在 20.x 以上: pic.twitter.com/BugOphajN6
— 灰袍編程精靈•甘苦夫 (@riddle_ling) November 3, 2019
然後我還有嘗試 Object detection 與 MiniGo 圍棋:
按照範例教學裝了 MiniGo 來玩,不過我完全不懂圍棋,所以都亂下 XD,有空時再來研究圍棋的規則好了 pic.twitter.com/82ZMMR0Qvc
— 甘苦•柴犬圖靈機•求職中 (@riddle_ling) August 11, 2019
Coral 官方網站也提供了好幾個已編譯好的模型讓人下載:https://coral.withgoogle.com/models/ ,可以先從這些模型開始玩起。
感想:這種 Edge TPU 裝置可以做很多有趣的應用,而且價格不算貴,有興趣的人快去買來玩玩看!
我寫了個 Android app,利用 Google Play Services Vision 的 FaceDetector 偵測人臉位置與眼睛打開的機率,然後只要發現有人的眼睛可能是閉上的,就傳送訊息給 micro:bit (透過 BLE) ,micro:bit 上接了一個 speaker,收到訊息就會逼逼叫。上方是 Demo 影片。