Цікавий підхід.
У своїй роботі я бачу багато перетинів із вашою: використовую Label Studio для виправлення помилок розмітки, human-in-the-loop валідацію, а також
Я все ж вважаю, що більш правильний шлях — детектувати не рядки, а окремі слова.
Причини:
1. Дугообразний текст. Якщо детектувати цілий рядок, у bounding box часто потраплятиме частина верхнього або нижнього рядка. Приклади:

2. Розширення датасету. Якщо врахувати, що рядок складається, наприклад, із 7 слів, то можна програмно формувати crop’и, які складаються з 1—2—3 слів, 3—4—5 слів, 5—6—7 слів або за іншою схемою. У вашому підході потрібно передавати всю строку цілком, бо іншого варіанту немає, але це складніше для навчання OCR. У своїх експериментах я дійшов висновку, що OCR-модель, попередньо навчена на невеликих crop’ах і потім донавчена на повних рядках,
зазвичай на кілька відсотків точніша, ніж модель, яку одразу навчали лише на довгих рядках.
3. Якщо якесь слово є нерозбірливим `[illegible]`, можна все одно використати інші слова з цього рядка.
Але в розмітки на рівні слів також є мінуси:
1. Не існує моделей на кшталт YOLO, EAST тощо, які давали б 100% точність при розмітці окремих слів. Результати все одно потрібно перевіряти й виправляти.
До речі, я намагався за допомогою few-shot промпта перевіряти свої bounding boxes, але це не спрацювало ні з GPT-4o, ні з Gemini. Можливо, має сенс ще раз перевірити цей підхід із Qwen3-VL-8B, який згадується у статті.
2. Складніший код для об’єднання окремих слів у рядки.
На мою думку, це складне й важке завдання.
Причини:
1. Мова написання. Тут їх за замовчуванням може бути чотири: польська, українська, російська та староруська. Навіть якщо форма анкети після 1918 року українською, заповнювати її могли російською — і навпаки. Іноді анкету заповнювали кількома мовами: ПІБ українською, а інші слова — російською. Усе це до того, що просто добре навчений OCR взагалі не варіант. Після розпізнавання там використовуються словники, але як зрозуміти, яке саме слово ми очікуємо і якою мовою?
2. Брудні форми. Через давність років матеріал вицвів, іноді рукописного тексту майже не видно. Часто ставлять печатки й штампи, які накладаються на рукописний текст. Є великий розкид у рукописному тексті: перетин друкованого й рукописного. Усе це до того, що потрібно використовувати окремі нейромережі для сегментації, щоб відокремити рукописний текст від друкованого, штампів і просто сміття — артефактів зберігання.
3. OCR сама по собі частково обмежена й ніколи не зможе дати 100% точності. І тут не допоможе навіть величезний датасет із мільйонами сніпетів для навчання. У мене було 4 мільйони англійською, і я не можу сказати, що досяг видатного результату й обійшов усіх. Це не так.
Водночас, зі свого досвіду можу сказати, що поєднання OCR і LLM завжди дає хороший результат. Коли ми даємо мультимодальній моделі — GPT, Qwen, Gemini та іншим — не просто картинку, а картинку, варіанти розпізнавання від OCR і few-shot приклади, це завжди виграшний підхід. Це краще, ніж просто OCR, і краще, ніж просто модель. Але знову ж таки, 100% точність недосяжна і в цьому варіанті.
Дякую. Нажаль я вже не встигну прийняття участь у змаганні, бо тільки сьогодні дізнався про нього. Але дуже цікаво буде порівняти свої результати з конкурсантами.
А ще питання, Дмитро. На вашому датасеті який результат метрик (CER, WER, Accuracy) на тесті? Чи це не публічна інформація?
Дуже дякую! Обов’язково скачаю, зроблю тести, повідомлю свої поточні результати, якщо цікаво. Щодо моєї розмітки, я не проти поділитися. Напишу в приватні повідомлення.
Ще раз дякую за цю роботу. Я знаю скільки часу вона займає, бо сам працював з власним датасетом на тисячах зображень.
Вибачаюсь, не тому відповів.
О як цікаво! Я теж займався українським рукописом, теж маю власний датасет зі шкільними зошитами та бухгалтерськими документами, купу моделей для розмітки, моделі для OCR. А де саме можна подивитися ваш відкритий датасет та спробувати на тестах мій OCR, наприклад?
До речі, ще почав працювати над відкритим та публічним датасетом (вже частково оцифрованим) з метричними даними народжених у 1920..30 роках. Детектую там потрібні зони, перевіряю співпадіння зони сніппета та вже готову розмітку за допомогою LLM.
Можу частково передати свою розмітку та датасет, якщо є бажання співпрацювати.
P.S. Також є датасати з рукописом лікарів, та окремий датасет з цифрами (телефони, дати народження та інше)
Різні ситуації бувають: я, наприклад, навпаки, шукаю роботу в miltech, але нікому не потрібен. Хоча майже 10+ років у computer vision, deeep learning і зараз AI.
Деякі компанії шукають працівників тільки у Києві та Львові. Я з Харкова, наприклад. Віддалено немає посад.
Деякі пропонують тільки full-time. Навіщо мені втрачати існуючу роботу, коли я невпевнений у перспективах нового роботодавця. Може мій досвід буде не цікавий або ще щось.
Якось так...
А ось @Dmytro Voitekh з вами не згоден. Бо у своїй статті описує (dou.ua/forums/topic/59990), що можливо детектувати зони на зображенні. При цьому, цих зон більше десятка.
P.S> Я скільки не пробував, звагілі ніяк. Хоч few-shot з прикладами, будь шо. Тільки класичний YOLO нормально детектує. Чогось ми не знаємо, або хтось лукавить ))