图像分类 (Image Classification)

任务目标:回答“这张图片里有什么?”。给定一张图片,模型需要输出一个单一的标签来描述图片的主要内容(例如,“猫”、“狗”、“汽车”)。这是计算机视觉中最基础、最核心的任务。

一只猫的图片

预测: 猫

from tensorflow import keras from keras import layers # 典型的分类模型结构 model = keras.Sequential([ # ... 一系列的卷积和池化层 ... layers.Conv2D(32, 3, activation='relu'), layers.MaxPooling2D(), layers.Flatten(), # ... 全连接层 ... layers.Dense(128, activation='relu'), # 输出层,使用 softmax 进行多分类 layers.Dense(10, activation='softmax') ])

目标检测 (Object Detection)

任务目标:回答“图片里的东西分别是什么?它们在哪里?”。目标检测不仅要识别出图片中的多个物体,还要用一个矩形的边界框 (Bounding Box) 把它们的位置标出来。

一只戴眼镜的狗的图片

预测: 狗, [x, y, w, h]

# 目标检测模型更复杂 # 通常包含一个用于特征提取的骨干网络 (Backbone) # 和用于预测边界框与类别的头部网络 (Head) # 经典算法: # - R-CNN, Fast R-CNN, Faster R-CNN # - YOLO (You Only Look Once) # - SSD (Single Shot MultiBox Detector) # model = build_yolo_model() # model.fit(X_train, y_train) # predictions = model.predict(new_image) # # predictions 会包含每个物体的 [类别, 置信度, x, y, w, h]

图像分割 (Image Segmentation)

任务目标:回答“图片中每个像素属于哪个物体?”。这是最精细的图像理解任务,它要求模型对图像中的每一个像素进行分类,从而实现像素级的区域划分。这在自动驾驶(识别道路)、医学影像分析(识别病灶)等领域至关重要。

一辆汽车的图片 汽车的分割掩码

预测: 像素级掩码

# 图像分割模型通常采用编码器-解码器结构 # 编码器 (Encoder) 提取特征 # 解码器 (Decoder) 恢复分辨率并进行像素级分类 # 经典算法: # - FCN (Fully Convolutional Network) # - U-Net # - DeepLab # model = build_unet_model() # model.fit(X_train, y_train_masks) # predicted_mask = model.predict(new_image) # # predicted_mask 的尺寸与原图相同 # # 每个像素的值代表其所属的类别