Тестовая задача Цветовая маркировка

Финиш 24 год

Задача

Декодировать цветную маркировку

Цветовая маркировка представляет собой 16 цветных квадратов. Квадраты образуют матрицу 4х4. Цвет квадрата кодирует цифру.

          color_dict = {0: (255, 255, 255),  # white
                        1: (0, 0, 0),  # black
                        2: (0, 0, 255),  # red
                        3: (0, 136, 255),  # orange
                        4: (0, 255, 255),  # yellow
                        5: (0, 255, 0),  # green
                        6: (255, 255, 0),  # cyan
                        7: (255, 0, 0),  # blue
                        8: (255, 0, 136),  # violet
                        9: (255, 0, 255)}  # magenta
                        #     bgr

Таким образом, цветовая маркировка может быть расшифрована как последовательность из 16 цифр. Получить верную последовательность цифр можно, только если читать маркировку слева направо и сверху вниз.

Представьте, что маркировка нанесена на стенку коробки. И коробка перевернулась, вы всё ещё видите маркировку, но не знаете где у неё верхний левы угол, с которого надо начинать её чтение. Чтобы всегда можно было найти квадрат, с которого надо начинать чтение маркировки, введено следующие правило. Квадраты соседние по вертикали и горизонтали для левого верхнего квадрата, в сумме всегда дают 7. А соседи левого нижнего квадрата, никогда не дают в сумме 7. Таким образом, анализируя цвета соседей угловых квадратов, вы всегда можете определить откуда надо начинать читать маркировку.

Решение

Для Вас подготовлены несколько файлов “.py” и набор изображений цветных маркировок. Среди подготовленных файлов есть:

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

main.py - файл проверяющий точность работы вашего алгоритма. Не редактируйте его. main.py использует, написанные вами функции из eval.py и сверяет истинные расшифровки маркировок с теми, которые даёт ваш алгоритм.

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

В качестве решения, необходимо сдать отредактированный файл eval.py.

Порядок решения (прочитайте до конца, и только потом приступайте к выполнению каждого пункта)

0.1. Ещё раз прочитайте условие задачи, оно не простое.

0.2. Скачайте подготовленные для вас файлы

1. Ознакомьтесь с данными, это поможет понять условие задачи

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

2. Какой алгоритм использовать?

Эту задачу можно решить без использования алгоритмов машинного обучения, но вы можете их использовать. Подумайте, какие особенности изображения вы можете использовать для декодирования маркировки. Определитесь какие алгоритмы вы будете использовать. В файле eval.py есть функция декодирования маркировки, Вам необходимо её дописать!

3. Проверьте точность своего алгоритма

Запустите файл main.py, он выведет точность работы вашего алгоритма. Если вы получите ошибку, разберитесь и устраните её. Отправляйте решение, только если файл main отрабатывает без ошибок!

4. Отправьте решение на проверку

Нажмите кнопку “Прислать решение” и выберите файл eval.py.

Если файл eval.py ссылается ещё на какие-то файлы, запакуйте их, вместе с файлом eval.py, в архив “*.zip”. В архиве, должны быть файлы решения, а не одноимённая архиву папка.

Если вы получили точность ниже, чем хотелось-бы, поправьте свой алгоритм и пришлите ещё раз - количество попыток не ограничено, засчитывается лучшая попытка из всех.


Технические ограничения:

Размер решения ограничен: не более 30 МБ. Если ваш алгоритм успешно проверен платформой, то следующее решение можно прислать только через 10 минут. Если ваш алгоритм в ходе проверки выдал сообщение об ошибке, то следующее решения можно прислать сразу.

Пакеты, ориентированные на работу с изображениями и данными, использующиеся на платформе проверки: Python 3.8.10 dlib 19.22.1 imutils 0.5.4 keras 2.7.0 Keras-Preprocessing 1.1.2 matplotlib 3.4.3 numpy 1.21.3 opencv-python 4.5.4.58 pandas 1.3.4 scikit-image 0.18.3 scikit-learn 1.0.1 scipy 1.7.2 tensorflow-cpu 2.7.0

Используйте совместимые пакеты.





Очки Участник Дата Команда Город Учебное заведение
1.0 Artemy Odeshev 10.09.2022 08:11
0.8 Василий Белкин 14.01.2022 13:29 Москва