我需要一种方法来确定图片是否是照片。我有一堆随机图像文件(纸质文档扫描、徽标,当然还有相机拍摄的照片),我只需要过滤掉照片以创建预览。
在确定图像是照片还是绘图中提出的解决方案,很快只能以有限的方式工作(即一些标志完全是黑色的,带有 wite 字体,一些标志只有颜色 - 没有白色区域),有时我已经扫描了一张包含多张带有空白区域的照片的白皮书——我也需要识别这些照片——因为然后我必须将白色部分抠出并将扫描时的照片保存在单独的文件中。
我需要一种方法来确定图片是否是照片。我有一堆随机图像文件(纸质文档扫描、徽标,当然还有相机拍摄的照片),我只需要过滤掉照片以创建预览。
在确定图像是照片还是绘图中提出的解决方案,很快只能以有限的方式工作(即一些标志完全是黑色的,带有 wite 字体,一些标志只有颜色 - 没有白色区域),有时我已经扫描了一张包含多张带有空白区域的照片的白皮书——我也需要识别这些照片——因为然后我必须将白色部分抠出并将扫描时的照片保存在单独的文件中。
您执行此操作的过程可能类似于以下内容:
从图像中提取特征(像素值、像素组、HoG、SIFT、GIST、DCT、小波、字典学习系数等,取决于你有多少时间)
以某种方式聚合这些特征,以便获得固定长度的向量(直方图、金字塔方案)
应用标准分类(SVM、k-NN、神经网络、随机森林)或聚类算法(k-means、GMM 等)并衡量它的工作情况(F1 分数通常还可以,ROC 可能更适合 2-课堂问题)
如果您对第 3 步的结果不满意,请从第 1 步重复使用不同的特征
就步骤 1 和 2 而言,您引用的解决方案似乎非常合理。
提取和聚合特征的简单下一步可能是从图像中的所有像素值创建直方图。如果您有大量标记数据,则应将这些特征提供给标准分类器。否则,对这些直方图特征运行聚类算法并检查聚类分配以查看它们是否与照片/非照片分配相关。
检查以下论文: http: //www.vision.ee.ethz.ch/~gallju/projects/houghforest/houghforest.html。他们提供源代码。
我相信该程序接受带有负片和正片图像的输入文件进行训练。它的分类部分的输出将是一个图像投票图(霍夫图?)。您可能需要确定一个阈值来定位感兴趣的区域。因此,如果图像中有两个徽标,它将标出它们。过去,该算法对我来说效果很好。
我相信,对 100 个正面图像和 100 个负面图像进行训练就足够了。也不要使用大图像进行训练(256x256 应该足够了)。