技巧配景
现在,人工智能的高潮正在囊括各行各业,而盘算力和数据、算法一同支持着人工智能的蓬勃成长。作为人工智能的一个主要分支, 深度进修以其优越的表示,愈来愈遭到业界的普遍存眷。深度进修模子包括海量的参数,须要壮大的盘算力停止年夜范围的神经收集矩阵运算;而终端和物联网装备常常更多斟酌小体积和功耗的请求,以致于很难统筹知足高机能神经收集盘算力和低功耗的请求。英特尔在客岁宣布的针对神经收集矩阵运算优化的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模子以顺应分歧的机械人应用场景的须要。