前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >intel NCS 1代SDK

intel NCS 1代SDK

作者头像
云深无际
发布2022-06-15 16:12:09
5180
发布2022-06-15 16:12:09
举报
文章被收录于专栏:云深之无迹

两天没有写东西,大家是不是把我忘了都~今天偶然看见了这个蓝色的小东西,顺手摸了摸,感觉要写点什么。

滴滴

但是我不想写2代的了,我突然对这个东西有了一些新的想法,一代是不是也是这样的有趣,而且一代更加纯粹一点。

经过一番搜索:

代码语言:javascript
复制
https://movidius.github.io/ncsdk/ncapi/ncapi1/py_api/readme.html

一代的SDK

顺藤摸瓜:

代码语言:javascript
复制
https://github.com/movidius/ncsdk

摸到了SDK

笑死,一看就是Python搞了个接口

分支也简单

代码语言:javascript
复制
https://downloadmirror.intel.com/28192/eng/NCSDK-1.12.01.01.tar.gz

安装的时候也自己下载了这个,一会儿看

使用的时候插上就行

可以搭配各种设备

图形化的框架

NCS 由英特尔® Movidius™ Myriad™ 2 视觉处理单元 (VPU) 提供支持。 VPU 包括 4Gbits 的 LPDDR3 DRAM、成像和视觉加速器,以及 12 个称为 SHAVE 处理器的 VLIW 矢量处理器阵列。这些处理器用于通过并行运行部分神经网络来加速神经网络。

NCS 使用 VPU 上的 USB 接口连接到主机。USB3 接口可用于超高速 (5 Gbps) 或高速 (480 Mbps) 模式。 VPU 还具有运行定制固件的 SPARC 微处理器内核。首次插入 NCS 时,没有加载任何固件。VPU 从内部 ROM 启动并作为 USB 2.0 设备连接到主机。在主机上执行的应用程序使用神经计算 API (NCAPI) 与 VPU SOC 通信。当 NCAPI 初始化并打开设备时,来自神经计算 SDK (NCSDK) 的固件被加载到 NCS。此时,NCS 重置并重新连接到主机作为 USB 2.0 或 USB 3.0 设备(取决于主机类型)。它现在已准备好接受神经网络图形文件和执行推理的指令。 图形文件通过 NCAPI 加载到连接到 VPU 的 DRAM 中。LEON 处理器通过 USB 连接协调接收图形文件和图像以进行推理。它还解析图形文件并将内核调度到 SHAVE 神经计算加速器引擎。此外,LEON 处理器还负责监控芯片温度和对高温警报进行节流处理。神经网络的输出和相关统计数据通过 USB 连接发送回主机,并由主机应用程序通过 NCAPI 接收。

代码语言:javascript
复制
git clone -b ncsdk2 http://github.com/Movidius/ncsdk && cd ncsdk && make install

安装命令是,先clone,后转到文件夹,接着运行安装的脚本

先复制配置文件到tmp,接着下载这个文件,不管是啥都改名字

先建文件夹,再复制文件,转到这个文件

解压以后,删除NCSDK这个文件夹,接着再移动,复制文件,API是C和Py的

接着在新的文件夹里面继续安装

代码语言:javascript
复制
sudo cp ./uninstall-ncsdk.sh ../ncsdk/

卸载脚本

找这个脚本来卸载,第一次见擦屁股的

还要安装OpenCV,先测试

先测试平台,看看是不是树莓派,如果是而且要安装就输入Y,y

开始安装依赖了

接着下载opencv的库,解压以后接入目录执行安装脚本,接着安装

否者的话就安装

H(HOME)选项请求安全策略将HOME环境变量设置为密码数据库指定的目标用户的主目录(默认为root)。根据策略,这可能是默认行为。

同时也有卸载使用的脚本,很简单

这个就是Py的API

就这点东西

把它复制到一个app的目录,试一下

这样就差不多可以读了

而且文档里面也说了

其实是包装的C的库

就是偷偷下载库里面的so文件

安装的配置文件

一个是ARM的一个是X86的

这是设备情况的枚举

你看这个说明

日志的级别

API的状态

枚举所有的设备,接着就是把设备存到列表里面

此函数用于获取特定英特尔® Movidius™ NCS 设备的名称。典型用法是重复调用函数,从 index = 0 开始,每次递增索引,直到返回错误。这些连续调用将为您提供系统中所有设备的名称。

代码语言:javascript
复制
mvncStatus mvncGetDeviceName(int index, char* name, unsigned int nameSize);

函数原型

就是这样的

打印的结果

这里就是调用的C

这个函数也可以这样使用

感觉这个V1就没有什么用

看看别的

但是我没有找到

在这里

打开内部会跳转到这里

look

参数都是使用这实现的

可以转换的框架有这些

有一说一,这个神经网络不熟悉,我去补课。 不过这个prototxt是配置文件的意思。

大概是这样的,这个文件的更改是为了在计算棒上面使用

代码语言:javascript
复制
https://github.com/GilLevi/AgeGenderDeepLearning/

demo的位置

看看实现

代码先做了一些简单的预处理工作

对这个图像

先加载这个

就是这个文件

读取到以后进行转换

接着开始在小芯片上面运算

这里是设备的初始化,就是枚举设备,过滤设备

这里就比较迷惑了

看参数

接着执行这个

最后返回推理的结果和对象

我好菜,有点看不懂。

现在的二代更加的先进了

代码语言:javascript
复制
https://developer.nvidia.com/cuda-downloads

CUDA工具包

不过得装CUDA

不过我就真发现,我的桌子遵循熵增定律,永远都是这么乱

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档