Диссертация (1091153), страница 4
Текст из файла (страница 4)
При этом на каждой стадии t = 1T после нахожденияслабого классификатора происходит изменение весов экземпляров изобучающей выборки wt (i) согласно соотношению [17]:20wt +1 (i ) =wt (i ) exp(−α t yi ht (xi )),Zt(1.5)где α t – коэффициент точности слабого классификатора ht (x) , вычисляемыйна основе ошибки, выдаваемой этим классификатором:1 1− εt ,α t = ln2 ε t (1.6)а Z t – нормировочный коэффициент, выбранный таким образом, чтобысовокупность весов wt (i) удовлетворяла соотношениюM +N∑ w (i) = 1.i =1t(1.7)Изменение весов объектов происходит таким образом, что ошибкислабого классификатора предыдущей стадии получают больший вес на новойстадии, правильно обнаруженные объекты – меньший.
Итоговый сильныйклассификатор H (x) строится в виде линейной комбинации всех слабыхклассификаторов ht (x) : TH ( x) = sign ∑ α t ht (x) . t =1(1.8)Изначальный вес «объектов» (лиц) обычно выбирается значительнобольше веса «не объектов» (не лиц), так как пропустить объект в реальныхзадачах оказывается хуже, чем допустить ложное срабатывание [16]. Примерработы алгоритма бустинга при двух признаках представлен на рис. 1.3.
Нанем «объекты» с изначально большим весом представлены крестиками, а «необъекты» кружочками.Виола и Джонс для своего детектора предложили каскадную структуру,состоящую из звеньев-слоев в виде сильных классификаторов (рис 1.4) [16].Такая структура позволяет быстро отбрасывать «не лица» уже на первомвтором звеньях каскада, вычисляя всего несколько пар прямоугольныхпризнаков. Для каждого звена выбирается порог так, чтобы обеспечить21некоторый сравнительно высокий минимальный уровень детектирования приотносительно невысоких требованиях к уровню ложной тревоги.
Такимобразом, каскад отбраковывает на каждой стадии все более и более сложные«не лица», пропуская дальше все или почти все «лица».f2f2h1(x)808060604040202000-20-20-40-40-60-60-80-80-80-60-40-200204060h2(x)f180-80-60-40а)-20020406080f1б)f28060H(x)40200-20-40-60-80-80-60-40-20020406080f1в)Рис. 1.3. Формирование в процессе бустинга слабых классификаторов: а) h1 (x) , б) h2 (x) ;в) сильного классификатора H (x) в виде линейной комбинации h1 (x) и h2 (x)Поступающееокно изображения1-йслой2-йслой3-йслойN-йслойРис. 1.4. Каскадная структура классификатора в алгоритме Виолы-Джонса221.3.2. Алгоритм Далала-ТриггсаДругим широко известным алгоритмом детектирования являетсяалгоритмДалала-Триггса,сочетающийиспользованиегистограммнаправленных градиентов (HOG, Histogram of Oriented Gradients) [18] cметодом опорных векторов [13].
Этот алгоритм изначально создавался дляобнаружения фигур людей, но затем нашел свое применение и в задачедетектирования других объектов, таких как лица [19].Перед началом работы алгоритма нужно сформировать обучающуювыборку из изображений «лиц» и «не лиц» разрешением, например, 64х64пикселей и вычислить HOG-признаки.
Каждое изображение в обучающемнаборе делится на ячейки 8х8 пикселей. При формировании HOG-признаковвычисляются направления градиента функции интенсивности в областяхизображения, предварительно разбитом на блоки [18, 103]. Из ячеек 8х8методом бегущего окна формируются пересекающие блоки размером 2х2(т. е. 16х16 пикселей). Всего в нашем примере изображение разбивается на7х7=49 блоков (блоки накладываются друг на друга). Каждая ячейкапредставляется в виде вектора v = (v1 , v2 ,, v9 ) . Внутри ячейки для каждого из64 пикселей вычисляются модуль и направление градиента. Найденноезначение модуля градиента для каждой точки (пикселя) прибавляется к однойиз координат вектора v .
К какой именно координате – зависит от найденногонаправления градиента. Для каждого блока путем конкатенации четырехвекторов, соответствующих четырем входящим в блок ячейкам, формируетсявектор размерности 36 и затем нормируется. Соединяя полученные со всех49 блоков вектора в один длинный вектор, состоящий в нашем случае из49х36 = 1764 элементов, получим описание изображения через 1764 HOGпризнаков.Такимобразом,каждомуобучающемуизображениюсоответствует точка в 1764-мерном пространстве признаков, которой, в своюочередь, соответствует значение «лицо» (+1) или «не лицо» (–1).23На втором этапе работы алгоритма с помощью метода опорных векторовмежду точками двух классов строится разделяющая гиперплоскость –решающая поверхность, которая является классификатором в пространствеHOG-признаков.
Поиск лиц на тестовом изображении с помощью обученногоклассификатора осуществляется методом бегущего окна, приводимого спомощью масштабирования к стандартному размеру (например, 64х64пикселя), и вычислением HOG-признаков внутри каждого окна. Взависимости от вычисленных признаков классификатор решает, является илинет область, покрываемая окном детектора, изображением лица. Исходныйалгоритм обладает довольно низкой производительностью, поэтому для негобыли предложены ряд модификаций, использующих каскадную структуруклассификатора [20].1.3.3.
Модель деформируемых частейМодель деформируемых частей (Deformable Parts Model, DPM) совсемнедавно стала полезным и популярным инструментом для решения задачидетектирования лиц [21, 22]. Высокие результаты данного метода связаны сиспользованием сильных низкоуровневых признаков на основе гистограммнаправленных градиентов, как в алгоритме Далала-Триггса, эффективныхалгоритмов сравнения для моделей, основанных на деформируемых частях иобучениемсиспользованиемскрытогометодаопорныхвекторов(Latent SVM) [21].Идея метода состоит в замене задачи поиска лица на задачу поискаключевых «частей», из которых это лицо состоит – носа, рта, глаз и др.Детекторы частей строятся на основе HOG-признаков. К детекторам частейне применяются высокие требования точности, они могут выдавать большоечисло ложных срабатываний. Окрестности тех точек на изображении гдесработал детектор какой-либо «части», проверяются детектором других«частей».
Если, например, в какой-то точке сработал детектор рта, окрестную24область проверяют детектором носа и подборка. Основываясь на геометрии ивзаимном расположении обнаруженных «частей», обученный алгоритмпринимает решение: является ли конкретная область на изображении лицом,либо нет. Алгоритмы на основе моделей частей способны детектировать лицадаже при его частичном перекрытии или выходе за край изображения(рис. 1.5). Примером реализации данного метода является алгоритмface-release1.0-basic [22].Рис.
1.5. Детектирование лиц с помощью модели деформируемых частей1.3.4. Сверточные нейронные сетиДетектирование лиц может осуществляться с помощью искусственныхнейронных сетей. Одной из популярных современных моделей нейронныхсетей является сверточная нейронная сеть [23].
Примером реализации даннойсети является алгоритм Face++ [24], который использует новый подход клокализации лицевых отметок с каскадом глубоких сверточных сетей (Deepconvolutional neural networks, DCNN) [75]. В работе [76] установлено, чтоиспользование простых признаков может дать лучшие показатели прираспознавании лиц, если использовать более точные лицевые отметки.25Каждый сетевой уровень уточняет подмножество отметок внутри области,вычисленной на предыдущих уровнях.
На первом уровне лицо делится на двечасти: внутренняя область и контур. После второго уровня лицевыекомпоненты внутренней части дополнительно разделяются, на третьем ичетвертом уровне идет дальнейшее уточнение точек. Нейронные сетиобучаются с помощью метода стохастического градиентного спуска.
Дляпредотвращения переобучения изображение случайно изменяется с помощьюнебольших преобразований (вращение, перемещение, масштабирование)перед его подачей на нейронную сеть.1.3.5. Результаты моделирования алгоритмов детектирования лицДляпроверкиточностиработырассмотренныхалгоритмовдетектирования было проведено тестирование на наборе изображений,включающем 200 лиц, из базы FDDB(Face Detection Data set andBenchmark) [25]. Данный набор изображений включает в себя фрагментыфотографий из статей с новостного ресурса news.yahoo.com. Набор состоитпреимущественно из изображений, отображающих человека в движении вусловиях, максимально приближенным к реальным. Лица на изображенияхимеют различную мимику и угловое положение.
Примеры изображений избазы FDDB представлены на рис. 1.6.Проведем сравнительный анализ алгоритмов детектирования лиц наоснове локальных бинарных шаблонов (ЛБШ) [35], алгоритма ВиолыДжонса [16], алгоритмов на основе модели деформируемых частей [22] исверточных нейронных сетей [49] с закрытыми алгоритмами коммерческихсистем, такими как Picasa от Google, Face.сom от Facebook и iPhoto от Apple[116]. Известно, что Facebook использует алгоритм DeepFace, описанный вработе [26]. DeepFace основан на глубоком обучении с помощью большихданных(BigData).РазработчикамиFacebookбыласозданамощнаястатистическая модель, которая складывается из разработанного алгоритма26моделирования3D-моделилицаицентрированиялица.Процессцентрирования производится путем обнаружения 6 особых точек: центрылица, глаз, носа и рта.
Результаты тестирования алгоритмов детектированияна выборке из 200 лиц представлены в табл. 1.1.Рис. 1.6. Примеры изображений из базы лиц FDDBТаблица 1.1Результаты тестирования алгоритмов детектирования лиц на базе FDDBНазвание алгоритмаКол-во детектированныхлицПроцент детектированияВиола-Джонс10753,5Модель деформируемых частей16683Локальные бинарные шаблоны5527,5Сверточные нейронные сети8844Apple15075Google15477Facebook17386,527Широко используемый в научной литературе и в открытой библиотекеOpenCV [84, 85] алгоритм Виолы-Джонса показал относительно низкийрезультат выделения лиц на рассматриваемой базе изображений. В процессетестированияалгоритманаблюдалосьмножествослучаевложногосрабатывания детектора, которые в большинстве случаев находились начастях изображения со сложной фактурой и большим числом мелкихдеталей.
Алгоритм Виолы-Джонса хорошо детектирует лица с фронтальнымрасположением головы и с большим разрешением входного изображения, ноимеет низкий показатель верного детектирования лиц на лицах с поворотомголовы более 10°.Алгоритм детектирования лиц на основе модели деформируемых частейпоказалвысокиерезультатыиимеетминимальноечислоложныхсрабатываний.