人工智慧深度學習的演算法可以應用到工業的機械臂上嗎?
谷歌開源了tensorflow,想了解下能否把這種基於神經網路的深度學習演算法應用到工業機器人的圖像識別演算法上,拿來做商品或者零件分揀,通過大規模訓練的方式讓機器自動抓取相應的零件,從而使得在自動識別演算法上不必投入太多精力去開發,而是讓機器自動去訓練學習。想知道這種方法是否可行?
謝邀!回復晚了,抱歉!
從功能上來說,你這個應用非常適合採用深度學習,事實上,深度學習本質上就是用來做分類識別的,尤其是針對零件與零件之間,圖像上差異比較小的時候(比如你需要自動分揀A,B,C三種零件,但其形狀差別很小),更加適合用深度學習。
不過深度學習也存在它的問題:
1.訓練的樣本要足夠大,具體多大合適,要看你對圖像區分度的要求。如果樣本不是很充分的情況下,比如數千張或更少,其實也可以考慮用傳統方式,比如SVM。我用傳統方式做過寶馬車標,安全帽等的識別,準確度相當高了,尤其是車標識別,接近100%準確,而我只用了不到100張做訓練,而且無論演算法還是模型庫都不大,很適合做嵌入式,而且可以做到實時。2.對深度學習而言,速度/性能是個很大的問題,不知道題主的機器性能如何,以及對應的圖片解析度,是否要實時處理?我估計題主應該是那種實時高清識別,而且有可能是嵌入式設備,我們姑且認為視頻是直接從本機採集,不需要做解碼,即便如此,基於深度學習的運算量也是很高的,尤其是resnet這種,一般而言,層數越多越精準,運算量也會越高。高清情況下(機器視覺應用一般會1080P或更高),我個人認為單張圖片的識別時間會超過1秒,很難做實時。有朋友在256核的TX1上測試過標清的FAST RCNN,單張處理時間為0.6秒左右,我本人測試過googlenet,在一台阿里雲E5的機器上(無GPU),識別一張720p的圖片,估計約0.3 - 0.5秒左右(我的應用需要考慮網路傳輸的時間,沒打log,只是通過返回結果大致估計)。無論哪種情況,離每秒25幀的實時要求都差得太遠。
結論:1.嵌入式設備,個人不建議用深度學習,除非你能將密集運算部分移植到FPGA上,否則性能會是個很大的問題。2.高清和實時的應用,一般而言也不建議用深度學習,理由同上。3.對於區分度要求很高(種類很多,很相近),非實時的應用,基於後端或雲端的業務,有足夠的運算資源。特別適合用深度學習。4.能解決問題才是王道,傳統方式未必不可以。5.強烈建議題主關注一下,深度學習領域晶元相關技術的進展,比如谷歌的TPU,國內的寒武紀,以及輕量級框架mxnet等。當然可以,這也是 Industry 4.0 的發展方向。
將深度學習演算法應用到工業機器人上,拿來做商品或者零件分揀,大概可以分為「分類」和「撿起」兩步:(1) 對商品或者零件進行「分類」這個步驟非常適合使用深度學習,因為深度學習本質上就是用來做分類識別的。
(2) 將商品或者零件「成功撿起」
對於單個商品或者零件,要想將其成功撿起,關鍵是選擇合適的把持位置,通俗的將,就是機器人夾零件的哪個地方,可以使零件不下滑,從而成功地被撿起來。比較典型的演算法,一個是採用兩階段的深度學習演算法,第一階段通過小型的Neural Network,檢測出數個可以把持的位置,第二階段採用大型的Neural Network,對第一階段得到的各個把持位置候選進行評估,選擇最終的一個把持位置。這種演算法的成功率大概能達到65%。 (上圖顯示了第一個階段得到多個候選把持位置,第二階段得到最終把持位置)另一個是結合了深度學習和Heterogeneous Learning,將把持位置的信息(width, height, x, y, θ)以及把持該位置時成功撿起零件的成功率「Graspability」用來訓練模型,模型如下:
下圖表示的是把持位置的信息(width, height, x, y, θ)的定義,以及各把持位置對應的Graspability Label。下圖是Positive和Negetive教師信號的例子。
下圖是得到的最終把持位置,可以達到85%左右的成功率。對於多個商品和零件堆積在一起的情形,除了把持位置的選擇,還需要選擇合適的抓取順序,即先抓取哪一個零件,後抓取哪一個零件,這時可以採用Reinforcement Learning演算法,最終可以達到約90%的成功率,和熟練工人的水平相當。當然,要將這些成果大規模應用到工業流水線上,還需要考慮到正確率要求更高(一般是99.9%),以及速度要求更快等,目前許多改進就是圍繞滿足這兩點指標來進行的。可行,而且Google已經實現了,論文名稱是 Learning Hand-Eye Coordination for Robotic Grasping with Deep Learning and Large-Scale Data Collection
google有用dl的方法來做開門的機器手臂,但是在限定條件下 感覺 去用一些普通的方法會比dl的方法可靠性大點
個人覺得tensorflow的本質是一個工具,當然可以用來實現你的想法,至於你的想法是否對解決問題有效,需要實踐之後才知道。你說的零件識別並且機械手自動抓取已有論文研究,比如A Vision-based Robotic Grasping System Using Deep Learning for 3D Object Recognition and Pose Estimation,可以參考。
不邀自來。
利益相關:入行小一年,做CV/MV大概4-5年,現在在某機器視覺大廠工作。
其實我們都有想過把機器學習的相關知識融入到機器人抓取與組裝,但是缺點有如下幾個
1. 準確性堪憂,儘管 @jacky yang 先生所說,雖然簡單的物品識別率相當高,但是實際產線上各部件都是非常複雜的幾何形狀,而且可能因為操作員的操作問題,部件上的存在指紋等「雜訊」,而且隨機存在,這會對準確性造成很大的干擾。 而我剛閱讀了 @Flood Sung 所說的谷歌關於抓取的論文,失敗率達到10%,多次抓取達到了17%,這在產線上會被認為是失敗的應用。
2. 速度太慢,@jacky yang 先生所說,在256核的TX1上,單張1080P的處理速度才能達到0.6秒,由於廠商對於整體的產出又有嚴格的要求,總運算時間不能超過1秒是很常見的。而工業上機器視覺的圖像由於精度要求,很多都在200萬像素以上。所以現存的深度學習很難達到工業要求。
3. 成本問題, 首先,很多廠商由於保密原因並不希望自己的產線上有PC存在,所以很多的視覺產品都是基於嵌入式的。想用GPU,未免太奢侈了,另外發熱量也是一大問題。其次,凡是機器學習都需要訓練集,對於工業來說,訓練樣本就是部件,如果失敗就會被弄壞,這都是實打實的成本,廠家是不會允許你用1000個部件先去訓練的。
綜上,機器學習雖然很有前景,但是短時間內不會成為工業運用。現行的演算法簡單幾何距離或者互相關為基礎的匹配演算法比較多,效果不錯,而且相對簡單易懂。估計不太會有廠商想要看起來很時髦的黑箱。但是利用機器學習去做預處理,比如參數收斂,或者標定,這倒是一個不錯的想法。我在學習collision detection和motion planning的時候就想到了用深度學習來解決這個問題。
沒想到這個問題的答案里,居然有人指出現在google已經做了出來。
太震撼了
谷歌正用機器學習訓練機器人抓取隨機物體 | TechCrunch 中文版谷歌正用機器學習訓練機器人抓取隨機物體 | TechCrunch 中文版
肯定可以。但是看技術成本是否有這個必要。找一個切合的應用場景,非常有必要。
個人覺得不適合,因為。。。速度是個問題,工業上的產品對實時性要求很高,深度學習目前比較流行的幾個網路構,如alexnet,vgg,googlenet等,在英偉達titan上計算都不算快,應該說遠沒達到工業的實時要求,所以,等過幾年深度學習成熟一點或者硬體速度大幅飛躍後再用吧~~~不過個人覺得深度學習在工業界大幅推廣是遲早的事呢~~~現在研究DL的人太多了
當然可以,甚至直接從端到端搞 reinforcement learning 都沒問題,我們實驗室就有做這個。
參見End-to-End Training of Deep Visuomotor Policies: https://arxiv.org/abs/1504.00702Learning Hand-Eye Coordination for Robotic Grasping with Deep Learning and Large-Scale Data Collection: http://arxiv.org/abs/1603.02199Deep reinforcement learning 最近非常火,很多實驗室都在搞這個。這是我們的產品,視頻見我個人介紹
可以。人工智慧最大的用處就是用智能+機械做到八級鉗工能做到的,即智能取代匠心,讓人類在熟練度上浪費的時間被省略。從這一點講,你的方向沒有問題,將來人工智慧在工業應用的方向最好就是大量替代熟練工人的作用,節省高級技工和熟練工人的培訓成本。
完全可以,而且是未來的方向。舉個例子,完成讓機械手去端一杯水,在工業機器人等的應用中,是通過編程讓機械手去完成固定的幾個動作,操作固定工位規定位置的一些事件,這個是目前大規模應用的場景;可是如果想讓機械手像人一樣去識別隨便放在桌子上得一杯水,通過以前的編程方法去解決這個問題幾乎無法試下,而通過人工智慧,就「容易多了」人工智慧的核心是自主學習、不斷訓練和優化,機器手在不斷地學習的過程中,會確定用什麼樣的力道去拿起、如果識別水瓶在桌子的位置這一過程有點像小孩兒學走路
我覺得深度學習的演算法,僅僅用在物體識別上,不能和機械臂的特性結合起來,就浪費了。我曾經這樣想過,讓一個熟練工來訓練機械臂,經過千百遍的學習(足夠多的樣本),機械臂學習到了操作的過程,然後可以將人的過程重演出來。說白了,就是免去了人工編程的過程,這也是機器學習最根本的初衷,只不過你不要僅僅把機器視覺作為一個應用點,機械臂的感測器的特點就是力學方面的,而不是光學方面的,應該多想想怎麼把這些數據發揮出來。
理論上完全可行。實際上,需要大量數據。reinforcement learing要麼是在線學習,一邊操作一邊學習。要麼是離線學習,記錄下機械手那些動作是正確的,那些事錯誤的,用來學習模型。
實際的操作數據很難拿到,很多實驗室都用虛擬的環境,比如OpenAI開發的Gym等。但是虛擬環境不能完全待敵實際環境。
所以,問題的難點在於有一個逼真的操作環境,可以用來獲取數據。
可以
很多還活著的工廠已經用了初級的演算法來實現自動和定製化的生產
專門問過一些老闆,最多的答案是,機器不用發工資,不會鬧,大概這個意思。
機械臂主要是運動控制,這個是要重複定位精度的,工況是固定的,個人感覺短期來說深度學習在運動控制可靠性肯定不夠吧。
這不就是當下火熱的3c行業人機協作需求嗎,不好意思,我只能從市場層面理解。
問題的參照面應該就是那個跟人比圍棋的啥來著吧,今天腦子短路,一下子記不清名字了。當時就有人問為什麼要代手而不直接用機械手執子。
所以,我覺得肯定是可以的,也是未來的方向。瀉妖
首先回答,可以。
視覺是工業機器人的一個重要的發展方向,其應用包括視覺標定,工件識別,自動避障等等。基於視覺的機器人定位、抓取等其實技術上已經比較成熟,而且已經有一部分應用。可以參考日本的Mujin的案例:Mujin | Robot Intelligence for Industrial Automation至於Deep Learning在工業機器人上的應用,Flood Sung已經提到了Google。個人感覺題主所提的需求在Deep Learning中的應用不是特別難,但是屬於比較實用的,希望近幾年會有大的突破。謝邀。作為一個機械工程師,對於演算法和控制不是很了解,但是看描述,感覺可行性比較高。估計實現這個技術的成本也會很感人。
可以實現的,人工智慧深度學習的演算法不僅可以應用到工業的機械臂上,甚至有科研團隊嘗試在失去手臂患者的前臂中植入了電極,並通過20個觸點連接了3條主要的神經。通過對不同神經上不同觸點的刺激,讓截肢者產生真實的感覺。
推薦閱讀:
※對比全球,中國人工智慧技術在近兩年有什麼大的進展?
※機器學習中,序列問題是否都能轉變為回歸或者分類問題?
※深度強化學習訓練環境如何構建?
※如何評價 Science 上的最新研究:用神經網路解決量子多體問題?
TAG:人工智慧 | 神經網路 | 人工智慧演算法 | 深度學習DeepLearning | 強化學習ReinforcementLearning |