问题剖析
相对于一般目标检测任务,细粒度目标更容易出现类内差异大、类间差异小等现象。
所谓细粒度目标识别,是指在目标检测的基础上,识别出目标的具体型号与类别,例如不只识别出飞机目标,还能识别出飞机型号。粗粒度是分辨猫还是狗,而细粒度是分辨狗的种类,比如这个狗是杜宾犬还是金毛。
基于深度学习的细粒度目标检测算法研究
Awesome Fine-Grained Image Analysis -- Papers, Codes and Datasets (weixiushen.com)
目标识别算法选择
对于细粒度物体识别,通常来说,R-CNN更适合。R-CNN是一种基于区域的卷积神经网络,它在检测和识别物体时能够更好地捕捉物体的细节和特征。相比之下,YOLO更适合于快速的实时物体检测,但在细粒度物体识别上可能不如R-CNN表现出色。
1、yolo
不生成预选框
2、R-CNN
先生成备选框,后分类,修正,识别
3、SSD
4、多模型融合
- 将每个模型的预测结果进行融合,可以采用简单的投票机制、加权平均或者更复杂的集成学习方法来融合这些结果。
- 调整融合权重:根据实际情况,可能需要对不同模型的预测结果进行加权融合,以提高整体预测性能。
数据集获取
训练集、验证集、测试集
堆数据
1、爬虫
1、多搜索引擎爬取
2、筛选去重
- 颜色特征提取
- 纹理特征提取
- SIFT特征对比
2、数据增强
目的:
执行数据增强,你可以阻止神经网络学习不相关的特征,从根本上提升整体性能。
方法:
有监督:
翻转,旋转,缩放,裁剪,移位;
可能的问题:旋转特定角度出现黑色区域 -> 插值
无监督:
- 通过模型学习数据的分布,随机生成与训练数据集分布一致的图片,代表方法GAN。
- 通过模型,学习出适合当前任务的数据增强方法,代表方法AutoAugment。
自动数据增强https://github.com/tensorflow/tpu/blob/master/models/official/detection/utils/autoaugment_utils.py
可能出现的问题:
过度拟合 -> 高斯噪声
样本不平衡问题
图片标注
标注工具:labellmg
影响分类识别的因素
可以归结为三个方面:
- 第一种因素,就是比较常见的基于图像本身的一些因素,比如光照,形变,尺度,模糊等等。
- 第二种因素,就是类内差异太大,比如椅子,桌子,虽然都叫椅子,桌子,可是形态各异。
- 第三种因素,就是类间差异太小,最常见的就是细粒度分类。
缩小类内距离增大类间距离策略------摘自知乎(作者:新想)_多分类损失函数优化 类间距离大-CSDN博客
如何保持分类模型具有类内聚敛、类间分离的特性? - 简书 (jianshu.com)
- triplet loss
- L-softmax
- A-softmax
- Am-softmax
- centerloss
- LDA