Zumi Machine Learning - Color

Machine Learning (color) 的基本概念:

在教導Zumi學習分辨顏色前 , 我們需對Machine Learning (機器學習)有基本的認識。

我們將會使用一個特別的algorithm(演算法)來教導它學習並分辨顏色 ,

這就是一個簡單的 Machine Learning 例子 , 其中能分成三個步驟:

1. 收集數據

2. 造成模型

3. 做出預測

你將會使用 Zumi 的相機拍攝一連串的顏色相片, 然後使用dashboard內的程式使用所收集到的顏色數據去標籤每一種顏色。

你將能夠使用透過數據造出的「顏色模型」來讓 Zumi 分辨出不同的顏色 , 並對它喜歡的顏色做出特別反應(Output)。

接下來請準備顏色卡 , 讓我們一起教導Zumi學習顏色吧!

圖像及顏色的概念:

在訓練 Zumi 學習顏色之前 , 你將先理解 Zumi 是如何看到顏色 , 機械跟人類看顏色的方法大有不同哦!

人的眼睛在看顏色/事物時就會把訊號傳到大腦 , 讓「你」得知看到的是什麼事物 ,

可是機械在看相片/圖像時則大有不同了不能直接認出事物。

圖像是由稱為像素(pixel)的小點所組成的 ,  一個像素可以是一種顏色或多種顏色的組合,

每種顏色都由一系列三個數字表示,這些數字可以準確地告訴您其中有多少紅色、綠色和藍色。

這稱為 RGB value,代表著紅色、綠色和藍色。

例如綠松石的顏色是(27, 209, 197) , 紅色(27)比較少 , 但綠色(209)跟藍色(197)比較多。

RGB 的數值為 0 至 255 , 透過這些數字可以讓 Zumi 認出不同的顏色。

Zumi 會把由圖片中收集到的 RBG value 轉化成 HSV colorspace 。

HSV 代表 hue, saturation, and value (色相、飽和度、亮度)。

Hue (色相) 的數值為 0 - 360 代表顏色 ,

Saturation (飽和度) 代表顏色的深淺 ;

Value (亮度) 則表示顏色的亮度。

在Zumi應用中,最好還是使用 HSV colorspace,因為它將顏色和顏色深淺強度分開。

這是非常重要的,因為陰影、反射和其他因素可能會導致某些顏色看起來非常不同。

HSV colorspce會將這一點也考慮在內,以獲得更準確的結果。

所需物料 :

Zumi x 1

Zumi dashboard x 1 (zumidashboard.ai)

色卡 x 3

訓練Zumi :

在「AI」中 你能找到「Train a KNN model 」 , 按下它然後會跳到訓練Zumi學習顏色的地方。

按下「Start」開始學習顏色。

Zumi - Google Chrome

輸入你將訓練Zumi學習的3種顏色名稱 , 這次我們先用紅,藍,黃。

按下「Start taking photo」以開始。

Zumi 的鏡頭在此 , 請把色卡放到此處前。

Zumi - Google Chrome

把色卡放到鏡頭前方並進行拍攝。

Zumi - Google Chrome

請收集多於30組的顏色數據 , 收集到的數據將繪成 KNN model 以供Zumi分辨顏色。

完成訓練後,你將會得到3組顏色數據。

編程教學(Blockly) :

訓練完成後 , 在「AI」中按下「Get model」 , 你便能使用剛才訓練Zumi的KNN model。

接下來按下「load model」以獲取更多得編程積木。

讀取好模型後,你將看到剛剛訓練Zumi分辨的三組顏色。

首先在「camera」中拖拉出「import camera」 , 因為Zumi需使用相機來讀取顏色。

然後在「AI」中取出「load KNN model ____」來使用你的KNN model 數據以分辦顏色。

由於需使用相機 , 所以要加入「start camera」來啟動它 ;

「set img to 」 , 需先在「variable」中創建一個新variable 並取名為img ,

意思是img這個varibale將進行「take picture」拍攝相片並暫時儲存中Zumi。

創建另一個variable 並改名為「color」 , 目的是給予一個叫顏色的variable作運算結果讓Zumi能透過學習到的KNN model 去預測剛才拍到的相片是什麼顏色。

到了這個步驟 Zumi 使能夠從拍攝到的照片中推測中顏色 , 可是這樣還是不夠的 ,

因為我們需要有 Output , 才能將數據(KNN value)轉化為你想知道的答案(顏色)

Blockly for Zumi - Google Chrome

假如你想確保並知道Zumi有否成功拍攝到照片 , 可在「take picture」的下方加入「show image get img」 , 在運行編程時 console 將會顯示剛拍攝到的照片。

加入 if do else if 來讓 Zumi 在推測到不同顏色是能有不同的 Output 以分辨出顏色。

如何加入 else if :

按下 if 的小齒輪會看到「else if」跟「else」 , 把「else」拖拉到「if」的下方。

在不同顏色下加入不同的 output ( 聲音,眼睛等等...你也能直接使用文字)。

最後關上 camera 便完成整個編程。