技巧配景
現(xiàn)在,人工智能的高潮正在囊括各行各業(yè),而盤算力和數(shù)據(jù)、算法一同支持著人工智能的蓬勃成長。作為人工智能的一個(gè)主要分支, 深度進(jìn)修以其優(yōu)越的表示,愈來愈遭到業(yè)界的普遍存眷。深度進(jìn)修模子包括海量的參數(shù),須要壯大的盤算力停止年夜范圍的神經(jīng)收集矩陣運(yùn)算;而終端和物聯(lián)網(wǎng)裝備常常更多斟酌小體積和功耗的請求,以致于很難統(tǒng)籌知足高機(jī)能神經(jīng)收集盤算力和低功耗的請求。英特爾在客歲宣布的針對神經(jīng)收集矩陣運(yùn)算優(yōu)化的Movidius神經(jīng)元盤算棒 (NCS) 就很好的順應(yīng)了這一運(yùn)用范疇的需求。本文將向您引見基于 Movidius NCS 的ROS開辟包的功效及其應(yīng)用辦法,您可以輕松地將深度進(jìn)修技巧引入項(xiàng)目,和其他ROS節(jié)點(diǎn)無縫銜接,為您的機(jī)械人裝上人工智能的利器。
與Movidius神經(jīng)元盤算棒一同宣布的還有NCSDK和NCAppZoo,為用戶在Movidius神經(jīng)元盤算棒之上開辟各自的運(yùn)用供給了優(yōu)越的軟件支撐。
NCSDK今朝供給了C和Python兩種說話的編程的接口,平日運(yùn)用開辟者經(jīng)由過程挪用這些接口就可以操作NCS做深度進(jìn)修方面的圖象猜測任務(wù)。但是,在機(jī)械人研討范疇,人們普遍采取ROS框架,這一框架下的各個(gè)運(yùn)用平日采取新聞(message)和話題(topic)的方法停止通訊。在這類特別情形下,機(jī)械人運(yùn)用開辟者不能不對NCSDK做進(jìn)一步的封裝能力使其無縫任務(wù)在ROS體系中。針對NCSDK到ROS體系的連接成績,我們提出并完成了一種基于ROS體系的對NCSDK的封裝。該項(xiàng)目今朝曾經(jīng)在github下面開源(github地址)。
項(xiàng)目引見
1.軟件架構(gòu)設(shè)計(jì)
本項(xiàng)目主體由一個(gè)ROS宣布節(jié)點(diǎn)和一個(gè)ROS辦事節(jié)點(diǎn)構(gòu)成,以順應(yīng)分歧的運(yùn)用場景。ROS宣布節(jié)點(diǎn)用于處置來自相機(jī)的視頻流數(shù)據(jù),猜測成果以新聞(message)的情勢宣布到響應(yīng)的話題(topic)中,供下層運(yùn)用挪用。ROS辦事節(jié)點(diǎn)用于處置單張圖片數(shù)據(jù),猜測成果直接前往給下層花費(fèi)辦事的節(jié)點(diǎn)做進(jìn)一步處置。為了更好的演示這兩個(gè)節(jié)點(diǎn)的應(yīng)用辦法,我們還開辟了多個(gè)客戶端節(jié)點(diǎn),終究處置成果會以圖象的情勢展示出來。
今朝項(xiàng)目可以支撐物體分類和物體辨認(rèn)兩種運(yùn)用。物體分類可以采取分歧的CNN模子,例如,GoogleNet, AlexNet和SqueezeNet等。物體辨認(rèn)可以支撐TinyYolo, mobilenet-SSD等。
Figure 1. ROS NCS structure
2.運(yùn)轉(zhuǎn)前提
·運(yùn)轉(zhuǎn)Ubuntu16.04的x86_64盤算機(jī)
·ROS Kinetic
·Movidius神經(jīng)元盤算棒(NCS)
·NCSDK和NCAppZoo
·RGB相機(jī)
詳細(xì)情況設(shè)置裝備擺設(shè)可以參考這里。
3.編譯與裝置
下載源碼到當(dāng)?shù)豏OS任務(wù)區(qū),切換到最新宣布,編譯、裝置。
復(fù)制CNN標(biāo)簽文件到指定目次。
4.運(yùn)轉(zhuǎn)演示法式
今朝本項(xiàng)目可以支撐普通的USB camera和Intel RealSense camera。也許可用戶依據(jù)須要設(shè)置裝備擺設(shè)分歧的相機(jī)。以下以普通USB Camera和RealSense D400系列為例停止解釋。其他應(yīng)用方法請參考文檔。
·物體分類
視頻流處置
在一個(gè)終端啟動視頻流處置節(jié)點(diǎn):
在另外一個(gè)終端啟動demo節(jié)點(diǎn)顯示分類成果:
靜態(tài)圖象處置
在一個(gè)終端啟動圖象處置節(jié)點(diǎn):
在另外一個(gè)終端啟動demo節(jié)點(diǎn)顯示分類成果,例如:
ROS客戶端軟件的輸入后果以下圖所示.
·物體辨認(rèn)(不只給出物品分類,還給出物體地點(diǎn)圖象中的二維坐標(biāo))
視頻流處置
在一個(gè)終端啟動視頻流處置節(jié)點(diǎn):
在另外一個(gè)終端啟動demo節(jié)點(diǎn)顯示物體辨認(rèn)成果:
靜態(tài)圖象處置
在一個(gè)終端啟動圖象處置節(jié)點(diǎn):
在另外一個(gè)終端啟動demo節(jié)點(diǎn)顯示物體辨認(rèn)成果,例如:
ROS客戶端軟件的輸入后果以下圖所示.
運(yùn)用范疇
本項(xiàng)目供給的物體分類和物體檢測的才能,可以應(yīng)用于多種機(jī)械人應(yīng)用場景,例如:
1.3D物體辨認(rèn)與追蹤
基于曾經(jīng)辨認(rèn)出的2D物體信息,聯(lián)合深度傳感器收集到的深度信息,可以定位到物體在三維空間傍邊的地位,從而對物體停止3D辨認(rèn)與跟蹤。
2.機(jī)械人智能避障
傳統(tǒng)的機(jī)械人避障關(guān)于妨礙物不加以辨別,采用雷同的戰(zhàn)略。而基于物體辨認(rèn)的避障,可以或許依據(jù)辨認(rèn)出的物體信息,經(jīng)由過程指定分歧的戰(zhàn)略來應(yīng)對賡續(xù)變更的場景,使機(jī)械人避障加倍智能。
3.基于語義的同步定位與建圖(SLAM)
經(jīng)由過程將辨認(rèn)出的物體標(biāo)注在SLAM獲得的地圖上,可以極好地進(jìn)步地圖的可讀性。
瞻望
本項(xiàng)目今朝開辟到v0.5.0版本,基于Movidius NCSDK 的賡續(xù)演進(jìn),本產(chǎn)物在賡續(xù)迭代開辟傍邊。一方面,因?yàn)镽OS2絕對ROS具有更好的平安性和及時(shí)性,我們籌劃移植項(xiàng)目到ROS2中。另外一方面,深度進(jìn)修正派歷著疾速成長,所以我們愿望能支撐更多的CNN模子以順應(yīng)分歧的機(jī)械人應(yīng)用場景的須要。