AshRayX Ответов: 1

Обучение машины опорных векторов на языке C# для распознавания символов


Для тех, кто новичок в SVM, что было бы лучшим местом для начала, если бы они хотели обучить SVM в C# на различных изображениях символов, распределенных в их соответствующих папках?

Это задание из нашего курса обработки изображений. Мы делали различные алгоритмы IP на изображениях в C#, но, почти без помощи инструктора, я понятия не имею, как справиться с обучением SVM в C# на куче изображений символов.

Мы еще не изучали курс машинного обучения. И благодаря Гуглу я получил некоторые базовые знания о SVMs. Но до сих пор понятия не имею, как реализовать для обучения данные в C#. Есть ли здесь библиотека? Насколько мне известно, машина выведет обучающий файл, который будет использоваться для распознавания текста из изображений.

Обучающие данные выглядят следующим образом: http://www.tiikoni.com/tis/view/?id=6b26c8e

Любая помощь будет оценена по достоинству.

Что я уже пробовал:

Попробовал разобраться в основах SVM. Не знаю, с чего начать.

1 Ответов

Рейтинг:
7

Matt T Heffron

Да, есть библиотеки SVM.
Поиск Bing по "libsvm csharp" дает более 10 000 результатов (сколько из них полезны?).
Существуют реализации SVM для использования в приложениях .NET.
Я подозреваю, что есть примеры их использования.

Если вы действительно хотите узнать больше о системах машинного обучения и классификации, ознакомьтесь с Бесплатный вводный онлайн-курс машинного обучения от Caltech![^]
Это не даст вам код, но вы узнаете много о том, как это сделать самому!
Если вы попробуете пройти этот курс, я предлагаю использовать Octave (свободная Matlab-совместимая система)[^] для практика и домашнее задание.
SVM является освещается в этом курсе.
Вероятно, вам понадобится немного фона ML, прежде чем копаться в SVM. Есть причина, по которой это не близко к началу телекурса из Калтеха! (Моя альма-матер!)
Удачи.


Sergey Alexandrovich Kryukov

5ед.
—СА

Matt T Heffron

Спасибо

AshRayX

Спасибо, что ответили. Я понимаю, что для правильного понимания требуется ML-фон. Поскольку времени мало, я не думаю, что смогу пройти этот курс до подачи заявки. Как новичок, я хочу знать следующее: Будут ли библиотеки, такие как libsvm или opencv и т. д., иметь функции, которые будут принимать обучающие данные для получения обучающего файла, или мы должны сначала преобразовать обучающее изображение в данные в математическую модель/представление?

Matt T Heffron

Продолжая мой комментарий ниже.
Мл на RAW изображений возможно является вычислительно неразрешимой.
(По крайней мере, а очень крупный вычислительные требования.)
Определение малого набор функциональных возможностей это может быть легко вычислено заранее, вероятно, единственная практическая стратегия.
Моей первой мыслью было бы сначала обрезать и масштабировать все изображения до одного размера (по крайней мере, приблизительно выровнять базовую линию и горизонтально центрировать обрезанное изображение в конечном размере "холста"), а затем получить некоторые простые функции, такие как горизонтальная и вертикальная симметрия, общая интенсивность.
Затем следует разделить данные объектов на обучающие и тестовые наборы данных.
Сделайте это разделение случайным образом! Не заглядывать при выборе того, какие данные предназначены для обучения против. проверка!

AshRayX

А также какая библиотека будет наиболее подходящей для данного конкретного случая. Есть EMGU CV (OpenCV wrapper), libsvm C#. Какой из них самый подходящий? Есть там еще кто-нибудь?

Matt T Heffron

Когда я проходил курс в ноябре 2012 года, я использовал libsvm от Octave и использовал только то, что было необходимо для домашнего задания SVM. У меня нет воспоминаний о деталях возможностей libsvm и модели использования. Я также не использовал EMGU CV, libsvm-csharp и т. д.
Вот несколько дополнительных ссылок на статьи по теме SVM/C# (с использованием другой бесплатной библиотеки ML, Accord.NET):
http://www.codeproject.com/Articles/106583/Handwriting-Recognition-Revisited-Kernel-Support-V
http://crsouza.com/2010/04/kernel-support-vector-machines-for-classification-and-regression-in-c/
К сожалению, я не могу предложить больше помощи.