图像识别(二)| 图像的色彩空间
大家好啊,我是董董灿。
目录
RGB
数值表示和图片大小计算
YUV
YUV编码的用途
总结一下
One More Thing
图像识别(一)| 从像素说起_董董灿是个攻城狮的博客-CSDN博客从零开始,学习神经网络的图像识别https://blog.csdn.net/dongtuoc/article/details/125236585?spm=1001.2014.3001.5502
上一篇文章从像素开始,聊到了 RGB 这一常见的色彩空间模型。
之所以还想继续聊聊 RGB 以及另一种色彩空间模型-YUV ,不是说想要去学摄影,需要调节色度、曝光和饱和度。
而是在图像处理的深度学习任务中,RGB以及YUV总是会时不时的出现一下,让枯燥无味且高度抽象的算法,突然之间,变得具体一些,光鲜一些。
RGB
Red,Green,Blue(RGB)是我们最常见的图像表示方法。
这个非常好理解,三原色的融合,几乎可以构造出所有需要的颜色。
三张RGB分量图片的融合,就可以构成一幅色彩斑斓的图片。
(原图与R G B 三个分量图片 图片来源:https://blog.csdn.net/qq_43426078/article/details/124024237)
平时我们说,分辨率为1920*1080的图片,它代表的是在长宽两个方向上,有 1920 * 1080 个像素,但是,在色彩这个方向上,还有 3 个通道(channel),也就是RGB。
我们看到的一个像素点的颜色,在计算系统中,并不是简单的由一个数值来表示的,而是由RGB三个分量的三个数值来表示的。
因此,想要计算一张1920*1080的图片所占用的内存大小时,不能仅仅用长乘以宽这么计算,还需要考虑通道数。
数值表示和图片大小计算
我们可能用过画图这一软件来选择过一个颜色。
通过简单的设置红色,绿色,蓝色的数值,就可以在调色板中得到一个颜色。
有没有注意到,无论红色,还是绿色,还是蓝色,其表示的数值都没有超过255。
为什么?
因为像素值,在计算机中,是用一个 int8 的数据来表示的。
而 int8,指的是 8bit 无符号整数,其能表示的范围就是 0 - 255。
说到这,我们就可以算一算,一张1920 * 1080 的RGB图像,在计算机中到底占多少的内存了。
很简单,长宽方向上每个像素由 3 个通道组成,每个通道由一个 8 bit的数值组成。一个 8 bit 数值代表一个字节(Byte)。
因此,一张1920 * 1080的 RGB 图像,占计算机存储大小为
size = 1920 * 1080 * 3 * 1 Bytes = 6075 KB = 5.9 MB
5.9MB 的内存占用!
大么?和目前动辄几个G的内存相比,不算大。
小么?在边缘侧图像识别终端上,比如摄像头的嵌入式芯片内存中,又不算小。更何况在公路违法拍照的摄像头场景下,在车流量很大的时候,需要实时处理的图片,可不止一张。
那怎么办?
有没有办法可以在进行图像处理时,减少图片的数据量,从而减少内存占用呢?
有,YUV就是其中一种办法。
YUV
YUV是将亮度信息和颜色信息进行编码的一种颜色空间。
和RGB相似,YUV也使用3个值来表示颜色。
为了简单点,我们暂时将这3个值称为Y,U和V。
(事实上,YUV的称呼很多,比如Y'CbCr,也很细节,这里不多描述,我们只要知道它是另外一种表示颜色的方法就可以。)Y 代表亮度,U 代表色彩度,V代表饱和度。
(原图)
(仅有Y分量,实际上是黑白图片)
(仅有U分量,只有色度)
(仅有V分量,只有饱和度)
上面的几张图片,除了原图之外,我们可能更加倾向于使用只有Y分量的图片,也就是那张黑白图像。
因为即使没有色彩,但是它的轮廓以及明亮程度,也足以让我们分辨出图片中的物体。
相反,只有色度和饱和度的图片,反而会变得模糊。
这就是问题所在!
人眼对于亮度具有更高的敏感度,而对色度和饱和度反而显得迟钝一些。
说到这,有没发现什么?
既然人眼对于色度和饱和度的反应不敏感,那就没有必要把所有的色度和饱和度信息都放在图片里了啊。
(YUV422编码: 图片来源: https://an.rustfisher.com/media/color/yuv-intro/)
举个例子,色度和饱和度我隔一个像素放一个,剩下的像素没有饱和度,不就可以了么。
没错,是可以,而且效果很好。
这就是YUV的不同编码。
实际上,YUV的编码方式有很多种,比如YUV444, YUV422等。
大致意思就是,保留全部的Y分量(人眼最敏感的分量),只保留部分的U/V分量,以此来减少图片的占用,但又不失重要信息。
还记得上面的1920*1080的RGB图片的内存占用么,为5.9MB。如果用YUV444的编码,结果也同样是5.9MB, 因为YUV444也是全采样,所有的亮度、色度、饱和度信息都保留了。而如果采用YUV422的编码,相当于U分量减少一半,V分量减少一半。那么最终的图片占用大小就变成了
size = 1920 * 1080 * (1 + 0.5 + 0.5) Bytes = 4050KB = 3.9MB
只有3.9MB,减少了1/3的内存占用。
是不是好很多?
更多关于YUV的编码知识,有兴趣的同学可以Google。
如果不做相关课题,可以不用深究。
我们只需要知道,YUV这一色彩编码方法,在保留亮度这一人眼最敏感信息的基础上,通过降低其他人眼不太需要的信息,可以来达到降低图片大小的目的。
就足够了!
YUV编码的用途
原始图片,channel数代表的是RGB通道,可以理解为原始图片具有的三个特征。可在深度学习网络中,随着网络深度的增加,图片的channel数会不断的增大。
就拿Resnet50这个网络来说,最后面的一层图片,channel数已经增大到了2048。
这时channel代表的信息,早已不再是RGB这种基础的特征了。
而是通过了大量的神经网络训练,代表了图片的分类,比如是猫还是狗。
这个后面会详细说。YUV这种编码方法,可以用在图片的上下采样中。通过降低或增加通道数,实现图片的上下采样,以此来实现图片的增大或减少,但又不损失太多我们希望保留的信息。
总结一下
这篇文章介绍了RGB、YUV两种颜色空间,以及YUV可能的用途和它的优势。
当我们了解了图片这一深度学习的原材料之后,我们就可以开始深度学习的算法之旅了。
下一篇,会开始介绍卷积,聊聊卷积是怎样通过设计卷积核,来获取图片的不同信息的。以及,在网络训练的过程中,卷积这一可以代替人眼的算法,到底看到了什么?
One More Thing
公元663年,唐代诗人王勃游历南昌,登滕王阁而做序,大笔一挥,豪气万丈。
当时的王勃,傲立在滕王阁首时,看到的应该是怎样的一副壮美图画,才使得中国文坛留下一句千古绝唱。潦水尽而寒潭清,烟光凝而暮山紫。
当时的王勃,怎么也不会想到,1000年后的今天,聪明的中国人,早已将"暮山紫"这一颜色进行了编码。
从此,暮山紫,不再只存在于人们的想象中,而是精确地存在于了计算机里。
(暮山紫-RGB:164 171 214 | 图片来源:微信公众号:寻仲)
下一篇:
图像识别(三)| 初识卷积_董董灿是个攻城狮的博客-CSDN博客这一篇文章主要聊了聊几个概念。AI 之所以能够记住它所学的东西,关键在于神经网络有权值这一参数的存在,它的存在就类似人脑的记忆。并且,权值和人脑的记忆一样,都是通过大量的实践来训练出来的。而卷积这一算法,天然就存在一个权值参数,称之为卷积核,人们可以通过设计卷积核的大小,调整希望神经网络“看到”的图片的视野,也叫作感受野,从而不同的卷积获取到不同的信息。实际上,卷积这一算法,除了本文说的利用“感受野”获取到不同图片区域的信息,从而将图片在长宽两个维度的尺寸缩放之外,还存在channel维度的升降。而这https://blog.csdn.net/dongtuoc/article/details/125343987?spm=1001.2014.3001.5502欢迎阅读。
更多内容,欢迎查看专栏:
https://blog.csdn.net/dongtuoc/category_11863193.htmlhttps://blog.csdn.net/dongtuoc/category_11863193.html
码字不易,如果你喜欢,请关注董董灿是个攻城狮的博客_CSDN博客-C语言,图像识别 and Resnet 网络拆解,闲谈互联网领域博主。
近期开通个人微信公众号:董董灿自述 | 我是一个攻城狮 分享人工智能科技文章,欢迎关注。
v v v v v v
**本文为作者原创,请勿转载,转载请联系作者。**
**点击下方卡片,关注我的公众号,有最新的文章和项目动态。**
v v v v v v
图像识别(二)| 图像的色彩空间相关推荐
- OpenCV与图像处理学习二——图像直方图与色彩空间
OpenCV与图像处理学习二--图像直方图与色彩空间 2.4 图像直方图(Image Histogram) 2.4.1 直方图的绘制 2.4.2 三通道直方图绘制 2.5 颜色空间 2.5.1 RGB ...
- OpenCV与图像处理学习十二——图像形状特征之HOG特征
OpenCV与图像处理学习十二--图像形状特征之HOG特征 一.图像特征理解 1.1 颜色特征 1.2 纹理特征 1.3 形状特征 1.4 空间关系特征 二.形状特征描述 2.1 HOG特征 2.1. ...
- CV:计算机视觉技术之图像基础知识(二)—图像内核的可视化解释
CV:计算机视觉技术之图像基础知识(二)-图像内核的可视化解释 目录 图像内核的可视化解释 测试九种卷积核 官方Demo DIY图片测试 DIY实时视频测试 相关文章 CV:计算机视觉技术之图像基础知 ...
- [Python图像处理] 十二.图像几何变换之图像仿射变换、图像透视变换和图像校正
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
- html图像特征提取,图像识别之图像特征提取
图像识别之图像特征提取 HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处置中用来停止物体检测的特征描绘子.它经过计算 ...
- python图像处理笔记-十二-图像聚类
python图像处理笔记-十二-图像聚类 学习内容 这一章主要在学习的是聚类算法以及其在图像算法中的应用,主要学习的聚类方法有: KMeans 层次聚类 谱聚类 并将使用他们对字母数据及进行聚类处理, ...
- 相机标定(二)——图像坐标与世界坐标转换
相机标定(一)--内参标定与程序实现 相机标定(二)--图像坐标与世界坐标转换 相机标定(三)--手眼标定 一.坐标关系 相机中有四个坐标系,分别为world,camera,image,pixel w ...
- CV:计算机视觉技术之图像基础知识(二)—图像内核的九种卷积核可视化解释(blur/bottom sobel /emboss/identity /sobel /outline/sharpen)
CV:计算机视觉技术之图像基础知识(二)-图像内核的九种卷积核可视化解释(blur/bottom sobel /emboss/identity /left sobel /outline/right s ...
- php excel文件导出之二 图像导出
PHP文件导出 之图像 和 文字同一时候导出 事实上之前写了个php文件导出.跟这个极为相似,由于项目须要对图像进行导出.查询一番.又写了一个, 这个能实现图像的导出(仅仅能是本地图像,不能使用远程图 ...
最新文章
- R语言构建xgboost模型:基于稀疏数据(dgCMatrix which is a sparse matrix)、稠密数据(dense matrix)、xgb.DMatrix数据聚合
- 震惊!NV Volta或用上48GB GDDR6显存
- 享受便利的应用方式—Linux系统三则超酷技巧
- html文档打开错误,我的html的文档无法打开,打开也是报错
- 马尔可夫决策过程 Markov decision process MDP, 连续时间Markov chain, CMDP(全)
- GOOGLE搜索出来的你的网站说明是乱码的
- 使用maxwell实时同步mysql数据到kafka
- Qt模仿游戏拖装备(换装备)
- QR code 二维码基础入门教程(二)
- element-ui中table表格表头和表格内容都水平居中
- 子公司倒戈,CEO 遭攻击,股价暴跌,迅雷内讧事件的三个教训
- html中居中方法,HTML中的居中方法
- 深入java虚拟机(圣思园)
- Python基础之面向对象
- python通信自动化测试_基于Python的无线通信设备自动化测试软件的研制
- 云原生系列三:K8s应用安全加固技术
- 微信小程序 使用canvas绘图
- mysql最高平均工资_mysql查询出平均工资最高的部门编号
- Vue项目启动报错解决方案
- U盘安装系统教程 如何用U盘装系统
热门文章
- The Power of Scale for Parameter-Efficient Prompt Tuning及prefix tuning与prompt tuning的区别
- LeetCode 831. Masking Personal Information【字符串,正则表达式】中等
- 6-dw_元数据管理
- 实现嵌入式linux自动同步网络时间---NTP
- 基础篇(二).ARMv8寄存器(2)
- 土是独体字结构吗_“之”是独体字吗?还是上体结构的合体字?
- 中国人民大学与加拿大女王大学金融硕士-作为金融人你深知,投资学习是一本万利的
- CVPR 2020 开幕!最佳论文奖等揭晓!
- SEO面试题与面试攻略,SEO面试技巧以及常见问题分享
- 研究生语音识别课程作业记录(三) 非特定人孤立词识别