计算机视觉与OpenMMLab开源算法体系
计算机视觉基础
- 任务:图像分类、目标检测、图像分割(语义分割、实例分割)
- 应用:图像识别,人脸识别,自动驾驶,图像生成,风格迁移,视频理解和自动剪辑等
- 发展:1. 早期萌芽 (1960~1980);2. 统计机器学习和模式识别(1990~2000); 3. 视觉特征; 4. ImageNet 大型数据库 (2006); 5. 初有成效的视觉系统 (~2010); 6. 深度学习的时代 (2012~); 7. 时至今日:AIGC、大模型、开源
OpenMMLab简介
- OpenMMLab总体现状
- 总体架构
- 算法框架介绍
MMDetection、MMDetection3D、MMClassification、MMSegmentation、MMPose、MMHuman3D、MMTracking、 MMAction2、MMOCR、MMEditing
- OpenMMLab2.0
通用的训练器、统一模块抽象、统一训练流程、统一数据接口、灵活训练流程控制、日志与可视化
- Runner 1.0: 只执行,不构造
– 不负责构建模型、数据等组件
– 由各算法库实现组件构造
- Runner 2.0: 格局打开
– 负责构建模型、数据等组件
– 各算法库构造 Runner 即可
机器学习和神经网络简介
机器学习
- 机器学习是什么
A computer program is said to learn from experience E with respect to some class of tasks T and
performance measure P if its performance at tasks in T, as measured by P, improves with experience
E." ——Tom M. Mitchell (1997)
- 机器学习的典型范式
神经网络
-
神经网络简介
- 线性与非线性分类器
- 神经元:权值 ➕ 偏置的线性组合 ➕ 非线性激活函数(Sigmoid、ReLU等)
- 多层感知器(MLP):单个神经元可实现线性分离,堆叠多层神经元可实现非线性分类
- 多分类任务:输出层的激活函数使用Softmax
-
神经网络的训练
- 损失函数
- 梯度下降算法:随机梯度、反向传播
- 自适应梯度算法:Adam/AdamW 根据梯度的历史幅度自动调整学习率
-
基于梯度下降训练的整体流程
-
欠拟合、拟合与过拟合
卷积神经网络
- Why CNN?
大量节约参数,有效提取图像特征
- 局部连接:像素局部相关
- 共享权重:位移不变性
- 整体架构
- 卷积层:卷积核、通道、padding、步长、空洞
- 激活层:Sigmoid、tanh、ReLu等
- 池化层:最大池化、平均池化
- 全连接层:FC、Linear
- 概率输出层:二分类Sigmod、多分类Softmax
PyTorch环境配置与基本使用
环境配置:https://pytorch.org/get-started/locally/
- 基本模块
- 自动求导 torch.autograd
- 函数库 torch.nn.functional
- 通用模型封装 torch.nn.Module
- 优化器 torch.optim
- 数据工具 torch.utils.data
PyTorch 神经网络demo演示及讲解:
https://pytorch.org/tutorials/beginner/basics/quickstart_tutorial.html#