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 环境)识别图片中的主要物体。