Предупреждение:
1. Я не собираюсь делать распознавание, чиста "апагаварить"
2. Поскольку в вопросе чайник, прошу простить незнание, и отвечать как чайнику. Если неохота до уровня чайника опускаться - не надо отвечать вообще
Итак, немножко почитал на форумах как народ в основном делает распознавание: а тупо предъявляет сети неск. десятков изображений и ждет от нее интеллектуальных выводов...
Допустим, хочу распознавать буквы (классика).
Допустим для простоты, что буквы одного размера, градации яркости отсутствуют.
Очевидно, что если буква представлена в виде битового массива, то та же буква, повернутая на 10 градусов, даст нам абсолютно другой битовый массив, не имеющий
абсолютно ничего общего с первым.
(Тему "операция поворота" разовью чуть ниже)
То-есть, для корректного распознавания буквы, я должен предъявить ее 20-50-100 раз под разными углами поворота; а сеть будет запоминать их как
разные изображения, просто принадлежащие к одному классу. То-есть, размер сети для такого метода должен быть в Эн раз больше, чем для "запоминания" одной буквы в "правильном" положении. То-есть, этот метод можно назвать brute force - бездумно тратим память и время процессора, потому что их вроде бы много и можно не морочиться...
Мне могут возразить: общее между массивами есть - один переводится в другой "операцией поворота"! Да, это так, но, ИМХО, наивно думать, что наша примитивная сеть сможет сама до этой операции "додуматься".
Вот если я
сам сначала создам отдельную сеть, которую "научу" выполнять "операцию поворота" над любыми битовыми массивами, а потом как-то интегрирую эту сеть в схему распознавания... Но лично я абсолютно не представляю с какого конца за такую интеграцию браться, эту ветку рассуждений пока отнесем к научной фантастике...
Напрашивается следующая, вроде бы "рабочая" мысль: пишем сами функцию поворота, а затем предъявляем сети, обученной на одном "прямом" примере, исходное изображение под различными углами поворота и проверяем - нет ли на выходе сигнала уверенного распознавания ?
Без проверки можно сказать, что такое работать будет и очень хорошо, но - в "тепличных" условиях - фиксированный размер, фиксированная ось поворота... А если мы сделаем 3 вложенных цикла, в которых будем "крутить" и размер и положение оси поворота, то по эффективности сразу окажемся во всем известном месте.
То-есть, как ни крути - распознавание получается дико неэффективным...
Вопрос: как же поступают умные дядьки ?