圖片來源 (圖片點擊後放大) |
大家可不要小看了這個專案,這可是結合人工智慧、視覺分類和機電整合技術,仔細來看可分為四層:
- 機械設計層:零件供料、整列、輸送帶和分料機構。
- 輸出入控制層:包括供料伺服機(舵機)、輸送帶小馬達、到料感測器(紅外線收發LED)、LED陣列光源、USB攝像頭及分料伺服機(舵機)。
- 計算單元層:主要硬體為樹莓派搭載Linux作業系統,並安裝好OpenCV(開源電腦視覺程式庫)及TensoFlow(深度學習工具包)後,即可進行線上即時影像辨識工作。
- 深度學習訓練層:因為這部份計算量過於巨大,所以採離線工作,不管是用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」及本文網址,謝謝!
沒有留言:
張貼留言