GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.22 (24)<< < Пред. | След. > >>   Поиск:  
 Автор Тема: На: Распознавание рукописного текста
гость
31.44.53.*
На: Распознавание рукописного текста
Добавлено: 16 май 13 6:10
[Ответ][Цитата]
Андрей
Сообщений: 3368
На: Распознавание рукописного текста
Добавлено: 24 май 13 8:47
Продолжаю опыты в рамках вышеописанной концепции.
Улучшил процедуру сравнения двух контуров. Теперь у каждого найденного объекта выделяется контур, далее контур векторизируется, сглаживается, подгоняется по размерам к эталонным контурам, поворачивается на 360° с шагом 1° и разбивается на 200 опорных точек с равным шагом. При каждом повороте вычисляется расстояние между опорными точками эталонного контура и тестируемого контура. Сумма этих расстояний (пронормированная по длине эталонного контура) даёт меру отличия. Такая громоздкая процедура привела к существенному замедлению опознания, но я предполагаю, что можно смело сократить количество опорных точек до нескольких десятков и уменьшить шаг вращения до нескольких градусов, так что метод вполне практичный.
Теперь программа удовлетворительно узнаёт все цифры кроме 6, ибо 6 - это перевёрнутая 9. Программу и исходники можно скачать здесь.

Процесс можно сравнить с обходом высокого забора по набору карт. У нас есть некая опорная точка забора и мы начинаем обходить его против часовой стрелки, сверяя пройденный маршрут с картами. Та карта, которая лучше всех совпадает с пройденным маршрутом (лучше предсказывает маршрут!) та и является правильной.
Несмотря на все ухищрения, программа всё-равно делает ошибки, например иногда опознаёт 9 как 3, потому что длина контура у 3 больше, чем длина контура 9 и нормированное значение вводит программу в заблуждение.

Следующий этап очевиден и неизбежен - автоматический синтез фильтров для выделения под-объектов меньшего размера и опознание объектов по характерной совокупности всех под-объектов с учётом их размеров.
[Ответ][Цитата]
гость
31.181.11.*
На: Распознавание рукописного текста
Добавлено: 24 май 13 9:04
Вместо вращения используй наклоны в две стороны меньше чем на 90 градусов. Например на 75 - 80 и тогда переворачиваться шестёрка до девятки и девятка до шестёрки не будет.
Опорные точки я не понимаю зачем нужны, можно и без них обойтись, не знаю как это скажется на рукописи написанной по дуге.
Повышение скорости распознавания нужно делать за счёт многопоточности иначе точность распознавания значительно упадёт при незначительных увеличениях шага.
Также буквы можно немножко размывать, увеличивая площадь контура вместо его поиска.
Чтобы отделить девятку от тройки ищи просветы в кружочках, у тройки они обязательно должны быть, иначе подчерк хреновый а не программа фуфло.
Размеры объектов можно перебирать диапазоне, опять же заюзай многопоточные библиотеки использующие видеокарту, думаю в 1000 потоков ты распознаеш страницу за пару секунд. Что ещё.. Изображения все приводи к одному размеру(минимальному из читаемых), тогда тебе меньше будет галиматьи с размерами текста рукописного и меньше прийдётся распознавать количественном соотношении тактов.
И в топку контуры, распознавай пиксели модифицируя контуры и прикладывая к изображению. Тоесть под координатами контура всё должно быть темнее фона и распознаваться как одна бука, если будет похоже более чем на 1 букву, распознавание в данных координатах можно признать ошибочным и шагать дальше.
[Ответ][Цитата]
гость
31.181.11.*
На: Распознавание рукописного текста
Добавлено: 24 май 13 9:08
75 - 80 имелось ввиду от 280 до 80 градусов например.
[Ответ][Цитата]
гость
31.181.11.*
На: Распознавание рукописного текста
Добавлено: 24 май 13 9:18
объект точек по признаку синхронного движения. ------ Небольшая поправка, для мозга всё распознаваемое это не целые объекты а каждый отдельный пиксель - объект. Распознаётся совокупность минимальных объектов не все вместе, а каждый отдельно и потом так сказать это дело суммируется в код идущий на выход(к голосовым связкам на пример, произносящим слово "кубик"), собственно сам процесс произношения названия объекта и есть тот самый код, который каждый пиксель в частности и их совокупность порождают.
Иначе говоря это чтото вроде хэш суммы, которая не то чтобы уникальна, но в ней что либо преобладает, что и характеризует совокупность сигналов как произносимое слово (объект).
[Ответ][Цитата]
гость
31.181.11.*
На: Распознавание рукописного текста
Добавлено: 24 май 13 9:22
И добавлю - образ в мозге это процентное соотношение сходства изображения на сетчатке и изображения в памяти, чтото вроде статистики которая говорит - больше всего нейронов проголосовало за то, что эти пиксели приндалежат кубику, остальные ссылались на цвет, квадрат, сетку и прочие похожие объекты.
[Ответ][Цитата]
Андрей
Сообщений: 3368
На: Распознавание рукописного текста
Добавлено: 24 май 13 14:39
Ради интереса уменьшил количество опорных точек до 50, а шаг угла до 3° - качество распознавания никак не поменялось, зато скорость увеличилась в 3 раза. Добавил простое различение 6 и 9 по углу поворота эталона. Теперь все цифры более-менее опознаются. Программа и исходники.
[Ответ][Цитата]
Victor G. Tsaregorodtsev
Сообщений: 3065
На: Распознавание рукописного текста
Добавлено: 25 май 13 5:39
Цитата:
Автор: Андрей
Улучшил процедуру сравнения двух контуров. Теперь у каждого найденного объекта выделяется контур, далее контур векторизируется, сглаживается, подгоняется по размерам к эталонным контурам, поворачивается на 360° с шагом 1° и разбивается на 200 опорных точек с равным шагом. При каждом повороте вычисляется расстояние между опорными точками эталонного контура и тестируемого контура. Сумма этих расстояний (пронормированная по длине эталонного контура) даёт меру отличия. Такая громоздкая процедура привела к существенному замедлению опознания, но я предполагаю, что можно смело сократить количество опорных точек до нескольких десятков и уменьшить шаг вращения до нескольких градусов, так что метод вполне практичный.

Советую поискать-почитать литературу.
Использованный Вами подход (с небольшими отличиями) был предложен в статье Hironobu Fujiyoshi, Alan J. Lipton "Real-time Human Motion Analysis by Image Skeletonization" где-то в районе 2000г. Надо посмотреть, кто их цитировал и как подход развивался.
Там размеры контуров друг к другу не подгонялись - а находились точки, наиболее удалённые от центра масс контура (т.е. максимумы на "развёртке" расстояний от центра контура). И строился звездообразный "скелет" контура - набор векторов, соединяющих центр масс контура и его экстремальные точки. И по скелету вычислялись иные информативные признаки для классификации.
Поскольку авторы хотели обрабатывать не просто видео, но и опознавать "активность" объекта на видео (человек идёт либо человек бежит, и тому подобные примеры) - то акцент делался именно на возможность работы в реалтайме.
В общем, всё украдено до нас.
[Ответ][Цитата]
Андрей
Сообщений: 3368
На: Распознавание рукописного текста
Добавлено: 25 май 13 6:05
Я уже не раз подчёркивал, и в этом топике тоже, что не претендую на оригинальность, и распознавание конкретно цифр или букв меня вообще не интересует. Задача распознавания рукописного текста выбрана просто для определённости. Я пытаюсь, просчитывая всё вручную и сознательно до мельчайших деталей, ухватить суть распознавания для последующего автоматического синтеза фильтров. Поэтому нет смысла копаться в статьях - этим, насколько я знаю, никто не занимается.
Кому интересен именно контурный анализ, наверное нужно читать это. Также NO давал увлекательную ссылку.
Меня же не интересует контурный анализ (бабло, бабы, тачки, бухло, научные регалии, горы - добавить по вкусу), меня интересует создание человекоподобных роботов.
[Ответ][Цитата]
Victor G. Tsaregorodtsev
Сообщений: 3065
На: Распознавание рукописного текста
Добавлено: 26 май 13 5:20
Цитата:
Автор: Андрей
Кому интересен именно контурный анализ, наверное нужно читать это

Ну, я не такой садист, чтобы требовать чтения 600страничной книжки
А вот статейку прочитать - недолго, и там есть выходы на ускорение работы программы (масштабирование контуров заменяется, например, сравнением их развёрток в частотной области, при этом амплитуды спектров - т.е. исходные размеры контуров - не важны, а чтобы не мешал разный размер - из развёртки перед фурье-анализом вычитаем среднее, т.е. убираем весь искусственно порождённый инфраниз)
[Ответ][Цитата]
Андрей
Сообщений: 3368
На: Распознавание рукописного текста
Добавлено: 26 май 13 11:16
Авторы статьи используют центр масс как опорную точку отсчёта для дальнейшего анализа контура. Я тоже пробовал этот способ, но отказался, потому что он мне показался совершенно оторванным от какой-либо идеологии - я не смог подобрать вразумительную аналогию из жизни. Человеческий перцептивный аппарат, имхо, никогда так не поступает при распознавании. Он скорее пытается сравнивать одни части объекта (под-объекты) с другими по их размерам и расположению.
Я же использовал верхнюю левую точку контура как начало отсчёта. И аналогию я уже приводил - сравнение границы чего-то с картой.

Есть ещё одна аналогия, которая напрашивается сама собой. Можно представить лабиринт, форма которого повторяет распознаваемый символ. В этом лабиринте находится человек с завязанными глазами. Его задача - наощуп определить форму лабиринта и, соответственно, узнать букву. Здесь прямой путь к скелетизации и анализу характерных точек - тупиков, изгибов, прямых, циклов.

Но.
Все эти узкие методы хороши в узких задачах. Если нужно будет распознать лицо, или музыкальный инструмент, или намерения человека по его моторике - всё это отправляется фтопку и за дело снова берётся инженер. Я хочу исключить инженера из цепочки. Должен быть способ автоматического выделения всех необходимых признаков, с последующим отсеиванием характерных признаков, с последующей однозначной классификацией. Фурье-анализом этого добиться не получится. Должен найтись тупой топорный метод, выигрывающий не своей вычурностью, а своей простотой и универсальностью.
[Ответ][Цитата]
covax
Сообщений: 1609
На: Распознавание рукописного текста
Добавлено: 26 май 13 20:20
Цитата:

Должен быть способ автоматического выделения всех необходимых признаков, с последующим отсеиванием характерных признаков, с последующей однозначной классификацией.

Это вы про САМОорганизацию заговорили (отмечено жирным)? А как же креационизм? Ведь без него не обойтись!

Кстати, способ такой есть и ранее он признан вами, как бесперспективный. Ну раз так, буду наблюдать за вашей эволюцией.
[Ответ][Цитата]
СГТР http://egtd.ru
Сообщений: 7574
На: Распознавание рукописного текста
Добавлено: 26 май 13 21:25
Попробуем подтолкнуть эволюцию...
Цитата:
Автор: Андрей

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

[Ответ][Цитата]
Victor G. Tsaregorodtsev
Сообщений: 3065
На: Распознавание рукописного текста
Добавлено: 27 май 13 5:20
Цитата:
Автор: Андрей
Все эти узкие методы хороши в узких задачах. Если нужно будет распознать лицо, или музыкальный инструмент, или намерения человека по его моторике - всё это отправляется фтопку и за дело снова берётся инженер. Я хочу исключить инженера из цепочки. Должен быть способ автоматического выделения всех необходимых признаков, с последующим отсеиванием характерных признаков, с последующей однозначной классификацией.

Правильно.
Предыдущие 50 лет - это как раз ручной способ, когда в каждой новой задаче сначала вручную конструировался необучаемый детектор признаков, а потом использовался какой-то универсальный обучаемый алгоритм распознавания.
Но последние 5 лет - это годы перелома. И в возможности обучения детектора признаков, и в возможности не декомпозировать систему на детектор признаков и классификатор (т.е. в возможности обучать всю систему), и в возможности быстрого автоматического нахождения набора признаков в задаче (для первоначальной инициализации детектора, который потом можно будет дообучить в рамках обучения всей системы).
См., в общем, на свёрточные нейросети, deep learning, на применение метода анализа главных компонент для генерации набора признаков (режем набор изображений на кусочки нужного размера, например, на 5*5 или 7*7, для полученной кучи мелких картинок запускаем анализ главых компонент, по осям построенных главных компонент находим-генерируем картинки-признаки для инициализации весов фильтра). Замените линейный статистический анализ главных компонент на самоорганизующуюся карту Кохонена (в том же пространстве) - получите нелинейность анализа и самоорганизацию набора признаков. Либо возьмите избыточный набор признаков и после обучения нейрораспознавателя запустите процедуру урезки избыточных (неинформативных) входных сигналов (или неинформативных выходов блока детекции признаков).
Т.е. я не понимаю Вашей текущей логики самостоятельного исследования. В рамках классического устаревшего подхода - нельзя будет перейти к новью (как бы Вы ни пытались своё понимание процесса распознавания облечь в автоматический алгоритм), а в рамках новой технологии надо действовать иными, чем Вы написали, способами.
[Ответ][Цитата]
Андрей
Сообщений: 3368
На: Распознавание рукописного текста
Добавлено: 27 май 13 9:58
Цитата:
Автор: Victor G. Tsaregorodtsev
См., в общем, на свёрточные нейросети, deep learning, на применение метода анализа главных компонент для генерации набора признаков (режем набор изображений на кусочки нужного размера, например, на 5*5 или 7*7, для полученной кучи мелких картинок запускаем анализ главных компонент, по осям построенных главных компонент находим-генерируем картинки-признаки для инициализации весов фильтра).
Цитата:
Автор: Victor G. Tsaregorodtsev
я не понимаю Вашей текущей логики самостоятельного исследования
Я, в свою очередь, не понимаю упования на нейросети и вышеперечисленное Вами. Ведь сразу становятся очевидны ограничения этих методов и непохожесть их работы на работу перцептивного аппарата человека. Почему 5*5, откуда это? Как быть с тем, что человек сознательно и вербально может описать, как именно и по каким признакам он что-то опознал? Как быть с тем, что человек видит сразу огромное множество однотипных предметов, перекрывающихся, движущихся, меняющихся?

Вы говорите подход изменился. Подход нихрена не изменился. Приходит инженер, чешет в затылке и говорит "типа во!" - и у него что-то работает. Вот так родились все вышеперечисленные методы. Почему я должен их использовать? Где идеология? Я вижу задачу не в том, чтобы придумать что-то, а скопировать то, что уже тысячи лет работает в голове человека. Для этого не надо копаться в мозгах и проводить какие-то отвлечённые сетевые аналогии. Имхо, достаточно просто внимательно наблюдать за собой. И выращивать идеологию с нуля, исходя из своих наблюдений и своих опытов. Вот такой мой метод. Каждому своё.
[Ответ][Цитата]
 Стр.22 (24)1  ...  18  19  20  21  [22]  23  24<< < Пред. | След. > >>