Skip to content

ResedentSleeper/itmo_cv_2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Лабораторная работа №2

Цель работы

Исследовать простейшие алгоритмы детектирования объектов на изображении.

Задание

  1. Реализовать программу согласно описанию. Можно использовать языки C++ или Python и любые библиотеки, при этом необходимо чтобы вся задача не решалась только с помощью одной встроенной функции (например, lib.detect_template(image, template).
  2. Сравнить качество работы двух вариантов реализации по точности детектирования.
  3. Сделать отчёт в виде readme на GitHub, там же должен быть выложен исходный код.

Описание

Необходимо реализовать два примитивных детектора объектов на изображении, работающих с помощью поиска эталона на входном изображении.

  1. Прямой поиск одного изображения на другом (template matching)
  2. Поиск ключевых точек эталона на входном изображении (например, с помощью SIFT, ORB..)

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

Теория

Template matching — это метод обработки цифровых изображений для поиска небольших частей изображения, которые соответствуют изображению-шаблону. В качестве метрики можно использовать: Sum of Squared Differences (SSD), Cross Correlation (CCORR)

Для детектирования используются:

  • CV_TM_SQDIFF — сумма квадратов разности значений пикселей
  • CV_TM_SQDIFF_NORMED — сумма квадрат разности цветов (нормированно 0..1)
  • CV_TM_CCORR — сумма поэлементных произведений шаблона и сегмента картинки
  • CV_TM_CCORR_NORMED — сумма поэлементных произведений (нормированно -1..1)
  • CV_TM_CCOEFF — кросс-коррелация изображений без среднего
  • CV_TM_CCOEFF_NORMED — кросс-корреляция между изображениями без среднего (нормированно -1..1)

Формулы

Пример выполнения программы:

Image fragment

Image Stretch

Glare

Angle rotation

Noise

Negative

Decrease contrast and brightness

Image Distortion

Perspective change (horizontal)

Perspective change (vertical)

Вывод:

Исследованны простейшие алгоритмы детектирования объектов на изображении. В некоторых вариантах неверно определены границы искомого объекта. С учётом произведения нескольких экспериментов были замечены как погрешности в определении горизонтальной перспективы, так и при добавлении шума. Но данный момент можно списать на высокую детализацию выбраных изображений.

Ссылки на источники:

https://habr.com/ru/post/519454/

https://docs.opencv.org/4.x/d4/dc6/tutorial_py_template_matching.html

https://habr.com/ru/company/joom/blog/445354/

https://robocraft.ru/computervision/3046

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages