Deep learning for Computer Vision with Python 笔记(2)图像基础

上文链接:Deep learning for Computer Vision with Python 计算机视觉与深度学习阅读笔记(1)

第三章 图像基础

3.1 像素

3.1.1 像素和颜色

像素是图像的构成元素,每个图片都是由一系列像素组成。一个图片的像素数量=长像素数*宽像素数。

大多数像素可以分成两类:

  1. 灰度/单通道
  2. 彩色通道

灰通道的像素是一个标量,它的取值在0~255之间,其中0表示黑色,255表示白色。

彩色通道的像素是一个三元组,三元组中的值表示红、绿、蓝颜色的数量,它们的范围都在0~255之间。我们通常用8位int表示0~255之间的数。

但是,通常情况下,我们并不会将图片的像素数据直接放入神经网络中进行训练,其中都要进行一个数据转化的过程,即使用一些加载方式(例如OpenCV)将像素int数据转成float类型的数据。

由于RGB颜色范围包含255的三次方,也就是16777216种颜色,所以绝大多数的数据集中图片的颜色都可以使用RGB颜色来进行表示。

3.1.2 构成图片数据

我们知道,RBG颜色是红绿蓝三个通道,因此,一张图片可以由三个部分组成,每个部分表示一个颜色通道。而对于每个部分是一个矩阵,又可以用W*H来表示。因此,一张彩色图片是由W*H*D来组成的,W是宽度,H是高度,D是通道数。对于RGB颜色区域来说,D=3.

3.1.3 像素的坐标系

 像素的坐标表示和一般的数学坐标系不太一样,它是从0开始,并且左上角为(0,0),如图所示。

3.1.4 使用Numpy数组表示图片

 OpenCV或者scikit-image用来表示图片的方式是一系列Numpy数组,每个numpy数组的shape为:(height, width, depth)注意,height在width前面,原因是像素在图片中用坐标表示的形式是 (y, x).

import cv2
image = cv2.imread("img.png")
print(image.shape)
cv2.imshow("Image",image)
cv2.waitKey(0)

值得注意的是,OpenCV对于RGB的排序方式是BGR

3.2 缩放图片(scaling)

在缩放图片时,我们通常会固定图片的纵横比,这样能保证图片不会被过于压缩或者拉伸。但是,固定纵横比的操作并不适用于深度学习,因为神经网络的输入通常要求所有图片为一个固定的尺寸。通常,深度学习所需要的尺寸为:

32✖️32,64✖️64,224✖️224, 227✖️227, 256✖️256, 299✖️299.

因此,我们仍然需要对图片进行横向压缩或者纵向压缩。具体使用什么压缩方式,是需要具体情况进行分析的。对于一些数据集,可以不需要考虑压缩的影响;对于另一些数据集,则需要在变换尺寸前先做一些处理。对于具体的方式将在后面的章节中详细介绍。


第四章 图像分类基础

​​​​​​​对于人类来说,图片是非常好识别的,大家一眼就能看出一张图片的内容。但对于计算机来说,图片是由一个个矩阵组成的。想要让计算机知道一张图片在表示什么内容,就需要应用图像分类任务了,图像分类是计算机视觉的一个子课题。

​​​​​​​什么是图像识别?

举个例子。我们假设我们的图片数据集中包含三个类别:{猫,狗,熊猫}

然后,我们将一张图片放入到识别系统中,将会得到这样的结果:狗:95%,猫:4%,熊猫:1%。​​​​​​​

一个语义鸿沟

下面展示了两张不同的图片,他们在计算机的眼中,即两个不同的矩阵。

一开始,计算机并不能分辨出每张图片的内容。 但是,我们可以从三个角度分解这张图片:

1. 位置:上面是天空,下面是湖水;

2. 颜色:天空是蓝色,湖水是绿色;

3. 纹理:天空是非常均匀的图案,湖水是较为粗糙的图案;

计算机如何描述这些信息呢?方式就是特征提取,将数据提取成特征向量。有一些传统的人工设计的特征,如HOG、LBP;另一个方式就是在深度学习中自动提取特征了。

4.1 图像识别的挑战

图像识别会遇到多种挑战。一个目标在不同的因素下都会有不同的变化,主要分类如下:

  1. 角度变化:不同角度下,一个物品的样子是不同的;
  2. 尺寸变化:一个物品会有多种不同的尺寸,例如大杯中杯小杯;
  3. 变形:物品产生形变;
  4. 遮挡:目标物品被其他物品遮挡;
  5. 照明, 例如强光弱光的影响;
  6. 背景杂波的影响;
  7. 类别内部的变化,例如椅子里有沙发,高脚椅,矮凳;

我们的图像识别系统要足够识别以上多种变化,甚至是组合变化。这个难度是很大的。或许可以将识别的对象范围进行缩小,使用具体的任务;例如识别冰箱来代替识别所有厨房物品。(Frame your problem

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值