Скрытые марковские модели с С++
В последнее время я изучал реализации скрытых марковских моделей на С++. Мне было интересно, могу ли я использовать любую из существующих библиотек HMM, написанных на С++, чтобы использовать
с распознаванием действий (с OpenCV)?
Я свяжусь с AVOID "изобретать колесо"!
Можно ли использовать Torch3Vision, хотя (похоже) он был разработан для
работа для распознавания речи?
Моя идея состоит в том, что, если мы сможем преобразовать векторы признаков в символы/наблюдения
(с использованием векторного квантования - кластеризации Kmeans), мы можем использовать эти символы для
декодирование, вывод, изучение параметров (алгоритм Баума-Уэлша). Таким образом, это
будет работать с Torch3Vision в OpenCV.
Любая помощь по этому поводу будет действительно оценена.
Ответы
Ответ 1
Вы можете взглянуть на http://www.ece.ucsb.edu/Faculty/Rabiner/ece259/Reprints/tutorial%20on%20hmm%20and%20applications.pdf для теории, лежащей в основе HMM. Это не сложно реализовать сами алгоритмы.
Для версии на основе C вы можете взглянуть на мою реализацию, http://code.google.com/p/accelges/, которую я сделал для Google Проект Summer of Code.
Ответ 2
Существует также эта реализация, которую я написал несколько дней назад. Это класс для дискретного HMM с использованием OpenCV. Вы можете посмотреть здесь:
https://sourceforge.net/projects/cvhmm/
После квантования ваших функций вы можете преобразовать каждый вектор функции в одну метку и использовать последовательность меток для обучения дискретному HMM.