3D機器人視覺在倉儲物流和工業自動化領域的應用 | AI ProCon 2019

  • 2019 年 10 月 28 日
  • 筆記

整理 | 夕顏

出品 | AI科技大本營(ID:rgznai100)

隨著深度學習和機器學習的發展,機器人已經走出實驗室,越來越多地地應用於各行各業,其中,倉儲物流和工業化領域就有許多適合機器人作業的場景環境。

人眼的一大能力是除了看到物體之外,還可以得到物體的深度資訊,從而可以從更高維度實現定位識別。在工業自動化和倉儲物流等對自動化有較高需求的產業領域,3D 視覺、人工智慧和工業機器人的結合而成的「3D機器人視覺」正逐漸成為一種趨勢,3D 機器人視覺讓工業機器人等自動化裝置能以更高精度、更快速度執行更複雜的工作,是產業自動化升級乃至將自動化技術推向更多產業領域必不可少的一環。

然而,你了解各種形態的機器人背後所用到的具體 AI 技術嗎?3D 機器人又是什麼樣的概念?是否所有的機器人都有必要用到深度學習和機器學習技術才能達到最好的效果?帶著這些疑問,讓我們從杭州靈西機器人首席科學家,北京大學資訊科學技術學院博士王燦在 2019 AI 開發者大會(AI ProCon 2019)上的演講《3D機器人視覺在倉儲物流和工業自動化領域的應用》中找尋答案。

2019 AI開發者大會是由中國 IT 社區 CSDN 主辦的 AI 技術與產業年度盛會,2019 年 9 月 6-7 日,近百位中美頂尖 AI 專家、知名企業代表以及千餘名 AI 開發者齊聚北京,進行技術解讀和產業論證。

以下為王燦的演講實錄整理,AI科技大本營整理(ID:rgznai100):

3D視覺成像原理分類

今天我帶來的演講題目是《3D機器人視覺在倉儲物流和工業自動化領域的應用》。說到3D機器人視覺,我們得先從 3D 成像講起。3D 視覺成像按成像原理,可以大概歸納為三類:飛行時間原理、通過光線的時間差恢復深度,以及三角測量原理。

在機器視覺領域,運用最廣泛的是測距原理,並衍生出很多 3D 感測器、雙目多目、線結構光、相移結構光、散斑結構光,還有散斑編碼原理、多光譜共焦原理、光度測量、干度測量方法。

飛行時間原理

飛行時間原理是基於一個光線的發射器調製出的雷射,通過物品本身的反射算出與物體之間的距離,但它有一個缺點,即因為它是通過光線速度傳播的時間差來測量深度的,所以在深度差距 1 毫米時,光線差距可以算出來,但對於一個對高頻電路設計有很高要求的電子器件來說,這個技術門檻限制了它的精度,只能做到亞厘米級精度。這兩年,超聲 ToF 克服了光學 ToF 的很多缺點,能夠達到更高的精度,但是目前還未廣泛應用於消費級或工業級產品上,還處於產品研發階段。

三角測量原理

三角測量原理是指一大類3D感測器,最早是基於雙目視覺。對視覺有了解的同學應該都知道,它的缺點是必須要影像能夠獲得紋理資訊,比如用我們所熟知的腳點,來計算資訊特徵點的雙匹配,並恢復深度。這種方法的優勢是可以用於室外環境和寬廣的視野。

為了克服雙目的成像缺點,在消費級和工業級的 3D 相機應用中,大家非常喜歡主動結構光的技術,主動投射結構光,無論是線結構光還是條紋光,或者是用投射散斑,這相當於為相機獲得的影像人為地增加很多紋理特徵,進行匹配。這裡有個最簡單的線掃結構光的應用,通過投射的主動光源,就可以把桌子上的物體深度恢復出來,基於最簡單的雷射器投射是它最基本的原理。

散斑編碼原理

對於散斑編碼原理,直接投射出的結構光就代表它的深度,2001 年微軟最早推出第一代第一代kinect時所用的就是結構光,在不同深度上投射出不同的模式,通過獲得光的模式可以直接計算深度。該原理廣泛應用於 3D 手機端攝影機上。

光譜共焦測量原理

這是在 3D 成像興起之前,在光學測量領域盛行的單點 3D 測量原理——光譜共焦測量原理,以後大家如果在工業級項目中客戶要求非常高時,比如要達到 1 微米的量級,之前提到的結構光就很難做到,做工業測量適合選用這種原理。但是,它的劣勢在於只能作為單點測量的工具,當然也有線陣測量,但比較困難,中國還沒有看到做線陣測量特別成熟的產品。打出白光後通過分色器,把不同光點射拉大,這相當於投射在物體表面的距離所代表光的波段會非常大,物體移動 1 厘米,光的波段就會移動幾納米。如此,最後光譜解析器會解析到聚焦於物體表面光的波動,通過波長的數量推測物體的高度,這樣就可以獲得很高精度。

3D視覺演算法

傳統方法VS學習方法

講完了 3D 視覺成像硬體方面的原理,下面來看一下 3D 視覺成像的演算法。3D 視覺成像演算法起源於七八十年代的光測度演算法,讓一束光均勻地打在物體表面,反推出它的深度,這是最早的一種演算法。

其次,用到最多的是幾何演算法,主要是通過視差,同樣一個三維點,在不同的相機中對應的位置不同,通過對應關係的差距來恢復它的深度。

現在,隨著深度學習的興起,有越來越多的數據集在做這方面的工作,嘗試基於先驗統計,從單幅影像中恢復三維結構。這個想法的原理基於這樣一個事實,即人類用一隻眼睛也能感覺到距離的遠近,這是因為我們的大腦擁有先天的結構和後天認知的輸入,已經獲得可很多先驗知識。當然,學界也有人提出反對意見,我在馬毅老師的微博上引用了他對該方法的評價:「涉及到很複雜的網路,試圖做深度恢復,比如單張圖,但是真正去細摳演算法性能還不如傳統基於最近鄰理論的原則演算法。我認為他的說法是正確的,因為深度學習並沒有利用幾何關係,我們試圖用一個模糊的網路去學習精確的東西,往往很難達到滿意的效果。

說到這一點,我大致調研了一下最近兩年的代表性工作。上圖是最古老的光測度測量方法,獲得了CVPR 2019的最佳論文,它的原理是通過一個不可見物體,或在半透的情況下,利用模糊的光照資訊,試圖恢復物體表面的深度資訊。當然,這篇論文提出了一些較好的理論,雖然與最早的光測度演算法一樣對光照和材料的材質都有很高的要求,但這種方法也為該領域提出了一個新的思路和方向。

還有人對性能進行了量化分析,這是 3D 點源測試圖,每個點都是一個 XYZ 坐標,測試不同網路模型下的性能,結果網路性能的表現不一,每個網路在不同圖片上的表現也不同。最後,作者得出結論:一張測試圖片和原始訓練數據集中圖片非常相近時,就能夠搜索訓練的圖片,得到較高的 3D 圖得分,它只是進行了搜索和分類,恰好找到了一張與它相似的圖片而已。

幾何方法VS學習方法

還有一些工作非常具有借鑒意義,幾何方法涉及到很多自由化的問題,如何把現在的學習方法引入到自由化問題中,如更好地解決優化問題,可能是幾何方法與學習方法融合的一個趨勢。但是,我認為在工業領域,可能我們更多地是追求可靠性和可控性。所以,目前學習方法還不能替代幾何方法。

機器人視覺

接下來講一下機器人視覺。機器人視覺的本質在於,機器人視覺是輸入資訊,包括數字資訊和圖片,但是輸出要作用於物理世界,反映出來的是在物理世界的一個動作,這是機器人視覺吸引人的地方。我之前在騰訊做影片分析和 AR 廣告植入,之後在中科院做過安防監控、影片分析等,但是這些都局限在數字世界中資訊的輸入輸出上。但是機器人視覺與之不同,機器人視覺是先通過感測器獲得數字世界資訊,然後作用於物理世界,這是它的魅力所在。

3D 機器人視覺的必要性,我們不僅做機器人視覺,還做 3D 機器人視覺,機器人視覺要在真實物理世界中工作,需要獲得三維資訊才能執行動作。2D 機器人視覺會做假設,比如將物體放在一個平面上,但最終發出的指令還是 3D 的,如果要把機器人視覺推廣到更複雜、更廣泛的應用中,必然需要 3D 機器人視覺。

上圖是我們之前在實驗室中做的一些 demo。這個雙臂的 hero 機器人擁有十幾個自由度,再加上物體的三維運動,規劃不同任務下的擺放、拼接、抓取、識別的問題,首先我們要面對的不是視覺問題,而是機器人規劃問題,我們要把物理世界的三維運動通過機器人解決十幾個軸的高維空間規劃問題,視覺只是起到了給它發送目標指令的作用,比如抓取位置、抓取姿態、擺放位置、擺放方法等,機器人執行的是非常複雜的高維空間規劃。

上圖是我們公司自己做的一些 3D 相機,第一個是雙目散斑相機,用的是線結構光,線結構光的優勢是精度較高,但執行效率比雙目和面結構光稍差,但優勢在於精度高。根據精度、視野等各種要求,不同原理的 3D 相機應用於不同的場景。

為什麼我們要自己做相機?這是因為現在市場上雖然有很多人在做 3D 相機產品,但是由於需求不成熟,很多相機是非標訂製的,滿足不了客戶的不同需求,類似的產品可能在精度上相差幾個量級,所以,我們需要自己做 3D 相機設備,打造靈活的非標訂製需求。

應用案例

倉儲物流領域

這是我們在倉儲領域主要應用的架構。首先,我們要有一個對接各類機器人本體的控制系統,控制系統主要負責又快又准又安全地進行機器人規劃和檢測,我們基本上可以對接四大家族(日本的安川電機 YASKAWA、發那科 FANUC、德國的庫卡 KUKA、瑞士的 ABB),包括國產的比較有名的機器人,把它們集成到我們的控制器中。我們的視覺系統用於解決倉儲物流領域的各種應用,包括各類消費品軟包裝食品、整托產品、金屬製品。

這是我們參選「Top30+」評選案例的京東家電倉,它可以節省勞動力,提高效率,減輕工人作業負擔。在這個場景中,機器人可以拆分不同類型的垛,箱子尺寸從 100mm 到 800mm 不等,任何形狀的包裝都有可能出現,且沒有鮮艷的色彩,這對機器學習提出了挑戰。這種問題在實際應用非常常見,比如視覺檢測結果。

在電商領域機器人可以參與到哪些場景中呢?網購之後,會有人根據訂單去揀貨區取貨,再分配到快取區,自動化叉車把快取區的東西卸到投遞區,我們的機器人可以在投遞區作業,節省人力和成本。

這是一個比家電倉更複雜的水飲倉,包裝五顏六色,擺放狀態不一。它的難點一是於演算法,二是在於光學設計,如何獲取非常複雜的各種物體的成像資訊,這對硬體、軟體和演算法都提出了很高的要求。我們公司在中國首次將倉儲物流 3D 機器人落地。

物流領域對成本非常敏感,基本上要求一年就要收回成本。

工業領域

在工業領域,這是我們為一家美國鑄件公司提供的方案。工廠里鑄造件降溫時是黑色的,無法分辨形狀,只能依靠 3D 視覺解決這個問題。工件有堆疊,也有姿態,所以需要有輸出才能抓取,這個項目最後也成功落地了。但是工業領域我們做的比較少,因為工業領域非標訂製需求太多,而且不成規模,這一點與電商倉儲領域不同。

這是在其他領域的應用,比如京東供包,各種包裹在傳輸帶上通過,它的難點在於視覺反應速度,這套系統不僅要測出位置,還要解決分割的問題,不能把兩個包裹當成一個包裹,也不能把一個包裹當成兩個包裹。它還要測量體積,包裹經過時,3D 相機可以通過物體表面點的分布推算出體積,這樣商品入庫時既得到了面單資訊,又得到了體積資訊。更全面的產品資訊還應該加上稱重,一次性得到所有資訊,然後由機器人抓取。目前,機器人主要集中在大的分揀中心和物流中心。

另外,我們的其他產品案例還包括用協作性機器人進行柔性物體的抓取、小型分揀等。

Q&A

Q1:您剛才講到 3D 視覺容易受光線的影響,能詳細說一下嗎?

A1:因為 3D 成像可以用非結構化成像,所以自然界中的可見光對演算法沒有影響。

Q2:現在的相機已經有這個功能?

A2:對,在物流領域,一般我們用 800 萬的光線,用紅外光線較多。

Q3:您講到抓取物體也可以用到一些2D檢測技術,再與3D視覺相結合,具體如何結合?3D視覺技術在於3D相機和相機的參數和編碼,它與機器學習或機器視覺有什麼關係?

A3:首先對兩個相機做外參數標定,標定完之後,相當於知道了XYZ的資訊,就可以把 XYZ 坐標映射到 2D 相機坐標下,通過內參數映射到坐標旗下。你可以反向投射回去,比如在2D平面上獲取一個區域的資訊,3D 成像的點雲是面,可以用 2D 投射回去,對應到 3D 點雲上的某一區域,從 2D 到 3D 是多解的,但 3D 也是一個面,雖然是 3D,但是在物體上投射過去之後,還是能對應到點雲上,再在點雲上計算對應的點位置就可以了。

至於 3D 視覺技術與機器學習的關係,從幾年前開始就已經有很多基於單幅影像來恢復 3D 資訊的工作,他們認為基於一個 3D 影像是可以恢復深度圖的。當然,這種方法在實際應用中也有一定的效果,一張圖深度恢復到網路,就可以恢復出距離,端到端的網路可以做到。我後面講到的融合主要是幾何的方法,多視角幾何本來可以通過純理論推算,只不過後面計算時用到一些優化的方法,深度學習不引入任何結構,比如兩個雙目,明明可以通過標定演算法,內參外參全部標定出來,這是一個非常複雜的參數,理論可推導的可能有二三十個因子,一定要用深度學習得到一個非常精確的因子。我認為,如果通過幾何標定已經可以做到亞毫米的精度,卻非用深度學習學出高精度是沒有必要的。

但是,深度學習網路可以幫助做 3D 幾何方法中的結構化模組。

Q4:用 3D 相機得到深度,之後的處理手段會用到深度學習和機器學習嗎?

A4:會,獲取 3D 資訊之後,3D 資訊就是一個三維的矩陣,也可以把它變成二維資訊,也就是影像,深度影像一樣可以用 2D 的深度學習方法處理,也有很多直接處理 3D 點源的網路。用傳統方法,識別 3D 點源拍出來的物體目標也有很多方法。

Q5:3D 相機成本有多高?

A5:消費級的 3D 相機陳本可能只有幾百上千,但工業場景中對精度和速度要求很高陳本就不是一個量級的了,它的成本主要分布在幾個方面,一個是主動光源模組的成本,模組做得越精密,製程越複雜就越貴。現在在消費電子領域,比如在移動端手機上,有很多原理的深度攝影機,他們可能用的製程不同,成本功耗也都不同。

第二,精度,理論上來說,用的解析度越高達到的精度越高,這只是精度問題,實際應用中還要考慮速度問題,這要求頻寬足夠,比如用 500 萬的相機獲得 100 幀的幀率,要保證嵌入式這塊做得非常好,才能滿足頻寬需求,成本也隨之大大提高。

Q6:京東的機器人相機的成本是多少?

A6:大約有 10 萬,那個相機比較複雜,包括光學和內部結構、GPU 計算都比較特殊。

靈西機器人首席科學家,北京大學資訊科學技術學院博士

演講嘉賓:

王燦,杭州靈西機器人首席科學家,北京大學資訊科學技術學院博士

(*本文為 AI科技大本營整理文章,請微信聯繫 1092722531)