- 什么是计算机视觉(CV)?
让计算机理解数字图像或视频的内容。
人类可以瞬间认出猫、读出路牌、判断远近,但对计算机来说,图像只是一堆0-255的像素数字。
👁️ 核心任务:从像素矩阵中提取有意义的信息。
- 四大经典任务
图像分类:这张图是猫还是狗?
目标检测:找出图中所有物体及其位置(画框)
图像分割:每个像素属于哪个物体(精确到轮廓)
姿态估计:识别人体关节关键点
- 卷积神经网络(CNN)------视觉革命的引擎
为什么普通DNN不适合图像?
全连接层参数量巨大:100x100的图,输入层就有1万个节点,第一层隐藏层若1000个节点,权重1000万,易过拟合且慢。
CNN的三大利器
A. 卷积层:用一个小的"卷积核"在图像上滑动,提取局部特征(边缘、纹理)。
例如3x3的核可以检测垂直边缘
多个核可以检测不同特征
B. 池化层:降采样(如2x2区域取最大值),减少尺寸,增加平移不变性。
C. 全连接层:最后将特征图展平,做分类。
经典CNN架构简图
python
Input(224x224x3) -> Conv+ReLU -> Pool -> Conv+ReLU -> Pool -> ... -> FC(1000类)
- 动手:用预训练模型识别1000类物体
python
from tensorflow.keras.applications.resnet50 import ResNet50, decode_predictions
from tensorflow.keras.preprocessing import image
import numpy as np
model = ResNet50(weights='imagenet')
img_path = 'cat.jpg'
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
preds = model.predict(x)
print('Predicted:', decode_predictions(preds, top=3)[0])
- 目标检测的演进
两阶段法(R-CNN系列):先提候选框,再分类。准确但慢。
单阶段法(YOLO, SSD):直接回归框和类别。实时检测(30+FPS)。
YOLO的理念:把图像分成SxS网格,每个网格预测B个边界框和置信度。
- 计算机视觉的日常应用
应用 技术
人脸解锁 人脸检测+识别
自动驾驶 车道线检测+行人检测+语义分割
医疗影像 肺结节检测、视网膜病变分级
安防 行为识别、车牌识别
小结
CNN通过卷积和池化高效提取图像的层次化特征,使计算机视觉从实验室走入千家万户。下一篇我们走进自然语言处理,看看AI如何理解人类的语言。
下一篇预告:《自然语言处理:AI如何读懂你的"弦外之音"?》