计算机视觉¶
图像识别、目标检测、图像生成等视觉AI技术。
计算机视觉概述¶
**计算机视觉(Computer Vision, CV)**是使计算机能够"看懂"图像和视频的技术领域。
核心任务¶
| 任务 | 输入 | 输出 | 示例 |
|---|---|---|---|
| 图像分类 | 图像 | 类别标签 | 识别图中的动物 |
| 目标检测 | 图像 | 目标位置+类别 | 检测图中的车辆 |
| 图像分割 | 图像 | 像素级类别 | 分割出图像中的人 |
| 人脸识别 | 人脸图像 | 身份 | 解锁手机 |
| 图像生成 | 文本/噪声 | 图像 | 根据描述生成图片 |
| 视频分析 | 视频 | 行为/事件 | 监控异常行为 |
图像分类¶
任务定义¶
将输入图像分类到预定义的类别中。
输入:图像(如224×224×3) 输出:类别概率分布
经典网络演进¶
| 网络 | 年份 | Top-5错误率 | 创新点 |
|---|---|---|---|
| AlexNet | 2012 | 16.4% | 8层,ReLU,Dropout |
| VGGNet | 2014 | 7.3% | 16-19层,小卷积核 |
| ResNet | 2015 | 3.6% | 152层,残差连接 |
| DenseNet | 2017 | - | 密集连接 |
| EfficientNet | 2019 | - | 复合缩放策略 |
迁移学习¶
概念:使用预训练模型作为起点,在新任务上微调。
流程: 1. 加载预训练模型(ImageNet上训练) 2. 替换最后一层(适应新类别数) 3. 冻结前面层或降低学习率 4. 在新数据上训练
优势: - 减少训练数据需求 - 加速收敛 - 提高泛化能力
目标检测¶
任务定义¶
在图像中定位并识别多个目标。
输出:边界框(x, y, w, h)+ 类别 + 置信度
两阶段检测器¶
R-CNN系列:
| 模型 | 特点 | 速度 | 精度 |
|---|---|---|---|
| R-CNN | 选择性搜索+CNN分类 | 慢 | 高 |
| Fast R-CNN | ROI池化,共享卷积 | 较快 | 高 |
| Faster R-CNN | RPN网络,端到端 | 快 | 高 |
| Mask R-CNN | 增加实例分割 | 较快 | 很高 |
流程:
单阶段检测器¶
YOLO系列:
| 版本 | 特点 | 速度 | 适用场景 |
|---|---|---|---|
| YOLOv1 | 开创性工作 | 快 | 实时检测 |
| YOLOv3 | 多尺度预测 | 很快 | 通用检测 |
| YOLOv5 | PyTorch实现 | 极快 | 工程部署 |
| YOLOv8 | 最新版本 | 快 | 多任务支持 |
SSD: - 多尺度特征图 - 不同尺度的anchor - 速度与精度平衡
检测器对比¶
选择建议: - 精度优先:Faster R-CNN / Mask R-CNN - 速度优先:YOLO系列 - 平衡:YOLOv8 / SSD
图像分割¶
语义分割¶
任务:将每个像素分类到预定义类别。
应用: - 自动驾驶(道路/车辆/行人分割) - 医学影像(器官/病灶分割) - 遥感图像(地物分类)
经典网络:
| 网络 | 特点 | 创新 |
|---|---|---|
| FCN | 全卷积网络 | 端到端分割 |
| U-Net | 编码器-解码器+跳跃连接 | 医学分割首选 |
| DeepLab | 空洞卷积+CRF | 多尺度特征 |
| PSPNet | 金字塔池化 | 全局上下文 |
实例分割¶
任务:分割出每个独立实例。
与语义分割区别: - 语义分割:只分类,不区分实例 - 实例分割:每个目标单独标注
代表方法: - Mask R-CNN:在Faster R-CNN基础上增加分割分支 - YOLACT:实时实例分割
全景分割¶
任务:同时完成语义分割和实例分割。
统一框架: - 背景用语义分割 - 前景实例用实例分割
人脸识别¶
技术流程¶
人脸检测¶
方法: - MTCNN:多任务级联CNN - RetinaFace:单阶段检测 - YOLO-Face:基于YOLO
特征提取¶
经典模型: - DeepFace(Facebook) - FaceNet(Google) - ArcFace(当前主流)
损失函数: - Softmax Loss:基础分类 - Triplet Loss:学习embedding - ArcFace Loss:加性角度间隔
应用场景¶
| 场景 | 要求 | 技术 |
|---|---|---|
| 手机解锁 | 高精度,低误识率 | 3D结构光/ToF |
| 门禁系统 | 实时,1:N比对 | 活体检测+识别 |
| 相册分类 | 大规模聚类 | 特征聚类 |
| 安防监控 | 远距离,低质量 | 超分+增强 |
图像生成¶
生成对抗网络(GAN)¶
原理:生成器与判别器对抗训练。
应用: - 人脸生成 - 风格迁移 - 图像超分辨率 - 图像修复
扩散模型(Diffusion Model)¶
原理: 1. 前向过程:逐步加噪 2. 反向过程:逐步去噪生成图像
代表模型: - DDPM:去噪扩散概率模型 - Stable Diffusion:潜在空间扩散 - DALL-E 2:OpenAI的文本到图像 - Midjourney:艺术创作
文本到图像生成¶
流程:
关键技术: - CLIP:连接文本和图像 - 注意力机制:控制生成内容 - CFG:分类器自由引导
视频分析¶
任务类型¶
| 任务 | 说明 | 应用 |
|---|---|---|
| 动作识别 | 识别视频中人的行为 | 视频分类 |
| 时序检测 | 检测视频中的事件 | 异常检测 |
| 目标跟踪 | 跟踪视频中的目标 | 监控分析 |
| 视频分割 | 分割视频中的物体 | 视频编辑 |
动作识别¶
方法: - Two-Stream:空间流+时间流 - 3D CNN:直接处理时空信息 - LSTM+CNN:CNN提取特征,LSTM建模时序 - Transformer:ViT扩展到时序
目标跟踪¶
流程: 1. 第一帧初始化目标 2. 后续帧预测目标位置 3. 处理遮挡、形变、尺度变化
主流方法: - SiamFC:孪生网络 - YOLO+跟踪:检测+数据关联 - DeepSORT:深度学习+卡尔曼滤波
计算机视觉应用¶
自动驾驶¶
感知系统: - 目标检测(车辆、行人、交通标志) - 车道线检测 - 可行驶区域分割 - 深度估计
代表公司: - Tesla(纯视觉方案) - Waymo(激光雷达+视觉)
医疗影像¶
应用: - 病灶检测(肺结节、肿瘤) - 器官分割 - 疾病诊断辅助 - 病理分析
挑战: - 数据隐私 - 标注成本高 - 需要可解释性
工业质检¶
应用: - 缺陷检测 - 尺寸测量 - 装配验证 - OCR识别
优势: - 24小时工作 - 一致性高 - 可检测微小缺陷
零售与电商¶
应用: - 商品识别 - 货架分析 - 虚拟试衣 - 智能结算
计算机视觉工具¶
开源框架¶
| 框架 | 特点 | 适用场景 |
|---|---|---|
| OpenCV | 经典CV库,功能全面 | 传统CV算法 |
| Pillow | Python图像处理 | 基础图像操作 |
| Detectron2 | Facebook出品 | 目标检测/分割 |
| MMDetection | 商汤开源 | 检测模型库 |
| Ultralytics | YOLO官方 | YOLO系列 |
预训练模型¶
- ImageNet预训练:通用特征
- COCO预训练:检测/分割
- 人脸预训练:人脸识别
发展趋势¶
当前热点¶
- 视觉Transformer:ViT在CV领域崛起
- 自监督学习:减少标注依赖
- 多模态融合:视觉+语言
- 神经渲染:3D场景生成
- 高效模型:移动端部署
未来方向¶
- 3D视觉:深度估计、点云处理
- 神经辐射场(NeRF):3D重建
- 具身智能:视觉+机器人
小结¶
计算机视觉是AI最成熟的应用领域之一,从图像分类到复杂的视频分析,技术不断进步。
学习路径: 1. 掌握深度学习基础 2. 学习经典网络架构 3. 实践项目(Kaggle、GitHub) 4. 关注最新论文
延伸阅读: