1.图像级分类
- 特征抽取:
- 卷积神经网络:
- 卷积:图像的 channel 不断的增大
- 卷积
- 批规范化
- 激活函数
- 池化:图像size(H, W)减小
- 网络比较浅的时候,直接堆叠
卷积 + 池化
即可 - 网络比较深的时候,考虑
ResBlock
结构
- 卷积:图像的 channel 不断的增大
- 卷积神经网络:
- 分类输出:
- 有多少类别就有多少个输出神经元
- 全连接来做输出即可
- softmax 模拟概率
- cross entropy 作为损失函数
- 比较粗糙的任务
2.多类别 VS 多标签
-
多类别:multi-class
- 类别有很多个,每个样本属于其中的一个
- imagenet:1000个分类,每个图像属于其中的一个分类
- cat:猫,代表的是图像上有猫
- dog:狗,代表的是图像上有狗
- 试问:如果一张图像上既有猫,又有狗,那该怎么办呢?
- 不适合
-
多标签:multi-label
- 类别有很多,每个样本属于多个类别
- 猫和狗都出现在了一张图像上
- 网络如何设计?
- 跟多分类是一样的
- 把每个输出看作是独立的逻辑回归即可
3.目标检测
- 一张图像上有2只狗和3只猫
- 目标:
- 有什么?
- 有多少?
- 分别在哪里?
- 目标:
- location: 如何做定位?
- 工程师思维:
- 任何一个复杂的新问题,都是简单的老问题的组合!!!
- 把新的问题拆解开,然后转化为能解决的老问题!!!
- 把目标检测问题,转换为图像分类问题!
- 本质:把图像切碎,拿每一个图像块来做图像分类!
- 两套(等价)实现逻辑:
- 先切原始图像,再对每个子图提特征,最后做分类!
- MTCNN:人脸检测网络
- 先整体提特征,再对特征图切图,最后做分类!
- YOLO:目标检测
- 先切原始图像,再对每个子图提特征,最后做分类!
- 两套(等价)实现逻辑:
- 人脸检测:
- 人脸检测是最简单的目标检测!!!
- 比常规的目标检测要简单的多!!!
- 可能的原因:
- 类别:只有2个
- 是否是脸
- 形状:
- 比较类似,拿一个方框即可解决问题!!!
- 类别:只有2个
- 对应的网络,也比较简单:
- MTCNN:
- 3个网络(three stages):
- PNet:海选网络
- 12 X 12
- RNet:精修网络
- 24 X 24
- ONet:输出网络
- 48 X 48
- 3个网络构成一个流水线,逐级处理!!!
- MTCNN:
- 本质:把图像切碎,拿每一个图像块来做图像分类!
4.人脸识别
- 人脸检测:把脸抠出来
- MTCNN
- 目标检测
- 给定一张图像,输出图像中出现的人脸及其边框
- 身份识别:判定身份
- 分类任务
- 给定一张图像,输出人物身份
- 类别会动态变化的分类
- 经常出现新的类别来挑战系统
- 应用场景,不便于实时学习!!!
- 深度度量学习:
- embedding 模型
- 三元损失函数
- vector store
- KNN
- embedding 模型
- 分类任务
5. PReLU
6.三大数据集
- imagenet 图像分类
- MS COCO 分类,目标检测,分割 ....
- Pascal VOC 分类,目标检测,分割 ....
7. 训练数据
- 训练数据:
- 标注的数据:
- 人脸框 1 个
- 人脸关键点 5 个
- 根据训练策略,去生成真正给模型训练的数据
- 标注的数据: