图像识别的不同粒度
在研究图像识别时,发现了细粒度图像识别领域,就整体了解了下。
根据粒度的由粗到细可大致分为三层:
- 通用图像识别(图像分类,目标检测,分割等)
- 细粒度图像识别(车型识别等)
- 更精细粒度图像识别(人脸识别等)
举个例子,图像分类就是要识别出是否是人类,细粒度图像分类是要识别出是人类中的哪个人种,更细粒度的图像识别比如人脸识别则是要识别出具体是哪个人。
通用图像识别
图像分类应该算是最早引入深度学习的,经典的模型有AlexNet、VGG、ResNet等。目前基本上算是其他图像识别的基础,其卷积层部分通常被用作特征提取。
经典的数据集有ImageNet。
在图像分类的基础上,有衍生出了目标识别,语义分割、实例分割等。
网上这方面的介绍挺多的,可自行查阅。
细粒度图像识别
细粒度(fine grained)
基于深度学习的物体分类可以大致分为4类:
- 使用通用DCNN(Deep Convolutional Neural >Network,深度卷积神经网络)进行细粒度分类;
- 先使用DCNN进行部件定位,之后进行部位对齐;
- 使用多个DCNN对细粒度识别中的相似特征进行判别;
- 使用注意力模型定位区分性强的区域。
可以按照其使用的监督信息的多少,分为“基于强监督信息的分类模型”和“基于弱监督信息的分类模型”两大类。
所谓强监督的细粒度图像分类算法,是指在模型训练的时候,除了图像的类别标签外,还使用了标注框、局部区域位置等额外的人工标注信息。也有些算法考虑仅在模型训练的时候使用标注信息, 而在进行图像分类时不使用这些信息. 这在一定程度上提高了算法的实用性, 但与只依赖类别标签的弱监督分类算法相比仍有一定的差距。
强监督经典的模型有Part R-CNN, Pose Normalized CNN等
弱监督经典模型有两级注意力(Two Level Attention), 星座(Constellations), 双线性CNN(Bilinear CNN)
弱监督学习下的商品识别:CVPR 2018细粒度识别挑战赛获胜方案简介
双线性汇合(bilinear pooling)在细粒度图像分析及其他领域的进展综述
细粒度分类 | Bilinear model 以及相关的变形
更精细粒度图像识别
其实这个领域我也了解的不太多。
在此以人脸识别为例,虽然也可以按照分类问题来解决,但因为个体很多,以至于基本很难实现,所以通常当做度量学习问题。将人脸通过特征提取方法映射到深度特征空间再做处理。
损失函数比较有趣,通常用对比损失(contrastive loss)和三元损失(triplet loss)。
三元损失函数同时接受三张图像输入
X
\boldsymbol X
X,
X
+
\boldsymbol X_+
X+ 和
X
−
\boldsymbol X_-
X−,其中
X
\boldsymbol X
X和
X
+
\boldsymbol X_+
X+匹配,而
X
\boldsymbol X
X和
X
−
\boldsymbol X_-
X−不匹配
人脸识别的经典模型有DeepFace、FaceNet等