Перейти к содержимому
Compvision.ru
Dead Veritas

Использование FlaNN (Fast Library for Approximate Nearest Neighbors) для приблизительного поиска похожих изображений в базе данных

Recommended Posts

Здравствуйте.

Есть картинка например.

ujb9r6f4.jpg

Есть эталони изображения

6b8r5lnt.png vnpdfc2d.png v3rpnxyg.png.

Нужно проверить какие из эталонов являютса на этом изображении.

Сможет ли FLANN справится с этой задачей?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нужна-ли здесь нейронная сеть, не знаю. Может вполне хватит cvMatchTemplate?

Если использовать нейросеть (или другой классификатор), то нужно подготовить входные данные, это более важно, чем сам выбор классификатора. Можно взять в качестве обучающей пары, например, дескрипторы (Surf или Sift) и номер образца. По этим данным обучить классификатор, нейросеть, SVN, деревья, или каскады.

ЗЫ: FLANN хорошая библиотека. Многое зависит от архитектуры сети которую Вы составите и настроек этой сети.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нужна-ли здесь нейронная сеть, не знаю. Может вполне хватит cvMatchTemplate?

Если использовать нейросеть (или другой классификатор), то нужно подготовить входные данные, это более важно, чем сам выбор классификатора. Можно взять в качестве обучающей пары, например, дескрипторы (Surf или Sift) и номер образца. По этим данным обучить классификатор, нейросеть, SVN, деревья, или каскады.

ЗЫ: FLANN хорошая библиотека. Многое зависит от архитектуры сети которую Вы составите и настроек этой сети.

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

вопрос справится ли FLANN с задачей быстрого поиска в базе подобных объектов как на входном фото?

Может ли FLANN найти координати шаблона на фото?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

http://opencv.itseez.com/trunk/doc/tutorials/features2d/feature_flann_matcher/feature_flann_matcher.html#feature-flann-matcher

хотя тут по другому делают

http://stackoverflow.com/questions/5695034/how-to-use-flann-based-matcher-or-generally-flann-in-opencv

помоему там на всех точках(много объектов) каким то образом строится рэндомное дерево, а сравнивается все равно объект-объект.

т.е. по сути это просто ускоряет работу матчинга, но не дает 100% результат.(но наверняка дает хороший близкий к этому).

хотя могу ошибаться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Перепутал с FANN.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

так как он все таки работает применительно к точкам?

судя по этой статье это просто метод кластеризации, т.е. один объект относится к какому то классу. а с точками мы имеет большой набор не разделенных на классы точек и нам надо матчить их с маленьким набором точек(объектом).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

хотя тут походу путаница

Fast Approximate Nearest Neighbor Search

и

K-Nearest Neighborhood

или это одно и то же.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

http://people.cs.ubc.ca/~mariusm/uploads/FLANN/flann_visapp09.pdf

The feature points are detected with SURF detectors and represented in SURF-128 descriptors. The program by default set up 4 Randomized KDTrees and search for 2-nearest-neighbors. The matched key-point is only counted when the second of the nearest-neighbors is doubly farther than the first.

The 'naive' NN search simply do the search linearly of each object key-point (~593) from the image key-points (782). It does however, keep track of the nearest 2 neighbors and made sure the nearest is indeed dominant before being accepted. The 'naive' distance is simply a sum of squared- differences between the SURF descriptor tuples.

ну примерно понял о чем идет речь.

Fast Approximate Nearest Neighbor Search

и

K-Nearest Neighborhood

все таки разные вещи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×