如何理解 CNN 中的 RGB 图像和通道?

本文为合集收录,欢迎查看合集/专栏链接进行全部合集的系统学习。

合集完整版请参考这里。

在灰度图一节的最后,给出了一个由彩色图片转成灰度图的示例,并且通过 color_image.mode获取了图片的格式:彩色图片获取到的格式为 RGBA,灰度图为L。

这一节介绍一下 RGB 图片以及通道的概念。

通道

通道这个概念,在深度学习中很重要,并且极为重要。

举个例子:在很多时候,对AI神经网络中的一些算法做工程化实现,或者做性能优化,除了关注算法本身之外,还会关注数据存储格式。一般在 pytorch 中(一个AI模型框架),数据的存储格式 NCHW, C指代的就是通道(channel), 如此一来,对于需要在通道维度做归一化(如 reduce)的算法,是很不友好的。

因为数据在通道维度不连续,导致取到完整的通道维度信息要跨越很大的地址范围,CPU 或其他 xPU 对于这类的数据寻址性能都是很差的,至少要比连续寻址差。此时就需要对通道维度做其他的变换。

以上举了在实际中会遇到的一类问题:通道维度数据在存储器中摆放不连续导致某些算法运算性能不好,这里暂时了解即可,无需深究,涉及到的内容会在专栏后面有详述。

本节的目的只有一个:只需要了解通道这个概念是什么就行了。

先看下 RGB 图像
你可能知道,色彩通常由红色(Red,R)、绿色(Green, G)、蓝色(Blue, B)三种基本颜色组成,这种颜色表示方式被称为彩色 RGB 模型。

在这个模型中,每个像素的颜色由这三种基本颜色组合而成。因此,一个图像在二维平面上看似只有一个像素,实际是由三个不同颜色(不同通道)的像素混合组成。

这里的 R/G/B 三种颜色,就认为是彩色图片的三个通道,如下图所示。
在这里插入图片描述

(一张彩色RGB图片按照通道维度(C)堆叠)

来调一下颜色

通过调整红、绿、蓝三个通道的值,你可以混合出各种颜色。

和灰度图一样,在 RGB 模型中,每个通道的颜色也是用三个数值(0-255 范围内的整数)来表示,分别代表红、绿、蓝三个通道的强度。

你可以使用计算机的画图软件轻松的模拟调色的过程:例如,红色和绿色通道同时存在会产生黄色。
在这里插入图片描述

而红色和蓝色通道同时存在则会呈现洋红色。
在这里插入图片描述

如果3种颜色都有,则为白色。

在这里插入图片描述

RGB 分量

彩色图片有 RGB 三个通道,如果将三张分别为红色通道、绿色通道、蓝色通道的图片进行融合,那么就可以构成一幅色彩斑斓的图片。同样的,也可以通过一定的方法,将三个通道的分量图像分别提取出来进行展示。

下图左侧是一张彩色原图,后面是分别提取的每个通道的分量绘制而成的图片:将原图的绿色/红色/蓝色通道分量都提取出来了。
在这里插入图片描述

RGB 图像在计算机中的占用大小

日常情况下,你可能会认为,分辨率为 1920 x 1080 的图片,代表在图片的长、宽两个方向上有 1920 x 1080 个像素。

但是,在学习了本节的彩色 RGB 模型之后,你需要知道:一张彩色图像,除了长宽方向之外还存一个方向,那就是通道方向。

也就是说,彩色图像应该用三维数据来表示,而不是二维。

举个例子,一张 3 通道的 RGB 图像,长和宽分别为 1920 x 1280 个像素,需要表示该图像的形状为 1920 x 1280 x 3(或者用 [1920, 1280, 3] 的方式来表示)。当然也可以表示为 3 x 1920 x 1280([3, 1920, 1280]) 来表示,这两种表示方法取决你把通道数放在长和宽的前面还是后面。

一张 1920 * 1280 的 RGB 图片, 在计算机存储时所需要的数据大小为:

1920 x 1280 x 3 x 1 Bytes = 7MB,也就是大约 7M 的数据量。

在实际存储时,受到图片压缩算法的影响,在计算机磁盘中看到的图片大小可能会小于这个数值,但是不影响通过这种方法来估算图片在计算机中的内存占用。

通道的意义

在后面深度学习章节中,我会经常提到通道的概念。

基于计算机视觉的AI神经网络在进行模型推理时,无论是卷积算法还是其他算法,计算的绝大部分是图像特征图中通道的关系。

特征图是一种神经网络中间层输出的图,其通道数有多有少,多则几千,少则几十。在特征图中,一个通道中的数据就可以粗略的认为代表了原始图像中的一个特征。

假设某一层特征图只有两个通道,那么将这两个通道的特征可视化之后,可能呈现出来的分别是“轮廓”特征,或者“嘴巴”的特征。

回到RGB的图像,因为 RGB 图像有 3 个通道,如果把彩色图片当做特征图的话,那就可以说 RGB 图片有 3 个特征通道。

每个通道或多或少的保留着原始图像的某些细节和轮廓特征,就像上面的三张分量图片一样,当然最主要的特征便是颜色:比如 R 通道,有着 B 通道没有的红色特征。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/496623.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

可灵1.6正式上线,图生视频再创新视界

大家最近有刷到过这几个视频吗? “一觉醒来,罗马斗兽场塌了”,可达鸭睡塌了罗马斗兽场! 【视频来源于网络,侵删】 “卡比兽把一碗雪倒扣在富士山上,富士山瞬间被雪覆盖” 【图片来源于网络,侵删…

微积分复习(微分方程)

1,一阶微分方程 可分离的微分方程: 可以把x和y分列等号两边,然后求积分可以解决 齐次方程和准齐次方程 要求是 :yf(y/x),也就是没有单独的x项,我们可以通过设ty/x来统一变量方便我们运算 准齐次方程就是常数项不统一,我们可以将Xxa,Yyb来消灭常数项进而转化为齐次形式…

【火猫DOTA2】VP一号位透露队伍不会保留原阵容

1、最近VP战队的一号位选手Kiritych在直播中透露,VP战队的阵容将会有新的变动,原有的阵容将不再保留。 【目前VP战队阵容名单如下】 一号位:Kiritych 二号位:squad1x 三号位:Noticed 四号位:Antares 五号位:待定 2、Spirit的战队经理Korb3n在直播时谈到了越来越多的职业选…

两分钟解决:vscode卡在设置SSH主机,VS Code-正在本地初始化VSCode服务器

问题原因 remote-ssh还是有一些bug的,在跟新之后可能会一直加载初始化SSH主机解决方案 1.打开终端2.登录链接vscode的账号,到家目录下3.找到 .vscode-server文件,删掉这个文件4.重启 vscode 就没问题了

[银河麒麟] Geogebra

Geogebra 几何作图工具 是一款跨平台的几何作图工具软件, 目前已经覆盖了, windows,android, mac, linux 等操作系统。 Geogebra 官网 Geogebra 官网提供了 Geogebra 5.0 版本下载包, Linux Portable 双击 geogebra-portable…

一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类

机器学习实战通常是将理论与实践结合,通过实际的项目或案例,帮助你理解并应用各种机器学习算法。下面是一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的…

浅谈下雪花算法的原理,及在项目中使用需要注意哪些事项

目录 背景 雪花算法原理 算法特点 注意事项 总结 背景 雪花算法是一种分布式ID生成算法,由Twitter提出,用于在分布式系统中生成全局唯一的ID。该算法通过将64位的长整型数字分为符号位、时间戳、工作机器ID和序列号四个部分,确保了ID的…

Kubernetes 安装 Nginx以及配置自动补全

部署 Nginx : [rootk8s-master ~]# kubectl create deployment nginx --imagenginx:1.14-alpine deployment.apps/nginx created暴露端口: [rootk8s-master ~]# kubectl expose deployment nginx --port80 --typeNodePort service/nginx exposed查看服…

C#使用Tesseract C++ API过程记录

Tesseract Tesseract 是一个开源的光学字符识别(OCR)引擎,最初由 Hewlett-Packard(惠普)实验室开发,后来由 Google 收购并继续维护和开源贡献。Tesseract 可以识别多种语言的文字,广泛应用于将…

在交叉编译中,常见的ELF(elf)到底是什么意思?

ELF 是 Executable and Linkable Format 的缩写,中文翻译为“可执行与可链接格式”。它是一种通用的文件格式,主要用于存储可执行文件、目标文件(编译后的中间文件)、动态库(.so 文件)以及内存转储文件&…

使 el-input 内部的内容紧贴左边

<el-inputv-model"form.invitor"placeholder"PC端的自动取当前账号的手机号"readonlyclass"no-border-input" />::v-deep(.no-border-input .el-input__inner) { border: none; box-shadow: none; padding-left: 0; /* 确保内容紧贴左边 *…

国标GB28181-2022平台EasyGBS:安防监控中P2P的穿透方法

在安防监控领域&#xff0c;P2P技术因其去中心化的特性而受到关注&#xff0c;尤其是在远程视频监控和数据传输方面。P2P技术允许设备之间直接通信&#xff0c;无需通过中央服务器&#xff0c;这在提高效率和降低成本方面具有明显优势。然而&#xff0c;P2P技术在实际应用中也面…

前端开发 -- 自动回复机器人【附完整源码】

一&#xff1a;效果展示 本项目实现了一个简单的网页聊天界面&#xff0c;用户可以在输入框中输入消息&#xff0c;并点击发送按钮或按下回车键来发送消息。机器人会根据用户发送的消息内容&#xff0c;通过关键字匹配来生成自动回复。 二&#xff1a;源代码分享 <!DOCTYP…

【速成51单片机】1.已经学过stm32如何快速入门51单片机——软件下载与安装

引言 本系列专题用于已经熟悉stm32单片机的情况下&#xff0c;快速掌握51单片机。背景是我其实大一大二已经进入学校实验室了&#xff0c;已经学习了stm32单片机&#xff0c;但是现在大三期末考51单片机&#xff0c;实际期末复习更应该看老师给的重点和背书上知识点。但我不想…

node-js Express防盗链

什么是防盗连 一个简单的说明&#xff0c;假如在前端img标签想要引用图片网站上的图片&#xff0c;当你将图片地址放到img标签上想要显示的时候你发现&#xff0c;图片显示不了&#xff0c;这说明网站采用了防盗链。 怎么实现的呢 在请求头中一般会有 Referer&#xff0c;它…

68jQuery【jQuery操作DOM、事件】

jQuery jQuery操作DOM 元素节点的增删改查 创建元素节点 使用$(html)函数动态创建节点元素 函数$(html)只完成DOM元素创建&#xff0c;加入到页面还需要通过元素节点的插入或追加操作&#xff1b;同时&#xff0c;在创建DOM元素时&#xff0c;要注意字符标记是否完全闭合&am…

lin.security提权靶场渗透

声明&#xff01; 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&a…

基于aspose.words组件的word bytes转pdf bytes,去除水印和解决linux中文乱码问题

详情见 https://preferdoor.top/archives/ji-yu-aspose.wordszu-jian-de-word-byteszhuan-pdf-bytes

[python学习笔记]对象、引用、浅复制、深复制

学了这么多年编程&#xff0c;发现在学校都是浑水摸鱼&#xff0c;从来没有精通过一门语言&#xff0c;一个月熟悉python和算法。不积硅步&#xff0c;无以至千里。 本文笔记来自以下博客&#xff0c;请参考原文。 Python&#xff1a;深拷贝与浅拷贝 - 七落安歌 - 博客园 h…

arm架构 uos操作系统离线安装k8s

目录 操作系统信息 安装文件准备 主机准备 主机配置 配置hosts&#xff08;所有节点&#xff09; 关闭防火墙、selinux、swap、dnsmasq(所有节点) 系统参数设置(所有节点) 配置ipvs功能(所有节点) 安装docker&#xff08;所有节点&#xff09; 卸载老版本 安装docke…