如何检测一张照片是否是海报(非现实照片)?

我从音乐家的网站上获取了一些.jpeg格式的图片。这些图片包括即将举行的演出的海报和乐队的真实生活照片(乐队的照片)。

这是一个海报的示例:

enter image description here

我对任何现代技术或算法并不熟悉(如果它们存在的话?),但我认为我可能会寻找以下特征:

  • 图片中的文字通常是海报的明显标志。
  • 或许现实照片(即非海报)遵循不同的颜色分布?
  • 海报可能不太可能包含面孔——但这是一个相当薄弱的断言。

是否有任何分类算法可以检测一张图片是否是海报?


回答:

你的问题非常宽泛。海报照片并不是明确定义的对象。什么是海报?在现实生活中,海报通常是照片,或者照片的组合,或者稍微调整过的照片。

如果我们缩小到你问题第一部分提到的——乐队照片与即将举行的演出海报,那么答案是——可能可以(尽管我从未见过有人这样做)。由于你需要一个二元分类器,我建议采用一些机器学习模型(朴素贝叶斯应该足够,但如果你想使用更复杂的特征,可以尝试支持向量机、极限学习机,或者一些随机森林/决策树),并将其应用于包含以下内容的向量编码数据:

二元特征:

  • “图片中有文字吗?”——你将需要外部的文本检测算法
  • “图片中有数字吗”——活动应该有日期
  • “图片中有日期吗”
  • “图片中有面孔吗”

使用朴素贝叶斯将构建条件概率,如P(海报|有文字)P(海报|有数字)等,这不仅会给你一个分类器,还会提供你的特征的重要性洞察(接近0.5的概率表明特定特征无用)。

我不会使用直方图等,因为可能的照片范围、摄影风格等非常广泛,除非你愿意创建一个非常大的训练集。

如果这些还不够,你可以将这些特征改为更复杂的特征,并使用比朴素贝叶斯更强大的分类器。

复杂特征:

  • 图片中有多少个文字?
  • 图片中有多少个数字?
  • 图片中有多少个日期?
  • 图片中有多少个面孔?
  • 图片直方图

最后一个选项,如果一切都失败了,你可以尝试在原始图片上训练一些现代模型,如深度信念网络。这将需要强大的计算能力,但结果对科学界也将非常有价值。

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注