IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Алгоритм распознования образов на основе персептрона, C++/qt
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


Данная работа является расширением решенной вот этой задачи.
На данном этапе я успел разработать только интерфейс, и пришел сюда за советом, а не за тем, что бы кто-то написал за меня:)
Я так понимаю, что : Преобразование изображения в пиксельную сетку и отображение матрицы пикселей точно такое-же, как и в ранней работе?
Я вообще хочу понять, как правильно спроектировать основную логику распознования. Допустим мы получили матрицу пикселей.
Далее берем каждый элемент , выполняем все шаги, в соотвествии с алгоритмом (Дельта-правило, стр.13)
Я правильно понимаю?Ещё я так понял, надо разделить область ввода изображение на 35 квадратов?
Пока я только пытаюсь разобраться с теорией алгоритма, если что не так описал, прощу прощения, и говорю спасибо за любой ответ:)
А да, забыл чуток, вот ещё пример программы аналогичной, разработаной на delphi smile.gif

Сообщение отредактировано: Andrewshkovskii -


Прикрепленные файлы
Прикрепленный файл  Распознавание_оптических_образов_с_помощью_однослойного_персептрона.pdf ( 296.77 килобайт ) Кол-во скачиваний: 4344
Прикрепленный файл  var.zip ( 298.05 килобайт ) Кол-во скачиваний: 410
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


Опять к работе, после проветривания мозгов.
Ну дело такое, что сетку и массив пикселей строиться так же, остается дело в том, как работать с алгоритмом, и как его реализовать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата
Я вообще хочу понять, как правильно спроектировать основную логику распознования. Допустим мы получили матрицу пикселей. Далее берем каждый элемент , выполняем все шаги, в соотвествии с алгоритмом (Дельта-правило, стр.13) Я правильно понимаю?
Правильно понимаешь. Каждую букву алфавита тебе надо прогнать через персептрон, чтобы сравнить возвращаемый им ответ с правильным (с тем, который от системы распознавания ожидается, в твоем случае - гласная/согласная буквы).

Цитата
Ещё я так понял, надо разделить область ввода изображение на 35 квадратов?
Да, для того, чтобы обработать каждую букву, ее изображение разбивается на 35 квадратов, каждому из которых устанавливается веса... (далее - происходит обучение методом настройки весов по алгоритму Хебба).

Дельфийскую программу пока не смотрел, она может только помешать, захочется сделать именно так, как там, даже если можно сделать по-другому. Если в процессе обсуждения (я надеюсь, оно будет? smile.gif ) столкнемся с какими-либо непреодолимыми препятствиями - тогда загляну в код для Дельфи
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


Да-да , будет, Вольво, ты меня во многих "проблемах" выручил, и я не хочу этим горидиться..но иногда мне нужен интеллектуальный толчок!:)
Сейчас я кое-что допилю в интерфейсе, что бы удобно было дальше работать, и буду разбираться с логикой, как что-то разберу, или встряну - я приду сюда, сформулирую вопрос, выскажу свои догадки и попрощу помощи:)
А да, забыл только про свой вариант, у меня не гласные/согласные, а определенные символы( альфа, лямблда и т.д) , задано 2 скорости обучения( 0.3, 0.6) и вес W3j принадлежит отрезку [0;0.1].

Сообщение отредактировано: Andrewshkovskii -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


Вопрос : измениться ли качество разпознования, если мы будем изображение разбивать не на 35 , а , допустим, на 30 квадратов?Т.е. меньше квадратов - меньше нейронов в персептроне. Просто не объяснено откуда взялось значение 35 в мет. указаниях..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Изменится, естественно. Чем "мельче" ты разобьешь исходное изображение, тем точнее оно будет распознаваться. С одной стороны. С другой - тем больше ресурсов тебе понадобится на это распознавание и больше времени уйдет на обучение.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


ну у нас не промыщленные масштабы, так что я думаю это не критично будет.
Я вот что хочу спросить :
W[i][j] - что это? т.е. Wi[0] это нейроны персептрона, а именно Wij? Просто смотрю на картинку, и мне становиться казаться что это вектор каждого фрагмента изображения..?(я разбиваю на 30 квадратов, точнее на квадраты по 30х30, как в прошлом задании)..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Цитата
W[i][j] - что это? т.е. Wi[0] это нейроны персептрона, а именно Wij?
А я вот смотрю в твою методичку, и не понимаю, откуда ты взял W[i][j] вообще? Wi[t] - вижу, Wij - не присутствует...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


Цитата(volvo @ 10.04.2010 19:03) *

А я вот смотрю в твою методичку, и не понимаю, откуда ты взял W[i][j] вообще? Wi[t] - вижу, Wij - не присутствует...

Вот отсюда..
Изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






А, ну да, у тебя же обучение по дельта-правилу в задании, я почему-то решил, что обучение по Хеббу...

Там чуть выше написано: "В отличие от элементарного персептрона данная ИНС имеет 10 нейронов". Итого - 10 нейронов, каждый имеет такую структуру как на рис. 5, а следовательно - 35 весов у каждого. Отсюда и i = 1 .. 10, j = 1 .. 35
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


Ну нейронов там столько, сколько эталонов должно быть.А я хотел узнать вот что :
Можно ли изображение разбивать на квадраты, как было сделано в прошлой задаче?или же необходимо изображение разбить на эти 35 квадратов, определить есть ли в квадратике пиксель(кусок изображения, 1- есть, 0 - нет изображения или его части в этом квадратике),посылаем на каждый нейрон "выход" каждого квадратика, и уже там делаем всю логику?
Просто на меня с одной стороны давит опыт прошлой работы, с другой указания в методичке, и как там это показано..Вот и не могу определиться..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


В общем я так подумал..не подойдет представление озображение и работа с этим представление в персептроне, все это можно использовать для отображения изображения, но не работы с ним через нейроны (т.к там большой вектор 0 и 1 (900 элементов) , а нам надо от каждолго изображения 30-35 нулей и едениц - решение о заполнености каждого из 30-35 квадратов.Хотя можно подумать над преобразованием этого вектора..Допустим, взять каждую строку(ведь этот вектор - преобразованая матрица 30х30) и проверять на сколько она заполнена 1 и 0, и если более чем на х%, то писать 1, если менее -0.
Или я всетаки что-то усложняю?
Там же мы как-бы уменьшали изображение, а не разбивали..
Ещё я думаю что можно сделать сделать вот так : разбить изображение на 30 квадратов(что бы не менять сейчас его размер..), потом для каждого квадрата : "ткнуть" в центр, и если там естьчерным цвет - то писать 1, если нет то 0".
Вот мои догадки..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


В принципе я кое-что понял...не обязательно делить изображение на 30 квадратов, достаточно послать тот самый вектор из матрицы 30x30.. Там ещё ошибка в формуле. В общем я разобрался, спасибо,Volvo !:)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Гость






Цитата(Andrewshkovskii @ 13.04.2010 3:32) *

В принципе я кое-что понял...не обязательно делить изображение на 30 квадратов, достаточно послать тот самый вектор из матрицы 30x30.. Там ещё ошибка в формуле. В общем я разобрался, спасибо,Volvo !:)


Указали бы где конкретно ошибка и в какой формуле для тех кто будет просматривать ваше сообщение в будущем ...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Бывалый
***

Группа: Пользователи
Сообщений: 155
Пол: Мужской

Репутация: -  0  +


Why not settling on games that is fun and at the same time your earning. Well itll make suspense because of the game as well but dude just try it and it gave me hope while pandemic is real rn. 3 Things You Need to Do When You Play in an Online Casino
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 8:26
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name