News in KADMOS Version 6.0


Up to now Kadmos supported recognition of single characters, lines, and paragraphs. Now the recognition of almost any documents is supported. For this a new function re_layout() is provided. It looks in documents for text areas and returns their positions as circumscribing rectangles.

KADMOS wird häufig zum Lesen der Kodierzeilen von Pässen und Ausweisen eingesetzt. Ein Problem bereitet hier immer wieder die Bildvorverarbeitung sowie the Auffinden der Kodierzeilen selbst. Für diese Anwendungen wurde eine eigene Funktion rep_idcard() bereitgestellt. Sie liefert die Resultate in der gleichen Form als hätte man rep_do() genau auf den Bildausschnitt der Kodierzeilen angewendet. rep_idcard() ist zusätzlich als Exe oder Binary verfügbar, thes aus der Kommandozeile aufgerufen werden kann: "idcard Bild-Datei Klassifikator". Die Ausgabe erfolgt als Xml-Datei mit gleichem Namen wie die Bild-Datei.

With the more comprehensive function re_page() the text areas can assigned classifiers, with which automatically recognition of those text areas is performed.

Kadmos is applied extensively for reading the coding lines of ID cards and passports. One common problem here is image preprocessing and finding the coding lines themselves. For this applications a special function rep_idcard() is provided. It delivers the results of recognition the same way as rep_do() if it gets applied directly on the coding lines. rep_idcard() additionally also is available as exe file or binary which can be called directly from the command line: "idcard image_file classifier". As output an XML file with the name of the image_ file is generated.

To improve recognition accuracy on images with noisy background a new technology has been implemented. If the parameter OPTIONS_rel_REC_REPEAT is set, badly recognized single characters are read again directly from the original gray or color image. Then they are binarized again with changed parameters, dependent on their measured stroke width.

Now the output of the results as XML file is implemented. For this only the parameter TEXT_FORMAT_XML has to be set with the functions re?_textline(). This also holds for the new functions rep_text() and page_text() which enable the text output of the results of rep_do() and re_page(). The functions re?_textline(), rep_textline(), and page_text() now return short or long spaces with one blank only. The old solution - to return the estimated number of blanks - was dependent on the blank width of the output font, which is not known at time of recognition. The estimated number of blanks is still returned in RelGraph.leading_blanks, except of the beginning of the line.

The old define CODE_UNICODE has been replaced by CODE_UTF_16. This avoids misunderstandings between Microsofts Unicode (wchar_t as unsigned short) and Linux (wchar_t as unsigned int). The newly implemented CODE_UTF_32 denotes the 32 bit Unicode.

With MSVC no libraries with the compiler switch /Md (multithreaded dll) are provided any more. In the past they have lead to problems several times, especially when the applications should run under new Windows versions. Concerned are libraries like rec_md.lib or rel_md.lib, those that have the ending _md in their filename.