Вопросы по CvSVM

#opencv #histogram #svm #libsvm

#opencv #гистограмма #svm #libsvm

Вопрос:

Некоторые вопросы по использованию opencv CvSVM

  1. Какой svm он использует? Использует ли он svmlight? В OpenCV2.2 есть svmlight, но я не могу найти много ссылок на него.

  2. Если я использую CvSVM, нужно ли мне вручную создавать, скажем, 80% обучающих данных и 20% тестовых данных и выполнять повторную проверку в 5 раз, чтобы получить лучший результат?

  3. Я делаю детектор с использованием HOG, и я внимательно слежу за образцом детектора пешеходов opencv в пакете. Мне нужно изучить классификатор для обнаружения других объектов, кроме пешеходов. Любые предложения будут оценены.

Спасибо!

Ответ №1:

  1. Я почти уверен, что OpenCV 2.1 и 2.2 используют libsvm. Посмотрите на документацию OpenCV. И libSVM очень хорошо документирован

  2. Да, вам нужно создать свои обучающие и тестовые данные. Однако CvSVM автоматически выполняет перекрестную проверку ваших обучающих данных, нет необходимости самостоятельно разделять обучающий набор. В функции train_auto посмотрите на параметр по умолчанию int k_fold = 10,

  3. HOG — довольно приличный детектор для любого объекта, который имеет жесткую структуру. Просто скачайте любую базу данных и запустите свой HOG-материал. Здесь вы можете найти множество баз данных. Или, для простоты, перейдите в Caltech 101, хороший с 101 классом. И если этого недостаточно, они сделали Caltech 256 =)

  4. Редактировать : Если вы сказали, что хотите сделать что-то отличное от HOG, я предлагаю вам поработать над локальными исправлениями, такими как SIFT или SURF, которые оба находятся в OpenCV (Ссылка на features2d OpenCV