roboforum.ru

Технический форум по робототехнике.

 

Платформа для обкатки "Компьютерного зрения"

Наше хобби — конструировать и программировать.
Демонстрация готовых роботов и устройств построенных своими руками.

Платформа для обкатки "Компьютерного зрения"

Сообщение =DeaD= » 15 янв 2005, 14:46

Вот, сегодня закончил. Сейчас буду на ней тестировать "отслеживание" маяков специального вида.

Интерфесные платы: Phidget QuadServo (т.к. пока лень заниматься источником питания для них - приходится использовать по 1 на серву) - 2шт, еще не использует, но уже привинчено к общей доске - интерфейсная плата Phidget Interface Kit 8/8/8;

Камера: препарированная Genius VideoCAM NB 300;

Сервоприводы: Futaba S3004 - 2шт;

Материал: Вспененный пластик "Коматекс" толщиной 3мм и метизы (М2,М3,М5);

Инструменты: Линейка, карандаш, нож для резки бумаг, дрель, отвертка и плоскогубцы;

Время на изготовление: 2ч;
Вложения
cam-stand.jpg
cam-stand.jpg (22.45 КиБ) Просмотров: 7565
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение Kanoka » 15 янв 2005, 15:49

Чувствуется размах! Всмысле размеров, все компактно и главное с места на место переносить удобно :)

Это так, лирическое отступление, на самом деле с нетерпением жду результатов.
Kanoka
Модератор
 
Сообщения: 1271
Зарегистрирован: 11 ноя 2004, 03:18
Откуда: Москва

Сообщение ZERAM » 15 янв 2005, 17:03

присоединяюсь. работа выполена аккуратно. дальше дело за IQ
--
с Уважением, ZERAM
Аватара пользователя
ZERAM
 
Сообщения: 191
Зарегистрирован: 03 дек 2004, 13:06
Откуда: РБ, г.Уфа
прог. языки: delphi, 1c, php

Сообщение EdGull » 15 янв 2005, 17:13

тоже присоединяюсь. С нетерпением ждем-с результатов.
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Сообщение =DeaD= » 15 янв 2005, 18:50

Промежуточный доклад :)

Собрал кучу софта в общую программу:

1. Управление сервоприводами через библиотеку Phidgets;
2. Получение изображения с веб-камеры через библиотеку OpenCV;
3. Нагло содрал с демки распознавания квадратиков кучу кода;

Теперь можно моей программкой крутить камерой и она будет распознавать различные контуры в видимом изображении;

Сейчас для уровня №1 осталось дописать перебор контуров, выбор из них "наших маяков", чтение с них зашифрованной в 2хмерном коде информации и отметку их на изображении;

Для уровня №2 - сделаю слежение за маяком - т.е. чтобы вебкамера поворачивалась вслед за перемещаемым маяком.
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение =DeaD= » 15 янв 2005, 20:01

Предварительный доклад №2 :)

Перекроил распознавалку, теперь распознает параллелограмы.

Стабильно находит в 640х480 тестовый объект "двухмерный штрих-код в черной рамке" размером 8.5х8.5см на расстоянии до 2.4м, поля вокруг тестового объекта - минимум 2.5см, белые.

Решено переделать тестовый объект в размер 15х15см с полями 5см (общий размер объекта - 25х25см). Теоретически дальность действия должна возрасти до 4м.
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение =DeaD= » 15 янв 2005, 23:57

Практически полная победа! :)

Распознается достаточно малое количество вариантов двухмерного кода, осталось добавить хеш-биты и дело в шляпе.

Однако это уже на завтра - дело техники придумывать хэш функцию и рисовать несколько вариантов "маяков" с номерами.
Вложения
qcode-decoding.jpg
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение ZERAM » 16 янв 2005, 01:16

я правильно понимаю?! то что справа - это распознанное то что слева ?
вауууу! круто! поздравляю! даже не верится. покажи ещё чтонибудь.

завтра так завтра.
--
с Уважением, ZERAM
Аватара пользователя
ZERAM
 
Сообщения: 191
Зарегистрирован: 03 дек 2004, 13:06
Откуда: РБ, г.Уфа
прог. языки: delphi, 1c, php

Сообщение =DeaD= » 16 янв 2005, 09:35

Да, все правильно - слева изображение с веб-камеры, на нем желтые квадратики наложенные друг-на друга - распознанные функциями OpenCV прямоугольники при разных комбинациях фильтров (именно поэтому получается несколько наложенных квадратиков).

Далее я для каждого распознанного квадратика пытаюсь чуть варьировать координаты его углов не более чем на 1 пиксель и распознать двоичный код заключенный внутрь моего "маяка".

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

Сообщение setar » 16 янв 2005, 15:48

Здорово.
Это действительно серьёзное достижение, снимаю шляпу, и мои поздравления.
Аватара пользователя
setar
Site Admin
 
Сообщения: 9233
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Сообщение ZERAM » 16 янв 2005, 19:12

to DeaD, что там за "приват ареа" =) похоже на какой то системный блок =)
--
с Уважением, ZERAM
Аватара пользователя
ZERAM
 
Сообщения: 191
Зарегистрирован: 03 дек 2004, 13:06
Откуда: РБ, г.Уфа
прог. языки: delphi, 1c, php

Сообщение =DeaD= » 16 янв 2005, 19:21

ZERAM писал(а):to DeaD, что там за "приват ареа" =) похоже на какой то системный блок =)

А это наш персональный хаос и домашная обстановка. Короче самый что ни на есть Private Area :)
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение =DeaD= » 17 янв 2005, 12:35

В общем эру дешевой и точной навигации по квартире для роботов на базе ноутбуков с веб-камерой можете считать открытой :)

Окончательный релиз модуля распознавания маяков:

1. Проводит контроль целостности данных в маяке (маяк несет 15 битов информации, 4 бита на контроль целостности и 6 бит на определение ориентации);

2. Определяет расстояние до маяка исходя из размеров маяка.

Производительность сейчас на Pentium M 1.5GHz, RAM:512Mb дает 4-5fps, немного конечно :) но с другой стороны при движении камеры так все смазывается в изображении, что все равно отдельные snap-shot'ы только надо будет анализировать.

PS: На приведенном ниже рисунке указывает #, затем номер маяка, затем ":" и расстояние до него (в метрах).
Вложения
beaconb.jpg
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение =DeaD= » 31 янв 2005, 22:21

Выжал из этой платформы почти все, получилась "Система активного сканирования местности".

В данный момент система в автоматическом режиме сканирует сектор в 180 градусов с шагом 20 или 40 градусов (штатное или экспресс-сканирование). Время сканирования всего сектора в 180 градусов - 10 или 20 сек (соотв. штатный/экспресс режимы). Разумеется причина такого медленного сканирования - инертность матрицы и необходимость снятия нескольких измерений в каждом положении для усреднения результатов. Кроме того такое сканирование необходимо только если робот совсем "потерялся", если это не так - можно только по своему ожидаемому положению поворачиваться к маякам которые мы думаем что должны видеть и просто уточнять по ним свое положение - такая операция будет занимать не более 2-3 сек.

Приблизительная точность определения своего положения, при наличии 3 маяков с достаточно большим углом относительно робота - при экспресс сканировании - 30 градусов и +/- 20см, при штатном сканировании - 10 градусов и +/- 10см. Маяки расположены на расстоянии 1.5, 2 и 2.4м соотв.

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

Изображение
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

вопрошаю:

Сообщение nest » 24 фев 2005, 16:01

интересно....

вопрошаю :  

1. каков размер "входной" картинки в пикселях ?
1.а. есть ли возможность "брать" картинки с HDD (просто файлы в какой либо дирректории)?
2. какова минимальная конфигурация для компа ? :)
Аватара пользователя
nest
 
Сообщения: 977
Зарегистрирован: 21 янв 2005, 12:16
Откуда: Germany
Предупреждения: -4
прог. языки: asm

След.

Вернуться в Наши проекты

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

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

Mail.ru counter