SNPE输入数据和预处理(2)

一、简介
上一节中我们对数据处理部分的图像数据进行了大量的介绍,在SNPE中可以对其进行很多种的操作,接下来我们将继续对SNPE的数据处理进行深入的探讨

二、SNPE数据及预处理
输入图像:
除了转换模型外,SNPE还要求输入图像的格式可能与源框架不同。在Caffe中,图像显示为形状的张量(批处理x通道x高度x宽度),其中宽度是变化最快的尺寸,其次是高度,然后是颜色通道。这意味着第一个颜色通道的所有像素值在内存中是连续的,随后是下一个颜色通道的所有像素值,依此类推。 Caffe在训练过程中使用convert_imageset工具以这种格式准备图像。
在SNPE中,图像必须以形状的张量表示(批处理x高x宽x通道),其中通道是变化最快的尺寸。这意味着单个像素的所有颜色通道的值在内存中是连续的,接着是下一个像素的所有颜色值,依此类推。
如果批次尺寸大于1,则必须将每个批次的各个图像手动手动合并到一个文件中。
有关两个输入图像存储器布局的直观表示,请参见下图,推理过程中使用的通道顺序必须与训练过程中使用的通道顺序相同。 例如,在Caffe中训练的Imagenet模型需要BGR的频道顺序。

Imagenet模型的输入图像
Caffe中的Imagenet模型(例如bvlc_alexnet,bvlc_googlenet等)使用BGR图像(蓝色像素在绿色像素之前在红色像素之前)进行训练。 必须以相同的通道顺序为推理引擎提供像素值。
下图显示了Caffe和SNPE对于bvlc_alexnet模型所需的两种不同的输入图像内存布局。 输入图像尺寸为227x227。
在这里插入图片描述

MNIST模型的输入图像
Caffe中的MNIST模型(例如lenet)需要大小为28x28的单通道灰度图像。 请注意,虽然只有一个通道,但在Caffe(1x1x28x28)和SNPE(1x28x28x1)中仍需要4维输入张量。

均值减法
一些Caffe模型(例如bvlc_alexnet)是使用图像训练的,其中从每个输入图像中减去了平均图像。 该平均图像是训练集中所有图像的平均值。 Caffe在训练过程中通过convert_imageset工具生成此平均图像。
对于SNPE,如果您使用的网络经过了均值减法训练后的图像,则在将图像数据写入输入层之前必须手动减去均值图像。如果没有使用均值减法训练您的网络,则无需执行此步骤。

SNPE还可以自动执行均值减法,作为图像预处理的一部分。SNPE SDK在$ SNPE_ROOT / models / alexnet / scripts / create_alexnet_raws.py中包含一个脚本,该脚本可将jpg转换为原始格式,包括AlexNet的均值减法。 SNPE设置章节中的脚本对SDK中提供的示例图像执行此转换。

输出量
在Caffe和SNPE之间,示例的输出保持不变:对于批次中的每个图像,一维张量包含每个类的概率。对于Imagenet模型(例如bvlc_alexnet),这是1000个Imagenet类的大小为1000的张量。如果模型的批次尺寸大于1,则各个输出张量将沿着批次尺寸连接在一起。

多个预处理操作示例
图像预处理操作可以按上述顺序链接。
以下prototxt和转换器选项描述了按顺序进行以下预处理操作的网络:
1、尺寸为800x600的NV21图像被转换为尺寸为800x600的BGR图像
2、800x600 BGR图像按比例缩小为227x227 BGR图像
3、从227x227 BGR图片中减去恒定频道值。 从蓝色通道中减去104,从绿色通道中减去117,从红色通道中减去123。

三、总结
本篇文章中,我们对SNPE输入数据及预处理进行了简单的了解,下面我也将继续对SNPE的相关模块内容进行介绍。

python023基于Python旅游景点推荐系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
SNPE Docker是一个包含Snapdragon Neural Processing Engine SDK、Caffe和ADB的Docker镜像。你可以使用以下步骤来构建和运行SNPE Docker镜像: **步骤1:构建Docker镜像** 使用以下命令构建Docker镜像: ``` docker build -t snpe . ``` **步骤2:运行Docker容器** 使用以下命令来运行Docker容器: ``` docker run -it --privileged -v ~/Git/snpe-1.13.0:/root/snpe -v... ``` 在这个命令中,你需要根据你自己的需求来设置相关的选项和挂载卷。 **步骤3:安装SNPE环境** 根据需求,你可以使用Docker镜像中的SNPE环境。根据你的需求,你可以通过以下步骤来安装SNPE环境: 1. 登录到Docker仓库: ``` docker login cr.d.xiaomi.net -u org_46522 -p 46370020336295373ad3815abd6db118 ``` 2. 拉取SNPE镜像: ``` docker pull cr.d.xiaomi.net/ailab-vision-doc/snpe_dev:18.04 ``` 3. 开启一个后台Docker容器: ``` docker run -it --privileged -d --name snpe-1.50 -v /dev/bus/usb:/dev/bus/usb -v /home/:/home/ --net=host cr.d.xiaomi.net/ailab-vision-doc/snpe_dev:18.04 ``` **步骤4:使用SNPE** 在启动的容器中,你可以使用以下命令来使用SNPE: 1. 启动一个容器: ``` # 查看之前已经启动的容器 docker container ls -a # 61744239ab70是容器的ID docker container start 61744239ab70 # 开启一个Docker终端 docker exec -it 61744239ab7 /bin/bash ``` 2. 如果在Docker镜像中没有对应版本的SNPE目录,你可以从SNPE官网下载对应版本的SNPE,并将其拷贝到`/root/snpe/`目录中。 3. 使用SNPE进行模型转换和量化。具体的步骤可以参考官方文档或者SNPE的使用指南。 希望以上信息能够帮助到你。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值