Skip to content

valentina-kustikova/cv-practice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Практика по курсу "Основы компьютерного зрения"

Требования к структуре директорий

Основная директория должна иметь название FamiliaIO. Внутри необходимо создать 3 вложенные директории в соответствии с номерами практических работ (lab1, lab2, lab3)

Практическая работа №1. Обработка изображений с использованием библиотеки OpenCV

Задача. Разработать библиотеку фильтров с помощью базовых операций над изображениями (матрицами) в OpenCV:

  • Функция изменения разрешения изображения.
  • Функция применения фотоэффекта сепии к изображению.
  • Функция применения фотоэффекта виньетки к изображению.
  • Функция пикселизации заданной прямоугольной области изображения.
  • Функция наложения прямоугольной одноцветной рамки заданной ширины по краям изображения.
  • Функция наложения фигурной одноцветной рамки по краям изображения. Тип фигурной рамки является параметром функции.
  • Функция наложения эффекта бликов объектива камеры.
  • Функция наложения текстуры акварельной бумаги.

Требования:

  • Язык разработки – Python, среда разработки – Spyder или любая другая.
  • При реализации функций можно использовать только базовые операции над изображением, нельзя использовать высокоуровневые функции обработки изображений библиотеки OpenCV.
  • Скрипт должен содержать набор функций в соответствии с перечнем из постановки задачи и демонстрировать их использование. Входные параметры скрипта: изображение для обработки, тип фильтра, параметры фильтра при наличии таковых. Последовательность работы скрипта включает загрузку исходного изображения, применение функции фильтрации, отображение исходного и отфильтрованного изображения.
  • Скрипт должен сопровождаться файлом README.md, в котором дается описание алгоритма реализации каждого фильтра (мини-отчет).
  • В шапке файла README.md необходимо указать название практической работы: "Практическая работа №1. Обработка изображений с использованием библиотеки OpenCV".
  • Результаты выполнения практической работы должны быть выложены в личный форк репозитория курса, из которого отправлен Pull Request в репозиторий курса. При этом директория практической работы должна содержать скрипт и файл README.md.

Оценивание:

  • Наличие корректной реализации отдельной функции и ее демонстрации - 2 балла (максимум - 16 баллов).
  • Наличие README - 4 балла.
  • Максимальный балл за практическую работу - 20 баллов.

Практическая работа №2. Детектирование объектов на изображениях с использованием библиотеки OpenCV

Задача. Разработать приложение для детектирования транспортных средств с использованием обученных нейронных сетей, которые доступны среди "зоопарка" моделей OpenCV. При выборе моделей необходимо обратить внимание на наличие интересующих классов транспортных средств среди детектируемых классов объектов. Архив с кадрами видео доступен по ссылке, разметка в текстовом формате доступна по ссылке.

Требования:

  • Язык разработки – Python, среда разработки – Spyder или любая другая.
  • При реализации необходимо использовать модуль DNN библиотеки OpenCV.
  • Разрабатываемая библиотека должна содержать иерархию классов для детектирования объектов с использованием различных моделей. Необходимо предусмотреть, что использование моделей предполагает применение разных методов предобработки изображений, а также методов постобработки выхода моделей.
  • Демонстрационное приложение должно загружать последовательность кадров видео, создавать детектор в соответствии с выбором модели, опционально отображать кадры видео, на которых отрисованы прямоугольниками разных цветов объекты разных классов (цвет соответствует классу объектов), и выводить показатели качества детектирования TPR и FDR. При отображении в левом верхнем углу каждого прямоугольника необходимо написать название класса и достоверность наличия объекта в этом прямоугольнике (точность для отображения вещественного числа – три знака после запятой), над прямоугольником необходимо указать наблюдаемый класс объектов. Путь до набора изображений и модель для детектирования объектов являются параметрами приложения.
  • Программное решение должно сопровождаться файлом README.md, в котором для каждой выбранной модели дается описание реализованных алгоритмов предварительной обработки изображений и обработки выхода сети (мини-отчет).
  • В шапке файла README.md необходимо указать название практической работы: "Практическая работа №2. Детектирование объектов на изображениях с использованием библиотеки OpenCV".
  • Результаты выполнения практической работы должны быть выложены в репозиторий курса. При этом директория практической работы содержит набор разработанных скриптов и файл README.md.

Оценивание:

  • Наличие возможности использования одной модели - 5 баллов.
  • Наибольшее количество моделей - 3 модели.
  • Наличие корректного приложения - 5 баллов.
  • Наличие README - 5 баллов.
  • Дополнительный балл за качество работы модели - 10 * TPR баллов.
  • Максимальный балл за практическую работу - 35 баллов.

Практическая работа №3. Классификация изображений с использованием библиотеки OpenCV

Задача. Разработать приложение для классификации изображений известных достопримечательностей Нижнего Новгорода (Нижегородский Кремль, Дворец труда, Архангельский собор). Набор данных доступен по ссылке, он содержит фотографии студентов ИИТММ (директория NNSUDataset) и фотографии, выгруженные из сети Интернет (директория ExtDataset). Директория со сторонними фотографиями также сопровождается текстовым файлом с перечнем ссылок на источники. Разбиение на тренировочную и тестовую выборки доступно по ссылке. Приложение должно реализовывать алгоритм "мешок слов" и/или использовать нейросетевые классификаторы.

Входные параметры приложения:

  • Путь до директории с данными.
  • Файлы разбиения на тренировочную и тестовую выборки.
  • Режим работы (обучение и/или тестирование).
  • Алгоритм работы ("мешок слов"/нейронная сеть).
  • Параметры алгоритма работы.

Последовательность работы приложения:

  • Загрузка набора данных.
  • Обучение и/или тестирование классификатора. В процессе тестирования необходимо выводить качество решения задачи классификации на тестовой выборке.

Рекомендации и комментарии к выполнению работы:

  1. При разработке программного кода необходимо учитывать основы модульного и объектно-ориентированного подходов.
  2. Для повышения качества решения задачи необходимо расширить тренировочный набор данных собственными изображениями или фотографиями интересующих объектов из сети Интернет.
  3. При реализации алгоритма "мешок слов" необходимо исследовать возможности разных детекторов и дескрипторов.
  4. Для удобства проверки алгоритма "мешок слов" имеет смысл визуализировать отдельные этапы.
  5. Выбор метода машинного обучения для построения классификатора при реализации алгоритма "мешок слов" не ограничен.
  6. При построении нейронных сетей для классификации имеет смысл опираться на идеи "переноса обучения" существующих классификационных моделей дообучать эти модели, поскольку тренировочная выборка имеет небольшие размеры.

Требования:

  • Язык разработки – Python, среда разработки – Spyder или любая другая.
  • Программное решение должно сопровождаться файлом README.md, в котором дается описание реализованных алгоритмов (мини-отчет).
  • В шапке файла README.md необходимо указать название практической работы: "Практическая работа №3. Классификация изображений с использованием библиотеки OpenCV".
  • Результаты выполнения практической работы должны быть выложены в репозиторий курса. При этом директория практической работы содержит скрипт и файл README.md.
  • Набор из дополнительных фото должен быть выложен в открытый доступ. Если используются сторонние фотографии (или ваши опубликованные где-то в сети), то необходимо рядом с набором положить текстовый файл с ссылками на источники по аналогии с входным набором данных.

Оценивание:

  • Наличие разработанной программной реализации алгоритма "мешок слов" - 10 баллов.
  • Наличие реализации процедуры обучения и использования сети - 15 баллов.
  • Наличие README - 5 баллов.
  • Дополнительный балл за качество работы модели - 10 * TPR баллов.
  • Максимальный балл за практическую работу - 40 баллов (при наличии реализации алгоритма "мешок слов" и обучения нейросетевой модели).

Отчетность по курсу

Отчетность по курсу - зачет. Для получения "зачета" необходимо в процессе сдачи лабораторных работ набрать не менее 75 баллов.

About

Практика по курсу "Основы компьютерного зрения"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 25

Languages