死宅福音:樂高不怕多,智能分揀機幫你歸類
摘要:但令 West 感到沮喪的是, 他的 AI 樂高分揀機用假圖像進行訓練後,卻無法識別出真正的部件。收集訓練數據集不易,West 還特地撰寫了文章 (原文鏈接:http://985.so/f5G8) ,詳細介紹了他如何製作 10 萬張的帶標籤樂高積木訓練圖片。
樂高現在幾乎已經是優質玩具的代名詞,該品牌旗下最爲知名的,莫過於樂高積木。其豐富的形狀與多樣的玩法,無論大人小孩都喜歡。但是,這些繁雜多樣的零件,分類收納起來卻也是個大難題。一位軟件工程師藉助 AI 技術,建造了一臺樂高分揀機,爲廣大樂高愛好者帶來了福音。
如果你沒有玩過樂高,也可能聽過樂高。樂高集團於 1932 年誕生於丹麥,此後很快, 「LEGO」 這個商標就成爲了優質玩具的代名詞。
LEGO 旗下最爲知名的樂高積木,於 1949 年問世,距今已有 70 年曆史 。
論樂高分類有多難
樂高積木因複雜多樣、想象空間大等特點,對兒童充滿吸引力,令很多玩家癡迷,甚至成爲很多教育機構的教具。但是,部件種類的豐富,也讓熱愛樂高的朋友常常陷入分類歸納的困擾中。就目前而言,樂高積木共有 119 個系列,111 種顏色 ,而每個系列就包含 幾百個甚至幾千個部件 。
曾有一位樂高愛好者,在 eBay 上的一次拍賣活動中,收穫了 2 噸的樂高積木。剁手一時爽,但面對如此大規模的樂高,他傻眼了,「要把這些都整理好,得花上幾輩子的時間。」他在博客中寫道。
很多玩家對樂高的歸類整理問題也做了一番研究。有位對計算機視覺感興趣的澳大利亞軟件工程師 Daniel West,把這個令人「頭禿」的問題交給了 AI。
世界上第一臺通用 AI 樂高分揀機
對於人類來說,只要看一眼積木塊,就能輕鬆識別它的形狀顏色等特徵,甚至即使一兩歲的小孩子,在幾次嘗試後都可以區分例如 2×1 紅色積木塊、4×1 綠色積木塊和那些小鏈子積木之間的差異。
但是如果把分類歸納的任務交給機器去做呢?似乎就並沒那麼簡單了。
早在 2011 年 ,日本的一位樂高愛好者 akiyuky ,就爲解決這個問題發明了樂高分揀機。不過他的數據庫圖像較少,分揀速度也較慢。
受到 akiyuky 的啓發,同樣熱愛樂高與機器的 澳大利亞軟件工程師 Daniel West 想設計一個更智能、分揀更迅速的樂高分揀機。
於是,他便花費了兩年時間,用 超過 10000 塊樂高積木 ,建成了一個通用的樂高積木分揀機,這臺分揀機 藉助計算機視覺算法,可以分揀出任何樂高零件 。設備還帶有 6 個樂高電機和 9 個伺服電機,爲傳送樂高零件的傳送帶和攪拌器提供動力。
West 稱,這臺機器能夠 將 2927 種樂高積木分類到 18 個不同的歸納箱 ,而且 每 2 秒 就可以分一塊積木。這效率,很可以了吧?
雖然這不是世界上第一個樂高分類機,但 West 稱它爲 世界上第一臺通用樂高分類機 ,「因爲它使用了最先進的人工智能技術,能夠識別和分類任何已經生產出來的樂高部件。」West 也計劃在將來發布該代碼。
分類工作,流程總共分三步
這臺能幹的設備具體怎麼工作呢?總體來說,似乎並不複雜,總共分三步。
第一步:放入積木。
將一大堆樂高積木倒進機器頂部的滑槽中,然後將積木置於振動帶,經過晃動,積木被分散成單獨的積木塊。
第二步:拍照分類。
積木塊由 Raspberry Pi(樹莓派)計算機傳送。Raspberry Pi 計算機包含一個照相機,當積木經過時,它會拍下一系列照片,然後把這些照片傳送到 CNN 模型 ResNet-50 上進行分類。
第三步:歸類入箱
分類結果反饋到該設備後,輸送帶上的不同小閘門會把積木引導到所屬的箱子中。
技術實現「一波三折」
由於樂高的零部件有成千上百種類型,顏色多樣,並且從不同角度看形狀也不一樣。因此, 收集正確的訓練數據集是整個工作中最難的一部分 。
West 說,他起初試圖對樂高積木進行模擬。他從 LDraw Part Library (一個讓發燒友可以虛擬構建樂高的開源程序)中獲取了樂高零件的 3D 模型 ,並將其用免費的動畫軟件 Blender 渲染。
然後他可以在不同的旋轉角度和顏色下模擬 3D 模型積木。這些單獨的圖像被收集到一個包含了 超過 2500 萬張圖片 的合成數據集中。
但令 West 感到沮喪的是, 他的 AI 樂高分揀機用假圖像進行訓練後,卻無法識別出真正的部件 。他說:「我當時幾乎完全放棄了這個項目。我花了幾個月的時間來實現一種,將合成圖像轉換成真實圖像的複雜方法,但收效甚微。」
之後,他轉向了另一種常用的技術,以幫助減少仿真與現實之間的差距: 域隨機化 。
域隨機化能夠訓練模型識別更多的數據變化。 該系統不僅學習了樂高積木的不同旋轉角度和顏色,還學會了考慮各種燈光效果,紋理和噪音 。
爲了進一步提高樂高分類器的性能,West 還整合了一個更小的數據集,其中包含真實樂高部件的快照。他說:「真實的數據集只包含我個人收藏中的零件,最終只有 544 種不同類型的零件。」這些零件是在樂高系列中更常見的類型,而合成數據集則是一些較少見的類型。
通過對這兩個數據集進行訓練,從理論上講,West 的樂高分揀機上的攝像機應該能夠識別出它實際上從未見過的零件。不過,模型在不同數據集上的實際表現還是有差別的:在識別 真實數據集 中的零件時,準確度爲 93% ,而識別 合成數據集 中的零件,準確率則爲 74% 。
收集訓練數據集不易,West 還特地撰寫了文章 (原文鏈接:http://985.so/f5G8) ,詳細介紹了他如何製作 10 萬張的帶標籤樂高積木訓練圖片。文中提到,他主要利用樣本生成法、簡化流程以及使用 AI 輔助註釋來完成海量圖片標記的任務。
夢想借力 AI 走進現實
West 熱愛樂高,他的夢想也與樂高有關,他說, 他將最終實現畢生的夢想:建造一個真正能工作的樂高分揀機 ,同時獲得設計和部署人工智能系統的現實經驗。
興趣是最好的老師,也是最大的驅動力。同時,技術的發展,也成爲興趣、夢想的助推器,讓大大小小的夢想都能夠更加快速、完美地實現。如今,AI 都會幫你分揀樂高了,還有什麼不能做的呢?