Класифікація зображень за допомогою функцій SIFT та SVM


12

Я сподіваюся, що хтось може пояснити, як використовувати модель пакету слів для класифікації зображень за допомогою функцій SIFT / SURF / ORB та підтримуючої векторної машини?

На даний момент я можу обчислити вектори функцій SIFT для зображення та застосував SVM, однак мені важко зрозуміти літературу про те, як використовувати мішок з моделями слів для «векторного квантування» функцій SIFT та побудови гістограм, які дають вектори фіксованого розміру, які можна використовувати для тренування та тестування SVM.

Будь ласка, будь-які посилання на навчальні посібники чи літературу по темі вітаємо, дякую

Відповіді:


16

Якщо ви могли реалізувати SVM, ви можете кількісно оцінити функції. :)

Зазвичай характеристики квантуються за допомогою кластеризації k-засобів. Спочатку ви вирішуєте, яким повинен бути ваш розмір словникового запасу (скажімо, 200 "візуальних слів"), а потім запускаєте k-означає кластеризацію для цієї кількості кластерів (200). Дескриптори SIFT - це вектори з 128 елементів, тобто точки в 128-мірному просторі. Таким чином, ви можете спробувати їх згрупувати, як і будь-які інші пункти. Ви витягуєте дескриптори SIFT з великої кількості зображень, подібних до тих, які ви хочете класифікувати за допомогою функцій пакетів. (В ідеалі це повинен бути окремий набір зображень, але на практиці люди часто просто отримують функції зі свого навчального набору зображень.) Потім ви запускаєте k-означає кластеризацію цього великого набору дескрипторів SIFT, щоб розділити його на 200 (або будь-які) кластери , тобто призначити кожен дескриптор кластеру. k-засоби дадуть вам 200 центрів кластерів,

Потім ви берете кожен дескриптор SIFT у вашому зображенні та вирішуєте, до якого з 200 кластерів він належить, знайшовши центр кластера, найближчий до нього. Тоді ви просто підраховуєте, скільки функцій має кожен кластер. Таким чином, для будь-якого зображення з будь-якою кількістю функцій SIFT ви маєте гістограму в 200 бін. Це ваш вектор функцій, який ви надаєте SVM. (Зверніть увагу, термін особливості сильно перевантажений).

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

Редагувати: Система інструментів Computer Vision System Toolbox для MATLAB тепер забезпечує функціональний пакет .


Привіт Діма, дякую за вашу відповідь, у мене було лише одне запитання, коли ви говорили "тоді ти запускаєш k-означає кластеризацію для такої кількості кластерів", на чому ти працюєш кластером k-mean? ps Я майже спокусився прийняти цю відповідь за ваш коментар щодо того, що функція терміна сильно перевантажена, я, відповідно, новачок в обробці зображень, і я не міг погодитися більше
Jono Brogan

@JonoBrogan: Ви повинні прийняти мою відповідь, тому що вона правильна. :) Я відредагував відповідь, щоб спробувати уточнити k-засоби.
Діма

Чи має сенс зараз?
Діма

Так, дякую. Я прийняв відповідь, хоча мені просто цікаво, чи знаєте ви, як ви вирішили вирішити, скільки «візуальних слів» використовувати?
Джоно Броган

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