Условия конкурса
Конкурс проходит с 23.04.2015 по 07.05.2015. Участвовать в конкурсе может любой желающий. Призовой фонд конкурса составляет 20 тысяч рублей. Если количество участников[1] конкурса от 1 до 3, то призовое место – одно, и вознаграждение за победу – 20 тысяч рублей. Если количество участников конкурса от 4 до 6, то призовых места два, за первое место вознаграждение 15 тысяч рублей, за второе – 5 тысяч рублей. Если количество участников конкурса более 6, то призовых места три, за первое место награда 14 тысяч рублей, за второе – 4 тысячи рублей, за третье – 2 тысячи рублей. При равных результатах вверху конкурсной таблицы награды за поделенные места складываются и делятся поровну. Конкурс состоит из этапа регистрации участников, этапа разработки алгоритма и этапа проверки алгоритма. На этапе регистрации участников желающие соревноваться должны обратиться оргкомитет, и оставить свои персональные данные: имя, фамилия, электронная почта. При регистрации необходимо иметь с собой носитель информации со свободным объёмом несколько гигабайт. На этот носитель после регистрации будут скопированы тестовые данные в специальном формате, и утилита для чтения и разметки тестовых данных. См. приложение 1 с описанием утилиты разметки и формата тестовых данных. На этапе разработки алгоритмов каждый участник с помощью утилиты разметки формирует тот объём тестовых данных, который он считает необходимым, и реализует один из двух вариантов функций, сигнатура которых представлена в приложении 2a (вариант, не зависящий от сторонних библиотек) или в приложении 2б (вариант, подразумевающий использование библиотеки OpenCV). Основная функция должна быть определена в файле pattern_matcher.h. Задача функции – с помощью изображения, на котором номер виден, определить, виден ли номер на изображении, для которого нет уверенности, что номер не загорожен и вообще присутствует (см. рис. Рисунок 2). В качестве входных данных кроме изображения в функцию передаётся прямоугольник, ограничивающий номер на шаблонном изображении, и прямоугольник, определяющий примерное положение номера на изображении, которое надо проверить. Приложение, загружающее тестовые файлы изображений и передающее их в разрабатываемую функцию, должно быть реализовано в отдельных файлах, т.е. файлы реализации функции должны составлять отдельную независимую библиотеку. Кроме ответа, присутствует ли номер на проверяемом изображении, программа должна выдать уточнённое положение рамки с номером. В файлах реализации функции допускается использовать OpenCV версии 2.4.8. Другие библиотеки могут поставляться в виде дополнительных исходников, при условии, что архив с исходными файлами реализации функции не будет превышать по объёму 5Мб. Код должен быть не зависящим от платформы (в основном коде и в коде зависимых библиотек допустимо использовать только стандартные функции C++03). Чтение файлов в процессе работы функции не допускается. Исходные данные для работы функций должны быть встроены в код. Предоставляемые для проверки исходные файлы должны находиться в одном каталоге. На этапе проверки каждый участник может сделать несколько попыток представить свою реализацию кода. Попытка представления заключается в отправке zip-архива c исходными файлами реализации алгоритма на адрес anatoly@elvees.com с почтового адреса, указанного участниками при регистрации. Проверка заключается в компиляции кода в составе программы, которая запустит тесты на «секретной» тестовой выборке. В результате теста возможны следующие результаты: 1. Попытка теста будет провалена, и участнику, сделавшему попытку, будет выслано письмо с уведомлением о неудаче по нижеперечисленным причинам. 1.1. Программа не скомпилировалась[2] (в этом случае лог с ошибками будет выслан по почте участнику). 1.2. Программа скомпилировалась, но в процессе работы возникло необработанное исключение. 1.3. Была замечена утечка памяти (организаторы не гарантируют выявление утечек, но выборочные проверки будут). 1.4. Время обработки одной из пары кадров превысило 200мс. 1.5. Результаты программы будут отличаться в худшую сторону от «базового» результата более, чем на 10%. «Базовый» результат – это результат работы функции сравнения с помощью корреляции. 1.6. Квалификацию уже прошли 15 человек. 2. Компиляция и запуск пройдут успешно, и в результате для «секретного» набора пар тестовых изображений будет посчитано число ошибок: сколько раз функция неправильно определила, есть ли возле рамки номер, или его нет. Кроме того, будет оценено среднее время обработки пары кадров, и для некоторых изображений точность коррекции положения номера на проверяемой картинке. Точность позиционирования будет определена как среднее отношение площади разности множества точек прямоугольников, выданных программой, и прямоугольников, отмеченных вручную, к площади прямоугольников ручной разметки. В случае успешной попытки участник будет признан прошедшим квалификацию, и результаты работы программы будут помещены в таблицу следующего вида:
Места участникам присуждаются с помощью сортировки сначала по числу ошибок, затем (при одинаковом числе ошибок) по точности позиционирования (сравнение будет производиться с учётом погрешности, которую положим равной 5%, т.е. показатели, отличающиеся не более, чем на 5%, считаются одинаковыми) и затем по времени работы (также в пределах погрешности, равной 10%). Подробнее о ранжировании см. приложение 3. При определении места участника учитывается лучшая попытка. В тех случаях, когда положение участников в турнирной таблице меняется, уведомление об этом посылается всем участникам конкурса на почту. В случае интенсивного наплыва заявок на тестирование, заявки обрабатываются по очереди, из двух необработанных заявок участника тестируется код последней заявки.
|