计算机视觉与OpenMMLab开源算法体系
计算机视觉
计算机视觉是一门让计算机学会“看”的学科,研究如何自动理解图像和视频中的内容
计算机视觉的应用
- 图像识别
- 人脸识别(人脸检测并定位)
- 自动驾驶的视觉感知
- 动漫特效(图像生成,风格迁移)
- 航拍转地图(图像生成,风格迁移)
- 虚拟主播(人脸关键点识别+CG)
- 视频理解与自动剪辑
计算机视觉的发展
- 早期萌芽,1960~1980
- 统计机器学习与模式识别,1990~2000
- ImageNet 大型数据库,2006
- 初有成效的视觉系统,2010
- 深度学习的时代,2012~ ,AlexNet->fast R-CNN->视觉大模型->神经渲染NerF
OpenMMLab开源算法体系
提供统一先进的底层架构,覆盖计算机视觉众多方向,提供最经典、最前沿的算法支持,提供统一的基准和开箱即用的工作
OpenMMLab开源历程
OpenMMLab架构
算法训练-部署一体化
算法框架介绍
MMDection
MMDection3D
MMClassification
MMSegmentation
MMPose&MMHuman3D
MMTracking
MMAction2
MMOCR
MMEditing
机器学习和神经网络简介
卷积神经网络
激活层:ReLu是最常用的非线性激活函数
- 池化层
最大池化
Y [ h , w , c ] = max 1 ≤ i , j ≤ k X [ s h + i , s w + j , c ] \rm{Y}[h,w,c]=\max_{1\leq i, j\leq k}\rm{X}[sh+i, sw+j, c] Y[h,w,c]=1≤i,j≤kmaxX[sh+i,sw+j,c]
平均池化
Y [ h , w , c ] = 1 k 2 ∑ 1 ≤ i , j ≤ k X [ s h + i , s w + j , c ] \rm{Y}[h,w,c]=\frac{1}{k^2}\sum_{1\leq i, j\leq k}\rm{X}[sh+i, sw+j, c] Y[h,w,c]=k211≤i,j≤k∑X[sh+i,sw+j,c] - 全连接层
全连接层通过矩阵乘法将输入特征 X ∈ R N \rm{X}\in \mathbb{R}^N X∈RN映射为输出特征 Y ∈ R M \rm{Y}\in \mathbb{R}^M Y∈RM
Y = W X + b \rm{Y}=WX+b Y=WX+b
全连接层包含可学习参数 W ∈ R M × N , b ∈ R M W\in \mathbb{R}^{M\times N}, b\in \mathbb{R}^M W∈RM×N,b∈RM - 概率输出层
概率输出层 S : R k → [ 0 , 1 ] k S:\mathbb{R}^k\rightarrow[0,1]^k S:Rk→[0,1]k将网络输出转换为概率向量 p ( k ∣ x ) = S ( h ( x ; w ) ) p(k|x)=S(h(x;w)) p(k∣x)=S(h(x;w))
二分类,全连接层输出标量 z ∈ R z\in\mathbb{R} z∈R,通过Sigmoid函数计算正类的概率
p ( y = 1 ∣ x ) = 1 1 + e x p ( − z ) p(y=1|x)=\frac{1}{1+exp(-z)} p(y=1∣x)=1+exp(−z)1
多分类,全连接层输出k维向量 z ∈ R k z\in\mathbb{R}^k z∈Rk,通过Softmax函数计算k类的概率
p ( y = k ∣ x ) = e x p z k ∑ i = 1 k e x p ( z k ) p(y=k|x)=\frac{expz_k}{\sum_{i=1}^{k}exp(z_k)} p(y=k∣x)=∑i=1kexp(zk)expzk
Pytorch环境配置与基础使用
Pytorch环境配置
https://pytorch.org/get-started/locally
Pytorch的基本模块
函数库nn.functional 提供了构建神经网络所学的计算函数:
- 线性函数
- 卷积
- 池化
- 非线性激活
通用模型torch.nn.Module, 定义了神经网络模型的抽象接口
优化器 torch.optim,支持常用的优化算法:
- SGD
- Adam
- RMSprop
学习策略:补偿衰减、指数衰减、学习率循环