Image processing 使用SciKit图像和SciKit学习进行图像预处理和聚类-需要一些建议

Image processing 使用SciKit图像和SciKit学习进行图像预处理和聚类-需要一些建议,image-processing,machine-learning,scikit-learn,cluster-analysis,scikit-image,Image Processing,Machine Learning,Scikit Learn,Cluster Analysis,Scikit Image,我有一大堆1930-40年代的官方文件图像,包括彩色和黑白,质量相当低(一般

我有一大堆1930-40年代的官方文件图像,包括彩色和黑白,质量相当低(一般<250 kB)。这些是官方机构使用的标准表格的照片,如医院和市政当局等,这些表格是用手或打字机填写的,带有个人信息。我在这篇文章的末尾放了两个典型的例子。(请注意,这些表格都是空的——我不想把带有个人信息的表格放在网上。)

我需要做的是对集合进行排序,以便将相同类型的所有文档分组在一起。我不知道有多少种不同的类型。或者,我可以首先尝试查找一种特定文档类型的所有实例化。我认为前者是一种聚类方法,而后者是一种相似性方法

关于聚类方法,我的想法是(1)预处理图像以增强有用信息,(2)从每个图像中提取特征向量,以及(3)将这些特征向量提供给聚类算法。我想使用SciKit映像和SciKit学习库来完成这三项任务。我做了一些研究和阅读,以熟悉这个主题和可能性,但我不知道从哪里开始,并有一些基本的问题

  • 预处理。哪些方法被证明是有用的?有很多选择:二值化、灰度缩放、倾斜、去噪、模糊、裁剪、缩放
  • 特征提取。我认为,如果图像最有趣的特征(角、线、网格、图片、徽标)被捕获到特征向量中,也就是说,如果这些特征基于所谓的兴趣点,那么这会很有帮助。再说一次,在这方面有没有证明有帮助的具体方法?将图像表示为特征向量的最佳方法是什么?如何提取有趣的特征
  • 聚类。我看到SciKit Learn提供了几种聚类算法。哪一个最适合我的任务?哪些是最适合的开始-像k-means
关于相似性任务,我不清楚如何处理,或者这是否可能。欢迎任何帮助

我意识到这是一个相当广泛的问题。总的来说,我希望收到一些关于我的方法是否有意义以及是否可能产生有用结果的反馈。此外,我将非常感谢任何指向示例、现有管道或一般良好建议的指针

示例:

预处理: 你可以做,灰度,去噪,删除边框和去噪。应该足够让我的计划发挥作用了

  • 调整图像大小以匹配一些常见的格式,如A4,但要注意保持图像的纵横比

  • 你可以找到兴趣点并将其裁剪出来。这样,您只考虑表单字段,而不考虑可能变化的条目

  • 您可以为文档的每个兴趣点制作指纹

  • 您可以从所有这些单独的指纹构建一个完整的图像指纹

  • 只需对所有指纹进行排序,无需复杂的聚类

  • 在已排序的指纹列表中,找出一组文档的结束位置和另一组文档的开始位置,并将它们分开

  • 你完了


    如果你去集群等,过程会慢得多,结果也会一样。这取决于聚类算法,以及你要给它提供什么样的特征向量。但这应该更快,也更便于编程。

    对此类数据进行聚类将非常困难。k-means对坏数据点非常敏感,所以不要认为它能很好地工作。但这在很大程度上取决于您的功能的质量

    我不认为像SIFT这样的标准特性会有多大用处。它们适用于带有渐变等的照片


    您需要仔细设计特征,例如水平线数量与垂直线数量、背景色调等,然后使用稳健的聚类算法(如DBSCAN和分层聚类)进行实验。后者可能是一个更容易的起点,但更难扩展

    我认为,如果您手动确定文档类型的数量,然后通过确定与已识别类别的相似性来尝试查找匹配项,那么您的任务会容易得多

    作为相似性指数,我将采用以下两种策略之一:

    1) 基于形状不变部分的图像配准

    2) 匹配短语/关键字。根据您的示例,“Antrag auf Krankenhausaufname”可以通过pytesseract轻松地从图像中提取,甚至无需对图像进行任何预处理:

    from PIL import Image
    import pytesseract
    
    img = Image.open("test.jpg")
    text = pytesseract.image_to_string(img, lang="deu")
    
    print text
    
    这将产生:


    显然,您可以通过匹配tesseract从文档中可靠提取的短语来匹配文档

    好极了!这与我正在寻找的解决方案最接近。我曾摆弄过泰瑟拉特,但不知道皮特瑟拉特的事。
    Zur Bendmmg für den Veru'dxerlenl ’
    
    Die." Antragudm’n in! der Krln Iren In n: vor
    Au/wdum du Krankenhnu an zlnzuru'dlem
    
    Antrag auf Krankenhausaufnahme
    
    ._ ‚x, - >
    
    A Namp des Mitgligds:
    V'orname: - '
    
    Ehefrau: „_
    Kind :
    
    Arbeitgeber :
    Behandelt seit arbeitsgnfähig seit
    
    Gehikhlq? ja _ nein i s
    Belördemnq durch Kunkenkranwagen — Mxelklahwagen — Ist
    ‘ -- nichl — eflordarllch. r- „ -
    Arbeilsunh‘” Folge eine: Irüheren Arbgttsunlalls’l Un‘allvemlchefle
    Berulxkvankheifl Verkghßq Spodunlall. Schlägerei. Trunksuchfl
    VevsorgungslaideI-J Fundemwirkung? Folge emer Irühercn. nichl
    behobene" Krankhen7
    
    .AZuInfimJn Inlmmidnn g
    
    Krankheitsbezeichnung ')x WM.-."
    
    /
    
    
    
    Begründung: __.___.