Распознавание текста на фото
Вам предстоит разработать алгоритм, который сможет распознать текст на фото. Предсказание модели - текстовая строка, соответствующая тексту на картинке.
В проверяющую систему необходимо отправить код алгоритма, запакованный в ZIP-архив. Решения запускаются в изолированном окружении при помощи Docker. Время и ресурсы во время тестирования ограничены.
В корне архива обязательно должен быть файл metadata.json
со структурой:
{
"image": "<docker image>",
"entry_point": "<entry point or sh script>"
}
Например:
{
"image": "skalinin1/baseline-htr:latest",
"entry_point": "python run.py"
}
Здесь image – поле с названием docker-образа, в котором будет запускаться решение, entry_point – команда, при помощи которой запускается скрипт инференса. Решение запускается в Docker контейнере. Вы можете воспользоваться готовым образом "skalinin1/baseline-htr:latest". Подготовленные файлы: Dockerfile и requirements.txt. При желании вы можете использовать свой образ, выложив его на https://hub.docker.com.
Доступные ресурсы
В контейнер помещается папка images с изображениями, на которых необходимо сделать предсказания. Модель должна сформировать файл предсказания, например, prediction.json
.
Пути к данным для изображений (полный путь к папке images) и файл, в котором необходимо сохранить результат (путь куда нужно сохранить файл формата .json
) передаются как первые два аргумента при запуске вашего решения. Их можно считать с помощью sys.argv[1:].
Вам доступен архив sample_submission.zip
, в котором содержатся примеры загружаемого решения. В архиве вы найдете следующие файлы:
metadata.json
- обязательный файл для каждого решения; в нём должны быть указаны пути к образу и скрипту выполнения моделиrun.py
- основной скрипт для инференса моделиmodel-last.ckpt
- веса модели, которые подгружаются во время исполнения скрипта run.py
Для корректной проверки ваш сабмит должен иметь аналогичную структуру.
UPDATE 15.12 - основная метрика для оценки была изменена с Accuracy на CER.
В качестве основной метрики для оценки решений участников используется метрика CER (character error rate). Считается она следующим образом:
$$CER = \frac{\sum\limits_{i=1}^n dist_c (pred_i, true_i)}{\sum\limits_{i=1}^n len_c (true_i)}$$
Здесь $dist_c$ - это расстояние Левенштейна, посчитанное для токенов-символов (включая пробелы), $len_c$ - длина строки в символах.
Метрика CER изменяется от 0 до 1, где 0 – наилучшее значение, 1 - наихудшее.
В качестве дополнительной метрики для оценки решений участников используется метрика Accuracy - отношение количества полностью совпавших транскрибаций строк к количеству всех строк в выборке. Она будет учитываться при равенстве значений CER, а так же полезна как дополнительная информация о качестве работы модели. Считается она следующим образом:
$$Accuracy = \frac{\sum_{n=1}^{n} [pred_i = true_i]}{n}$$
Здесь n
- размер тестовой выборки, predi
– это строка из символов, которую распознала модель на i-ом изображении в выборке, а truei
- это правильный перевод i-ого изображения, произведенный аннотатором, [•]
- скобка Айверсона:
$$[x = y] = \begin{cases} 1, & \mbox{} x = y\\ 0, & \mbox{}x \neq y \end{cases}$$
Метрика String Accuracy изменяется от 0 до 1, где 0 – наихудшее значение, 1 - наилучшее.
Вам доступно базовое решение от разработчиков задачи: OCR_baseline.ipynb
Разбор безлайна от разработчиков
Для распознавания рукописного текста в бейзлайне используется архитектура CRNN и CTC-loss. Для запуска бейзлайна скачайте данные для обучения и положите их в папку data. Должна получиться такая структура:
Our website uses cookies, including web analytics services. By using the website, you consent to the processing of personal data using cookies. You can find out more about the processing of personal data in the Privacy policy