归一化

opencv笔记(二十八)——OpenCV中矩阵的归一化

匆匆过客 提交于 2019-12-08 02:28:14
1. 归一化定义与作用 归一化就是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。首先归一化是为了后面数据处理的方便,其次是保证程序运行时收敛加快。归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在某个区间上是统计的坐标分布。归一化有同一、统一和合一的意思。 归一化的目的简而言之, 即归一化数据 。是使得没有可比性的数据变得具有可比性,同时又保持相比较的两个数据之间的相对关系,如大小关系;或是为了作图,原来很难在一张图上作出来,归一化后就可以很方便的给出图上的相对位置等。 图像处理中,图片像素点单通道值一般是[0-255]的unsigned char类型,将其转化到[0,1]之间,更方便计算,这就需要用到矩阵的归一化运算。 注 : normalize的原矩阵必须是单通道(src.channel==1) ,函数执行完,无论之前是否初始化结果矩阵,结果矩阵的大小和类型与原矩阵相同。 在使用机器学习算法的数据预处理阶段,归一化也是非常重要的一个步骤。例如在应用SVM之前,缩放是非常重要的。Sarle的神经网络FAQ的第二部分(1997)阐述了缩放的重要性,大多数注意事项也适用于SVM。缩放的最主要优点是能够避免大数值区间的属性过分支配了小数值区间的属性。另一个优点能避免计算过程中数值复杂度。因为关键值通常依赖特征向量的内积

OpenCV之图像归一化(normalize)

为君一笑 提交于 2019-12-08 02:27:44
什么图像归一化 通俗地讲就是将矩阵的值通过某种方式变到某一个区间内 图像归一化的作用 目前能理解的就是归一化到某个区间便于处理,希望高人可以指点 opencv文档中的介绍 C++: void normalize(InputArray src, InputOutputArray dst, double alpha=1, double beta=0, int norm_type=NORM_L2, int dtype=-1, InputArray mask=noArray() ) C++: void normalize(const SparseMat& src, SparseMat& dst, double alpha, int normType) Python: cv2.normalize(src[, dst[, alpha[, beta[, norm_type[, dtype[, mask]]]]]]) → dst Parameters: src – input array. dst – output array of the same size as src . alpha – norm value to normalize to or the lower range boundary in case of the range normalization. beta – upper

opencv中归一化函数cv2.normalize()的原理讲解

大兔子大兔子 提交于 2019-12-08 02:26:51
本篇文章参考博客: https://blog.csdn.net/kuweicai/article/details/78988886 功能:归一化函数 参数: Python: cv2.normalize(src[, dst[, alpha[, beta[, norm_type[, dtype[, mask]]]]]]) → dst src-输入数组。 dst-与SRC大小相同的输出数组。 α-范数值在范围归一化的情况下归一化到较低的范围边界。 β-上限范围在范围归一化的情况下;它不用于范数归一化。 范式-规范化类型(见下面的细节)。 dType——当输出为负时,输出数组具有与SRC相同的类型;否则,它具有与SRC相同的信道数和深度=CVH-MatthAsHead(DyType)。 面具-可选的操作面具。 这个函数提供了四种归一化方式,可根据需要选择以下四个参数,下面重点说下这四种归一化方式。 NORM_MINMAX:数组的数值被平移或缩放到一个指定的范围,线性归一化。 公式及说明: NORM_INF: 归一化数组的(切比雪夫距离)L∞范数(绝对值的最大值) 公式及说明: NORM_L1 : 归一化数组的(曼哈顿距离)L1-范数(绝对值的和) 公式及说明: NORM_L2: 归一化数组的(欧几里德距离)L2-范数 公式及说明: 来源: CSDN 作者: 益达888 链接: https:

OpenCV3:归一化函数介绍——normalize()

与世无争的帅哥 提交于 2019-12-08 02:25:40
1、函数的原型: void cv::normalize(InputArry src,InputOutputArray dst,double alpha=1,double beta=0,int norm_type=NORM_L2,int dtype=-1,InputArray mark=noArry()) 2.函数作用 归一化数据。该函数分为范围归一化与数据值归一化。(Normalizes the norm or value range of an array.) 3.参数说明 src 输入数组; dst 输出数组,数组的大小和原数组一致; alpha 1,用来规范值,2.规范范围,并且是下限;range normalization模式的最小值 beta 只用来规范范围并且是上限;range normalization模式的最大值,不用于norm normalization(范数归一化)模式。 norm_type 归一化选择的数学公式类型; dtype 当为负,输出在大小深度通道数都等于输入,当为正,输出只在深度与输如不同,不同的地方游dtype决定; mark 掩码。选择感兴趣区域,选定后只能对该区域进行操作。 4.归一化选择的数学公式类型介绍(norm_type) 设数组中原有{A1,A2,A3...An} NORM_L1: NORM_INF: NORM_L2: NORM

【CV】图像标准化与归一化

二次信任 提交于 2019-12-08 02:25:30
https://mp.weixin.qq.com/s/BH9TrDjuql0fcvuTQmTFWQ 使用深度学习在进行图像分类或者对象检测时候,首先需要对图像做数据预处理,最常见的对图像预处理方法有两种,正常白化处理又叫图像标准化处理,另外一种方法叫做归一化处理,下面就详细的说一下这两种处理方法。 一:图像标准化处理 标准化处理的公式如下: tensorflow中对图像标准化预处理的API函数如下: tf.image.per_image_standardization(image) - image 参数表示一个三维的张量(tensor) 分别对应图像高、宽、通道数目(height, width, channels) 函数返回处理以后的图像,大小与通道数目与原图像保持一致。 使用opencv+tensorflow对图像进行标准化处理的代码演示如下: 、 运行效果 解释 图像标准化是将数据通过去均值实现中心化的处理,根据凸优化理论与数据概率分布相关知识,数据中心化符合数据分布规律,更容易取得训练之后的泛化效果, 数据标准化是数据预处理的常见方法之一 二:图像归一化处理 图像归一化最常见的就是最大最小值归一化方法,公式如下: 基于OpenCV实现图像最大最小值归一化的代码演示如下: 原图像素值输出 归一化之后像素值: 解释 原图与归一化之后的运行结果完全一致

传输线基本理论

ε祈祈猫儿з 提交于 2019-12-06 22:01:30
1. 无耗传输线 低耗传输线的传播常数和特征阻抗可以认为线是无耗的而得到的很好第近似。 无耗传输线中传播常数β为 \[ \beta=\omega\sqrt{LC} \] 相速是 \[ v=\frac{\omega}{\beta}=\frac{1}{\sqrt{LC}} \] 波阻抗 \[ Z=\sqrt{\frac{\mu}{\epsilon}} \] 注意: 传播常数、波阻抗与无耗媒质中的平面波是相同的。 2. 端接负载的传输线 电压反射系数 \(\Gamma\) : \[ \Gamma=\frac{Z_L-Z_0}{Z_L+Z_0} \] 回波损耗(return loss, RL): 但负载失配时,不是所有来自源的功率都传给了负载 \[ RL=-20\log |\Gamma| dB \] 若负载与线是匹配的,则 \(\Gamma\) =0,而且线上电压幅值为常数。然而,当负载失配时,反射波的存在会导致驻波,这时线上的电压幅值不是常数,会沿线起伏。 驻波比: 可以定义为: \[ \rho=\frac{V_{max}}{V_{min}}=\frac{1+|\Gamma|}{1-|\Gamma|} \] 传输线的阻抗方程: \[ Z_{in}=Z_0\frac{Z_L+jZ_0tan\beta l}{Z_0+jZ_Ltan\beta l} \] 2.1 无耗传输线的特殊情况

K-近邻算法

喜你入骨 提交于 2019-12-06 15:26:14
K-近邻算法 👉 KNeighborsClassifier 原理 :    如果一个样本在 特征空间中的 k个值 (即特征空间中邻近)的 样本中的 大多数 属于某一个类别 , 则该样本也属于这个类别。也理解为:离谁最近,与谁一样。找K个最近的点 , 看这k个点中 , 类别最多的那个类别。    特别需要注意 的是 : 运行k-近邻算法之前,必须做标准化处理!!! K-近邻算法步骤 : 我们可以从 最近邻算法 , 来推演 k近邻算法, 其步骤是 : 计算已知类别数据集中的点与当前点之间的距离 按照距离递增次序排序 选取与当前距离最小的k个点 确定前k个点所在类别的出现频率 返回前k个点所在频率最高的类别作为当前点的预测分类 由此可知 , k近邻算法其实本质上并不是以最近的点为分类, 而是以最近的k个点的分类出现的概率最高为分类, 这点跟我们在spss逻辑回归中的思路是一致的。 k-近邻算法特点: 优点 简单好用, 容易理解, 精度高, 理论成熟, 既可以用来做分类也可以用来做回归; 可用于数值型数据和离散型数据; 训练时间复制为O(n); 无数据输入假定; 对异常值不敏感。 缺点 计算复杂性高; 空间复杂性高; 样本不平衡问题(即有些类别的样本数量很多, 而其他样本的数量很少); 一般数值很大的时候不用这个, 计算量太大。 但是单个样本数不能太少, 否则容易发生误分。

特征和分类器——《卷积神经网络与计算机视觉》读书笔记

若如初见. 提交于 2019-12-06 14:14:47
  特征提取和分类是典型计算机视觉系统的两个关键阶段。视觉系统的准确性、稳健性和效率很大程度上取决于图像特征和分类器的质量。特征提取方法可以分为两个不同的类别,即基于手工的方法和基于特征学习的方法。分类器可以分为两组,即浅层模型和深层模型。   特征是任何独特的方面或特性,用于解决与特定应用相关的计算任务。n个特征的组合可以表示为n维向量,称为特征向量。特征向量的质量取决于其区分不同类别的图像样本的能力。良好的特征应该是信息丰富的,不受噪声和一系列变换的影响,并且计算快速。   分类是现代计算机视觉和模式识别的核心。分类器的任务是使用特征向量对图像或感兴趣区域(ROI)划分类别。分类任务的困难程度取决于来自相同类别图像的特征值的可变性,以及相对于来自不同类别图像的特征值的差异性。但是,由于噪声(以阴影、遮挡、透视扭曲等形式),异常值(例如,“建筑”类别的图像可能包含人),模糊性(例如 ,相同的矩形形状可以对应于桌子或建筑物窗户),缺少标签,仅有小训练样本可用,以及训练数据样本中的正负覆盖的不平衡。因此,设计分类器做出决策是一项具有挑战性的任务。    传统特征描述符:传统(手工设计)特征提取方法分为两大类:全局和局部。全局特征提取方法定义了一组有效描述整个图像的全局特征,因此,形状细节被忽略。全局特征也不适用于识别部分遮挡的对象。另一方面,局部特征提取方法提取关键点周围的局部区域

标准化和归一化(综合)

假装没事ソ 提交于 2019-12-06 13:07:06
part1: 【转】https://blog.csdn.net/weixin_40165004/article/details/89080968 Weka数据预处理(一) 对于数据挖掘而言,我们往往仅关注实质性的挖掘算法,如分类、聚类、关联规则等,而忽视待挖掘数据的质量,但是高质量的数据才能产生高质量的挖掘结果,否则只有"Garbage in garbage out"了。保证待数据数据质量的重要一步就是数据预处理(Data Pre-Processing),在实际操作中,数据准备阶段往往能占用整个挖掘过程6~8成的时间。本文就weka工具中的数据预处理方法作一下介绍。 Weka的数据预处理又叫数据过滤,他们可以在weka.filters中找到。根据过滤算法的性质,可以分为有监督的(SupervisedFilter)和无监督的(UnsupervisedFilter)。对于前者,过滤器需要设置一个类属性,要考虑数据集中类的属性及其分布,以确定最佳的容器的数量和规模;而后者类的属性可以不存在。同时,这些过滤算法又可归结为基于属性的(attribute)和基于实例的(instance)。基于属性的方法主要是用于处理列,例如,添加或删除列;而基于实例的方法主要是用于处理行,例如,添加或删除行。 数据过滤主要解决以下问题(老生常谈的): 数据的缺失值处理、标准化、规范化和离散化处理。

简单的数据预处理和特征工程

烈酒焚心 提交于 2019-12-06 05:34:16
本文参考《数据科学家联盟》饼干文章。 一、无量纲化:最值归一化、均值方差归一化及sklearn中的Scaler 在量纲不同的情况下,不能反映样本中每一个特征的重要程度时,将需要使用归一化方法。 一般来说解决方法为 把所有的数据都映射到同一个尺度(量纲)上。 1、常用的数据归一化有两种: 最值归一化(normalization) : 把所有数据映射到0-1之间。最值归一化的使用范围是特征的分布具有明显边界的(分数0~100分、灰度0~255),受outlier的影响比较大 均值方差归一化(standardization): 把所有数据归一到均值为0方差为1的分布中。适用于数据中没有明显的边界,有可能存在极端数据值的情况. 2、sklearn中的Scaler 建模时要将数据集划分为训练数据集&测试数据集。 训练数据集进行归一化处理,需要计算出训练数据集的均值mean_train和方差std_train。 问题是:我们在对测试数据集进行归一化时,要计算测试数据的均值和方差么? 答案是否定的。在对测试数据集进行归一化时,仍然要使用训练数据集的均值train_mean和方差std_train。这是因为测试数据是模拟的真实环境,真实环境中可能无法得到均值和方差,对数据进行归一化。只能够使用公式 (x_test - mean_train) / std_train 并且,数据归一化也是算法的一部分