標籤: ,

該主題包含 0 則回覆,有 1 個參與人,並且由  OmniXRI Jack3 週, 3 天 前 最後更新。

正在檢視 1 篇文章 - 1 至 1 (共計 1 篇)
  • 作者
    文章
  • #9750

    OmniXRI Jack
    版主

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

正在檢視 1 篇文章 - 1 至 1 (共計 1 篇)

抱歉,回覆主題必需先登入。