ncnn数据归一化和结果解析
《ncnn数据归一化和结果解析》
近两年都在使用ncnn进行工程化部署,这里记录一下ncnn进行数据归一化的运算,以及得到的结果ncnn::Mat如何解析。
Key Words:ncnn、数据归一化、结果解析
Beijing, 2020
Agile Pioneer
inference 数据标准化
// for color image
const float mean_vals[3] = {127.5f, 127.5f, 127.5f};
const float norm_vals[3] = {0.007843f, 0.007843f, 0.007843f};
// for gray image
const float mean_vals[1] = {0};
const float norm_vals[1] = {0.0078125f}; // 数据标准化乘以的系数// ncnn::Mat::PIXEL_GRAY 表示灰度图
// ncnn::Mat::PIXEL_BGR 表示输入的是bgr图
ncnn::Mat in = ncnn::Mat::from_pixels_resize(gray.data,ncnn::Mat::PIXEL_GRAY, img_w, img_h,target_width, target_height);
in.substract_mean_normalize(mean_vals, norm_vals);
ncnn结果接收
out.dims // ncnn::Mat 查看dims的个数# 不知道维度的情况下
// 方法一:
const float *src = (float *)out.data; // void* 转float*
vector<float> result(src, src + sizeof(src) / sizeof(float));
// 方法二(注意这里的数据类型(ncnn::Mat::PIXEL_GRAY)不容易确定,分割问题可以用这个来直接接收结果):
cv::Mat result;
out.to_pixels(result.data, ncnn::Mat::PIXEL_GRAY);# 知道维度的情况下
cv::Mat result = cv::Mat(1, 2, CV_32F, out.data);# ncnn::Mat 转为 float*
void ncnnMat2bytes(ncnn::Mat m, float *bytes) {//#pragma omp parallel forfor (int i = 0; i < m.c; i++) {const float *src = m.channel(i);// 把bytes 的某部分的头给dst, dst指针到后面把这部分开始的内容填满float *dst = bytes + (m.w * m.h) * i;memcpy(dst, src, m.w * m.h * sizeof(float));// memcpy (destination_data, source_data, space size)}
}# ncnn::Mat 转为 vector<Mat>, 可以理解为多channel的Mat对象
void ncnnMat2cvMat(ncnn::Mat m, vector<Mat> &vm, int rows, int cols) {for (int i = 0; i < m.c; i++) {float *src = m.channel(i);cv::Mat tempMat(rows, cols, CV_32F, src);vm.push_back(tempMat);}}
ncnn 输入debug
// 输入图片转为ncnn::Mat并处理之后,可以如下代码转为Mat对象进行debug
cv::Mat result;
out.to_pixels(result.data, ncnn::Mat::PIXEL_GRAY);
ncnn数据归一化和结果解析相关推荐
- 数据归一化 minmax_scale()函数解析
minmax_scale()函数是来自sklearn.preprocessing包中.sklearn.preprocessing.minmax_scale(X, feature_range=(0, 1 ...
- 【机器学习】 - 数据预处理之数据归一化(标准化)与实战分析,正则化
一.为什么要进行数据归一化 定义:把所有数据的特征都归到 [0,1] 之间 或 均值0方差1 的过程. 原则:样本的所有特征,在特征空间中,对样本的距离产生的影响是同级的: 问题:特征数字化后,由于 ...
- python 数据归一化_python 实现对数据集的归一化的方法(0-1之间)
python 实现对数据集的归一化的方法(0-1之间) 多数情况下,需要对数据集进行归一化处理,再对数据进行分析 #首先,引入两个库 ,numpy,sklearn from sklearn.prepr ...
- 为什么要进行数据归一化
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 原文:https://medium.com/@urvashillu ...
- R语言使用pheatmap绘制热力图(数据归一化、行列聚类、注释、文字角度、字体)
R语言使用pheatmap绘制热力图(数据归一化.行列聚类.注释.文字角度.字体) 目录
- 经典大数据面试题及解析
经典大数据面试题及解析 1.下列哪个属性是hdfs-site.xml中的配置? A.dfs.replication B.fs.defaultFS C.mapreduce.framework.name ...
- TensorFlow数据归一化
TensorFlow数据归一化 1. tf.nn.l2_normalize - l2_normalize(x, dim, epsilon=1e-12,name=None) - outp ...
- Xml 格式数据的生成和解析
相关阅读 XML约束 Xml 格式数据的生成和解析 XML解析器 什么是XML XML全称为Extensible Markup Language, 意思是可扩展的标记语言,它是 SGML(标准通用标记 ...
- sklearn 笔记:数据归一化(StandardScaler)
1 StandardScaler原理 去均值和方差归一化.且是针对每一个特征维度来做的,而不是针对样本. ,其中μ为所有样本数据的均值,σ为所有样本数据的标准差. 2 用sklearn 实现数据归一化 ...
最新文章
- 猫猫学IOS(四十)UI之核心动画_抖动效果_CAKeyframeAnimation
- [Redux/Mobx] 你有使用过redux-saga中间件吗?它是干什么的?
- vue概述、vue文件特点、vue核心思想、双向数据流、单文件、启动一个vue项目、声明式渲染
- python 数据库驱动开发实例_Python驱动概述
- eclipse添加源码的另外一种方法
- sql去重常用的基本方法
- 3DMM及eos人脸重建
- 编写matlab程序设计状态反馈增益阵,利用MATLAB设计状态观测器.pdf
- iOS不能显示英文音标问题
- 驱动人生教你佳能打印机驱动程序无法使用怎么解决
- 《崩坏3》评测:游戏设计中整体性和利用率分析(上)
- 关于苹果的iOS cercertificate的创建问题
- java丧尸危机全城爆发_伤尸危机-全城爆发BT版
- python爬取美女_知乎大神用Python爬取高颜值美女(Python爬虫+人脸检测+颜值检测)...
- 使用idb操作IndexedDB
- java内存 phd文件抓取,WAS 常常有heapdump.phd和javacore.txt文件产生
- 【HBZ分享】突破微信支付系统--单秒600QPS这个上限
- 计算机科学与技术专接本试题,计算机科学与技术专业专接本入学考试试题.doc...
- 私有云行业破局者 极空间家庭私有云Z4/Z2正式发布
- HCIP/HCIE RoutingSwitching / Datacom备考宝典系列(一)OSPF知识点全面总结
热门文章
- 收集的图像处理网站http://blog.csdn.net/chief1985/article/details/1898358
- 怎么查看php是否安装了symfony_为什么开发人员讨厌PHP???
- hibernate hql 关联查询_Hibernate【关联查询篇】
- vscode更改配置文件路径_VsCode的jsconfig配置文件说明详解
- java分布性_java大型分布系统性能优化实战教程
- java java se_Java SE 9:不可变集的工厂方法
- angularjs 实例_AngularJS过滤器示例教程
- [msi]获取msi安装包的ProductCode
- C++基础知识:C++语言中的表达式求值
- 基于OpenCV的计算机视觉入门(3)图像特效