Лучший сопоставитель функций для изображений радужной оболочки

Я хочу написать код для распознавания радужной оболочки глаза. У меня уже были изображения радужной оболочки, нормализованные к декартовым координатам. Я пытался сопоставить эти фотографии, используя фильтр Габора и расстояние Хэмминга, но безуспешно.

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

Я использую Java-версию openCV


person Araneo    schedule 07.12.2014    source источник
comment
не могли бы вы рассказать более подробно о конвейере, который вы там использовали? использование функций Габора имеет большой смысл, но расстояние Хэмминга - нет (если вы что-то не упустите)   -  person berak    schedule 07.12.2014
comment
@berak, я обнаруживаю радужку на изображении глаза, вырезаю ее, преобразовываю в прямоугольную форму. Затем я использую функцию getGaborKernel, сворачиваю ее с изображением радужной оболочки и помещаю в db. Я взял следующее изображение, сделал то же самое и вычислил расстояние Хэмминга между входным изображением и изображениями в db. Спасибо за ответ, но мой вопрос немного другой. Если какой-либо из сопоставителей в openCV управляет моей задачей?   -  person Araneo    schedule 07.12.2014


Ответы (1)


Извлечение функций и сопоставление с помощью!

Проблема в типичном приложении распознавания. Чтобы успешно сопоставить два изображения, вы должны найти некоторые отличные или уникальные свойства, которые помогут вам найти то, что вы ищете. Они называются «Функциями» в средах распознавания образов/обработки изображений. Однако это не так просто, как есть. В OpenCV уже реализовано множество методов извлечения признаков (SIFT, SURF, ORB и т. д.).

Особенности SIFT Iris

В случае распознавания радужной оболочки вам потребуются инвариантные к масштабу, освещенности и вращению функции. Возможности SIFT будут лучшими кандидатами для этой работы. Поэтому извлекайте SIFT-функции изображений радужной оболочки и сохраняйте их в базе данных. В OpenCV также есть средства сопоставления функций, flaNN — одно из них.

Соответствие SIFT

OpeCV
SIFT: http://docs.opencv.org/3.1.0/da/df5/tutorial_py_sift_intro.html#gsc.tab=0
FLANN:< /em> http://docs.opencv.org/2.4/doc/tutorials/features2d/feature_flann_matcher/feature_flann_matcher.html

person Ockhius    schedule 28.05.2016
comment
Именно такого ответа я и ожидал, спасибо. К сожалению, вопрос был задан более года назад, и я должен закончить свою работу раньше. Тем не менее, большое спасибо :) Может быть, когда-нибудь я попробую ваши советы - person Araneo; 29.05.2016