HOG: гистограмма ориентированного градиента
Функция HOG (гистограмма ориентированного градиента) представляет собой метод описания изображения для обнаружения человеческих объектов, предложенный Далалом на конференции CVPR 2005 г. Транссексуал.
принцип
- Основная идея этой функции заключается в том, что направление градиента локальной области изображения может представлять особенности края и формы области субизображения. На практике изображение делится на небольшие ячейки, и каждая ячейка вычисляет гистограмму направления градиента (или направления края). Чтобы обеспечить инвариантность освещения, гистограмму необходимо нормализовать по контрасту: сгруппировать ячейки в более крупные блоки и нормализовать все ячейки внутри блока. Нормализованные блоки называются дескрипторами HOG. Окончательный вектор признаков формируется путем объединения дескрипторов HOG всех блоков в окне обнаружения.
шаг
- Предварительная обработка изображений, такая как масштабирование, гамма-коррекция и т. д.
- Вычислите значение градиента каждого пикселя, чтобы получить карту градиента. В цифровом изображении градиент представляет собой разницу между соседними пикселями. Например, на рисунке ниже точка со значением пикселя 136 имеет вертикальный градиент 139-133=6 и горизонтальный градиент 139-134=5. , В соответствии с этим Два значения могут получить силу градиентаgи направление градиентаθ.
- Градиентные гистограммы рассчитываются в пределах каждой ячейки 8x8. Как показано на рисунке ниже, в зависимости от силы градиента в областиgи направление градиентаθГистограмма статистического градиента, делящая 180° на 9 интервалов,gВ качестве веса голосуется и подсчитывается направление градиента точек пикселей в области, и получается распределение направлений в области.
- Нормализуйте каждый блок 16x16 (т. е. скользящее окно для каждой ячейки 2x2), чтобы уменьшить влияние освещения (среднее значение пикселей) и контраста (дисперсия пикселей).
- Получите вектор признаков HOG. Каждый блок рассчитывается для получения вектора признаков с размером интервала 4 * 9 = 36. В зависимости от длины и ширины изображения вектор признаков можно интегрировать и использовать для классификации SVM или CNN.
плюсы и минусы
- При воспроизведении экранов компьютеров и другого оборудования с низким разрешением во время визуализации будут генерироваться муаровые узоры (как показано на рисунке ниже) из-за интерференционных эффектов.Муаровые узоры имеют очевидные направленные характеристики, которые можно отразить на гистограмме направлений статистики HOG.
- Подходит для высококачественных экранов/телефонов
использование
# 使用HOG方法提取图像的纹理特征.
img = cv2.imdecode(np.fromfile(img_paths[i], dtype=np.uint8), -1)
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img = cv2.resize(img, (207, 194))
# 伽玛变换
img = np.power(img, gamma).astype(np.uint8)
hog = cv2.HOGDescriptor(winSize,blockSize,blockStride,cellSize,nbins)
hist = hog.compute(img, winStride, padding).reshape((-1,))
визуализация
LBP: гистограмма локального бинарного паттерна
LBP — это простой и эффективный алгоритм выделения признаков для классификации текстур. Оператор LBP был предложен Оджалой и др. в 1996 г., основная статья - «Классификация текстур в оттенках серого с различным разрешением и инвариантность к вращению с локальными бинарными паттернами», пами, том 24, № 7, июль 2002 г. LBP — это сокращение от «локальный двоичный шаблон».
принцип
- Исходный оператор LBP определяется как в окне 3*3, с центральным пикселем окна в качестве порога, с ним сравнивается значение серого соседних 8 пикселей, если значение окружающего пикселя больше или равно значение центрального пикселя, затем пиксель. Положение точки помечается как 1 и 0 в противном случае. Таким образом, 8 точек в окрестности 3*3 можно сравнить по часовой стрелке, чтобы получить 8-битные двоичные числа (обычно преобразуемые в десятичные числа, то есть коды LBP, всего 256 типов), то есть значение LBP получается центральный пиксель окна, отражающий информацию о Текстуре для этой области.
- Улучшение: Круговой оператор LBP:
Чтобы адаптироваться к особенностям текстуры различных масштабов и соответствовать требованиям инвариантности оттенков серого и вращения, Оджала и др. улучшили оператор LBP, расширили окрестность 3 × 3 до любой окрестности и заменили квадратную окрестность круглой. домен, улучшенный оператор LBP допускает любое количество пикселей в круговой окрестности радиуса R.
Чтобы сделать вращение LBP инвариантным, двоичная строка вращается. Предполагая, что полученный в начале признак LBP равен 10010000, и вращая его по часовой стрелке, его можно преобразовать в 00001001, что соответствует минимальному значению признака LBP, так что LBP инвариантен к вращению.
- В приложении чаще всего используется статистическая гистограмма LBP в качестве вектора признаков изображения. Чтобы учесть информацию о местоположении объектов, изображение разбивается на несколько небольших областей, и в каждой небольшой области выполняется статистика гистограмм, аналогично блокам в HOG, и, наконец, гистограммы всех областей по очереди соединяются вместе как вектор признаков для принятия следующей обработки первого уровня.
плюсы и минусы
- В определенной степени устраняется проблема изменения освещенности, и она обладает вращательной инвариантностью.
- Текстурная функция имеет небольшой размер и высокую скорость расчета.
- При неравномерном изменении освещенности соотношение размеров между пикселями нарушается, а также изменяется соответствующий оператор LBP.
- Введение определения инварианта вращения делает оператор LBP более надежным. Но это также приводит к тому, что оператор LBP теряет информацию о направлении.
- Классификация ремейков лучше, чем эффект HOG
использование
from skimage.feature import local_binary_pattern
import numpy as np
import cv2
img = cv2.imdecode(np.fromfile(img_paths[i], dtype=np.uint8), -1)
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# img = cv2.resize(img, (512, 512))
img = img / 255
# 伽玛变换
img = np.power(img, gamma)
tain_imgs.append(img)
lbp = local_binary_pattern(img, n_point, radius, 'uniform')
hist = lbp.flatten()
визуализация
о нас
- Триста облаковЭто отличный независимый сторонний поставщик автоматических транзакций и финансовых услуг SaaS, основанный на искусственном интеллекте и стандартизирующий ценообразование автоматических транзакций и автоматический контроль финансовых рисков в качестве основных продуктов;
- Команда 300 Cloud AI предоставляет высокоточные услуги распознавания ИИ для отраслевых пользователей на основе ведущих в отрасли технологий машинного обучения и обширных данных автомобильной промышленности. Основные области исследований группы включают классификацию изображений, семантическую сегментацию, обнаружение целей, алгоритмы рекомендаций, обработку естественного языка и т. д. Опираясь на ключевые технологии в этой области, команда разработала классификацию транспортных средств, структурированную идентификацию различных карт и центральную консоль. Идентификация данных и другие услуги, а также дальнейшая оптимизация и улучшение в соответствии с потребностями пользователей в отрасли.
- Команда 300 Cloud AI — разноплановая команда, которая активно расширяется и движется вперед, открыты стажировки/официальные вакансии. Независимо от того, являетесь ли вы студентом, специализирующимся в области искусственного интеллекта, или опытным экспертом по алгоритмам, вы можете получить возможность продемонстрировать свои таланты здесь~
- Официальный сайт:www.sanbaiyun.com/
Отправьте свое резюме:hr@che300.com, пожалуйста, укажите от Наггетс ?