背景
刚过去的2017年,人工智能(AI)毫无疑问的成为了最火爆的前沿领域。可以断定,2018年甚至往后的至少5年内,这种势头必将持续,并且节节攀高。什么是人工智能?百度百科做了很多很专业的解释,说得通俗易懂点,人工智能就是要让机器学会自主思考。
要做到这一步,其核心就是建立在大数据上的深度学习。大数据基本是依靠底蕴,底蕴越强的企业则越能提供机器学习的大而全、精而细的优质范本,而深度学习则依赖算法。打个通俗点的比方,你可以把人工智能看作是小孩养成记。决定小孩成长的高度,智商是一个因素,给小孩提供的成长环境(包括教学、资源等)则是另一个重要因素。对应过来,智商就如算法,成长环境等同于大数据,你能给机器提供多优秀的算法,多丰富优质的样本案例数据,就基本决定了机器在人工智能上达到的高度。
不同于传统观点认为的那样,“深度学习就一定需要高性能的GPU、TPU、FPGA等硬件平台,一定需要高速的网络带宽”,其实一个支持Linux系统的便携式硬件平台,如UP Board系列产品等,再加上一根Movidius神经计算棒便可以为那些想入门人工智能领域的学生、从业者提供一种边缘计算的深度学习可行性,当然,要是有摄像头等外设那无疑是锦上添花。
上手使用
都说耳听为虚,眼见为实,爱板网测评工程师对用UP Squared + 神经计算棒搭建的硬件平台进行了专业的测评。
硬件平台搭建:
1),1根神经计算棒(Intel MovidiusNeural Compute Stick,为方便,下文简称NCS)
2),1个搭载Ubuntu16.04系统版本的硬件平台-UPSquared
UP系列之UP Squared+ Intel神经计算棒
UP Squared搭载USB3.0,与NCS上的USB3.0接口搭配使用非常合适,能实现较高的传输速率(USB3.0 5Gbps VSUSB2.0高速480Mbps),在模型推理数据很大的情况下,UPSquared凭借高性能和低功耗特点的Intel* 奔腾*、赛扬* CPU和4GB/8GB LPDDR4及32GB/64GB/128GBeMMC使其优势显而易见。
软件开发包:
· Intel Movidius Neural Compute SDK(NCSDK)
· Neural Compute Application Zoo (NC App Zoo)
在使用UP Squarded搭建硬件平台时还有个小插曲,原本想图省事,直接使用UP Squared中的Ubilinux系统,不过在安装的时候发现官方提供的SDK不支持这个系统版本(如下图所示),无奈还是按照官方要求老老实实使用指定的Ubuntu16.04版本。
在Ubuntu16.04系统中,打开命令终端窗口,使用git获取NCSDK,如果初次安装使用Ubuntu 16.04系统,还需要你安装git工具,这里不再啰嗦安装流程了,基本用下面的套路就可。
· sudo apt update
· sudo apt-getinstall git
· git clonehttps://github.com/movidius/ncsdk.git
· cd ncsdk
· make install
· make examples
可以看到,NCS配套的SDK中已经集成了一些网络模型,例如GoogLeNet, AlexNet,SqueezeNet等,可以直接拿来使用,开发者也可以使用自己训练的网络模型,只要这些网络模型与NCS支持的网络层匹配,当然,这要求本身有深度学习模型开发的基础了。
下面就以一个实例来了解下NCS如何加速推理工作的,在我们平时的应用中,也有不少开发者直接采用像树莓派等开源硬件平台套上CNN模型做图像识别等功能,但是会发现占用大量的CPU资源,CPU处于负荷状态且识别过程比较慢,如果使用NCS又会如何呢?笔者随意在百度上搜索了几张动物的图片进行识别测试。
因为网络模型比较多,这里选取了Alexnet的模型做修改。
修改run.py文件中识别图片路径。
第一张图片识别结果:
第二张图片识别结果:
第三张图片识别结果:
第四张图片识别结果:
可以发现,在识别是什么物种的时候还是非常准确的,至少知道了是猫、狗、马、虎,但是在具体是什么物种中的什么类型就难说了。毕竟,即便是一个人,不了解这个物种,你也不知道它具体属于华南虎还是东北虎。其中有一点需要注意的,除了第一张图片属于正面照,其它几张图片都是侧面照,从识别的结果判断也不难发现,侧面照识别的难度要远胜于正面照,当然也可能是样本有限的缘故。不过,这个模型至少应证了一件事,在有NCS加持的情况下,普通计算机在识别图像的时候确实已经超过了人。其它例程在本文就不演示了。
小结
Intel Movidius神经计算棒(NCS)确实是一个不错的深度学习开发工具,可以帮助开发者分析、调试、验证神经网络,并为深度学习做推理加速,其主要优势在于开发和优化AI的离线应用。UP Squared + NCS的组合已经让笔者见识到了深度学习在图像识别领域中的优势,NCS神经计算棒结合Intel提供的NCSDK组合又能让开发者轻松入门AI,一句话,其实入门AI并没有想象的那么难,您欠缺的只是一个平台。
刚过去的2017年,人工智能(AI)毫无疑问的成为了最火爆的前沿领域。可以断定,2018年甚至往后的至少5年内,这种势头必将持续,并且节节攀高。什么是人工智能?百度百科做了很多很专业的解释,说得通俗易懂点,人工智能就是要让机器学会自主思考。
要做到这一步,其核心就是建立在大数据上的深度学习。大数据基本是依靠底蕴,底蕴越强的企业则越能提供机器学习的大而全、精而细的优质范本,而深度学习则依赖算法。打个通俗点的比方,你可以把人工智能看作是小孩养成记。决定小孩成长的高度,智商是一个因素,给小孩提供的成长环境(包括教学、资源等)则是另一个重要因素。对应过来,智商就如算法,成长环境等同于大数据,你能给机器提供多优秀的算法,多丰富优质的样本案例数据,就基本决定了机器在人工智能上达到的高度。
不同于传统观点认为的那样,“深度学习就一定需要高性能的GPU、TPU、FPGA等硬件平台,一定需要高速的网络带宽”,其实一个支持Linux系统的便携式硬件平台,如UP Board系列产品等,再加上一根Movidius神经计算棒便可以为那些想入门人工智能领域的学生、从业者提供一种边缘计算的深度学习可行性,当然,要是有摄像头等外设那无疑是锦上添花。
上手使用
都说耳听为虚,眼见为实,爱板网测评工程师对用UP Squared + 神经计算棒搭建的硬件平台进行了专业的测评。
硬件平台搭建:
1),1根神经计算棒(Intel MovidiusNeural Compute Stick,为方便,下文简称NCS)
2),1个搭载Ubuntu16.04系统版本的硬件平台-UPSquared
UP系列之UP Squared+ Intel神经计算棒
UP Squared搭载USB3.0,与NCS上的USB3.0接口搭配使用非常合适,能实现较高的传输速率(USB3.0 5Gbps VSUSB2.0高速480Mbps),在模型推理数据很大的情况下,UPSquared凭借高性能和低功耗特点的Intel* 奔腾*、赛扬* CPU和4GB/8GB LPDDR4及32GB/64GB/128GBeMMC使其优势显而易见。
软件开发包:
· Intel Movidius Neural Compute SDK(NCSDK)
· Neural Compute Application Zoo (NC App Zoo)
在使用UP Squarded搭建硬件平台时还有个小插曲,原本想图省事,直接使用UP Squared中的Ubilinux系统,不过在安装的时候发现官方提供的SDK不支持这个系统版本(如下图所示),无奈还是按照官方要求老老实实使用指定的Ubuntu16.04版本。
在Ubuntu16.04系统中,打开命令终端窗口,使用git获取NCSDK,如果初次安装使用Ubuntu 16.04系统,还需要你安装git工具,这里不再啰嗦安装流程了,基本用下面的套路就可。
· sudo apt update
· sudo apt-getinstall git
· git clonehttps://github.com/movidius/ncsdk.git
· cd ncsdk
· make install
· make examples
可以看到,NCS配套的SDK中已经集成了一些网络模型,例如GoogLeNet, AlexNet,SqueezeNet等,可以直接拿来使用,开发者也可以使用自己训练的网络模型,只要这些网络模型与NCS支持的网络层匹配,当然,这要求本身有深度学习模型开发的基础了。
下面就以一个实例来了解下NCS如何加速推理工作的,在我们平时的应用中,也有不少开发者直接采用像树莓派等开源硬件平台套上CNN模型做图像识别等功能,但是会发现占用大量的CPU资源,CPU处于负荷状态且识别过程比较慢,如果使用NCS又会如何呢?笔者随意在百度上搜索了几张动物的图片进行识别测试。
因为网络模型比较多,这里选取了Alexnet的模型做修改。
修改run.py文件中识别图片路径。
第一张图片识别结果:
第二张图片识别结果:
第三张图片识别结果:
第四张图片识别结果:
可以发现,在识别是什么物种的时候还是非常准确的,至少知道了是猫、狗、马、虎,但是在具体是什么物种中的什么类型就难说了。毕竟,即便是一个人,不了解这个物种,你也不知道它具体属于华南虎还是东北虎。其中有一点需要注意的,除了第一张图片属于正面照,其它几张图片都是侧面照,从识别的结果判断也不难发现,侧面照识别的难度要远胜于正面照,当然也可能是样本有限的缘故。不过,这个模型至少应证了一件事,在有NCS加持的情况下,普通计算机在识别图像的时候确实已经超过了人。其它例程在本文就不演示了。
小结
Intel Movidius神经计算棒(NCS)确实是一个不错的深度学习开发工具,可以帮助开发者分析、调试、验证神经网络,并为深度学习做推理加速,其主要优势在于开发和优化AI的离线应用。UP Squared + NCS的组合已经让笔者见识到了深度学习在图像识别领域中的优势,NCS神经计算棒结合Intel提供的NCSDK组合又能让开发者轻松入门AI,一句话,其实入门AI并没有想象的那么难,您欠缺的只是一个平台。