как научить робота видеть?

koteishna
Offline
Зарегистрирован: 18.02.2012

 Здравствуйте! Подскажите, пожалуйста, какую систему сенсоров (или может камеру или видео контроллер?) нужно использовать для того, чтобы робот "видел" объекты? Если точнее, робот должен знать расстояние до объекта, определять скорость объекта, если он движется, определять одушевленный он или нет...то есть на примерах: робот должен уметь отличить дерево от человека, в толпе людей выделить ближнего к нему, определить стоит возле него человек или идет к нему навстречу.

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>должен знать расстояние до объекта<< 
 

Всевозможные дальномеры.

>>определять скорость объекта, если он движется<<

Только если сам он неподвижен.

Все остальное из области ИИ.

>>определять одушевленный он или нет<<

Все просто . ставите детектор души и определяете.

 

step962
Offline
Зарегистрирован: 23.05.2011

nestandart пишет:

>>определять одушевленный он или нет<<

Все просто . ставите детектор души и определяете.

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

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>В качестве такого детектора можно использовать тепловизор<< 

Ой не факт.

Ложных сигналов будет вагон.

Температура "поверхности человека" вожет варьироваться в больших пределах пределах.

Зависит от температуры воздуха и того во что одет/не одет человек.

step962
Offline
Зарегистрирован: 23.05.2011

nestandart пишет:

Ой не факт.

А Arduino (=8-битный контроллер) в качестве платформы вы готовы рассматривать? 

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>А Arduino (=8-битный контроллер) в качестве платформы вы готовы рассматривать? << 

Не понял. Это вы очем ?

Zaliv
Offline
Зарегистрирован: 05.03.2011

 Задача, что Вы описали, до конца еще не решенная. Тема очень объемная, нет даже не так - ОЧЕНЬ ОБЪЕМНАЯ. Если охота погрузиться можно попробовать (при наличие английского) посмотреть вот этот курс https://www.ai-class.com/home/  сейчас он закрыт уже, но материалы доступны. Компьютерное зрение темы 16-18, но вообще весь курс интересный. Я, например, влюбился в алгоритм Particle filters, описанный в теме 11 - видео 18, это алгоритм нахождения себя в пространстве роботом, ну очень элегантный и относительно несложный в программирование алгоритм.

Обсчитывать это конечно надо на более производительном процессере, чем на Ардуино, но Ардуино все равно удобен будет для общение с железом (сенсорами и двигателями).

step962
Offline
Зарегистрирован: 23.05.2011

nestandart пишет:

>>А Arduino (=8-битный контроллер) в качестве платформы вы готовы рассматривать? << 

Не понял. Это вы очем ?

А вы считаете, что arduino.ru - это место, гле активно обсуждается что-то более мощное, чем 8-битовые контроллеры?

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>А вы считаете, что arduino.ru - это место, гле активно обсуждается что-то более мощное, чем 8-битовые контроллеры?<< 

 

Из десятка таких МК можно собрать гораздо более интересную вещь.

Но вы правы задачи озвученые топик стартером  слишком сложны для дуины.

carduino.ru
Offline
Зарегистрирован: 06.12.2011

Смотря какие обьекты рассматривать для распознавания

вот пример на ардуино

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

step962
Offline
Зарегистрирован: 23.05.2011

carduino.ru пишет:

Смотря какие обьекты рассматривать для распознавания

Топик-стартер четко определил - одушевленных человеков. Надо полагать - имелись в виду духовно богатые люди, цитирующие Бальмонта и Сашу Черного.

Цитата:

вот пример на ардуино

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

Ндя. Вот что-то подобное и предполагал увидеть...

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

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

На самом деле там все обстоит несколько по другому.

Но для обработки (полноценного) видеосигнала у дуины явно не хватит мозгов.

У меня занакомые инженеры видеонаблюдения написали прогу для камеры.

Так вот камера наводится на лицо человка (подобные технологии задествованы в фотоаппаратах) .

Если человек начинает двигаться камера отслеживает изменение пикселей и поворачивается в соответствующюю сторону.

Подобным образом определяется и движение к камере/от камеры.

 

carduino.ru
Offline
Зарегистрирован: 06.12.2011

step962 пишет:

 

Ндя. Вот что-то подобное и предполагал увидеть...

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

Ну ты и сравнил, муху с бегемотом.

Здесь реально обрабатывается изображение и выводятся координаты найденного обьекта.

step962
Offline
Зарегистрирован: 23.05.2011

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

carduino.ru
Offline
Зарегистрирован: 06.12.2011

А тебе извесны иные типы распознавания?

Помоему даже извесная библиотека OpenCV в основном своей использует фильтры 

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

Если прицепить к Ардуине внешнюю оператвку и обучить на ПК нейронную сеть нужным образам и после обучения перенести все веса нейронов на ардуину , то ардуино вполне справится с небольшим разрешением и с ЧБ изображением

Но сравнивать фоторезистор с обработкой видеосигнала, не совсем корретно.

Топикстартеру с его задачей нужно смотреть в сторону Kinect и OpenCV

step962
Offline
Зарегистрирован: 23.05.2011

carduino.ru пишет:

А тебе извесны иные типы распознавания?

Задача распознавания образов - перевести реальную картинку в подобие того, что приведено на ролике. Далее в дело вступают общематематические методы фильтрации, сортировки, ... В приведенном ролике присутствует лишь то, что в задаче распознавания образов обрабатывается на самом последнем этапе.

Цитата:
Помоему даже извесная библиотека OpenCV в основном своей использует фильтры

В основе своей она использует 4 арифметических действия. Можно ли по этому критерию любую арифметическую задачу относить к задачам распознавания образов?

Цитата:

вполне справится с небольшим разрешением и с ЧБ изображением

Переход на ЧБ только усложняет задачу распознавания образов. Банальный пример - африканские травоядные очень плохо видят желтого гепарда на фоне зеленой растительности. Почему? Да потому что зрение у них черно-белое. 

Цитата:

Но сравнивать фоторезистор с обработкой видеосигнала, не совсем корретно.

Видеоматрица - это массив фоторезисторов (фотодиодов, фототранзисторов, ...). Два фоторезистора - это тоже массив. Причем, массив весьма эффективно используемых элементов, отыскивающих в телесном угле почти 180 градусов объект с угловыми размерами 1/2 градуса.

koteishna
Offline
Зарегистрирован: 18.02.2012

  ))Так и думала, что "знатоки" привяжутся к слову "одушевленный". Если бы написала "отличать живых от неживых", это было бы не правильно с точки зрения биологии, ведь дерево тоже растет и питается (5 класс, природоведение), но его распознавать нужно на том же уровне, что и самый обычный камень, но оно стоит на месте, а та же машина, скажем, едет, но и на нее не надо обращать никакого внимания. Выделять нужно было только людей и кошек/собак на крайний случай.

В общем, крохи полезной информации, которые я извлекла из всего этого, поправьте, если ошибаюсь: камеру Arduino не потянет. Можно использовать комплекс датчиков. Кстати, почему нельзя определять скорость объекта, если робот находится в движении? как же понятие "относительная скорость"? 

В общем, задача действительно очень сложная, поэтому я сюда и обратилась. Кстати, могу подкинуть еще пищу для критики: 

есть такой вариант: (топорно, конечно, но...без изучения новых библиотек и т.д.) дальномер и 3 ИК-датчика с фиксированным углом определения - 110 градусов. Датчики расположены перекрёстно. Захватывают диапазон 270 градусов в сумме. То есть у нас появляется 5 "зон". Дальше всё понятно. Очень грубое определение местоположения, знаю)) Но. если заняться, скажем так, "аппроксимацией", то есть подключить большее количестко ИК, можно сузить размеры этих зон. Как вам?)

Для ясности: делаю робота-промоутера. При обнаружении объекта должен будет подъехать к нему на определенное расстояние и отдаль листовку. Очень строгое определение местоположения не обязательно.

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>Кстати, почему нельзя определять скорость объекта, если робот находится в движении? как же понятие "относительная скорость"? << 

А если они движуться в одном направлени , с одной скоростью ?

Если машина будет оснащена камерой то не вопрос.

А вот если аналоговыми датчиками которые определяют перемещение обекта относительно (не общего фона) 

а некой средней точки между датчиками , то нет.

 

>>есть такой вариант: (топорно, конечно, но...без изучения новых библиотек и т.д.) дальномер и 3 ИК-датчика с фиксированным углом определения - 110 градусов. Датчики расположены перекрёстно. Захватывают диапазон 270 градусов в сумме. То есть у нас появляется 5 "зон". Дальше всё понятно. Очень грубое определение местоположения, знаю)) Но. если заняться, скажем так, "аппроксимацией", то есть подключить большее количестко ИК, можно сузить размеры этих зон. Как вам?)<<

 

Да не особо.

На моем роботе стоял всего один датчик , который вращался на серве.

Я свободно имел эффект 5-6 датчиков (хотя можно было увеличить до 180).

И этим одним (физически) датчиком определял полжение препятствия относительно рлобота.

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>Для ясности: делаю робота-промоутера. При обнаружении объекта должен будет подъехать к нему на определенное расстояние и отдаль листовку. Очень строгое определение местоположения не обязательно.<<

Это не вы на myrobot.ru пытались заказать изготовление подобного аппарата ?

koteishna
Offline
Зарегистрирован: 18.02.2012

    >>Это не вы на myrobot.ru пытались заказать изготовление подобного аппарата ?<<

Нет, не я.)

   >>А если они движуться в одном направлени , с одной скоростью ?<<

Это очень редкий случай. Простое исключение решит вопрос. 

   >>На моем роботе стоял всего один датчик , который вращался на серве.

   Я свободно имел эффект 5-6 датчиков (хотя можно было увеличить до 180).

   И этим одним (физически) датчиком определял полжение препятствия относительно рлобота.<<

 Это отличная идея! Спасибо за советы, nestandart!

carduino.ru
Offline
Зарегистрирован: 06.12.2011

koteishna пишет:

 Можно использовать комплекс датчиков. Кстати, почему нельзя определять скорость объекта, если робот находится в движении? как же понятие "относительная скорость"? 
 

Если робот имеет колесный привод то для определения скорости и пройденного расстояния используется энкодер.

koteishna
Offline
Зарегистрирован: 18.02.2012

>>Если робот имеет колесный привод то для определения скорости и пройденного расстояния используется энкодер. <<

Да, больше вроде нет способов

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>Да, больше вроде нет способов<< 

Для определения скорости ?

А как же акселерометр ?

 

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>Если робот имеет колесный привод то для определения скорости и пройденного расстояния используется энкодер.<< 

Определение пройденного расстояния тоже не простая задача (плавали , знаем).

Я применял комплекс датчиков (акселерометр , энкодеры , датчики тока моторов) и то получал  погрешность на 100м пройденного пути.

Т.е была задача "туда по приборам , назад по сохраненным данным".

koteishna
Offline
Зарегистрирован: 18.02.2012

 >>А как же акселерометр ?<<

Мой промах. Совсем забыла об этом устройстве. Наверняка, есть и другие...

carduino.ru
Offline
Зарегистрирован: 06.12.2011

Цитата:
есть такой вариант: (топорно, конечно, но...без изучения новых библиотек и т.д.) дальномер и 3 ИК-датчика с фиксированным углом определения - 110 градусов. Датчики расположены перекрёстно. Захватывают диапазон 270 градусов в сумме. То есть у нас появляется 5 "зон". Дальше всё понятно. Очень грубое определение местоположения, знаю)) Но. если заняться, скажем так, "аппроксимацией", то есть подключить большее количестко ИК, можно сузить размеры этих зон. Как вам?)

А как насчер ультразвукового измерителя расстояния на приводе из сервомотора?

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>Наверняка, есть и другие<< 

Есть.

Например скорость можно экспериментально рассчитать по току моторов.

koteishna
Offline
Зарегистрирован: 18.02.2012

   >> Я применял комплекс датчиков (акселерометр , энкодеры , датчики тока моторов) и то получал погрешность на 100м пройденного пути.

   Т.е была задача "туда по приборам , назад по сохраненным данным".<<

Погрешность получалась за счет неверного определения углов? Или каким образом?

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>А как насчер ультразвукового измерителя расстояния на приводе из сервомотора?<< 

Дальность маленькая.

Можно поискать лазерный дальномер. Может попадаются не дорогие ?

 

 

carduino.ru
Offline
Зарегистрирован: 06.12.2011

nestandart пишет:

 

Например скорость можно экспериментально рассчитать по току моторов.

А если едет в гору или с горы например.

Ток при прохождении препятствия может увеличиватся в разы

koteishna
Offline
Зарегистрирован: 18.02.2012

 >>А как насчер ультразвукового измерителя расстояния на приводе из сервомотора?<<

Можно подробнее?

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

 >>Можно подробнее?<<

Тоже самое что и ИК , только на ультразвуке (подобие эхолота).

Так же имеет свои достоинства перед ИК и недостатки перед им же.

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>А если едет в гору или с горы например.

Ток при прохождении препятствия может увеличиватся в разы <<

Да , так и будет.

Но это можно учитывать.

Если нужен точный рассчет скорости и траектории он будет не лишним.

 

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

Вместо "изобретения" машинного зрения я бы пересмотрел алгоритм работы.

Например управляемый робот.

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

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

 >>Погрешность получалась за счет неверного определения углов? Или каким образом?<<

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

Углы поворотов считали по времени поворота и количеству щелчков энкодера.

Просто там очень много факторов.

 

carduino.ru
Offline
Зарегистрирован: 06.12.2011

koteishna пишет:

 >>А как насчер ультразвукового измерителя расстояния на приводе из сервомотора?<<

Можно подробнее?

Вот пример но только без сервы

Еще есть оптический измеритель расстояния

koteishna
Offline
Зарегистрирован: 18.02.2012

 у меня  пока на данный момент система из трёх ИК детекторов (http://www.electronshik.ru/card/ik-detektor-passivniy-sen0018-114311) и дальномера (http://www.electronshik.ru/card/datchik-rasstoyaniya-20-150-sm-gp2y0a02yk0f-111918). Поробую поэкспериментировать. Посмотрим что получится. Может на серво посажу что-то. 

carduino.ru
Offline
Зарегистрирован: 06.12.2011

Не путайте пирсенсор с ик детектором, это разные вещи 

Дальномер радиусом всего на 1,5м , карту помещения на нем не построить

koteishna
Offline
Зарегистрирован: 18.02.2012

 >>Не путайте пирсенсор с ик детектором<<

а в чем отличие?

carduino.ru
Offline
Зарегистрирован: 06.12.2011

Пирсенсор срабатывает только на движение предмета в узком спектре инфракрасного диапазона  излучения.

 ИК детектор срабатывает на отражение  ИК луча от предмета 

koteishna
Offline
Зарегистрирован: 18.02.2012

 Так разве пирсенсор не лучше в этом случае? не дерево он не среагирует. Или нет?

koteishna
Offline
Зарегистрирован: 18.02.2012

 >>Дальномер радиусом всего на 1,5м , карту помещения на нем не построить<<

А не подскажете дальномер мощнее? Желательно, с этого же сайта

Mastino
Offline
Зарегистрирован: 03.12.2011

koteishna пишет:

 >>Не путайте пирсенсор с ик детектором<<

а в чем отличие?

А зачем это все вам? Вы хотите чтобы робот ездил по комнате и не врезался в стенку?

Mastino
Offline
Зарегистрирован: 03.12.2011

koteishna пишет:

 Так разве пирсенсор не лучше в этом случае? не дерево он не среагирует. Или нет?

среагирует

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

 >>Так разве пирсенсор не лучше в этом случае? не дерево он не среагирует. Или нет?<< 

Не забывайте что имеете дело с дешевым китайским оборудованием , так что гемороя с отладкой будет море.

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>Вы хотите чтобы робот ездил по комнате и не врезался в стенку?<< 

Там все несколько сложнее.

Нужно , не только обезжать препятствия , но и определять движущихся людей (именно людей!).

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

 

Вот вам  алгоритм , который не так уж сложно создать.

Робот стоит , отслеживает пространство .

Когда в зоне детекции появляется обект выше 1.5м , машина начинает отслежитвать направление его движения (все просто , как движение за рукой) по двум ИК или  УЗ датчикам.

И движется за ним .

Попутно можно попробовать "отстрелять" зону лица термодатчиком (но это потом).

 

koteishna
Offline
Зарегистрирован: 18.02.2012

 Термодатчиком? Можно пример дешевле 100000 рублей?

И еще, как определить объект выше 1,5 м?

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>Термодатчиком? Можно пример дешевле 100000 рублей?<<

search.digikey.com/us/en/products/MLX90614ESF-BCI/MLX90614ESF-BCI-ND/2666249 

Можно перебратьт что то такое (выбросить лишнее).

48000.ru/product.php

>>И еще, как определить объект выше 1,5 м?<<

Вести детекцию на этой высоте.

Mastino
Offline
Зарегистрирован: 03.12.2011

koteishna пишет:

 Термодатчиком? Можно пример дешевле 100000 рублей?

И еще, как определить объект выше 1,5 м?

если появляются такие вопросы, не думаю что эта задача в целом по силам вам..

koteishna
Offline
Зарегистрирован: 18.02.2012

 Mastino, спасибо за Ваше мнение. 

  >>Вести детекцию на этой высоте.<<

Ну да, слишком усложняю всё в своей голове.