Дататон 2.0 - распознавание цифр [1, 2, 3]

Финиш 28 апреля 16:59

Задача

Распознавание цифр

В этом задании вы попробуете применить свои знания в области компьютерного зрения и методов построения моделей машинного обучения для детектирования расположенных на картинке цифр и последующим построением классификатора для определения, что это за цифра. Вам будет дан массив изображений с представленными на них цифрами.

Система классификации

Мы подготовили для вас программу на языке Python, в которой вы будете предварительно обрабатывать изображения, проектировать и настраивать свой собственный алгоритм для решения задачи распознавания цифры.

Выполнение

Скачайте задание. В архиве задания вы найдёте файлы main.py, eval.py и две папки с цифрами — pictures_numeric_train(тренировочный набор данных) и pictures_numeric_val(валидационный).

В файле eval.py вы должны заполнить 3 функции:

  1. Функцию предобработки данных
  2. Фунцию загрузки вашей модель
  3. Функцию предсказания цифр на картинке: вектор цифр в формате списка, например [1, 2], если ваш алгоритм предсказывает цифры 1 и 2 на конкретной картинке. На картинке может быть от 1 до 3 цифр
Не меняйте названия функций файла eval.py.

В файле main.py вы сможете проверить работоспособность модели и её точность на валидационной выборке. Если модель работает и её точность вас устраивает, то вы можете отправить решённое задание.

Проверка кода осуществляется на тестовых данных: изображениях, не включенных в тренировочную и валидационную выборки. Точность модели рассчитывается следующим образом:. Сумма количества цифр правильно определенных векторов к общему числу цифр на всех векторах. Например, правильный вектор ответов [[1], [1, 2], [1, 2, 3], [3, 2, 1]], а предсказанный [[1], [1, 3], [1, 3, 2], [3, 2, 1]]. Правильно определены 1-ый и 4-ый вектора, количество их цифр составляет 4, а общее количество цифр -- 9. Точность составляет 4 / 9, то есть 0.4444... Для того, чтобы ваша модель была засчитана, вы должны будете получить точность классификатора больше 0.5.

В качестве решения присылайте архив с файлом eval.py и с сохранённой вами моделью в нужном формате. Если вы планируете использовать библиотеку tensorflow, то модель нужно выгружать в формате .h5 (Как сохранять модель в формат h5). Архив должен называться num_task.zip

Важно:

  1. Для построения модели нейронной сети используйте tensorflow версии 2.0.1
  2. Версия sklearn на сервере 0.19.1, а dlib 19.19.0. Для импорта этих моделей используйте pickle
  3. Проверьте, что в векторе с предсказанием данные в формате int, а не float или str, то есть вектор должен быть в формате [1, 2], а не [1.0, 2.0] или ['1', '2']
  4. Архив с заданием должен называться num_task.zip и содержать файлы eval.py и вашу модель



Очки Участник Дата Команда Город Учебное заведение
1.0 Максим Романовский 21.04.2020 05:37 F_T_L