改进现有的通用图像分类算法以适应细粒度分类

本文探讨了细粒度图像分类的挑战,特别是蝴蝶分类,以及如何利用迁移学习和数据增强提升模型性能。通过Keras的ImageDataGenerator进行图像增强,并采用两个模型分别处理整张图像和细节部分,最后通过模型融合提高分类准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于细粒度图像的分类,就是将一个大类中的图像进行细小的分类。这些小类中具有相似的特征。比如鸟的分类、花朵的分类、蝴蝶的分类等等。所以相比较普通的图像分类,细粒度分类的难度更大。就目前的技术而言,有基于强监督学习的细粒度分类(需要标注信息,以及部位的标注信息,part annotations),虽然准确率高一点,但是对于图像标签的获取具有一定的难度。弱监督图像的分类,就是不要这些标注信息,只需要它所对应的类别标签即可。代表性的网络是BCNN。

最近参加了关于蝴蝶分类的算法大赛。主要是关于蝴蝶的分类。在这方面确实花了一点时间。一开始的思路,就是想到细粒度分类,然后查相关的算法,论文等等。但是由于没有找到比较成熟的开源代码,自己又不是主要研究这一方向。后来,就放弃了关于这方面的算法思路。第二种思路,就是基于迁移学习的改进现有的通用的图像的分类网络。因为主办方给出的数据真是少的可怜。第一步首先是进行数据的增强。这对于图像分类而言,基本上是必要的一步。

图像增强的方法:因为成型的网络,比如说VGG,ALEXNET等等,要求图片的输入尺寸是固定的。所以,1.我一开始是将原有的图像通过控制输入图像的纵横比(基于纵横比的图像归一化算法),得到3张纵横比为1的图片,这样所有的图像都可以调整为统一的大小。注意:传统的归一化方法,虽然可以带来固定的尺度,但是会使图像变形,也就是带来失真。2.现在图像变成3张图像,对于深度网络而言,远远不够的。于是,紧接着,我采用了Keras里自带的ImageDataGenerator()函数,来对这三张图像进行平移、缩放、旋转、光照强弱等等处理,因为可以无限生成。在这里我采用一张图片生成30张。这样,我们的数据差不多可以达到可观的数量。

问题1:虽然数据量大幅度提高了,我最后训练出的效果一定很好吗?也就是说数据量越大,模型训练的越好?

我认为一般数据量越大,对于模型的训练程度好而言是有利的。但是如果大量的数据量,其相似程度很大,也就是说这些数据量具有很强的相关性。(类似于我这种一张图片最终变成将近100张图片,这100张图片具有很强的相关性)。答案是否定的,通过查找资料,数据量的增强对模型的增强也是有一定的限度的。因为一个

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值