Як оцінити октаву та розмір за візуальними особливостями, розміщеними в кутах Харріса


9

В даний час я працюю і порівнюю продуктивність декількох функціональних детекторів, які надає OpenCV як основу для візуального зіставлення функцій.

Я використовую дескриптори SIFT . Я виявив задовільну відповідність (після відхилення поганих збігів) під час виявлення особливостей MSER та DoG (SIFT) .

В даний час я тестую свій код за допомогою GFTT (Good Features to Track - Harris Corners) для порівняння, а також тому, що в остаточному застосуванні набір функцій GFTT буде доступний у процесі візуального відстеження функцій.

Я використовую, cv::FeatureDetector::detect(...)що дає мені std::vector<cv::KeyPoint>заповнені виявлені функції / ключові точки / регіони, що цікавлять . Структура cv::KeyPointмістить основну інформацію про місце розташування функції, а також інформацію про sizeта octaveв якій виявлено ключову точку.

Мої перші результати з GFTT були жахливими, поки я не порівняв типові sizeта octaveпараметри в різних типах функцій:

  • MSER встановлює розмір (між 10 і 40 пікселями) і залишає октаву 0
  • DoG (SIFT) встановлює як розмір, так і октаву ( співвідношення розміру / октави між 20 і 40)
  • GFTT параметри є завжди : розмір = 3 , октава = 0

Я припускаю, що це тому, що основне призначення функцій GFTT було не використовувати для узгодження, а лише для відстеження. Це пояснює низьку якість відповідності результатів, оскільки дескриптори, витягнуті з таких крихітних особливостей, перестають бути дискримінаційними та інваріантними для багатьох речей , включаючи невеликі зсуви в 1 пікселі.

Якщо я вручну встановити sizeз GFTT до 10 - 12 , я отримую хороші результати, дуже схожі на при використанні MSER або DOG (SIFT) .

Моє запитання: чи є кращий спосіб визначити, на скільки збільшити size(і / або octave), ніж просто "йти-з-10-бачити-якщо-працює" ? Я хочу уникнути жорсткого кодування sizeзбільшення, якщо можливо, і визначити це програмно, але жорстке кодування нормально , якщо у мене є тверді аргументи, що підтверджують мій вибір нового алгоритмуsize / sizeзбільшення / sizeоцінка .


1
Привіт @ penelope: перевірте це посилання, цей хлопець вже зробив добру справу. [ Computer-vision-talks.com/2011/08/…

@Sistu ей, це виглядає як дуже хороше загальне порівняння дескрипторів у загальному випадку та з планарним об'єктом, але я працюю над певними видами зображень і мені потрібно зробити власне тестування. Крім того, питання було набагато конкретнішим, ніж "мені потрібні довідкові матеріали, які порівнюють продуктивність різних типів декрипторів". Це приємне посилання, проте перевірить це.
пенелопа

Відповіді:


4

Я не впевнений, що насправді є хороший відповідь на ваш точний питання: масштабний простір SIFT і SURF був фактично розроблений для автоматичної оцінки "хорошого" відповідного розміру сусідства навколо кутового ключового пункту (у чому полягають хороші функції відстежувати є).

Тепер більш позитивних відповідей було б:

  • створити базу даних ключових точок та хороших збігів (наприклад, використовуючи квадратні шаблони калібрування) та створити автоматизовану оцінку продуктивності для цієї бази даних, щоб знайти правильний розмір. Це завдання дійсно може бути автоматизовано (див. Роботу Миколайчика та Шміда про оцінку відповідності балів)

  • вбудовуйте свої хороші функції в піраміду зображень, щоб мати також якийсь масштаб, пов’язаний з ними. Ви можете шукати посилання на багатомасштабні точки FAST та Harris, які виконують щось подібне до цієї процедури.

Щоб евристично знайти максимальний розмір блоку, ви можете обчислити оцінки своїх зображень за допомогою розмиття поля (що більш-менш те, що робить оператор blockSize) і побачити, коли кут зникає. Однак зауважте, що більше розмитості відводить кут від справжнього місця розташування.

Якщо ви дійсно шукаєте швидке та брудне виправлення, спробуйте розміри між 5x5 та 11x11 (типові розміри, які використовуються для зіставлення стереоблоків). Якщо ви шукаєте інтелектуально задовольняючий критерій, то спробуйте максимально збільшити ймовірність відповідності двох точок функції під ваш рівень шуму.


Я шукав рішення, яке було трохи швидше і брудніше, ніж те, що ви пропонуєте. Крім того, я можу визначити, чи є відповідність погодою чи поганою лише після того, як я витягнув свої ключові точки та щось підрівняв. Навіть якщо я збігаюся з ними абсолютно випадковим чином, я отримую кілька хороших збігів - тож ваша перша пропозиція не така корисна. Щодо другої частини, більш швидкої та брудної: я знаю, що немає ідеального параметра, але, як я вже сказав, збільшення розміру до 12 допомогло - якість була порівнянна зі співставленням SIFT та MSER. У мене просто немає аргументів, щоб вибрати 12 над 100 або понад 34 ...
Пенелопа

0

Щоб допомогти вам визначити найкращі параметри для детекторів, OpenCV має для цього AjusterAdapter . Я ніколи його не використовував, але це, мабуть, стандартний спосіб програмного визначення параметрів. Також пам’ятайте, що хоча Keypoints має кілька властивостей, не всі мають сенс для всіх алгоритмів. Оскільки структура Keypoint використовується для різних алгоритмів, вона має всі ці поля, але іноді вони не використовуються, тому ви отримуєте ці октави = 0; ІМО.


Я знаю, що деякі типи функцій не є найкращим типом для певної мети, але останні роботи намагаються підходи, коли вони використовують більше 1 типу регіонів / регіонів інтересів і досягають кращих результатів за допомогою комбінації, ніж для будь-якого одного типу самостійно (я можу додати посилання на твори, якщо вам цікаво). Крім того, те, що я роблю, - це принаймні часткове дослідження, тому тестування та оцінка результатів, досягнутих за різними типами ключових точок, - це те, що я повинен робити, навіть якщо деякі з цих результатів не такі хороші, як стан справ. мистецтво. Я загляну в AdjusterAdapter, дякую.
пенелопа

Я щойно переглянув функцію, яку надає інтерфейс. Це може лише збільшити або зменшити кількість функцій, які детектор виявляє. Крім того, у мене немає проблем із виявленими функціями. Я просто хотів би спосіб регулювати їх розмір, щоб вони могли бути краще використані для узгодження (збільшення розміру до 10 робить це, але я не маю жодної конкретної (достатньої) аргументації для цього вибору)
пенелопа
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.