DE112016001784T5 - Dokumentenscanner - Google Patents

Dokumentenscanner Download PDF

Info

Publication number
DE112016001784T5
DE112016001784T5 DE112016001784.7T DE112016001784T DE112016001784T5 DE 112016001784 T5 DE112016001784 T5 DE 112016001784T5 DE 112016001784 T DE112016001784 T DE 112016001784T DE 112016001784 T5 DE112016001784 T5 DE 112016001784T5
Authority
DE
Germany
Prior art keywords
text
image
word
text image
linelets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112016001784.7T
Other languages
English (en)
Inventor
Krishnendu Chaudhury
Lu Chen
David Petrou
Blaise Aguera-Arcas
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of DE112016001784T5 publication Critical patent/DE112016001784T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/414Extracting the geometrical structure, e.g. layout tree; Block segmentation, e.g. bounding boxes for graphics or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4038Scaling the whole image or part thereof for image mosaicing, i.e. plane images composed of plane sub-images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • G06V10/243Aligning, centring, orientation detection or correction of the image by compensating for image skew or non-uniform image deformations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/26Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
    • G06V10/267Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion by performing operations on regions, e.g. growing, shrinking or watersheds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/50Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/757Matching configurations of points or features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/22Character recognition characterised by the type of writing
    • G06V30/224Character recognition characterised by the type of writing of printed characters having additional code marks or containing code marks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/418Document matching, e.g. of document images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • G06V10/247Aligning, centring, orientation detection or correction of the image by affine transforms, e.g. correction due to perspective effects; Quadrilaterals, e.g. trapezoids

Abstract

Verfahren, Systeme und Vorrichtung, einschließlich Computerprogrammen, die auf einem Computerspeichermedium codiert sind, zum Erzeugen eines scanbaren Dokuments. In einem Aspekt umfasst ein Verfahren, eine Scan-Anforderung zu empfangen, wobei die Scan-Anforderung eine Vielzahl von Textbildern enthält; für jedes Textbild der Vielzahl von Textbildern: das Textbild zu rektifizieren, um ein Textbild mit parallelen Bildlinien zu erzeugen, eine Vielzahl von Wortbegrenzungskästchen zu erzeugen, die eine oder mehrere verbundene Komponenten in dem Textbild umschließen, wobei jedes Wortbegrenzungskästchen einem jeweiligen Wort zugeordnet ist, und für jedes jeweilige Wort in dem Textbild eine Vielzahl von Punkten zu erzeugen, die das jeweilige Wort repräsentieren; die Vielzahl von Textbildern zu kombinieren, um ein einzelnes Textdokument zu bilden; und das kombinierte Bild als ein scanbares Dokument bereitzustellen.

Description

  • HINTERGRUND
  • Diese Beschreibung bezieht sich auf Bildverarbeitung.
  • Konventionelles Panorama-Stitching ist eine Technik zum Kombinieren von mehreren fotografischen Bildern mit überlappenden Sichtfeldern, um ein segmentiertes Panorama oder hochaufgelöstes Bild zu erzeugen. Zum Beispiel nutzen hochaufgelöste Mosaiken von Satellitenbildern und digitalen Landkarten Panorama-Stitching. Andere konventionelle Anwendungen, zum Beispiel medizinische Bildgebung und Bildstabilisierung, wenden ebenfalls Panorama-Stitching-Techniken an. Das Aufnehmen von Bildern mit unterschiedlichen Orientierungen, Winkeln, Perspektiven und Tiefen verzerrt typischerweise das finale Stitching-Bild.
  • KURZDARSTELLUNG
  • Allgemein kann ein Aspekt des in diesem Dokument beschriebenen Gegenstandes in einer Technik verkörpert sein, die umfasst, eine Scan-Anforderung zu empfangen, wobei die Scan-Anforderung eine Vielzahl von Textbildern enthält, wobei jedes Textbild einen Abschnitt eines Textdokuments repräsentiert, wobei die Vielzahl von Textbildern ein erstes Textbild und ein zweites Textbild enthält, die sich mindestens teilweise überlappen; für jedes Textbild der Vielzahl von Textbildern: das Textbild zu rektifizieren, um ein Textbild mit parallelen Bildlinien zu erzeugen, eine Vielzahl von Wortbegrenzungskästchen zu erzeugen, die eine oder mehrere verbundene Komponenten in dem Textbild umschließen, wobei jedes Wortbegrenzungskästchen einem jeweiligen Wort zugeordnet ist, und für jedes jeweilige Wort in dem Textbild eine Vielzahl von Punkten zu erzeugen, die das jeweilige Wort repräsentieren; die Vielzahl von Textbildern zu kombinieren, um ein einzelnes Textdokument zu bilden, einschließlich, das erste Textbild der Vielzahl von Textbildern und das zweite Textbild der Vielzahl von Textbildern durch Anpassen einer ersten Gruppe von Punkten, die dem ersten Textbild zugeordnet sind, und einer zweiten Gruppe von Punkten, die dem zweiten Textbild zugeordnet sind, zu kombinieren; und das kombinierte Bild als ein scanbares Dokument bereitzustellen.
  • Das Rektifizieren jedes Textbildes der Vielzahl von Textbildern kann umfassen, eine Vielzahl von verbundenen Komponenten in dem Textbild zu ermitteln, wobei jede verbundene Komponente ein gefüllter Abschnitt eines Zeichens ist, eine Vielzahl von Bildlinien in dem Textbild, die vertikale Linelets und horizontale Linelets enthalten, auf Basis der Vielzahl von verbundenen Komponenten zu erzeugen, einen horizontalen Fluchtpunkt und einen vertikalen Fluchtpunkt auf Basis der Vielzahl von Bildlinien zu berechnen, und eine geometrische Formel auf den ersten und zweiten Fluchtpunkt anzuwenden, um parallele Linien in dem Textbild wiederherzustellen.
  • Die Vielzahl von Bildlinien kann eine Vielzahl von vertikalen Linelets und eine Vielzahl von horizontalen Linelets enthalten. Jedes vertikale Linelet ist eine Skelettlinie durch einen aufrechten Abschnitt einer verbundenen Komponente, und jedes horizontale Linelet ist eine Regressionslinie durch ein Zentrum einer Gruppe von benachbarten verbundenen Komponenten.
  • Das Berechnen eines horizontalen Fluchtpunktes und eines vertikalen Fluchtpunktes auf Basis der Vielzahl von Bildlinien kann weiterhin umfassen, den horizontalen Fluchtpunkt unter Verwendung der horizontalen Linelets zu berechnen und den vertikalen Fluchtpunkt unter Verwendung der vertikalen Linelets zu berechnen.
  • Das Verfahren kann weiterhin umfassen, ein Paar vertikale Linelets und ein Paar horizontale Linelets auszuwählen, den horizontalen Fluchtpunkt unter Verwendung des ausgewählten Paares horizontale Linelets zu berechnen und den vertikalen Fluchtpunkt unter Verwendung des ausgewählten Paares vertikale Linelets zu berechnen.
  • Das Auswählen eines Paares horizontale oder vertikale Linelets kann umfassen, eine absteigende Sortierung der Vielzahl von horizontalen oder vertikalen Linelets auf Basis einer Liniensegmentlänge durchzuführen und ein erstes Linelet aus dem Top-zwanzig-Perzentil der Vielzahl von sortierten Linelets auszuwählen und ein zweites Linelet aus dem Top-fünfzig-Perzentil der Vielzahl von sortierten Linelets auszuwählen.
  • Das Erzeugen einer Vielzahl von Wortbegrenzungskästen kann umfassen, benachbarte verbundene Komponenten mit einem Betrag an Weißraum unterhalb einer vorbestimmten Schwelle zu verschmieren.
  • Die erste Gruppe von Punkten und die zweite Gruppe von Punkten können Wortform-Deskriptoren sein. Das Verfahren kann weiterhin umfassen, einen Wortform-Deskriptor für jedes der Vielzahl von Wortbegrenzungskästchen zu berechnen.
  • Das Berechnen eines Wortform-Deskriptors für ein Wortbegrenzungskästchen kann umfassen, das Wortbegrenzungskästchens in ein festes Gitter von Zellen zu kacheln und Histogramm-orientierte Gradienten über dem Wortbegrenzungskästchen durchzuführen, um einen Vektor-Deskriptor mit der Form des Wortes zu erzeugen, das dem Wortbegrenzungskästchen zugeordnet ist.
  • Das Kombinieren des ersten Textbildes und des zweiten Textbildes kann ein Blending des ersten Textbildes mit dem zweiten Textbild umfassen.
  • Eine Zahl von Anpassungspunkten zwischen der ersten Gruppe von Punkten, die dem ersten Textbild zugeordnet sind, und der zweiten Gruppe von Punkten, die dem zweiten Textbild zugeordnet sind, kann eine Schwellenzahl von Anpassungspunkten übersteigen.
  • Das Kombinieren der Vielzahl von Textbildern kann weiterhin ein Blending der Vielzahl von Textbildern, die das einzelne Textdokument bilden, ein Entzerren des einzelnen Textdokuments und Durchführen von optischer Zeichenerkennung an dem einzelnen Textdokument umfassen. Andere Ausführungsformen dieses Aspekts umfassen entsprechende Systeme, Vorrichtungen und Computerprogramme, die auf Computerspeichergeräten codiert sind und jeweils konfiguriert sind, die Aktionen der Verfahren durchzuführen. Ein System aus einem oder mehreren Computern kann konfiguriert sein, bestimmte Aktionen durchzuführen, indem Software, Firmware, Hardware oder eine Kombination davon auf dem System installiert ist, die im Betrieb das System veranlassen, die Aktionen durchzuführen. Ein oder mehrere Computerprogramme können konfiguriert sein, bestimmte Aktionen durchzuführen, indem sie Anweisungen enthalten, die bei Ausführung durch ein Datenverarbeitungsgerät das Gerät veranlassen, die Aktionen durchzuführen.
  • Der in dieser Beschreibung beschriebene Gegenstand kann in bestimmten Ausführungsformen implementiert werden, um einen oder mehrere der folgenden Vorteile zu realisieren. Der Benutzer kann mehrere Bilder von mindestens einem Abschnitt eines Dokuments in unterschiedlichen Winkeln, Orientierungen, Perspektiven oder Distanzen aufnehmen, um ein scanbares Gesamtbild eines Dokuments zu erzeugen, ohne Auflösung zu opfern und ohne die Kamera perfekt auf das Dokument ausrichten zu müssen. Der Benutzer kann die Kamera ohne übermäßige Beschränkung auf Tiefe oder Orientierung über einer ebenen Fläche mit Text, z. B. einer Zeitschrift, einer Zeitungsseite oder einem Plakat ausrichten und schwenken, um ein Bild des Dokuments aufzunehmen. Der Benutzer kann die Bilder wahllos oder in einem vorgegebenen Muster aufnehmen. Darüber hinaus können mehrere Benutzer oder Geräte zu den mehreren Bildern beitragen, die zum Bilden des scanbaren Dokuments verwendet werden.
  • Die Details von einer oder mehreren Ausführungsformen des in diesem Dokument beschriebenen Gegenstandes sind in den begleitenden Zeichnungen und der nachfolgenden Beschreibung angegeben. Weitere Merkmale, Aspekte und Vorteile des Gegenstandes ergeben sich aus der Beschreibung, den Zeichnungen und den Ansprüchen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt ein Beispiel für ein Bildverarbeitungssystem.
  • 2 ist ein Flussdiagramm eines Beispielprozesses zur Erzeugung eines scanbaren Dokuments.
  • 3 ist ein Flussdiagramm eines Beispielprozesses zur Durchführung von Rektifizierung eines Bildes.
  • 4 ist ein Flussdiagramm eines Beispielprozesses zur Durchführung von Mosaikierung.
  • Gleiche Bezugszeichen und Bezeichnungen in den verschiedenen Zeichnungen zeigen gleiche Elemente an.
  • DETAILLIERTE BESCHREIBUNG
  • 1 zeigt ein Beispiel für ein Bildverarbeitungssystem 100. Das Bildverarbeitungssystem 100 ist ein Beispiel für ein System, das als eines oder mehrere Computerprogramme auf einem oder mehreren Computern an einem oder mehreren Orten implementiert ist, worin die nachfolgend beschriebenen Systeme, Komponenten und Techniken implementiert sind.
  • Das Bildverarbeitungssystem 100 enthält ein Bildverarbeitungsmodul 110 auf einem Benutzergerät 102, z. B. einem Smartphone, einem Tablet oder einer Smartwatch, das Scan-Anforderungen von einem Benutzer verarbeitet, um aus mehreren Bildern scanbare Dokumente zu erzeugen. Ein scanbares Dokument ist ein hochaufgelöstes Bild eines Textdokuments, in dem das System optische Zeichenerkennung (OCR) oder andere geeignete Zeichenerkennungsverfahren durchführen kann, um den Text des Dokuments zu erkennen. Ein Textdokument ist irgendeine ebene Fläche, die Text enthält.
  • Ein Benutzer interagiert mit dem Bildverarbeitungsmodul 110 durch ein Benutzergerät 102. Das Bildverarbeitungsmodul 110 kann Dokumente entfernt in einem Speicherbereich 122 elektronisch speichern, z. B. über ein Datenkommunikationsnetz 120. Das Datenkommunikationsnetz 120, z. B. ein lokales Netz (LAN) oder Weitverkehrsnetz (WAN), z. B. das Internet, oder eine Kombination von Netzen, verbindet das Bildverarbeitungsmodul 110 mit dem Speicherbereich 122. Das Bildverarbeitungsmodul 110 und das Benutzergerät 102 sind eine (Zahlwort) Maschine. Zum Beispiel installiert ein Benutzer eine Anwendung, die die Bildverarbeitung auf dem Benutzergerät durchführt.
  • Das Benutzergerät 102 enthält ein Bildaufnahmegerät 104 wie z. B. eine Kamera, einen Speicher 106 und einen Prozessor 108. Das Bildaufnahmegerät 104 muss nicht die gesamte ebene Fläche des Textdokuments in einem einzigen Bild aufnehmen, um das scanbare Dokument zu erstellen. Zum Beispiel kann der Benutzer das Bildaufnahmegerät 104 über die gesamte ebene Fläche hinweg schwenken und die ebene Fläche in mehreren Bildern aufnehmen.
  • Das Bildverarbeitungsmodul 110 enthält einen Bildprozessor 112, der eine Scan-Anforderung von einem Benutzer empfängt. Wie in dieser Beschreibung verwendet, ist eine Scan-Anforderung eine Anforderung, ein oder mehrere Bilder eines Textdokuments zu einem scanbaren Dokument zu verarbeiten. Die Scan-Anforderung kann eine Anforderung sein, ein scanbares Dokument einer Seite einer Zeitschrift oder einer Seite eines Buches aus mehreren Bildern zu erzeugen. Ein weiteres Beispiel für einen Scan-Anforderung ist eine Anforderung, ein scanbares Dokument aus einem Schild oder Plakat zu erzeugen. Ein weiteres Beispiel für eine Scan-Anforderung kann sein, ein scanbares Dokument aus Text auf irgendeiner ebenen Fläche zu erzeugen. Das Bildverarbeitungsmodul 110 verarbeitet die Scan-Anforderung, indem es unterschiedliche Bilder des Textdokuments zusammenfügt. In manchen Implementierungen ist ein Bild ein binarisiertes Bild.
  • Die Scan-Anforderung enthält Bilder von mindestens einem Abschnitt des Textdokuments, um das scanbare Dokument zu bilden. Der Bildprozessor 112 kann mehrere Bilder von mehreren Abschnitten eines oder mehrerer Textdokumente empfangen. Jedes Bild eines Abschnitts eines Textdokuments enthält einen Textabschnitt. Jedes Bild enthält auch einen Textabschnitt, der sich mit einem anderen Textabschnitt in einem anderen Bild der mehreren Bilder der Textdokumente überlappt. Der Bildprozessor 112 kann empfangene Bilder in einer Bilddatenbank 116 speichern.
  • Der Bildprozessor 112 identifiziert ein oder mehrere Textbilder in der Scan-Anforderung, die bei Rektifizierung und Mosaikierung ein scanbares Dokument erzeugen. Wie in dieser Beschreibung verwendet, ist ein rektifiziertes Bild ein Textbild, das parallele horizontale Textlinien und parallele vertikale Skelettlinien aufweist. In manchen Implementierungen verwendet der Bildprozessor 112 gespeicherte Bilder aus der Bilddatenbank 116 sowie Bilder, die vom Bildaufnahmegerät 104 empfangen worden sind, um das scanbare Dokument zu bilden. In anderen Implementierungen verwendet der Bildprozessor 112 nur gespeicherte Bilder aus der Bilddatenbank oder nur Bilder, die vom Bildaufnahmegerät 104 empfangen worden sind, um das scanbare Dokument zu bilden.
  • Der Bildprozessor 112 führt auch die Mosaikierung von mehreren Bildern durch, um eine vereinheitlichte frontal-parallele Ansicht zu bilden. Dokumentbild-Mosaikierung bezieht sich auf den Prozess der Erzeugung einer vereinheitlichten frontal-parallelen Ansicht aus einer Folge von überlappenden Bildern. Mosaikierung basiert auf einer Schätzung einer Homographie zwischen zwei sich überlappenden Ansichten. Der Abschnitt des Textdokuments, den zwei unterschiedliche Bilder gemeinsam haben, ist eine überlappende Ansicht. Der Bildprozessor erkennt überlappende Ansichten durch Anpassen von Punkten in den zwei verschiedenen Ansichten. Punkte charakterisieren die Form von Wörtern in einem Textbild. Der Bildprozessor 112 fügt die überlappenden Ansichten unter Verwendung der aneinander angepassten Punkte mittels Stitching zusammen, um die vereinheitlichte frontal-parallele Ansicht zu bilden. Stitching ist der Prozess, mehrere Bilder mit überlappenden Blickwinkeln zu kombinieren, um ein kombiniertes Bild zu erzeugen, zum Beispiel ein segmentiertes Panorama oder ein hochaufgelöstes Bild.
  • Das Bildverarbeitungsmodul 110 enthält auch eine Rektifizierungsmaschine 118, die jedes Text enthaltende Bild rektifiziert. Speziell führt die Rektifizierungsmaschine 118 einen Transformationsprozess durch, der jedes Text enthaltende Bild mit unterschiedlichen Perspektiven, Tiefen und Orientierungen auf eine gemeinsame Ebene mit einer vereinheitlichten frontal-parallelen Ansicht projiziert. Die Rektifizierungsmaschine 118 verwendet eine geometrische Formel, um jedes Bild in die frontal-parallele Ansicht zu transformieren und Bildlinien in dem Bild parallel zu machen. Die Bildlinien enthalten horizontale und vertikale Linelets. Horizontale und vertikale Linelets, die Regressionslinien bilden, die nicht parallel verlaufen, weisen darauf hin, dass es eine Verzerrung in einem Bild gibt. Ein horizontales Linelet ist ein kleines Liniensegment, das auf eine Textlinie ausgerichtet ist. Ein vertikales Linelet ist eine Skelettlinie durch einen aufrechten Abschnitt eines Buchstabens. Die Rektifizierungsmaschine 118 führt Tätigkeiten durch, um die Verzerrung aus dem Bild zu entfernen. Nach Fertigstellung liefert die Rektifizierungsmaschine 118 das Bild an den Bildprozessor 112 zur Weiterverarbeitung.
  • Das Bildverarbeitungsmodul 110 enthält einen Bildnachbearbeitungsprozessor 114. Der Bildnachbearbeitungsprozessor 114 führt Blending, Entzerrung und optische Zeichenerkennung der vereinheitlichten frontal-parallelen Ansicht eines Dokuments durch, nachdem der Bildprozessor die mehreren rektifizierten Bilder durch Stitching zusammengefügt hat. Blending ist der Prozess, Bilder ineinander zu glätten, um eine nahtlose Gradation von einem Bild zum anderen zu erzeugen, so dass die getrennten Bilder nicht mehr unterscheidbar sind. Entzerrung ist der Prozess, ein Bild gerade zu richten, das in eine Richtung schräg gestellt ist oder fehlausgerichtet ist. Der Bildnachbearbeitungsprozessor 114 wendet eine Rotation auf die Einzelansicht des Dokuments an, um zusammen mit der Entzerrung die Textlinien auf eine X-Achse des Bildes auszurichten. Optische Zeichenerkennung ist die Umwandlung von Bildern von Text in maschinencodierten Text.
  • 2 ist ein Flussdiagramm eines Beispielprozesses 200 zur Erzeugung eines scanbaren Dokuments. Der Prozess 200 wird von einem System aus einem oder mehreren Computern durchgeführt. Zum Beispiel kann ein Bildverarbeitungssystem, z. B. das geeignet programmierte Bildverarbeitungssystem 100 von 1, den Prozess 200 durchführen.
  • Das System empfängt eine Scan-Anforderung, die Textbilder enthält (Schritt 202). Die Scan-Anforderung ist eine Anforderung, ein scanbares Dokument aus mehreren Textbildern zu erzeugen. Jedes Textbild ist eine Repräsentation eines Teils eines bestimmten Dokuments, das einen Textabschnitt aufweist, der sich mit einem Textabschnitt in einem Teil überlappt, der durch ein anderes Textbild der mehreren Textbilder repräsentiert wird. In manchen Implementierungen ist ein Teil ein Abschnitt eines bestimmten Dokuments. Die durch Stitching kollektiv zusammenfügten Textbilder bilden ein Bild eines Dokuments, das scanbar ist. In anderen Implementierungen ist ein Teil das gesamte Dokument.
  • Das System ermittelt verbundene Komponenten in jedem Textbild (204). Eine verbundene Komponente ist ein Zeichen innerhalb des Textes. In einem Textbild sind verbundene Komponenten durch typografischen Weißraum getrennt. Zum Beispiel ist in dem Wort "Company" jedes Zeichen 'c', 'o', 'm', 'p', 'a', 'n', 'y' eine verbundene Komponente. Das System ermittelt jede verbundene Komponente auf Basis des Weißraums und des gefüllten Abschnitts der Zeichen.
  • Das System rektifiziert jedes Textbild unter Verwendung der verbundenen Komponenten (Schritt 206). Textlinien durch verbundene Komponenten sind parallel, wenn es keine Verzerrung in dem Bild gibt. Eine Textlinie ist eine durch das Zentrum der verbundenen Komponenten gezogene Linie. Wenn die Textlinien nicht parallel sind, dann weist das Bild Verzerrung auf, und das System führt Rektifizierung durch, um das Bild so zu transformieren, dass die Textlinien durch die verbundenen Komponenten parallel sind. Das System verwendet die verbundenen Komponenten, um Nächster-Nachbar-Ketten zu bilden. Nächster-Nachbar-Kette (NNC) bezieht sich auf die maximale Länge von Ketten von benachbarten verbundenen Komponenten mit annähernd den gleichen y-Erstreckungen.
  • Das System erzeugt Linelets und Fluchtpunkte unter Verwendung von Kleinste-Quadrate-Regressionslinien der verbundenen Komponenten, um Rektifizierung durchzuführen. Das System erzeugt sowohl horizontale Linelets oder "H-Linelets" als auch vertikale Linelets oder "V-Linelets". Linelets sind durch einen Ort, d. h. eine orthogonale Projektion des Schwerpunktes der Punkte, die eine Regressionslinie bilden, und eine Richtung, d. h. einen Einheitsvektor entlang der Regressionslinie, charakterisiert. Ein Fluchtpunkt ist ein einzelner Punkt auf dem Textbild, an dem sich alle korrespondierenden Linelets schneiden. Der Prozess zur Durchführung von Rektifizierung eines Bildes wird nachfolgend unter Bezugnahme auf 3 näher beschrieben.
  • Das System mosaikiert das rektifizierte Bild (Schritt 208). Das System identifiziert korrespondierende Punkte zwischen unterschiedlichen Ansichten von mindestens einem Abschnitt des Dokuments, um Mosaikierung durchzuführen. Das System berechnet einen Histogramm-orientierten Gradientenvektor (HOG-Vektor) über Wörtern in den Textbildabschnitten, um Wortform-Merkmale in den Textbildern zu beschreiben. Das System verwendet diese Vektoren, um korrespondierende Punkte zwischen zwei Textbildern zu identifizieren, die das System anpasst, um die zwei überlappenden Textbilder durch Stitching zusammenzufügen. Der Prozess zur Durchführung von Mosaikierung wird nachfolgend unter Bezugnahme auf 4 näher beschrieben.
  • Das System führt an dem mosaikierten Bild eine Nachbearbeitung durch, um das scanbare Dokument zu bilden (Schritt 210). Die Nachbearbeitung umfasst Blending, Entzerrung und optische Zeichenerkennung der Bilder. Das System kann das nachbearbeitete Bild des einzelnen vereinheitlichten scanbaren Dokuments auf dem Benutzergerät anzeigen. In manchen anderen Implementierungen speichert das System das scanbare Dokument oder sendet es über das Netz an einen Speicherbereich.
  • 3 ist ein Flussdiagramm eines Beispielprozesses 300 zur Durchführung von Rektifizierung eines Bildes. Der Prozess 300 wird von einem System aus einem oder mehreren Computern durchgeführt. Zum Beispiel kann ein Bildverarbeitungssystem, z. B. das geeignet programmierte Bildverarbeitungssystem 100 von 1, den Prozess 300 durchführen.
  • Das System ermittelt horizontale Linelets in jedem Textbild (Schritt 302). Ein horizontales Linelet oder "H-Linelet" ist ein kleines Liniensegment, das auf eine Textlinie ausgerichtet ist. Zur Ermittlung von horizontalen Linelets bildet das System Nächster-Nachbar-Ketten (NNC's) zum Schätzen der Textlinien.
  • Eine NNC bezieht sich auf die maximale Länge von Ketten von benachbarten verbundenen Komponenten mit annähernd den gleichen y-Erstreckungen. Eine verbundene Komponente kann eine Oberlänge oder eine Unterlänge enthalten. Eine Oberlänge ist ein Abschnitt der verbundenen Komponente, der oberhalb der Textlinie liegt. Zum Beispiel hat in dem Wort "Cart" das Zeichen 't' eine Oberlänge. Eine Unterlänge ist ein Abschnitt der verbundenen Komponente, der unterhalb der Textlinie liegt. Zum Beispiel hat in dem Wort "Company" das Zeichen 'p' eine Unterlänge.
  • Eine Textlinie ist eine durch das Zentrum der verbundenen Komponenten gezogene Linie. Die Schwerpunkte der verbundenen Komponenten, aus denen eine NNC besteht, fallen mit einer Textlinie zusammen. Das System erzeugt eine Kleinste-Quadrate-Regressionslinie durch das Zentrum der verbundenen Komponenten jeder NNC. Die Kleinste-Quadrate-Regressionslinie liegt nicht exakt auf dem Mittelwert oder Median der verbundenen Komponenten der NNC, da Unterlängen die Regressionslinie nach unten ziehen und Oberlängen die Regressionslinie nach oben ziehen. Das System berücksichtigt keine verbundenen Komponenten, deren Schwerpunkt oberhalb einer Schwellendifferenz von benachbarten verbundenen Komponenten liegt. Eine Kleinste-Quadrate-Regressionslinie durch die verbleibenden Schwerpunkte der verbundenen Komponenten in einer NNC erzeugt ein horizontales Linelet oder "H-Linelet".
  • Das System ermittelt vertikale Linelets in jedem Textbild (Schritt 304). Ein vertikales Linelet ist eine Skelettlinie durch einen aufrechten Abschnitt einer verbundenen Komponente. Zum Beispiel haben die Zeichen 'I', 'F', 'p' und 'L' einen aufrechten Abschnitt, der das vertikale Linelet oder "V-Linelet" bildet. Das System ermittelt ein V-Linelet, indem es die Krümmung von Segmenten identifiziert, die den aufrechten Strichen jedes Zeichens entsprechen. Das System skelettiert jede verbundene Komponente auf dem Textbild, um die Krümmung von Segmenten zu identifizieren. Das System schätzt die maximale Krümmung auf den Kurvensegmenten und eliminiert Kurven, die eine Schwelle übersteigen, um die linearen aufrechten Segmente zu ermitteln. Eine Regressionslinie durch die verbleibenden Punkte, falls vorhanden, ergibt das V-Linelet.
  • Das System wählt ein Paar H-Linelets und ein Paar V-Linelets aus (Schritt 306). In manchen Implementierungen wählt das System die Linelets wahllos aus. In manchen anderen Implementierungen ist die Linelet-Auswahl nicht ganz wahllos. Zum Beispiel kann das System eine absteigende Sortierung der Gruppe von Linelets auf Basis der Liniensegmentlänge durchführen und das erste Linelet wahllos aus dem Top-20-Perzentil der Gruppe von Linelets und das zweite Linelet aus dem Top-50-Perzentil auswählen. Das System verwendet das Paar H-Linelets, um den horizontalen Fluchtpunkt zu ermitteln, und das Paar V-Linelets, um den vertikalen Fluchtpunkt zu ermitteln.
  • Das System berechnet die horizontalen und vertikalen Fluchtpunkte unter Verwendung der ausgewählten Linelets (Schritt 308). Der horizontale Fluchtpunkt ist der Punkt, an dem sich alle H-Linelets treffen oder schneiden, wenn das System die H-Linelets ins Unendliche extrapoliert oder verlängert. Ein vertikaler Fluchtpunkt ist der Punkt, an dem sich alle V-Linelets treffen oder schneiden, wenn das System die V-Linelets ins Unendliche extrapoliert oder verlängert. Der Fluchtpunkt ist eine Funktion des Paares von Linelet-Vektoren. Der korrespondierende Fluchtpunkt ist der Schnittpunkt der zwei Linelets, v →m = l →1 x l →2, worin v →m der Fluchtpunkt ist, l → ein Linelet in einer Gruppe von Linelets ist, l → ein anderes Linelet in derselben Gruppe von Linelets ist und 'x' das Vektor-Kreuzprodukt bezeichnet. Zum Beispiel kann das System ein Modell, z. B. ein Random Sample Consensus (RANSAC) Modell, verwenden, um den Fluchtpunkt zu ermitteln. Das System kann die Fluchtpunkte auch unter Verwendung einer Gewichtete-kleinste-Quadrate-Regression neu schätzen.
  • Das System extrapoliert die V-Linelets und H-Linelets ins Unendliche, indem es Homographie durchführt, um parallele Linien in dem Textbild wiederherzustellen (Schritt 310). Das System wendet eine geometrische Formel auf das Paar von Fluchtpunkten an und transformiert die Fluchtpunkte zurück ins Unendliche. Das heißt, die Homographie verzerrt effektiv das Bild, um die Parallelität von Linien in dem Textbild wiederherzustellen. Das System berechnet die Homographie wie folgt:
    Seien v →1 und v →2 ein Paar von Fluchtpunkten. Die Linie, die die Fluchtpunkte verbindet, ist l →12 = v →1 x v →2. Dann ist
    Figure DE112016001784T5_0002
    die Rektifizierungs-Homographie, und l →12 = [la lb lc]T. Das System transformiert die Fluchtpunkte zurück ins Unendliche, da
    Figure DE112016001784T5_0003
  • Das System wendet die Rektifizierungs-Homographie auf jedes Textbild an, um die Parallelität in jedem Textbild wiederherzustellen. Das System führt Mosaikierung an den rektifizierten Bildern durch, um die vereinheitlichte Ansicht zu erzeugen.
  • 4 ist ein Flussdiagramm eines Beispielprozesses 400 zur Durchführung von Mosaikierung. Der Prozess 400 wird von einem System aus einem oder mehreren Computern durchgeführt. So kann z. B. ein Bildverarbeitungssystem, z. B. das geeignet programmierte Bildverarbeitungssystem 100 von 1, den Prozess 400 durchführen.
  • Das System erzeugt ein rechteckiges Strukturobjekt, das eine Gruppe von verbundenen Komponenten umschließt (Schritt 402). Die Größe des rechteckigen Strukturobjekts hängt von der Schriftgröße des Textes ab. Das System ermittelt die Größe des rechteckigen Strukturobjektes auf Basis einer Funktion der mittleren Breite und Höhe der verbundenen Komponenten. Zum Beispiel, wenn die Schriftgröße 30 pt ist, ist die mittlere Breite und Höhe der verbundenen Komponenten größer als die mittlere Breite und Höhe der verbundenen Komponenten, wenn die Schriftgröße 2 pt ist. Die Größe des rechteckigen Strukturobjekts richtet sich nach der Schriftgröße, so dass die Größe des rechteckigen Strukturobjekts für verbundene Komponenten mit einer größeren Schriftgröße größer ist als die Größe des rechteckigen Strukturobjekts, wenn die Schriftgröße kleiner ist.
  • Das System verschmiert die einander benachbarten verbundenen Komponenten, um Wortbegrenzungskästchen zu erzeugen (Schritt 404). Eine Gruppe von verbundenen Komponenten repräsentiert ein Wort in dem Textbild. Jede verbundene Komponente, die das Wort bildet, ist ein Zeichen, z. B. ein Buchstabe, und jedes Zeichen ist einem anderen Zeichen in der Gruppe von verbundenen Komponenten benachbart.
  • Verbundene Komponenten, die einander benachbart sind und die Gruppe von verbundenen Komponenten bilden, die ein Wort in dem Textbild repräsentieren, weisen wenig Weißraum zwischen einer jeden verbundenen Komponente auf. Der Weißraum zwischen einer jeden verbundenen Komponente ist kleiner als ein Schwellenbetrag. Der Schwellenbetrag ist kleiner als der Zwischenraum zwischen Wörtern in dem Textbild, aber mindestens gleich dem Betrag des Zwischenraums zwischen benachbarten Zeichen. Der Schwellenbetrag des Weißraums repräsentiert den Betrag des Weißraums zwischen Wörtern. Das System verschmiert verbundene Komponenten, die weniger als ein Schwellenbetrag voneinander entfernt sind.
  • Das System berechnet Wortform-Deskriptoren auf den Wortbegrenzungskästchen (Schritt 406). Das System kachelt das Wortbegrenzungskästchen in ein festes Gitter von Zellen und führt einen Histogramm-orientierten Gradienten (HoG) über dem Wortbegrenzungskästchen durch. Das heißt, das System beschreibt die Form der Wörter in dem Textbild unter Verwendung eines Vektors. In manchen Implementierungen verwendet das System ein 4×4-Gitter von HoG-Zellen mit 9 Winkelfeldern pro Zelle, was zu 144 Wortform-Deskriptoren führt.
  • Das System ermittelt die sich überlappenden Textbilder, indem es die Punkte in einem Textbild an Punkte in einem anderen Textbild anpasst (Schritt 408). Punkte beziehen sich auf Wortform-Deskriptoren in einem Bild. In manchen Implementierungen muss ein Schwellenbetrag von Punkten angepasst werden, damit das System ein Textbild an ein anderes Textbild anpassen kann. Zum Beispiel verlangt das System möglicherweise, dass mindestens 4 Wortform-Deskriptoren oder Punkte angepasst werden müssen, damit das System ein Textbild an ein anderes Textbild anpassen kann. Das System führt die Anpassung an sämtlichen Textbildern durch, um die überlappenden Textbilder zu finden. Das System kombiniert die sich überlappenden Textbilder, um das scanbare Dokument unter Verwendung der angepassten Punkte zu bilden (Schritt 410).
  • Ausführungsformen des Gegenstandes und der Arbeitsabläufe, die in diesem Dokument beschrieben sind, können in digitalen elektronischen Schaltkreisen oder in Computersoftware, Firmware oder Hardware, einschließlich der in diesem Dokument offenbarten Strukturen und deren strukturellen Äquivalenten, oder in Kombinationen von einem oder mehreren davon implementiert werden. Ausführungsformen des in diesem Dokument beschriebenen Gegenstandes können als ein oder mehrere Computerprogramme, d. h. als ein oder mehrere Module von Computerprogrammanweisungen, die auf einem Computerspeichermedium zur Ausführung durch oder zur Steuerung des Betriebs eines Datenverarbeitungsgeräts codiert sind, implementiert werden. Alternativ oder zusätzlich können die Programmanweisungen auf ein künstlich erzeugtes propagiertes Signal codiert werden, z. B. ein maschinell erzeugtes elektrisches, optisches oder elektromagnetisches Signal, welches zur Codierung von Informationen für Übertragung an ein geeignetes Empfangsgerät zur Ausführung durch ein Datenverarbeitungsgerät erzeugt wird. Ein Computerspeichermedium kann ein computerlesbares Speichergerät, ein computerlesbares Speichersubstrat, eine Speicheranordnung oder ein Gerät mit wahlfreiem oder seriellem Zugriff oder eine Kombination von einem oder mehreren davon sein oder darin enthalten sein. Und obwohl ein Computerspeichermedium kein propagiertes Signal ist, kann ein Computerspeichermedium eine Quelle oder ein Ziel von Computerprogrammanweisungen sein, die in einem künstlich erzeugten propagierten Signal codiert sind. Das Computerspeichermedium kann auch eine oder mehrere getrennte physische Komponenten oder Medien (z. B. mehrere CDs, Festplatten oder andere Speichergeräte) sein oder darin enthalten sein.
  • Die in diesem Dokument beschriebenen Arbeitsabläufe können als Arbeitsabläufe implementiert werden, die von einer Datenverarbeitungsvorrichtung an Daten durchgeführt werden, die auf einem oder mehreren computerlesbaren Speichergeräten gespeichert sind oder von anderen Quellen empfangen werden. Der Begriff "Datenverarbeitungsgerät" umfasst alle Arten von Vorrichtungen, Geräten und Maschinen zur Verarbeitung von Daten, einschließlich zum Beispiel eines programmierbaren Prozessors, eines Computers, eines Systems auf einem Chip oder mehrerer Chips oder Kombinationen davon. Die Vorrichtung kann Spezial-Logikschaltungen enthalten, z. B. eine FPGA (Feldprogrammierbare Gatter-Anordnung) oder eine ASIC (Anwendungsspezifische integrierte Schaltung). Das Gerät kann zusätzlich zu Hardware auch Code enthalten, der eine Ausführungsumgebung für das betreffende Computerprogramm erzeugt, z. B. Code, der Prozessor-Firmware, einen Protokollstapel, ein Datenbankmanagementsystem, ein Betriebssystem, eine plattformübergreifende Laufzeitumgebung, eine virtuelle Maschine oder eine Kombination von einem oder mehreren davon ausmacht. Die Vorrichtung und Ausführungsumgebung können verschiedene unterschiedliche Rechenmodell-Infrastrukturen wie z. B. Web-Dienste, verteilte Rechen- und Grid-Computing-Infrastrukturen realisieren.
  • Ein Computerprogramm (auch bekannt als Programm, Software, Softwareanwendung, Skript oder Code) kann in irgendeiner Form von Programmiersprache geschrieben sein, einschließlich kompilierter oder interpretierter Sprachen, deklarativer oder prozeduraler Sprachen, und es kann in irgendeiner Form eingesetzt werden, einschließlich als eigenständiges Programm oder als Modul, Komponente, Unterprogramm, Objekt oder andere Einheit, die für Verwendung in einer Computerumgebung geeignet ist. Ein Computerprogramm kann, muss aber nicht einer Datei in einem Dateisystem entsprechen. Ein Programm kann in einem Abschnitt einer Datei, die andere Programme oder Daten enthält (z. B. ein oder mehrere Skripte, die in einem Auszeichnungssprache-Dokument gespeichert sind), in einer Einzeldatei, die dem betreffenden Programm zugeordnet ist, oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Unterprogramme oder Abschnitte von Code speichern) gespeichert sein. Ein Computerprogramm kann eingesetzt werden, um auf einem oder auf mehreren Computern ausgeführt zu werden, die sich an einem Ort befinden oder über mehrere Orte verteilt sind und durch ein Kommunikationsnetz miteinander verbunden sind.
  • Die in diesem Dokument beschriebenen Prozesse und Logikabläufe können von einem oder mehreren programmierbaren Prozessoren ausgeführt werden, die ein oder mehrere Computerprogramme ausführen, um Aktionen durchzuführen, indem sie an Eingangsdaten arbeiten und Ausgaben erzeugen. Die Prozesse und logischen Abläufe können auch von einer Spezial-Logikschaltung wie z. B. einer FPGA (Feldprogrammierbare Gatter-Anordnung) oder einer ASIC (Anwendungsspezifische integrierte Schaltung) durchgeführt werden, und die Vorrichtung kann auch als eine solche implementiert werden.
  • Zu den für die Ausführung eines Computerprogramms geeigneten Prozessoren gehören zum Beispiel sowohl Universal- als auch Spezial-Mikroprozessoren sowie ein oder mehrere Prozessoren von irgendeiner Art von digitalem Computer. Im Allgemeinen empfängt ein Prozessor Anweisungen und Daten von einem Nur-Lese-Speicher oder einem Speicher mit wahlfreiem Zugriff oder beiden. Die wesentlichen Elemente eines Computers sind ein Prozessor zur Durchführung von Aktionen in Übereinstimmung mit Anweisungen sowie ein oder mehrere Speichergeräte zum Speichern von Anweisungen und Daten. Im Allgemeinen wird ein Computer auch umfassen oder operativ verbunden sein, Daten von einem oder mehreren Massenspeichergeräten zum Speichern von Daten, z. B. magnetischen, magnetooptischen Platten oder optischen Platten, zu empfangen oder Daten dahin zu übertragen oder beides. Ein Computer muss aber nicht derartige Geräte aufweisen. Darüber hinaus kann ein Computer in ein anderes Gerät eingebettet sein, z. B. ein Mobiltelefon, einen PDA (Personal Digital Assistant), einen mobilen Audio- oder Videoplayer, eine Spielekonsole, einen GPS-Empfänger oder ein portables Speichergerät (z. B. einen USB-Speicherstick), um nur einige zu nennen. Zum Speichern von Computerprogrammanweisungen und Daten geeignete Geräte umfassen alle Formen von nichtflüchtigem Speicher, Medien und Speichervorrichtungen, einschließlich zum Beispiel Halbleiterspeichergeräten wie z. B. EPROM, EEPROM und Flash-Speichergeräten; Magnetplatten, z. B. interne Festplatten oder Wechselplatten; magnetooptische Platten; sowie CD-ROM- und DVD-ROM-Platten. Der Prozessor und der Speicher können durch Spezial-Logikschaltungen ergänzt oder darin eingebaut sein.
  • Um Interaktion mit einem Benutzer zu ermöglichen, können Ausführungsformen des in diesem Dokument beschriebenen Gegenstandes auf einem Computer mit einem Anzeigegerät wie z. B. einem CRT(Kathodenstrahlröhre) oder LCD(Flüssigkristallanzeige)-Monitor zum Anzeigen von Informationen für den Benutzer und einer Tastatur und einem Zeigegerät wie z. B. einer Maus oder einem Trackball, womit der Benutzer Eingaben in den Computer vornehmen kann, implementiert werden. Andere Arten von Geräten können ebenfalls verwendet werden, um Interaktion mit einem Benutzer zu ermöglichen; zum Beispiel kann ein dem Benutzer gegebenes Feedback irgendeine Form von sensorischem Feedback sein, z. B. visuelles Feedback, akustisches Feedback oder taktiles Feedback; und Eingaben des Benutzers können in irgendeiner Form empfangen werden, einschließlich akustischer, sprachlicher oder taktiler Eingaben. Außerdem kann ein Computer mit einem Benutzer interagieren, indem er Dokumente an ein von dem Benutzer benutztes Gerät sendet und davon empfängt, zum Beispiel indem er als Antwort auf Anforderungen, die von auf einem Web-Browser auf einem Client-Gerät des Benutzers empfangen werden, Web-Seiten an den Web-Browser sendet.
  • Ausführungsformen des in diesem Dokument beschriebenen Gegenstandes können in einem Computersystem implementiert werden, das eine Backend-Komponente enthält, z. B. als ein Datenserver, oder das eine Middleware-Komponente enthält, z. B. einen Anwendungsserver, oder das eine Frontend-Komponente enthält, z. B. einen Client-Computer mit einer grafischen Benutzerschnittstelle oder einem Web-Browser, durch den ein Benutzer mit einer Implementierung des in diesem Dokument beschriebenen Gegenstandes interagieren kann, oder das irgendeine Kombination von einer oder mehreren solchen Backend-, Middleware- oder Frontend-Komponenten enthält. Die Komponenten des Systems können durch irgendeine Form oder irgendein Medium von digitaler Datenkommunikation, z. B. ein Kommunikationsnetz, miteinander verbunden sein. Beispiele für Kommunikationsnetze umfassen ein lokales Netz ("LAN") und ein Weitverkehrsnetz ("WAN"), ein Inter-Netz (z. B. das Internet) und Peer-to-Peer-Netze (z. B. Ad-hoc-Peer-to-Peer-Netze).
  • Das Computersystem kann Clients und Server umfassen. Ein Client und ein Server sind in der Regel voneinander entfernt und interagieren typischerweise über ein Kommunikationsnetz. Die Beziehung zwischen Client und Server entsteht durch Computerprogramme, die auf den jeweiligen Computern laufen und eine Client-Server-Beziehung zueinander haben. In manchen Ausführungsformen sendet ein Server Daten (z. B. eine HTML-Seite) an ein Client-Gerät (z. B. zum Anzeigen von Daten an und Empfangen von Benutzereingaben von einem Benutzer, der mit dem Client-Gerät interagiert). Daten, die an dem Client-Gerät erzeugt werden (z. B. ein Ergebnis der Benutzerinteraktion), können von dem Client-Gerät an dem Server empfangen werden.
  • Dieses Dokument enthält zwar viele spezielle Implementierungsdetails, die aber nicht als Beschränkungen des Schutzbereichs irgendwelcher Erfindungen oder von beanspruchten Gegenständen anzusehen sind, sondern als Beschreibungen von Merkmalen, die für bestimmte Ausführungsformen von bestimmten Erfindungen spezifisch sind. Bestimmte Merkmale, die in diesem Dokument im Kontext von getrennten Ausführungsformen beschrieben werden, können auch in einer einzigen Ausführungsform kombiniert implementiert werden. Umgekehrt können verschiedene Merkmale, die im Kontext einer einzelnen Ausführungsform beschrieben werden, auch in mehreren Ausführungsformen getrennt oder in irgendeiner geeigneten Unterkombination realisiert werden. Auch wenn oben beschriebene Merkmale möglicherweise als in bestimmten Kombinationen wirkend beschrieben werden und sogar zunächst als solche beansprucht werden, können in manchen Fällen ein oder mehrere Merkmale einer beanspruchten Kombination aus der Kombination entfernt werden, und die beanspruchte Kombination kann auf eine Unterkombination oder Variation einer Unterkombination gerichtet werden.
  • Auch wenn Arbeitsabläufe in den Zeichnungen in einer bestimmten Reihenfolge dargestellt sind, ist dies in ähnlicher Weise nicht so zu verstehen, dass solche Arbeitsabläufe in der bestimmten gezeigten Reihenfolge oder in sequentieller Reihenfolge durchgeführt werden müssen oder dass sämtliche dargestellten Arbeitsabläufe durchgeführt werden müssen, um erwünschte Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und Parallelverarbeitung vorteilhaft sein. Die Trennung von verschiedenen Systemkomponenten in den oben beschriebenen Ausführungsformen ist darüber hinaus nicht so zu verstehen, dass eine derartige Trennung in sämtlichen Ausführungsformen erforderlich ist, und es versteht sich, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen in einem einzelnen Softwareprodukt integriert oder zu mehreren Softwareprodukten gepackt sein können.
  • Somit sind bestimmte Ausführungsformen des Gegenstandes beschrieben worden. Innerhalb des Schutzbereichs der nachfolgenden Ansprüche sind andere Ausführungsformen möglich. In manchen Fällen können die in den Ansprüchen angegebenen Aktionen in einer anderen Reihenfolge durchgeführt werden und dennoch erwünschte Ergebnisse erzielen. Außerdem erfordern die in den begleitenden Figuren dargestellten Prozesse nicht notwendigerweise die bestimmte gezeigte Reihenfolge oder sequentielle Reihenfolge, um erwünschte Ergebnisse zu erzielen. In manchen Implementierungen können Multitasking und Parallelverarbeitung vorteilhaft sein.

Claims (14)

  1. Computerimplementiertes Verfahren, umfassend: eine Scan-Anforderung zu empfangen, wobei die Scan-Anforderung eine Vielzahl von Textbildern enthält, wobei jedes Textbild einen Abschnitt eines Textdokuments repräsentiert, wobei die Vielzahl von Textbildern ein erstes Textbild und ein zweites Textbild enthält, die sich mindestens teilweise überlappen; für jedes Textbild der Vielzahl von Textbildern: das Textbild zu rektifizieren, um ein Textbild mit parallelen Bildlinien zu erzeugen, eine Vielzahl von Wortbegrenzungskästchen zu erzeugen, die eine oder mehrere verbundene Komponenten in dem Textbild umschließen, wobei jedes Wortbegrenzungskästchen einem jeweiligen Wort zugeordnet ist, und für jedes jeweilige Wort in dem Textbild eine Vielzahl von Punkten zu erzeugen, die das jeweilige Wort repräsentieren; die Vielzahl von Textbildern zu kombinieren, um ein einzelnes Textdokument zu bilden, einschließlich, das erste Textbild der Vielzahl von Textbildern und das zweite Textbild der Vielzahl von Textbildern durch Anpassen einer ersten Gruppe von Punkten, die dem ersten Textbild zugeordnet sind, und einer zweiten Gruppe von Punkten, die dem zweiten Textbild zugeordnet sind, zu kombinieren; und das kombinierte Bild als ein scanbares Dokument bereitzustellen.
  2. Verfahren nach Anspruch 1, wobei das Rektifizieren jedes Textbildes der Vielzahl von Textbildern umfasst: eine Vielzahl von verbundenen Komponenten in dem Textbild zu ermitteln, wobei jede verbundene Komponente ein gefüllter Abschnitt eines Zeichens ist; eine Vielzahl von Bildlinien in dem Textbild, die vertikale Linelets und horizontale Linelets enthalten, auf Basis der Vielzahl von verbundenen Komponenten zu erzeugen; einen horizontalen Fluchtpunkt und einen vertikalen Fluchtpunkt auf Basis der Vielzahl von Bildlinien zu berechnen; und eine geometrische Formel auf den ersten und zweiten Fluchtpunkt anzuwenden, um parallele Linien in dem Textbild wiederherzustellen.
  3. Verfahren nach Anspruch 2, wobei die Vielzahl von Bildlinien eine Vielzahl von vertikalen Linelets und eine Vielzahl von horizontalen Linelets enthält, wobei jedes vertikale Linelet eine Skelettlinie durch einen aufrechten Abschnitt einer verbundenen Komponente ist und wobei jedes horizontale Linelet eine Regressionslinie durch ein Zentrum einer Gruppe von benachbarten verbundenen Komponenten ist.
  4. Verfahren nach Anspruch 3, wobei das Berechnen eines horizontalen Fluchtpunktes und eines vertikalen Fluchtpunktes auf Basis der Vielzahl von Bildlinien weiterhin umfasst: den horizontalen Fluchtpunkt unter Verwendung der horizontalen Linelets zu berechnen; und den vertikalen Fluchtpunkt unter Verwendung der vertikalen Linelets zu berechnen.
  5. Verfahren nach Anspruch 4, das weiterhin umfasst, ein Paar vertikale Linelets und ein Paar horizontale Linelets auszuwählen, den horizontalen Fluchtpunkt unter Verwendung des ausgewählten Paares horizontale Linelets zu berechnen und den vertikalen Fluchtpunkt unter Verwendung des ausgewählten Paares vertikale Linelets zu berechnen.
  6. Verfahren nach Anspruch 5, wobei das Auswählen eines Paares horizontale oder vertikale Linelets umfasst, eine absteigende Sortierung der Vielzahl von horizontalen oder vertikalen Linelets auf Basis einer Liniensegmentlänge durchzuführen; und ein erstes Linelet aus dem Top-zwanzig-Perzentil der Vielzahl von Linelets auszuwählen und ein zweites Linelet aus dem Top-fünfzig-Perzentil auszuwählen.
  7. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Erzeugen einer Vielzahl von Wortbegrenzungskästen umfasst, benachbarte verbundene Komponenten mit einem Betrag an Weißraum unterhalb einer vorbestimmten Schwelle zu verschmieren.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei die erste Gruppe von Punkten und die zweite Gruppe von Punkten Wortform-Deskriptoren sind und das Verfahren weiterhin umfasst, einen Wortform-Deskriptor für jedes der Vielzahl von Wortbegrenzungskästchen zu berechnen.
  9. Verfahren nach Anspruch 8, wobei das Berechnen eines Wortform-Deskriptors für ein Wortbegrenzungskästchen umfasst: das Wortbegrenzungskästchens in ein festes Gitter von Zellen zu kacheln, und Histogramm-orientierte Gradienten über dem Wortbegrenzungskästchen durchzuführen, um einen Vektor-Deskriptor mit der Form des Wortes zu erzeugen, das dem Wortbegrenzungskästchen zugeordnet ist.
  10. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Kombinieren des ersten Textbildes und des zweiten Textbildes ein Blending des ersten Textbildes mit dem zweiten Textbild umfasst.
  11. Verfahren nach einem der vorhergehenden Ansprüche, wobei eine Zahl von Anpassungspunkten zwischen der ersten Gruppe von Punkten, die dem ersten Textbild zugeordnet sind, und der zweiten Gruppe von Punkten, die dem zweiten Textbild zugeordnet sind, eine Schwellenzahl von Anpassungspunkten übersteigt.
  12. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Kombinieren der Vielzahl von Textbildern weiterhin umfasst: ein Blending der Vielzahl von Textbildern, die das einzelne Textdokument bilden; ein Entzerren des einzelnen Textdokuments; und Durchführen von optischer Zeichenerkennung an dem einzelnen Textdokument.
  13. System, umfassend: einen oder mehrere Computer; ein oder mehrere Speichergeräte, auf denen Anweisungen gespeichert sind, die bei Ausführung durch die ein oder mehreren Computer die ein oder mehreren Computer veranlassen, das Verfahren nach einem der vorhergehenden Ansprüche durchzuführen.
  14. Computerspeichermedium, das mit einem Computerprogramm codiert ist, wobei das Programm Anweisungen aufweist, die bei Ausführung durch einen oder mehrere Computer die ein oder mehreren Computer veranlassen, das Verfahren nach einem der Ansprüche 1 bis 12 durchführen.
DE112016001784.7T 2015-04-17 2016-03-30 Dokumentenscanner Pending DE112016001784T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/690,274 US9852348B2 (en) 2015-04-17 2015-04-17 Document scanner
US14/690,274 2015-04-17
PCT/US2016/025042 WO2016167970A1 (en) 2015-04-17 2016-03-30 Document scanner

Publications (1)

Publication Number Publication Date
DE112016001784T5 true DE112016001784T5 (de) 2018-02-01

Family

ID=55752746

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016001784.7T Pending DE112016001784T5 (de) 2015-04-17 2016-03-30 Dokumentenscanner

Country Status (5)

Country Link
US (1) US9852348B2 (de)
EP (1) EP3284012B1 (de)
CN (1) CN107980139A (de)
DE (1) DE112016001784T5 (de)
WO (1) WO2016167970A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9904990B2 (en) 2015-12-18 2018-02-27 Ricoh Co., Ltd. Single image rectification
JP6508617B2 (ja) * 2016-04-15 2019-05-08 京セラドキュメントソリューションズ株式会社 画像読取装置、画像読取方法及び画像読取プログラム
JP6910454B2 (ja) * 2016-10-26 2021-07-28 コンチネンタル オートモーティヴ ゲゼルシャフト ミット ベシュレンクテル ハフツングContinental Automotive GmbH 道路の合成トップビュー画像を生成するための方法およびシステム
US10356318B1 (en) * 2017-04-27 2019-07-16 Intuit, Inc. Long document capture on mobile devices
US10318803B1 (en) * 2017-11-30 2019-06-11 Konica Minolta Laboratory U.S.A., Inc. Text line segmentation method
CN110312070B (zh) * 2019-04-23 2021-08-24 维沃移动通信有限公司 一种图像处理方法及终端
US11410446B2 (en) * 2019-11-22 2022-08-09 Nielsen Consumer Llc Methods, systems, apparatus and articles of manufacture for receipt decoding
CN111563894B (zh) * 2020-05-12 2022-11-29 西北工业大学 一种连续纤维增强材料弯曲刚度测量方法及系统
US11810380B2 (en) 2020-06-30 2023-11-07 Nielsen Consumer Llc Methods and apparatus to decode documents based on images using artificial intelligence
US11822216B2 (en) 2021-06-11 2023-11-21 Nielsen Consumer Llc Methods, systems, apparatus, and articles of manufacture for document scanning

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6075905A (en) * 1996-07-17 2000-06-13 Sarnoff Corporation Method and apparatus for mosaic image construction
US6208347B1 (en) * 1997-06-23 2001-03-27 Real-Time Geometry Corporation System and method for computer modeling of 3D objects and 2D images by mesh constructions that incorporate non-spatial data such as color or texture
US6157747A (en) * 1997-08-01 2000-12-05 Microsoft Corporation 3-dimensional image rotation method and apparatus for producing image mosaics
US7031553B2 (en) * 2000-09-22 2006-04-18 Sri International Method and apparatus for recognizing text in an image sequence of scene imagery
US6823084B2 (en) * 2000-09-22 2004-11-23 Sri International Method and apparatus for portably recognizing text in an image sequence of scene imagery
US7738706B2 (en) * 2000-09-22 2010-06-15 Sri International Method and apparatus for recognition of symbols in images of three-dimensional scenes
JP4566740B2 (ja) * 2002-08-07 2010-10-20 パナソニック株式会社 携帯端末装置
US7120314B2 (en) * 2003-01-15 2006-10-10 Xerox Corporation Systems and methods for obtaining image shear and skew
WO2005048188A2 (en) * 2003-11-11 2005-05-26 Sri International Method and apparatus for capturing paper-based information on a mobile computing device
US8320708B2 (en) * 2004-04-02 2012-11-27 K-Nfb Reading Technology, Inc. Tilt adjustment for optical character recognition in portable reading machine
JP4553241B2 (ja) * 2004-07-20 2010-09-29 株式会社リコー 文字方向識別装置、文書処理装置及びプログラム並びに記憶媒体
JP4713107B2 (ja) * 2004-08-20 2011-06-29 日立オムロンターミナルソリューションズ株式会社 景観中文字列認識方式および装置
US7460730B2 (en) * 2005-08-04 2008-12-02 Microsoft Corporation Video registration and image sequence stitching
US7930627B2 (en) * 2005-09-22 2011-04-19 Konica Minolta Systems Laboratory, Inc. Office document matching method and apparatus
US8160400B2 (en) * 2005-11-17 2012-04-17 Microsoft Corporation Navigating images using image based geometric alignment and object based controls
JP2008146603A (ja) * 2006-12-13 2008-06-26 Canon Inc 文書検索装置、文書検索方法、プログラム及び記憶媒体
CN100440250C (zh) * 2007-03-09 2008-12-03 清华大学 印刷体蒙古文字符识别方法
US8023725B2 (en) * 2007-04-12 2011-09-20 Samsung Electronics Co., Ltd. Identification of a graphical symbol by identifying its constituent contiguous pixel groups as characters
US8290268B2 (en) * 2008-08-13 2012-10-16 Google Inc. Segmenting printed media pages into articles
US8305633B2 (en) * 2009-06-26 2012-11-06 Fuji Xerox Co., Ltd. Registering apparatus, authentication system, registering program storage medium and registering method
US8891907B2 (en) * 2011-12-06 2014-11-18 Google Inc. System and method of identifying visual objects
CN102708557B (zh) * 2012-05-15 2015-07-29 广州市中崎商业机器有限公司 一种用于双面扫描的图像拼接方法及系统
US9275485B2 (en) * 2012-06-28 2016-03-01 The University Of Utah Research Foundation Seam network processing for panorama weaving
CN102945228B (zh) * 2012-10-29 2016-07-06 广西科技大学 一种基于文本分割技术的多文档文摘方法

Also Published As

Publication number Publication date
EP3284012B1 (de) 2021-12-29
CN107980139A (zh) 2018-05-01
EP3284012A1 (de) 2018-02-21
WO2016167970A1 (en) 2016-10-20
US9852348B2 (en) 2017-12-26
US20160307059A1 (en) 2016-10-20

Similar Documents

Publication Publication Date Title
DE112016001784T5 (de) Dokumentenscanner
DE102009036474B4 (de) Bilddaten-Kompressionsverfahren, Mustermodell-Positionierungsverfahren bei Bildverarbeitung, Bildverarbeitungsvorrichtung, Bildverarbeitungsprogramm und computerlesbares Aufzeichnungsmedium
DE60222722T2 (de) Verfahren und Vorrichtung zur Korrektur von perspektivischen Verzerrungen in Dokumentbildern und zur Summierung von Bildzeilen
DE60114469T2 (de) Methode und Gerät zur Bestimmung von interessanten Bildern und zur Bildübermittlung
DE202014010843U1 (de) Ausrichten von bodenbasierten Bildern mit Luftbildern
DE202009019126U1 (de) Dreidimensionale Beschriftungen für Strassenansichtsdaten
DE112016001830T5 (de) Das Entdecken von Unternehmen aus Bildern
DE112011103221T5 (de) Erweitern von Bilddaten basierend auf zugehörigen 3D-Punktwolkendaten
DE112016005905T5 (de) Verfahren und System zum Verschmelzen erfasster Messungen
DE202015009182U1 (de) Ausrichten von Panoramaaufnahmen und Luftaufnahmen
DE102017012116A1 (de) Vorschauerzeugung aus panoramischen Bildern
DE202014010922U1 (de) Erzeugung von Tiefenkarten
DE112010002677T5 (de) Verfahren und vorrichtung zum bestimmen einer formübereinstimmung in drei dimensionen
DE202016006110U1 (de) Erweiterung des Sichtfeldes von Fotografie
DE112019003972T5 (de) Optische bildstabilisierungsbewegung zum erstellen eines superauflösenden bildes einer szene
DE112016006922T5 (de) Erkennung einer Aktivität in einer Videobildfolge anhand von Tiefeninformationen
DE102018003475A1 (de) Formbasierte Grafiksuche
DE112011103452T5 (de) Verfahren zum Angleichen von Pixeln einer Entfernungsdarstellung
DE102008034979A1 (de) Verfahren und Einrichtung zur Erzeugung von fehlerreduzierten hochauflösenden und kontrastverbesserten Bildern
DE112015004507T5 (de) Verfahren und Gerät zur Bildverarbeitung
DE102016014188A1 (de) Erzeugung eines 3-D-Modells aus 2-D-Bildern
DE102017005964A1 (de) Techniken zum Auswählen von Objekten in Bildern
DE102019007796A1 (de) Einsetzen eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes und eines geometrischen Modells zum Bestimmen von Kameraparametern aus einem einzigen Digitalbild
DE102020122844A1 (de) System und verfahren für tiefgehendes maschinelles lernen für computer-vision-anwendungen
DE102019122402A1 (de) Das klassifizieren von zeitreihenbilddaten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06K0009000000

Ipc: G06V0010000000

R016 Response to examination communication