Как можно использовать HMM для распознавания рукописного ввода?
Эта проблема немного отличается от традиционного распознавания рукописного текста. У меня есть набор данных, которые тысячи следующих. Для одного нарисованного персонажа у меня есть несколько последовательных (x, y)
координаты, где ручка была нажата. Итак, это очередная (временная) проблема.
Я хочу иметь возможность классифицировать рукописные символы на основе этих данных и хотел бы внедрить HMM в целях обучения. Но это правильный подход? Как их можно использовать для этого?
2 ответа
Я думаю, что HMM можно использовать в обеих задачах, упомянутых @jens. Я тоже работаю над почерком в Интернете, и HMM используется во многих статьях. Самый простой подход такой:
- Выберите функцию.
- Если выбранная функция непрерывна, преобразуйте ее в дискретную.
- Выберите параметры HMM: топология и количество состояний.
- Тренируйте модели персонажей, используя HMM. одна модель для каждого класса.
- Тест с использованием тестового набора.
за каждый предмет:
- самая простая особенность - угол вектора, который соединяет последовательные точки. Вы можете использовать более сложные функции, такие как углы векторов, полученные с помощью алгоритма Дугласа и Пекера.
- Простейший способ дискретизации - использование кодов Фримена, но также можно использовать алгоритмы кластеризации, такие как k-means и GMM.
- Топологии HMM: эргодическая, левая-правая, Bakis и линейная. # состояний можно получить методом проб и ошибок. Параметры HMM могут быть переменными для каждой модели. Количество наблюдений определяется дискретизацией. образцы наблюдения могут иметь переменную длину.
- Я рекомендую Kevin Murphy HMM toolbox.
- Удачи.
Эта проблема на самом деле является смесью двух проблем:
- распознавание одного символа из ваших данных
- распознавание слова из (шумной) последовательности символов
HMM используется для нахождения наиболее вероятной последовательности конечного числа дискретных состояний из зашумленных измерений. Это как раз проблема 2, так как зашумленные измерения дискретных состояний az,0-9 следуют друг за другом в последовательности.
Для задачи 1 HMM бесполезен, потому что вас не интересует базовая последовательность. Вам нужно дополнить свою рукописную цифру информацией о том, как вы ее написали.
Лично я бы начал с внедрения регулярного современного распознавания рукописного ввода, которое уже очень хорошо (с помощью сверточных нейронных сетей или глубокого обучения). После этого вы можете добавить информацию о том, как она была написана, например по часовой стрелке / против часовой стрелки.