资讯详情

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的三次方,即1677216种颜色,因此可以使用绝大多数数数据集中图片的颜色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排序方法是

3.2 缩放图片(scaling)

缩放图片时,我们通常会固定图片的纵横比,以确保图片不会被过度压缩或拉伸。然而,固定纵横比的操作不适用于深度学习,因为神经网络的输入通常需要所有图片的固定尺寸。通常,深度学习所需的尺寸是:

32、64、64、224、224 227??227, 256??256, 299??299.

因此,我们仍然需要水平或垂直压缩图片。需要分析具体的压缩方法。对于一些数据集,不需要考虑压缩的影响;对于其他数据集,需要在改变尺寸之前进行一些处理。具体方法将在下一章中详细介绍。


第四章 图像分类基础

对于人类来说,图片很容易识别,你一眼就能看到图片的内容。但对于计算机来说,图片是由矩阵组成的。如果你想让计算机知道图片在表示什么,你需要应用图像分类任务。图像分类是计算机视觉的子主题。

举个例子。我们假设我们的图片数据集中包含三个类别:

然后,当我们将图片放入识别系统时,我们会得到这样的结果:

在计算机眼中,有两张不同的图片,即两个不同的矩阵。

一开始,计算机无法区分每张图片的内容。但是,我们可以从三个角度分解这张图:

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

4.1 图像识别的挑战

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

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

我们的图像识别系统应该足以识别上述变化,甚至组合变化。这是非常困难的。也许识别对象的范围可以缩小,使用特定的任务;例如,识别冰箱,而不是识别所有的厨房项目。(

标签: 高脚led双脚连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台