Uneltele OCR-către-calendar de bază eșuează pe flyere reale și pe screenshot-uri de telefon pentru că tratează imaginea ca text plat și copiază orbește primul rând (lines[0]) ca nume de eveniment. Pe un screenshot sau un afiș, primul rând este aproape mereu zgomot de status bar (9:41 AM 5G), un watermark de ticketing (TICKETMASTER) sau un intro de promotor (LIVE NATION PRESENTS).
Pipeline-ul local AI în 3 etape de la Utiliome înțelege și ierarhia vizuală, și entitățile semantice:
- Extragere de blocuri și bounding box cu Tesseract v6: Extrage coordonatele exacte ale fiecărui rând (
bbox: { x0, y0, x1, y1 }) și calculează înălțimea vizuală a fontului (y1 - y0) față de înălțimea mediană a textului de pe afiș. - Web Worker local
Xenova/bert-base-NER: Normalizează textul integral cu majuscule în title case și clasifică tokenii într-un Web Worker, cu scoruriLOC(locații, străzi, orașe),ORG(trupe, gazde),PER(artiști, vorbitori) șiMISC(turnee, festivaluri), în sub 90 ms. - Împerecherea titlului și a locației: Unește rândurile de titlu adiacente, cu raport mare de font, într-un
Event Titlecurat și combină rândurileLOCconsecutive (nume de loc deasupra unei adrese) în câmpulLocation / Venue.