12 Week 12: 计算机视觉——图像分类 (CNN)
12.1 课程目标
理解卷积神经网络 (CNN) 原理,掌握图像识别的基本流程,并应用于新闻图片审核场景。
12.2 核心内容
12.2.1 1. 计算机视觉 (CV)
让计算机“看懂”图片。图片在计算机眼里只是一个巨大的数字矩阵(像素点)。
12.2.2 2. CNN (卷积神经网络)
- 卷积层 (Convolution):像放大镜一样扫描图片,提取特征(边缘、纹理)。
- 池化层 (Pooling):压缩图片,保留主要特征,减少计算量。
- 全连接层:根据特征进行分类。
12.2.3 3. 场景:敏感图片识别
在新闻编辑室中,自动识别并过滤包含暴力、血腥或不当内容的图片。
12.3 实战:使用 PyTorch 调用 ResNet
import torch
from torchvision import models, transforms
from PIL import Image
# 1. 加载预训练的 ResNet 模型
model = models.resnet18(pretrained=True)
model.eval()
# 2. 图片预处理
preprocess = transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor(),
])
# 3. 加载图片
img = Image.open("news_photo.jpg")
img_t = preprocess(img)
batch_t = torch.unsqueeze(img_t, 0)
# 4. 预测
out = model(batch_t)12.4 作业
寻找一张新闻图片,使用上述代码(需配置 PyTorch 环境)识别图片中的主要物体。