從功能上來說,你這個應用非常適合采用深度學習,事實上,深度學習本質上就是用來做分類識別的,尤其是針對零件與零件之間,圖像上差異比較小的時候(比如你需要自動分揀A,B,C三種零件,但其形狀差別很小),更加適合用深度學習。
不過深度學習也存在它的問題:
訓練的樣本要足夠大,具體多大合適,要看你對圖像區分度的要求。如果樣本不是很充分的情況下,比如數千張或更少,其實也可以考慮用傳統方式,比如SVM。我用傳統方式做過寶馬車標,安全帽等的識別,準確度相當高了,尤其是車標識別,接近100%準確,而我只用了不到100張做訓練,而且無論算法還是模型庫都不大,很適合做嵌入式,而且可以做到實時。
對深度學習而言,速度/性能是個很大的問題,不知道題主的機器性能如何,以及對應的圖片分辨率,是否要實時處理?我估計題主應該是那種實時高清識別,而且有可能是嵌入式設備,我們姑且認為視頻是直接從本機采集,不需要做解碼,即便如此,基于深度學習的運算量也是很高的,尤其是resnet這種,一般而言,層數越多越精準,運算量也會越高。高清情況下(機器視覺應用一般會1080P或更高),我個人認為單張圖片的識別時間會超過1秒,很難做實時。有朋友在256核的TX1上測試過標清的FAST RCNN,單張處理時間為0.6秒左右,我本人測試過googlenet,在一臺阿里云E5的機器上(無GPU),識別一張720p的圖片,估計約0.3 - 0.5秒左右(我的應用需要考慮網絡傳輸的時間,沒打log,只是通過返回結果大致估計)。無論哪種情況,離每秒25幀的實時要求都差得太遠。
結論:
嵌入式設備,個人不建議用深度學習,除非你能將密集運算部分移植到FPGA上,否則性能會是個很大的問題。
高清和實時的應用,一般而言也不建議用深度學習,理由同上。
對于區分度要求很高(種類很多,很相近),非實時的應用,基于后端或云端的業務,有足夠的運算資源。特別適合用深度學習。
能解決問題才是王道,傳統方式未必不可以。
強烈建議題主關注一下,深度學習領域芯片相關技術的進展,比如谷歌的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%),以及速度要求更快等,目前許多改進就是圍繞滿足這兩點指標來進行的。
-
人工智能
+關注
關注
1804文章
48726瀏覽量
246638 -
深度學習
+關注
關注
73文章
5554瀏覽量
122494
原文標題:人工智能深度學習的算法可以應用到工業的機械臂上嗎?
文章出處:【微信號:gh_599f8b397756,微信公眾號:曼哈頓計劃】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
嵌入式和人工智能究竟是什么關系?
NPU在深度學習中的應用
人工智能、機器學習和深度學習存在什么區別

評論