roboforum.ru

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

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

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

Сообщение Vorral » 15 июл 2010, 15:37

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

Добавлено спустя 3 минуты 39 секунд:
>А смотря на другого человека со стороны вы и не увидите перемещения глаз в доли градуса.
Я замечаю. Потому как слабое косоглазие свойственно некоторым людям. И один раз при обсуждении этого вопроса, выяснилось что не один я это вижу. Ещё раз подчеркну, не нужно спорить, спроси у людей которые непосредственно этим занимаются и знают это наверняка, т.е. у врача-окулиста.

Добавлено спустя 25 минут 57 секунд:
Давайте по другому поступим. В ходе этой темы, я понял, что много не понимания, из-за простого не знания. Поэтому предлагаю прочесть вот эту статью. Читать нужно внимательно и без собственных фантазий.
http://www.stereofoto.ru/content/view/174/

Добавлено спустя 27 секунд:

P.S Важные выноски, касающиеся непосредственно этой темы:

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

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

Кроме того, мозг учитывает и угол схождения зрительных осей.

Параллакс - смещение рассматриваемого объекта, вызванное изменением точки наблюдения.

Конвергенция - сведение зрительных осей при взгляде на близко расположенные объекты.

Дивергенция (разведение зрительных осей) происходит при взгляде вдаль.

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

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

Добавлено спустя 9 минут 48 секунд:
"Анализируя различия между изображениями стереопары, мозг человека получает информацию об объеме и удаленности наблюдаемых объектов."
Чтобы не быть голословным и подтвердить верность слов автора статьи, привожу три примера такого анализа с помощью ПК.
Вложения
deep3.JPG
deep2.JPG
deep1.JPG
stereo.JPG
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

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

Сообщение executer » 15 июл 2010, 16:23

Хорошая статья, спасибо.
Только всезде в ней говорится о схождении оптических осей глаз, а Вы утверждаете что они всегда ПАРАЛЛЕЛЬНЫ
Встает вопрос, извиняюсь, Вы сами внимательно читали?
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел

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

Сообщение Vorral » 15 июл 2010, 16:50

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

Добавлено спустя 9 минут 48 секунд:
Почему схождением можно принебречь? Да потому, что в большинстве случаев, когда не раглядываем птиц или прыщи на носу, схождение глаз одинаково(примерно 1-2°), что является неким постоянством. Ты же сильно ошибался, когда всю теорию стереозрения строил исключительно на схождении глаз на объекте наблюдения, говоря что без этого, всё гораздо сложнее, если вообще возможно. Тогда я подумал, что тебе проще было понять поверхностно,суть ошибки и не важно вдаваться во все детали. У меня, и сейчас сомнение по поводу целесообразности полного понимания тобой процесса зрения. Ведь я так и не пояснил, почему, по моему мнению, происходит сужение и расхождение глазных осей при определённых условиях :). Так как это уже потребует более детального разбора тех проблем, с которыми я столкнулся, при практической реализации алгоритма анализа стереопар. В общем меньше знаешь крепче спишь. Тебе и эта то информация не нужна, иначе ты бы уже прочёл обо всём этом, как я, далёкие три года тому назад.

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

Скажи только одно. Время потрачено не зря? Стало понятно, почему для 3Д-реконструкции легче установить камеры параллельно?? И почему именно так, а не иначе? Если нет, то разговор абсолютно точно закончен. 8)
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

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

Сообщение flyroman » 15 июл 2010, 20:22

Angel71 писал(а): вопрос в другом - на чём сфокусировано твоё сознание.


Я ВАМ ТВЕРЖУ о чем всю тему?!

Программа и есть "сознание" робота, поэтому я и ПРЕДЛАГАЮ "сознательно"(программно) обрабатывать только то на чем сфокусировано, как вы говорите сознание....

Добавлено спустя 9 минут 38 секунд:
executer писал(а):Никто не мешает, ТС говорит о том что можно приделать умный объектив и получать дополнительную инфу о расстоянии. (как я понял)


1.Я говорю об обработке принятого изображения- ОБРАБОТКИ ТОЛЬКО НАПРАВЛЕННОГО РЕГИОНА.
2. Но можно так же говорить об умном объектив, не обязательно навороченый....В глазах же человека это реализовано, а я думаю что таким же путем следует идти и у роботов....Таким образом получая дополнительную информацию И четкую картинку региона...

Добавлено спустя 11 минут 17 секунд:
Предлагаю определиться:
Фокусировка - наведение фокуса на объект для получения четкого изображения.
Обработка определенного региона (ООР) - обработка только некоторой части полученного изображения.

Добавлено спустя 3 минуты 34 секунды:
Vorral писал(а):да вы даже друг друга не понимаете.

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


Здесь я конечно с понятиями дал ..... :oops:
Поправлюсь:
"Так вот я думаю необходимо обрабатывать не все изображение, а только так определенный регион изображения....ООР производиться программно....всмысле выделяется только тот маленький участок который необходимо проверять....."

Добавлено спустя 16 минут 30 секунд:
--------------------------------------------------------------------------
--------------------------------------------------------------------------
Я предлагаю прекратить демогогию по поводу стерео зрения, как оно работает, какими методами идет объхединения изображения (я так и думал, что начнете демогогить по этому поводу)

1. Я в этоя теме предлагал, только обработку УЖЕ ПРИНЯТОГО ИЗОРАЖЕНИЯ, УЖЕ СЛОЖЕННОГО ИЗ ПАР или с одной камеры.......
2. Я предлагал обрабатывать только определенный регион.....
3. Такую обработку предлагал для экономии ресурсов......
4. Обработку предлагал для распознования и идентификации объектов на которые направлено зрение.......

Задача получения объемного изображения не стояла.


Добавлено спустя 1 минуту 19 секунд:
Кстати, Vorral , что за програма в сообщениия выше?
«Это невозможно» — сказала Причина. «Это безрассудно!» — заметил Опыт. «Это бесполезно!» — отрезала Гордость.
«Попробуй» — шепнула Мечта…
Аватара пользователя
flyroman
 
Сообщения: 1266
Зарегистрирован: 12 янв 2009, 21:39
Откуда: Чебоксары, Чувашская Республика
Skype: roman.buhalov
прог. языки: Basic, VisualBasic,Pascal, Delphi, ASM
ФИО: Роман Сергеевич

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

Сообщение executer » 15 июл 2010, 22:17

Так а в чем идея тогда? Рассматривать кадр не целиком а только его кусочек, где "интересно"?

2 Vorral, а в программе не для всего кадра глубины ищутся а только для ключевых точек? (я так понимаю области на неподписаном экране в верхнем правом углу)?
И что, правда ищутся по взаимному расположению точек на кадрах а не по положению точки на самом кадре :shock: ?
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел

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

Сообщение flyroman » 15 июл 2010, 22:29

executer писал(а):Так а в чем идея тогда? Рассматривать кадр не целиком а только его кусочек, где "интересно"?


Как где интересно?
А экономия ресурсов? Картинка приходит всегда, а время затрачивается только на обработку кусочек..... А нафига обрабатывать всю картинку если роботу это не нужно, или ответьте мне, зачем роботу такая информация?

Человек же не знает в момент времени всю информацию о видимых объектах с краев...А получает подробную информацию ЛИШЬ В ТОМ СЛУЧАЕ когда направит свой взгляд на объект и сфокусирует.....

P.S. Зачем ему нужно знать об объектах справа если он собрался двигаться налево и т.п.?
«Это невозможно» — сказала Причина. «Это безрассудно!» — заметил Опыт. «Это бесполезно!» — отрезала Гордость.
«Попробуй» — шепнула Мечта…
Аватара пользователя
flyroman
 
Сообщения: 1266
Зарегистрирован: 12 янв 2009, 21:39
Откуда: Чебоксары, Чувашская Республика
Skype: roman.buhalov
прог. языки: Basic, VisualBasic,Pascal, Delphi, ASM
ФИО: Роман Сергеевич

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

Сообщение executer » 15 июл 2010, 22:52

Я просто переспросил.
И что теперь? Задать область интереса - это самое наименее трудоемкое. Сам алгоритм нахождения глубин от этого никак же не изменится.

Vorral, с каким разрешением картинок ваша программа внутри работает? Не поделитесь ли ехе-шником потестить? Или загоните стереопару в приложении - интересно результат глянуть, если не затруднит.
Можно наоборот, выложите стереопару - я в свое недоразумение ее скормлю. Интересно результаты сравнить.
Вложения
2010.07.15-21_03.rar
(867.4 КиБ) Скачиваний: 0
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел

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

Сообщение Vorral » 15 июл 2010, 23:32

Супер, обожаю тестировать стереопары. Завтра с утра протестирую и выложу результат. И напишу подробнее как работает. Я пока работаю с низким разрешеним 320х240, карта глубины получается в таком же разрешении. Выдалась сводная минутка(семья, все дела), поэтому написал кратко, сейчас нет времени.
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

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

Сообщение flyroman » 15 июл 2010, 23:54

executer писал(а):И что теперь? Задать область интереса - это самое наименее трудоемкое. Сам алгоритм нахождения глубин от этого никак же не изменится.

Я понимаю что это просто....
Ну алгоритм то останется....я ж его и не собирался меня....А РЕСУРСЫ сэкономтся...обработка будет во много раз быстрее...думаю вместо 400 ms, как на картинках выше, будет порядка 20-40 ms....

Добавлено спустя 9 минут 5 секунд:
flyroman писал(а):Как где интересно?

executer писал(а):Я просто переспросил.
Нет, нет , executer, я это говорил с позитивом, с улыбкой... :wink:
Последний раз редактировалось flyroman 15 июл 2010, 23:58, всего редактировалось 3 раз(а).
«Это невозможно» — сказала Причина. «Это безрассудно!» — заметил Опыт. «Это бесполезно!» — отрезала Гордость.
«Попробуй» — шепнула Мечта…
Аватара пользователя
flyroman
 
Сообщения: 1266
Зарегистрирован: 12 янв 2009, 21:39
Откуда: Чебоксары, Чувашская Республика
Skype: roman.buhalov
прог. языки: Basic, VisualBasic,Pascal, Delphi, ASM
ФИО: Роман Сергеевич

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

Сообщение executer » 15 июл 2010, 23:54

Да, мое недорозумение закашлялось.
Внутреннее разрешение 240х195 а по времени больше вашего кушает.
(две разных реализации алгоритма на скриншотах)

Пооправдывюсь: я его за пару недель свободных вечеров наваял. А потом завал на работе начался.
Вложения
Безымянный.jpg
Безымянный2.jpg
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел

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

Сообщение flyroman » 16 июл 2010, 00:04

Я понимаю, что если получится ваша задумка по обработке: алгоритмы обработки(получеие глубины и т.п.), то их не составит труда перенести на предлагаемый мною тип обработки....просто изменить регион обработки со всей картинки на частный....
Я понимаю, что задача решаемая вами намного сложнее...
«Это невозможно» — сказала Причина. «Это безрассудно!» — заметил Опыт. «Это бесполезно!» — отрезала Гордость.
«Попробуй» — шепнула Мечта…
Аватара пользователя
flyroman
 
Сообщения: 1266
Зарегистрирован: 12 янв 2009, 21:39
Откуда: Чебоксары, Чувашская Республика
Skype: roman.buhalov
прог. языки: Basic, VisualBasic,Pascal, Delphi, ASM
ФИО: Роман Сергеевич

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

Сообщение executer » 16 июл 2010, 00:30

Ну я пока ничего сложного не решил. Попиксельное нахождение глубины - тупой поиск минимума, да и тормозит видишь как. Потому и думается его на ПЛИС выкинуть. Вот только ожидал от него несколько лучшего результата, чем на картинке. Возможно дело в отображении - прикрутил OpenGL чтобы рассматривать можно было что получилось, но подключить не успел :(

Добавлено спустя 3 минуты 8 секунд:
А идея твоя, если с аккомодацией скрутить ее - будет очень хорошо даже с попиксельным перебором, т.к. будем уже примерно знать расстояние по резкости и диапазон возможных глубин.
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел

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

Сообщение flyroman » 16 июл 2010, 09:05

Так же думаю скорость обработки возрастет.....

Кстати, пример созрел:
Вот когда мы на страницу сайта смотрим и ищем какой нибудь текст, мы же сразу не видим весь текст и все слова на странице, а видим только тот текст на который направлен взор... И вот так перебирая текст(направляя взор) находим необходимый текст...Но даже направляя взор в разные места страницы мы не обрабатываем всю картинку, а только несколько регионов на которые посмотрели.....отсюда и экономия времени и ресурсов...

Эта конечно задача интересна при распозновании и идентификации предметов: например, робот ищет где находится "Кафе"....вот так он гдазами бегает и читает тексты....Возможно с 1-го раза....возможно с 10 раза, а возможно ему придется направлять взор на все части картинки....но часто он будет попадать с меньшим числом, чем обрабатывалась бы вся картинка, тем более когда уже знает некоторые признаки предметов(например текст горизонтален, искомое "кафе" пишется красными буквами - а для таких признаков четкая картинка не нужна....)

P.S.Кстати когда человек приходит в незнакомое место,ели ему нужно кафе, он тоже ищет глазами надпись "кафе".....Надеюсь, примеры нормальные для понимания привел.
«Это невозможно» — сказала Причина. «Это безрассудно!» — заметил Опыт. «Это бесполезно!» — отрезала Гордость.
«Попробуй» — шепнула Мечта…
Аватара пользователя
flyroman
 
Сообщения: 1266
Зарегистрирован: 12 янв 2009, 21:39
Откуда: Чебоксары, Чувашская Республика
Skype: roman.buhalov
прог. языки: Basic, VisualBasic,Pascal, Delphi, ASM
ФИО: Роман Сергеевич

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

Сообщение Angel71 » 16 июл 2010, 09:15

о том, да не о том. примеры немного за уши притянуты
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

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

Сообщение Vorral » 16 июл 2010, 12:49

2executer
В твоей стереопаре, из-за схождения осей, получается всё наоборот, что дальше светлее, что ближе темнее.Советую брать исходные стереопары с ресурса http://vision.middlebury.edu/stereo/data/. Там есть проверочная карта глубины к каждой стереопаре. Так же они там уже "выровнены", ну т.е. убрали дисторсию от линз фотоаппарата. Я так понял ты тоже это сделал?

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

Добавлено спустя 36 минут:
2flyroman
Ты ничего нового, да даже старого не предлагаешь. Мы и без тебя можем брать меньший квадрат или разрешение для обработки. Т.е. нет идеи как таковой. Это всё равно, что сказать. Так ребята, я знаю как увеличить скорость ваших алгоритмов. Берёте из 640х480 квадрат в центре 64х48 и обрабатываете его. Скорость возрастёт в 100 раз! Ну как вам идея? :ROFL: Мы же не в детском саду в конце концов. Поэтому не надо писать глупостей. Займись уже делом наконец. И ещё, ты хоть представляешь сколько работает программная фокусировка? Это же полноценная обработка всего изображения! Т.е. заместо того, чтобы анализировать картинку проц будет тратить время на не нужную работу, хороша оптимизация ничего не скажешь :) Да и её целью является предобработка изображения для повышения резкости картинки. И для вебкамер она НЕ нужна вовсе. Там либо она уже производится, либо фокус настраивается линзой. Т.е. мы уже получаем чёткую картинку и дальнейшая её обработка в ключе фокусировки совершенно бессмысленна.

Добавлено спустя 59 минут 25 секунд:
Насчёт моей программы. Суть её в следующем. В неё вводится стереопара. Каждый ракурс равен 320х240. Она в итоге строит КГ c таким же разрешением(т.е. 320х240). Само собой карта получается дырявой(залатывание дыр и фильтр шума существует, но я его пока закомментировал, для лучшей оценки результата), в ней отсутствуют точки, которые не прошли порога сопоставления. Т.е. либо эти точки вообще отсутствуют на соседнем ракурсе. Либо просто не совпали. Программа отрабатывает 50 смещений каждого пикселя с правого ракурса, по соотношению к левому ракурсу. Т.е. сопоставляется каждый пиксель с правого ракурса ПР(X,Y) с таким же пикселем с левого ракурса ЛР(X-1,Y), потом ПР(X,Y) и ЛР(X-2,Y) и так до ПР(X,Y) и ЛР(X-50,Y). Но совпадений очень много, поэтому выбираем по общему значению для группы с одинаковым цветовым спектром(выделение в группы/фигуры показано на верхней правой картинке). Так же группы могут заезжать на друг друга, поэтому существует сложный механизм выбора наилучшего значения для каждой группы с учётом "интересов" остальных групп. Выложил ещё примеры работы. Все примеры обрабатывались с одинаковыми входными параметрами. Последнее поколение моей программы может успешно сравнивать даже ракурсы с разных камер. Так же почти весь новый код создан с условием возможности дальнейшего распараллеливания(в предидущих версиях это было не возможно). Что создаёт потенциальную возможность быстрой обработки ядрами графической карты. Вот это я понимаю оптимизация, а не жалкое предложение обрабатывать меньше :)
Сейчас на основе своих разработок я пишу программу деанаглифа, для возможности восстановления цвета в стереофильмах в этом дурацком формате. Уж очень много есть эксклюзивных фильмов только этом стерео формате. А смотреть их в нём я точно не буду.
Вложения
deep9.JPG
deep8.JPG
deep7.JPG
deep6.JPG
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

Пред.След.

Вернуться в Компьютерное зрение

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

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