10 Smart AI Lens

(2021/05/13)

最近AI的鏡頭越來越多了,前陣子從林宏哲那邊取得Smart AI Lens的鏡頭,一開始使用有問題,後來發現是傳輸線的問題。這鏡頭的好處是可以不用經過學習,就可以辨識球體、人臉、顏色、卡片、循線等功能,也能進行簡單的學習來辨識,使用上還滿簡單的。簡單測試內容如下,供參

一、認識Smart AI Lens

    • 屏幕大小為1.3吋,解析度為240*240

    • Double click kflash_gui.exe to open the file and choose to open the newest firmware.

  • MakeCode下擴展積木

    • 輸入關鍵字:先使用 https://github.com/elecfreaks/pxt-PlanetX-AI 、 PlanetX (這個跟CuteBot積木好像會相衝?)

    • 積木種類

      • 基本類

        • 球體偵測

        • 臉部偵測

        • 卡片偵測

        • 顏色偵測

        • 循跡偵測

        • 學習類積木

        • 由上面各類積木大約可以知道這鏡頭能有什麼功能!

二、各辨功能測試

(一)球體辨識

  • 偵測鏡頭下是否含有球體,如果有屏幕呈現【笑臉】,如果沒有屏幕則呈現【哭臉】

    • 識別是【紅球】,還是【藍球】(只能辨別這兩種顏色的球)

    • 偵測一共有幾顆球?

    • 發現:

      • 白色球不好辨識,常辨識不到

      • 偵測時會偵測到球體的【白框】會閃動,所以有時辨識到的球數會跳動

    • 顯示球在位於鏡頭上的哪個象限?

    • 請小車跟著球前進或後退

    • 發現:含AI鏡頭的車體太高,且重心偏後,因此車子啟動時會向後仰(速度可以先調慢一點)

    • 另外,同時擴展PlanetX及CuteBot積木,會出現編譯失敗,最後AI Lens積木改用https://github.com/elecfreaks/pxt-PlanetX-AI則可以編譯,真奇怪!

    • 其他辨識的積木跟球體辨識的積木,使用上都差不多!

(二)臉部偵測

  • 一些項目的使用跟球體辨別差不多

    • 有沒有偵測到人臉,有偵測到,屏幕呈現笑臉,沒有偵測到,屏幕呈現哭臉

    • 一共偵測到幾張人臉?

    • 臉部位置及大小的應用

(三)卡片辨識

  • 卡片種類

    • numberCards = [“0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”]

    • letterCards = [“A”, “B”, “C”, “D”, “E”]

    • TrafficCards = [“Forward”, “Back”, “Stop” , “Turn left”, “Turn right” ]

    • otherCards = [“Mouse”, “micro:bit”, “Ruler”, “Cat”, “Peer”, “Ship”, “Apple”, “Car”, “Pan”, “Dog”, “Umbrella”, “Airplane”, “Clock”, “Grape”, “Cup”]

  • 利用交通卡片控制小車的前進、後退、左轉、右轉、停止

    • 程式:

    • 發現:

      • 卡片任一個角度都可以正確辨識

      • 辨識的速度很快

(四)顏色卡片辨識

  • 一些項目的使用跟球體辨別及卡片辨識差不多

    • 有沒有偵測到顏色卡片(共有黑色、白色、紅色、綠色、藍色、黃色等6張卡片)

    • 利用顏色卡片點亮車底燈

    • 有兩種寫法:

      • 第一種:如果有偵測到多個顏色時,每個顏色的燈會交互出現

      • 第二種:只會出現程式最上面的顏色

      • 發現:

        • 藍色容易辨識成黑色

        • 鏡頭容易當機,好像是小車沒電的關係

(五)循跡辨識

    • 取得偵測到的線條角度

    • 角度算法:

    • 三分法循跡

      • 當角度<75度時,向左轉

      • 當角度>105度時,向右轉

      • 在75與105度之間,則小車向前走

      • 最簡單版程式

      • 發現:

      • 由於鏡頭在車前方,當鏡頭偵測馬上反應,因此車子都沒有在線上,而是偏在線內

      • 如果沒有明顯的線,鏡頭還是會偵測一條線來,導致誤差

    • 三分法的修正:

      • 未完成

    • 五分法循跡

    • 當角度<45度時,大左轉

    • 當角度<75度時,向左轉

    • 當角度>105度時,向右轉大

    • 當角度>135度時,大右轉

    • 在75與105度之間,則小車向前走

    • 多分法的程式寫法

  • 本身也有提供循跡積木,但用上面的方法比較彈性

(六)簡易學習

  • 可學習5樣東西(ID1、ID2...ID5)

  • 剪刀石頭布

    • 程式

      • 學習過程:

      • 使用前先學習

        • 先在鏡頭前擺剪刀的手勢,然後按A鍵,會進行ID1的學習

        • 先在鏡頭前擺石頭的手勢,然後按B鍵,會進行ID2的學習

        • 先在鏡頭前擺布的手勢,然後按A+B鍵,會進行ID3的學習

      • 還要再多學習一個沒有東西,只有背景,當ID4,免得東西都拿開了,還有上一個圖案

  • 有沒有戴口罩

    • 比照上面的方法,自己做看看吧!