Якщо ви могли реалізувати 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 тепер забезпечує функціональний пакет .