單元三:電腦視覺(二)

學習目標

這單元將會為你介紹更多有關電腦視覺的概念。電腦視覺是AI應用的一種非常重要的輸入方法。當你明白及理解電腦視覺這一工具,你就能夠設計及完成很多的AI實驗了。

學習內容

(重溫)

電腦視覺使機器能夠由數碼影像中獲取有用的資訊,並且透過處理及分析這些資訊,能夠做出一些決定。如果AI使到電腦能夠思考,電腦視覺就是使到機器能夠看見。

電腦視覺運作上與人類視覺很相似。人類視覺用了很長時間去訓練如何分辨物件、距離多遠、是否靜止不動、或是在移動中。人類的視覺能力是透過眼睛、視網膜、視神經、及大腦內的視覺皮層得來的。同樣,電腦視覺亦需要用時間去訓練機器學習以上的技能,但所需要的時間就短得多了。電腦的視覺能力是透過相機鏡頭、數碼影像轉化成的資訊、及AI演算法而得來的。

下面的圖顯示出電腦(機器)如何看一個數碼影像,並且能夠透過演算法作出決定。這影像是灰階的(不是彩色的)。影像被切割成多個區。你可以數到有多少區(zones)嗎?

 

AlphAI 稱這些區為 “像素” (pixels)。你可以將 AlphAI 內的相機調效成不同的像素,例如 2x1,4x3,8x6,等等。上面的相機被調效成 4x3 像素。

請大家留意,這些像素會被輸入到電腦的神經網路作進一步處理及分析。

我們已經介紹了電腦視覺一些基礎知識。電腦看到的數碼影像是被劃分成很多個區,這些區就是像素了。下面的影像有12 個像素,它是由 AlphAI 的 4x3 像素相機所捕攝到的影像。

在上圖上的第一欄的三個像素內,你可以看到數目字 249、156、和 248。這些數目字代表了在這些像素內感應到相對影像部份的光亮度。數值在 0 和 255 之間。

  • 數值越大,那像素就越光越白。
    • 例如,249 及 250 代表像素感應到很光很亮。
  • 數值越小,那像素就越暗越黑。
    • 例如,158 及 90 代表像素感應到很暗很黑。

**留意:像素內 0 到 255 的數值會被轉換成 0 到 1 之間的數值並輸入演算法作更深入的處理。

 

====

影像的像素(pixels) ,像下圖一樣,可以重新被排列的。

影像可以被看成四個垂直的欄 A、B、C、和 D。如果這四個欄被排在一條垂直線上(像右邊一樣),這就像一個輸入層擁有很多個數值,並輸入到人工網絡作處理。

活動:訓練機械人分辨二進位數字

材料:

  • 八張大約 10厘米x10厘米的咭紙,用來代表二進位數目字 1 到 8, 即0001 到 1000。
  • 每一咭紙分成 4 個一樣大小的垂直欄,黑色的欄代表 1,白色的欄代表 0。.
Column 1 - Binary Number (二進制數字)
Column 2 - decimal (十進制數字)
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8

AI 設置參數

傳感器

  • 4x3 像素相機
  • 灰階

動作

  • 8 個輸出
  • 向前行、向前左右轉、向前原地左右轉、向後行、向後左右轉

AI 設置

  • 學習法 - 監督式學習法(Supervised Learning)
  • 演算法 - 神經網絡(Neural Network)
  • 隱藏層 - 沒有

顯示設置

  • 動畫
  • 聯繫活動

 

標籤輸出

設置:

  • 將 AlphAI 機械人放在小積木上,讓它的車輪可以在空中自由轉動而機械人仍然可以停止不動。
  • 將AlphAI 機械人(鏡頭)放在距離咭紙架大約 4至5厘米的地方。

開始實驗

  • 啓動AlphAI 機械人及聯線到你的電腦。需要時按螢光幕上的”聯線” <Connection> 按鈕。
  • 如果設定參數正確,螢光幕將會顯示一個神經網絡。

 

訓練

  • 啓動 “重設學習” <reset learning> 的按鈕。
  • 關閉 “自動駕駛” <self drive> 的按鈕。
  • 啓動 “學習” <learning> 按鈕。

 

  • 將 “0001” 號咭放在架上。
    • 觀看螢光幕,看看卡紙是否放置正確。
    • 如果放置正確,根據輸出標籤點擊代表 “0001” 的輸出動作。(向後右轉)
  • 將 “0010” 號咭放在架上。
    • 觀看螢光幕,看看卡紙是否放置正確。
    • 如果放置正確,根據輸出標籤點擊代表 “0010” 的輸出動作。(原地左轉)

 

  • 對於每一張咭,重覆以上步驟 4 至 5 次,每次將咭紙向左或向右移動少許。

 

測試

  • 關閉 “學習” <learning> 按鈕。代表學習已經完成。
  • 啓動 “自我駕駛” <self drive> 按鈕。 AlphAI 機械人會使用剛剛學習到的智能去分辨數字咭。

 

  • 讓機械人嘗試分辨 8 張咭。

 

  • 結果如何?
  • 假若結果不是全對,原因可能是訓練不足。請增加訓練。

 

究竟電腦視覺如何處理輸入訊息?

  • 根據下表,重新測試每一張咭,並將電腦看到的像素內黑白分佈和輸入層內的黑白分佈,填寫入下表。

 

  • 順序由 “0001” 開始。
  • 偏向深色就寫上 “X”,偏向淺色就留空。

 

  • 你看到有甚麼特別的地方呢?

 

討論

  • 請問有多少輸入像素?
  • 輸入像素如何幫助機械人分辨數目字?

 

延伸活動

  • 是否可以訓練機械人分辨貓和狗的相片呢?
  • 是否要多一些像素呢?
  • 是否需要彩色相機呢?