ВВЕДЕНИЕ 3
РАЗДЕЛ 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ 6
1.1 Перцептивные хэши. Расстояние Хэмминга 6
1.2 Дескриптор SIFT 9
1.2.1 Особые точки и дескриптор 9
1.2.2. Описание метода выделения особых точек 9
1.2.3 Выделение особых точек 10
1.2.4 Вычисление ориентаций ключевых точек 12
1.2.5 Построение дескрипторов 13
1.2.6 Сравнение изображений 14
1.3 SURF-дескриптор 15
1.3.1 Описание метода выделения особых точек 15
1.3.2 Выделение особых точек 16
1.3.3 Вычисление ориентаций особых точек 16
1.3.4 Построение дескрипторов 16
1.3.5 Сравнение изображений 17
1.4. Попиксельное сравнение изображений 18
РАЗДЕЛ 2. СОЗДАНИЕ ПРИЛОЖЕНИЯ ДЛЯ НАХОЖДЕНИЯ КОПИЙ И ПОХОЖИХ ИЗОБРАЖЕНИЙ 19
2.1 Архитектура СППР «Нахождение копий и похожих изображений». Алгоритм программы на Python 3.7.2 для создания приложения «СППР для нахождения копий и похожих изображений» 19
3.2 Демонстрация работы приложения «СППР для нахождения копий и похожих изображений» 22
3.3 Сравнение методов 31
ЗАКЛЮЧЕНИЕ 56
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 57
ПРИЛОЖЕНИЕ
В последнее время компьютер решает всё больше человеческих задач, а интернет впитывает и выдаёт нам всё больше информации. Одной из неотъемлемых частей интернета - изображения. К сожалению, эти объекты всё чаще перестают быть уникальными, а широкий доступ к интернету и распространённость компьютеров обеспечивают перенасыщенность похожими изображениями и копиями изображений, что приводит к занятости все большего объема памяти на компьютерах. Всё это делает нахождение нужного изображения довольно долгой и мучительной задачей.
Для разрешения данной проблемы в настоящее время всё чаще прибегают к помощи компьютеров. Учёные со всего мира пытаются научить машины видеть изображения так же, как и люди, а IT-корпорации вкладывают немалые денежные и человеческие ресурсы в достижение нужного результата. К счастью, существуют методы, которые позволяют, хоть и при использовании в узконаправленных задачах, получить желаемый результат при меньших затратах. Они основаны не на структуре человеческого аппарата анализа и интерпретации изображений, а непосредственно на особенностях самого изображения. Основываясь только на наборе таких данных цифрового изображения, можно с достаточно высокой точностью позволить компьютеру распознавать дубликаты картинок.
Для нахождения полных копий, дубликатов и похожих изображений используется множество методов. В данной работе рассматриваются разные способы решения этих задач:
-сравнение изображений путём попиксельного вычитания;
-нахождение перцептивных хэшей изображений и их сравнение с помощью расстояний Хэмминга;
-нахождение коэффициентов корреляции столбов изображений и их сравнение;
-нахождение SIFT-дескрипторов изображений;
-нахождение SURF-дескрипторов изображений.
Цель работы. На языке Python версии 3.7.2 создать СППР «Нахождение копий и похожих изображений», которая поможет:
-находить полные дубликаты изображений;
-находить изображения с изменением яркости, цвета, размеров и поворота и прочими преобразованиями.
Предмет изучения настоящей работы- нахождение копий и похожих изображений.
Объект изучения работы - различные изображения (ничем не отличающиеся друг от друга, совершенно разные изображения и отличающиеся размерами, яркостью, цветами незначительно и значительно, углом поворота).
Требования к проектируемой системе:
- наглядность представления имеющейся информации,
- быстрота выполнения расчётов на ЭВМ,
- динамичность,
- интерактивность.
Основные методы, используемые в работе.
- сравнение изображений путём попиксельного сравнения;
- нахождение перцептивных хэшей изображений и их сравнение с помощью расстояний Хэмминга;
-нахождение SIFT-дескрипторов изображений;
-нахождение SURF-дескрипторов изображений.
Основные средства:
-Python 3.7.2;
-JetBrains PyCharm Community Edition.
Технические требования к операционной системе, операционная система: Windows 7,8,10;
В работе с помощью языка Python версии 3.7.2 JetBrains PyCharm Community Edition создана СППР для нахождения копий и похожих изображений. В ней реализованы алгоритмы: метод попиксельного сравнения изображений, алгоритм pHash, дескриптор SIFT, дескриптор SURF. Система осуществляет поиск копий и похожих изображений в динамичном и интерактивном режиме. Алгоритмы протестированы по времени выполнения и по качеству работы. Наиболее подходящим для поиска копий изображений признан алгоритм pHash, так как он находит все копии намного быстрее, чем попиксельное сравнение. Наиболее подходящим из методов SIFT и SURF для поиска похожих изображений признан дескриптор SURF, т.к. он более точный и работает быстрее, чем SIFT.
1. ГОСТ 2.105-1995 «Общие требования к текстовым документам».
2. ГОСТ 7.1-2003 «Библиографическая запись. Библиографическое описание. Общие требования и правила составления»
3. Dr. NealKrawetz. LooksLikelt [Статья на английском орНавИ]// Сайт « www.hackerfactor.com»http://www.hackerfactor.com/b1og/index.php?/archives/43 2-Looks-Like-It.html Дата обращения: 07.02.2019
4. Детекторы и дескрипторы ключевых точек. Алгоритмы классификации
изображений. Задача детектирования объектов на изображениях и методы её решения// Сайт НОУ «Интуит»
https://www.intuit.ru/studies/courses/10621/1105/1ecture/17983?page=2 Дата
обращения:: 21.02.2019
5. JPEG, JPEG2000, JPEG-LS. Сжатие изображений с потерями и
без//Сайткафедры компьютерных технологий факультета информационных технологий и программирования университета ИТМО http://rain.ifmo.ru/cat/view.php/theorv/data-compression/ipeg-2006 Дата
обращения: 08.02.2019
6. Савонин А.И. Метод выделения похожих изображений на основе
применения SIFT-дескрипторов^лектронный ресурс]/ Савонин
А.И.//Молодёжный научно-технический вестник Издатель Академия инженерных наук им. А.М. Прохорова. Эл No. ФС77-51038. ISSN 2307-0609. Режим доступа: http://ainsnt.ru/doc/746976.htm1, свободный. Дата обращения: 12.06.2019
7. David G. Lowe. Computer Distinctive Image Features from Scale-Invariant
Keypomts[Статья на английском одескриптореSIFT]//Сайт:
http://www.cs.ubc.ca/~1owe/papers/iicv04.pdf . Дата обращения: 12.06.2019
8. Расстояние Хэмминга [Электронный ресурс]// Сайт:
https ://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D1%81%D1 %81 %D1 %82%D 0%BE%D1 %8F%D0%BD%D0%B8%D0%B5 %D0%A5%D1 %8D%D0%BC% D0%BC%D0%B8%D0%BD%D0%B3%D0%B0 . Дата обращения: 12.06.2019
9. Introduction to SIFT (Scale-Invariant Feature Transform)
[Электронный ресурс]// Сайт: https://opencv-python-
tutroals.readthedocs.io/en/latest/py tutorials/py feature2d/py sift intro/py sift int ro.htm1#sift-intro . Дата обращения: 12.03.2019.
10. SURF: Speeded Up Robust Features [Электронный ресурс]// Сайт:
https://www.vision.ee.ethz.ch/~surf/eccv06.pdf . Дата обращения: 17.04.2019