2013-06-20 5 views
6

фон:Что такое хороший показатель для сравнения вектор-функций и как нормализовать их перед сравнением?

Я работаю над снизу вверх подход к сегментации изображений, где в I первого по-сегмент изображения в маленькую-области/супер-пиксели/супер-воксели, а затем я хочу итеративно объединить прилегание по сегментированным регионам на основе некоторого критерия. Один критерий, с которым я играл, - это измерить, насколько похожи по внешнему виду два региона. Чтобы количественно определить внешний вид региона, я использую несколько измерений - статистику интенсивности, особенности текстуры и т. Д. Я разбиваю все функции, которые я вычисляю для региона, в длинный вектор признаков.

Вопрос:

Указанных два смежные чрезмерно Географические области R1 и R2, пусть F1 и F2 соответствующие векторы особенности. Я задаю следующие вопросы:

- Каковы хорошие показатели для количественной оценки сходства между F1 и F2?

- Как лучше нормализовать F1 и F2, прежде чем количественно определить их сходство с метрикой? (С использованием любого контролируемого подхода к нормализации не представляется возможным, потому что я не хочу, чтобы мой алгоритм быть привязанными к одному набору изображений)

решения в моей голове:

похожести (R1, R2) = dot_product (F1/norm (F1), F2/norm (F2))

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

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

ответ

0

Просто хочу указать, что вам действительно не нужно создавать единичные векторы с F1 или F2, прежде чем вычислять сходство косинусов (это точечный продукт). Это связано с тем, что F1/norm (F1) будет явно делать каждый единичный вектор для сравнения направлений.

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

Я сам несколько раз спорил о том, какой из них лучше выбрать, евклида или косинуса. Обратите внимание, что контекст использования метрики субъективен. Если в евклидовом пространстве вы просто хотите измерить, если две точки выровнены вместе, косинус-мера имеет смысл. Если вам нужна явная метрика расстояния, лучше евклидова.

+0

Возможно, вы имели ввиду euclidean/manhattan после того, как сделали их единичными векторами? Если нет, то это не очень хорошая мера, если она не нормализована. Чтобы привести пример, возьмите две пары смежных областей (R1, R2) и (R3, R4). Теперь представьте себе (R1, R2), который должен быть расположен в месте изображения, где освещенность темная, и (R3, R4) расположены там, где освещение относительно яркое и принимает неравномерное освещение. Также представьте (R1, R3), чтобы иметь ту же текстуру и (R2, R4), чтобы иметь ту же текстуру. В этом случае хорошая мера должна приводить к сходству (R1, R2) = подобие (R3, R4), и евклидово/манхаттан не может это сделать. – cdeepakroy

+0

Если вы подсчитаете сходство с косинусом, это будет идентично вашей предложенной метрике. То есть, сходство (R1, R2) = dot_product (F1/norm (F1), F2/norm (F2)) = dot_product (F1, F2)/(норма (F1) * норма (F2)) = Cosine_Similarity (R1, R2) – dan

+0

Почему я хочу вычислить единичные векторы до получения евклидова расстояния? Например. рассмотрим две точки в двумерном евклидовом пространстве: (1,1) и (5,5). Евклидово расстояние между двумя точками, как можно заметить, было бы sqrt (32). Если я преобразую каждый из них в единичный вектор, оба будут отражать одну и ту же точку. Это то, чего мы хотим? – sandyp

4

Состояние алгоритмов сегментации изображения искусства используют Условный случайных полей над суперпикселей (IMO SLIC алгоритм является лучшим вариантом). Этот тип алгоритмов фиксирует взаимосвязь между соседними суперпикселями в то же самое время, когда они классифицируют каждый суперпиксель (обычно с использованием SSVM).

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

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

Тем не менее, не многие библиотеки или программное обеспечение для работы с CRF. Самое лучшее, что вы можете найти, это this blog entry.

+0

Большое спасибо за ссылки. Конечно, есть некоторые идеи, которые я мог бы приспособить к моей проблеме. – cdeepakroy

1

Я собираю все функции, которые я вычисляю для области в длинном вектор-функции. [...]

Каковы хорошие показатели для количественной оценки сходства между F1 и F2? [...]

Как лучше всего нормализовать F1 и F2?

TL; др: использовать TF-IDF вид скоринга, как описано here (см дискретный подход, слайды 18-35).


Существует а (довольно старый) CBIR двигатель называется GIFT (a.k.a The GNU Image-Finding Tool), что именно следует такой подход, чтобы вычислить сходство между изображениями.

Что именно интересно с GIFT является то, что он применяет методы из извлечения текста права CBIR - который стал в некотором роде классического подходом (см A Text Retrieval Approach to Object Matching in Videos).

На практике ДАР извлекает большое количество локальных и глобальных цвета и текстуры низкоуровневых функций, где каждая отдельная функция (например, количество г-го цвета в гистограмме) можно рассматривать как визуального слова:

  1. глобального цвет (ВПГ цветой гистограмма): 166 бункеров = 166 визуальных слова
  2. локального цвета (цвет анализ гистограммы рекурсивно подразделить входное изображение на подобласти): 340 (субрегионы) х 166 (бины) = 56,440 визуальных слов
  3. глобальная текстура (гистограмма Габора): 3 (шкалы) x 4 (ориентации) x 10 (диапазоны) = 120 визуальных слов
  4. локальная текстура (гистограмма Габора в сетке субрегионов): 256 (субрегионы) x 120 (бит) = 30 720 визуальных слов

Таким образом, для любого входного изображения ПОДАРОК ​​может извлечь 87446 одномерный вектор характеристик F, имея в виду, что функция считается либо присутствует (с определенной частотой F[i]) или не присутствует в изображении (F[i] = 0).

Тогда трюк состоит в первом индексировании каждого изображения (здесь каждый регион) в inverted file для эффективного запроса. На втором этапе (время запроса) вы можете использовать каждый регион в качестве изображения запроса.

Во время запроса двигатель использует классическую TF-IDF скоринг:

/* Sum: sum over each visual word i of the query image 
* TFquery(i): term frequency of visual word i in the query image 
* TFcandidate(i): term frequency of visual word i in the candidate image 
* CF(i): collection frequency of visual word i in the indexed database 
*/ 
score(query, candidate) = Sum [ TFquery(i) * TFcandidate(i) * log**2(1/CF(i)) ] 

Внутренне вещи немного более сложным, так как ПОДАРОК:

  • выполняет подзапросы, фокусируясь отдельно по каждому виду низкой -уровневые функции (суб-запрос 1 = только цветная предыстория, вспомогательный запрос 2 = цветовые блоки и т. д.) и объединяет оценки,
  • включает функции обрезки для оценки только определенного процента функций.

ПОДАРОК ​​является довольно эффективным, поэтому я уверен, что вы можете найти интересные идеи, которые вы могли бы приспособить. Конечно, вы можете избежать использования инвертированного индекса, если у вас нет ограничений производительности.

+0

благодарит много за слайды и указатели --- хотя они, похоже, не применяются, как есть, я определенно нашел несколько идей, которые я мог бы приспособить к моему сценарию. – cdeepakroy