2020年2月17日 星期一

[AI] VIA Pixetto視覺感測器大開箱(unboxing):AI開發工具(Development Kits)篇

VIA Pixetto視覺感測器大開箱(unboxing):AI開發工具(Development Kits)篇


FB2:http://gg.gg/TedLeeMicrobitFB/
URL2:http://gg.gg/TedLeeMicrobit/

Line:ted2016.kpvs
Email:Lct4246@gmail.com
FB1:http://gg.gg/TedLeeFB/
Blog:http://gg.gg/TedLeeBlog/
URL1:http://gg.gg/TedLeeURL/

Feb. 20, 2020
88x31.png[1]

難易度

★★☆☆☆。

材料

項目品名單位數量
1VTS-8787視覺感測器片1
2micro USB傳輸線條1

豐富的內建(built-in)AI影像處理(Image Processing)功能與支援Google TensorFlow Lite深度學習框架(Deep Learning Framework)模型庫

8787可以處理影像(images)及語音(speech)的數位訊號(digital signals)來源,再利用機器學習(Machine Learning,ML)的類神經網路(Neural Networks,NN)技術來做AI應用。
在本小節中,我們將一一說明7款8787對於影像處理的功能(Functions):
  1. 顏色偵測(Color Detection)、
  2. 組合色偵測(Color Labels Detection)、
  3. 形狀偵測(Shape Detection)、
  4. 球體偵測(Circle Detection)、
  5. 模板匹配(Template Matching)、
  6. 特徵點偵測(Keypoint Detection)、
  7. 人臉偵測(Face Detection)。
以及內建的3款事先訓練好的(trained)深度學習框架TensorFlow Lite模型庫(Models):
  1. 手寫數字辨識(Handwritten Digits Recognition)、
  2. 交通標誌辨識(Traffic Sign Recognition)、
  3. 神經網路辨識(Neural Network Detection)。
此外,讀者也可以餵給機器學習加速器(https://mls.pixetto.ai/)(文後皆以雲加速器簡稱之)外部Tensorflow深度學習框架(https://reurl.cc/A1Elmj)所產出的.pb(Protocol Buffers)模型檔(https://reurl.cc/Na5oeQ):神經網路辨識(Neural Network Detection)。

至於進階的自訓AI模型的方式則會在下節詳細說明。

7款影像辨識功能

在Pixetto Studio中提供了內含7種基礎影像辨識功能的展示工具Pixetto Utility,如圖1所示。

圖1:Pixetto Utility工具。

  1. 顏色偵測:可識別紅、黃、綠、藍、紫、黑色的單色物件。請按這裡(https://reurl.cc/qDMz6y)觀賞展示影片。台北市仁愛國中楊昌珣老師的公子楊喻丞便使用此功能在防疫期間設計了這段鬥牛(https://reurl.cc/Qp8WKO)小品。詳細的應用教學文件可參考拙著《辨色開燈:使用VIA Pixetto視覺感測器》(https://reurl.cc/V6622N)。
  2. 組合色偵測:可偵測有兩種以上紅、黃、綠、藍、紫、黑之複合色物件。請按這裡(https://youtu.be/D6RjresfNZY)觀賞展示影片。詳細的應用教學文件可參考拙著《芝麻開門:使用VIA Pixetto視覺感測器》(https://reurl.cc/Aqq9zj)。
  3. 形狀偵測:可偵測圓形、矩形、三角形、多邊形物件。請按這裡(https://reurl.cc/V63R3b)觀賞展示影片。
  4. 球體偵測:可偵測紅、黃、綠、藍、紫、黑顏色的圓球。請按這裡(https://youtu.be/kVjhvl9hr-8)觀賞展示影片。
  5. 模板匹配:在畫面上框出範圍並套用後即可偵測此新的模板。請按這裡(https://reurl.cc/W4p4ae)觀賞展示影片。
  6. 特徵點偵測:擷取特徵點來辨識物件。請按這裡(https://reurl.cc/zymgm0)觀賞展示影片。
  7. 人臉偵測:可偵測出人臉的影像。

雲加速器上的3款內建模型

圖2的雲加速器(https://mls.pixetto.ai/)提供了

圖2:雲加速器。
  1. 手寫數字辨識:8787先接上電腦後再從Pixetto的雲加速器下載模型到8787上即可進行手寫數字辨識,如圖3左方按鈕所示。請按這裡(https://reurl.cc/b6Zool)觀賞展示影片。

    圖3:雲加速器上的模型庫。

  2. 手寫字母辨識:8787先接上電腦後再從Pixetto的雲加速器下載模型到8787上即可進行手寫字母辨識,如圖3中間的按鈕所示。
  3. 交通標誌辨識:8787先接上電腦後再從Pixetto的機器學習雲加速器下載模型到8787上即可進行交通標誌辨識,如圖3右方的按鈕所示。

匯入(import)外部模型

神經網路辨識選項可以將我們事先訓練好的TensorFlow模型(https://reurl.cc/Qp1ol2):HandwritingDigits.pb(圖4為使用Netron(https://reurl.cc/Na585Q).pb檔的視覺化檢視工具)上傳到8787上辨識使用。請按這裡(https://reurl.cc/RdKo7D)觀賞展示影片。


圖4:事先訓練好的模型檔:HandwritingDigits.pb。


最後,Pixetto Junior與Pixetoo Utility在AI功能上的兩相對應控制積木程式請參照考《AI應用基礎篇:使用VIA Pixetto視覺感測器》一文所述。

我乃小智是也,自己神奇寶貝自己訓

經過上小節的介紹,大家一定和神奇寶貝的知名訓練師小智一樣,躍躍欲試地想要自訓自己的有趣應用了嗎?沒問題,跟著小智的腳步,讓我們一同邁向偉大的All Blue吧!
根據《Pixetto 教學手冊 中文版》(https://reurl.cc/vnyjgN)文內「訓練神經網路模型:使用三個交通號誌影片來訓練模型」的指引,我們使用雲加速器來解說自己訓練(training)AI模型的步驟。
  1. 先準備好要訓練8787的AI大腦的兩段Ball.mp4(https://youtu.be/uID6GNAjPzk)及Hand.mp4(https://youtu.be/rFN4DLRju0k)影片。
  2. 將這兩段影片上傳到雲加速器訓練(積木程式控制只要識別Ball及Hand兩類,如圖5所示)。

    圖5:TensorFlow的樣板程式。
  3. 將產生的.pd模型檔載到8787硬體上。
  4. 實測訓練好模型的辨識情形。如 https://youtu.be/izxTBAADaYY 所示。

應用實例:物體追蹤

如圖6所示,將8787連接開發板並加上會轉動的雲台後就可以追逐(使用內建的顏色偵測功能)外在物件的「身影」。請觀賞影片(https://reurl.cc/4gkMOR)的詳實展示。本示例的
完整程式碼可由此(https://reurl.cc/W4eogk)下載到Pixetto Junior上觀看或編輯。

圖6:8787架上伺服馬達控制的雲台而追逐紅球的影像追蹤實例。

    教學活動設計

    1. 以1000.mpg(https://youtu.be/M5SXx5jzDX4)與100.mpg(https://youtu.be/GcXX6-ojdq0)訓練出8787可以辨識的TensorFlow模型,並實際測試訓練的成果。

      参考資料:
      1. 六種授權條款。