Dezentrale Finanzen

Wie wir unsere optische Zeichenerkennung (OCR) für Programmcode präziser gemacht haben

Dezentrale Finanzen
How we made our optical character recognition (OCR) code more accurate

Ein tiefgehender Einblick in die Optimierung einer OCR-Engine speziell für Programmcode inklusive verbesserter Bildvorverarbeitung, Layout-Erkennung und Evaluierungsmethoden zur Steigerung von Genauigkeit und Anwendungsfreundlichkeit für Entwickler.

Optische Zeichenerkennung, kurz OCR, ist eine Technologie, die gedruckte oder handgeschriebene Zeichen aus Bildern oder gescannten Dokumenten erkennt und in maschinenlesbaren Text umwandelt. Diese Technologie hat in den letzten Jahrzehnten zahlreiche Bereiche revolutioniert, von der Digitalisierung alter Dokumente bis hin zur Automatisierung von Dateneingabeprozessen. Doch trotz der Fortschritte stellen komplexe und stark strukturierte Inhalte wie Programmcode besondere Herausforderungen an OCR-Systeme. Genau hier setzt Pieces mit seiner spezialisierten Lösung an und verbessert die Genauigkeit der OCR-Technologie für Entwickler, die Code aus Screenshots, Videos oder Webseiten extrahieren möchten. Unsere Reise zur Verbesserung der OCR-Genauigkeit begann mit der Erkenntnis, dass Standard-OCR-Lösungen zwar für Fließtext gut funktionieren, jedoch für Programmcode, der auf korrekte Syntax und Formatierung angewiesen ist, nicht optimal sind.

Programmcode besteht nicht nur aus Zeichen, sondern auch aus einer wichtigen Struktur, etwa Einrückungen in Python, die essenziell für die Lesbarkeit und funktionale Bedeutung sind. Um den Anforderungen gerecht zu werden, verwendeten wir Tesseract, eine der führenden Open-Source-OCR-Engines, als Basis. Tesseract agiert mit fortgeschrittenen Algorithmen, inklusive eines LSTM-Modells, das auf großen Text-Bild-Paaren trainiert wurde, und unterstützt dabei über 100 Sprachen. Allerdings ist die Standard-Version von Tesseract nicht darauf ausgelegt, unterschiedliche Programmierumgebungen und deren spezifische visuelle Eigenschaften optimal zu verarbeiten. Deshalb entwickelten wir einen umfangreichen Vorverarbeitungsprozess für Bilder, bevor der OCR-Algorithmus die Texterkennung durchführt.

Die Vorgabe war, Screenshots aus verschiedenen Umgebungen und Qualitäten zuverlässig zu unterstützen. Programmier-Interfaces variieren stark – von hellen IDE-Layouts über dunkle Terminalfenster bis hin zu Videos oder Blogposts mit oft unruhigem Hintergrund. Diese Vielfalt führte zu zahlreichen Problemen bei der Zeichenerkennung, etwa durch zu dunkle oder verrauschte Hintergründe, Farbverläufe und komprimierte Bilder mit niedriger Auflösung. Um diesen Herausforderungen zu begegnen, konzentrierten wir uns im Pre-Processing zuerst auf das Standardisieren des Bildinputs. Ein besonderes Augenmerk lag auf der Erkennung und Anpassung von dunklen Hintergründen.

Da Tesseract am besten mit hellen, binarisierten Bildern funktioniert, entwickelten wir eine Methode zur automatischen Identifikation dunkler Bildmodi, die häufig in Code-Editoren oder auch in YouTube-Tutorials auftreten. Dabei wird das Bild zunächst mit einem Median-Blur bearbeitet, um Ausreißer zu entfernen, und anschließend die durchschnittliche Helligkeit des Bildes berechnet. Liegt diese unter einem festgelegten Schwellenwert, wird das Bild invertiert, um die Farbverhältnisse so zu optimieren, dass der OCR-Prozess bessere Ergebnisse erzielt. Eine weitere Herausforderung waren Bilder mit farbigen Farbverläufen oder unruhigen Hintergründen, die den Texterkennungsprozess verfälschen können. Hier haben wir einen dilatationsbasierten Ansatz gewählt, bei dem eine Kopie des Bildes mit einem Dilatations-Kernel und medianem Filter bearbeitet und anschließend von dem Original subtrahiert wird.

Das Ergebnis ist eine Verminderung dunkler Abweichungen, während die Textbereiche erhalten bleiben. Auf diese Weise konnten wir den Kontrast zwischen Text und Hintergrund signifikant verbessern, ohne wichtige Details zu verlieren. Zusätzlich problematisch waren Screenshots mit niedriger Auflösung, welche beispielsweise durch Komprimierung bei Uploads oder dem Versenden von Bildern entstehen. Um die Lesbarkeit dieser Bilder zu erhöhen, integrierten wir eine Upsampling-Technik, die auf bicubic Interpolation basiert. Dabei wird das Bild auf eine höhere Auflösung skaliert, um dem OCR-System mehr relevante Datenpunkte zur Verfügung zu stellen und die Zeichenerkennung zu erleichtern.

Interessanterweise zeigten unsere Tests, dass hochmoderne Super-Resolution-Modelle wie SRCNN zwar einen erhöhten Rechenaufwand mit sich bringen, jedoch keinen signifikanten Vorteil gegenüber der einfacheren bicubic-Methode bieten. Aus Gründen der Effizienz und Speicheroptimierung entschieden wir uns daher für den bicubic-Ansatz in der finalen Pipeline. Neben der Bildvorverarbeitung ist die korrekte Erkennung der Code-Struktur ein weiterer zentraler Punkt. Da Programmcode stark von seiner Formatierung abhängt, ist es essenziell, dass die erkannten Textzeilen entsprechend eingerückt und dargestellt werden. Die Standardausgabe von Tesseract liefert zwar den erkannten Code, ignoriert jedoch jegliche Formatierung oder Einrückung.

Ohne diese Funktionalität ist der extrahierte Code häufig unleserlich oder bei Sprachen wie Python sogar funktionsuntüchtig. Um diesem Problem zu begegnen, werteten wir die von Tesseract gelieferten Bounding-Boxen für jede Textzeile aus. Anhand der Breite der Box und der Anzahl der Zeichen berechneten wir die durchschnittliche Breite eines einzelnen Zeichens auf der jeweiligen Zeile. Mithilfe der Positionsinformationen der Boxen konnten wir anschließend die Einrückung der Zeilen relativ zueinander bestimmen. Durch eine einfache Heuristik wurden die Einrückungen dann auf gerade Zahlen von Leerzeichen gerundet, um eine konsistente und gut lesbare Formatierung zu gewährleisten.

Für die Evaluation der gesamten OCR-Pipeline mussten wir eine präzise und objektiv messbare Methode finden, um die Veränderungen durch unsere Optimierungen zu bewerten. Als Grundlage nutzten wir verschiedene Datensätze aus eigens erstellten sowie generierten Bild-Text-Paaren. Die erkannten Texte wurden mit den korrekten, von Menschen erstellten Referenztexten verglichen und die Unterschiede mittels Levenshtein-Distanz quantifiziert. Dieser Ansatz erlaubt es, die Anzahl der nötigen Bearbeitungsschritte für die Korrektur des erkannten Textes zu messen und dient somit als direkter Indikator für die OCR-Genauigkeit. Jede Modifikation der Pipeline wurde als Forschungshypothese behandelt und über zahlreiche Experimente validiert.

So untersuchten wir etwa die Auswirkungen unterschiedlicher Upsampling-Methoden mit dem Ergebnis, dass Bicubic Upsampling das optimale Verhältnis zwischen Performanz und Genauigkeit bietet. Insgesamt hat sich herausgestellt, dass die Kombination aus gezielter Bildvorverarbeitung, strukturierter Formatierung und ausführlicher Evaluation den entscheidenden Unterschied macht, um OCR-Systeme in komplexen Anwendungsbereichen wie der Code-Extraktion nutzbar zu machen. Das Ergebnis ist eine hochgenaue OCR-Lösung, die Entwicklern ermöglicht, direkt aus Screenshots oder Videomaterial funktionierenden und korrekt formatierten Programmcode zu gewinnen. Diese Leistungssteigerung eröffnet zahlreiche Möglichkeiten: von leichterem Teilen und Archivieren von Code-Schnipseln über verbesserte Dokumentation bis hin zu neuen Tools im Bereich der automatisierten Codegenerierung und -analyse. Wir sind stolz darauf, mit unserer eigens optimierten OCR-Engine einen der ersten spezialisierten Ansätze im Bereich Codetexterkennung zu realisieren und arbeiten kontinuierlich an weiteren Verbesserungen, um noch schneller und präziser zu werden.

Automatischer Handel mit Krypto-Geldbörsen Kaufen Sie Ihre Kryptowährung zum besten Preis

Als Nächstes
Heard on the Street Recap: Ratings Game
Mittwoch, 02. Juli 2025. Das Spiel mit den Ratings: Ein Blick hinter die Kulissen von Heard on the Street

Eine tiefgehende Analyse der Dynamik und Strategien, die hinter den Ratings in der Finanzwelt stecken, basierend auf der renommierten Kolumne Heard on the Street.

GM to stop exporting vehicles from US to China, company says
Mittwoch, 02. Juli 2025. General Motors beendet Fahrzeugexporte von den USA nach China – Auswirkungen und Hintergründe

General Motors hat angekündigt, den Export von Fahrzeugen aus den USA nach China einzustellen. Diese Entscheidung fällt vor dem Hintergrund steigender Handelsbarrieren und verändertem wirtschaftlichem Umfeld.

Why Broadcom Stock Ticked Higher on Monday
Mittwoch, 02. Juli 2025. Warum die Broadcom-Aktie am Montag anstieg: Eine tiefgehende Analyse

Die Broadcom-Aktie verzeichnete am Montag einen deutlichen Kursanstieg, beeinflusst durch Entwicklungen im Bereich künstliche Intelligenz und positive Analystenbewertungen. Die wachsende Nachfrage nach maßgeschneiderten Chips und die strategische Positionierung des Unternehmens geben Aktienanlegern neuen Grund zur Zuversicht.

Little: 'Big, beautiful bill' could reduce revenue
Mittwoch, 02. Juli 2025. Idahos Wirtschaft im Wandel: Wie ein „großes, schönes Gesetz“ die Staatseinnahmen beeinflussen könnte

Eine eingehende Analyse der wirtschaftlichen Herausforderungen für Idaho angesichts bevorstehender Steuerreformen auf Bundesebene und deren potenzieller Auswirkungen auf die Staatseinnahmen, begleitet von Einblicken zur Landespolitik und Zukunftsaussichten.

Cryptocurrencies not recognised as legal tender in Malaysia, says deputy minister
Mittwoch, 02. Juli 2025. Kryptowährungen in Malaysia: Warum sie nicht als gesetzliches Zahlungsmittel anerkannt sind

Eine umfassende Analyse der Stellung von Kryptowährungen in Malaysia, ihrer rechtlichen Einordnung und den Gründen, warum sie bisher nicht als gesetzliches Zahlungsmittel anerkannt werden. Zudem wird die Bedeutung der Regulierung durch die Zentralbank erläutert und die Auswirkungen auf den malaysischen Finanzmarkt betrachtet.

Money blog: BA opens routes to 'little Naples' and Italians' favourite beach spot - are they great cheaper options?
Mittwoch, 02. Juli 2025. Billige Flüge nach 'Klein-Neapel': British Airways öffnet neue Routen zu Italiens Lieblingsstränden

British Airways bedient seit Kurzem neue Strecken zu beliebten italienischen Zielen, die oft als 'Klein-Neapel' bezeichnet werden. Diese Verbindungen könnten eine günstigere Alternative für Reisende sein, die Italiens berühmte Küstenorte entdecken möchten.

Altcoin Season Is Here! These Are The Top Altcoins You Need For Massive ROI
Mittwoch, 02. Juli 2025. Altcoin Season 2025: Diese Top-Altcoins Solltest Du Für Massive Renditen Beobachten

Die Altcoin-Saison 2025 eröffnet spannende Chancen für Investoren, die über Bitcoin hinausblicken. Entdecke die vielversprechendsten Altcoins, die durch technische Innovationen und starke Communities beste Voraussetzungen für hohe Renditen bieten.