非真实图像的图像分类

数据挖掘 图像分类 图像识别 图片 分类器
2021-10-09 03:33:30

我想知道图像分类器网络如何在不是照片的图像上执行。例如,如果你将一张汽车或一张脸的图画提供给一个只接受过照片训练的图像分类器,那么网络是否仍然能够正确地对图像进行分类?

此外,如果您要将越来越多的抽象图纸输入网络会怎样。作为人类,我们甚至能够识别抽象形式(即现代艺术)的物体,但当前的图像分类器是否能够很好地概括以做到这一点?

是否有任何网络也接受过艺术家对物体的演绎,而不仅仅是照片?

3个回答

这个问题有点哲学,但可以这样解释——如果你的模型是在真实照片上训练的,它可能不会很好地概括为像图画这样的东西,除非它们是逼真的或包含模型用来对图像进行分类的特征。您可能必须在训练数据中包含绘图才能有效地做到这一点。

一个有趣的利用机器学习的项目可能与您所谈论的内容有些相关,它是最近的一个名为“Quick Draw!”的 Google 项目。(链接在这里)你应该检查一下。本质上,它接受人类绘画的输入,并为它认为你画的东西输出一个分类标签。

根据经验,您的测试集的数据分布应该与训练集中的数据分布具有相同的性质。

因此,例如,如果您有一个对猫和狗进行分类的网络,并且您使用超级干净和优质的图像对其进行训练,然后您尝试向它提供使用蹩脚手机完成的模糊图像,您可能会对结果感到惊讶......性能将最可能下降。

在您的情况下,也会发生同样的情况,与狗的图片相比,狗的画具有完全不同的分布,因此网络很可能不会像预期的那样表现良好。

也就是说,CNN 实际上可以学习低级特征(边界等),所以可以肯定的是,你仍然会获得某种准确性,但肯定不是很好。

Keras 博客中有一篇很棒的文章,我强烈建议您阅读

两个答案都很好。相反的情况经常发生,如果你在谷歌中寻找“从合成中检测瞳孔”,你会发现很多论文使用 Unity Eyes 来训练不同的模型。特别喜欢郭超在这件事上的工作:

在 Learning-by-Synthesis for Accurate Eye Detection 中,他用纯合成数据训练了一个模型,并显示了显着的结果,并与部分合成数据和部分真实数据的使用进行了比较。

此外,该作者和其他作者也使用 GAN 改进合成数据以获得更好的结果。例如,参见用于眼睛图像合成和眼睛注视估计的分层生成模型、用于眼睛形状注册和注视估计的眼睛渲染以及对抗性合成图像中进行级联学习以进行准确的瞳孔检测

重要的是要注意,如果没有经过训练,噪声和其他真实的摄影失真会使 CNN 的准确性下降很多。