| | | | |
Распознавание образов методом потенциальных функций | Полный текст материала
Другие публикации автора: Alex Поветкин
Цитата или краткий комментарий: «... На написание этого опуса меня спровоцировала статья Юрия Кислякова, который, по моему скромному мнению очень удачно начал мысль о том, что распознавание образов не есть что-то сверхсуперсложное, не поддающееся разуму простых смертных. ...» |
Важно:- Страница предназначена для обсуждения материала, его содержания, полезности, соответствия действительности и так далее. Смысл не в разборке, а в приближении к истине :о) и пользе для всех.
- Любые другие сообщения или вопросы, а так же личные эмоции в адрес авторов и полемика, не относящаяся к теме обсуждаемого материала, будут удаляться без предупреждения авторов, дабы не мешать жителям нормально общаться.
- При голосовании учитывайте уровень, на который расчитан материал. "Интересность и полезность" имеет смысл оценивать относительно того, кому именно предназначался материал.
- Размер одного сообщений не должен превышать 5К. Если Вам нужно сказать больше, сделайте это за два раза. Или, что в данной ситуации правильнее, напишите свою статью.
Всегда легче осудить сделанное, нежели сделать самому. Поэтому, пожалуйста, соблюдайте правила Королевства и уважайте друг друга.
Добавить свое мнение.
| | Содержит полезные и(или) интересные сведения | [1] | 15 | 88.2% | | | | Ничего особенно нового и интересного | [2] | 1 | 5.9% | | | | Написано неверно (обязательно укажите почему) | [3] | 1 | 5.9% | | Всего проголосовали: 17 | | | Все понятно, материал читается легко | [1] | 15 | 93.8% | | | | Есть неясности в изложении | [2] | 1 | 6.2% | | | | Непонятно написано, трудно читается | [3] | 0 | 0% | | Всего проголосовали: 16 |
[Распознавание образов]
Отслеживать это обсуждение
Всего сообщений: 2216-06-2010 11:06Ходил на собеседования в одну фирму недалеко от места жительства. Кроме прочего, спросили, как Вы себе представляете способ распознования лиц. Ну я им "сходу" родил идею: повышается контрастность картинки, делается черно-белой. Затем, части изгибов лица сравниваются по базе элементов лица фоторобота, вычисляется идентификатор лица, по номерам элементов в базе фоторобота.
Так или нет в современных системах - не знаю, но возможно кому-то будет интересно. |
|
22-04-2010 15:29to birdman:
Читайте сообщение от 18-01-2007 05:59 ;-)
P.S. На сути замечания это никак не отразится :D |
|
22-04-2010 15:05Просто небольшая поправка, конечно на сути никак не отразится...
Потенциал ЭМ поля обратно пропорционален первой степени расстояния, второй степени расстояния пропорциональна напряженность поля.
Спасибо за пост,познавательно. |
|
11-03-2010 08:27Добрый день.
Выражаю благодарность автору.
Мой диплом связан с оптическим распознаванием образов.
Если у Вас имеется интересная литература или исходники, а также интересный идеи - прошу отправить мне на электронную почту.
maksims.zigunovs@inbox.lv |
|
26-02-2010 07:24Хорошо изложено, но очень неполный материал: нет модификаций этого метода, варианта применения для многих кластеров, оценок ошибок и качества кластеризации.
Тем не менее довольно просто изложено+ есть примеры применения. |
|
27-01-2010 06:492 Ирина: там в левом фрейме вычисления потенциала принадлежности, домножь просто на 100 и получишь процент принадлежности) |
|
23-03-2009 11:07Спасибо, там очень полезная информация. |
|
19-03-2009 02:30Смотрите более старую статью
http://dign.narod.ru/
Конечно без исходников, но описанные там алгоритмы нашли практичекое применение. |
|
17-03-2009 11:53Использовала данный материал в основе своего диплома. немного модифицировала его. огромное спасибо за статью. вот только один вопрос: мне необходимо как-то определить точность(эффективность) метода.т.е как бы ответить на вопрос: с какой точностью ответ?(например ответ:2 с точностью 95%). если кто может помочь, буду очень признательна. я нашла много информации про метод потенциальных функций, но там все нето. |
|
06-02-2007 02:16сообщение от автора материала Даже не знаю, что на эту критику ответить=) Да, и расстояние можно считать по Евклиду, и Фи(R) в данном случае зависит только от R. Но смысл моей статьи - показать основы не мной разработанного метода. А метод с моей точки зрения очень прост, легко модифицируем (пример: после обучения распознаем все эталоны, иногда они распознаются неправильно; в этом случае для этого эталона увеличиваем "заряд" на некоторую константу до тех пор, пока он не распознается правильно. Теперь Фи зависит не только от R) и при некоторых усилиях дает хорошие результаты. Когда год назад я защищал диплом и делал программу, работающую по этому методу, то нейронная сеть, реализованная одногруппницей, по точности проиграла моим потенциалам, хотя и работала быстрее.
Кстати, если сможете достать, рекомендую книгу Аркадьев, Браверман - Обучение машины классификации объектов, но где ж вы ее найдете, если она издана в середине 60х? |
|
29-01-2007 08:53Проголосовал за "написано неверно". Статья сама по себе неплохая, написана хорошо, но вот как раз для знакомства с теорией я бы ее не рекомендовал. Дело в том, что в теории распознавания образов используется другая терминология. Например, алгоритм распознавания. Зачем было заводить разговор о потенциалах, когда и без них можно обойтись? В конечном итоге функция fi(R) зависит только от R, и ни от чего более. Достаточно было просто рассчитать R для каждого из классов изображений, а результатом распознавания признать Класс, у которого R окажется наименьшим. Собственно, именно так работает алгоритм ближайшего соседа (nearest neighbour).
Как по-моему, весь разговор о многомерных кубах и расстоянии Хемминга только запутал дело. Что такое образ? Образ - это одномерный массив, он же вектор. В принципе, можно считать что этот массив - координаты точки в многомерном пространстве. Формулу, по которой считается расстояние между точками, изучают в школе. Использованное автором понятие кодового расстояния является ее частным случаем. Тоже верно, но зачем изобретать велосипед, а тем более тащить его из других наук?
Но, интересно, а как распознование образов реализовано в ... например "клевом чтеце"? Насколько их алгоритм сильнее/слабее, чем отличается?
Хорошенько порывшись в сети, можно найти штук пять статей от разработчиков FineReader. Каждая представляет собой венец журналистского искусства: написано много, ясно, вроде по делу, но ничего такого, что можно было бы использовать. Ясно, однако, что там не один алгоритм, а несколько, на разных уровнях восприятия. Анализируются и символы, и частота встреч таких символов в тексте, и слова. Это действительно продукт, который одиночке не вытянуть.
Давно интересовало, а как можно бороться с (предположительно) повернутыми изображениями?
Пытаться определить угол поворота и вертеть обратно ;) Но есть у изображения свойства, которые не изменяются даже при повороте на 90 градусов. Но там уже действительно непростая математика идет. Гугл находит, когда его про rotation invariant features спрашивают
Кстати, прекрасная тема - студентам курсовой дать :-)
кое-то уже дал : http://ocr.apmath.spbu.ru |
|
27-01-2007 10:11Ну, вот, и voldan, наконец-то добрался до обсуждения этой статьи )
Ну, что хочется отметить в первую очередь. Самое главное, автор очень подробно разжевал основополагающие моменты в так называемой "Теории распознавания", очень авторитетно дал понять, что простым смертным понять основы этой замечательной тематики не так уж сложно и бояться тут нечего (а то я уж и не стал бы читать далее статью :). А во-вторых, развитие систем распознавания можно уже возложить на себя, непременно отталкиваясь от базового уровня. Данный базовый уровень дается, подчеркиваю, очень толково. Посему, даю конечную оценку всему изложенному замечательными устами автора: великолепный продукт (статья), готовый к употреблению!
P.S. Никогда не занимался подобными вещами, но если, вдруг, придется, готовьтесь, пожалуйста, к освобождению своего почтового ящика от всякого хлама на эдак мегабайт 50. Для моих вопросов :)
Так держать, TPID! |
|
24-01-2007 01:36сообщение от автора материала Очень приятно, что такие уважаемые на Королевстве люди хвалят мою статью. Честно. Так что, похоже, придется мне продолжение писать :-) Теперь по порядку:
Давно интересовало, а как можно бороться с (предположительно) повернутыми изображениями?
Общей теории по этому поводу, как и в случае с собственно распознаванием, нет. Однако с моей точки зрения наиболее правилен подход, при котором все изображения(и для обучения, и входные ) поворачиваются относительно своего центра так, чтобы точка центра тяжести исходного изображения заняла заранее определенную позицию.
предварительная (пусть грубая) векторизация изображений, и работа в дальнейшем с массивом векторов, а не точек
В связи с тем, что на сканированных изображениях всегда есть помехи, сделать это очень сложно. По крайней мере, мне не удалось.
Но, интересно, а как распознование образов реализовано в ... например "клевом чтеце"?
А вот это - страшная коммерческая тайна, ABBYY никому не говорят :-) Ходят слухи, что у них там какая-то хитро обученная нейронная сеть, но правда это или нет - неизвестно.
А как автор оценивает производительность предложенного алгоритма с повышением размеров изображений и эталонов?
Скорость будет падать, конечно :-) Как я сказал в завершении статьи, иногда имеет смысл даже искуственно их уменьшить.
Электрический потенциал точечного заряда, однако, обратно пропорционален первой степени расстояния, а не второй
К моему стыду, залез в учебник по физике и убедился в вашей правоте. Но несмотря на это, известно много других устойчивых (дающих хороший результат в этом методе) потенциальных функций, например, логарифмическая. Название "метод потенциалов" как-то незаметно закрепилось, а сейчас уже никто, наверное, и не помнит, почему. Довольно грубая аналогия, и все.
Так и не удалось заставить программу распознать цифры 6 и 9. Еще были проблемы с четверкой.
Вероятно, ваш стиль написания этих цифр сильно отличается от эталонного. Попробуйте переобучить, т.е. заменить изображения в \fonts\ на ваши, написанные от руки. Основной смысл моей статьи - не добиться 99% точности, а показать, каким образом алгоритм можно обучать.
для успешного распознования образов надо писать цифру строго посередине... из-за чего теряется почти весь смысл распознавания образа...
Задача правильного выделения границ символа не менее сложна, чем задача распознавания. Никто вам не мешает поступить так, как делал Юрий в своей статье http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1203
И даже при написании в центре процент распознавания на уровне 50%, что очень мало...
См. выше. Алгоритм нужно обучить под что-то конкретное. У меня он обучен под машинописные цифры. |
|
23-01-2007 10:56Алгоритм на практике не применим, т.к. для успешного распознования образов надо писать цифру строго посередине... из-за чего теряется почти весь смысл распознавания образа...
И даже при написании в центре процент распознавания на уровне 50%, что очень мало...
Введения "потенциала" бессмыслено(по крайней мере с алгоритмической точки зрения), т.к. зная значения R(по сути количество совпавших пикселей на картинках) можно точно сказать какой образ искомый(естественно тот, на котором совпадений больше). |
|
21-01-2007 08:20Так и не удалось заставить программу распознать цифры 6 и 9. Еще были проблемы с четверкой. |
|
21-01-2007 01:17Молодец автор, хорошая статья! Респект! |
|
19-01-2007 04:54Замечательная статья!
Действительно, интересный момент - подоплека та же, что и в нейронных сетях - классификация на основе обучения по образцам, однако реализация проще и эффективней, я думаю, в плане качества. Однако - в плане быстродействия нейронным сетям, имхо, будет сильно проигрывать. Я так думаю потому, что:
в этом методе набор эталонов, образующих классы, сохраняется до этапа рабочего распознавания и используется при каждой идентификации полностью. Нейронная же сеть - это как раз попытка "автоматически" выделить признаки, общие для классов, и отказаться от хранения набора эталонов. Естественно - такой точности не будет, но прогнать образ через нейронку на порядок быстрее, если эталонов сотни и тысячи... Однако я не зря отметил "автоматически" кавычками - на самом деле не "автоматически", а "шамански", т.к. очень хочется выделить признаки классов, но сделать это точной формулировкой правил невозможно (а иногда влом - как с лингвистическими системами), и пытаются пошаманить с сетями и коэффициентами в надежде, что "выделится само".
Здесь же псевдо-выделение признаков классов, как в НС, не выполняется, а идет работа на уровне всех эталонных данных. Откуда и плюсы, и минусы...
ИМХО.
Спасибо автору, не премину использовать... Кстати, прекрасная тема - студентам курсовой дать :-) |
|
19-01-2007 01:49Понравилось, использование физической модели "потенциалов"... Когда писал такое же - все было куда труднее для понимания... Взял на заметку ) |
|
18-01-2007 05:59Интересная статья, полезная для общего развития. Электрический потенциал точечного заряда, однако, обратно пропорционален первой степени расстояния, а не второй :) |
|
17-01-2007 23:18Статья понравилась, как говориться зацепило...
Но, интересно, а как распознование образов реализовано в ... например "клевом чтеце"? Насколько их алгоритм сильнее/слабее, чем отличается? А как автор оценивает производительность предложенного алгоритма с повышением размеров изображений и эталонов? |
|
17-01-2007 12:50Хороша статья. "Вкусно, полезно, питательно" ;-) То есть и содержание хорошее, и подача и оформление. Приятно читать. От меня пока проблема распознавания образов далека, но если приспичит, то буду иметь в виду. |
|
17-01-2007 10:54Изложено замечательно, все понятно.
Давно интересовало, а как можно бороться с (предположительно) повернутыми изображениями?
И еще я подозревал, что значительно ускорить подобные алгоритмы может предварительная (пусть грубая) векторизация изображений, и работа в дальнейшем с массивом векторов, а не точек... Было бы интересно узнать об этом...
|
|
|
|