两天没有写东西,大家是不是把我忘了都~今天偶然看见了这个蓝色的小东西,顺手摸了摸,感觉要写点什么。
滴滴
但是我不想写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
不过我就真发现,我的桌子遵循熵增定律,永远都是这么乱