Модераторы: Rickert

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Распознавание геометрических фигур на плоскости 
:(
    Опции темы
Гость_mln
Дата 8.11.2005, 20:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Всем привет.
Задание это по предмету Системы искусственного интеллекта.
Задача такая: необходимо реализовать распознавание геометрических фигур на плоскости.
Есть bmp картинка треугольника, квадрата, круга или ромба, например. Пусть уже имеется матрица цветов этой картинки, т.е. каждому пикселю bits[i] соответствует его цвет.
Как можно реализовать распознование и по какому алгоритму?
Посоветуйте пожалуйста.
  Вверх
DragonFire
Дата 9.11.2005, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: 5
Всего: 9



Ну можно попробовать использовать нейронные сети... Научить нейрон отличать квадрат, от ромба и трейгольник, от круга... Сам я работал только с текстом, но я думаю, тут такая же фишка прокатит...
Вот по этой ссылочке я описывал распознование текста, может поможет: http://forum.vingrad.ru/index.php?showtopic=68416
И еще, размеры картинок должны быть одинаковые... Вот единственный недостаток...


--------------------
PM MAIL ICQ   Вверх
DENNN
Дата 9.11.2005, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 3
Всего: 43



Ищите геометрические примитивы - линии и точки. Потом уже анализ изображения на уровне геометрии, а не растра
PM ICQ   Вверх
Guest
Дата 10.11.2005, 23:40 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(DragonFire @ 9.11.2005, 07:26)
Научить нейрон отличать квадрат, от ромба и трейгольник, от круга... Сам я работал только с текстом, но я думаю, тут такая же фишка прокатит...
Вот по этой ссылочке я описывал распознование текста, может поможет: http://forum.vingrad.ru/index.php?showtopic=68416

вот как нейрон обучать хотелось поподробнее понять. а тот пост я уже читала, думаю здесь иначе придется делать, не через векторы..
  Вверх
Гость_mln
Дата 10.11.2005, 23:42 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(DENNN @ 9.11.2005, 15:31)
Ищите геометрические примитивы - линии и точки. Потом уже анализ изображения на уровне геометрии, а не растра

вряд ли, ведь картинка как раз и задана как растр, матрицей пикселей..
  Вверх
DragonFire
Дата 11.11.2005, 08:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: 5
Всего: 9



А в том то и дело, что не вектора. Именно простенькая нейронная сетка.
Есть у тебя нейрон. Ты подаешь ему на вход сигналы. Допустим у нас картинка 5х5, поэтому сигналов 25: сигнал "1" - если черная клетка, "0" - если белая. Нейрон твой жует твои сигналы и выдает ответ "Треугольник" это или нет, рассчитывая это по формуле: <РЕЗУЛЬТАТ>=<сигнал1>*<Вес1>+<сигнал2>*<Вес2>+...+<сигнал25>*<Вес25>;
If <РЕЗУЛЬТАТ> > <Порог> then Буква - А, если нет, то не А.
Все здесь сводится к тому, чтобы рассчитать эти <Вес> так, чтобы когда у нас поступали сигналы c треугольника, то выражение <Результат> было больше порога, обычно он берется 1.5 или 0.5. Такой процесс называется обучением нейрона. Вот и вся задача. Обучаешь 4 нейрона - каждый на распознования своей определенной геометрической фигуры...
Теперь об обучении. Для начала создай текстовый файл, в котором будут хранится веса синапсов(изначально поставь им значения по 0.1 и поставь порог в программе 1.5). Далее, в своей программе загрузи этот файл и загрузи рисунки твоих фигур. Для начала попробуй создать нейрон, распознающий треугольник твоя фигура - или нет. Для этого считывай с картинки сигналы каждого пикселя и рассчитывай результат по вышеприведенной формуле. Если он не тот, какой нужен (например ты даешь ему круг, а он пишет, что треугольник), то изменяй вес каждого синапса "ЧЕРНОЙ" клетки на 0.01. И пересчитывай по-новой. Если он стал отвечать правильно, то переходи к следующей картинке и работай с ней. Когда дойдешь до последней картинки, переходи на первую. Кстати, забыл сказать (но я думаю ты и сам догадался) если ты загружаешь след. картинку и результат сразу правильный - сразу переходи с следующей. И если все картинки правильно распознаются, то сохраняй значения в файл и радуйся... smile
Единственное что - нужно прогнать программу раз 100, чтобы нейрон обучился, поэтому можешь придумать какой-нибудь автоматический цикл. И если хочешь, скажи мне свое мыло, я тебе пришлю пример программы, тока для букв. А может (если будет время) и напишу именно прогу для геом. фигур. Если что не понятно объяснил - спрашивай. Я не учитель...

smile Прошу модератора разрешить прикрепить рисунок к этому сообщению, а то то что я написал не очень понятно... Плиз... DENNN рисунки помещать хочу!



--------------------
PM MAIL ICQ   Вверх
DENNN
Дата 11.11.2005, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 3
Всего: 43



Цитата
Цитата (DENNN @ 9.11.2005, 15:31)
Ищите геометрические примитивы - линии и точки. Потом уже анализ изображения на уровне геометрии, а не растра

вряд ли, ведь картинка как раз и задана как растр, матрицей пикселей..

Я, собственно, и предлагаю искать из по растру. К примеру, уже давно для различного подвида задач используются алгоритмы определения координат точки (или площадного объекта) по изображению с подпиксельной точностью.
PM ICQ   Вверх
Тима
Дата 15.3.2006, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 15.3.2006

Репутация: нет
Всего: нет



Привет.
Мне надо собрать различные алгоритмы распознавания геометрических фигур(чисто теорию, не реализовывая).
Можешь чем-нибудь почомь?
PM MAIL   Вверх
DragonFire
Дата 16.3.2006, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: 5
Всего: 9



Вот - с помощью сеток нейронных...


--------------------
PM MAIL ICQ   Вверх
mr.DUDA
Дата 16.3.2006, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 7
Всего: 232



DragonFire, нажми "предварительный просмотр", там снизу кнопка "Обзор" для прикрепления файлов... smile


--------------------
user posted image
PM MAIL WWW   Вверх
DragonFire
Дата 18.3.2006, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: 5
Всего: 9



Класс, тока криво как то... на главную нельзя вынести было, чтобы нубы как я не парились ? smile


--------------------
PM MAIL ICQ   Вверх
Мурлыкатам_
Дата 4.11.2007, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 5.2.2007
Где: город-герой Минск

Репутация: нет
Всего: 2



А может поможете найти алгоритм для определения количества углов в фигуре, во время обхода границы фигуры методом Жука?


--------------------
Хочешь что-то сделать - сделай это сам или попроси помощи на винграде smile
user posted image
PM MAIL ICQ   Вверх
Мурлыкатам_
Дата 6.11.2007, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 5.2.2007
Где: город-герой Минск

Репутация: нет
Всего: 2



DENNN
Цитата

Я, собственно, и предлагаю искать из по растру. К примеру, уже давно для различного подвида задач используются алгоритмы определения координат точки (или площадного объекта) по изображению с подпиксельной точностью.


А можно с этого места поконкретней?
Мне оч нуно посчитать углы в фигурах, все фигуры - черные, фон - белый.
Обхожу пока по клику мышью границу методом жука, тот метод которым я пользуюсь считает чего-то у треугольника и прямоугольника одинаково кол-во углов :((
Мот подскажите хотя бы название какого-нить алгоритма поиска углов в фигуре?


--------------------
Хочешь что-то сделать - сделай это сам или попроси помощи на винграде smile
user posted image
PM MAIL ICQ   Вверх
DragonFire
Дата 6.11.2007, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: 5
Всего: 9



м.б. самому попробовать придумать? Задачка же вроде скорее геометрическая чем на н.с... Сам угол можно найти скажем так: берем 2 соседние точки пишем уравнение прямой и проходим по всем точкам в линии, как тока какая то точно не принадлежит прямой значит это угол, и мы стоим новую прямую и идем дальше...
Ну это навскидку, я люблю просто велосипеды((( 


--------------------
PM MAIL ICQ   Вверх
Мурлыкатам_
Дата 7.11.2007, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 5.2.2007
Где: город-герой Минск

Репутация: нет
Всего: 2



DragonFire, приколист smile)) велосипеды smile))

Я уже придумал smile Даже работает.
Если кому интерестно или нужно, могу поделиться идеей.


--------------------
Хочешь что-то сделать - сделай это сам или попроси помощи на винграде smile
user posted image
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование игр, графики и искуственного интеллекта"
Rickert

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.

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

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема »


 




[ Время генерации скрипта: 0.1393 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.