R&D LAB Angewandte Forschung In Entwicklung Android-Build im Praxistest
Vellum
Ein Dokumentenscanner, der auf dem Telefon rechnet
Kanten, Perspektive, Licht und Text werden auf dem Telefon berechnet. Ein Dokument verlässt das Gerät erst, wenn jemand es sendet.
- 0Server, über die eine Seite läuft
- 1GPU-Durchgang für Entzerrung und Tonwert
- 11Bildmodi im selben Shader
- 2Kantendetektoren: Sucher und Aufnahme

Aufgenommen im Browser-Prüfstand, der denselben Detektor und denselben Shader wie die App ausführt. Die Seite ist ein synthetisches Testdokument, in ein Schreibtischfoto projiziert.
Publikationsgrund
Wir bauen Dokumenten-KI und beraten dazu, wo Daten liegen dürfen. Vellum zeigt den Teil dieser Arbeit, der vor jedem Modell liegt: ein Bild so aufzubereiten, dass es lesbar ist, und das dort zu tun, wo das Dokument ohnehin schon ist. Dazu gehört Bildverarbeitung, deren Genauigkeit gemessen statt geschätzt wird, und die Disziplin, auf echter Hardware zu testen, weil sich dort Fehler zeigen, die kein Browser findet. Wer eine Verarbeitung sensibler Dokumente ohne Umweg über fremde Server plant, sieht hier, wie wir so etwas bauen.
Ein Scanner fotografiert Dokumente, die man ungern aus der Hand gibt: Verträge, Lieferscheine, Ausweise. Vellum findet die Seitenkanten schon im Kamerabild, entzerrt die Perspektive über eine Homographie, gleicht Licht und Kontrast in einem Fragment-Shader auf der GPU aus und erkennt den Text auf dem Telefon. Es gibt keinen Server, über den eine Seite dabei läuft. PDF und Bilder verlassen das Gerät über das Teilen-Menü des Betriebssystems, also erst dann, wenn jemand selbst auf Senden tippt. Gebaut ist die App mit Expo und React Native; ein Android-Build wird derzeit auf einem Emulator und auf einem Telefon erprobt.
Die Entscheidung
Das Telefon ist schon da, wo das Dokument ist
Die erste Frage an diesen Scanner war nicht, wie gut er Kanten findet, sondern wohin eine Seite dabei geht. Ein Server, der Bilder aufbereitet und Text liest, ist schnell gebaut. Er ist aber auch ein weiterer Ort, an dem Verträge, Ausweise und Lieferscheine liegen, mit allen Fragen, die daran hängen: wer Zugriff hat, wie lange, in welchem Land. Vellum hat deshalb keinen. Erkennung, Entzerrung, Tonwertkorrektur und Texterkennung laufen auf dem Telefon.
Aus dieser Entscheidung folgt fast jede weitere. Die Perspektivkorrektur ist eine Homographie in einem Fragment-Shader und kein Aufruf an einen Dienst. Die Texterkennung schreibt eine unsichtbare Textebene in das PDF, an die Stelle jeder erkannten Zeile, und macht die Bibliothek durchsuchbar, ohne dass der Text je hochgeladen wird. Senden heißt: Das Mail-Programm oder das Teilen-Menü des Betriebssystems öffnet sich mit der Datei, und ein Mensch tippt auf Senden.
Der Preis dafür ist ehrlich zu nennen. Alles, was einen Server braucht, fehlt bewusst: Synchronisation zwischen Geräten, Freigabelinks, Übersetzung, Texterkennung in der Cloud. Unbeaufsichtigtes Versenden gibt es ebenfalls nicht, weil jeder Versand über eine Person läuft. Und die Rechenleistung ist die des Telefons, also muss jeder Schritt in dessen Budget passen.
Was das Gerät nicht verlässt, liegt an keinem zweiten Ort.
Der Weg einer Seite
Vom Kamerabild zur durchsuchbaren Datei
- 01 Kanten im Sucher Bei jedem Kamerabild liest ein Worklet die Helligkeitsebene in einem groben Raster, und zwar nur den Teil, den der Bildschirm tatsächlich zeigt. Daraus entsteht ein Umriss, der geglättet wird und ein paar verlorene Bilder lang stehen bleibt. Die Ecken lassen sich vor dem Auslösen ziehen.
- 02 Ecken nach der Aufnahme Auf dem Foto sucht ein gründlicherer Detektor: Schwellwert nach Otsu, zusammenhängende Flächen, nur Randzellen auf einer echten Helligkeitsstufe, dann eine Gerade je Seite nach der Methode der kleinsten Quadrate. Findet er nichts, gilt das ganze Bild, und die Ecken werden von Hand gesetzt. Standardmäßig folgt eine Eckenkontrolle.
- 03 Entzerren und Licht ausgleichen Ein einziger GPU-Durchgang. Der Shader rechnet jede Ausgabekoordinate über die Homographie in das Foto zurück und liest dort. Das Papierweiß schätzt er aus zwei verkleinerten Kopien des Fotos, sodass jede Helligkeit relativ zum Papier gilt, egal wo die Lampe steht.
- 04 Text erkennen Die Texterkennung läuft auf dem Gerät. Aus der Richtung der erkannten Zeilen liest die App, ob die Seite gedreht werden muss und wie schief sie liegt, und korrigiert beides über die Eckenliste. Stimmen die Zeilen nicht überein, bleibt die Seite, wie sie ist.
- 05 PDF und Versand Die Seiten werden zu einem PDF mit unsichtbarer Textebene oder zu Einzelbildern. Eine Größenvorgabe senkt erst die JPEG-Qualität und dann die Auflösung. Hinaus geht die Datei über das Mail-Programm oder das Teilen-Menü des Betriebssystems.
Gesucht wird nur, was man sieht
Die Vorschau füllt den Bildschirm, das Kamerabild hat aber ein anderes Seitenverhältnis. Auf einem hohen Telefon liegt deshalb etwa ein Drittel jedes Bildes außerhalb des Bildschirms. Solange der Detektor dieses Drittel mit durchsuchte, konnte er eine Ecke an eine Stelle legen, die niemand sah und niemand ziehen konnte. Beide Detektoren suchen jetzt nur im sichtbaren Ausschnitt.
Die zweite Ursache für eine verrutschte Kante war eine helle Fläche neben der Seite, etwa ein Lichtkegel, die mit dem Papier zu einem Fleck verschmolz. Seitdem wird jede Seite des Umrisses danach bewertet, ob über sie hinweg ein echter Helligkeitssprung liegt. Ein Lichtkegel läuft weich aus, eine Papierkante nicht.
Beide Detektoren haben eine Messumgebung, die den Eckfehler auf einem festen Satz Testseiten gegen unabhängig bestimmte Sollwerte ausgibt. Jede Änderung wird vorher und nachher gemessen.
Was auf dem Gerät festgelegt ist
Nach der Aufnahme bleibt alles änderbar
Die Dokumentansicht zeigt jede Seite mit ihrem Bildmodus und ihrer Ausgabegröße. Von hier aus lässt sich jede Seite nachbearbeiten: Ecken ziehen, mit einer Lupe, die auf die gegenüberliegende Seite springt, damit der Finger die Ecke nicht verdeckt, und einen Bildmodus aus einer Leiste wählen, die jeden Modus als kleine Vorschau des aktuellen Ausschnitts zeigt.
Drehen, das Nachsetzen der Ecken und das Teilen einer Doppelseite aus einem Buch an der Falz sind Änderungen an der Eckenliste desselben Originals, kein Bearbeiten von Pixeln. Die Doppelseite braucht dafür kein zweites Foto. Seiten lassen sich außerdem verschieben, neu aufnehmen und mit einem anderen Dokument zusammenführen.
Was der Prüfstand beweist und was erst das Gerät zeigt
Im Browser nachweisbar
- Die Geometrie der Kantenerkennung, weil der Prüfstand denselben Detektor ausführt.
- Der Tonwert jedes Bildmodus, weil derselbe GLSL-ES-1.00-Shader auf WebGL läuft.
- Ein heller Saum an der Seitenkante, der entstand, weil der Umriss minimal zu groß gewählt war.
- Der Eckfehler je Testseite, gemessen gegen feste Sollwerte.
Erst im Android-Build sichtbar
- Eine Kamerasitzung, die sich nicht konfigurieren ließ, weil die Kameraansicht bereits eine eigene Vorschau mitbringt.
- Umrisse an der falschen Stelle, weil Sensorkoordinaten in der Ausrichtung des Sensors ankommen und erst gedreht werden müssen.
- Senkrecht gespiegelte Seiten, weil ein Framebuffer von unten nach oben ausgelesen wird.
- Schwarze Seiten, weil eine native Bilddekodierung fehlschlug, ohne einen Fehler zu melden.
- Abstürze, die nur im Release-Build auftreten und in der Entwicklung höchstens eine Warnung sind.
Suchen in dem, was das Telefon gelesen hat
Die Bibliothek filtert nach Etiketten, nach Alter und nach dem Text, der auf den Seiten erkannt wurde. Ein Dokument trägt bis zu acht Etiketten. Voreinstellungen für Beleg, Vertrag und Ausweis setzen Bildmodus und Layout gemeinsam; beim Ausweis landen zwei Aufnahmen auf einem A4-Blatt.
Auf Wunsch arbeitet eine Warteschlange die Texterkennung für bereits gespeicherte Seiten ab, eine Seite nach der anderen und nur, solange die App im Vordergrund ist. Ein Foto, das eine andere App an Vellum weitergibt, läuft durch dieselbe Pipeline wie eine Aufnahme. In beiden Fällen verlässt kein Bild das Gerät.
Wofür diese Bauweise gedacht ist
- Dokumente, die nicht bei einem Scan-Dienst liegen sollen: Verträge, Personalunterlagen, Ausweiskopien.
- Außendienst und Lager, wo ein Lieferschein vor Ort erfasst und von dort aus versendet wird.
- Belege mit verblasstem Thermodruck, für die es einen eigenen Bildmodus gibt.
- Als erster Schritt einer Dokumenten-KI mit Datenhaltung im eigenen Haus: Seiten werden auf dem Gerät lesbar gemacht, bevor irgendetwas weiterverarbeitet wird.
- Als Vorlage für eigene Apps, die Bilder mit Shadern auf dem Gerät verarbeiten statt auf einem Server.
Publikationsgrund
Was das für Ihr Projekt heißt
Weiteres aus dem Lab
Methode Event Scout Ein Sprachmodell liest die Veranstaltungsseiten, alles andere ist festes Programm. Übrig bleibt eine kurze Liste, wo sich ein Tag vor Ort lohnt.
Computational Design Atlas EV1 Zwölf Kapitel nehmen ein Elektroauto auseinander, bis zur einzelnen Zelle. Keine Modelldateien, keine Texturen: 327 Teile aus einer Maßtabelle.
Methode Contradiction Sagen Sie, was besser werden muss und was dabei schlechter wird. Sie bekommen die Prinzipien, die genau dieses Paar gelöst haben, und die Erfindungen, die es getan haben. Sollen sensible Dokumente lesbar werden, ohne einen Umweg über fremde Server? Genau dafür gibt es einen Piloten.
Kontakt aufnehmen