摄像机交给计算机的只是一张数字表,机器却要从中认出猫、行人和路牌。本文拆解计算机视觉的完整链路:像素如何变成数字,卷积如何用小窗口扫描全图,分层抽象怎样从边缘一路组合出物体语义。
核心要点
- 图像在计算机中是三通道数字矩阵,视觉任务本质是数值变换
- 卷积用共享参数的小窗口扫描全图,得到平移不变的局部特征
- 分层抽象让网络从边缘、纹理逐步组合出部件与完整物体
像素:机器眼中的世界只是一张数字表
人眼看到的是一只猫,摄像机交给计算机的却是一张密密麻麻的数字表。一张千万像素的彩色照片,本质上是三千万个 0 到 255 之间的数字,分别记录红、绿、蓝三种颜色的亮度。计算机没有眼睛,它一开始面对的就是这样一座数字迷宫。
所以“看见”的第一步,是把图像变成可以被计算的对象。早期研究者手工设计规则,比如“猫有尖耳朵”“边缘处颜色会突变”,但真实世界光影千变万化,手写规则很快失效。现代视觉改让机器从大量样本里自己总结规律,这条路被称为数据驱动。
从边缘到语义:逐层抽象的流水线
深度学习的做法是把识别拆成许多层,每层负责一种抽象程度。前面的层只关心最朴素的东西:某个位置有没有一条边、一块色斑、一段纹理。中间层把边拼成角、圆、条纹等零件。后面的层再把零件组合成眼睛、车轮、猫脸这类部件与物体。
这种逐层抽象很像工厂流水线,也像人从线条草稿到成品画的观察过程。2012 年 AlexNet 在 ImageNet 竞赛上大幅领先,正是因为它用更深的网络配合 GPU 训练,让这种自动分层抽象真正跑通,成为现代视觉技术广为人知的起点。
卷积:用“小窗口”扫描整张图
流水线里最常用的零件叫卷积(convolution)。可以把它想成一个小窗口,比如 3×3 的方格,装着一串可以学习的数字。窗口从图像左上角出发,一格一格滑动,每停留一次就把窗口里的数字与图像对应位置的数字相乘再相加,得到一个新数值。
因为同一个窗口滑遍全图、反复使用同一套参数,卷积网络天然具备平移不变的特性:猫在画面左边还是右边,都能被同一批探测器发现。再配合池化层把邻近信息压缩,网络既省算力,也能容忍物体位置的小幅移动。
看得见不等于看得懂
不过,机器“看见”与人类“看懂”仍有距离。网络擅长发现统计相关性,却未必理解物理因果;换一个从未见过的背景,或者给照片加上人眼几乎察觉不到的扰动,它的判断就可能翻转。这也是为什么今天的视觉系统仍需要大量数据、持续评测与人类监督。
常见问题
机器看到的图像和人眼看到的一样吗?
完全不一样。人眼接收到的是经过视觉皮层加工过的、带有语义与注意力的体验;机器拿到的是像素亮度构成的数字矩阵,本身没有任何含义。所谓“看见”,是模型通过大量样本学会把特定数字模式与特定概念对应起来。
本文为 AI 科普内容,仅用于知识普及,不构成任何技术选型、投资或职业决策建议。