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

Финиш 18 августа 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 Настя Сапожникова 15.08.2022 14:20 Железный капут
1.0 Кирилл Хорьков 14.08.2022 12:49 TPT
1.0 Дарья Торопова 31.07.2022 12:43
1.0 Егор Сергеев 30.07.2022 17:15 томат всем рад
1.0 Андрей Миняев 26.07.2022 14:52 Железный капут
1.0 Денис Русинович 26.07.2022 16:43 Добавьте либу для yolov8
1.0 Gleb Zhukov 30.07.2022 15:49 MYR
1.0 Константин Суббач 29.07.2022 16:47
0.96 Кирилл Лизунов 16.08.2022 15:41 Славяне
0.95 Арсений Мастов 31.07.2022 16:28 DROP TABLE Users; --
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 Семён Симоняк 12.08.2022 08:52
0.84 Никита Быстрых 28.07.2022 11:02
0.82 Sergej Nekrasov 31.07.2022 13:23 CyberLaw ;)
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 NSO-Clio
0.75 Диана Дриманова 31.07.2022 14:15
0.75 Марк Минич 31.07.2022 08:59 Рамзес мод
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.21 Роман Промзелев 15.08.2022 23:23
0.19 Варвара Форат 31.07.2022 10:47
0.19 Илья Скрипкин 30.07.2022 07:28
0.06 Александр Светличный 18.08.2022 16:43
0.06 Степан Александров 18.08.2022 11:17
0.06 Матвей Чебаков 12.08.2022 14:02
0.06 Анна Бодрова 31.07.2022 11:29