roboforum.ru

Технический форум по робототехнике.
Текущее время: 03 дек 2024, 13:47

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Робот - картежник
СообщениеДобавлено: 10 апр 2010, 01:54 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2681
Откуда: Где-то в Латинской Америке
Задумал я обучить своего шашечного манипулятора какой-нибудь несложной карточной игре, типа «в очко». Для начала думаю над системой распознавания карт роботом. Понятно, что логичнее всего использовать для этого WEB-камеру, которая всегда под рукой. Проще всего было бы крапить карты каким-нибудь цветным кодом. Но это не очень эстетично и трудоемко. Другой вариант – распознавать буквы и цифры в уголке карты. Порылся в и-нете, с целью найти готовый ActiveX для распознавания символов. Но кроме громоздких приложений, для распознавания сканированных текстов, ничего не нашел. Вариант попроще– сравнивать изображение с образцами картинок. Но, опять же, ничего удобного в использовании не нашел. Поискал алгоритмы – предлагают в основном попиксельное сравнение, что мне кажется, в условиях меняющегося освещения, не даст нужного результата. Думаю, что надо делать как-то так:
- полученное с камеры изображение преобразовать в ч/б низкого разрешения ориентируясь на яркость пикселей (пока тоже не знаю, как попроще это сделать),
- получить массив данных,
- сравнить с массивами образцов, используя какую-то оценочную функцию,
- выбрать наиболее совпавшее.
Если у кого есть такой опыт, буду признателен за советы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - картежник
СообщениеДобавлено: 10 апр 2010, 08:07 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Надо образцы кадров на которых что-то распознавать потом, без этого разговор о сферическом коне. Будут там видны цифры и буквы, не будут - фиг знает, может даже человек не различит на кадре.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - картежник
СообщениеДобавлено: 10 апр 2010, 14:11 
Не в сети
Аватара пользователя

Зарегистрирован: 08 мар 2010, 20:19
Сообщения: 22
Откуда: Херсон
прог. языки: C++, Delphi, ASM, Си
ФИО: Шульга Алексей
Тут, в принципе, ничего хитрого нет.

Сначала нужно определить(найти) карту, для этого желательно играть на однородном фоне.
*Потом нужно трансформировать участок изображения с картой.
А потом пройтись ИНС. Профит.

*Обратный вариант: хранить образец высоком разрешении и трансформировать уже его, только нейросеть уже не прокатит.

_________________
Смотри в корень!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - картежник
СообщениеДобавлено: 10 апр 2010, 14:59 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
Scorpio, активикс вам еще зачем, исходники и библиотеки в виде dll`ок вам чем не угодили?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - картежник
СообщениеДобавлено: 10 апр 2010, 22:49 
Не в сети
Аватара пользователя

Зарегистрирован: 12 окт 2008, 12:40
Сообщения: 369
Откуда: Красногорск, Подмосковье
А RoboRealm не подходит?

_________________
OpenSimpleLidar - проект простого самодельного лидара.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - картежник
СообщениеДобавлено: 13 апр 2010, 02:06 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2681
Откуда: Где-то в Латинской Америке
Извиняюсь, был в отъезде...
=DeaD= писал(а):
Надо образцы кадров на которых что-то распознавать потом, без этого разговор о сферическом коне.

Для облегчения задачи, решил, что буду распознавать карты не на столе, а уже во время раздачи. Сделаю эдакий контейнер для колоды, который будет выплевывать по одной нижней карте из колоды игроку или роботу. Несведущему игроку, будет и невдомек, что на дне черного ящика спрятано подглядывающее устройство. Преимущество очевидно – карта всегда в одном и том-же положении, масштабе и можно использовать подсветку. Т.е. робот получая карту, уже будет знать ее достоинство. А за игроком можно и не подглядывать.
Levsha128 писал(а):
Тут, в принципе, ничего хитрого нет...

При слове нейросети меня бросает в дрожь. Никогда ими не занимался.
Angel71 писал(а):
Scorpio, активикс вам еще зачем, исходники и библиотеки в виде dll`ок вам чем не угодили?

Вы будете смеяться, но на ПК я по старой привычке пишу на VB6. DLL-ки можно, но не все. VB6, например, не поддерживает вызов обратных функций. Но DLL-к я тоже по конкретной теме (сравнение 2-х изображений) пока не нашел.
citizen писал(а):
А RoboRealm не подходит?

Реалм распознаванием символов не занимается, сравнением картинок вроде как тоже. Хотя он умеет массу полезных для робостроителя вещей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - картежник
СообщениеДобавлено: 13 апр 2010, 02:32 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
:) нет желания устраивать диспут, но беглый поиск по "VB6 callback" говорит немного о другом. вникать ошибаюсь или нет желания тоже нет. в любом случае, искать нужный activex затея сомнительная.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - картежник
СообщениеДобавлено: 13 апр 2010, 17:43 
Не в сети
Аватара пользователя

Зарегистрирован: 12 окт 2008, 12:40
Сообщения: 369
Откуда: Красногорск, Подмосковье
В roborealm есть такая вещь:
http://www.roborealm.com/help/Fiducial.php
картинки вроде распознает(там внизу пример есть).

_________________
OpenSimpleLidar - проект простого самодельного лидара.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - картежник
СообщениеДобавлено: 15 апр 2010, 01:16 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2681
Откуда: Где-то в Латинской Америке
На практике оказалось все не так просто. Несмотря на то, что карты в контейнере будут располагаться одинаково, малейшее смещение изображения существенно усложняет анализ. Нашел таки библиотеки, сделанные для этих целей профессионалами на http://www.elphotox.com. Но, даже они не могут отличить 6-ку от 8-ки той-же масти (если фоткать только уголок карты), либо путаются при смещении той-же карты. К тому-же они сильно платные и все время выскакивает мерзкое окошко, призывающее к регистрации. Видимо всеже прийдется крапить карты цветным кодом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - картежник
СообщениеДобавлено: 15 апр 2010, 07:04 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
а вот такое видел?
http://aimatrix.nm.ru/aichip2/AITest02.htm


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - картежник
СообщениеДобавлено: 15 апр 2010, 08:23 
Не в сети

Зарегистрирован: 24 мар 2010, 19:45
Сообщения: 30
Откуда: Пермь
Skype: skype.ieremeev
прог. языки: С++, PHP, Delphi,
ФИО: Еремеев Игорь Михайлович
Я сейчас занимаюсь разработкой робота сортировщика. Это что то типа подъемного крана, работающего в 3 осях. Вот там тоже применяю распознавание. Картинка с веб камеры берется, перебирается попиксельно, находя нужную деталь, оттаскивает ее в определенное место. Для того чтобы не было проблем с освещенностью, нужно сделать в программе функцию автокорректировки. Тоесть программа сканирует изображение определяет освещенность и сравнивает ее с какой нибудь эталонной таблицей. В которой находятся диапазоны цветов для каждой освещенности.

Но тут будут еще проблемы в том, что по краям изображения будут искажения, потому что расстояние от камеры до краев больше чем например в центре, хотя в вашем случае может это не критично. В моем просто нужно точное позиционирование объекта и подъемника.

Вот пример видео как это работает:

http://www.youtube.com/watch?v=gQ_IR071mhM


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - картежник
СообщениеДобавлено: 15 апр 2010, 15:29 
Не в сети
Аватара пользователя

Зарегистрирован: 18 сен 2008, 17:31
Сообщения: 134
Skype: tsrodger
прог. языки: VB.Net, C, PHP
Вы вроде на VB пишите - почему бы не попробовать EmguCV (порт OpenCV под .Net)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - картежник
СообщениеДобавлено: 15 апр 2010, 15:43 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
покажите реальную картинку того, что нужно распознавать


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - картежник
СообщениеДобавлено: 16 апр 2010, 18:43 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2681
Откуда: Где-то в Латинской Америке
Angel71 писал(а):
покажите реальную картинку того, что нужно распознавать

Вот к примеру определить, что карты по горизонтали одинаковые,а по вертикали разные.
Вложение:
Комментарий к файлу: картинки полученные с камеры
proba.jpg
proba.jpg [ 95 КиБ | Просмотров: 2829 ]
Вложение:
Комментарий к файлу: преобразованные в ч/б
proba1.jpg
proba1.jpg [ 66.18 КиБ | Просмотров: 2828 ]
Вложение:
Комментарий к файлу: с укрупнением пикселей
proba2.jpg
proba2.jpg [ 65.6 КиБ | Просмотров: 2824 ]

Смещение в контейнере м.б. и больше.
Пока что думаю сравнивать так:
1.Распознавать отдельно область масти и область значения карты, красные и черные сразу разделить.
2. Распознаваемую область вписать в прямоугольник эталонного размера,
3. Сравнить с эталоном по трем параметрам: количество черных пикселей, количество ЧП на своих местах, количество ЧП не на своих местах.
Посмотрю, что из этого получится.
Спасибо всем за советы. В выходные изучу их повнимательнее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - картежник
СообщениеДобавлено: 16 апр 2010, 21:25 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
:angel: уууух, да тут всё просто идеально. :oops: нейронка легко с такой задачей справиться. единственно "укрупнение пикселей" немного не понравилось.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 33


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO