2016-07-15 6 views
0

Я новичок в обучении машинах и openCV. Я взял набор из 10 изображений для каждой эмоции (нейтральной и счастливой) из базы данных лица Кон-Канаде. Затем я извлек лицевые черты из каждого изображения и поместил их в свою матрицу подготовки кадров и назначил метку для соответствующей эмоции (пример: 0 для нейтральной и 1 для счастливой).OpenCV4Android SVM не дает правильного предсказания

Я использовал ядро ​​RBF с гамма = 0,1 и C = 1. После обучения я передаю черты лица, извлеченные из видеокамер с камеры для смартфонов, для прогнозирования. Прогнозирование всегда возвращает 1.

Если я увеличиваю количество обучающих образцов для нейтрального выражения (пример: 15 изображений нейтрального выражения и 10 изображений счастливого выражения), то предсказание всегда возвращает 0 и если имеется одинаковое количество изображений для каждое выражение в обучающих образцах, то предсказание SVM всегда возвращает 1.

Почему SVM ведет себя так? Как проверить правильность значений для гаммы и C? Кроме того, зависит ли SVM от разрешения учебных изображений и тестирования изображений?

ответ

0

Я бы попросил вас загрузить функцию SVM, чтобы мы могли понять ваш код. Во-вторых, я использовал SVM раньше, и вам нужно нормализовать данные обучения и метки. Вы также должны убедиться, что используете правильный классификатор, поскольку не все классификаторы поддерживаются. Следуйте за этой ссылкой для некоторых уроков http://docs.opencv.org/3.0-beta/modules/ml/doc/support_vector_machines.html

Для ответа на ваши другие вопросы, к сожалению, вам нужно найти лучшую комбинацию для гаммы и C самостоятельно, что является своего рода недостатком SVM. https://www.quora.com/What-are-C-and-gamma-with-regards-to-a-support-vector-machine

Да, SVM зависит от разрешения, так как ваши функции/функции векторы будут меняться в зависимости от разрешения и, следовательно, входов и меток. P.S. В идеале это должно быть в комментариях, но, к сожалению, у меня нет достаточного количества очков для этого.

Смежные вопросы