一、计算机视觉简介
计算机视觉主要关于让计算机学会“看”,理解图像、视频中的内容
主要分类有:
- 图像识别:识别图像中的物体是什么
- 目标检测:
- 图像分割:
主要应用:
人脸识别、视觉感知、图像生成、风格迁移、视频理解与自动转移
二、计算机视觉的发展
-
早起萌芽(1960~1980)
-
统计机器学习与模式识别 (1990~2000)
特征工程技术发展:小波特征、局部二进制(Local Binary Pattern)、比例不变特征变换(Scale Invariant Feature Transform)、定向梯度直方图(Histogram of Oriented Gradients)
大型数据库发展 ImageNet
-
初有成效的视觉系统 (~2010)
-
深度学习的时代 (2012~)
AlexNet提出突破传统视觉系统性能
Fast R-CNN使目标检测走入深度学习时代
深度生成对抗网络实现图像生成 -
当今发展
三、Openmmlab简介
随着深度学习、计算机视觉等学科的发展,各大研究机构和公司陆续开源自己的深度学习框架,
论文发表同时开源代码也成了行业内的习惯和共识。
统一的深度学习框架开始逐渐向统一的算法框架过渡,如Openmmlab算法框架(MMDetection、MMSeg等)
发展历程
MMDetection介绍
MMDetection3D
MMClassification介绍
Openmmlab2.0架构
-
通用:强大的训练器
-
统一:模块抽象
-
统一:训练流程
-
统一:数据接口
三、机器学习基础
-
机器学习是什么?
从数据中学习经验,以解决特定问题
-
为什么让“机器”去“学习”
大规模数据很难用人力解决、速度要求、稳定性要求等 -
典型范式
- 监督学习
- 无监督学习
- 强化学习
-
机器学习常见步骤
-
典型例子-垃圾邮件分类
(1)二分类问题,尝试构建线性分类器。
线性分类器假设类别和特征之间存在某种线性关系,即不同类的数据在特征空间中可以被一条线分开
(2)构建线性分类器的关键:如何求解分界面
感知器算法:
四、神经网络
1. 简介
一种拟合能力非常强的函数,可以适应线性、非线性拟合
- 神经元
- 多层感知机
2. 训练
问题:如何衡量神经网络的性能?怎样调参?
(1)衡量神经网络的性能:损失函数
分类问题常用损失函数:交叉熵损失函数
(2)如何使得神经网络训练过程中损失越来越小?
即找到一个算法调整网络参数使得神经网络的性能最好
优化方法:梯度下降算法等
关键点:
-
如何计算梯度?
反向传播算法
-
如何让梯度下降?
-
改进:优化器
执行梯度下降时经常遇到一些问题,如陷入局部最小值等,需要使用优化器进行改进
-
基于梯度下降训练神经网络的整体流程
-
常见问题
防止过拟合的方法之一:早停
3. 常见神经网络介绍
- 卷积神经网络