Подсчёт форм на изображении

Финиш 31 июля 2022 23:59 (НСК)

Задача

Определить тип фигуры на изображении

На изображениях представлены геометрические фигуры пяти типов: равносторонние треугольники, квадраты, прямоугольники, равносторонние шестиугольники и окружности. На изображениях либо одна фигура, либо ни одной. Цвета фона и фигуры выбирается случайно из словаря, представленного ниже. Фигура не может быть чёрной.

          color_dict = {0: (0, 0, 0),  # black
                        1: (255, 255, 255),  # white
                        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

Решение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

Пакеты, ориентированные на работу с изображениями и данными, использующиеся на платформе проверки: Python 3.8.10

dlib 19.24.0 keras 2.8.0 Keras-Preprocessing 1.1.2 imutils 0.5.4 numpy 1.22.4 opencv-python 4.6.0.66 pandas 1.4.3 scikit-image 0.19.3 scikit-learn 1.1.1 scipy 1.8.1 tensorflow-cpu 2.8.2

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


Вопросы по задачам можно задать в канале чемпионата в Telegram



Очки Участник Дата Команда Город Учебное заведение
1.0 Дарья Торопова 31.07.2022 12:43
1.0 Егор Сергеев 30.07.2022 17:15 томат всем рад
1.0 Андрей Миняев 26.07.2022 14:52 seal team
1.0 Денис Русинович 26.07.2022 16:43 seal team
1.0 Gleb Zhukov 30.07.2022 15:49 MYR
1.0 Константин Суббач 29.07.2022 16:47
0.96 Кирилл Лизунов 31.07.2022 16:07
0.95 Артём Краснов 31.07.2022 16:28
0.95 Юрий Карабинцев 31.07.2022 16:54 Лицей №22
0.95 Михаил Валенюк 31.07.2022 16:01
0.95 Ольга Демидович 29.07.2022 14:12
0.91 Bondarchuk Gleb 29.07.2022 11:27
0.88 Семён Симоняк 30.07.2022 10:46
0.84 Никита Быстрых 28.07.2022 11:02
0.82 Сергей Некрасов 31.07.2022 13:23 Kuybushev School 3
0.8 Влада Невзорова 30.07.2022 15:56 томат всем рад
0.8 Маргарита Кабанова 31.07.2022 14:46 томат всем рад
0.78 Михаил Новгородов 31.07.2022 10:47 zloy ded
0.76 Егор Андреасян 30.07.2022 20:07
0.75 Диана Дриманова 31.07.2022 14:15
0.75 Марк Минич 31.07.2022 08:59 Рамзес мод
0.64 Настя Сапожникова 31.07.2022 16:50
0.61 Никита Ильтяков 30.07.2022 08:50
0.59 Елизавета Михрина 31.07.2022 08:32
0.52 Герман Кек 30.07.2022 17:10 Ш.У.Е. ФОР
0.52 Сергей Чуприн 30.07.2022 17:10 Ш.У.Е. ФОР
0.38 Даниил Яска 31.07.2022 16:00
0.3 Александр Пясковский 31.07.2022 08:33
0.19 Варвара Форат 31.07.2022 10:47
0.19 Илья Скрипкин 30.07.2022 07:28
0.06 Анна Бодрова 31.07.2022 11:29