深度学习训练-详解图像数据标准化与归一化

使用深度学习在进行图像分类或者对象检测时候,首先需要对图像做数据预处理,最常见的对图像预处理方法有两种,正常白化处理又叫图像标准化处理,另外一种方法叫做归一化处理,下面就详细的说一下这两种处理方法。

一:图像标准化处理

标准化处理的公式如下:
tensorflow中对图像标准化预处理的API函数如下:

tf.image.per_image_standardization(image)

  1. image 参数表示一个三维的张量(tensor) 分别对应图像高、宽、通道数目(height, width, channels)
  2. 函数返回处理以后的图像,大小与通道数目与原图像保持一致。使用opencv+tensorflow对图像进行标准化处理的代码演示如下:
import tensorflow as tf
import cv2 as cv
image = cv.imread("D:/javaopencv/dahlia_4.jpg")
cv.imshow("input", image)
std_image = tf.image.per_image_standardization(image)
with tf.Session() as sess:
result = sess.run(std_image)
print(result)
cv.imshow("result", result)
cv.waitKey(0)
cv.destroyAllWindows()

运行结果:

解释
图像标准化是将数据通过去均值实现中心化的处理,根据凸优化理论与数据概率分布相关知识,数据中心化符合数据分布规律,更容易取得训练之后的泛化效果, 数据标准化是数据预处理的常见方法之一

二:图像归一化处理

归一化(Normalization):归一化的目标是找到某种映射关系,将原数据映射到[a,b]区间上。一般a,b会取[−1,1],[0,1]这些组合。

一般有两种应用场景:
1、把数变为(0, 1)之间的小数
2、把有量纲的数转化为无量纲的数

图像归一化最常见的就是最大最小值归一化方法,公式如下:

OpenCV中实现图像最大与最小值归一化的函数如下:

normalize(
src, // 表示输入图像, numpy类型
dst, // 表示归一化之后图像, numpy类型
alpha=None, // 归一化中低值 min
beta=None, // 归一化中的高值max
norm_type=None, // 归一化方法,选择最大最小值归一化 NORM_MINMAX,
dtype=None, // 归一化之后numpy数据类型,一般选择cv.CV_32F
mask=None //遮罩层,默认设置为None

基于OpenCV实现图像最大最小值归一化的代码演示如下:

image = cv.imread("D:/javaopencv/dahlia_4.jpg")
cv.imshow("input", image)
result = np.zeros(image.shape, dtype=np.float32)
cv.normalize(image, result, alpha=0, beta=1, norm_type=cv.NORM_MINMAX, dtype=cv.CV_32F)
print(result)
cv.imshow("norm", np.uint8(result*255.0))
cv.waitKey(0)
cv.destroyAllWindows()

原图像素值输出

归一化之后像素值:

解释
原图与归一化之后的运行结果完全一致,说明归一化不会改变图像本身的信息存储,但是通过打印出来的像素值可以发现,取值范围从0~255已经转化为0~1之间了,这个对于后续的神经网络或者卷积神经网络处理有很大的好处,tensorflow官方给出mnist数据集,全部采用了归一化之后的结果作为输入图像数据来演示神经网络与卷积神经网络。

归一化和标准化的区别:
归一化的缩放是“拍扁”统一到区间(仅由极值决定),而标准化的缩放是更加“弹性”和“动态”的,和整体样本的分布有很大的关系。

值得注意
归一化:缩放仅仅跟最大、最小值的差别有关。
标准化:缩放和每个点都有关系,通过方差(variance)体现出来。与归一化对比,标准化中所有数据点都有贡献(通过均值和标准差造成影响)。

为什么要标准化和归一化?
提升模型精度:归一化后,不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。
加速模型收敛:标准化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。如下图所示:

一文读懂图像数据的标准化与归一化相关推荐

  1. 一文读懂大数据平台——写给大数据开发初学者的话!

     一文读懂大数据平台--写给大数据开发初学者的话! 文|miao君 导读: 第一章:初识Hadoop 第二章:更高效的WordCount 第三章:把别处的数据搞到Hadoop上 第四章:把Hado ...

  2. 超级干货 :一文读懂大数据计算框架与平台(升级版)

    1. 前言 计算机的基本工作就是处理数据,包括磁盘文件中的数据,通过网络传输的数据流或数据包,数据库中的结构化数据等.随着互联网.物联网等技术得到越来越广泛的应用,数据规模不断增加,TB.PB量级成为 ...

  3. 一文读懂图像局部特征点检测算法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|新机器视觉 研究图像特征检测已经有一段时间了,图像特征检 ...

  4. 一文读懂图像三原色原理

    本书后面的篇幅将重点讲基于Matlab与FPGA的数字图像处理.但在正式开始之前,我们不得不再得巴拉巴拉一下,图像的成像原理.知其然要知其所以然,了解图像的成像原理,对于图像数据的组成,算法的处理以及 ...

  5. 深度分析|一文读懂银行数据架构体系

    上一篇讲了银行数据仓库的系统架构,这次给大家讲讲数据架构.如果一个系统,没有数据架构,那肯定是在吹牛. 狭义的数据仓库数据架构用来特指数据分布,广义的数据仓库数据架构还包括数据模型.数据标准和数据治理 ...

  6. 一文读懂:数据之旅的五大支柱

    "有些人发现,他们可以留下破坏性的反应,变得像地球一样有耐心,不受愤怒或恐惧之火的影响,像柱子一样不动摇,像清澈安静的水池一样不受干扰." --释伽牟尼 当你的数据团队因生产错误. ...

  7. 图像数据的标准化与归一化

    使用深度学习进行图像分类或者图像检测时,首先需要对图像进行数据预处理,常见的对图像的预处理有两种办法,一种是正常白化处理又叫图像标准化处理,另一种是归一化处理. 一.图像的标准化处理 图像的标准化处理 ...

  8. 摄像头图像分析目标物体大小位置_一文读懂图像定位及跟踪技术

    文 | 传感器技术 在科学技术日新月异的今天,人们对机器设备的智能性.自主性要求也越来越高,希望其完全替代人的角色,把人们从繁重.危险的工作任务中解脱出来,而能否像人一样具有感知周围环境的能力已成为设 ...

  9. 一文读懂电子数据取证

    电子取证的基本概念 科学的运用提取和证明方法,对从电子数据源提取的证据进行保护.收集.验证.鉴定.分析.解释.存档和出示,以有助于进一步的犯罪事件重构或帮助识别某些计划操作无关的非授权性活动. 在网络 ...

最新文章

  1. 给你一些点与线,只用动画就能看懂张量乘法,还能证明迹循环定理
  2. HDFS集中式缓存管理(Centralized Cache Management)
  3. mysql inner join where_详解mysql 使用left join添加where条件的问题分析
  4. 做个天气预报的小例子
  5. CSS——Fonts(字体)
  6. ts引入公共方法_angular 封装公共方法
  7. Docker 安装Centos,Tomcat,Jdk等相关的自定义(Dockerfile)镜像
  8. [转]hexo 博客开启 https (SSL 证书)
  9. Hive中外部表的alter与drop操作的最低权限要求
  10. 横向导出excel_万能转换:R图和统计表转成发表级的Word、PPT、Excel、HTML、Latex、矢量图等...
  11. MSP430学习小结2-程序主体结构安排及低功耗-转载
  12. git submodule详解
  13. 斐讯K1、K2、K2P 刷机、刷入Breed@重庆网吧电竞酒店维护小哥
  14. coon.php连接,PHP 连接 MySQL
  15. 毕业设计python数据分析_毕业设计:爬虫及数据分析
  16. Python len() 函数
  17. Java PPT转PDF 亲测无水印
  18. https防止注入_离子注入新法,将钢的耐磨性提高百倍
  19. 用jQuery--实现todolist待办事项清单
  20. ASP.NET动态网站开发培训-04.创建一个四则运算器

热门文章

  1. 阿里云 CDN 问题排查
  2. JDK19都出来了~是时候梳理清楚JDK的各个版本的特性了【JDK9特性讲解】
  3. cerr与cout心得
  4. sklearn降维算法1 - 降维思想与PCA实现
  5. 【BAT 面试题宝库附详尽答案解析】分布式事务实现原理
  6. 如何输入多组数据并输出每组数据的和?
  7. Object类型转换为Integer类型
  8. (ICLR2019)论文阅读-使用深度增强学习框架的基于场景先验知识的视觉语义导航
  9. mpx-小程序开发框架
  10. Python安装Github包,离线包和在线包