Захват макро и микро геометрии с использованием функций изображения

Я извлекаю особенности изображения для идентификации текстуры. Я хочу извлечь функции изображения из 2D image, Эти функции должны захватывать micro так же как macro geometry изображения. Я попытался найти какой-то алгоритм, который может дать мне вышеуказанный результат. Я старался SIFT но он только захватывает детали макро геометрии, формы и деталей ребер. С другой стороны, я пробовал разные версии LBP (например, CS-LBP, LNBP и т. Д.), Но они могут фиксировать только различия в пикселях, а не общую схему вещей. Другой метод, который я попробовал, использовал GLCM с различными значениями расстояния и ориентации. Но все же существует проблема, заключающаяся в том, что полученная гистограмма слишком велика и время, затраченное на сравнение, слишком велико. Кроме того, результаты тоже не очень хорошие. Уровень классификации с SVM был только 48%. Может ли кто-нибудь помочь мне найти общий алгоритм, который может фиксировать различия в уровне пикселей, а также общий шаблон текстуры.

1 ответ

Решение

Зачем вам нужен общий алгоритм? У тебя есть:

  1. локальные непараметрические характеристики (например, LBP) для захвата микро
  2. макро-функции (например, детекторы углов, просеивание)
  3. статистика общей инвариантной геометрии (например, гистограммы, преобразования Фурье и т. д.)

Просто рассчитайте все объекты, объедините их в один вектор, и этот вектор - результат, который вы хотели. Вам не нужен ни один умный алгоритм. Ключом к успеху является сочетание (объединение) многих "простых" алгоритмов.

Если у вас проблемы со скоростью (у вас слишком длинный вектор функций), попробуйте использовать PCA перед SVM. Это уменьшит размер вашего вектора таким образом, что вы потеряете "минимальное количество информации". PCA может легко уменьшить длину вектора в 10 раз. Время работы PCA относительно быстрое (просто умножение на 2D матрицу).

Если у вас все еще низкий уровень распознавания, даже если вы уверены, что использовали хорошие функции, попробуйте ITML. ITML используется после PCA, и это также умножение на 2D матрицу. ITML - это способ "нормализовать влияние каждой функции и устранить влияние очень большого или очень малого диапазона значений функции".

Обычно, если вы используете хорошие функции, запускаете PCA, ITML и SVM - вы должны получить хорошие результаты даже в сложных задачах компьютерного зрения

Другие вопросы по тегам