计算机视觉算法基础与OpenMMLab入门
计算机视觉与OpenMMLab开源算法体系
计算机视觉是什么
计算机视觉是一门让计算机学会“看”的学科, 研究如何自动理解图像和视频中的内容
计算机视觉主要技术:
- 图像分类
- 目标检测
- 图像分割
- 目标跟踪
计算机视觉应用:
-
图像识别:微信 扫一扫识物、人脸识别
-
目标检测:自动驾驶
-
图像生成、风格迁移:动漫特效、航拍转地图
-
关键点检测:虚拟主播
计算机视觉的发展
初有成效的视觉系统(~2010):人工定义特征
-
早期萌芽(1960~1980):边缘提取、三维的视觉计算理论
-
统计机器学习与模式识别(1990~2000):Eigen Face、人脸检测
-
ImageNet大型数据库(2006):包含约2万类,共计约1500万张图片,举办ILSVRC挑战赛
深度学习时代(2012~):卷积神经网络
- 图像分类:AlexNet
- 目标检测:Fast R-CNN
- 图像生成:GAN
时至今日:文字描述生成图片,视觉大模型,神经渲染NeRF
OpenMMLab
部署框架:MMDeploy
算法框架:
基础库:
- MMCV
- 神经网络算子
- 数据增强
- MMEngine
- 训练引擎
- 评测引擎
- 模型管理
机器学习和神经网络简介
机器学习基础
从数据中学习经验,以解决特定问题
机器学习应用:人脸识别、机器翻译、语音识别
**机器学习的典型范式:**监督学习(有标注)、无监督学习(无标注)、强化学习(自适应环境)
机器学习中的分类问题
特征与分类:
关键词提取、统计形成的词频向量,用词频向量代表一个文本称为特征,特征可以看作是向量空间中的点,不同类文本分布在空间中不同的位置上,将空间划分成不同的区域就可以进行分类
线性分类器:
线性分类器假设类别与特征之间存在某种线性关系
感知器:一种线性分类器,从数据中学习
机器学习的基本流程:
- 训练
- 验证
- 应用
神经网络结构
神经元:
单个神经元实现线性分类,多层可以实现非线性分类
神经网络的训练
衡量神经网络的性能:损失函数:交叉熵损失
利用梯度下降降低损失函数的值,寻找最优参数,进而得到最优的神经网络
梯度下降算法:
梯度的计算:反向传播算法
神经网络的训练流程:
- 计算样本的损失
- 计算样本损失的梯度
- 根据梯度信息更新参数
卷积神经网络
全连接网络存在问题:参数量巨大、没有考虑图像本身的二维结构
卷积神经网络:大量节约参数,能够有效提取图像特征
- 局部连接:像素局部相关
- 共享权重:位移不变性
卷积神经网络的整体结构: