В настоящее время в области обработки изображений задача распознавания образов является одной из широко исследуемых задач. Решение задачи распознавания образов востребовано в различных сферах деятельности нашего современного общества. Например, в системах паспортного контроля аэропортов и вокзалов используется распознавание лиц, распознавание радужной оболочки глаза – в системах контроля доступа, распознавание речи – для управления приборами, такими как компьютеры, телефоны, и т.д. Задача распознавания кистей рук является одной из актуальных задач распознавания образов т.к. позволяет использовать человеко-машинный интерфейс для бесконтактного управления устройствами.
В течение последних лет было показано, что удобным представлением изображений для их анализа является совокупность векторов, описывающих окрестности точек интереса – дескрипторов локальных особенностей изображений.
Вложение | Размер |
---|---|
Исследование способов формирования дескрипторов для распознавания кистей рук | 713 КБ |
Государственное бюджетное общеобразовательное учреждение Самарской области гимназии города Сызрани городского округа Сызрань Самарской области
Научно-исследовательский проект по информатике:
Исследование способов формирования дескрипторов для распознавания кистей рук на изображениях.
Выполнил: ученик 11 «А» класса Сибутин Артём Валерьевич Научный руководитель: Александрова Елена Алексеевна 2017-2019 учебные года
СОДЕРЖАНИЕ
1. Анализируемые подходы детектирования ключевых точек и их дескрипторов 4
1.1. Обзор существующих дескрипторов 5
1.2 Выбор дескрипторов для проведения эксперимента 12
2.1 Программы и оборудование 13
2.2 Реализация дескриптора HOG 14
2.3 Реализация дескриптора LBP 15
2.4 Реализация дескрипторов на основе анализа гистограмм 16
2.5 Реализация дескриптора Haralick 17
2.6 Реализация дескриптора BRIEF 18
3.1 Постановка эксперимента 22
3.2 Результаты проведения эксперимента 23
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 32
ПРИЛОЖЕНИЕ А……………………………………………………………………………………
ВВЕДЕНИЕ
Актуальность работы. В настоящее время в области обработки изображений задача распознавания образов является одной из широко исследуемых задач. Решение задачи распознавания образов востребовано в различных сферах деятельности нашего современного общества. Например, в системах паспортного контроля аэропортов и вокзалов используется распознавание лиц, распознавание радужной оболочки глаза – в системах контроля доступа, распознавание речи – для управления приборами, такими как компьютеры, телефоны, и т.д. Задача распознавания кистей рук является одной из актуальных задач распознавания образов т.к. позволяет использовать человеко-машинный интерфейс для бесконтактного управления устройствами.
В течение последних лет было показано, что удобным представлением изображений для их анализа является совокупность векторов, описывающих окрестности точек интереса – дескрипторов локальных особенностей изображений. Важнейшие результаты в развитии концепции дескрипторов были получены в работах C.Harris, T.Lindeberg, C.Schmid, T. Ojala, D.Lowe и G.Csurka.
Целью работы является исследование имеющихся способов формирования дескрипторов наиболее подходящих для распознавания кистей рук на изображениях.
Для достижения поставленной цели необходимо решить следующие основные задачи:
1. Провести обзор наиболее подходящих дескрипторов и способов их формирования.
2. Реализовать дескрипторы.
3. Провести сравнение на базе данных изображений кистей рук.
1. Анализируемые подходы детектирования ключевых точек и их дескрипторов
Дескриптор − это математическое описание множества особых точек. В этом разделе приведен обзор некоторых существующих дескрипторов. Также приведено сравнение дескрипторов и сделан выбор наиболее подходящих дескрипторов для последующей реализации. Входными данными дескриптора является изображение и набор особых точек, выделенных на заданном изображении. Выходными данными дескриптора является множество векторов признаков для исходного набора особых точек. Некоторые дескрипторы одновременно могут решать две задачи – поиск особых точек и построение описания этих точек.
Признаки строятся на основании информации об цвете, интенсивности и текстуре особой точки. Но особые точки могут представляться углами, ребрами или контуром объекта, поэтому, как правило, вычисления выполняются для некоторой окрестности особой точки.
Хорошие признаки должны обладать следующим рядом свойств:
– повторяемость. На изображениях одного и того же объекта или сцены, сделанных с разных точек зрения и при разных условиях освещенности, большинство признаков должно быть продетектировано;
– локальность. Признаки должны быть максимально локальными, чтобы снизить вероятность перекрытий;
– репрезентативность. Количество признаков должно быть таким, чтобы разумное число признаков детектировалось даже на небольшом изображении объекта;
– точность. Признаки должны быть точно продетектированными по отношению к масштабу и форме объекта;
– эффективность. Для приложений, которые работают в реальном времени критично, чтобы процедура вычисления признаков не требовала значительных вычислительных затрат;
– инвариантность. Устойчивость к изменению свойств изображения (яркость, масштаб, поворот и т.п.).
Можно выделить два основных типа дескрипторов: глобальные и локальные дескрипторы.
Под глобальными дескрипторами подразумеваются векторы признаков, полученные при анализе всего изображения в целом. Обычно в таких методах каждая точка изображения вносит вклад в значение дескриптора. Глобальные дескрипторы применяется при решении задачи поиска по общему подобию, которую можно сформулировать как нахождение по запросу-образцу визуально и семантически похожих изображений с точки зрения человека. Например, поиск по изображению заката других изображений заката. В данном случае важно сходство изображений в целом, а не их фрагментов. Такие алгоритмы характеризуются невысоким уровнем качества поиска.
Глобальные дескрипторы не подойдут для задачи распознавания кистей рук т.к. в этой задаче важно не сходство изображений, а сходство конкретных его частей.
Локальные дескрипторы – это векторы признаков, которые описывают не все изображение, а какие-то его значимые части. Методы поиска по локальным дескрипторам применяются в основном для решения задач поиска нечетких дубликатов и поиска заданного фрагмента на изображениях. Дубликатами считаются изображения одной и той же сцены или объекта, снятые в разных условиях или разного качества.
При распознавании кистей рук важно обнаружить сходство отдельных частей изображений, поэтому для данных целей применяются локальные дескрипторы, описывающие особенности областей изображений. В данном случае область кистей рук. Методы поиска по локальным дескрипторам дадут более точные результаты по сравнению с методами поиска по глобальным дескрипторам.
Одним из подходов, основанных на использовании локальных признаков изображений, являются методы выявления точечных особенностей. Точечной особенностью называется точка изображения, структура окрестности которой инвариантна заданным преобразованиям изображения. Для выявления точечных особенностей разрабатываются методы-детекторы. Результатом работы детекторов является множество особых точек, для которых необходимо построить математическое описание. Следует отметить то, что некоторые дескрипторы могут одновременно решать сразу две задачи – поиск особых точек и построение дескрипторов для этих точек. Для точечных особенностей, найденных с помощью детектора, рассчитываются дескрипторы.
1.1. Обзор существующих дескрипторов
В настоящее время существует множество различных дескрипторов. Далее будет рассмотрены наиболее популярные из них.
Дескриптор SIFT (Scale Invariant Feature Transform) обнаруживает и описывает локальные особенности изображения. Признаки, которые можно получить с
помощью него инвариантны относительно масштаба и поворота, устойчивы к ряду аффинных преобразований и шуму. Алгоритм SIFT является достаточно эффективным и обладает высокой сложностью обработки. Данный алгоритм можно разделить на две части: определение ≪точек интереса≫ и построение дескрипторов окрестностей данных точек.
SIFT-дескриптор является инвариантным по отношению к изменениям освещенности. Однако могут возникать и нелинейные изменения в освещенности вследствие, например, различной ориентации источника света по отношению к поверхностям трехмерного объекта. Данные эффекты могут вызвать большое изменение в отношении магнитуд некоторых градиентов (при этом оказывают незначительное влияние на ориентацию вектора градиента). Чтобы избежать этого, используют отсечение по некоторому порогу, которое применяют к компонентам нормализованного дескриптора. После применения порога дескриптор вновь нормализуется. Таким образом, уменьшается значение больших магнитуд градиентов и увеличивается значение распределения ориентаций данных градиентов в окрестности особой точки.
Достоинством данного метода являются, полная инвариантность относительно четырех параметров аффинных преобразований, а именно масштаб, перемещение и вращение. SIFT дескрипторы не лишены недостатков. Не все полученные точки и их дескрипторы будут отвечать предъявляемым требованиям. И это будет сказываться на дальнейшем решении задачи сопоставления изображений. Метод не работает в следующих случаях:
– условия освещения различны (например, день / ночь);
– объект имеет отражающую поверхность (как правило, автомобили, зеркала);
– объект имеет выраженную 3-D структуру;
– объект имеет себе подобные структуры: тогда попадаются ≪истинные≫ несоответствия;
– угол обзора слишком отличается.
Дескриптор PCA-SIFT [1,2] является модификацией дескриптора SIFT. На начальном этапе аналогично вычисляются значения магнитуды и ориентации градиента. Только для каждой особой точки рассматривается окрестность размером 41 × 41 пиксель с центром в точке, которая является особой. По факту строится карта градиентов вдоль вертикального и горизонтального направлений. Для результирующего набора SIFT дескрипторов осуществляется снижение размерности векторов до 32 элементов посредством анализа главных компонент (Principal Component Analysis, PCA).
Дескриптор SURF [4,5] (Speeded up Robust Features) относится к числу тех дескрипторов, которые одновременно выполняют поиск особых точек и строят их описание, инвариантное к изменению масштаба и вращения. Кроме того, сам поиск ключевых точек обладает инвариантностью в том смысле, что повернутый объект сцены имеет тот же набор особых точек, что и образец.
Определение особых точек на изображении выполняется на основании матрицы Гессе (FAST-Hessian detector) [5]. Использование Гессиана обеспечивает инвариантность относительно преобразования типа "поворот", но не инвариантность относительно изменения масштаба. Поэтому SURF применяет фильтры разного масштаба для вычисления Гессиана. Такой проход выделяет как темные пятна на белом фоне, так и светлые пятна на темном фоне.
Дескриптор SURF используется для поиска объектов, но он никак не использует информацию об объектах. Он рассматривает изображение как единое целое и выделяет особенности всего изображения, поэтому он плохо работает с объектами простой формы.
Дескриптор GLOH (Gradient location-orientation histogram) [7] является модификацией SIFT-дескриптора, который построен с целью повышения надежности. По факту вычисляется SIFT дескриптор, но используется полярная сетка разбиения окрестности на бины.
Детектор DAISY [8] изначально вводится для решения задачи сопоставления изображений в случае значительных внешних изменений, т.е. данный дескриптор в отличие от ранее рассмотренных работает на плотном множестве пик селей всего изображения. При этом авторы DAISY в работе [8] показали, что дескриптор работает в 66 раз быстрее, чем SIFT, запущенный на плотном множестве пикселей. В DAISY использованы идеи построения SIFT и GLOH дескрипторов. Аналогично GLOH выбирается круговая окрестность особой точки, при этом бины представляются не частичными секторами, а окружностями (рисунок 1).
Рисунок 1 − Сетка построения бинов для центрального пикселя.
Для каждого такого бина выполняется та же последовательность действий, что и в алгоритме SIFT, но взвешенная сумма магнитуд градиентов заменяется сверткой исходного изображения с производными Гауссова фильтра, взятыми по 8 направлениям. Авторы [8] показали, что построенный дескриптор обладает инвариантностью, как и SIFT, и GLOH, при этом для решения задачи сопоставления в случае, когда все пиксели считаются особыми, требует меньших вычислительных затрат.
Гистограмма направленных градиентов (англ. Histogram of Oriented Gradients, HOG). Дескриптор основан на подсчете количества направлений градиента в локальных областях изображения и вычисляется на плотной сетке равномерно распределенных ячеек, используя нормализацию перекрывающегося локального контраста для увеличения точности. Основная область для применения дескриптора HOG это нахождения людей на видео, а также различных животных и машин на статичных изображениях. Следовательно, этот дескриптор хорошо подойдет для задачи распознавания кистей рук.
Основной идеей алгоритма является допущение, что внешний вид и форма объекта на участке изображения могут быть описаны распределением градиентов интенсивности или направлением краев. Реализация этих дескрипторов может быть произведена путём разделения изображения на маленькие связные области, именуемые ячейками, и расчетом для каждой ячейки гистограммы или направлений краев для пикселей, которые находятся внутри ячейки. Комбинация этих гистограмм и является дескриптором. Для увеличения точности локальные гистограммы подвергаются нормализации по контрасту. С этой целью вычисляется мера интенсивности на большем фрагменте изображения, называющаяся блоком, и полученное значение используется для нормализации. Нормализованные дескрипторы обладают лучшей инвариантностью по отношению к освещению.
Рисунок 2 − Алгоритм дескриптора HOG
Исследователи INRIA Навнит Далал и Билл Триггс впервые описали гистограмму направленных градиентов в своей работе на CVPR в июне 2005 года. В этой работе они использовали алгоритм для нахождения пешеходов на статичных изображениях. Впоследствии расширили область применения до нахождения людей на видео, а также различных животных и машин на статичных изображениях.
Дескриптор HOG имеет несколько преимуществ над другими дескрипторами. Он работает локально и поддерживает инвариантность геометрических и фотометрических преобразований, за исключением ориентации объекта. Подобные изменения появятся только в больших фрагментах изображения. Навнит Далал и Билл Триггс писали в своей статье [9], что грубое разбиение пространства, точное вычисление направлений и сильная локальная фотометрическая нормализация позволяют игнорировать движения пешеходов, если они поддерживают вертикальное положение тела.
Популярными являются дескрипторы на основе анализа гистограмм. Гистограммы представляет собой одномерный вектор, элементы которого (бины) представляют количество пикселей изображения, яркость которых (или другая числовая характеристика) попадает в заданный диапазон. Собранные данные могут иметь любой признак, который будет полезным для описания изображения. В качестве примера приведем матрицу (рисунок 3), которая содержит в себе информацию об интенсивности изображения в диапазоне от 0 до 255.
Поскольку диапазон информационного значения для этого случая 256 значений, можно сегментировать ассортимент значений в подразделы (так называемые бины (bins)).
Проведя подсчет пикселей получаем изображение, представленное на рисунке 4. Где по горизонтали отложены бины, а по вертикали количество пикселей в каждом из них.
Рисунок 3 − Пример матрицы с информацией об интенсивности пикселя изображения
Рисунок 4 – Визуализация перевода значений в подразделы
Это был пример построения гистограммы. Гистограмма может вести учет не только интенсивности цвета, но и другие параметры изображения, которые можно измерить (например, градиенты, направления и т.д.) и использовать в качестве дескрипторов [10].
Дескриптор LBP используется для поиска объекта на изображении, а также проверки этого объекта на принадлежность некоторому классу (верификация, распознавание эмоций, пола по лицу). Впервые был предложен T.Ojala в 1996 году [11]. Он представляет собой эффективный дескриптор, который представляет каждый пиксель изображения в виде бинарного числа, зависящего от интенсивностей соседних пикселей изображения.
LBP дескриптор является эффективным в вычислительном плане, так как работает только с целочисленной арифметикой (это позволяет достигать real-time производительности в некоторых задачах), а также он инвариантен к изменениям яркости на изображении, которые вызваны съемкой в различных условиях освещения.
Он принимает центральный пиксель в качестве порога и сравнивает значение яркости в каждом пикселе окрестности с ним. Если это значение больше порога (или равное значение), то пиксель принимает значение 1. Если же меньше − 0. Полученное восьмибитное число характеризует окрестность пикселя. Всего вариантов таких чисел 28 = 256. Таким образом каждому пикселю изображения присваивается одна из 256 меток, характеризующих его. Далее из этих данных можно построить гистограмму и провести сравнение по гистограммам LBP.
Рисунок 5 – Восемь пикселей окрестности
Цель создания BRIEF-дескриптора (Binary Robust Independent Elementary Features) [12] состояла в том, чтобы обеспечить распознавание одинаковых участков изображения, которые были сняты с разных точек зрения. При этом ставилась задача максимально уменьшить количество выполняемых вычислений. Алгоритм распознавания сводится к построению случайного леса (randomize classification trees) на некотором тренировочном множестве изображений и последующей классификации участков тестовых изображений. В упрощенном варианте может использоваться метод ближайшего соседа для поиска наиболее похожей области изображения в тренировочной выборке. Небольшое количество операций обеспечивается за счет представления вектора признаков в виде бинарной строки.
Схема построения векторов признаков достаточно простая. Изображение разбивается на патчи (отдельные перекрывающиеся участки). Авторы [12] приводят результаты экспериментов (качества распознавания) при выборе пар точек согласно закону равномерного распределения, в патче, а также нормального распределения с разными значениями математического ожидания и среднеквадратичного отклонения. При одинаковых условиях проведения экспериментов на некоторых тестовых изображениях авторам [12] удалось достичь точность детектирования с помощью BRIEF почти в 1,5 раза выше, чем с использованием SURF-дескрипторов.
BRIEF-дескрипторы чрезвычайно просты в вычислении, поскольку их значения равны результату сравнения двух чисел. Они также очень компактны, поскольку результат элементарного теста − это число 0 или 1, то есть один бит. В стандартной реализации для построения одного BRIEF-дескриптора требуется выполнить 256 сравнений, что дает итоговую длину 64 байта. Это очень мало, учитывая, что SIFT-дескриптор состоит из 128 действительных чисел, то есть занимает как минимум 512 байтов. Наконец, сравнение BRIEF-дескрипторов занимает очень мало времени, поскольку сводится к вычислению расстояния Хэмминга между двумя последовательностями битов. Сами по себе дескрипторы BRIEF не инвариантны к повороту. Однако такой инвариантности можно добиться, если предварительно повернуть фрагмент вокруг точки интереса на угол, соответствующий, например, доминирующему направлению градиента яркости, как это делается для дескрипторов SIFT и SURF.
Дескриптор Haralick [13] основан на статистике, отражающей частоту присутствия в текстуре различных пар уровней яркости пикселя. Составляется матрица частот, число строк и столбцов которой равны числу уровней яркости в текстуре. Элемент матрицы частот P(Δx,Δy)(i, j) соответствует относительной частоте, с которой пиксели с интенсивностью i и j встречаются в текстуре, на расстоянии (Δx, Δy) друг от друга. Параметр сдвига (Δx, Δy), задающий взаимное расположение пикселей, чаще всего выбирается таким, что соответствует направлениям 0, π/4, π/2 и 3π/4 радиан и расстояниям от 1 до 4 пикселей.
На основе матрицы частот пар пикселей вычисляются следующие признаки текстуры: контраст, энтропия, энергия, однородность. Контраст соответствует величине перепада яркости на протяжении всей текстуры. Энтропия соответствует величине хаотичности текстуры и имеет максимальное значение, когда все элементы P(Δx,Δy)(i, j) равны друг другу. Энергия представляет собой сумму квадратов элементов матрицы частот.
1.2 Выбор дескрипторов для проведения эксперимента
В ходе анализа литературы было установлено, что важными характеристиками изображений кистей рук является информация о цвете и локальных геометрических особенностях. Исходя из этого для задачи распознавания кистей рук выбраны популярные дескрипторы, учитывающие данные виды информации: дескриптор HOG, дескриптор Haralick, дескриптор на основе двумерной гистограммы изображения по каналам ≪цветовой тон≫ и ≪насыщенность≫ для цветового пространства HSV (hue, saturation, value), дескриптор на основе трехмерной гистограммы изображения в цветовом пространстве RGB, дескриптор LBP, дескриптор BRIEF.
Описанные дескрипторы SIFT, SURF, DAISY являются дескриптором локальной окрестности особой точки и не подходят для задач обнаружения объектов. Подходящий дескриптор должен представлять собой описание некоторой прямоугольной области изображения. Дескриптор GLOH используется в задачах поиска по базам изображений, имеет большую размерность и не предназначен для описания небольших областей изображения.
Алгоритм исследования конкретного дескриптора приведен на рисунке 6. Данная последовательность действий осуществляется для каждого дескриптора из числа выбранных.
Рисунок 6 − Алгоритм исследования конкретного дескриптора
2 Реализация дескрипторов
2.1 Программы и оборудование
В качестве среды для программирования использовалась Anaconda. Это бесплатный дистрибутив языка python, который включает в себя множество научных и инженерных библиотек. К этой среде была подключена библиотека алгоритмов компьютерного зрения OpenCV, которая применяется для обработки изображений и численных алгоритмов общего назначения с открытым кодом. OpenCV реализована на C/C++, также разрабатывается для Python, Java, Ruby, Matlab, Lua и других языков. Scikit-image это еще одна библиотека с открытым исходным кодом, применяемая для обработки изображений в языке программирования Python. Она включает в себя алгоритмы сегментации, геометрических преобразований, пространства манипуляций с цветом, анализа, фильтрации, морфологии, обнаружение признаков, и многое другое [14].
Для классификации изображений был использован метод опорных векторов (Support Vector Machines). Данный метод решает задачи классификации и построения нелинейной плоскости, разделяющей решения. Благодаря особенностям природы пространства признаков, в котором строятся границы решения, метод опорных векторов обладает высокой степенью гибкости при решении классификации различного уровня сложности.
Для визуализации многомерных переменных был выбран алгоритм t-SNE, который также относят к методам множественного обучения признаков. Был опубликован в 2008 году [15] голландским исследователем Лоуренсом ван дер Маатеном и Джеффри Хинтоном. Классический SNE был предложен Хинтоном и Ровейсом в 2002 [16].
Так же была построена ROC-кривая [17] — график, позволяющий оценить качество бинарной классификации, отображает соотношение между долей объектов от общего количества носителей признака, верно классифицированных, как несущих признак, (англ. true positive rate, TPR, называемой чувствительностью алгоритма классификации) и долей объектов от общего количества объектов, не несущих признака, ошибочно классифицированных, как несущих признак (англ. False positive rate, FPR, величина 1-FPR называется специфичностью алгоритма классификации) при варьировании порога решающего правила. Также ROC-кривая известна как кривая ошибок. Анализ классификаций с применением ROC-кривых называется ROC-анализом.
Для более наглядного анализа был сформирован случайный (Random) дескриптор – это массив, заполненный случайными элементами, который используется классификатором в качестве дескриптора. Этот дескриптор нужен только для проведения сравнительного анализа и не пригоден для практического применения. Он представлен в работе в подтверждение того что классификатор и ROC кривая работают правильно.
На языке python реализация Random дескриптора представлена в Приложении А. Листинг А.5 − Функция ≪Реализация дескриптора ≪Random≫.
2.2 Реализация дескриптора HOG
Данный дескриптор основан на подсчете количества направлений градиента в локальных областях изображения. Этот метод похож на гистограммы направления края, дескрипторы SIFT и контексты формы, но отличается тем, что вычисляется на плотной сетке равномерно распределенных ячеек и использует нормализацию перекрывающегося локального контраста для увеличения точности.
Алгоритм состоит из следующих шагов:
1. Вычисление значений градиента.
2. Группировка направлений.
3. Формирование блоков дескрипторов.
4. Нормализация блоков
5. SVM-классификатор
Первым шагом вычислений во многих детекторах особых точек является нормализация цвета и гамма-коррекция. Далал и Триггс установили, что для дескриптора HOG этот шаг можно опустить, поскольку последующая нормализация даст тот же результат [9]. Поэтому на первом шаге рассчитываются значения градиентов. Самым распространенным методом является применение одномерной дифференцирующей маски в горизонтальном и/или вертикальном направлении. Этот метод требует фильтрации цветовой или яркостной составляющей.
На шаге ≪Группировка направлений≫ вычисляются направления градиентов в ячейках. Каждый пиксель из ячейки добавляет значение гистограмме направленных градиентов основываясь на величине и направлению градиента. Ячейки могут быть прямоугольной или круглой формы, каналы гистограммы равномерно распределяются от 0 до 180 или же от 0 до 360 градусов, в зависимости от того, вычисляется ≪знаковый≫ или ≪беззнаковый градиент≫ [17].
Для принятия во внимание яркости и контрастности градиенты следует локально нормировать, для чего ячейки нужно сгруппировать в более крупные связные блоки. Дескриптор HOG, таким образом, является вектором компонент нормированных гистограмм ячеек из всех областей блока. Как правило, блоки перекрываются, то есть каждая ячейка входит более чем в один конечный дескриптор. Используются две основные геометрии блока: прямоугольные R-HOG и круглые CHOG. Блоки R-HOG обычно являются квадратными сетками, характеризующимися тремя параметрами: количеством ячеек на блок, количеством пикселов на ячейку и количеством каналов на гистограмму ячейки. В эксперименте Далала и Триггса оптимальными параметрами являются блоки 16 × 16, ячейки 8 × 8 и 9 каналов на гистограмму [10].
Есть четыре метода нормализации блоков: L2-норма, L2-hys, L1-норма, корень из L1-нормы.
Далал и Триггс установили, что L1-норма дает менее надежные результаты, чем остальные три, которые работают приблизительно одинаково хорошо, однако все четыре метода значительно улучшают результаты по сравнению с ненормализованными [17].
С использованием модуля Scikit-image, который включает в себя все операции, описанные выше, на языке python реализация HOG дескриптора представлена в Приложении А. Листинг А.3 − Функция ≪Реализация дескриптора HOG≫.
Дескриптор задается следующими параметрами [18]:
− image – входное изображение (преобразовано в градации серого);
− orientations – число бинов гистограммы;
− pixels_per_cell – размер ячейки в пикселях;
− cells_per_block – количество ячеек в каждом блоке.
2.3 Реализация дескриптора LBP
Подробное описание реализации дескриптора LBP может быть найдено в [19]. Суть метода заключается в следующем. Вокруг каждого пикселя изображения (gc) описывается окружность радиуса R (в рамках данной работы R = 3). Далее определяются яркости (I) P точек (в рамках данной работы P = 8), равномерно распределенных по окружности, где узлы сетки соответствуют пикселям изображения (рисунок 7). Если точка совпадает с пикселем изображения (точки g0, g2, g4 и g6), то яркость этой точки есть яркость пикселя. В противном случае (точки g1, g3, g5 и g7) яркость точки получают посредством интерполяции по 4 соседям. Выбрав одну из P точек в качестве начальной (g0) и задав направление обхода (оба действия выполняются всегда единообразно), вычисляется величина, называемая LBP-кодом.
Рисунок 7 – Иллюстрация процесса получения LBP-кода для пикселя gc.
С использованием модуля Scikit-image, который включает в себя все операции, описанные выше, на языке python реализация LBP дескриптора представлена в Приложении А. Листинг А.8 − Функция ≪Реализация дескриптора LBP≫.
Дескриптор задается следующими параметрами [18]:
− image – изображение в градациях серого;
− P – симметричный набор соседей одного пиксея взятых на окружностии;
− R – радиус окружности;
− method – метод определения шаблона (default, ror, uniform, var);
− default – оригинальный LBP в градациях серого. Не инвариантен к вращению;
− ror – расширение реализации по умолчанию в градациях серого. Является инвариантны к вращению.
2.4 Реализация дескрипторов на основе анализа гистограмм
Для реализации дескрипторов этим методом был подключен модуль OpenCV. Функция cv2.calcHist() позволяет найти гистограмму изображения. Ниже представлены параметры функции.
Параметры функций имеют следующие описание [10]:
− images − это исходное изображение типа uint8 или float32. Оно должна быть записано в квадратных скобках, т.е. ≪[img]≫;
− channels – Так же записывается в квадратных скобках. Это индекс канала, для которого вычисляется гистограмма. Например, если входным является черно-белое изображение, его значение ≪[0]≫. Для получения цветного изображения, нужно передать ≪[0]≫, ≪[1]≫ или ≪[2]≫, чтобы вычислить гистограмму синего, зеленого или красного канала соответственно;
− mask – Маска изображения. Для поиска гистограммы полного изображения, используется значение "None". Чтобы найти гистограмму конкретного региона изображения, нужно для этого создать изображение маски и дать его в качестве маски;
− histSize – Этот параметр указывает количество бинов гистограммы.
− ranges – Диапазоны значений для каждого канала.
Существуют одномерные гистограммы, которые принимают во внимание только одну функцию, т.е. полутоновое значение интенсивности пикселя. Такая гистограмма была приведена в главе 1. В рамках данной работы реализованы двумерная гистограмма, она учитывает две особенности (значения Hue и Saturation для каждого пикселя) и трехмерная гистограмма (учитывает значения цветовых каналов R − красный, G − зеленый, B − синий).
С использованием модуля OpenCV, на языке python реализация получения дескриптора из двумерной гистограммы (HISTHS) представлена в Приложении А. Листинг А.6 − Функция ≪Реализация дескриптора HISTHS≫.
Так как необходимо обрабатывать как H и S плоскости channels будет равным ≪[0,1]≫, значение Hue лежит в диапазоне от 0 до 180, а значение Saturation лежит в диапазоне от 0 до 256 параметр. Исходя из этого параметр ranges имеет вид ≪[0,180,0,256]≫
С использованием модуля OpenCV, на языке python реализация получения дескриптора из трехмерной гистограммы (HIST3D) представлена в Приложении А. Листинг А.4 − Функция ≪Реализация дескриптора HIST3D≫.
Параметру channels нужно передать ≪[0]≫, ≪[1]≫ и ≪[2]≫, чтобы вычислить гистограмму синего, зеленого или красного канала соответственно.
2.5 Реализация дескриптора Haralick
С использованием модуля Scikit-image на языке python реализация Haralick дескриптора представлена в Приложении А. Листинг А.7 − Функция ≪Реализация дескриптора Haralick≫.
Дескриптор задается следующими параметрами [23]:
− image – входное изображение;
− distances – список возможных расстояний между парными пикселями;
− angles – Список возможных углов между парными пикселями в радианах;
− levels – Исходное изображение должно содержать целые числа из диапазона ≪[0, levels-1]≫, где levels обозначает количество градаций серого (как правило,
256 для 8-битного изображения). Максимальное значение равно 256;
− symmetric – Флаг, указывающий является ли матрица симметричной. По умолчанию имеет значение False;
− normed – Флаг, обозначающий следует ли нормализовать каждую матрицу путем деления на общее количество пар с заданным смещением. Элементы полученной матрицы в сумме дают 1. Имеет значение по умолчанию False.
2.6 Реализация дескриптора BRIEF
Для вычисления дескриптора в точке p сравниваются значения яркостей точек, расположенных в ее окрестности. При этом сравниваются значения яркости не всех точек со всеми, а анализируется лишь небольшое подмножество соседних пар точек, координаты которых распределены случайно (но одинаковым образом для каждой анализируемой точки p). Фрагмент, по которому вычисляются дескрипторы, предварительно сглаживается.
С использованием модуля Scikit-image, который включает в себя все операции, описанные выше, на языке python реализация BRIEF дескриптора представлена в Приложении А. Листинг А.9 − Функция ≪Реализация дескриптора BRIEF≫.
Дескриптор задается следующими параметрами [23]:
− descriptor_size – размер дескриптора BRIEF для каждой ключевой точки.
Авторами рекомендуются размеры 128, 256 и 512. По умолчанию используется размер 256;
− patch_size – размер двумерных квадратных блоков, взятых в окрестности ключевой точки. Значение по умолчанию 49;
− mode – вероятностное распределение расположения пар пикселей вокруг ключевой точки;
− sample_seed – инициализирующее значения для генератора случайных чисел, используемого при выборе пар пикселей. Из квадратного окна размера patch_size случайным образом выбираются пары пикселей, при этом для задания распределения вероятностей генератора случайных чисел используется параметр Mode. Значение Sample_seed должно быть одинаковым при вычислении дескрипторов изображений для которых производится поиск соответствий;
− sigma – Стандартное отклонение Гауссова фильтра нижних частот применимого к изображению для уменьшения чувствительности к шумам, что строго рекомендуется для достижения отчетливого и хорошего дескриптора.
2.7 Классификатор
Для классификации изображений с целью поиска кистей рук используется метод опорных векторов (SVM).
В рамках данной задача у метода опорных векторов состоит в классификации объектов двух классов. Есть рука или нет руки.
В методе опорных векторов выделяют два этапа: этап обучения и этап распознавания. На первом этапе из множества обучающих примеров отбираются опорные векторы, на основе которых строится разделяющая плоскость. Этап распознавания заключается в том, что на вход полученного классификатора подается вектор, о классовой принадлежности которого ничего не известно. Классификатор должен дать ответ, к какому классу относится вектор. Следует отметить, что метод SVM может применяться как для линейно разделимых образов, так и для линейно неразделимых. Во втором случае используется либо линейная разделяющая функция с мягкой границей (т.е. допускается минимальное количество ошибок классификации), либо осуществляется переход в пространство большей размерности, в котором образы становятся линейно разделимыми [24].
Для обучения SVM классификатора используются 487 изображений кистей рук сделанные Sebastien Marcel в ходе его исследования, результаты которых представлены в [25, 26], и 487 изображений без кистей рук, полученные путем нарезки случайных изображений, найденных в интернете. Примеры этих изображений представлены на рисунке 8 и рисунке 9.
Рисунок 8 – Изображения кистей рук.
Рисунок 9 – Изображения без кистей рук
2.8 Методика ROC-анализа
Для представления результатов бинарной классификации машинного обучения наиболее часто используется ROC-кривая (Receiver Operation Characteristic). В рамках данной работы алгоритм выдаёт ответы двух возможных типов, то назовём один такой возможный ответ классом с положительными исходами, а второй – классом с отрицательными исходами. В этом случае ROC-кривая будет показывать зависимость количества верно классифицированных положительных ответов от числа неверно классифицированных отрицательных примеров. В терминологии ROC-анализа первые ответы называются истинно положительными, вторые – ложно отрицательными [27, 28]. Для понимания сути ошибок 1-го и 2-го рода приведена таблица сопряжённости (таблица 1), которая строится на основе результатов классификации.
Таблица 1 – Таблица сопряжённости алгоритма классификации
Получаем четыре возможных исхода классификации:
1. TP (true positive) – верно классифицирована кисть руки.
2. TN (true negative) – верно классифицированное отсутствие руки.
3. FN (false negative) – ложный пропуск руки (кисть руки ошибочно не обнаружилась, ошибка 1-го рода).
4. FP (false positive) – ложное обнаружение кисти руки (ошибочное отнесение области изображения к классу кисти руки, ошибка 2-го рода).
При анализе удобно оперировать не абсолютными значениями этих величин, а относительными показателями.
Доля истинно положительных примеров отображает соотношение между долей объектов от общего количества носителей признака, верно классифицированных, как несущих признак (TPR):
Доля объектов от общего количества объектов, не несущих признака, ошибочно классифицированных, как несущих признак (FPR):
Доля истинно положительных примеров так же называется чувствительностью алгоритма классификации. Величина 1 - FPR называется специфичностью алгоритма классификации.
Методика построения ROC-кривой состоит в следующем:
1. Для каждого значения порога отсечения рассчитываются значения чувствительности и специфичности модели.
2. Строится график зависимости: по горизонтальной оси откладывается FPR,
по вертикальной – 1 - FPR
В результате получается некоторая кривая линия. Для идеального классификатора данный график проходит через левый верхний угол (идеальная чувствительность). Следовательно, чем ближе график к левому верхнему углу, тем выше предсказательная способность модели. Чем меньше изгиб кривой, тем менее эффективна модель.
3 Сравнение дескрипторов
3.1 Постановка эксперимента
Для проведения исследования используется набор изображений ≪Static Hand Posture Database≫, описанный в работе [25].
Для проведения исследования использовалось следующее программное обеспечение:
1. Язык программирования Python.
2. Набор программных компонентов для матричных вычислений numpy.
3. Набор программных компонентов численных реализаций методов, исполь-
зуемых в научной и инженерной практике: SciPy.
4. Средство визуализации научных данных Matplotlib.
5. Библиотека алгоритмов компьютерного зрения OpenCV.
6. Библиотека алгоритмов обработки изображений skimage.
Для сравнения дескрипторов использовалось два критерия:
1. Разделимость различных классов (для визуализации используется метод t-SNE).
2. Эффективность классификатора основе машины опорных векторов, использующего данный дескриптор.
Метод t-SNE представляет собой технику нелинейного снижения размерности и визуализации многомерных переменных. В классическом SNE есть набор данных с точками, описываемыми многомерной переменной с размерностью пространства существенно больше трех. Необходимо получить новую переменную, существующую в двумерном или трехмерном пространстве, которая бы в максимальной степени сохраняла структуру и закономерности в исходных данных.
Использование SNE позволяет получить неплохие результаты, но может быть связано с трудностями в оптимизации функции потерь и проблемой скученности (в оригинале – crowding problem). t-SNE если и не решает эти проблемы совсем, то существенно облегчает. Функция потерь t-SNE имеет два принципиальных отличая. Во-первых, у t-SNE симметричная форма сходства в многомерном пространстве и более простой вариант градиента. Во-вторых, для точек из пространства отображения используется t-распределение (Стьюдента), ≪тяжелые≫ хвосты которого облегчают оптимизацию и решают проблему скученности.
Проблема скученности заключается в том, что расстояние между двумя точками в пространстве отображения, соответствующими двум средне удаленным точкам в многомерном пространстве, должно быть существенно больше, нежели расстояние, которое позволяет получить обычное распределение. Проблему решают хвосты Стьюдента.
Возвращаясь к физической аналогии, результирующая сила, будет существенным образом стягивать точки пространства отображения для близлежащих точек многомерного пространства, и отталкивать − для удаленных.
3.2 Результаты проведения эксперимента
Для обучения машины опорных векторов используется обучающая выборка, состоящая из 487 положительных примеров (содержащих кисть руки) и 487 отрицательных примеров (не содержащих изображения кисти руки).
Исследование эффективности классификатора производится на тестовой выборке, отличной от выборки на которой производилось обучение. Тестовая выборка содержит 61 изображение с кистями рук и около 633 изображений без кистей рук.
Дескриптор HOG показал точность классификации кисти руки 77 %. Посмотрев на ROC-кривую (рисунок 10), можно увидеть, что кривая расположена очень близка к левому углу, а значит у модели на основе этого дескриптора очень большая предсказательная способность. На рисунке 11 представлена проекция векторов из многомерного пространства в двумерное. Эта проекция отражает разделимость классов. Для данного дескриптора хорошо выражен класс ≪есть рука≫ (точки синего цвета), который отделен от класса ≪нет руки≫ (точки красного цвета).
Рисунок 10 – Иллюстрация ROC-кривой для дескриптора HOG
Рисунок 11 – Результат визуализации методом t-SNE для дескриптора HOG
Дескриптор на основе трехмерной гистограммы (HIST3D) показал точность классификации кисти руки 16,4 %. Посмотрев на ROC-кривую (рисунок 12), можно увидеть, что кривая расположена почти по диагонали и имеет хорошо выраженный изгиб. Модель на основе этого дескриптора не будет эффективной для данной задачи. На рисунке 13 представлена проекция векторов из многомерного пространства в двумерное. Эта проекция отражает разделимость классов. Для данного дескриптора векторы класса ≪есть рука≫ (точки синего цвета) имеют не такую хорошую кучность как у предыдущего дескриптора (HOG). Но этот класс отделим от класса ≪нет руки≫ (точки красного цвета).
Рисунок 12 – Иллюстрация ROC-кривой для дескриптора HIST3D
Рисунок 13 – Результат визуализации методом t-SNE для дескриптора HIST3D
Дескриптор на основе двухмерной гистограммы (HISTHS). показал точность классификации кисти руки 13,11 %. Точность хуже, чем у трехмерной гистограммы. Посмотрев на ROC-кривую (рисунок 14), можно увидеть, что кривая расположена почти по диагонали и имеет меньший изгиб чем HIST3D. Значит модель на основе этого дескриптора менее эффективным чем HIST3D и также не пригодна для данной задачи. На рисунке 15 представлена проекция векторов из многомерного пространства в двумерное. Эта проекция отражает разделимость классов. Для данного дескриптора проекция схожа с проекцией для дескриптора HIST3D. Но разделение классов ≪есть рука≫ (точки синего цвета) и ≪нет руки≫ (точки красного цвета), а также подразделение классов на локальные группы выражено сильнее.
Рисунок 14 – Иллюстрация ROC-кривой для дескриптора HISTHS
Рисунок 15 – Результат визуализации методом t-SNE для дескриптора HISTHS
Дескриптор LBP показал точность классификации 81,96 % на тестовой выборке. Посмотрев на ROC-кривую (рисунок 16), можно увидеть, что кривая расположена очень близко к левому углу, даже ближе чем у HOG дескриптора, а значит у модели на основе этого дескриптора очень хорошая предсказательная способность. На рисунке 17 представлена проекция векторов из многомерного пространства в двумерное. Эта проекция отражает разделимость классов. Для дескриптора LBP хорошо выражен класс ≪есть рука≫ (точки синего цвета), который отделен от класса ≪нет руки≫ (точки красного цвета).
Рисунок 16 – Иллюстрация ROC-кривой для дескриптора LBP
Рисунок 17 – Результат визуализации методом t-SNE для дескриптора LBP
Дескриптор BRIEF показал точность классификации кисти руки 62,3 %. Посмотрев на ROC-кривую (рисунок 18), можно увидеть, что кривая расположена по диагонали и имеет хорошо выраженный изгиб. Модель на основе этого дескриптора будет менее эффективна чем HOG или LBP, но даст лучшие результаты чем дескрипторы, основанные на гистограммах. На рисунке 19 представлена проекция векторов из многомерного пространства в двумерное. Эта проекция отражает разделимость классов. Для дескриптора BRIEF класс ≪есть рука≫ (точки синего цвета) и класс ≪нет руки≫ (точки красного цвета) не имеют кучности, по сравнению с результатами, рассмотренными ранее. Так же на визуализации отсутствует ясно выраженное разделение на 2 класса как в предыдущих результатах, но благодаря отсутствии явно выраженного деления на локальные группы точность классификации составляет 62,3 %.
Рисунок 18 – Иллюстрация ROC-кривой для дескриптора BRIEF
Рисунок 19 – Результат визуализации методом t-SNE для дескриптора BRIEF
Дескриптор RANDOM показал точность классификации кисти руки 45,9 %. Посмотрев на ROC-кривую (рисунок 20), можно увидеть, что кривая расположена ровно по диагонали. Такой дескриптор не пригоден для применения. Это не удивительно, ведь он был сформирован случайным образом. На рисунке 21 представлена проекция векторов из многомерного пространства в двумерное. Эта проекция отражает разделимость классов. Для данного дескриптора проекции векторов обоих классов находятся вперемешку и не имеет разделения.
Рисунок 20 – Иллюстрация ROC-кривой для дескриптора RANDOM
Рисунок 21 – Результат визуализации методом t-SNE для дескриптора RANDOM
Дескриптор Haralick показал точность классификации кисти руки 65,57 %. Посмотрев на ROC-кривую (рисунок 22), можно увидеть, что кривая расположена довольно близко к левому углу, но не так близко, как у HOG или LBP дескриптора. Исходя из ROC-кривой модель на основе этого дескриптора имеет неплохую предсказательную способность т.к. кривая расположена близко к верхнему левому углу. На рисунке 23 представлена проекция векторов из многомерного пространства в двумерное. Эта проекция отражает разделимость классов. Для дескриптора Haralick видна хорошая разделимость классов. Но из-за большого деления на локальные группы точность классификации ниже чем у HOG и LBP.
Рисунок 22 – Иллюстрация ROC-кривой для дескриптора Haralick
Рисунок 23 – Результат визуализации методом t-SNE для дескриптора Haralick
В таблице 2 содержится информация сколько раз система приняла верное и сколько раз неверное решение при использовании дескриптора для классификации
Таблица 2 – Таблица сопряжённости алгоритма классификации
Из таблицы, представленной выше, видно, что что для задачи распознавания кистей рук лучше всего подходят два дескриптора: LBP и HOG. Самый низкий положительный ответ классификатора дали дескрипторы на основе анализа двухмерной (HISTHS) и трехмерной гистограммы (HIST3D). Это вызвано тем, что в тренировочной базе изображений имеется неоднородный фон, который учитывается более детально чем в других дескрипторах. Дескриптор Haralick и BRIEF применим для данной задачи, но имеет меньшую точность классификации кисти руки чем HOG и LBP в условиях поставленного эксперимента.
ЗАКЛЮЧЕНИЕ
Обзор наиболее подходящих дескрипторов и способов их формирования показал, что важными характеристиками изображений кистей рук является информация о цвете и локальных геометрических особенностях. Исходя из этого для задачи распознавания кистей рук выбраны популярные дескрипторы, учитывающие данные виды информации. Не вошедшие в этот список дескрипторы SIFT, SURF, DAISY являются дескриптором локальной окрестности особой точки и не подходят для задачи, рассматривающийся в выпускной квалификационной работе. Подходящий дескриптор должен представлять собой описание некоторой прямоугольной области изображения. Дескриптор GLOH используется в задачах поиска по базам изображений, имеет большую размерность и не предназначен для описания небольших областей изображения.
Была выполнена задача по реализации следующих дескрипторов:
- HOG.
- Haralick.
- Дескриптор на основе двумерной гистограммы изображения по каналам ≪цветовой тон≫ и ≪насыщенность≫ для цветового пространства HSV (hue, saturation, value).
- Дескриптор на основе трехмерной гистограммы изображения в цветовом пространстве RGB.
- LBP
- BRIEF
Было проведено сравнение на базе изображений кистей рук ≪Static Hand Posture Database≫, описанных в работе [26]. Для обучения машины опорных векторов используется обучающая выборка, состоящая из 487 положительных примеров (содержащих кисть руки) и 487 отрицательных примеров (не содержащих изображения кисти руки). Исследование эффективности классификатора производится на тестовой выборке, отличной от выборки на которой производилось обучение. Тестовая выборка содержит 61 изображение с кистями рук и около 700 изображений без кистей рук.
В результате исследования было установлено что для задачи распознавания кистей рук лучше всего подходят два дескриптора: LBP и HOG. Самый низкий положительный ответ классификатора дали дескрипторы на основе анализа двухмерной (HISTHS) и трехмерной гистограммы (HIST3D). Это вызвано тем, что в тренировочной базе изображений имеется неоднородный фон, который учитывается более детально чем в других дескрипторах. Так же было установлено что дескриптор Haralick и BRIEF применим для данной задачи, но имеет меньшую точность классификации кисти руки чем HOG и LBP в условиях поставленного эксперимента.
Таким образом, была достигнута цель научно-исследовательской работы - исследование имеющихся способов формирования дескрипторов наиболее подходящих для распознавания кистей рук на изображениях.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Pawlak, Z. Theoretical aspects of reasoning about data / Z. Pawlak // Springer Science & Business Media, – 2012. – Т. 9.
2. Horn, B. Determing Optical Flow / B. Schunk, B. Horn // MIT Artificial Intelligence Laboratory, – №572. – 1980.
3. Michalski, R. S. Machine learning: An artificial intelligence approach / R. S. Michalski, J. G. Carbonell, T. M. Mitchell // Springer Science & Business Media, – №572. – 2013.
4. Mitchell, T. M. Machine learning / T. M. Mitchell, // Boston et al. – 1997.
5. Quinlan, J. R. C4.5: Programs for Machine Learning / J. R. Quinlan, // Morgan Kaufmann Publishers, San Mateo. Elsevier, 2014.
6. Shi, J. Good features to track / J. Shi, C. Tomasi ; IEEE, 1994. – pp. 593-600.
7. Kalal, Z. Forward-backward error: automatic detection of tracking failures / Z. Kalal, J. Matas, K. Mikolajczyk ; ICPR’10, 2010. – pp. 2756-2759.
8. Choudhury, T. Face Recognition for Smart Environments / T. Choudhury, A. Pentland // IEEE Computer Vision. – 2000. – pp. 50-55.
9. Dalal, N. Histograms of oriented gradients for human detection / N. Dalal, B. Triggs ; IEEE Computer Society Conference on Computer Vision and Pattern Recognition, IEEE. 2005. V. 1. P.886-893.
10. OpenCV 2.4.13.0 documentation // Histogram calculation URL: http://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/histogram_calculation/histogram_
calculation.html (дата обращения 2.04.16).
11. Ojala, T. Comparative Study of Tex-ture Measures with Classification Based on Feature Distributions / T. Ojala, M. Pietikainen, D. Harwood // Pattern Recog-nition. 1996 vol. 29, pp. 51-59.
12. Alpaslan, F. Machine Learn-ing and Robot Perception / F. Alpaslan, B. Apolloni, A. Ghosh, L. C. Jain, S. Patnaik // Springer, 2005.
13. Haralick, R. M. Textural Features for Image Classification / R. M. Haralick // IEEE Transactions on Systems, Man and Cybernetics. Vol. SMC-3, No. 6, Nov. 1973, pp. 610-621.
14. Scikit-image // Материал из Википедии – свободной энциклопедии. URL: https://en.wikipedia.org/wiki/Scikit-image (дата обращений 18.05.16).
15. Maaten, L. J. Visualizing High-Dimensional Data Using t-SNE / L. J. Maaten, G.E. Hinton // Journal of Machine Learning Research 9(Nov):2579-2605, 2008.
16. Hinton, G. E. Stochastic Neighbor Embedding / G.E. Hinton, S.T. Roweis // In Ad-vances in Neural Information. Processing Systems, volume 15, pages 833–840, Cambridge, MA, USA, 2002. The MIT Press.
17. Yang, Z. Ai H. Demographic classification with local binary patterns. Advances in Biometrics / Z. Yang. // Springer Berlin Heidelberg, 2007. – С. 464-473.
18. Scikit-image image processing in python // Module feature. URL: http://scikitimage. org/docs/dev/api/skimage.feature.html (дата обращения 28.04.16).
19. Ojala, T. Multiresolution gray scale and rota-tion invariant texture analysis with local binary patterns / T. Ojala, M. Pietikainen, T. Maenpaa // IEEE Transactions on Pattern Analysis and Machine Intelligence, 24(7):971–987, 2002.
20. Rekhil, M. K. Survey of Image Feature De-scriptors / M. K. Rekhil, K. A. Sreekumar // International, Journal of Computer Science and Information Technolo-gies, Vol. 5(6), 2014.
21. Miyamoto, E. Fast Calculation of Haralick Texture Features / E. Miyamoto, T. Merryman // Technical Report, Carnegie Mellon University. − 2005.
22. Pham, T. A. Optimization of texture feature extraction algorithm / T. A. Pham // TU Delft, Delft University of Technology, − 2010.
23. Scikit-image image processing in python // Module feature. URL: http://scikitimage. org/docs/dev/api/skimage.feature.html (дата обращения 28.04.16).
24. Электронный научный журнал // Современные проблемы науки и образования. URL: http://www.science-education.ru/ru/article/view?id=17344 (дата обращения 29.05.16).
25. Marcel, S. Hand posture recognition in a body-face centered space. Gesture-Based Communication in Human-Computer Interaction / S. Marcel O. Bernier // Springer Berlin Heidelberg, − 1999. – С. 97-100.
26. Sebastien Marcel - Hand Posture and Gesture Datasets // Страница посвящённая исследованиям S. Marcel. URL: http://www.idiap.ch/resource/gestures/ (дата обращения 30.04.16).
27. Кремер, Н. Ш. Теория вероятностей и математическая статистика / Н. Ш. Кремер // М.: ЮНИТИ-ДАНА, 2004.
28. Hsu, H. P. Theory and Problems of Probability, Random Variables, and Random Processes / H. P. Hsu // Schaum’s Outline Series. – 1997.
ПРИЛОЖЕНИЕ А
Исходный код программы
Листинг А.1 – Подключаемые библиотеки
Листинг А.2 –Загрузка библиотек изображений
Листинг А.3 – Функция «Реализация дескриптора HOG»
Листинг А.4 – Функция «Реализация дескриптора HIST3D»
Листинг А.5 – Функция «Реализация дескриптора Random»
Листинг А.6 – Функция «Реализация дескриптора HISTSH»
Листинг А.7 – Функция «Реализация дескриптора Haralick»
Листинг А.8 – Функция «Реализация дескриптора LBP»
Листинг А.9 – Функция «Реализация дескриптора BRIEF»
Паук
Новогодняя задача на смекалку. Что подарил Дед Мороз?
Две снежинки
Ёжикина Радость
Пейзаж