计算机视觉与OpenMMLab开源算法体系
计算机视觉研究如何自动理解图像和视频中的内容。
任务:
1. 分类;
2. 检测;
1. 包含分类和定位;
2. 针对单个物体;
3. 分割;
1. 语义分割(像素级别,不区分实例);
2. 实例分割(区别同一类别的不同实例)
4. 关键点检测
发展历程:
早期->视觉特征->深度学习(RNN,CNN,Transform).
传统机器视觉:基于特征工程,鲁棒性差;
深度学习从2012开始崛起;
Nerf使用深度学习来解决三维重建,神经渲染;
开源成为AI发展引擎:
![Alt text](OpenMMLab/1675253305865.png)
Pytorch是最流行的深度学习框架;
架构:
部署框架: MMDeploy
算法框架: MMClassification等视觉算法库
视觉基础库:MMCV,包含公用底层模块和抽象训练接口
训练框架: 基于Pytorch
算法框架
1. MMDetection
1. 目标检测;
2. 实例分割;
3. 全景分割;
2. MMDetection3D
图像和点云的3d目标检测
3. MMClassification
4. MMSegmentation
1. 无人驾驶;
2. 遥感;
3. 医疗图像分析;
5. MMPose&MMHuman3D
1. 人体姿态
6. MMTracking
1. 视频目标检测;
7. MMAction2
8. MMOCR
9. MMEditing
1. 像素级别的处理
.....
OpenMMLab优势:
1. SOAT的算法复现,提供预处理模型,避免重复机械的工作;
2. 上游芯片适配支持;
3. 下游企业使用;
1. 机器学习基础
从数据中学习经验,以解决特定问题。
数据驱动。
典型范式:
1. 监督学:通过样本推断数据之间的映射关系;
2. 无监督学习:数据本身的结构和规律;
3. 强化学习:如何和环境交互,获得最大收益;
4. 自监督学习;
2. 机器学习中的分类问题
特征与分类:
线性分类器->感知器学习规则
流程:训练->验证->应用
3. 神经网络的结构:
1. 神经元:bias和weight;
2. 激活函数:引入非线性变换,如Sigmoid,ReLU;
3. 多层感知器;
4. 神经网络的训练:
1. 衡量神经网络的性能:损失函数(交叉熵损失);
2. 梯度下降算法;
5. CNN:
1. 局部连接:像素局部相关;
2. 共享权重:位移不变性;
3. 池化层:局部计算计算最大值/平均值,降低分辨率,提升鲁棒性;
4. 学习好的图像特征;
5. 视觉任务的核心问题:稳健表达图像内容,不受像素外观影响;