Использование методов локальных гистограмм и интерполяции изображений для распознания лиц
Методы интерполяции изображений и их применение для улучшения работы метода локальных гистограмм для распознавания лиц на различных изображениях в случае их необходимого масштабирования. Интегральное представление изображения, выполнение алгоритмов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 07.12.2019 |
Размер файла | 1,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Использование методов локальных гистограмм и интерполяции изображений для распознания лиц
Смирницкий Г.К.
Аннотация
Объектом данного исследования являются методы интерполяции изображений и их применение для улучшения работы метода локальных гистограмм для распознавания лиц на различных изображениях в случае их необходимого масштабирования.
Цель работы: ознакомление с вышеупомянутыми методами, их реализация на языке Python, проведение экспериментов,сбор результатов и обобщение всех материалов.
В ходе работы были реализованы метод локальных гистограмм (LBPH) и три метода интерполяции изображений, получены результаты на разных базах данных и сделан вывод о наилучшем способе предобработки фотографий.
При наличии дальнейших исследований результаты могут быть обновлены.
Abstract
Objectsof this study areimage interpolation methods and their application to the upgrading of LBPH methodfor human faces identification on different imagesin case of their necessary scaling.
The aim of study is familiarization with aforementioned methods, their realization using Python, conducting experiments, collecting results and generalization of all data.
During the work LBPH method and 3 image interpolation methods were realized, experiments results for different databases were gained and the conclusion about the best way to preprocess photos was made.
If any more studies are made - the results can be upgraded.
Введение
Распознавание лица для человека - довольно легкая задача, не требующая практически никаких физических нагрузок. Однако, в связи с развитием технологий появилась и необходимости в обучении компьютеров нахождению и, что немало важно, правильному распознаванию лиц на изображении или видеопотоке.
На сегодняшний день это актуальная задача. Существуют различные приложения и программы развлекательного типа (например “SnapChat”). Они взаимодействуют с лицом, накладывая на него «маски», тем самым преображая его. Так же, правительства многих стран разрабатывают системы распознавания лиц для поиска преступников или пропавших людей.
Технологический прогресс не стоит на месте, появляются разные устройства и программы. Но не каждая разработка идеальна. Поэтому важно не только уметь пользоваться новыми разработками, но и понимать, как они работают и как их работу можно улучшить.
В ходе работы будет рассмотрен метод LBPH, используемый для распознавания лиц, а так же 3 метода интерполяции изображений, которые будут использованы для получения наилучших результатов работы LBPH. Основным инструментом был выбран язык программирования Python.
Обзор методов и алгоритмов, рассматриваемых в данной работе
Распознание лица можно разделить на 2 этапа - нахождение лица на изображении и его «узнавание». Вначале рассмотрим процесс нахождения лица.
Метод Виолы-Джонса
Метод Виолы-Джонса - алгоритм, предложенный Полом Виолой и Майклом Джонсомв 2001году. Изначальная задумка была как раз поиском лиц, но, как оказалось, этот алгоритм успешно справляется и с нахождением любых объектов.
Основные принципы данного метода:
Все вычисления проводятся с интегральными представлениями изображений.
Признаки Хаара применяются для поисков нужных характеристик искомых объектов.
Чтобы не рассматривать окна без лиц, применяются каскады признаков.
Интегральное представление изображения
Цифровое представление изображения - это матрица, где каждый элемент это значение яркости пикселя на отрезке от 0 до 255. Если изображение черно-белое, тогда для его описания достаточно одной матрицы, если цветное, тогда необходимо 3 матрицы для описания интенсивностей красного, синего и зеленого цветов. Метод Виолы-Джонса работает с черно-белыми изображениями. Таким образом: «Интегральным представлением изображения так же является матрица, размер которой совпадает с размером изображения. Каждый элемент это матрицы - сумма интенсивностей пикселей, расположенных выше и левее этого элемента». Формула подсчета:
где I(i, j) -- яркость пикселя исходного изображения.
Значение L(x,y) это сумма всех точек в прямоугольнике (0,0),(x,0),(0,y),(x,y). Отсюда можно вывести простую формулу вычисления суммы яркости пикселей в каком-то определенном прямоугольнике.
Рис 1. Пример расположения области ABCD на изображении
При рассмотрении изображения в виде прямоугольника и выделенной в нём прямоугольной области ABCD (рис.1), заметим, что сумму интенсивностей пикселей внутри объекта ABCD можно выразить по формуле:
Рис.2. Признаки Хаара
Интегральное представление позволяет достаточно быстро вычислять признаки Хаара (рис.2), которые использует метод Виолы-Джонса. Такой признак состоит из n ? 2 смежных прямоугольных областей. Они разными способами располагаются на рассматриваемом изображении, для каждой области суммируются интенсивности пикселей, а между этими суммами находится разность, являющаяся значением конкретного признака с определенным размером, расположенного в определенном месте на изображении.
На пример, для лиц людей на изображениях характерным является всегда более темная область глаз по сравнению со щеками. Следовательно, две смежные прямоугольные области в окрестностях глаз и щек можно обозначить признаком Хаара для лиц.
Сканирование окна
Для поиска необходимых характеристик объектов на изображении с помощью признаков Хаара используется алгоритм сканирования окна:
«есть исследуемое изображение, выбрано окно сканирования, выбраны используемые признаки;
далее окно сканирования начинает последовательно двигаться по изображению с шагом в 1 ячейку окна (допустим, размер самого окна есть 24*24 ячейки);
при сканировании изображения в каждом окне вычисляется приблизительно 200 000 вариантов расположения признаков, за счет изменения масштаба признаков и их положения в окне сканирования;
сканирование производится последовательно для различных масштабов;
масштабируется не само изображение, а сканирующее окно (изменяется размер ячейки);
все найденные признаки попадают к классификатору, который выносит вердикт».
Так как возможностей расположения и масштаба для каждого признака - огромное количество, в методе Виолы-Джонса организован каскадный классификатор.
Рассмотрим пример из предыдущего пункта. Так как у человека по 2 глаза и 2 щеки, логично предположить, что для обеих пар (область глаза + область щеки) будет применено по 1 признаку. То есть, в итоге будет применено 2 определенных признака на каком-то расстоянии между друг другом и примерно на одинаковой высоте. Такой простейший набор можно назвать каскадом признаков.
Метод LBPH
Перейдем ко второму этапу. В 2009 годуметодыLBP(LocalBinaryPattern) и HOG (HistogramofOrientedGradients) были объединены для нового метода, получившего название LocalBinaryPatternHistogram.
Описание работы метода LBPH:
Рассматривается черно-белое изображение
Отдельно рассматривается каждый пиксель и 8 его соседних.
Яркость центрального пикселя становится пороговым значением для соседних пикселей. Если их интенсивность больше или равна этому значению, то соответствующему пикселю придается значение 1, если иначе, то ноль.
Таким образом, каждому пикселю соответствует 8 чисел - нулей или единиц, из которых формируется двоичное число, которое потом преобразуется в десятичное. Все преобразования представлены на рис. 3.
Рис. 3. Алгоритм формирования нового значения для центрального пикселя.
Примечание 1: Если рассматривается цветное изображение, то оно просто переводится в черно-белое.
Примечание 2: На рис.3 двоичное число получено чтением по строкам слева направо. В различных источниках и работах, связанных с методом LBPH используютсяразные способы получения двоичного числа (по часовой или против часовой стрелки, начиная с какого-то определенного). На деле это не имеет значения, главное, каждый раз использовать один и тот же способ.
Получается новая матрица, того же размера, что и исходное изображение. Ради интереса можно это изображение и построить, но это не имеет смысла.
Далее изображение делится на одинаковые прямоугольники заданного размера.
Для каждого прямоугольника строится гистограмма полученных значений, а потом эти гистограммы сцепляются в одну большую, которая и будет являться характеристикой изображения.
Рис. 4. Получение общей гистограммы
Данный способ дает возможность работать с деталями маленьких масштабов, но для кодирования деталей разных размеров алгоритм был расширен и число соседей, а так же радиус, могут варьироваться.
Следовательно, каждое изображение, к которому применяется данный метод, на выходе получит уникальную гистограмму. Сравнение таких гистограмм и применяется для распознавания лиц.
Допустим, есть база данных, в которой содержатся фотографии nлюдей. Чем больше фотографий одного человека, тем проще будет алгоритму в дальнейшем. Каждому человеку присваивается ID, этот же IDприсваивается каждой гистограмме, относящейся к изображению этого человека.
На вход подается изображение лица, которое надо распознать. Для него тоже получается гистограмма, которую надо сравнить (посчитать расстояние) с имеющимися в базе данных. На выходе получаем IDближайшей гистограммы (т.е. IDчеловека) и расстояние до этой гистограммы.
Для вычисления этих расстояний можно использовать различные подходы: евклидово расстояние, абсолютное значение, хи-квадрат и т.д. Чаще всего используется евклидово расстояние по следующей формуле:
Примечание: Во многих источниках минимальное расстояние, получаемое на выходе, называется степенью уверенности, но на самом деле, чем меньше это число, тем выше уверенность.
Методы интерполяции изображений
При работе с изображениями зачастую возникает необходимость применения интерполяции для обработки или изменения размеров. В вычислительной математике интерполяцией является вычисление промежуточных значений по известному дискретному набору значений функции. В компьютерной графике, интерполяция имеет несколько важных особенностей:
Значениями интерполируемой функции являются интенсивности пикселей.
В силу того, что изображения двумерны, то и интерполяция будет двумерной.
Значения яркости пикселей ограничены, и лежат в определенном диапазоне (зависит от используемой схемы)
Во время обычной интерполяции функции к имеющимся значениям добавляются найденные промежуточные значения, а при работе с изображениями все пиксели вычисляются заново, а те, что были известны, не используются при построении нового изображения. Двухмерность интерполяции позволяет независимо изменять ширину и высоту изображения, тем самым меняя соотношения сторон.
В данной работе рассматривается 3 самых основных метода интерполяции - метод ближайшего соседа, билинейная интерполяция и бикубическая интерполяция.
локальный гистограмма распознание лицо
Метод ближайшего соседа
Данный метод является самым простым и наименее трудоемким. Его суть заключается в том, что неизвестное значение функции будет значением в ближайшей к нему известной точке. То есть происходит аппроксимация искомой функции с помощью кусочно-постоянной. При работе с изображениями, новое изображение как бы накладывается на исходное, а затем для искомой точки ищется ближайшая точка в исходном изображении.
Рис.5. Пример выполнения алгоритма ближайшего соседа для одномерного и двухмерного случаев
На рисунке 5 изображен процесс выбора значения для искомой точки (черной). Во втором случае выполняются 3 одномерные операции: вначале находятся две вспомогательные точки по одной оси, а потом с их помощью находится искомое значение по другой оси.
Этот метод прост как по принципу работы, так и по вычислительным затратам. Однако при слишком большом масштабировании исходного изображения могут появляться сильные искажения.
Билинейная интерполяция
Основной подход в методе билинейной интерполяции - аппроксимация интерполируемой функции кусочно-линейной. При работе с изображениями цвет в точке вычисляется с использованием 4 пикселей оригинального изображения, расположенных вокруг данной точки.
Рис.6. Пример выполнения алгоритма билинейной интерполяции для одномерного и двухмерного случаев
На рисунке 6 изображен процесс выбора значения для искомой точки (черной). Во втором случае выполняются 3 одномерные операции: вначале находятся две вспомогательные точки по одной оси, а потом с их помощью находится искомое значение по другой оси. Одномерные операции - это просто линейная интерполяция, которая геометрически означает замену графика функции fпрямыми, проходящими через известные точки. Поэтому, если рассмотрим отдельный кусочек:
Пусть дана функция f, известные её значения в точках x0и x1, тогда для любого x, принадлежащему отрезку [x0,x1],
.
Общая формула билинейной интерполяции имеет вид:
Рассмотрим пример: допустим, известны значения функции в точках Q11 =(x1,y1), Q12 =(x1,y2), Q21 =(x2,y1), Q22 =(x2,y2). Они окружают точку P=(x,y), в которой необходимо интерполировать значение функции f(x,y).
Первым шагом будет линейная интерполяция значений вспомогательных точек R1 =(x,y1) и R2 =(x,y2):
.
Рис. 7. Расположение всех вышеупомянутых точек.
Второй шаг - линейная интерполяция между этими двумя вспомогательными точками:
Это значение и будет являться интерполированным в точке. Собирая вышеупомянутые формулы вместе, получим:
Результат не будет зависеть от того, по какой оси начинается интерполирование.
Второй вариант нахождения интерполируемой функции это решение системы линейных уравнений:
При масштабировании изображений с использованием билинейной интерполяции цветовые переходы получаются более плавными и гладкими, по сравнению с методом ближайшего соседа, однако вычислительная сложность этого алгоритма выше.
Бикубическая интерполяция
Этот метод аппроксимирует интерполируемую функцию кубическим сплайном. При работе с изображениями используются значения цвета 16 пикселей, окружающих точку, в которой необходимо найти значение.
Рис. 8 Пример выполнения алгоритма бикубической интерполяции для одномерного и двухмерного случаев.
На рисунке 9 изображен процесс выбора значения для искомой точки (черной). Во втором случае выполняются 5 одномерных операций: вначале находятся четыре вспомогательные точки по одной оси, а потом с их помощью находится искомое значение по другой оси. Одномерные операции - это просто кубическая интерполяция, представляющую собой аппроксимацию кубическим сплайном.
Пусть функция f(x) задана на отрезке [a,b], который, в свою очередь, разбит на отрезки [xi-1, xi]. Кубическим сплайном будет функция S(x), являющаяся на каждом отрезке многочленом не больше, чем третьей степени, и имеющая непрерывные первую и вторую производные на [a,b]. Что так же важно, S(xi) = f(xi).
Итак, на каждом отрезке [xi-1, xi] существует полином Si(x) третьей степени:
Необходимо определить его коэффициенты. Первое, на что надо обратить внимание, это:
После этого обозначим отсюда получаем следующие формулы:
Так же существует и иной способ реализации бикубической интерполяции. Выведена формула, для работы с относительными координатами. Допустим, известны шестнадцать точек вокруг искомой, расположенные в вершинах квадратов плоскости xy.
Первым шагом будет перейти к относительным координатам. Пример: для точки с координатами (50.5, 50.6) x=0.5, y=0.6. Тогда:
где
Дробные коэффициенты зависят от удаленности искомой точки от точек, относящихся к соответствующему коэффициенту.
Как видно, бикубическая интерполяция требует большого количества вычислений, но при этом, на выходном изображений цветовые переходы получаются очень плавными.
Обзор проблемы
Метод LBPH может применяться в различных технологиях и вместе с совершенно разной аппаратурой. И не всегда существует гарантия получения четкого изображения необходимого размера. В связи с этим возникает вопрос - что же делать, когда изображение слишком мало? Ведь метод LBPH получает информацию из каждого пикселя изображения, следовательно, если их мало, то и информации для идентификации может оказаться не достаточно.
Данная задача является актуальной, так как на данный момент большинство работ, связанных с методом LBPH используют его как инструмент, но не рассматривают его, как объект улучшения.
Постановка задачи
Основной целью данной работы, является поиск наилучшего способа подготовки изображения в случае, когда оно слишком мало для получения достоверного результата. Для того, что бы было больше информации, изображение должно быть увеличено. Этогоможно достичь с помощью методов интерполяции изображений. Следовательно, для достижения поставленной цели необходимо решить следующие задачи:
Ознакомиться с методом локальных гистограмм и основными методами интерполяции изображений.
Реализовать каждый из вышеупомянутых методов.
Создать собственную базу данных изображений человеческих лиц, в которой так же будут присутствовать маленькие изображения.
Используя методы интерполяции, увеличить маленькие изображения - получить тем самым 3 новые базы данных (по одной для каждого метода).
Для каждой из новых баз получить результаты работы метода LBPH.
Сравнить полученные результаты.
Сделать вывод о том, какой способ лучше использовать при необходимости масштабирования.
Предполагаемые результаты
Из рассматриваемых методов, метод бикубической интерполяции дает наилучшее изображение при увеличении для восприятия человеческим глазом - все цветовые переходы достаточно плавные. Однако же, если учесть, что метод LBPHберет информацию, в частности, из разности интенсивности пикселей, то это сглаживание может и привести ухудшению результата. Поэтому нельзя заранее отдать предпочтениекакому-либо из методов.
Средства, использованные для выполнения данной работы
Язык программирования Python.
Данный язык был выбран, так он имеет ряд преимуществ:
Он распространяется бесплатно и под свободной лицензией.
Он не привязан к какой-либо определенной операционной системе или оборудованию
Существует большое количество библиотек для него
Возможна адаптация под разные платформы
Код достаточно прост и читаем
Развитие этого языка продолжается и на данный день
Anaconda -- это: «дистрибутив языков программирования Python и R, включающий в себя набор библиотек для научных и инженерных расчетов, менеджер пакетов conda, интерактивную оболочку IPython».
IPython и JupyterNotebook. IPython это мощный инструмент для работы с языком Python. У него много преимуществ, а так же, мой личный опыт работы с этой платформой дает преимущество в выборе. JupyterNotebook- это веб оболочка для Python, с помощью которой можно работать с исходным кодом языка прямо в браузере. Имеет удобный интерфейс.
Библиотека NumPy - библиотека с открытым кодом для языка программирования Python. Она позволяет работать с матрицами и массивами разных размеров. Основным достоинством библиотеки является высокая скорость выполнения алгоритмов (если сравнивать с аналогичными в других языках, как например С, Фортран, Java). Встроена в Anaconda.
Библиотека OpenCV- библиотека так называемого «компьютерного зрения». Так же имеет открытый код и содержит много алгоритмов работы и обработки изображений и видео. Изначально была разработана для языков Cи C++, но потом появились и реализации для Python.С скачана и установлена мною с официального ресурса. (URL:https://opencv.org/).
Библиотека PIL. Это библиотека для работы с пикселями. Она встроена в Anaconda. Из возникшего конфликта с другими надстраиваемым модулями пришлось понизить ее версию до 4.0.0.
Модуль OS. Это модуль для работы с операционной системой. В данной работе использовался для взаимодействия с именами файлов изображений. Встроен в Anaconda.
iPod 5 touch - моё личное устройство, которое я использовал для создания базы данных. Имеет 5-мегапиксельную камеру.
Процесс решения поставленной задачи
Программная реализация
После ознакомления с литературой, посвященной вышеописанным методам, первым шагом была реализация метода LBPHна языке Python. Одним из самых важных и удобных инструментов для работы с изображениями является библиотека OpenCv. В ней содержатся все необходимые для этого функции, в том числе и те, которые связанны с методом LBPH.
Рис. 9.Пример использования функции из библиотеки OpenCV.
Была написана программа (в дальнейшем программа 1), которая при запуске применяет метод LBPH к базе данных, подаваемой на вход. В этой базе отдельно выделены изображения, которые являются проверочной выборкой, остальные же используются для «обучения» алгоритма.
Так же, с помощью метода «.resize»из библиотеки OpenCVбыли реализованы все три алгоритма интерполяции (в дальнейшем программа 2). На вход подается фотография, на выходе есть 4 изображения - оригинальное, и оно же, увеличенное 3 способами.
Создание собственной базы данных
Большинство работ, посвященных различным методам распознавания лиц и их реализации и использованию, используют базы данных из общего доступа, такие, как например YaleFaces или GeorgiaTech. Так как основной задачей данной работы является улучшение алгоритма в плане результата, то будет достаточно и небольшого количества фотографий в ней. Поэтому база данных была создана мною самостоятельно. Дополнительным плюсом использования собственной базы данных будет являться возможность проверки работоспособности алгоритма на реальных исходных данных, а не на подготовленных заранее.
Все фотографии в базе данных имеют имена, состоящие из 3 частей. Первая часть - слово subject, вторая - IDчеловека, к которому относится эта фотография, третья часть вариативна, необходима для разделения разных фотографий одного человека. В этой работе третья часть в своем большинстве тоже цифры.
Рис.10. Пример изображения из базы данных - имя файла: «subject03.smile»
Краткое описание выполнения алгоритма программы 1
Изображения, у которых третья часть имени имеет вид «prov»являются проверочной выборкой. Все остальные изображения будут использованы для обучения программы. На них выделяется область с лицом, что бы работать именно с ними. В итоге получается набор лиц, каждому из которых присвоен ID, соответствующий ID человека, которому принадлежит это лицо. Дальше с помощью метода «.train» активируется тренировка с методом алгоритма LBPH. Теперь есть обученный распознаватель и можно приступать к распознаванию лиц из проверочной выборки. На этих фотографиях тоже ищется область с лицом, для каждого из которых программа выдает предполагаемыйID. Если он совпадает с реальным, то на выходе в придачу получаем степень уверенности алгоритма в правильности распознавания. Если иначе, то программа выдает IDчеловека из базы данных, за которого она приняла лицо на рассматриваемой фотографии.
Примечание: термины «обучение» и «тренировка», которые использовались выше, могут быть ошибочно ассоциированы с нейросетями, однако же, на самом деле, программа лишь запоминает гистограммы, получаемые для каждого изображения.
Краткое описание выполнения алгоритма программы 2
На вход подается фотография. Потом, с помощью метода «.resize»к фотографии применяются 3 метода интерполяции - метод ближайшего соседа, билинейная интерполяция и бикубическая интерполяция. На выходе получается 4 изображения - оригинальное, и оно же, увеличенное 3 способами.
Полученные результаты
Все 3 метода интерполяции после реализации прошли тестовые испытания, и теперь любое изображение можно масштабировать.
Рис 11. Пример маленького изображения из подготавливаемой базы данных.
Рис.12. Примеры масштабирования изображения на рис.11. с помощью трех реализованных методов интерполяции.
После прогонки маленьких фотографий через программу 2, масштабирующую их, у нас есть 4 базы данных. Для каждой из них был произведен запуск программы 1. Были получены следующие результаты:
Рис.13. Результат для первой базы данных
Рис.14. Результат для второй базы данных
Рис. 15. Результат для третей базы данных
Рис.16.Результат для четвертой базы данных
Как видно из результатов на рис.13, на маленьких изображениях алготрим в большинстве случае не может даже обнаружить лицо, что приводит буквально к отсутствию результата.
Рисунки 14, 15 и 16 относятся к базам данных, построенных с помощью метода ближайшего соседа, билинейной интерполяции и бикубической интерполяции соответственно. Отсюда можно сделать вывод, что метод ближайшего соседа совершенно бесполезен в данной ситуации. А с оставшимися двумя вариантами ситуация такова: у бикубической интерполяции больше ложных распознаваний лиц. Очевидно, что как и было сказанно в разделе « предполагаемые результаты» слишком плавное сглаживание все же вредит корректной работе алгоритма. Исходя из того, что средний процент уверенности для обоих методов практически одинаков, можно сделать вывод, что билинейная интерполяция все же дает наилучший результат.
Выводы
Различные программы и устройства, связанные с распознаванием лиц, сейчас все чаще используются, поэтому любые исследования, связанные с этой темой актуальны и полезны.
В данной работе было продолжено изучение алгоритма LBPHдля распознавания и идентификации лиц на изображении. Так же были изучены некоторые методы интерполяции изображений, которые были применены для случая необходимого масштабирования.
Результаты проведенных исследований показали, что:
На фотографиях маленького размера алгоритм LBPH не всегда может найти лица;
В результате масштабирования маленьких изображений, содержащих лица, метод LBPH будет находить лица и пытаться их идентифицировать по базе данных.
Применение метода ближайшего соседа для масштабирования изображений дает плохие результаты при распознавании лиц (много ложных распознаваний);
Метод билинейной интерполяции является наиболее сбалансированным из трех рассмотренных для предобработки маленьких изображений, так как метод бикубической интерполяции дает больше ложных распознаваний.
Несмотря на то, что масштабирование методом бикубической интерполяции позволяет получить более качественные изображения и дает лучшие результаты для восприятия человеческим глазом, это не дает ему преимуществ при распознавании методом LBPH.
В этой работе было рассмотрено лишь 3 основных метода интерполяции изображений. Это работа может быть продолжена и дополнена исследованиями с применением других методов масштабирования.
Список использованной литературы
1. Метод Виолы - Джонса. URL:https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%92%D0%B8%D0%BE%D0%BB%D1%8B_%E2%80%94_%D0%94%D0%B6%D0%BE%D0%BD%D1%81%D0%B0
2. Метод Виолы-Джонса (Viola-Jones) как основа для распознавания лиц. URL:https://habrahabr.ru/post/133826/
3. Face Recognition: Understanding LBPH Algorithm. URL:https://towardsdatascience.com/face-recognition-how-lbph-works-90ec258c3d6b
4. FaceRecognizer. URL:
5. https://docs.opencv.org/2.4/modules/contrib/doc/facerec/facerec_api.html
6. Распознаем лица на фото с помощью PythonиOpenCV. URL:https://m.habr.com/post/301096/
7. An HOG-LBP Human Detector with Partial Occlusion Handling. URL:https://www.researchgate.net/publication/224135946_An_HOG-LBP_human_detector_with_partial_occlusion_handling
8. OpenCV Tutorials/Basic Operations on images.URL: http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_core/py_basic_ops/py_basic_ops.html#basic-ops/
9. Face recognition using Python and OpenCV. URL:http://hanzratech.in/2015/02/03/face-recognition-using-opencv.html
10. Face Description with Local Binary Patterns: Application to Face Recognition. URL:http://www.ee.oulu.fi/mvg/files/pdf/pdf_730.pdf
11. Интерполяция методом ближайшего соседа. URL: https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D0%BE%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%BC_%D0%B1%D0%BB%D0%B8%D0%B6%D0%B0%D0%B9%D1%88%D0%B5%D0%B3%D0%BE_%D1%81%D0%BE%D1%81%D0%B5%D0%B4%D0%B0
12. Билинейная интерполяция. URL: https://ru.wikipedia.org/wiki/%D0%91%D0%B8%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%B0%D1%8F_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D0%BE%D0%BB%D1%8F%D1%86%D0%B8%D1%8F
13. Бикубическая интерполяция.URL:https://ru.wikipedia.org/wiki/%D0%91%D0%B8%D0%BA%D1%83%D0%B1%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D0%BE%D0%BB%D1%8F%D1%86%D0%B8%D1%8F
Приложение
Код программы:
Описание: Подключение необходимых библиотек, каскадов Хаара и создание необходимых объектов для распознавания.
Описание: Функция проходит по изображениям из базы данных, выделяет на них лица, присваивает им номера, соответствующие определенному человеку.
Описание: Вызываем функцию getFaces, описанную выше, из нее получаем данные для функции тренировки распознавателя.
Описание: Проходимся по изображениям, предназначенным для распознавания, выделяем в них лица, отдаем их распознавателю. Он, в свою очередь выдает нам уверенность распознавания, либо лицо, за которое он принял данное.
Размещено на Allbest.ru
...Подобные документы
Анализ существующих методов масштабирования изображений. Повышение скорости обработки и изменения картинок. Алгоритм масштабирования с использованием параллелизма. Отбор пикселей для правильного расчета градиента. Выбор метода интерполяции изображения.
курсовая работа [5,8 M], добавлен 17.06.2017Обработка изображений на современных вычислительных устройствах. Устройство и представление различных форматов изображений. Исследование алгоритмов обработки изображений на базе различных архитектур. Сжатие изображений на основе сверточных нейросетей.
дипломная работа [6,1 M], добавлен 03.06.2022Сравнительная оценка существующих программ, повышающих разрешение изображений на языке Borland Delphi. Выбор оптимального инструментария для разработки логической схемы. Форма поиска файлов, преобразования изображений и реализации алгоритмов интерполяции.
дипломная работа [3,0 M], добавлен 29.11.2011Программа визуализации космических изображений. Файлы формата LAN. В программе реализован инструмент ресинтеза цветного изображения, отображаемого в главном окне, инструмент выравнивания гистограмм яркости каналов и диалоговое окно вывода гистограмм.
курсовая работа [2,9 M], добавлен 12.05.2012Работа с бинарными изображениями, методы их преобразования в полутоновые. Сущность бинаризации изображений и роль правильного выбора порога квантования. Применение полноцветных, полутоновых и бинарных изображений, способы построения гистограмм.
лабораторная работа [1,3 M], добавлен 30.09.2009Анализ системы получения изображений микропрепарата Атлант-микро. Разработка модели, алгоритмов совмещения фрагментов. Разработка пользовательского интерфейса системы. Оценка качества совмещения фрагментов алгоритмом с бинаризацией на основе гистограмм.
дипломная работа [8,0 M], добавлен 23.09.2012Обнаружение деталей и их границ изображения. Применение ранговых алгоритмов. Использование алгоритмов адаптивного квантования мод в режиме пофрагментной обработки. Обобщенная линейная фильтрация изображений. Восстановление отсутствующих участков.
курсовая работа [1,8 M], добавлен 17.06.2013Выбор методов обработки и сегментации изображений. Математические основы примененных фильтров. Гистограмма яркости изображения. Программная реализация комплексного метода обработки изображений. Тестирование разработанного программного обеспечения.
курсовая работа [1,3 M], добавлен 18.01.2017Типы изображений (черно-белые, полутоновые, цветные) и их форматы. Устройства, создающие цифровые изображения, и их параметры. Применение и характеристики методов сжатия изображений. Поиск по содержимому в базах данных изображений. Структуры баз данных.
презентация [360,4 K], добавлен 11.10.2013Яркость точек и гистограммы изображения. Изменение яркости и контрастности. Метод ранговой фильтрации с оценкой середины диапазона. Наложение шумов на изображение. Преобразование изображения в негатив. Получение матрицы яркостей и построение гистограмм.
курсовая работа [1,5 M], добавлен 11.12.2012Общий алгоритм сравнения двух изображений. Метод максимальных площадей. Метод гистограмм. Подготовка изображения к распознаванию. Моделирование многомерной функции. Распределение векторов. Деформируемые модели. Реализация программного обеспечения.
дипломная работа [384,2 K], добавлен 29.09.2008Цифровые рентгенографические системы. Методы автоматического анализа изображений в среде MatLab. Анализ рентгеновского изображения. Фильтрация, сегментация, улучшение изображений. Аппаратурные возможности предварительной нормализации изображений.
курсовая работа [890,9 K], добавлен 07.12.2013Построение интерполяционных объектов и их свойства. Линейные операции над множествами по Минковскому. Вывод формулы поворота вектора. Основные числовые характеристики изображений. Усовершенствованный метод интерполяции. Исследование исходных множеств.
дипломная работа [1,8 M], добавлен 18.05.2013Изучение и программная реализация в среде Matlab методов обработки, анализа, фильтрации, сегментации и улучшения качества рентгеновских медицинских изображений. Цифровые рентгенографические системы. Разработка статически обоснованных алгоритмов.
курсовая работа [4,7 M], добавлен 20.01.2016Применение различных методов компрессии изображений и анимации. Определение наиболее подходящего формата сжатия. Выбор кодеков при помощи программы RIOT. Применение дополнительных способов оптимизации с использование программ OptiPNG, PNGOUT и TweakPNG.
лабораторная работа [1,5 M], добавлен 31.05.2013Понятие и характеристика некоторых методов интерполяции. Вычисление значения функции между заданными точками несколькими методами. Алгоритм линейной интерполяции. Алгоритм локальной интерполяции по формуле Лагранже. Инструкция пользования программой.
курсовая работа [186,5 K], добавлен 30.05.2015Оптико-электронная система идентификации объектов подвижного состава железнодорожного транспорта. Автоматический комплекс распознавания автомобильных номеров. Принципы и этапы работы систем оптического распознавания. Особенности реализации алгоритмов.
дипломная работа [887,3 K], добавлен 26.11.2013Теоретические основы распознавания образов. Функциональная схема системы распознавания. Применение байесовских методов при решении задачи распознавания образов. Байесовская сегментация изображений. Модель TAN при решении задачи классификации образов.
дипломная работа [1019,9 K], добавлен 13.10.2017Методы предобработки изображений текстовых символов. Статистические распределения точек. Интегральные преобразования и структурный анализ. Реализация алгоритма распознавания букв. Анализ алгоритмов оптического распознавания символов. Сравнение с эталоном.
курсовая работа [2,1 M], добавлен 20.09.2014Положения алгоритмов сжатия изображений. Классы приложений и изображений, критерии сравнения алгоритмов. Проблемы алгоритмов архивации с потерями. Конвейер операций, используемый в алгоритме JPEG. Характеристика фрактального и рекурсивного алгоритмов.
реферат [242,9 K], добавлен 24.04.2015