Альтернативные решения для ASIFT и SIFT?

В настоящее время я работаю над сравнением объектов под разными углами для обнаружения изображений. В основном, я хочу знать, похож ли объект из изображения 1 на объект из изображения 2 (% сходства будет большим).

Изображение1:

Черное стекло в углу 1

Image2:

Черное стекло под углом 2

Я уже посмотрел в Интернете, и кажется, что ASIFT ( LINK) является отличным решением. Однако, когда я реализую их демонстрацию и повторно запускаю демонстрацию несколько раз с одними и теми же входами, ASIFT выдает разные результаты для совпадающих вершин.

Почему ASIFT выдает разные результаты каждый раз, когда я запускаю демонстрацию с теми же входами?

PS:
Будут также оценены некоторые комментарии относительно альтернативных решений, таких как ASIFT или SIFT, для сравнения объектов под другим углом (с более последовательным результатом).

3 ответа

Решение

Это не проблема ASIFT или лучше ASIFT. По сути, ASIFT решает проблему "широкого базового стерео" - находить соответствия и геометрические преобразования между различными видами одного и того же объекта или сцены.

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

Например, взгляните на статью "Нейронные коды для поиска изображений" - http://arxiv.org/abs/1404.1777

PS Если вам все еще нужны переписки и вы дали нам разные очки по ошибке, вы можете попробовать MODS http://cmp.felk.cvut.cz/wbs/index.html Отличия от ASIFT в том, что он может обрабатывать гораздо большие разности углов, более стабильные и намного быстрее.

Вы можете попробовать SURF, который уже реализован в OpenCV.

Вы можете также взглянуть на vlFeat, который находится в C, и иметь привязки Matlab.

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

Тем не менее, я бы искал другой подход. Вот некоторые подходы высокого уровня, которые приходят мне в голову:

  • Цвет очень характерен в этом случае. Если у вас есть две точные модели разного цвета, вы можете легко сказать, что они не одинаковы. Таким образом, вы можете получить цветную гистограмму (игнорируя фон) и сравнить их.
  • Еще одной очень характерной особенностью очков является форма оправы вокруг объектива. Согласно вашим изображениям, я ожидаю, что этот кадр будет виден всегда. Таким образом, вы можете найти прямоугольник, который охватывает объектив, найти гомографию между двумя изображениями, деформировать прямоугольник и сравнить, например, по взаимной корреляции.
Другие вопросы по тегам