roboforum.ru

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

Зрение человека. Компьютерное зрение. Аналогия.

Re: Зрение человека. Компьютерное зрение. Аналогия.

flyroman » 16 июл 2010, 20:57

Vorral писал(а): Так ребята, я знаю как увеличить скорость ваших алгоритмов. Берёте из 640х480 квадрат в центре 64х48 и обрабатываете его. Скорость возрастёт в 100 раз! Ну как вам идея? :ROFL: Мы же не в детском саду в конце концов.


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

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

P.S. Со стереопарой понятно-это только для отработки алгоритма....

Re: Зрение человека. Компьютерное зрение. Аналогия.

Wowa » 17 июл 2010, 13:45

Как мене кажется у вас тут другая проблема :) Тут не проблема обработать регион - тут проблема найти этот регион. Вторая проблема: обработака в железе - тоже надо начать - как и какие данные передать/обработать. Я когда начал заниматься с ПЛИСобнаружил что там на всё так просто. ПЛИС содержит много ячеек но не всегда их можно использовать более чем на 75%... Плюс в ПЛИС мало памяти - нужна дополнительная внешняя. Ну и последнее - те ПЛИС которые за человеческие деньги - работают на довольно низкой частоте и имеют мало ног и ячеек. Нужно для начала провести анализ - какая операция на каких данных сколько забирает времени. Если будет в железе работать быстрей - то Ок. Потом у меня была идея сделать и обработку видео из камер прямо в ПЛИС - а из неё уже то что надо с нужной предварительной обработктой. Сожные разсчёты делать в ПЛИС сложно. Практически один из вариантов - строить МК (или несколько МК) в ПЛИС и писать для них програму. Но всегда можно сделать МК который небудет содержать ничего лишнего и иметь их много... Столько для начала... Предлагайте...

Re: Зрение человека. Компьютерное зрение. Аналогия.

Vorral » 17 июл 2010, 14:10

2flyroman
Ты постоянно говоришь об аналогии с человеческим зрением, но забываешь самое главное, у него то фокусировка основана на физическом принципе. Так, что если проводить аналогию, то с сточки зрения железа мы должны иметь два дорогих фотоаппарата с механическим фокусом, которые ещё ТОЧНО должны поворачивать куча сервопривидов в нескольких степенях свободы. А обрабатывать данные должны несколько серверов с многоядерными процессорами. Проводишь аналогию, нужно делать это как можно точнее. И становиться понятно, что это слишком дорого и не практично на данном этапе становления человечества. Поэтому я и сказал, что ты предлагаешь глупость в таком виде(программная фокусировка). Тем более нужно делать и предлагать алгоритмы и их оптимизировать. Иначе кому вообще нужно твоё предложение? У тебя и большинства нет никаких наработок по ТЗ, так что это как предлагать пустоте какие то оптимизации. Которые понятное дело ни кому не нужны. А те кто обладают подобными разработками, уже давно переросли детский сад и им это тоже не нужно.
Wowa
Какие ещё ПЛИС и тем более МК?? Это, что шутка?? Люди уже давно производят в этом плане готовые, не дорогие и не сильно большие по размерам решения. На которых много примеров и удобно программировать. Например нетбуки. Они по значению производительность/стоимость НА порядок опережают всё остальное. И даже их мощности, включая использование графических карт для вычислений МАЛО. Использовать ПЛИС это шаг назад и делать это глупо. Нужно нацеливаться ИСКЛЮЧИТЕЛЬНО на массовые продукты. Потому как только они будут стоить умеренных денег из за огромным тиражей. При этом я описал ещё не все минусы ПЛИС'вом. Они и МК будут иметь только одно предназначение, обработка не сложных операций в разнообразного рода контроллерах. Ни о какой обработки видео, кроме промышленных маштабов, речи идти НЕ МОЖЕТ.

Re: Зрение человека. Компьютерное зрение. Аналогия.

Wowa » 17 июл 2010, 14:24

Ок :) Я програмировал OpenCV на доске с ATOM 330N и ION - и скажу вам - очень медленно работает. Годится так для определения лица :) Серьёзную работу может делать с картпнкой максимально 320х240. и то с частой не более чем 15 кадров. Так что успехов вам и я иду делать свою глупую работу на ПЛИС дальше сам.

P.S. OpenCV CUDA (UBUNTU) работает быстрей но там другого рода проблемы. ПЛИС XC3S200 и 8 мегабит ДДР обрабатывает две камеры OV7670DS (640х480) в реальном времени с фильтрацией 3х3 и 5х5 с задержкой на 3 или на 5 линий из картинки. Причём может обрабатывать это в 8 слоях - один слой - один фильтр. потом ещё есть реал тиме гистограма как по Х так и по У ОДНОВРЕМЕННО!!! Есть заготовка для паралельного определения вектора движения части картинки но для этого надо найти более ёмкую ПЛИС. Или придумать как это розделить на две.

P.P.S. всё это со скоростью доставки данных из камеры - 25 - 30 кадров в секунду.
Последний раз редактировалось Wowa 17 июл 2010, 14:38, всего редактировалось 4 раз(а).

Re: Зрение человека. Компьютерное зрение. Аналогия.

Duhas » 17 июл 2010, 14:33

Vorral, я уже представляю себе "трансформера" с торчащими из пуза связками нетбуков, перемотанных скотчем...

Wowa, вы не теряйтесь, пишите что сделано или будете делать, просто фильтруйте комментарии )

Re: Зрение человека. Компьютерное зрение. Аналогия.

Сергей » 17 июл 2010, 15:08

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

Re: Зрение человека. Компьютерное зрение. Аналогия.

Vorral » 17 июл 2010, 15:10

Уже много раз поднималась тема и вывод всегда один. Сначала разработать алгоритм, а это проще и удобнее на ПК. А дальше, если он окажется востребованным можно думать. К этому и вопрос, если есть предложение использовать ПЛИС, сразу логичный вопрос: А для каких целей??? И какой конкретно алгоритм там запускать? Когда ответите, тогда по чуть чуть начнёт приходить осознание того, что к чему. Мы ведь говорим о домашнем роботостроении? Слова без конкретных цифр, по которым можно произвести сравнение, просто слова. А вот давайте сверим характеристики ПЛИС и тех же ПК(например платформы ION), куда входят число ядер, кол-во транзисторов в каждом из них, техпроцесс их изготовления, набор выполняемых инструкций, программное обеспечение для них, уровень расширяемости, совместимость с предидущими поколениями, стоимость, скорость развития платформы, кол-во точек продаж, ничего не забыл???? Это разве не тех характеристики, которые нужны и интересны нам?? Повторю ещё раз, начинать с использования ПЛИС в домашнем роботе это неоправданный гемморой, без какого то стоящего результата. Идея ПЛИС хороша, но те кто выбирают их как основу "мозга" робота, однозначно проиграют время и в итоге и результат, тем кто начинает с ПК.
Последний раз редактировалось Vorral 17 июл 2010, 15:31, всего редактировалось 3 раз(а).

Re: Зрение человека. Компьютерное зрение. Аналогия.

Wowa » 17 июл 2010, 15:23

Флаг вам в руки.. Сравнивайте НЕСРАВНИТЕЛЬНОЕ :)

P.S. Я извеняюсь конешно, но я не русский. И живу я за границей.. Нет у меня практики.. Я и так когда пишу по 10 минут вспоминаю или ищю слова :) Буду стараться.

Re: Зрение человека. Компьютерное зрение. Аналогия.

Vorral » 17 июл 2010, 15:26

Ещё как сравнительное, ведь у нас же есть цель? Или её нет и это очередная демогогия на свободную тему, как здесь любят??

P.S. Тогда даже очень не плохо пишешь, если учесть, что русский не родной.

Re: Зрение человека. Компьютерное зрение. Аналогия.

Сергей » 17 июл 2010, 15:31

1) Ставим задачу
2) Получаем алгоритм, который необходимо просчитать
3) Реализуем его на одной платформе
4) Реализуем его на другой платформе
5) Сравниваем

Re: Зрение человека. Компьютерное зрение. Аналогия.

alad » 12 авг 2010, 18:29

После прочтения темы идея ограничить область зрения для ускорения обработки изображения с камер понравилась. Только вот совершенно не раскрыт вопрос того, как определять области, которые нужно анализировать в первую очередь? :)

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

Закономерности:
1. Прежде всего взгляд останавливался на наиболее близких объектах, расположенных по вектору движения... видимо, как наиболее значимых для навигации (ближайшие люди на тротуаре перед тобой, статические препятствия)
2. Из группы наиболее близких объектов наибольшее значение имели те, расстояние до которых уменьшалось быстрее (встречные люди, деревья вдоль тротуара и т.д.)
3. При наличии объектов в непосредственной близости, внимание более отдалённым объектам практически не уделялось
4. Внимание уделялось объектам за пределами ближайшей зоны только при условии постоянства обстановки по пунктах 1-2, так сказать для оценки общей ситуации. :)
5. Оглядываться по сторонам всё равно приходилось регулярно

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

1. Делаем временную засечку.
2. Получаем изображения с камер.
3. Формируем полную карту глубин изображения (с использованием optical-flow, например)
4. Выделяем по карте глубин отдельные объекты
5. Определяем порядок обработки объектов по увеличению дистанции до объекта, либо по скорости изменения положения объекта относительно предыдущего цикла, либо по расположению объекта относительно центра кадра.
6. Берём по одному объекту и, зная расстояние и контур, производим их обработку: распознование образов, топопривязка, анализ скорости сближения и т.д.
7. После обработки каждого объекта проверяем время, прошедшее с начала цикла: если оно меньше некой заданной величины, то берём следующий объект, а если лимит времени на один цикл превышен, то начинаем новый цикл.

Таким образом при обработке изображения мы сможем фиксировать "внимание" только на тех объектах, которые нам интересны, например быстро изменяют своё положение или находятся ближе всего к нам.

Что думают форумчане?

П.С. Кстати, шаг №4 (выделение объектов по карте глубин) тоже можно приоритезировать.
Например, генерить на ткаждом цикле грубую карту расстояний, сравнивать с предыдущим циклом, строить матрицу векторов скорости и начинать выделение объектов в наиболее интересных частях изображения.

П.П.С. Можно и несколько критериев посика/обработки объектов объединить: два самых близких, потом самый яркий, потом самый быстрый и т.д.

Re: Зрение человека. Компьютерное зрение. Аналогия.

EDV » 12 авг 2010, 21:16

Отличная мысль! Наблюдательность в исследованиях – это первое дело. Достаточно много разумных гипотез высказано было, на проверку всего этого, правда много времени уйти может. Если что, тут есть мои изыскания в навигации, но пока всё слишком примитивно.

Re: Зрение человека. Компьютерное зрение. Аналогия.

Vorral » 13 авг 2010, 00:13

2alad
Ну всё так и есть, как сказано. Навигация действительно будет быстрее работать, если рассматривать координаты близлежащих объектов в первую очередь и если мы двигаемся, то откидывать дальние объекты(даже не откидывать, а бегло просмотреть,не вдаваясь в детали, ведь опасность может прийти ото всюду). Так как может быть придётся ещё потратиться на расчёты ухода от столкновения, которые по понятным причинам должны поступить вовремя. :) Подобные вещи обычно довольно очевидны. У меня подобных оптимизаций задумано много, фактический на каждое действие алгоритма. Проблема лишь в скорости реализации, уж очень медленно код получается писать. Словами легко пояснить порядок действий и принцип алгоритма. А вот на написание даже какой то довольно мелкой части, уходят недели или месяца. Мы же не вечно живём. :)

Re: Зрение человека. Компьютерное зрение. Аналогия.

Skywise » 01 сен 2010, 12:34

Доброго времени суток.
flyroman - то, о чем вы говорите имеет определение - фовеальное зрение, существует ряд статей журнала нейрокомпьютер в которых приведены исследования на данную тему, если будет желание ознакомиться я могу отсканировать их и выложить. Размытие, о котором вы говорили, имеет ряд причин:
1) неоднородное расположения палочек, колбочек на сетчатке;
2) многоступенчатая фильтрация в слоях сетчатки (горизонтальные и амакриновые клетки).
На счет проблемы стереопсиса, существующие алгоритмы основаны исключительно на геометрических преобразованиях и, как мне кажется, мало похожи на их нейрофизиологический аналог, как мне кажется, формирование стереоизображения связано с многими факторами:
1) расположение глаз;
2) синхронизация глаз по типу ведущий, ведомый;
3) пересечение глазных нервов в оптической хиазме;
4) одной из гипотез является то, что вычитание стереопар основано на on/off рецептивных полях ганглиозных клеток;
5) фовеальное зрение.
В любом случае, мне кажется, что следует строить аналог бионического зрения с использованием нейросетей, а не только на логике.

Re: Зрение человека. Компьютерное зрение. Аналогия.

flyroman » 20 окт 2010, 14:18

Да я вас поддерживаю, Skywise....


Кстати а ребятам хочу сказать:
Вы пишите свои программы, допустим на обработку одного кадра уходит 341 мс.... ЭТО МНОГО...вы это и сами понимаете , что это много.., и думаете как бы уменьшить время...далее уменьшаете шаг распознавания по всей площади - одинаковый.... хотя по аналогии с человеческим зрением.....на что он смотрит," то обрабатывается с большим качеством...а остальное с меньшим ".....

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

- Он молодой человек, среднего роста....
- Скоро я поеду домой....
- А он неплохой....

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

так же и со зрением....мы идем по улице не замечая лиц и домов и машин.....НЕЧЕТКОСТЬ....а если бы была "ЧЕТКОСТЬ"...мы бы видели все и обрабатывали бы все...каждую часть изображения, А ЭТО НЕИМОВЕРНАЯ затрата времени....Представьте, что человеку нужно увидеть и лица и машины и здания...я думаю он затратит на это времени много больше чем 341 мс....несколько секунд....не поворачивая шеи и тела...только побегать глазами - НЕСКОЛЬКО СЕКУНД!

Добавлено спустя 2 минуты 19 секунд:
Wowa писал(а):Как мене кажется у вас тут другая проблема :) Тут не проблема обработать регион - тут проблема найти этот регион.


Именно обработать регион....


Rambler\'s Top100 Mail.ru counter