Startseite | Themenabende | Mailingliste | Pläne | Links | GnuPG-Schlüssel

Erkennung definierter Elemente innerhalb eines Bildes

Anprüche

  1. Hauptanspruch
    Bilderkennung aus einem Bitmap, die die Ergebnisse - bestehend aus erkannten Elementen (Zeichen, Linien usw.) und Information über die Unsicherheit (wenn das Ergebnis nicht sicher war) - in einer beliebigen Dokumentbeschreibungssprache (XML, HTML, PDF usw.) ablegt.
  2. Nebenansprüche
    Explizite Benennung möglicher Elemente der Erkennung von Zeichen, grafischen Elementen, Wörtern und Sätzen
  3. Explizites Speichern der Information über die Unsicherheit ab (der Hauptanspruch deckt auch die implizite Information ab, dass das Erkennungsergebnis 100% sicher war)
  4. Speichern möglicher alternativer Erkennungsergebnisse
  5. Aufspalten und Analysieren des Bitmaps in mehrere Teile als Teil der Erkennung

Bemerkungen

Um bereits in einem möglichst kurzem Programm das Patent zu verletzen, gibt es zwei Programme: ein kurzes, das den Hauptanspruch verletzt, und ein etwas längeres, das auch möglichst viele Nebenansprüche verletzt. Die übrigen Ansprüche zu verletzen, wäre auch nicht sehr schwer, würde aber noch längere Programme erfordern.

Das Lesen und Verstehen des vollständigen Patents hat etwa das vierfache der Zeit für das Codieren in Anspruch genommen.

Verletzungsprogramm 1

(Achtung: Bitte nicht ausführen!)
/* Andreas Rudert; Program 1 that violates EP0549329; bad coding style to make it short */
#include <string.h>
#include <stdio.h>

unsigned char *bitmap[]={"  *",
                         " * ",
                         "*  "};

void main(void) {
  if (strcmp("  *",bitmap[0])==0 && strcmp(" * ",bitmap[1])==0 && strcmp("*  ",bitmap[2])==0)
    puts("<gerade unsicherheit='0' offset='0'><steigung>1</steigung></gerade>");
}
  

Verletzte Ansprüche mit Begründung

Verletzungsprogramm 2

(Achtung: Bitte nicht ausführen!)
/* Andreas Rudert; Program 2 that violates EP0549329; bad coding style to make it short */
#include <stdio.h>

unsigned char *bitmap[]={" *  ***      *  *** ",
                         " *   *       *  *   ",
                         " *   *       *    * ",
                         " *   *          *** "};

unsigned char *recognized_elements[]={
  "", /* 0 pixels, 100% blank */
  "<char><alt cert=\"75\"> </alt><alt cert=\"25\">I</alt></char>", /* 1 pixel, 75% blank, 25% an I */
  "<char><alt cert=\"50\"> </alt><alt cert=\"50\">I</alt></char>", /* 2 pixels, 50% blank, 50% an I */
  "<char><alt cert=\"75\">I</alt><alt cert=\"25\"> </alt></char>", /* 3 pixels, 75% an I */
  "I", /* 4 pixels, 100% an I */
  "<char><alt cert=\"50\">I</alt><alt cert=\"50\">T</alt></char>", /* 5 pixels, 50% an I, 50% a T */
  "T", /* 6 pixels100% a T */
  "<char><alt cert=\"50\">T</alt><alt cert=\"50\">S</alt></char>", /* 7 pixels, 50% an T, 50% an S */
  "S" /* 8 pixels, 100% an S */
};

/* Character recognizer, recognizes characters by counting pixels. */
void main(void) {
  int i, j, c = 0;
  for (i = 0; bitmap[0][i] != '\0'; i++) {
    for (j =0; j < 4; j++)
      c += bitmap[j][i] == '*';
    if ((i + 1) % 4 == 0)
      printf("%s", recognized_elements[c]), c=0;
  }    
}
  

Ausgabebeispiel

IT <char><alt cert="75">I</alt><alt cert="25"> </alt></char>S
  

Verletzte Ansprüche mit Begründung

  1. Hauptanspruch
    transformiert ein als Bitmap dargestelltes Dokument (als Beispiel Bitmap mit dem Satz "it is", pro Zeichen ein 4x4 Teil-Bitmap) in eine Dokumentbeschreibungssprache (hier XML), die Elemente der Sprache sind durch einen Type-identifier identifiziert (hier "gerade"), enthält Information über die Unsicherheit der Erkennung
  2. Anspruch 2
    Information über die Unsicherheit ist auch als "Grad der Unsicherheit" gespeichert (Attribut "cert") (der Hauptanspruch würde auch durch Programme verletzt, in denen der Grad der Unsicherheit implizit gegeben ist)
  3. Anspruch 4
    alternative Transformationen sind enthalten Subelemente "alt", die Alternativen enthalten Information über den Grad der Unsicherheit (Attribut "cert"),
  4. Anspruch 5
    nach meinem Verständnis ein weniger spezieller Fall als 4 und daher auch verletzt,
  5. Anspruch 6
    "main" ist ein Character-Recognizer, die Elemente werden als Typ "character-String" (kein expliziter Typ-Identifier) oder "questionable-character" (Typ-Identifier hier: "char") identifiziert, der character String enthält aufeinanderfolgende Zeichen (Beispiel: "IT ") die questionable-character Elemente enthalten Information über die Unsicherheit,
  6. Anspruch 9
    die Information über die Unsicherheit enthält das wahrscheinlichste Zeichen (durch das Maximum der "cert" Attribute in einem "char" Element) alternative, unwahrscheinliche Zeichen sind enthalten,
  7. Anspruch 11
    das Bitmap wird in Sub-Bitmaps aufgeteilt (nämlich 4x4 Bitmaps), die als Textteil analysiert werden,
  8. Anspruch 10
    verletzt Anspruch 11 und Unsicherheitsinformation ist enthalten (s.o.)
Übersicht Sieger-Patente
Startseite | Themenabende | Mailingliste | Pläne | Links | GnuPG-Schlüssel
Letzte Änderung: 11. Januar 2003
Benedikt Wildenhain, patente@benedikt-wildenhain.de