Классификация детекторов, экстракторов и дозаторов
Я новичок в opencv и пытаюсь реализовать сопоставление изображений между двумя изображениями. Для этой цели я пытаюсь понять разницу между дескрипторами функций, экстракторами дескрипторов и сопоставителями дескрипторов. Я наткнулся на много терминов и попытался прочитать о них на веб-сайте документации opencv, но я просто не могу обернуть голову вокруг концепций. Я понял основную разницу здесь. Разница между обнаружением объектов и дескриптором Извлечение
но при изучении темы я наткнулся на следующие термины:
БЫСТРО, GFTT, ПРОСЕЯТЬ, СЕРФИНГ, МСЭР, ЗВЕЗДА, ШАР, БОЙКАЯ, УРОД, ЭТОЙ
Я понимаю, как быстро, просеивать, серфинг работать, но не могу понять, какие из них являются только детекторами, а какие экстракторы.
тогда есть matchers.
Фланнбас, BruteForce, knnMatch и, вероятно, некоторые другие.
после некоторого чтения я понял, что некоторые matchers могут использоваться только с определенными экстракторами, как описано здесь. Каким образом характеристика использованием OpenCV работы детектора ОРБ? Приведенная классификация довольно ясна, но это только для нескольких экстракторов, и я не понимаю разницы между float и uchar.
Так, в принципе, может кто-то пожалуйста
- классифицируйте типы детекторов, экстракторов и дозаторов на основе float и uchar, как или какой-то другой тип классификации?
- объясните разницу между классификацией float и uchar или в зависимости от того, какая классификация используется?
- упомяните, как инициализировать (кодировать) различные типы детекторов, экстракторов и матчеров?
Я знаю, что прошу много, но я буду очень благодарен. Спасибо.
1 ответ:
Я понимаю, как быстро, просеять, серфинг работы, но не могу понять, какие из вышеперечисленных являются только детекторами, а какие-экстракторами.
в основном, из этого списка детекторов/экстракторов функций (ссылка на статьи:быстро,GFTT,просеять,SURF, MSER,звезда,шар,Бойко,урод, этой), некоторые из них являются только особенностью детекторов (БЫСТРО, GFTT) другие и детекторы характеристики и экстракторы дескриптора (ПРОСЕЯТЬ, ПРИБОЙ, ШАР, УРОД).
если я правильно помню, этой это только дескриптор экстрактор, поэтому он нуждается в функции, обнаруженные с помощью некоторых других алгоритмов, таких как FAST или ORB.
чтобы быть уверенным, что есть что, вам нужно либо просмотреть статью, связанную с алгоритмом, либо просмотреть opencv документация, чтобы увидеть, что было реализовано для
FeatureDetector
класс или который был дляDescriptorExtractor
класса.Q1: классифицируйте типы детекторов, экстракторов и дозаторов на основе поплавок и Учар, как уже упоминалось, или какой-то другой тип классификации?
Q2: объясните разницу между поплавком и классификацией uchar или какая классификация используется?
о вопросы 1 и 2, чтобы классифицировать им как поплавок и Учар, то ссылка уже размещена это лучшая ссылка, которую я знаю, может быть, кто-то сможет ее завершить.
Q3: укажите, как инициализировать (код) различные типы детекторов, экстракторы и дозаторы?
ответ Вопрос 3, OpenCV сделал код для использования различных типов совершенно одинаковым-в основном вам нужно выбрать один детектор функций. Большая разница в выборе типа matcher и вы уже упомянули 3 из них, которые есть у OpenCV. Ваш лучший выбор здесь, чтобы прочитать документацию, примеры кода, и связанные вопросы переполнения стека. Кроме того, некоторые сообщения в блоге являются отличным источником информации, как эти серия тестов детектора функций от Ievgen Khvedchenia (блог больше не доступен, поэтому мне пришлось создать необработанную текстовую копию из своего кэша google).
Matchers используются, чтобы определить, является ли дескриптор похож на другой дескриптор из списка. Вы можете либо сравнить свой дескриптор запроса со всеми другими дескрипторами из списка (брутфорс) или вы используете лучшую эвристику (FlannBased, knnMatch). Проблема в том, что эвристика не работает для всех типов дескрипторов. Например, FlannBased реализации, используемые для работы только с
float
дескрипторов, но не сuchar
' s (но начиная с 2.4.0, Фланнбас с индексом LSH может быть применен к uchar дескрипторы.)цитирую это приложение-Solut сообщение в блоге о
DescriptorMatcher
типа:DescriptorMatcher приходит в разнообразия " FlannBased", "BruteForceMatcher", "BruteForce-L1"и" BruteForce-HammingLUT". Этот "FlannBased" matcher использует flann (быстрая библиотека для приблизительного ближайшие соседи) библиотека под капотом, чтобы выполнить быстрее, но приблизительное совпадение. "Брутфорс -*" версии исчерпывающе поиск словарь найти ближайший матч для элемента изображения в слово в словаре.
некоторые из наиболее популярных комбинаций являются:
функция детекторы / декриптор экстракторы / Matchers типы
(FAST, SURF) / SURF / FlannBased
(FAST, SIFT) / SIFT / FlannBased
(FAST, ORB) / ORB / Брутфорс
(FAST, ORB) / BRIEF / Bruteforce
(FAST, SURF) / FREAK / Bruteforce
возможно, вы также заметили, что есть несколько адаптеры (динамические, пирамидные, сетки) функции детекторов. приложение-Solut сообщение в блоге суммирует действительно красиво их использование:
(...) и есть также несколько адаптеров, которые можно использовать для изменения поведение из ключевых точек детекторов. Например,
Dynamic
адаптер, который регулирует порог обнаружения конкретного типа детектора пока не будет найдено достаточно ключевых точек на изображении илиPyramid
адаптер который строит гауссову пирамиду для обнаружения точек на нескольких весы. ЭлементPyramid
адаптер полезен для дескрипторов функций, которые не являются масштабно-инвариантными.читайте далее:
это сообщение в блоге ю Лу делает очень хорошее суммарное описание на SIFT, FAST, SURF, BRIEF, ORB, BRISK и FREAK.
эти серия постов Гила Леви также сделайте подробные резюме для нескольких из этих алгоритмов (BRIEF, ORB, BRISK и FREAK).