基于Intel神經(jīng)計算棒NCS2的智能機(jī)器手臂之視覺系統(tǒng)方案
英特爾NCS 2由最新一代的英特爾VPU(視覺處理單元)支持–英特爾Movidius Myriad X VPU。這是第一個具有神經(jīng)計算引擎的VPU,可提供額外的性能。諸如Caffe,Tensor Flow或MXNet之類的深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)可以與NCS2上的OpenVINO工具包集成。這些機(jī)器學(xué)習(xí)框架針對全新的深度神經(jīng)網(wǎng)絡(luò)(DNN)推理引擎進(jìn)行了優(yōu)化,該引擎提供的性能是前一代的八倍。
借助電腦和Intel NCS2,開發(fā)人員可以啟動其AI和計算機(jī)視覺應(yīng)用的開發(fā),并在幾分鐘內(nèi)執(zhí)行。英特爾NCS2在標(biāo)準(zhǔn)USB 3.0上運行,不需要其他硬體,從而使用戶能夠無縫轉(zhuǎn)換由電腦訓(xùn)練好的模型,然后將其部署到各種邊緣設(shè)備而不需連網(wǎng)或連云。無論是開發(fā)智能相機(jī),具有手勢識別功能的無人機(jī),工業(yè)機(jī)器人,還是下一代智能家居設(shè)備,英特爾神經(jīng)計算棒2都能為開發(fā)人員提供更快原型所需的功能。
智能機(jī)器手臂之視覺系統(tǒng)方案
接下來介紹這有趣的智能機(jī)器手臂之視覺系統(tǒng)方案,本方案是由許哲豪 Jack 開發(fā)的。Jack 是幫忙Intel 與Sertek 推廣Intel OpenVINO 與Intel NCS2 的專家。如果大大通的好朋友們,對AI 的應(yīng)用與開發(fā)有興趣可以到Jack 的網(wǎng)站http://omnixri.blogspot.com/ 在這里可以挖到很多寶喔。
方案目標(biāo)
本方案希望透過對象(小蕃茄)標(biāo)注、訓(xùn)練、推論(偵測)及深度資訊整合的框架及工作流程來讓讀者了解AI 應(yīng)用開發(fā)的流程,解決自動計算小蕃茄(水果)空間位置(XYZ),利用深度感測器Intel RealSense D435(以下簡稱D435)及神經(jīng)運算棒二代Intel Neural Compute Stick 2(以下簡稱NCS2)加上開源視覺推論及神經(jīng)網(wǎng)路優(yōu)化工具包Intel OpenVINO (自帶簡化版OpenCV 3.4.1)來說明與實作一下“智能機(jī)器手臂的視覺系統(tǒng)”。
本方案主要是利用D435擷取到的彩色影像結(jié)合深度學(xué)習(xí)的對象定位算法YOLOv3找到水果位置(X,Y),當(dāng)CPU算力不足時還可使用Intel GPU或VPU(NCS2)加速計算,最后再加上D435擷取到的深度影像所對應(yīng)位置的深度(Z)資訊,未來就可以讓機(jī)器手臂正確地伸到正確空間位置(XYZ)夾取及摘取(剪切)水果了。
YOLOv3訓(xùn)練小蕃茄影像
本方案主要是以小蕃茄做為機(jī)械手臂視覺系統(tǒng)的模擬采收對象,但是一般常見開放資料集(如ImageNet, MS COCO)都沒有合適的,所以只好自己收集、標(biāo)注資料集。由于撰寫本文時非生產(chǎn)季節(jié)加上沒有合作的伙伴可以提供實際農(nóng)場取像,于是只好上網(wǎng)買了一串塑膠制的小蕃茄,外觀看起來非常逼真,作為本次實驗的對象。
本次實驗取像及測試的環(huán)境如圖1所示。筆電上預(yù)先裝好RealSense SDK及OpenVINO SDK,并插入神經(jīng)運算棒(Intel NCS 2)作為加速計算用。RealSense D435插入筆電的USB 3.0埠(不支援USB 2.0),小蕃茄距離D435約30公分,分別對小蕃茄正面和背面取像作為樣本。為了快速取得大量樣本,令攝影機(jī)每隔10個影格(0.33秒)拍一張照,拍攝期間以手移動小蕃茄位置及角度,以獲得更多樣性的樣本。
圖1 取像及測試工作環(huán)境示意圖(OmniXRI整理制作)
為了節(jié)省后續(xù)標(biāo)注及訓(xùn)練時間,所以只取得正面92張,背面79張,合計171張樣本影像。當(dāng)然這樣的數(shù)量對深度學(xué)習(xí)的訓(xùn)練是非常不夠的,這里只是為了說明工作流程,所以暫時忽略后續(xù)訓(xùn)練及偵測正確性的高低。由于如何標(biāo)注、訓(xùn)練資料集的工作步驟頗多,所以請直接參考【AI_Column】如何以YOLOv3訓(xùn)練自己的資料集─以小蕃茄為例[10]。
經(jīng)初步測試后,正確率實在有點糟糕,可能是小蕃茄(待偵測對象)重疊的太嚴(yán)重且訓(xùn)練及驗證集的數(shù)量太少,同時又沒有利用資料擴(kuò)增手段改善。因此只能先用訓(xùn)練集來充當(dāng)測試集,當(dāng)然這只是為了方便解釋后面的工作流程,一般正常情況下是絕不允許拿訓(xùn)練集或驗證集來測試的,因為這樣很容易落入過擬合區(qū)間造成正確率會異常飆高的問題。
若先排除上述過擬合問題,測試集被框到的小蕃茄數(shù)量明顯比實際少很多,且很容易出現(xiàn)過大或過小的框,所以就在程序中加入長寬尺寸及比例來限制不正常的對象被偵測到。經(jīng)過限制后被框到的小蕃茄位置及尺寸大致都還算正確,可是置信度高低差很多,有些甚至低到0.1(10%)以下,所以只好將置信度的門檻值設(shè)低一些,才不致于找不到任何對象,但缺點就是誤判的機(jī)率就增高了。
至于正面及反面何者偵測較為正確,正面會辨識率略高于反面,猜想可能是綠色的蒂頭沒有很確實被訓(xùn)練到吧?另外雖然標(biāo)注時已針對遮蔽小于1/2的小蕃茄都有加以標(biāo)注,但實際上辨識出來的結(jié)果仍以形狀較完整的被偵測到的機(jī)率較高。如圖2即是小蕃茄在正面及反面以O(shè)penVINO?執(zhí)行YOLOv3的偵測結(jié)果。而圖3及圖4分別是原始影像及對象偵測結(jié)果影像動畫GIF檔示意檔,完整171張版動畫GIF檔請參考[11]。
圖2 小蕃茄偵測結(jié)果影像,左:正面,右:反面。(OmniXRI整理制作)
圖3 小蕃茄原始影像檔(OmniXRI整理制作)
圖4 小蕃茄偵測結(jié)果影像檔(OmniXRI整理制作)
對象偵測加深度影像整合測試
經(jīng)過前面的努力后終于可以進(jìn)到最后的整合階段了,透過OpenVINO?執(zhí)行YOLOv3對象偵測功能并正確找出數(shù)個小蕃茄位置后,接下來就要開始判定那個小蕃茄優(yōu)先采收。一般農(nóng)民會從最靠近自己或最外層的開始采收,換一個說法就是距離最近的,此時RealSense D435的深度影像功能就派上用場了。不過事情有這么簡單嗎?
“李組長眉頭一皺,發(fā)覺案情并不單純”,從圖5中可看出有幾個問題:
深度攝影機(jī)的視野略大于彩色攝影機(jī)一些,導(dǎo)致小蕃茄在二組影像中的位置及尺寸也略有不同。
深度影像并不是很完整,有些破碎,尤其在對象邊緣更是嚴(yán)重,甚至有陰影區(qū)(深度呈現(xiàn)黑色區(qū)域)無法計算出深度問題。
小蕃茄被框到的區(qū)域像素很多,就算對應(yīng)到正確的位置,深度資料不只一筆要以何者為主。
小蕃茄本身直徑約10~20mm,而D435能穩(wěn)定表達(dá)的深度差大約5~10mm(視外在光源及攝像品質(zhì)而定),所以不同深度或相鄰小蕃茄可能存在極接近甚至相同深度值,導(dǎo)致同時有數(shù)個小蕃茄產(chǎn)生相同采收順序。
圖5 RealSense D435深度影像與原始彩色影像比對。(OmniXRI整理制作)
從上述問題大概可知要讓機(jī)器手臂視覺系統(tǒng)穩(wěn)定辨識出待抓取物件的距離真的不簡單,這里并不給出唯一解法,只是提供一些可能的做法,其它的留待有興趣的朋友繼續(xù)研究改善,以下就提供一些個人解題思考方向。
1.首先是視野問題,若被檢出物件較大(是指占畫面比例而非實際外觀尺寸)則可忽略此一問題,但待檢物像小蕃茄尺寸時,則可能需要作簡單視野校正工作,令深度影像放大、平移一些以符合彩色影像位置,如此就可取得較正確深度資訊。
2.再來深度分辨率不足問題可能不易克服,這屬于硬體限制,但對于更穩(wěn)定檢出部分則可以依實際現(xiàn)場狀況微調(diào)RealSense D435的Laser發(fā)射功率。當(dāng)攝影機(jī)太靠近待測物時,若Laser發(fā)射功率太強(qiáng)則會造成紅外線影像不是有一堆細(xì)小光點,而是會變成一片慘白,那會造成不易計算正確視差(深度)。
3.關(guān)于要以何點的深度(距離)做為機(jī)械臂向前伸的距離,最簡單的想法就是以框的中心點作為基準(zhǔn)即可,但不幸的是這個點可能沒有值或者值受到干擾而和實際有很大差距。如果容許較長的計算時間,則可考慮把框內(nèi)所有深度值排序后取中位數(shù)或者以高斯分布(中間優(yōu)先權(quán)越重,越往外側(cè)權(quán)重越低)計算深度值均值。當(dāng)然若考慮計算時間,則可在框中心取一小塊(如10×10點)直接取平均值亦可。
4.最后是遇到深度相同問題時,則建議從對象框中心較靠外側(cè)、上方的小蕃茄開始采收,如此較不會發(fā)生,下方小蕃茄被其它擋住,機(jī)械爪不易進(jìn)入剪切問題。
本方案引用作者:“歐尼克斯實境互動工作室 作者:Jack Hsu”
場景應(yīng)用圖
?展示板照片
![](http://editerupload.eepw.com.cn/202405/1716183729667749.jpg)
?方案方塊圖
![](http://editerupload.eepw.com.cn/202405/1716183730364064.jpg)
?核心技術(shù)優(yōu)勢
1. Intel RealSense D435 camera a. 低成本的3D雙目深度相機(jī) b. 提供完整SDK 可以快速與系統(tǒng)整合 c. 可快速掃瞄,提供點云資訊 d. 可透過ROS整合開發(fā)自主創(chuàng)新功能 e. 智能化3D物件辨識 2. Intel OpenVino Toolkit a. 可最佳化訓(xùn)練好的模型 b. 支援業(yè)界、學(xué)界常用的訓(xùn)練框架 c. 可快速部屬到intel 的硬體平臺如CPU、GPU、VPU、FPGA d. 提供常用的預(yù)訓(xùn)練模型如SSD、YOLO 等 e. 提供C++ 與Python 的應(yīng)用范例,縮短程式開發(fā)周期 3. Intel? Neural Compute Stick 2 (Intel? NCS2) a. 在英特爾?Movidius?Myriad?X視覺處理單元(VPU)上提供卓越的每瓦每美元效能進(jìn)行構(gòu)建和擴(kuò)展 b. 支援Windows?10,Ubuntu *或macOS *上快速開發(fā) c. 在通用框架和開箱即用的范例應(yīng)用程式上進(jìn)行開發(fā) d. 在不需連云情況下進(jìn)行操作 e. 在低成本的邊緣設(shè)備(例如Raspberry Pi * 3和其他ARM *主機(jī)設(shè)備)端開發(fā)原型
?方案規(guī)格
1. 3D相機(jī): Intel RealSense D435 Camera 2. 作業(yè)系統(tǒng): Windows 10 3. Intel NUC Rugged Board with Core i3/i5 Processor 4. AI 推論套件: Intel OpenVino Toolkit 2020.03 5. 記憶體: 4GB 以上 6. 傳輸界面: USB 3.0 7. 神經(jīng)計算棒: Intel? Neural Compute Stick 2 (Intel? NCS2)
評論