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