כלי OCR ליומן נכשלים על פליירים וצילומי מסך אמיתיים כי הם מתייחסים לתמונה כטקסט שטוח ומעתיקים את השורה הראשונה (lines[0]) כשם האירוע. בצילום מסך או בפוסטר הופעה, השורה הראשונה היא כמעט תמיד רעש משורת המצב (9:41 AM 5G), סימן מים של כרטוס (TICKETMASTER) או פתיח של מפיק (LIVE NATION PRESENTS).
צינור ה-AI המקומי בן 3 השלבים של Utiliome מבין גם את ההיררכיה הוויזואלית וגם את הישויות בפלייר:
- חילוץ בלוקים ותיבות של Tesseract v6: מחלץ את קואורדינטות הפיקסלים של כל שורה (
bbox: { x0, y0, x1, y1 }) ומחשב את גובה הגופן (y1 - y0) ביחס לגובה הטקסט החציוני בפוסטר. - Web Worker מקומי
Xenova/bert-base-NER: מנרמל טקסט באותיות גדולות לכותרת חכמה ומריץ סיווג טוקנים ב-Web Worker כדי לדרגLOC(מקומות, רחובות, ערים),ORG(להקות, מארחים),PER(אמנים, דוברים) ו-MISC(סיבובים, פסטיבלים) בפחות מ-90ms. - צימוד כותרת ומקום: מחבר שורות כותרת סמוכות עם יחס גופן גבוה ל-
Event Titleנקי, ומאחד שורותLOCרצופות (למשל שם אולם מעל כתובת) לשדהLocation / Venue.