【发布时间】:2020-11-29 10:00:53
【问题描述】:
我正在寻找一种方法来以编程方式识别图像是否可能是照片还是插图/徽标/图表。图像始终是 JPEG,因此我不能单独使用格式元数据来区分(我也研究过使用尺寸,但这在我正在使用的场景中没有帮助相似的比率,它们通常也已经被剥离了相机元数据)。
具体来说,我想要一种方法来筛选出我遇到的
我不介意解决方案使用什么编程语言或平台。能够使用现有的高级库或易于实现的(即尽可能少的 LoC ;)可以用多种语言复制的低级方法将是理想的。我也很感激有人指出这样做的开源项目的例子,即使他们所做的事情是 hacky。
我没有太多运气来寻找这样做的技术。我注意到许多搜索引擎在搜索图像时提供了此选项,并取得了不同程度的成功。
注意:我从各种来源获取现有图像,这样做是出于研发目的,并且符合当地版权法(在任何人询问之前)。
如果没有任何库可以做到这一点,我可能最终会写一个(可能基于最大唯一颜色、纯色块等估计概率),但我希望有人已经发布了一些有用的东西,并且就是没找到!
【问题讨论】:
-
看看Hany Farid的作品。
-
我可能会考虑的一件事是寻找图像传感器引入的噪声。每个通道应该不同,这样可能更容易检测。不过,JPEG 压缩可能会使事情复杂化。另外,stackoverflow.com/questions/9354744/… 和 birds-are-nice.me/programming/photo-art-class.shtml
-
感谢@MarkSetchell,非常有希望!我将首先尝试寻找熵的简单方法(然后可能是颜色计数),并将根据我的进展情况进行更新。也感谢米奇!
-
计算不同颜色的数量适用于多种插图、徽标和卡通。预先将图像从 RGB 转换为 HSI(或 HSV)格式,将色调分配给合适数量的 bin,并计算占用了多少 bin。插图也可能包含较少的不同饱和度值。