Как стать автором
Обновить

Комментарии 65

НЛО прилетело и опубликовало эту надпись здесь
Игрушка игрушкой, но проектов серьёзных на эту тему никто пока не стартует. Думаю, что бизнес побаивается пока технологии. Через пять лет появится уже серьёзные проекты, надеюсь. Одно дело купить поиграться, а совсем другое — попробовать создать серьёзный продукт.
НЛО прилетело и опубликовало эту надпись здесь
Это была шутка.
Почему же робомобили ездят с лидарами, а не такими камерами?
Вопрос мощности на единичный пиксель. В лидарах каждое измерение — отдельный импульс. Тут один импульс — 76800 измерений. Лидар с той же мощностью лазера получает измерение с большего расстояния и при большей засветке солнцем. К тому же лидар даёт 360 градусов, а тут в любом случае будет направленный вперёд конус. Обе технологии немного для разных применений.
Разные требования к лазерной безопасности. У лидара уже 15 милливатт на подвижном луче будут требовать специальной защиты, ограничения условий по безопасности и т.п. Имея 75К сенсоров и широкий луч, можно во-первых, поднять мощность лазера, а во-вторых, увеличить время экспозиции (в те же 75К раз), сохранив такой же объём данных. За 1/3 секунды столько полезных фотонов прилетит, что и 10 микрон можно вытащить, не то, что сантиметр. Только непонятно, где это обсчитывать.
В выходные был на Балу Роботов, там у половины в груди киннект прикручен.
НЛО прилетело и опубликовало эту надпись здесь
Второй кинект tof, он нестабилен на солнце, но вроде более-менее работает, как я слышал.
Чем дальше идти в инфракрасный диапазон, тем меньше влияние солнечной засветки. На 1.5 мкм уже раз в 5 меньше, чем на красных волнах. И фотоны там гораздо легче, чем видимые, что немаловажно.
И фотоны там гораздо легче, чем видимые, что немаловажно.

Это как?
Скорее всего Mrrl имел ввиду, что энергия одного фотона в инфракрасном диапазоне меньше, а значит при той же мощности количество фотонов больше, а значит дробовой шум меньше.
Черт, сначала прочитал слово перед запятой… не совсем так.
Texas Instruments производит чипсет для таких камер — http://www.ti.com/ww/en/analog/3dtof/index.shtml. Там по ссылкам есть подробный документ где всё объясняется. Самих чипов на сайте нет (ну или я не нашёл, из того документа сенсор должен называться OPT81x0, а контоллер OPT91x0).
(в тексте уже есть ссылка на сайт TI, я сначала не заметил)
А камера на сайте Intel — это Creative Senz3D
Сенсоров достаточно много, вопрос в цене. Я давал ссылку на самые дешевые, которые нашёл.
CamBoard nano стоит 690$ в отличии от камер MESA Imaging, которые стоят больше чем 4к$.
Мы работаем с такими камерами, и надо сказать что получение сырого депта еще ничего не значит. Из-за сильного шума ToF камеры, «ты не можешь просто так взять и отрендерить его» в интересующую тебя точку зрения (view point), ибо помехи вызовут при рендеринге такие артефакты, что мама не горюй. Применяется много разных фильтраций для депта, и только после этого его можно отрендерить в оптический центр цветной камеры (ибо нафига вам нужен депт, если нету цвета).
После этого его можно попробовать по-апскейлить, ведь резолюшен депта очень маленький для прямого применения. Благо депт очень спецефическая функция — в основном гладкая, но с четкими краями. Отсутствие текстур позволяет достаточно свободно апскейлить депт до 100 раз, хотя конечно совсем мелкие детали потеряются.
Надо сказать что часть ошибок в ToF — систематические, т.е. никакая фильтрация их особо хорошо не отфильтрует, это вообще отдельный топик, но люди как-то справляются.
После того как получен View+Depth (RGB+D), можно уже синтезировать новые катинки. Например самой частой проблемой стоит получение стереоскопического видео из View+Depth. Это достаточно легко, однако появляются новые проблемы — dis-occlusions (дырки в картинке). Заполнение таких дырок еще одна совершенно отдельная тема, в которой я надеюсь когда нибудь защищу свой диссер.
Надо сказать что лично я предпочитаю обычную стерео камеру, ибо в отличие от всех этих активных камер эта штука не подведет тебя и на улице и при любой глубине картинки (тогда как а активных камерах, максимальная глубина ограничена). А при современных методах фильтрации, проблема с одноцветными поверхностями уже давно отошла на второй план. В конечном итоге получается что у стерео камеры свои ограничения, а у активных сенсоров свои — и что тебе лучше подходит, зависит исключительно от сценария использования.
А при современных методах фильтрации, проблема с одноцветными поверхностями уже давно отошла на второй план.

А можно про это поподробнее? Или хотя бы ключевые слова для поиска?
Вот вам ссылочка на работы одного китайца
www.cs.cityu.edu.hk/~qiyang/publications.html

вот эти работы являются state-of-the-art для стерео:
Hardware-Efficient Bilateral Filtering for Stereo Matching,
Stereo Matching Using Epipolar Distance Transform,
A Non-Local Cost Aggregation Method for Stereo Matching,
Near Real-time Stereo for Weakly-Textured Scenes,
Recursive Bilateral Filtering,

Последнее — это вообще бомба… отлично работает на CPU в реалтайме. Кто-то еще говорит что стерео-матчинг слишком медленный?
Спасибо, поизучаю.
Ой, что-то странное про стереокамеры говорите. Работал с ними сам, правда немного, зато несколько команд знаю, которые решают задачи 3D восстановления изображения. И проблема с одноцветными поверхностями и скоростью до сих пор у них превальвирует. Вовсю пользуются графическими картами для ускорения, а точности на равномерной коже как не было, так и нет.
Если хочеться быстро инфу из стереокамер вытянуть -все пользуются фичерс детекторами. Когда прошлым летом одну задачку с лицами делали — ни одной статьи где бы получалось нормальное 3D на монотонных поверхностях мы не нашли.
За статьи спасибо, поизучаю. Но всё же сомнительно, что ни одна серьёзная команда ими бы не пользовалась, если бы они крутой эффект давали.
Мне тут мысль высказали, что может быть статьи рассматривают фотографии с высоким разрешением, а не видео? На фотографиях действительно можно качественно вытянуть точность. А на видео обычного разрешения уверяют что нельзя.
Насколько я понял, однородные области он выделяет прямо по цвету, а потом интерполирует плоскостями. Никакого выравнивания по локальным неоднородностям или чему-нибудь подобному не делается.
Неее, это вообще не годится для любой задачки где точность нужна. Это разве что для того, чтобы человеку приятно и ровно на изображение смотреть было. В биометрии по лицу не хватает точности зачастую даже если натягивать полученные изображения на маску лица. Не совсем понятен класс задач где интерполяция плоскостями может пригодится.
Что поделать, у каждого свои задачи, цели и требования. Что годится одному, то совершенно не подходит для другого. Так что будем делать больше велосипедов, хороших и разных! :)
А один из подходящих им классов задач — грубая реконструкция рукотворных объектов, например, зданий и помещений. С текстурой, взятой из тех же фотографий.
Да есть разные подходы для таких зон.
В «Near Real-time Stereo for Weakly-Textured Scenes», например предполагется что раз уж сегмент изображения монотонный, то скорей всего он представляет из себя плоскость. Что вполне правдоподобное упрощение, поскольку на границе двух монотонных плоскостей все-равно появится цветной discontinuity и следовательно color segmentation разделит их на разные сегменты.

В «Stereo Matching Using Epipolar Distance Transform» вообще придумали хитрую трансформацию, после которой монотонная область становится вообще не монотонной и матчить 2 картинки становится проще паренной репы.

В остальных статьях, товарищи просто напросто используют фильтрацию с таким большим кёрнелом, что любая монотонная область им перекрывается. Recursive Bilateral например использует IIR-filter (фильтр с бесконечным респонсом, извините за перевод, не знаю это оно по-русски), что означает что для каждого пиксела образуется суппорт из всей картинки.
То есть, во всех случаях для определения расстояния в однородной зоне берётся информация из её окрестности плюс некоторые допущения о гладкости/непрерывности поверхностей. Разумный подход, может пригодиться. Дальше надо изучать детали каждого метода.
Это практически очевидно, что для монотонного цвета, глубина тоже будет монотонной, что позволяет ее апроксимировать хоть плоскостью, хоть даже константой (что и делается когда мы фильтрируем cost volume чем то вроде bilateral filter). По крайней мере такое предположение будет работать в 99% случаев.
Для остальных случаев, можно использовать комбинацию из активной и стерео-камеры. Это тоже одна из интересных областей ресерча.
По крайней мере такое предположение будет работать в 99% случаев.

Ситуация, в которой такой подход не справится — однородный объект, со всех сторон окруженный более близкими объектами (например, одноцветная стена, видная в маленькое окошко). В сумме такие ситуации могут набрать побольше 1%.
Даже если будет виден край стены, это даст нам только одну линию. Плоскость из неё не вытянуть. Так что достаточно рядом с домом посадить дерево и кусты — и его угол окажется без точек привязки.
Теперь давайте представим такую стену в реальной жизни.
Свеже-покрашенная стена, на которой нет ни разводов, ни трещин, ни царапин (специальная устойчивая матовая краска). Самое удивительное — на ней нет тени от деревьев и кустов (которые тут рядом и растут), вообще она равномерно освещается специальным осветительным оборудованием, чтоб был полностью константный цвет. Блики тоже куда то исчезли. Рядом, в невесомости, пролетает сферический конь…

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

Гораздо более важные проблемы для стерео, это: 1. правильная калибрация камер 2. правильная ректификация изображений, 3. временная синхронизация, 4. одинаковая цветочуствительность сенсоров (матриц) 5. одинаковая оптика на камерах и фокусное расстояние, и т.д.

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


Пользователи лидаров, например, говорят, что цвет нужен примерно в 1% проектов — в основном, для полицейских приложений и для презентаций. Конечно, народ предпочитает, чтобы цвет был, но чаще всего обходится без него.
Хотя, конечно, всё зависит от того, зачем нужны отснятые данные.
Как на счет пользователей ToF камер? Не спрашивали?
Увы, нет. Пока таких знакомых мне не попадалось.
У второго кинекта еще одно большое (пре-большое) приеимущество, над конкурентами. Для обоих сенсоров — Depth и Color используется единственный оптический тракт. Получается что они оба (виртуально) взяты из одного оптического центра, и при не-сложном фильтеринге depth можно одновременно отресамплить и отфильтровать. Половина софтверных сложностей просто откинута небольшой модификацией hardware.
Попытка найти подробности дала такой результат:

Thus the IR sensor and RGB camera are still separated (also confirmed by the different field of view when switching between the two streams in the WIRED video (see time mark 5:27). If the sensor can capture both RGB and IR simultaneously from the same sensor (or just switching quickly between the two at 60Hz/60Hz or 30Hz/30Hz), texture mapping alignment in KinectFusion type of application would get better.


Они имеют в виду какой-то другой Kinect?
Честно говоря я сам подробностей не знаю, мы с ним еще не работали. Однако одна линза (видно на всех фотографиях) уже позволяет это утверждать. То что 2 разных сенсора — это тоже практически очевидно. (Хотя уже есть сенсоры которые детектируют RGB+IR одновременно, хотя там своих проблем должно быть выше крыши).
Про field of view я и не утверждал что он одинаков, но если все-таки виртуальные оптические центры совпадают (ну или хотя бы даже на одной прямой друг за другом), то «texture mapping alignment» это простой ресамплинг. Когда как в случае 2-х совершенно отдельных сенсоров со своими линзами, пришлось бы сперва проецировать (плохой) депт в расположение цветной камеры.
Одна линза видна на фотографиях, сделанных в видимом свете. Не исключено, что передняя панель прозрачна для IR, и вторая линза, а также IR осветитель просто спрятаны за ней. Заодно, видимый свет отфильтровывается, что заметно повышает качество IR сигнала.
Про одинаковый центр я ничего не смог придумать, кроме полупрозрачного зеркала (лучше бы, пропускающего видимый свет и отражающего IR — или наоборот) или гибридной RGBI матрицы (ещё и с модулируемой чувствительностью IR сенсоров) — должна быть безумно дорогая штука. Жаль, для лидара эти схемы работать не будут — либо RGB сенсору будет мешать лазерное зеркало, либо изображение в нём получится очень размытым.
Не понятно, почему RGBI нельзя сделать дешевой. Ведь единственное что для такой матрицы нужно создать — байеровский фильтр с скорректированным спектром пропускания, где вместо второго зелёного был бы IR слот. Сами по себе современные матрицы вполне к IR спектру, менять ничего не надо.
Для измерения глубина с помощью ToF нужна очень специальная структура пикселей. И возможно, что специальная полупроводниковая технология.
Я имел ввиду не про ToF, конечно, а просто про IR камеру. Такая в kinect судя по всему тоже есть (видел обзор, где они демонстрировали различные видеопотоки изнутри устройства).
Им нужны пиксели, которые работают половину времени. С частотой около 20 МГц. И осветитель, который мерцает с той же частотой. Тогда яркость сигнала с пикселя (точнее, её отношение к яркости эталонного, работающего всё время пикселя) будет линейно зависеть от расстояния до объекта.
Это если в пару к каждому пикселю иметь эталонный. На самом деле там всё чуть сложнее устроено — каждый пиксель половину времени заряжает один конденсатор, а половину — другой, а затем напряжения этих конденсаторов сравниваются (Introduction to the Time-of-Flight (ToF) System Design (Rev. D) страница 8).
Эталонный можно получить, отключая модуляцию для каждого второго кадра. Но если они сделали через конденсаторы — им виднее.
Потребуется ещё третье измерение, без подсветки, — для оценки внешнего освещения. А так кажется реальным.
Согласен. В «активном» режиме мы можем модулировать пиксели всей матрицы, это ничему не помешает. 20 МГц даст возможность измерить расстояние как раз до 3.5 метров (при правильно подобранной фазе).
Именно так, инфракрасная часть работает сквозь пластик. Разбор на iFixIt.
И в старом, и в новом кинекте по 2 камеры. В новом инфракрасная часть работает прямо сквозь «черный» пластик, поэтому объектива не видно.
ААА, вы порушили мои надежды :))
Видел я Mesa Imaging, держал в руках. Дальше трех метров уже не работает даже в помещении, на улице в светлое время суток не будет работать совсем из-за солнечного света.
А в Intel Creative Zen3D точно стоит ToF камера?
Мне просто казалось, что они сэкономили и поставили просто ИК камеру и ИК светодиод, а глубину считают по яркости.
В третьем методе, на базе которых строится ToF по сути тоже считывание яркости пикселей идёт, но чуть более хитрое, чем обычная «яркость».
Вообще везде где я встречал описание пишется что они именно ToF. Но может обманывают, конечно…
Тут пишут что сенсор от SoftKinetic. Ещё в нескольких местах то же самое пишут. А там точно ToF.
А можно ли сделать самому сенсор по этому принципу? Просто светодиод и WEB камера с ИК фильтром — зафиксировать жесты над клавиатурой разве не получится?
В Leap Motion стереокамера — они считают по параллаксу.

Как я понял, технология Windows Helo требует подобную камеру.
Или я ошибаюсь?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации