AI 如何识别图片?从像素到 CNN 的通俗指南
人脸解锁、相册按人物分类、拍照识别植物——这些背后都是同一件事:让机器看懂图像。理解它的钥匙其实很简单:先弄清楚数字长什么样,再弄清楚网络如何把这些数字组合成“特征”。
图像在机器眼里是一张数字网格
一张彩色照片由成千上万个像素组成,每个像素记录着红、绿、蓝三个亮度的数值,通常在 0 到 255 之间。所以一张图片交给网络时,实际是一大串数字,躺在一个整齐的网格里。
对这种“数字网格”来说,网络能做的第一步很朴素:在网格里寻找局部的小变化,比如相邻像素之间亮度突然上升或下降,也就是一条边缘。
从像素到特征:层层组合
单个边缘本身说明不了什么,但把它们组合起来就有意义了。靠后的层会把简单的边缘拼成曲线、拐角和纹理,更靠后的层再把这些拼成眼睛、鼻子、轮子或花瓣这样的部件。
这个过程不需要人手工写规则,而是网络在训练中自己学出来的。每一层学到的“特征”都是上一层输出的重新组合,越往深走,抽象程度越高。
经典例子:MNIST 手写数字
学习图像识别时,几乎所有人都会从 MNIST 开始。它是几万张 28×28 像素的手写数字图片,每张都已经标注了 0 到 9 的正确答案,用来练习“看图分类”再合适不过。
因为图片小、类别少,一个不复杂的网络几分钟就能达到很高的准确率,非常适合用来观察“训练到底发生了什么”。看懂 MNIST,再看更复杂的图像任务,思路就顺了。
CNN 比普通网络多了什么
如果把每种像素位置都直接连到下一层,参数会多到难以训练。CNN 的关键想法是“卷积”:用一个小小的窗口在整张图上滑动,反复使用同一组权重去找同一种花纹。这样既能保留位置关系,又大大减少了参数。
此外,CNN 还常用“池化”来把特征图缩小,让网络更关注“有没有这个特征”而不是它精确落在哪个像素上,从而对轻微位移更稳健。卷积与池化层层叠加,就是现代图像识别的基础骨架。
常见问题
灰度图为什么只有一个通道,彩色图有三个?
灰度图每个像素只需要一个亮度值,所以是一个通道;彩色图每个像素要记录红、绿、蓝三个亮度,所以是三个通道。网络处理方式相同,只是输入的数字多了一些。
训练图像识别需要很多图片吗?
通常越多越好,但可以借助“数据增强”——把图片做轻微旋转、裁剪、翻转——来变相增加数量。此外还可以用已经在海量图片上训练好的模型做“迁移学习”,自己只需少量图片做微调。
AI 看图会不会被“错觉”骗到?
可以。改动少量像素就可能让模型把 A 认成 B,这类例子被称为“对抗样本”。它说明模型学的是统计上的相似性,而不是像人那样真正理解图像,因此在安全场景中需要额外防护。