task1 (1124480)
Текст из файла
Поиск кладаТимур Ибадов, Влад Шахуро, Антон КонушинМягкий дедлайн: 5 октября (23:59).Жёсткий дедлайн: 12 октября (23:59).1Обзор заданияВ задании нужно применить знания по обработке и анализу изображений для поиска путиот начальной точки, обозначенной красной стрелкой, до клада.
Для успешного выполнениязадания требуется реализовать несколько методов обработки изображений и воспользоватьсяими для решения задачи распознавания. На изображениях находятся 3 типа объектов:• начальная стрелка красного цвета;• белые стрелки, указывающие путь;• прочие объекты.2Базовая часть заданияЗа базовую часть задания можно получить 5 баллов, однако эта часть должна быть написанаполностью.Эта часть задания состоит в отделении клада от стрелок.
Кладом в таком случае считаетсялюбой объект, не являющийся стрелкой. Этапы решения задачи:1. Бинаризация изображения (например, с помощью отсечения значений пикселей по порогу).2. Выделение связных компонент на изображении (с помощью последовательного сканирования или обхода в ширину).3. Вычисление геометрических признаков связных компонент.4. Выбор клада по значению геометрических признаков.3Бонусная часть заданияЗа бонусную часть задания можно получить 10 баллов, при условии выполненной базовой части.3.1Отслеживание пути до клада по стрелкам (5 баллов)В дополнение к базовой части, здесь поиск должен производиться по направлению стрелок.Предлагается реализовать следующий алгоритм:1. Среди стрелок найти начальную (красного цвета).12. Определить направление, куда она указывает. Например, можно подсчитать центр масс иглавную ось инерции.
Это дает направление и точку начала пути. Для того, чтобы определить в какую сторону от центра масс двигаться, можно воспользоваться зеленым пятномна стрелке, посчитав по какую сторону от центра масс вдоль направления оси инерциилежит большее число пикселей с зеленой компонентой, доминирующей над остальными.3. По этому направлению двигаться по изображению, пока не встретится следующая стрелка.4. Повторять шаги 1, 2 пока не получится, что последняя стрелка указывает не на следующуюстрелку, а на другой объект (клад).В отличие от базовой части, в бонусной клад определен однозначно; функция поиска клададолжна возвращать не только координаты ограничивающего клад прямоугольника, но и полный путь до клада (т.е.
прямоугольники ограничивающие стрелки). Кроме того, на исходномизображении нужно нарисовать траекторию поиска и обвести прямоугольником клад.3.2Поиск клада на замушленных изображениях (до 5 баллов)Получение баллов за данное бонусное задание возможно только при выполнении предыдщего —отслеживание пути до клада. В папке с данными есть пять примеров зашумленных изображенийс именами вида «n_hard.bmp». За каждый найденный клад на такого же вида изображении изскрытой выборки можно получить 1 балл. Для улучшения результата могут быть использованыследующие методы:• фильтрация шума (медианная фильтрация, фильтр Гаусса);• операции математической морфологии (сужение, расширение, закрытие, открытие);• коррекция контрастности/цветности (серый мир, автоконтраст, автоуровни);• выделение краев для нахождения объектов и др.4Среда программирования и устройство каркасаДля упрощения выполнения задания под Windows вам предлагаются файл cygwin.exe.
Это самораспаковывающийся архив, в нём находится cygwin — среда программирования с gcc. Разархивируйте cygwin.exe и запустите сценарий Cygwin.bat. Откроется консоль и вы окажетесь в папке/home/<username>. Скопируйте в эту папку архив treasure_project.tar.gz с каркасом заданияи разархивируйте командой tar xvf treasure_project.tar.gz; зайдите в папку проекта, введя в консоли команду cd treasure_project. Запустите сценарий компиляции командой makeall. В папке build/bin появятся исполняемыe файлы.
Их можно запустить из консоли командой ./build/bin/<имя файла> . Удалить все скомпилированные файлы можно командой makeclean .Если вы используете Linux, то вам будет достаточно поставить gcc и gnu make.Структура каркаса:• src — директория с исходным кодом в формате .cpp.
Здесь особенно интересен файлmatrix_example.cpp, в котором показан пример свертки с box-фильтром;• include — директория с заголовочными файлами. Здесь интересны файлы matrix.h — объявление класса матрицы и matrix.hpp — шаблонная реализация этого класса;• externals — директория с исходными кодами библиотек. Здесь же библиотеки компилируются. В каркасе есть только одна библиотека, с помощью которой загружаются изображения в формате bmp;• bridge — директория, в которую добавляются заголовочные файлы и скомпилированныебиблиотеки для импорта в основной проект;• build/bin — директория, в которой сохраняются выполняемые файлы компиляции (т.е.после того, как отработала команда make all);2• compare.py — скрипт для проверки программы поиска клада. Запускается командой ./compare.py<ground_truth.txt> <program_result.txt>.
Скрипт проверяет соответствие разметки полученному результату (прямоугольники в кладе/пути до клада должны пересекаться неменее чем на 0.5) и печатает FAIL, BASE OK или BONUS OK;• pic — папка с картинками;• labelling — папка с разметкой картинок. Разметка задается координатами прямоугольников, ограничивающих стрелки и клад в формате x y width height.5Аргументы командной строкиУ программы main, предназначенной для поиска клада, три обязательных аргумента: входноеизображение, выходное изображение (имеет смысл только при выполнении отслеживания пути),текстовый файл для записи координат прямоугольников траектории/клада.6Сдача и проверка заданийДля сдачи задания выполните команду make clean в папке проекта, перейдите на папку выше командой cd .. и заархивирует папку с проектом командой tar cvzf solution.tar.gztreasure_project.
Полученный архив solution.tar.gz нужно послать в проверяющую систему.Исполняемые программы или скомпилированные библиотеки прикладывать в архив не нужно,сборка будет производится проверяющим в предлагаемой среде программирования.Проверка заданий будет выполняться на скрытой тестовой выборке, аналогичной выданной. В скрытой выборке 5 простых и 5 зашумленных картинок. Для получения баллов за базунеобходимо найти клад на всех 5 простых картинках.Определены два срока сдачи: мягкий дедлайн, после которого начинается начисление штрафных баллов (за первые двое суток по -0.5 баллов, далее по -1 баллу за сутки), и жёсткий дедлайн,после которого сданные программы проверяться не будут.3.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.