资源技术动态图像分类基础指南

图像分类基础指南

2019-10-26 | |  103 |   0

如果你是在Jian-Yang展示他的热狗分类app时,才第一次听说图像分类算法,那就来看看这篇文章吧。


01.png


手机可以在几秒内通过拍照告诉我们,我们正在看的是什么,神奇吧?我们好似正生活在一个反乌托邦未来——只要我们上传照片到Facebook相册,Facbook就可以在照片中标记出我们的朋友。事实上,这是通过以卷积神经网络闻名的图像处理方法带给我们的。


高级图像处理


我们之所以能在iPad上看高分辨率电影,是因为iPad内部包含芯片,它可以快速输入输出0和1。所有的电脑,手机和平板实际上都是在处理0和1。


为了避免在如何处理0和1上耗费太多笔墨,我们仅聊聊计算机如何处理数字来完成任务。


以数字形式存储图像

我们在电脑中看到的图像是一组像素,当尝试过度放大低分辨率的图片,想象你会看到什么。最后,你会发现是每个小方块组成一张像素化的图片。

1572035401875091.png


左侧是一张高分辨率的小松饼图片。右侧是降低分辨率后的结果图,通过它可以传达出拥有不同颜色像素的图片是如何存储的。


每个像素方块在你的计算机中代表了红,绿,蓝颜色的强度值。

1572035436459472.png

放大小松饼图片的5x5像素块,其中的值表示颜色强度值(注意:值越大代表颜色越浅)


一旦你理解一张图片如何分解为3张包含值的网格,那我们的电脑是如何用图片处理方程就像它们如何用数字处理方程一样易于理解了。


数据从哪里来


接下来了解如何构建预测模型,所有的机器学习都是从数据开始。如果你想构建一个模型来区分图片是否是热狗,你需要给电脑输入数以千计的热狗照片和非热狗照片来训练模型。电脑用矩阵形式(每行像素数*每列像素数*颜色通道数)来理解这些图片。

1572035469143764.png


电脑处理图片的像素矩阵可视化


把这些图片及其是否含有热狗的正确类别输入模型来进行训练,在训练初期,由于没有很好地先验信息,模型不能很好分类。它调整评价方法来减少错误。当正确分类时,它加强得到正确分类的处理过程。


谷歌图片搜索作为一个工具,不断从网上收集图片。与此同时,它创建了一个可以把任意图片分类的巨大数据集。无论你存储还是分享图片,可能正在发生某种数据收集。


关于公司收集和利用数据的一些道德上的争论在这里我不会说明。为了理解图像分类器,重要的是它需要数千个图像来创建可以进行分类的工具。 由于包括现在可以容易地获得大的图像集在内的几个原因,图像分类变得越来越普遍。


神经网络


处理图片最有效的模型类型是神经网络,神经网络根据我们大脑中的神经元命名,因为它们处理信息并模仿我们大脑中神经元的方式识别模式。


在神经网络中,信息从一个节点通过层传递到另一个节点,下图中,每个方框是一个节点,每一列是一层。

1572035511464576.png

4层16节点的神经网络


输入层(最左边的一列)包含所给定图片的像素信息。输出层(最右边的一列)包含图片的类别。


1572035542451793.png

输入层像素和输出层类别表示


在任何一对相邻层之间,上一层到下一层的所有节点之间是数学运算。下图中,为神经网络进行计算的每个关系添加了箭头。

1572035564319061.png

节点之间的关系用箭头表示


为了进行分类,每个节点组合来自指向它的箭头信息。 这种组合使节点关闭或打开。 打开的节点具有不同的强度,如果节点是打开的,他把信息传递到下一节点,如此重复。


在输出层,选择打开到最高强度的类别的节点作为图像的分类。


这些层中的每一层都是称为密集层的特定类型的神经网络层。

1572035611877037.png

神经网络的完整表示


卷积神经网络


从上面的示例你可能注意到像素以一维形式而不是二维形式显示,这样处理和分类展开的图片可能容易。然而对于输入是二维图片的效果可能不好。


通过在密集层之前加卷积层可以解决。


卷积层输入两个维度的像素值,它通过在图像的一部分上放置指定像素尺寸的卷积核来处理该输入。 在卷积核和该位置处的像素之间相乘来法确定结果值。

1572035664350717.png

在左边我们有一个输入图像。 在中间,有一个6像素* 6像素的卷积核,右边得到图像和卷积核之间的乘法输出。


该过程在输入图像的所有像素上继续来得到输出图像。 然后直到应用了指定数量的卷积核,重复以获得不同的输出图像。


10.png

应用10个6像素*6像素的卷积核的神经网络的卷积层


还有其他类型的层可用于压缩卷积层的结果信息,来得到更准确和更有效的模型,但这些层不是强制性的。

也可以添加几个卷积层。 在卷积层,密集层和用于改进模型的其他层类型之间,图像分类神经网络具有十几个层并不少见。


在所需数量的卷积层之后,需要实现展平层以将像素移动到正确的形状以发送到像上面所见的密集层。 在此过程中,每列信息都堆叠在前一列之下,从而创建一维数组。

11.png

展平层将4维转化为1维


图像处理步骤

我们现在已经介绍了创建模型来处理图像的一般过程。让我们按顺序回顾一下所需的步骤。

首先,收集大量具有关联标签的图像以训练模型。

其次,将图像转换为红色,蓝色和绿色灰度的数字矩阵。

第三,通过神经网络处理图像。每个图像按以下方式处理:

  • 将小于图像的卷积核用于图像的每个区域,并完成乘法过程以创建新的值(卷积层)。

  • 根据需要重复。

  • 将信息堆叠到一维数组(展平层)。

  • 计算一维数组与下一层中的节点之间的关系,以确定要激活的节点和多少(密集层)。

  • 根据需要重复。

  • 在输出层,确定哪个节点与给定的信息最匹配。将图像分类为该节点的值。

  • 每次进行正确的预测时,都要加强导致该预测的方程式。每次进行不正确的预测时,修改导致该预测的等式。

最后,构建的模型可用于创建以前从未见过的新图像的预测。

虽然这些模型的工作方式还有很多深度,但我们已经涵盖了创建用于图像分类的卷积神经网络所需的所有信息。

[1]“爬虫”是一个术语,用于描述通过代码从互联网上提取信息。在这种情况下,它具体指的是Google图像如何扫描互联网上每个网站的代码,并抓取该代码中可以找到的每个图像以及相关的关键字。

[2]模型是一个术语,通常用于描述计算机可以运行以计算结果的程序。在这种情况下,模型可以接收图像并为其计算类别。

THE END

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:2019 目标检测指南

下一篇:Web 抓取和文本分析实例

用户评价
全部评价

热门资源

  • 应用笔画宽度变换...

    应用背景:是盲人辅助系统,城市环境中的机器导航...

  • GAN之根据文本描述...

    一些比较好玩的任务也就应运而生,比如图像修复、...

  • 端到端语音识别时...

    从上世纪 50 年代诞生到 2012 年引入 DNN 后识别效...

  • 人体姿态估计的过...

    人体姿态估计是计算机视觉中一个很基础的问题。从...

  • 谷歌发布TyDi QA语...

    为了鼓励对多语言问答技术的研究,谷歌发布了 TyDi...