Подтвердить что ты не робот

How To: Распознавание образов

Мне интересно узнать больше о распознавании образов. Я знаю, что это довольно обширная область, поэтому я расскажу о некоторых конкретных типах проблем, с которыми мне хотелось бы научиться:

  • Поиск шаблонов в кажущемся случайном наборе байтов.
  • Признание известных образов (таких как круги и квадраты) в изображениях.
  • Заметив шаблоны движения с учетом потока позиций (Vector3)

Это новая область экспериментов для меня лично, и, честно говоря, я просто не знаю, с чего начать:-) Я, очевидно, не ищу ответы, которые мне будут предоставлены на серебряном блюде, но некоторые поисковые термины и/или онлайн-ресурсы, где я могу начать знакомиться с концепциями вышеупомянутых проблемных областей, были бы удивительными.

Спасибо!

ps: Для дополнительного кредита, если указанные ресурсы предоставляют примеры кода/обсуждение на С#, будет грандиозным:-), но не обязательно

4b9b3361

Ответ 1

Скрытые марковские модели - отличное место для поиска, а также Искусственные нейронные сети.

Изменить: вы можете взглянуть на NeuronDotNet, это с открытым исходным кодом, и вы можете код.

Изменить 2: вы также можете взглянуть на ITK, а также открыть исходный код и реализовать много этих типов алгоритмов.

Изменить 3: Здесь довольно хорошо введение в нейронные сети. Он охватывает множество основ и включает исходный код (хотя и на С++). Он реализовал неконтролируемый алгоритм обучения, я думаю, вы можете искать контролируемый алгоритм backpropagation для обучения вашей сети.

Edit 4: Another хорошее введение, позволяет избежать действительно тяжелой математики, но дает ссылки на многие эта деталь внизу, если вы хотите в нее копать. Включает псевдокод, хорошие диаграммы и подробное описание backpropagation.

Ответ 2

OpenCV имеет некоторые функции для распознавания образов в изображениях.

Вы можете посмотреть на это: http://opencv.willowgarage.com/documentation/pattern_recognition.html. (неработающая ссылка: ближайшая вещь в новом документе http://opencv.willowgarage.com/documentation/cpp/ml__machine_learning.html, хотя это уже не то, что я бы назвал полезной документацией для новичка - см. другие ответы)

Однако я также рекомендую начинать с Matlab, потому что openCV не интуитивно понятен.

Ответ 3

Это вроде как сказать: "Я бы хотел узнать больше об электронике... кто-нибудь скажет мне, с чего начать?" Распознавание образов - это целое поле - там сотни, если не тысячи книг, и любой университет имеет по крайней мере несколько (возможно, 10 или более) курсов на уровне града по этому вопросу. Есть также многочисленные журналы, посвященные этому, которые издаются на протяжении десятилетий... конференций..

Вы можете начать с википедии.

http://en.wikipedia.org/wiki/Pattern_recognition

Ответ 4

Это своего рода старый вопрос, но он уместен, поэтому я решил, что я разместил его здесь:-) Стэнфорд начал предлагать онлайн-класс Machine Learning здесь - http://www.ml-class.org

Ответ 5

Много полезных ссылок на на этой странице о распознавании образов, связанных с компьютерным зрением. Некоторые из ссылок, похоже, сейчас разбиты, но вы можете найти это полезным.

Ответ 7

Остерегайтесь ложных шаблонов! Для любого прилично большого набора данных вы найдете подмножества, которые, как представляется, имеют шаблон, даже если это набор данных для переводов монет. Ни один хороший процесс распознавания образов не должен иметь статистических методов для оценки уверенности в том, что обнаруженные закономерности являются реальными. Когда это возможно, запустите свои алгоритмы на случайных данных, чтобы увидеть, какие шаблоны они обнаруживают. Эти эксперименты дадут вам базовый уровень силы, который можно найти в случайных (a.k.a "null" ) данных. Этот метод может помочь вам оценить "ложную скорость обнаружения" для ваших результатов.

Ответ 8

обучающая модель-recoginition проще в matlab..

есть несколько примеров, и есть функции для использования.

это хорошо для понимания понятий и экспериментов...

Ответ 9

Я бы рекомендовал начать с некоторых инструментов MATLAB. MATLAB - это особенно удобное место, чтобы начать играть с такими вещами благодаря своей интерактивной консоли. Хороший инструментарий, который я лично использовал и действительно любил, это PRTools (http://prtools.org); они реализуют практически все инструменты распознавания образов, а также некоторые другие средства машинного обучения (Neural Networks и т.д.). Но приятная вещь о MATLAB заключается в том, что есть много других инструментов, а также вы можете попробовать (есть даже фирменный инструмент из Mathworks)

Всякий раз, когда вы чувствуете себя достаточно комфортно с различными инструментами (и узнаете, какой классификатор лучше всего подходит для вас), вы можете начать думать о внедрении машинного обучения в другом приложении.