Современные проблемы информатики и вычислительной техники

План занятий

       1. Ознакомиться со следующими курсами:

       Курс: Анализ изображений и видео (лектор: Н.С. Васильева). Презентации и Видео лекции:
http://logic.pdmi.ras.ru/csclub/courses/videoimageanalysis
https://compscicenter.ru/courses/images-and-video-1/2012-autumn

       И.М.Журавель "Краткий курс теории обработки изображений":
http://matlab.exponenta.ru/imageprocess/book2/index.php

       На основании изученного материала подготовить краткий обзор по представленным в курсах темам (не менее 4.5 страниц, размер шрифта - 12, с одинарным интервалом, без лишних элементов сознательно увеличивающих объем обзора) и вставить его в промежуточный отчет по практическому заданию.
       Обзор должен быть написан своими словами (не нужно копировать текст из курсов). Точнее не так, обзор с текстом из каких-либо источников не принимается!

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

       Обзор делается один на подгруппу и все участники данной подгруппы должны быть в курсе содержания обзора, а также, быть готовыми ответить на вопросы по представленным электронным курсам.
       Основная задача данного обзора - убедиться в том, что студенты ознакомились с этими курсами и усвоили основные моменты связанные с анализом изображений и видео (т.к. на занятиях (при преподавателе) изучать их отказались и другого способа убедиться в их освоении без значительных временных затрат пока не вижу).

       2. Выбрать, сформулировать и согласовать практическое задание.

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

       Посещение всех занятий ОБЯЗАТЕЛЬНОЕ (не посещать занятия можно только тем, кто все сделал и сдал).

 

Задания для практических занятий

 

      В рамках данного курса предлагается написать программы для распознавания образов, объектов, поиск объектов на фото и видео. Можно программировать все алгоритмы самим, можно использовать готовые библиотеки - OpenCV или подобные, но нельзя использовать готовые решения.

      Ниже предложены варианты заданий, также можно придумать собственный вариант задания. Выбранное задание требуется конкретизировать для определенной задачи и обязательно согласовать с преподавателем.

      В результате выполнения задания оформляется отчет и представление работы программы.

      На выбор задания, формулировку и согласование отводится 3 недели (c 5.02.2018). К 27 Февраля задание должно быть выбрано, конкретно сформулировано, согласовано и с указанием Фамилии, Имени, Отчества и номера группы исполнителей (с распределением конкретных работ между исполнителями) выслано мне на почту.

      До 16 Апреля 2018 необходимо представить промежуточные результаты работы над заданием (промежуточный отчет должен быть выслан на почту). Тем, кто к этому моменту уже выполнит задание полностью - необходимо предоставить только отчет (промежуточный отчет не нужен).

      Отчет должен быть выслан не позже чем за неделю до представления результатов работы на занятии (22 Мая 2018 последний срок когда принимаются отчеты).

      Ко всем нарушившим какие-либо сроки или правила оформления, а также имеющим прогулы - могут применяться санкции, в виде дополнительных заданий, поэтому просьба отнестись ко всем срокам серьезно!

      Представление результатов своей работы преподавателю (после принятого отчета), с пояснениями по содержанию отчета и исходникам, делается на занятиях до 29 Мая (включительно).
      Обращаю внимание, что 29 Мая 2018 года (до 15:05) - последний срок сдачи работ, после этого, работы не принимаются!

 

00

 

Требования к отчету

      Отчет выполняется в электронном виде, оформляется как отчет по проекту или программе и помимо формальных частей таких как: Титульный лист, Содержание, Введение и т.д. должен содержать:

- формулировку (постановку) задачи;
- описание объема выполненной работы каждым исполнителем по отдельности. Должно быть конкретно описано кто и что делал, вплоть до перечисления частей кода, процедур/функций, скриптов, алгоритмов, частей интерфейса, схем и т.д. В общем так, чтобы из отчета сразу было ясно - какой объем работы выполнил каждый исполнитель;
- описание алгоритма и методов решения, каким образом реализовано (взаимодействие программ, библиотек, скриптов и всего того что использовалось, порядок их выполнения, какие части для чего и что в них делается, требования для работы скриптов и программ, какие параметры и каким образом передаются и т.д.), какие среды разработки и библиотеки использовались, на заимствованный код или часть кода необходимо ОБЯЗАТЕЛЬНО предоставить ссылку - откуда взят, приведены все необходимые формулы и расчеты;
- представлен внешний вид передней панели программы с описанием ее элементов или описание параметров командной строки (если передняя панель отсутствует);
- Руководство Пользователя по работе с разработанной программой, порядок действий, описание всех необходимых параметров, ограничений и т.п.;
- представлен отчет о тестировании программы, с приведением результатов этого тестирования, подтверждающих работоспособность программы;
- в Заключении, по результатам проделанной роботы, должны быть сделаны выводы, с описанием возможных применений данной программы, как можно было бы улучшить данный алгоритм или метод, что можно было бы еще добавить или изменить;
- список использованной литературы (ссылки на источники, которые использовались для создания программы);
- исходный код, обязательно снабженный подробными комментариями;
- к отчету прилагаются сами исходники и готовые программы, выполненного задания (без мультимедия приложений - картинок, видео и музыки) и все это отправляется на почту, после этого на занятии делается представление своей работы преподавателю, с комментариями по исходникам.

      Правила оформления программной документации можно посмотреть здесь.


Варианты заданий

       1. Поиск по образцу или Фотороботу (найти - есть ли на фотографии образец поиска). Поиск: людей на фотографии, лиц, глаз, носа, волос, губ и других объектов. Задача - найти и выделить объект или объекты на картинке. В результате должны быть получены координаты объекта или объектов, в виде координат описывающего его прямоугольника (например, координат левого, верхнего и правого, нижнего угла) или круга центр которого находится в центре найденного объекта или небольшого количества каких-то связанных линий описывающих объект или сегментация объекта - выделение всех пикселей принадлежащих объекту и т.д.

       2. Задача на фильтрацию изображения (должна быть достаточно сложная задача, требующая применения специальных алгоритмов или совокупности алгоритмов), улучшение характеристик изображения для дальнейшего поиска объектов на нем, например:
  a) убирание цвета (задается порог или выбирается автоматически);
  b) выделение границ, углов изображений;
  c) повышение яркости, контрастности, резкости и т.д.;
  d) разделение картинки на разные цветовые каналы;
  e) убирание, сглаживание шумов (методы медианной фильтрации или еще какие).

       3. Распознавание последовательности символов (набора символов и т.д.) "взлом каптчи". Взять за основу картинку, на которой присутствует зашумленный символьный код (с реальных сайтов с реализованной защитой от автоматического входа), отфильтровать, проанализировать и вывести код в виде распознанных символов.

       4. Распознавание штрих-кодов. Линейных или двумерных.

  a) Линейный штрих-код дает ответ на вопрос: Что это?. EAN-8, EAN-13.
http://ru.wikipedia.org/wiki/Universal_Product_Code
http://ru.wikipedia.org/wiki/EAN-8
http://ru.wikipedia.org/wiki/Сравнение_характеристик_штрихкодов

  b) Двумерный штрих-код позволяет отвечать на вопросы к объекту:
Кто это? Что это? Какие свойства? Кто это сделал? Откуда перемещается? Куда перемещается?
Примеры двумерных штрихкодов: PDF417, DataMatrix, Matrixcode, QR, DataGlyph, AztecCode.
http://ru.wikipedia.org/wiki/Aztec_Code
http://ru.wikipedia.org/wiki/Data_Matrix

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

       5. Распознавание отпечатков пальцев. Требуется сначала предоставить образец отпечатка, а затем программа должна распознавать, соответствует ли отпечаток образцу или нет.

       6. Распознавание сигналов, голоса и т.п. Представить образец сигнала для анализа и осуществлять поиск в текущем сигнале. Сигнал может содержать несколько частот. Программа должна сообщать, когда образец сигнала соответствует текущему сигналу.

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

       8. Анализ видеоизображения неподвижного или движущего объекта и улучшение качества изображения заданной (на видео) части объекта (например, улучшение качества изображения номерного знака движущегося автомобиля, при этом номерной знак на каждом в отдельности кадре может быть не читаемым, но при сложении всего видеоряда, на котором присутствует искомый объект изображение должно становиться более четким). При этом нужно максимально учитывать четкие части искомого изображения и не учитывать нечеткие (на уровне шумов).

       9. Обнаружение и распознавание текста. Задача обнаружить текст на картинке и распознать его, т.е. перевести в ASKII-текст.

       10. Сформулировать свое собственное задание, соответствующее тематики данного курса. Сформулированное задание необходимо согласовать!


       Выбранную задачу нужно четко сформулировать и согласовать!


       Для выполнения заданий возможно использование любых сред программирования: Pascal, С++, PHP, Java, Phyton, Delphy, Visual С++, LabVIEW и т.д. Настоятельно рекомендуется ознакомиться и использовать библиотеку OpenCV.

       OpenCV - Библиотека компьютерного зрения с открытым исходным кодом (Open Source Computer Vision Library), содержащая более 500 функций, реализованных под выполнение в реальном времени. Библиотека содержит алгоритмы для обработки, реконструкции и очистки изображений, распознания образов, захвата видео, слежения за объектами, калибровки камер и др. Есть функции, использующие GPU видеоускорителей для ускорения вычислений.

       Установка OpenCV (на примере OpenCV-2.4.3) и настройки для Visual Studio Express 2008 ver.9 (VC9). Инструкция для настроек под Windows.


Основная и дополнительная литература

       1. Могилев А. В., Хеннер Е. К., Пак Н. И. Информатика : учебное пособие для студентов высших педагогических учебных заведений / под ред. А. В. Могилева. - М. : Акаде-мия, 2008. - 345 с.
       2. Передача данных в компьютерных сетях : электронный учебник / Е. Д. Жиганов. - Петрозаводск: ПетрГУ 2007 - 320 с.
       3. Васильева Н.С., Анализ изображений и видео [Электронный ресурс] / Computer Science клуб. - Электрон. дан. - [Без места], 2007 - : - 2012. - Режим доступа: http://logic.pdmi.ras.ru/csclub/courses/videoimageanalysis, свободный. - Яз. англ., рус. - (Дата обращения: 11.12.2012).
       4. Фигурнов В. Э. IBM PC для пользователя. От начинающего до опытного. - 7-е изд., перераб. и доп. - М. : Инфра-М, 2006. - 640 с.
       5. Петров М. Н., Молочков В. П. Компьютерная графика : учебник для вузов. - СПб. : Питер, 2004. - 654 с.
       6. Телекоммуникационные сети : электронный учебник / В. А. Галкин, Ю. А. Григорьев. - М. : Издательство МГТУ им. Н. Э. Баумана, 2003. - 321 с.
       7. iXBT.com - Сайт о высоких технологиях, оперативные новости индустрии, тестовые испытания и обзоры оборудования
http://www.ixbt.com
       8. 3DNews - самые интересные и оперативные новости из мира высоких технологий. На нашем портале - все о компьютерном железе, гаджетах, ноутбуках и других цифровых устройствах. А также обзоры новых игр, достижения современной науки и самые любопытные онлайн-проекты.
http://www.3dnews.ru

Литература по OpenCV и ссылки на источники

       1. OpenCV шаг за шагом:
http://robocraft.ru/page/opencv/
       2. Распознавание образов с использованием OpenCV (с примерами):
http://recog.ru/page/library/opencv
       3. Описание по OpenCV (на английском):
http://opencv.org
       4. Пример - Распознавание плоских объектов OpenCV 2.4 (на русском):
http://habrahabr.ru/post/155651/
       5. Примеры использования OpenCV:
http://robocraft.ru/tag/OpenCV/
       6. Compvision.ru - Сайт о машинном зрении:
http://www.compvision.ru/forum/

 

Вопросы для тестирования по курсу: "Современные проблемы информатики и вычислительной техники (для магистров)" на iq.karelia.ru