Похожие презентации:
OCR + NLP pipeline для определения позиции пропущенного слова в казахском предложении
1.
OCR + NLP pipeline для задачиопределения позиции
пропущенного слова
в казахском предложении
Команда разделила решение на два блока:
1) извлечение текста из изображения,
2) предсказание позиции пропущенного слова.
Фото → OCR → текст
→ удаляем 1 слово
→ ML предсказывает позицию
Моя зона
ответственности
OCR-сервис: загрузка
изображения, извлечение
текста, подготовка строки для
модели.
Ключевая идея
Мы расширили Kaggle-задачу до
реального сценария: пользователь
работает не с готовым текстом, а с
фото.
1
2.
Проблема и почему мы расширили задачуKaggle начинается с текста, а реальный пользователь — с изображения
real-world
extension
Проблема
Почему нужен OCR-слой
Что это дало
В ASR и OCR часто пропускаются слова изза шума, искажений, качества изображения
и особенностей языка. Для казахского это
особенно заметно: язык морфологически
богатый и имеет гибкий порядок слов.
На Kaggle модель получает уже
готовое предложение. В
реальном применении
пользователь загружает фото
или скан, поэтому сначала
нужно преобразовать
изображение в текстовую строку.
Мы построили полноценный
pipeline:
изображение → OCR →
текст с пропуском → MLмодель.
То есть сделали решение
ближе к реальной
эксплуатации.
2
3.
Архитектура решения end-to-endОт загруженного изображения до submission.csv
1. Upload
Пользователь
загружает фото с
казахским
предложением
2. OCR
3. Masking
4. Inference
Tesseract OCR
(kaz+rus) извлекает
текст из
изображения
Из предложения
случайно удаляется
одно слово
XLM-RoBERTa
Token Classification
предсказывает
позицию
5. Output
Индекс
записывается в
submission.csv
Почему эта архитектура сильная
Она объединяет компьютерное зрение и NLP: сначала извлекает текст из реального визуального входа, а затем подает его в
модель для предсказания позиции пропущенного слова.
3
4.
OCR-модуль: как мы извлекали текст изизображений
Фокус на стабильности, универсальности и поддержке казахских символов
Выбор технологии
1 # accuracy-first OCR
2 processed = preprocess(image)
3 text =
pytesseract.image_to_string(
4
processed,
5
lang="kaz+rus",
6
config="--oem 3 --psm 7"
7 )
Мы сравнили несколько OCR-подходов
и остановились на Tesseract, потому
что он имеет готовую языковую модель
для казахского и легко интегрируется в
Python.
Повышение точности
Использовали preprocessing: grayscale,
увеличение масштаба,
шумоподавление и бинаризацию. Это
улучшает контраст и снижает ошибки
распознавания.
Что получает модель
На выходе OCR выдает чистую
текстовую строку; затем из нее
удаляется одно случайное слово и
результат передается в ML-блок.
4
5.
ML-модель для предсказания позициипропущенного
слова
Предобученная XLM-RoBERTa, адаптированная под Token Classification
Как устроен инференс
Ключевая идея обработки
Постобработка предсказаний
• Используется XLM-RoBERTa + HuggingFace
Transformers
• Запуск на GPU при наличии
• TestDataset разбивает предложение на
слова и токенизирует его
• Длина ограничивается 192 токенами,
применяется padding
• Из-за субтокенов строится FSM-маска
• Она отмечает только первые токены слов
• Это позволяет корректно сопоставить
предсказания модели и реальные позиции
слов
• DataLoader подает предложения батчами по
64
• Softmax переводит logits в
вероятности
• probability^1.5 усиливает уверенные
ответы
• Добавляется bias к середине
предложения
• Рассматриваются 5 лучших
кандидатов
• Небольшие штрафы для слишком
ранних и поздних позиций
• В submission.csv сохраняется
missing_word_position
5
6.
Результат, ценность и следующие улучшенияЧто важно показать жюри: не только модель, но и полноценную систему
Что мы получили
Как можно улучшить дальше
Рабочий сервис, который принимает
изображение, извлекает казахский текст,
удаляет одно слово и передает результат в
модель. Это уже не просто Kaggle-скрипт, а
end-to-end система.
• Более точный OCR для сложных
изображений
• Улучшение language-specific
preprocessing
• Интеграция в веб-интерфейс upload →
OCR → prediction
• Снижение ошибок на редких казахских
буквах
• Расширение постобработки текста
перед подачей в модель
Почему это важно
Мы сделали решение ближе к реальной
задаче: в жизни пользователь работает не
с CSV, а с фото, сканами и текстом,
который сначала нужно распознать.
Мы
недля
только
обучили
Итог
жюри
модель для Kaggle, но и
расширили решение до
полноценного
пользовательского
сценария:
изображение → OCR →
текст с пропуском →
предсказание
позиции
Это
демонстрирует
прикладную
ценность
слова.
решения и его готовность к
интеграции в реальный
продукт.
6
Программирование
Лингвистика