Simple perceptron-based neural network for determining numbers on images. Can be built and ran using VS2013+.
Instruction (Russian):
Данная нейронная сеть обучается по следующим принципам:
-
Изображение преобразуется в чёрно-белое и анализируются прямоугольники, на которое разбивается изображение, по процентному содержанию белого и чёрного цветов.
-
Проводятся прямые ( горизонтальные и вертикальные ), частота которых зависит от числа разбиений на прямоугольники, после чего анализируется, сколько раз прямая пересекает границу цифры.
-
На основе пунктов 1 и 2 задаются коэффициенты матрицы весов, которые корректируются с каждым изображением.
Пункты 1, 2, 3 повторяются до тех пор, пока все изображения из обучающих наборов не будут распознаваться корректно. Корректность определяется путём сопоставления вектора-ответа ( в данном случае - двоичная запись цифры в 4 битах ) на вектор, полученный путем умножения вектора компонент из пунктов 1,2 на матрицу весов.
Важно: в каждом обучающем наборе строго 10 цифр ( от 0 до 9 соответственно ), каждая хранится в изображении формата .bmp с наименованием номерНабора_цифра.bmp. Это необходимо учитывать при добавлении новых обучающих наборов.
После обучения произвольные изображения с цифрами можно попытаться распознать ( как для проведенного обучения на конкретном разбиении, так и на многих, предварительно заданных разбиениях )