第 02 讲《图像数字化:像素、通道与张量》——模型看到的不是照片:一文搞懂像素、通道与张量
模型看到的不是照片一文搞懂像素、通道与张量第 02 讲《图像数字化像素、通道与张量》公众号整理版整理说明本文基于 B 站视频《第02讲〈图像数字化像素、通道与张量〉》的公开信息、课程课件主线并结合 OpenCV、PIL、PyTorch 与 YOLO 输入预处理常见流程进行原创化整理。本文不是逐字稿重点是把“图片如何变成模型能算的数字”整理成科研小白可以照着学、照着查、照着跑的教程。你在屏幕上看到一张图片可能是一只猫、一辆车、一张医学影像也可能是交通路口。但模型看到的不是“猫”不是“车”也不是“病灶”。模型看到的是一组排好队的数字。所以第 02 讲只解决一个核心问题模型看到的不是照片而是一组怎样排列的数字这件事一旦讲清楚后面学 CNN、YOLO26、数据增强、训练报错都会顺很多。因为几乎所有视觉模型的第一步都是把图片变成张量。02_图像数字化像素、通道与张量01 为什么小白总卡在 shape 上很多同学刚开始学 YOLO 或深度学习最容易卡在 4 个地方图片明明能打开为什么到模型里变成3 x 640 x 640RGB、BGR、HWC、CHW、BCHW到底谁在前谁在后图片尺寸、通道顺序、归一化写错为什么代码不一定报错但结果会很离谱同一张图在 OpenCV、PIL、PyTorch 里为什么读出来不一样这几个问题本质上都指向同一件事图片不是直接进入模型的。它要先被解码成像素再整理成通道再变成张量最后按照模型要求的 shape 输入网络。把这条链路记住图片文件 → 像素矩阵 → 通道排列 → 尺寸统一 → 数值缩放 → 维度转换 → batch 张量 → 进入网络以后遇到输入错误先沿着这条链往回查不要第一反应就怀疑模型结构。02 六个核心概念一次说清楚概念严格一点的说法小白理解像素 Pixel图像的最小采样单元每个位置记录颜色或强度一张图由很多小格子组成通道 Channel颜色或特征的维度RGB 图像有红、绿、蓝三层张量 Tensor多维数组是神经网络处理数据的基本容器模型能计算的数字盒子Shape张量每个维度的长度1 x 3 x 640 x 640里的每个数字Batch一次送入模型的一组样本batch8 表示一次处理 8 张图归一化把数值缩放到稳定范围常见做法是把 0-255 除以 255初学阶段先别急着背复杂公式。你只要能回答三件事这个数字从哪里来它现在是什么形状下一步要送到哪里能把这三件事讲明白shape 就不再是玄学。03 像素一张图首先是一张数字表一张640 x 480的灰度图可以理解为一个480 行 x 640 列的二维矩阵。每个位置有一个数表示这个位置的亮度。常见 8 位图像的像素范围是 0 到 255数值含义0最暗接近黑色255最亮接近白色中间值不同程度的灰度彩色图像多了颜色通道。最常见的 RGB 图像每个像素不是一个数而是三个数[R, G, B]例如颜色RGB 数值红色[255, 0, 0]绿色[0, 255, 0]蓝色[0, 0, 255]白色[255, 255, 255]这就是“模型看到的是数字”的第一层含义图片先变成一堆像素值。04 2 x 2 RGB 小图手算一次图片变张量为了彻底看懂我们构造一张最小彩色图位置颜色RGB左上红色[255, 0, 0]右上绿色[0, 255, 0]左下蓝色[0, 0, 255]右下白色[255, 255, 255]如果用HWC表示它可以写成[[[255,0,0],[0,255,0]],[[0,0,255],[255,255,255]]]这个 shape 是H x W x C 2 x 2 x 3其中字母含义这里的值HHeight高度有几行2WWidth宽度有几列2CChannel通道数3但深度学习框架里模型常常更喜欢CHW或BCHWHWC: 2 x 2 x 3 CHW: 3 x 2 x 2 BCHW: 1 x 3 x 2 x 2注意数字总量没有变只是排列顺序变了。05 HWC、CHW、BCHW 到底怎么记最简单的记法格式常见场景例子读法H x W x C图片存储、OpenCV/PIL 转 NumPy 后常见640 x 640 x 3高、宽、通道C x H x W单张图送入 PyTorch 模型前常见3 x 640 x 640通道、高、宽B x C x H x W模型训练和推理常见8 x 3 x 640 x 640batch、通道、高、宽为什么要加B因为训练时通常不是一张一张喂给模型而是一批一批喂。8 x 3 x 640 x 640的意思是维度含义8一次处理 8 张图3每张图 3 个通道640高度 640640宽度 640一句话总结HWC 像图片CHW 像单张模型输入BCHW 像一批模型输入。06 OpenCV、PIL、PyTorch 为什么容易混最常见的坑是通道顺序。工具常见读取结果通道习惯小白提醒OpenCVNumPy 数组默认 BGR显示或送模型前常需要转 RGBPILImage 对象常见 RGB转 NumPy 后通常是 HWCPyTorchTensor常用 CHW/BCHW通常要permute或transpose举个例子importcv2 img_bgrcv2.imread(test.jpg)img_rgbcv2.cvtColor(img_bgr,cv2.COLOR_BGR2RGB)如果忘了 BGR 转 RGB代码可能不报错但颜色语义已经变了。对人来说只是颜色怪对模型来说就是输入分布变了。这也是为什么很多检测结果“看起来很玄”模型还没开始推理输入已经悄悄错了。07 归一化为什么要除以 255常见图片像素范围是 0 到 255但神经网络训练更喜欢比较稳定的数值范围。所以经常会做x_normx/255.0这样像素会从0-255变成0-1这一步不是为了“好看”而是为了让后续计算更稳定。数值尺度差太大可能让激活值、梯度和优化过程变得不舒服。但要注意训练时怎么归一化推理时也要保持一致。如果训练时输入是 0-1推理时却喂 0-255模型结果很可能异常。08 Resize 和 Letterbox尺寸统一不是简单拉伸模型通常要求统一输入尺寸例如640 x 640。但真实图片可能是横图、竖图、方图尺寸各不相同。常见处理有两类方法做法风险直接 resize强行拉到指定大小可能改变目标比例letterbox保持比例缩放再补边更适合检测任务目标检测尤其要注意比例。因为检测任务不仅要认出类别还要预测位置。如果几何比例乱了框的位置学习也会被影响。所以第一次做自己的数据集时请记录原图尺寸是多少训练输入尺寸是多少是否使用 letterbox标签坐标是否和图片尺寸对应可视化标签时框是否真的贴住目标09 实操教程从 0 检查一张图的输入张量下面这套流程适合科研小白跟着做。第一次不要急着训练 YOLO26先把一张图怎么变成张量跑通。第一步创建环境conda create-nimage-tensorpython3.10-yconda activate image-tensor pipinstallnumpy pillow opencv-python matplotlib torch如果暂时不想装 PyTorch可以先跑 NumPy、PIL、OpenCV 部分。第二步手写 2 x 2 RGB 小图新建01_make_2x2_rgb_tensor.pyimportnumpyasnp img_hwcnp.array([[[255,0,0],[0,255,0]],[[0,0,255],[255,255,255]],],dtypenp.uint8)img_chwnp.transpose(img_hwc,(2,0,1))img_bchwnp.expand_dims(img_chw,axis0)img_normimg_bchw.astype(np.float32)/255.0print(HWC shape:,img_hwc.shape)print(img_hwc)print(CHW shape:,img_chw.shape)print(img_chw)print(BCHW shape:,img_bchw.shape)print(normalized range:,img_norm.min(),img_norm.max())你要看懂这三行np.transpose(img_hwc,(2,0,1))np.expand_dims(img_chw,axis0)img_bchw.astype(np.float32)/255.0它们分别对应把HWC变成CHW。加一个 batch 维度变成BCHW。把 0-255 缩放到 0-1。第三步读取真实图片并打印 shape准备一张test.jpg新建02_inspect_image_shape.pyfrompathlibimportPathimportcv2importnumpyasnpfromPILimportImage image_pathPath(test.jpg)ifnotimage_path.exists():raiseFileNotFoundError(请先放一张 test.jpg 到当前目录)img_cvcv2.imread(str(image_path))print(OpenCV:,type(img_cv),img_cv.shape,img_cv.dtype)print(OpenCV first pixel BGR:,img_cv[0,0].tolist())img_rgbcv2.cvtColor(img_cv,cv2.COLOR_BGR2RGB)print(After BGR-RGB first pixel:,img_rgb[0,0].tolist())img_pilImage.open(image_path).convert(RGB)img_npnp.array(img_pil)print(PIL to NumPy:,type(img_np),img_np.shape,img_np.dtype)print(PIL first pixel RGB:,img_np[0,0].tolist())img_chwnp.transpose(img_np,(2,0,1))img_bchwnp.expand_dims(img_chw,axis0).astype(np.float32)/255.0print(CHW:,img_chw.shape)print(BCHW normalized:,img_bchw.shape,img_bchw.min(),img_bchw.max())如果你能读懂输出就说明你已经掌握了图像数字化的核心。第四步做一次 letterbox 尺寸检查新建03_letterbox_check.pyimportcv2importnumpyasnpdefletterbox(img,new_shape(640,640),color(114,114,114)):h,wimg.shape[:2]new_h,new_wnew_shape scalemin(new_w/w,new_h/h)resized_w,resized_hint(round(w*scale)),int(round(h*scale))pad_w,pad_hnew_w-resized_w,new_h-resized_h left,rightpad_w//2,pad_w-pad_w//2top,bottompad_h//2,pad_h-pad_h//2resizedcv2.resize(img,(resized_w,resized_h))paddedcv2.copyMakeBorder(resized,top,bottom,left,right,cv2.BORDER_CONSTANT,valuecolor)returnpadded,scale,(left,top)imgcv2.imread(test.jpg)ifimgisNone:raiseFileNotFoundError(请先放一张 test.jpg 到当前目录)out,scale,padletterbox(img)print(original:,img.shape)print(letterbox:,out.shape)print(scale:,scale)print(pad left/top:,pad)cv2.imwrite(letterbox_preview.jpg,out)运行后会生成letterbox_preview.jpg。你要观察图片有没有被强行拉伸边缘是否补了灰边。10 用这张表定位输入问题异常现象优先检查常见原因颜色明显不对RGB/BGROpenCV 读图后没转 RGBshape 报错HWC/CHW/BCHW少了 batch 维或通道位置错检测框乱飘resize/letterbox/标签几何比例或标签坐标对应不上结果置信度很低归一化训练和推理数值范围不一致训练显存爆掉batch/imgszbatch 太大或图像尺寸太大小目标变差resize 策略缩放后目标太小信息丢失排错顺序建议先打印原图 shape。再打印预处理后 shape。再检查通道顺序。再检查数值范围。最后可视化图片和标签。这比盲目改模型、改学习率、改 epoch 更靠谱。11 学完本讲你要能回答这 5 个问题一个 RGB 像素为什么有三个数8 x 3 x 640 x 640每一维分别代表什么为什么 OpenCV 读取的图片经常要从 BGR 转 RGB为什么归一化会影响训练和推理稳定性resize 和 letterbox 对检测任务有什么区别如果你能把这 5 个问题讲给别人听第 02 讲就真正学进去了。12 最后总结本讲最重要的一句话模型看到的不是照片而是按规则排列的数字张量。一张图片进入模型前通常要经过读取图片 → 解码成像素 → 拆分通道 → 调整尺寸 → 改变维度顺序 → 数值归一化 → 加 batch 维度 → 进入网络后面学 YOLO26 时只要遇到输入问题就回到这条链路检查。如果这篇文章帮你把RGB、HWC、CHW、BCHW想清楚了建议先关注、收藏也可以转给正在被 shape 折磨的同学。评论区留言张量。下一篇继续整理第 03 讲有了输入张量之后标签和 Loss 如何告诉模型哪里做错。参考资料B 站视频《第02讲〈图像数字化像素、通道与张量〉》https://www.bilibili.com/video/BV1GaJ56jEeM/PyTorch Tensor 文档https://docs.pytorch.org/docs/stable/tensors.htmlPillow Image 文档https://pillow.readthedocs.io/en/stable/reference/Image.htmlOpenCV 图像读写文档https://docs.opencv.org/4.x/d4/da8/group__imgcodecs.htmlUltralytics YOLO Predict 文档https://docs.ultralytics.com/modes/predict/

相关新闻

2026年6月国际网站建设公司排行:用国际视野看全球排名

2026年6月国际网站建设公司排行:用国际视野看全球排名

一、四个建站工具总表品牌建站方式适合谁核心优势主要局限BBWEYYAISaaS建站中小企业、工厂、商贸公司上线快、维护轻、成本低深度定制有限比文云尊贵定制建站重品牌形象企业质感强、辨识度高预算和周期更高WordPress开源CMS建站长期做内容和SEO的团队生态成熟、扩展强维护依赖选…

2026/6/17 11:55:37阅读更多 →
YOLOv8【第十七章:前沿演进与跨界融合篇·第5节】RT-DETR:基于 Transformer 的实时检测器与 YOLOv8 的全方位对比!

YOLOv8【第十七章:前沿演进与跨界融合篇·第5节】RT-DETR:基于 Transformer 的实时检测器与 YOLOv8 的全方位对比!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。 该专栏系统复现并深度梳理全网主流 YOLOv8 改进与实战案例,覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等多个方向,坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,是目前市面上覆盖面广、更新节奏…

2026/6/17 11:55:37阅读更多 →
2026年TIG热丝堆焊设备厂家怎么选?权威推荐来了

2026年TIG热丝堆焊设备厂家怎么选?权威推荐来了

在当今的制造业领域,TIG 热丝堆焊设备的重要性日益凸显。对于企业在选择相关设备厂家时,需要综合考量多方面的因素。接下来,就让我们一同来深入探讨如何做出明智的选择。一、技术实力是关键一家优秀的 TIG 热丝堆焊设备厂家必须拥有强大的技术…

2026/6/17 11:55:37阅读更多 →
FossFLOW图标系统深度解析:构建专业技术架构图的高效方案

FossFLOW图标系统深度解析:构建专业技术架构图的高效方案

FossFLOW图标系统深度解析:构建专业技术架构图的高效方案 【免费下载链接】FossFLOW Make beautiful isometric infrastructure diagrams 项目地址: https://gitcode.com/GitHub_Trending/openflow1/FossFLOW 在当今云原生和微服务架构盛行的时代&#xff0c…

2026/6/17 17:39:58阅读更多 →
SRC漏洞平台实战指南:从入门到精通的挖洞路径与技巧

SRC漏洞平台实战指南:从入门到精通的挖洞路径与技巧

1. 项目概述:为什么你需要一份SRC漏洞平台实战指南?如果你对网络安全感兴趣,或者想通过挖掘漏洞来提升技能、甚至赚取一些额外的收入,那么“SRC”(安全应急响应中心)这个词你一定不陌生。过去几年&#xff…

2026/6/17 17:39:58阅读更多 →
袁东申论大作文模板|万能|框架

袁东申论大作文模板|万能|框架

袁东申论大作文模板|万能|框架资料全科都有袁东申论大作文模板 PDFhttps://tool.nineya.com/s/1jr3ck8t3 【数学真题】1. 已知等差数列 {a_n} 中 a_1a_3a_515,则 a_3( ) A. 5 B. 3 C. 10 D. 15 答案:A 解析:a₁a₃a₅ …

2026/6/17 17:39:58阅读更多 →
Motorola Suite56 DSP仿真器调试指南:从断点设置到高效工作流

Motorola Suite56 DSP仿真器调试指南:从断点设置到高效工作流

1. 项目概述与核心价值在嵌入式系统和数字信号处理器(DSP)的开发世界里,调试工作往往比写代码本身更具挑战性。当你的算法在目标板上跑飞,或者某个中断服务程序(ISR)的行为与预期不符时,最直接的…

2026/6/17 17:39:58阅读更多 →
内外网文件传输平台有哪些 一文看懂四大平台优势与适用场景

内外网文件传输平台有哪些 一文看懂四大平台优势与适用场景

企业网络隔离常态化,内外网数据流转需求激增,内外网文件传输平台有哪些成为信息化建设核心问题。传统U 盘、FTP风险高、不合规,专业平台成为刚需。本文详解四类主流平台,对比优势与场景,为企业安全高效传输提供选型参考…

2026/6/17 17:39:58阅读更多 →
2026五个免费PDF转换器保姆级教程:无水印无限制,在线+电脑本地全覆盖

2026五个免费PDF转换器保姆级教程:无水印无限制,在线+电脑本地全覆盖

你是不是也经常被PDF文件问题困扰?上班需要把PDF报表转成可编辑的Word、Excel,学生党要把论文PDF拆分合并、压缩大小,临时需要把图片转PDF归档,找遍全网工具要么免费次数有限,要么转换后自带刺眼水印,要么电…

2026/6/17 17:34:58阅读更多 →
飞书机器人接入 OpenClaw 完整落地部署指南(含安装包)

飞书机器人接入 OpenClaw 完整落地部署指南(含安装包)

OpenClaw 2.7.9 对接飞书机器人完整配置教程 本文讲解借助长连接模式打通 OpenClaw 与飞书的操作流程,配置完成后,可在飞书私聊、群组内发送指令,调用本地 AI 实现电脑自动化操作。整体流程分为飞书平台创建应用、权限配置、密钥填写三大环节…

2026/6/17 10:40:20阅读更多 →
嵌入式处理器技术演进与飞思卡尔实战解析:从架构选型到系统设计

嵌入式处理器技术演进与飞思卡尔实战解析:从架构选型到系统设计

1. 嵌入式处理器:从“大脑”到“神经系统”的进化 在电子设备无处不在的今天,我们很少会去思考一个智能设备是如何“思考”和“行动”的。无论是汽车引擎的精准控制、工厂机械臂的流畅运转,还是智能家居的自动响应,其背后都离不开…

2026/6/17 10:40:20阅读更多 →
如何高效使用BallonTranslator:3分钟完成漫画翻译的完整实用指南

如何高效使用BallonTranslator:3分钟完成漫画翻译的完整实用指南

如何高效使用BallonTranslator:3分钟完成漫画翻译的完整实用指南 【免费下载链接】BallonsTranslator 深度学习辅助漫画翻译工具, 支持一键机翻和简单的图像/文本编辑 | Yet another computer-aided comic/manga translation tool powered by deeplearning 项目地…

2026/6/17 10:40:20阅读更多 →