Извличане на характеристики от невронни мрежи

Правя просто разпознаване на букви и цифри с невронни мрежи. Досега използвах всеки пиксел от изображението на буквата като вход към мрежата. Излишно е да казвам, че този подход създава мрежи, които са много големи. Така че бих искал да извлека функции от моите изображения и да ги използвам като входни данни за NN. Първият ми въпрос е какви свойства на буквите са добри за разпознаването им. Вторият въпрос е как да представим тези функции като входни данни за невронни мрежи. Например, може да съм открил всички ъгли в буквите и да ги имам като вектор от (x,y) точки. Как да трансформирам този вектор в нещо подходящо за NN (тъй като размерите на вектора може да са различни за различните букви).


person kyku    schedule 11.07.2012    source източник


Отговори (3)


Много хора са използвали различни функции за OCR. Най-простият от които е, разбира се, директно предаване на стойностите на пикселите.

Има данни за разпознаване на букви в проби на OpenCV, извлечени от UCI набор от данни. Той използва около 16 различни функции. Проверете този SOF: Как да създайте данни от изображение като Letter Image Recognition Dataset от UCI

Можете също да видите документа, обясняващ това в един от отговорите си. Можете да го получите чрез гугъл.

Също така може да се интересувате от този PPT. Той дава кратко обяснение на различни техники за извличане на характеристики, използвани в днешно време.

person Abid Rahman K    schedule 11.07.2012

Тази статия, Въведение в Artifici ал разузнаване. OCR с помощта на изкуствени невронни мрежи от Kluever (2008) дава преглед на 4 техники за извличане на функции за OCR с помощта на невронни мрежи. Той описва следните методи:

  • Run Length Encoding (RLE): Имате нужда от двоично изображение за това (т.е. само бяло или черно). Двоичният низ може да бъде кодиран в по-малко представяне.
  • Откриване на ръбове: Намерете ръбовете. Можете да бъдете доста груби с това, така че вместо да връщате точните (x,y) координати, можете да намалите матрицата, като броите само ако такъв край се появи на намалени места (т.е. на 20%, 40%, 60& и 80% на изображението).
  • Преброяване на „истински пиксели“: Това намалява размерността от width * height на матрицата на изображението на width + height. Използвате вектора width и вектора height като отделен вход.
  • Основен матричен вход: Вече сте опитали това; Въвеждането на цялата матрица дава добри резултати, но както забелязахте може да доведе до голяма размерност и времена за обучение. Можете да експериментирате с намаляване на размера на вашите изображения (напр. от 200x200 на 50x50).
person Sicco    schedule 11.07.2012

Ако имате входен вектор с много големи размери, тогава предлагам да приложите анализ на главните компоненти (PCA), за да премахнете излишните характеристики и да намалите размерността на вектора на характеристиките.

person Saurav    schedule 03.09.2012