2018年9月28日 星期五

用AI來分類樂高積木

大家都有玩樂高積木的經驗,每次想找某一種形狀的積木時,總是要在一大堆積木中翻箱倒櫃才能找到,就不能玩完後自動歸類嗎?「科技始終來自於人(惰)性」,所以有人就做了一個樂高積木自動分撿器(LEGO Sorter)。

圖片來源 (圖片點擊後放大)




大家可不要小看了這個專案,這可是結合人工智慧視覺分類機電整合技術,仔細來看可分為四層:
  1. 機械設計層:零件供料、整列、輸送帶和分料機構。
  2. 輸出入控制層:包括供料伺服機(舵機)、輸送帶小馬達、到料感測器(紅外線收發LED)、LED陣列光源、USB攝像頭及分料伺服機(舵機)。
  3. 計算單元層:主要硬體為樹莓派搭載Linux作業系統,並安裝好OpenCV(開源電腦視覺程式庫)及TensoFlow(深度學習工具包)後,即可進行線上即時影像辨識工作。
  4. 深度學習訓練層:因為這部份計算量過於巨大,所以採離線工作,不管是用NVIDIA或CPU皆可,進行深度學習模型參數訓練後,再將參數放回樹莓派中即可讓TensorFlowr工作包讀取。沒有GPU的朋友也可考慮Google提供的Colab免費GPU資源來加速訓練。
圖片來源 (圖片點擊後放大)


作者為了讓積木能乖乖的排成一列,前後改了三代才成功。積木依序排列再透過輸送帶慢慢向前間歇移動,使積木不會兩塊連在一起。當移至積木移到攝影機合適拍照位置附近時,用一組紅外線發射及接收LED來使積木停在較精確的位置,並同時打光取像,待分析完成,再將分料舵機轉到結果位置,如此即可正確的將每個積木放到指定格子中。

系統中使用了OpenCV主要是用於找出積木的位置和是否有兩塊積木連在一起的問題。當找出積木位置後再把影像截切及調整至合適辨識的影像尺寸,再交付訓練及推論。

而深度學習部份主要使用了Inception V3模型進行影像分類,訓練時共取得11種積木(不同顏色相同形狀歸在同一種),2,300張影像,訓練後可達96.8%的正確率。經實測後, 100塊積木有98塊順利被分隔開並進入辨識程序,而98塊有89塊正確被分類,正確率有90.8%,比起之前知名的黃瓜分類案只有70%,算是很不錯的結果。整體來說使用樹莓派執行時,約花了3.8秒來辨識一塊積木,雖然有點慢,但未來若加上Movidius神經計算棒時,應該可再加速個十倍。

最後有興趣的朋友可以舉一反三,把它延伸至生活中甚至工廠中的物件分類應用。完整的專案介紹可參考下列網址。
Lego Sorter using TensorFlow on Raspberry

相關影片介紹:


延伸閱讀: 【Maker玩AI】使用Google Colaboratory免費資源學AI,正是時候!

 本文歡迎轉發(貼)及非商業用途使用,若有引用部份文章或圖片時煩請註明出處、作者:「歐尼克斯實境互動工作室 作者:Jack Hsu」及本文網址,謝謝!

沒有留言:

張貼留言

【頂置】簡報、源碼、系列文快速連結區

常有人反應用手機瀏覽本部落格時常要捲很多頁才能找到系列發文、開源專案、課程及活動簡報,為了方便大家快速查詢,特整理連結如下,敬請參考! Edge AI Taiwan 邊緣智能交流區 全像顯示與互動交流區 台科大(NTUST) 人工智慧與邊緣運算實務 開南大學...