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
編程教學(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)轉化為你想知道的答案(顏色)
假如你想確保並知道Zumi有否成功拍攝到照片 , 可在「take picture」的下方加入「show image get img」 , 在運行編程時 console 將會顯示剛拍攝到的照片。
加入 if do else if 來讓 Zumi 在推測到不同顏色是能有不同的 Output 以分辨出顏色。
如何加入 else if :
按下 if 的小齒輪會看到「else if」跟「else」 , 把「else」拖拉到「if」的下方。
在不同顏色下加入不同的 output ( 聲音,眼睛等等...你也能直接使用文字)。
最後關上 camera 便完成整個編程。