用于神经网络的图像数据预处理(Image Data Pre-Processing for Neural Networks)【翻译】

用于神经网络的图像数据预处理

原文:Image Data Pre-Processing for Neural Networks
作者Nikhil B 发表于2017-9-10

深度学习在过去的几年里已经真正成为主流。深度学习使用具有很多隐藏层(当今最先进的神经网络包含几十个隐藏层)并且需要大量训练数据的神经网络。这些模型在视觉、语音、语言处理等感知任务中,对于获得洞察力和接近人类水平的准确性特别有效。这个理论和数学基础是几十年前建立的。主要有两种现象促成了机器学习的兴起:a)大量可用的多领域数据集/训练样本;b)实际计算能力的提高和高效并行硬件的兴起。

在这里插入图片描述

建立一个有效的神经网络模型需要仔细考虑网络结构和输入数据格式。本文讨论后者。最常见的图像数据输入参数是图像数量、图像高度、图像宽度、通道数和每个像素的级别(具体的数值)。图像数据通常有三个通道,分别对应红,绿,蓝(RGB)三种不同的颜色,每个像素的级别通常是[0,255]范围内。我们采用下面的具体描述的图像进行讲解:

  • 图像数量是100
  • 图像的宽和高都是100
  • 3个通道每个像素的级别在[0–255]范围内

让我们来看一个流行的数据集。自然场景下的标注人脸(Labeled Faces in the Wild)是一个人脸图像数据库,最初是为研究人脸识别问题而设计的。该数据集包含从网络上收集的13000多张人脸图像,每个人脸都标注了照片中人的名字。数据集图像需要转换为上面描述的格式。下载完图像数据后,请注意图像是按人名排列在单独的子文件夹中的。我们需要将所有照片放入一个公共目录。让我们把前100个图像复制到一个工作目录中。这些数据包含了自然场景下人的脸,这些人脸采用不同的灯光设置和旋转方式拍摄,各种方式拍摄的人脸似乎集中在这个数据集中,但是情况并非如此。

在将这些人脸图像用于任何深度学习项目之前,我们可能希望执行许多预处理步骤。下面的段落列出了一些最常见的图像预处理步骤。

**均匀纵横比:**第一步是确保图像具有相同的大小和纵横比。大多数神经网络模型假设一个正方形的输入图像,这意味着每一个图像都需要检查是否是正方形,并适当地裁剪。裁剪可以选择图像的方形部分,如图所示。修剪时,我们通常关心中间的部分。

在这里插入图片描述

回到我们的数据集,随机采样一些图像,我们会看到数据集中的每个图片的尺寸都是250 x 250像素,这确实简化了工作。

在这里插入图片描述

图像样本:250 x 250

**图像缩放:**一旦我们确保所有图像都是方形的(或者是某些预定的纵横比),就可以去适当地缩放每个图像。我们决定用100像素的宽度和高度的图像。我们需要将每个图像的宽度和高度缩放0.4倍(100/250)。有各种各样的向上和向下缩放技术,我们通常使用库函数来实现这一点。

输入数据的平均、标准偏差:有时查看通过在所有训练样本中获取的每个像素平均值而获得的“平均图像”是有用的。观察这一点可以让我们深入了解图像中的一些底层结构。例如,数据集前100个图像的平均图像显示在左下方。很明显,这有一张松散的人脸的印象,让我们得出这样的结论:人脸与中心部分对齐,大小相当。如果我们不希望输入的数据具有这种固有的结构,我们可以选择扰动图像来增加数据。所有图像的标准偏差显示在右侧。更高的方差值显示的更白,因此我们看到,与中心相比,边界处的图片变化很大。

在这里插入图片描述

输入数据描述的平均值(左)和标准偏差(右)的图像

**规范化输入图像:**数据规范化是确保每个输入参数(本例中为像素)具有相似数据分布的重要步骤。这使得神经网络在训练时可以更快地收敛。数据标准化是通过从每个像素中减去平均值,然后将结果除以标准偏差来完成的。这些数据的分布类似于以零为中心的高斯曲线。对于输入图像,我们需要像素数为正数,因此我们可以选择在范围[0,1]或[0,255]内缩放规格化数据。对于我们的数据集示例,下面的蒙太奇表示规范化的数据。

在这里插入图片描述

**降维:**我们可以选择将RGB三通道变为单个灰度通道。减少其它维度能使得神经网络的性能保持不变,或者使训练问题更容易处理时,通常需要考虑减少其他维度。

在这里插入图片描述

**数据扩充:**另一种常见的预处理技术涉及到用现有图像的扰动版本来扩充现有数据集。缩放、旋转和其他仿射变换是典型的操作方式,这样做是为了使神经网络暴露在各种各样的变化中。这使得神经网络识别数据集中不需要的特征的可能性降低。

**结论:**我们了解了如何为模型定义基本图像数据参数,并介绍了所需的基本格式化步骤。这些基本的预处理步骤应该可以帮助您建立和运行一个简单的神经网络模型。

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值