Почему DLIB вычисляет квадратный корень унифицированного дескриптора LBP?
Я использую библиотеку dlib для извлечения униформы LBP из заданного изображения. Я использую следующую функцию ( http://dlib.net/dlib/image_transforms/lbp_abstract.h.html), но я не совсем понимаю, какова функция третьего параметра (cell_size
). В документации говорится следующее:
Мы возьмем квадратный корень всех элементов гистограммы. То есть,
#feats[i]
квадратный корень из числа LBP, которые появились в соответствующем окне.
Я не знаю когда говорит#feats[i]
квадратный корень из числа LBPs. Что реферирует? Если кто-нибудь может мне помочь, я был бы благодарен... Спасибо!
2 ответа
Смотрите описание LBP на https://en.wikipedia.org/wiki/Local_binary_patterns.
На самом деле вы делите изображение на квадратные ячейки и строите гистограмму из 59 элементов для каждой ячейки, сравнивая каждую точку в ячейке с ее соседями. Третий параметр (cell_size) определяет размер этих ячеек. Затем гистогамы из всех ячеек объединяются в длинный 59*(количество ячеек) результирующий вектор std::vector& feats.
Широко признано, что использование ядра с квадратным корнем (Хеллингера) вместо стандартного евклидова расстояния для измерения сходства распределений признаков повышает точность классификации.
Для двух гистограмм LBP
а также
их расстояние Хеллингера определяется как:
Классификатор ядра Хеллингера можно реализовать простым способом, используя квадратный корень гистограммы LBP в качестве векторов признаков, а евклидово расстояние в качестве меры диссимилиарности. Вот почему количество LBP в квадратном корне указано в ссылочном коде.