【问题标题】:How do I detect if a photo is a poster (not realistic)?如何检测照片是否为海报(不真实)?
【发布时间】:2013-08-22 09:51:40
【问题描述】:
我有一些来自音乐家网站的 .jpeg。这些图片包括即将到来的演出的海报和乐队照片(乐队在现实生活中的照片)。
这是一个示例海报:
我并不精通任何现代技术或算法(如果它们存在的话?),但这是我认为我可能会寻找的:
- 图片中的文字通常是海报的绝品。
- 可能逼真的照片(即非海报)遵循不同的颜色分布?
- 海报中可能不太可能出现面孔 - 但这是一个相当薄弱的断言。
是否有任何分类算法可以检测图像是否为海报?
【问题讨论】:
标签:
image-processing
machine-learning
artificial-intelligence
classification
【解决方案1】:
您的问题非常广泛。 海报或照片不是明确定义的对象。什么是海报?在现实生活中,海报往往是照片,或者是照片的组合,或者是经过一点修正的照片。
如果我们缩小到您问题的第一部分中提到的范围 - 乐队照片与即将上映的节目海报,那么答案是 - 可能是的(尽管我从未见过有人这样做)。当您正在寻找二元分类器时,我建议您采用一些机器学习模型(朴素贝叶斯应该就足够了,但如果您想使用更复杂的功能,请尝试使用 SVM、ELM 或一些随机森林/决策树)并应用它编码在向量中的数据包含:
二进制特征:
- “图片上有文字吗?” - 您将需要外部文本检测算法
- “图片上是否有数字” - 事件应该有日期
- “图片上有日期吗”
- “图片上有没有人脸”
使用朴素贝叶斯将构建条件概率P(poster|there is a word)、P(poster|there is a number) 等,这不仅可以为您提供分类器,还可以了解您的特征有多重要(接近0.5 的概率是一个建议,即一个特定的功能是无用的)。
我不会使用直方图等,因为可能的照片范围很广,照片会话样式等。除非您愿意创建非常大的训练集。
如果这还不够,您可以将这些更改为更复杂的特征,并使用比朴素贝叶斯更强大的分类器。
复杂功能:
- 图片上有多少字?
- 图片上有多少个数字?
- 图片上有多少个日期?
- 图片上有多少张面孔?
- 图像直方图
最后一个选项,如果一切都失败了,您可以尝试训练一些现代模型,例如原始图像上的 Deep Belief Network。这需要强大的计算能力,但结果对科学界也非常有价值。