1

背景:我的数据集中有不同类型车辆的尺寸视图的部分图像(部分图像,因为我的相机镜头的视野有限)。这些部分图像覆盖了一半以上的车辆,可以被认为是车辆的良好代表图像。车辆类别为轿车、公共汽车、卡车。我总是在这些图像中看到一个车轮,因为我在一天中的不同时间拍摄这些图像,所以车轮的颜色强度在一天中会发生变化。然而,所有图像中肯定存在一个轮子。

问题:我想知道在逻辑上对分类没有用处的数据集的所有图像中存在的对象是否会以任何方式影响 CNN。基本上我想知道在训练 CNN 之前我应该​​掩盖对象,即在所有图像中将其涂黑还是让它在那里。

4

1 回答 1

2

CNN 将图像分层分解为各种区分模式的组合。这些模式是在训练过程中学习的,以找到能够很好地区分类的模式。

如果每个图像中都存在一个对象,则很可能不需要分离类并且不会被学习。如果依赖于类的对象有一些变化,那么可能会使用它。很难事先知道哪些功能很重要。也许公共汽车的车轮比其他汽车更亮,这是您没有注意到的,因此图像中有车轮是有益的。

如果您无意中引入了一些特定于类的变体,这可能会导致以后的分类出现问题。例如,如果您只在晚上拍摄公共汽车的照片,网络可能会学习night = bus,当您向它展示白天的公共汽车照片时,它不会正确分类。

然而,在网络中使用 dropout 会迫使它学习多个特征进行分类,而不仅仅是依赖一个。因此,如果存在差异,这可能不会产生那么大的影响。

我会使用这些图像而不消隐任何东西。除非是简单的事情,例如去除背景中的粒子等,否则找到对象并将其涂黑会增加另一层复杂性。您可以通过在正常图像上训练网络来测试轮子是否有很大的不同,然后对一些训练示例进行分类,并将对象涂黑并查看类别概率是否发生变化。

把你的精力集中在做好的数据增强上,那是你将获得最大收益的地方。

您可以在本文中看到一个示例,说明在 MNIST 上学习了哪些特征。

于 2018-05-09T08:01:37.293 回答