SVM в OpenCV: низкая точность распознавания текста с ядром RBF - PullRequest
3 голосов
/ 21 марта 2012

Я продолжаю свой проект OCR с использованием MS Visual Studio 2008, OpenCV, C ++ и SVM. Я сгенерировал набор данных из> 2000 образцов печатных машин. Когда я тестирую с линейным ядром, я всегда получаю точность 96,36%.

О том, как я использую SVM в OpenCV, можно узнать в этой теме .

Теперь я пытаюсь использовать ядро ​​RBF и сталкиваюсь с этими 2 проблемами:

(1) Независимо от того, какие параметры (C и гамма) я использовал, все символы всегда были классифицированы как 0 (ноль). Если я проверяю с помощью MNIST, все цифры равны 9.

Я надеюсь, что кто-то с опытом работы в OpenCV & SVM сможет мне объяснить. Я знаю, что есть и другие хорошие фреймворки для машинного обучения и обработки изображений, такие как ACCORD.NET, но я уже использовал C ++, и было бы проблематично превратить всю программу в C # (OCR - это только часть). 1011 *

Версия OpenCV - 2.3.1.

(2) Я перенес эту проблему на другой вопрос в качестве предложения etarion . Если у вас есть время, проверьте это: Visual Studio сообщает об ошибке C2664 с методом поезда SVM в openCV .

Ответы [ 2 ]

1 голос
/ 21 марта 2012

Теория предполагает, что при правильных параметрах ядро ​​RBF работает как минимум так же, как и линейное ядро.Поэтому я перечислю наиболее распространенные источники проблем:

  • Возможно, у вас возникли численные трудности.Вы нормализовали свои данные?Каждая функция между 0 и 1?или -1 и 1?Каков числовой диапазон фактических значений решения?Каков диапазон значений характеристик?

  • Возможно ли, что вы переоцениваете производительность линейного классификатора (т. Е. Тестируете и обучаете по одним и тем же данным?)

  • Может быть, ваше мультиклассовое представление каким-то образом некорректно.Одинакова ли разница в производительности для задачи с двумя классами вместо задачи с десятью классами?

0 голосов
/ 21 марта 2012

Что касается первой части, очень вероятно, что ваши параметры выключены.Существует метод train_auto для автоматической оценки параметров, вы можете расширить используемые диапазоны параметров, если они не дают хороших результатов, передавая методические сетки пользовательских параметров (но сначала попробуйте параметры по умолчанию).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...