roboforum.ru

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

Самообучающийся робот или спустите с небес на землю ))

Самообучающийся робот или спустите с небес на землю ))

Dpakon » 04 дек 2013, 22:03

Здравствуйте уважаемые. Спустите с небес на землю или я все же в правильном направлении мыслю. Есть следующая идея для самообучаегося робота. И так, для начала роботу нужно зрение, а так же своеобразное чувство расстояния до объекта. Имея Kinect Microsoft и среду разработки для него можно показать роботу мир, а вот объяснить, что и чем является, будет сложнее. Но идея есть. Если робот будет задавать вопрос «Что это?» каждый раз увидев новый предмет и получив объяснение этому (на начальном этапе, хоть через клавиатуру вбивать ответ, а в будущем прикрутить генератор голоса и распознавание речи) будет заносить это увиденное в своеобразную базу данных со временем можно будет научить робота различать довольно много вещей. Появляется этакая своеобразная способность к самообучению. Поскольку мое направление микроэлектроника и программирование я только осваиваю, подскажите какие подводные камни вылезут при такой вот системе самообучения? Критика приветствуется.

Re: Самообучающийся робот или спустите с небес на землю ))

Myp » 04 дек 2013, 23:38

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

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

кинект выдаёт карту глубины, не 3D объекты какие-то, а именно карта глубины пространства
Изображение
вот такая малопонятная картинка
если обойти со всех сторон то получим такую же малопонятную 3D модель.
причём не какую то конкретную, а в виде массива точек, тоесть то что массив точек это шар, надо будет ещё догадаться.
вот немного про распознавание 3D
http://confpubs.ru/p6_11.php

Re: Самообучающийся робот или спустите с небес на землю ))

dccharacter » 04 дек 2013, 23:47

Отличная идея! По итогам работы алгоритма будет собрана база из n объектов, где n = количеству кадров, захваченных кинектом. Робота можно при этом даже с места не двигать. При формате камеры 640x480 удастся получить 2^(640*480) различных изображений одного объекта с одного ракурса съемки. Повторяем все это для бесконечного количества разных ракурсов и имеем наконец нормальное представление одного объекта. После этого повторяем для каждого объекта.
Самое сложное позади.
Теперь когда робот обучен, остается сделать кадр и поискать его по базе.
Это будет немножко затратно по памяти, поэтому сразу предлагаю отказаться от 8-ми битных микроконтроллеров. Возьми сразу STM32. И, возможно, еще память внешнюю - можно USB-брелок или SD-карту. Гига 4 или лучше 8. Я бы остановился на SanDisk, но можно и Transcend. На других флешках ребята пробовали, но они не тянут задачи обучения/распознавания.

Re: Самообучающийся робот или спустите с небес на землю ))

Dpakon » 05 дек 2013, 00:47

Myp писал(а):видеть объект и понимать что это объект способен только человек.
робот видит только то чему ты его научил.
то есть процесс работает на оборот, сначала ты обучаешь конкретному предмету, а потом, если повезёт, робот сможет найти среди хаоса этот предмет.

А как же маленькие дети? Ребёнок не рождается со знанием того что на него смотрит врач, он в больнице, вон там стул и стол. Детей ведь приходится учить. Я понимаю что пример немного не верный, но в общем похож.


Myp писал(а):понятие "объект" это чисто человеческая фигня, только человек может осмысленно разделить например стол и вазу стоящую на столе на 2 объекта.
для робота в лучшем случае будет нечто типа "столоваза", массив точек с 4мя выступами вниз по краям и одним вверх по центру.

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


Myp писал(а):кинект выдаёт карту глубины, не 3D объекты какие-то, а именно карта глубины пространства
Изображение
вот такая малопонятная картинка
если обойти со всех сторон то получим такую же малопонятную 3D модель.
причём не какую то конкретную, а в виде массива точек, тоесть то что массив точек это шар, надо будет ещё догадаться.
вот немного про распознавание 3D
http://confpubs.ru/p6_11.php

В этой статье показанно как видит кинект. http://www.gercekbilim.com/kinect-fusio ... cok-kolay/ Возможно что мелкомягкие в SDK 1.7 привинтили, что то интересное, но челокек, чайник и другие предметы не плохо выделяются на фоне стены или стола. Конечно, что бы отличить что есть, что картинку нужно будет прогнать через множество фильтров, но это мне еще предстоит узнать ))
За ОБЗОР АЛГОРИТМОВ РАСПОЗНАВАНИЯ 3D спасибо. Прочту обязательно.

PS: Наверно я еще не достаточно хорошо понимаю как работает вся система от того и кажется все просто ))
А если попробовать пойти по другому варианту. Научить робота отделять теплые вещи от холодных. В таком случае имя 3D модель человека конорый на фоне стены будет ясно выделяться робот начнет понимать что вот это человек, а по зади что то еще не преодолимое. Если посадить того же человека на стул то он тоже будет выделяться и в единую картинку со стулом не сольется.

Добавлено спустя 6 минут 24 секунды:
dccharacter писал(а):Отличная идея! По итогам работы алгоритма будет собрана база из n объектов, где n = количеству кадров, захваченных кинектом. Робота можно при этом даже с места не двигать. При формате камеры 640x480 удастся получить 2^(640*480) различных изображений одного объекта с одного ракурса съемки. Повторяем все это для бесконечного количества разных ракурсов и имеем наконец нормальное представление одного объекта. После этого повторяем для каждого объекта.
Самое сложное позади.

Я понял. Заумучаешься объект крутить.

dccharacter писал(а):Теперь когда робот обучен, остается сделать кадр и поискать его по базе.
Это будет немножко затратно по памяти, поэтому сразу предлагаю отказаться от 8-ми битных микроконтроллеров. Возьми сразу STM32. И, возможно, еще память внешнюю - можно USB-брелок или SD-карту. Гига 4 или лучше 8. Я бы остановился на SanDisk, но можно и Transcend. На других флешках ребята пробовали, но они не тянут задачи обучения/распознавания.

Пардон, это прикол такой? Я вообще думал о чем то более мощном, для начала какой нить сервак, благо лежит пока незаюзаный монстр двухголовый на оптронах, а диск... так тут не один ссд не спасет. Для такого быстродействия вижу только саздание виртуального диска в оперативной памяти. Там по крайней мере хоть тормозов не будет. Всю возможную базу конечно туда не загрузить, а использовать только наиболее, часто встречающиеся объекты, ну а остальное подтягивать с HDD по мере необходимости.

Re: Самообучающийся робот или спустите с небес на землю ))

dccharacter » 05 дек 2013, 03:53

Есть простое предложение. Не надо наиболее встречающихся объектов. Просто начни с алгоритма, который может отличить кошку от собаки. Ты, кстати, на верном пути. Т.е. когда комп спросит первый раз "что это?" ты ответь собака, а второй раз - кошка. После этого немножко поиграйся с параметрами и как только добьешься уверенного распознавания между кошкой и собакой, двинешься дальше. Это уже будет просто.

Re: Самообучающийся робот или спустите с небес на землю ))

Angel71 » 05 дек 2013, 06:35

Dpakon писал(а):А как же маленькие дети? Ребёнок не рождается со знанием того что на него смотрит врач, он в больнице, вон там стул и стол. Детей ведь приходится учить. Я понимаю что пример немного не верный, но в общем похож.

в общем вообще очень далеко похож. а насколько громадные затраты ("вычислительные" ресурсы, памяти и времени) на обучение? +у человека при распозновании настолько много всяких вещей происходит, что в принципе даже сравнивать не стоит. не говоря о том, что распознование/угадывания образа - это только малая часть. :) задача решается либо очень узко и относительно простенько, либо хотелка потребует громадных ресурсов и то пока вроде никому даже близко не удалось ничего подобного сделать и не важно, сколько миллиардов на это тратили. +с самими алгоритмами есть кучи тонкостей и приколов. амеры в ангаре визуальную распознавалку танков делали, делали и доделали - 100% распознование, круть! вытащили из ангара и всё, а де танк? нету танка. банально нейросеть натаскали в одних условиях, а на уличке немного другое освещение (допустим было пасмурно). или более простой примерчик из жизни студенческой - дома нейросеть натаскали на распознование букв (с искажениями текста, с шумами и т.д.), вроде всё нормально. а на зачёте или хз, что там было, но вот захотелось пару тестовых картинок добавить, а генератор картинок дома остался... упс, а к преподу очередь с зачёточками всё меньше и меньше. открыли какой-то редактор, попрыскали точечек и сохранили файлик. а не распознаёт - банальная шутка, что сеть натаскали с шумами с каким-то там расспределением, а тут ручками попшикали точечек. пришлось все картинки по быстрому переделать и заново обучение запустить. и т.д., а направлений алгоритмов просто море и у каждого будут свои тонкости. но нарваться на такой прикол, как с нейронками очень легко - банально одну камеру на другую смените или ещё что поменяется.

Re: Самообучающийся робот или спустите с небес на землю ))

dccharacter » 05 дек 2013, 07:15

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

Re: Самообучающийся робот или спустите с небес на землю ))

Angel71 » 05 дек 2013, 09:33

у мозга другие алгоритм и другая архитектура. :pardon: в лобовую что-то подобное пока малореально делать, по этому во-первых и сравнивать не стоит, во-вторых нужно для конкретной задачи, эксперементировать так сказать с тем, что есть. а по сути для варианта "чудо-юдо самообучающее, скоро начнёт думать" ничего толком и нет.

Re: Самообучающийся робот или спустите с небес на землю ))

dccharacter » 05 дек 2013, 18:35

Короче, вот робот в процессе обучения по алгоритму ТС:

Re: Самообучающийся робот или спустите с небес на землю ))

Dpakon » 06 дек 2013, 01:03

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

Если кошку от собаки тогда гдето по следующему алгоритму.

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

Добавлено спустя 9 минут 35 секунд:
Angel71 писал(а):в общем вообще очень далеко похож. а насколько громадные затраты ("вычислительные" ресурсы, памяти и времени) на обучение?

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


Angel71 писал(а):+у человека при распозновании настолько много всяких вещей происходит, что в принципе даже сравнивать не стоит. не говоря о том, что распознование/угадывания образа - это только малая часть. :)

Я понимаю, что робототехнике до полноценного ИИ тут еще рости и рости... много лет или десятков лет.

Angel71 писал(а):задача решается либо очень узко и относительно простенько, либо хотелка потребует громадных ресурсов и то пока вроде никому даже близко не удалось ничего подобного сделать и не важно, сколько миллиардов на это тратили.

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

Добавлено спустя 1 минуту 18 секунд:
dccharacter писал(а):Мозг работает сначала как выделитель объекта, а потом как классификатор. А твоя идея сыпется уже на первом шаге.

Тут момент понял... приближаюсь к земле, дайте подушку :)

Добавлено спустя 2 минуты 54 секунды:
Angel71 писал(а):у мозга другие алгоритм и другая архитектура. :pardon: в лобовую что-то подобное пока малореально делать, по этому во-первых и сравнивать не стоит, во-вторых нужно для конкретной задачи, эксперементировать так сказать с тем, что есть. а по сути для варианта "чудо-юдо самообучающее, скоро начнёт думать" ничего толком и нет.

Идея сводилась к тому, что бы в конечном итоге, научить комп распознавать объекты, но сейчас понимаю, что не все так просто.

Добавлено спустя 54 секунды:
dccharacter писал(а):Короче, вот робот в процессе обучения по алгоритму ТС:

ИМЕННО! Это и должно было получиться в конечном итоге!

Re: Самообучающийся робот или спустите с небес на землю ))

Кьюберт Фарнсворт » 06 дек 2013, 05:45

Dpakon писал(а):
dccharacter писал(а):Есть простое предложение. Не надо наиболее встречающихся объектов. Просто начни с алгоритма, который может отличить кошку от собаки. Ты, кстати, на верном пути. Т.е. когда комп спросит первый раз "что это?" ты ответь собака, а второй раз - кошка. После этого немножко поиграйся с параметрами и как только добьешься уверенного распознавания между кошкой и собакой, двинешься дальше. Это уже будет просто.

Если кошку от собаки тогда гдето по следующему алгоритму.

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

Проще использовать рентген(или терагерцовый сканер) и определять объект по строению черепа :D

Re: Самообучающийся робот или спустите с небес на землю ))

dccharacter » 06 дек 2013, 06:00

Мне кажется надо оптическими методами анализировать спектр задней полусферы выхлопа объекта

Re: Самообучающийся робот или спустите с небес на землю ))

noonv » 06 дек 2013, 08:24

про базу объектов - посмотрите про RoboEarth

Re: Самообучающийся робот или спустите с небес на землю ))

Кьюберт Фарнсворт » 07 дек 2013, 02:04

Dpakon писал(а):Есть следующая идея для самообучаегося робота. И так, для начала роботу нужно зрение, а так же своеобразное чувство расстояния до объекта. ...

А зачем роботу зрение?! Можно для начала использовать RFID-метки. На каждый предмет приклеить метку(собаке и кошке на поводок, человеку в трусы :ROFL: ). И всё, робот станет различать предметы по номерам :Yahoo!:
И никаких вопросов от робота. В дальнейшем робота можно "проинформировать": например, чётные номера - живые "предметы", нечётные - неживые. Предметы с номерами с 00001 по 00100 из одной комнаты, предметы 00101...00200 из другой, 00501...00600 - ваще из гаража. Считав метки, робот "узнает" какие вещи(номера) его окружают. "Самообучение" сводится к тому, что роботу необходимо к новому номеру добавить дополнительную информацию о предмете.

Re: Самообучающийся робот или спустите с небес на землю ))

Nesenin » 07 дек 2013, 10:58

Кьюберт Фарнсворт писал(а):
Dpakon писал(а):Есть следующая идея для самообучаегося робота. И так, для начала роботу нужно зрение, а так же своеобразное чувство расстояния до объекта. ...

А зачем роботу зрение?! Можно для начала использовать RFID-метки. На каждый предмет приклеить метку(собаке и кошке на поводок, человеку в трусы :ROFL: ). И всё, робот станет различать предметы по номерам :Yahoo!:
И никаких вопросов от робота. В дальнейшем робота можно "проинформировать": например, чётные номера - живые "предметы", нечётные - неживые. Предметы с номерами с 00001 по 00100 из одной комнаты, предметы 00101...00200 из другой, 00501...00600 - ваще из гаража. Считав метки, робот "узнает" какие вещи(номера) его окружают. "Самообучение" сводится к тому, что роботу необходимо к новому номеру добавить дополнительную информацию о предмете.

как все просто...
стоит робот в центре комнаты. вокруг вещи, люди\звери с rfid. как эти rfid считать на расстоянии 0-10м? как определить местоположение относительно робота?


Rambler\'s Top100 Mail.ru counter