Хороший показатель для качественного сравнения изображений

11

Я пытаюсь «сопоставить» маленькие квадратные пятна на изображении. На первый взгляд кажется разумным просто провести евклидово сравнение стилей расстояний двух из этих массивов, чтобы получить меру «сходства». Во многих случаях это работает нормально («лучший» патч (минимальное значение) в соответствии с этим показателем очень похож на патч запроса). Однако во многих случаях это приводит к очень плохому совпадению. Например, возьмите эти две пары патчей:

Два пятна кирпичной стены, оценка 134 (это сумма компонентов средней абсолютной разности пикселей):

Исходный патч Целевой патч

Один участок кирпичной стены, один участок травы, оценка 123!

https://i.stack.imgur.com/d7lBZ.png https://i.stack.imgur.com/d2TBE.png

Для человека «ясно» трава не соответствует кирпичу, но этот показатель говорит об обратном. Проблема только в локальной статистической вариации.

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

Есть ли метрика, которая каким-то образом объединяет обе эти идеи в разумное значение, которое будет оцениваться как «похожее» для пары 1 выше, но также не будет схожим для моего примера патча и его вертикального зеркала?

Любые предложения приветствуются!

Дэвид Дориа
источник
1
Принимая сумму компонентов, вы теряете всю «пространственную» информацию в цветовом пространстве. Оцените компоненты по отдельности, например, вычислите евклидово расстояние по двум векторам?
Geerten

Ответы:

2

Основная идея заключается в следующем: в информации о цвете нет ничего плохого - ее просто недостаточно. Так что лучше всего объединить несколько наборов функций.

Вы можете попробовать несколько функций, чтобы устранить эту неоднозначность. Что касается набора функций, вы можете использовать следующее:

  1. Цвет (что-то вроде доминирующего цвета MPEG7) ИЛИ Color Historgram
  2. Текстура (либо в форме ответа банка фильтров), либо
  3. Краевые гистограммы

В качестве основного сравнения, я хотел бы сначала провести различие между чистым кирпичным пятном и чистым травяным пятном. Для этого цвет, безусловно, является наиболее потенциальным элементом.

Объединение функций, чтобы сделать более надежную классификацию

Я бы использовал доминирующий цвет (использует, но не единственный) или ключевой цвет и сформировал бы кластеры. Посмотрите, где лежат головки кластера;

Если заголовки кластера находятся в ожидаемых областях, класс обычно легко обнаружить, если они попадают в серую область, то класс принадлежит там. Если он попадает в серую область, требуется другая функция.

Таким же образом, вы можете независимо классифицировать, используя матрицу текстур, а затем объединить обе оценки, чтобы результаты имели смысл.

Работа с пространственными проблемами

В частности, когда вы понимаете, что в пластырях могут быть части, наполовину кирпичи и пол травы. Я думаю, что вам не нужно больше дополнительных функций или другой матрицы. Это может быть обработано двумя способами.

1. Держите патч для нескольких участников как разные классы. Например, кроме birck-onlyкласса и grass-onlyкласса, вы также можете иметь half-brick-half-grass-verticalи half-brick-half-grass-horizontalвсего четыре класса. Это можно легко классифицировать с помощью метода кластеризации, который мы обсуждали ранее.

2. Добавьте мультимасштабную классификацию. Например, если патч находится в серой области, вы можете разделить патч на две части, то есть слева и справа. Точно так же вы можете разделить верх и низ. Теперь вы можете применить идентичную классификацию для этой «половины». В идеале перечисленная выше функция должна позволить вам сделать ее масштабируемой, чтобы сравнивать сходство признаков между полной частью (например, доминирующий цвет может быть одинаковым независимо от размера), или вам может потребоваться изменить его размер.

Добавление большего количества классов (как в части 1) или нескольких уровней (как в части 2) будет простым; верхний предел будет обусловлен двумя факторами - либо любое дополнительное деление больше не будет добавлять никакой ценности к классификации, либо чрезмерный шум будет эффективно вносить неоднозначность в классификацию. Это где вы остановитесь.

Дипан Мехта
источник
2

Для начала, двух изображений и трех измерений недостаточно, чтобы установить статистическую модель любого типа, которая в терминах может использоваться для определения оптимальной метрики сравнения.

Я думаю, вы могли бы начать смотреть на документы по распознаванию текстур для методов и подсказок. Это активное поле.

Что бы это ни стоило, я выполнил несколько тестов перцептивных хеш-функций (на основе DCT и случайной проекции) и провел небольшое испытание с так называемым дескриптором SIFT. Эти функции могут разделять расстояния между классами и между классами, хотя из 3-х изображений невозможно что-либо сделать.

Код на github .

Maurits
источник