Перейти к содержанию
1 / 6
2 / 6

3Д сенсоры для создания трехмерной модели в домашних условиях


Рекомендуемые сообщения

Вы под точностью понимаете полное совпадение размеров или более точное отображение мелких деталей? Как у вас с размерами сканируемого объекта?
…Только после установки последней версии РеМи убедилась, что сканы с точностью 0,3-0,5см на обхват вполне реальны и в моих условиях.

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

 

. Давайте рассмотрим самый простой вариант сканирования. Это когда камера (кинект) неподвижна (закреплена на штативе или стоит на столе), а сканируется часть статичного объекта (например книжный шкаф с полочками)
В таком случае никто не шатается и не перемещается. Полной сетки мы не получим, но в данном случае мы сможем, сохранив такую сеть, измерить высоту, ширину и глубину (в данном примере полки книжного шкафа). Так мы сможем проверить, насколько правильно и точно кинет (и программа) определяют размеры, не сращивая куски сетки, сканированные с разных положений камеры. И сразу определится, на сколько точно откалиброван кинект.
. Дальше давайте рассмотрим вариант сложнее. Зададимся целью сканировать объект полностью (вокруг). Для того, чтобы было что измерять, поищем в своем доме стул с четырьмя вертикальными ножками. Поставьте его на пол так, чтобы можно было обойти вокруг (держа в руках кинет) и чтобы кинет при этом видел все четыре ножки на всю ширину и высоту видимости кинекта (проверьте, что вам будет достаточно длины кабеля). Между ножками стула разместите хаотично несколько мелких предметов (не блестящих и не стеклянных). Программе в таком примере будет легче рассчитывать положение камеры относительно объектов, т.к. кинект будет видеть сразу все четыре ножки стула и плоскость пола. Сканировав такой комплект, можно измерить расстояние между ножками стула, проверить высоты ножек, размеры предметов.
В случае с подиумом, я пробовал вращать табурет, перевернутый вверх ножками.
post-30446-1389601474_thumb.jpg
. А теперь представьте себе, что такой стул будет с ножками высотой около двух метров (можно смастерить из трубы диаметром 2…3см). И места между ножками будет достаточно, чтобы туда поставить человека. Круг (обруч), который будет держать в руках клиент, можно закрепить на нужной высоте к этим ножкам/стойкам. Думаю, так клиент сможет стоять почти не шатаясь, и расстояние между телом и стойками не будет значительно изменятся. Сканировать такой комплект желательно так, чтобы камера видела сразу пол с обручем. После определения объема сканирования можно отводить камеру подальше от объектов или наклонять камеру вниз, а затем уже обходить вокруг (или вращать подиум, если у вас он есть). Затем перемещать камеру вверх и опять вокруг. В результате вы должны получить сеть, в которой обруч будет иметь примерно одинаковую толщину (быть круглым) и ножки стоек тоже будут нормальной толщины, ровные (целые). После проверки размеров стоек и их взаимного положения (можно проверить обхваты) можно будет выровнять всю сеть по вертикальным стойкам, при необходимости масштабировать сразу все или трансформировать. И уже затем, если размеры устраивают удалить все лишнее, оставив сетку клиента.
. Я пробовал сканировать расположив перед человеком две металлические лестницы из круглой трубы диаметром 2см. Две стойки с одной стороны связал вместе, а две других развел под углом 90 градусов. Получилась половинка параллелепипеда, достаточно устойчивая. Результатом доволен. По крайней мере, заметно лучше, чем просто стоящий человек (все равно он шатается, и программа часто теряла трек). А так сразу видно: если стойки получились кривые или со ступеньками – нужно переделывать.
. Сейчас пока ещё думаю, какое "приспособление" смастерить, чтобы с его помощью трек не терялся (не смазывался), быстро собиралось и в разобранном виде занимало поменьше места.

Ссылка на сообщение
Поделиться на другие сайты

Но если вам интересно, – могу поделиться своими личными мыслями об этой проблеме

Очень интересно, именно поэтому и спрашивала.
Вообще мужской взгляд на техническую проблему всегда очень рационален, точен и уместен. Лишний раз в этом убедилась.
К сожалению, моя мужская половина вникать в процесс не хочет, отправила в свободное плавание.
Спасибо огромное, что делитесь своими мыслями и наработками! Попробую применять на практике и добиваться лучших результатов.
Ссылка на сообщение
Поделиться на другие сайты

Спасибо огромное, что делитесь своими мыслями и наработками!
Вот еще ода "мысль":
post-30446-1389617316_thumb.jpg
Думаю попробовать такую конструкцию пока скрутить скотчем.
Если понравится - можно будет ножки сделать выдвигающимися (как в штативе) и всю конструкцию складывающейся.
Надеюсь, ногам мешать не будет.
Ссылка на сообщение
Поделиться на другие сайты

Нахожусь на грани приобретения нового компьютера
Как это не странно. Но это факт. Оказывается, что видеокарта RADEON R7 260X на моем бютжетном (AMD A8-5600K) компе показала себя гораздо лучше, чем с восьмиядерным (AMD FX 8320) процессором. Вот:
post-30446-1389646287_thumb.jpg
Даже РеМи работает заметно шустрее.
post-30446-1389647135_thumb.jpg
А если в настройках отказаться от цвета - трек удержать уже реально.

 

А у кого есть новая видеокарта nvidia geforce? Сколько кадров в секунду сможет обработать в KinectFusion с максимальными настройками?

Ссылка на сообщение
Поделиться на другие сайты

Покажу, на свой взгляд, некоторые особенности сканирования. И возможные ошибки.
Например: у вас клиент только с обручем (диаметр обруча 90см) в руках, без дополнительных хаотично расположенных предметов. И вы выбрали объем X=1м Y=2м Z=1м
В начале сканирования вы поставите камеру на высоте 0,9м от пола так, чтобы центр объема находился по оси клиента. Первое, что увидит кинект:
post-30446-1389689842_thumb.jpg
Если с такого положения вы начнете поворачивать подиум (или обходить клиента), подымать/опускать, следующее, что может увидеть камера:
post-30446-1389689877_thumb.jpgpost-30446-1389689893_thumb.jpg
В таких случаях вы очень рискуете получить сдвиг сети и даже потерять трек. Ведь имея только такое худенькое изображение практически невозможно правильно определить положение камеры относительно сканируемых объектов.
Чтобы улучшить отслеживание, камера должна видеть как можно больше разнообразных поверхностей вашего объема. Предпочтительно после проявления первых кадров поднимать камеру и одновременно наклонять вниз. Вот такое изображение позволит вам уверенно держать трек:
post-30446-1389689961_thumb.jpg
Пока камера видит большую часть обруча – можно обходить вокруг (или поворачивать подиум).
Затем можно сместить камеру вниз и одновременно поворачивать её вверх.. Камера увидит:
post-30446-1389689991_thumb.jpg
С этого положения опять можно поворачивать подиум (или обходить вокруг).

 

Камера видит в ширину на 33% больше, чем в высоту. Поэтому, сканируя высокий (1,6…1,7м) и не широкий (0,6…0,9м) объект имеет смысл увеличить производительность процесса сканирования.
Покажу как.
Рекомендуемые настройки. Объем X=2м Y=1м Z=1м. Кинет поворачиваем боком, чтобы ось Y определялась как X.:
post-30446-1389690147_thumb.jpg
После проявления первых кадров перемещайте вверх (с одновременным наклоном) до такого вида:
post-30446-1389690186_thumb.jpg
Затем поворот подиума (или обход вокруг), перемещение камеры вниз (с одновременным наклоном) до такого вида:
post-30446-1389690209_thumb.jpg
И опять обход вокруг (или поворот подиума).

Ссылка на сообщение
Поделиться на другие сайты

Для тех, кто предпочитает работать в Skanect практически не возможно выбрать размер по ширине больше, чем по высоте.
В таком случае, чтобы выбрать оптимальный размер, можно выбрать куб 1...1,5 метра (в зависимости от роста). А камеру в начале сканирования разместить так (вертикаль по диагонали куба):
post-30446-1389699058_thumb.jpg
Для этого придется наклонить камеру по двум осям и правильно определить высоту.

Изменено пользователем arhimed
Ссылка на сообщение
Поделиться на другие сайты

В начале сканирования вы поставите камеру на высоте 0,9м от пола так, чтобы центр объема находился по оси клиента.

В РЕМИ я ставлю камеру в началее сканирования ровно на середине роста. Измеряю рост, допустим 160см + высота подиума 10 см, полученные 170см делим пополам. В итоге камера на уровне 85 см. При таком раскладе рост получается точным.

Нельзя объять необъятное, но до чего же хочется.

мой сайт.

Тренинги по 3д конструированию

Ссылка на сообщение
Поделиться на другие сайты

Покажу как в KinectFusion можно сразу "обнаружить" смазывание.
Посмотрите на сканы
post-30446-1389769048_thumb.jpg post-30446-1389769065_thumb.jpg
Обратите внимание на окно, где должно быть как можно больше белого (справа нижнее).
На первом скрине идет начало проявления сетки. Она еще заметно "бугристая" (как кожа у крокодила), но все поверхности распознаются четко и правильно (в правом нижнем окне у нас действительно много белого).
В самом верху на полочке видно принтер, слева отличные складки штор (хорошый ориентир, не позволяющий получить смазывание в направлении слева-направо).
На втором скане мы видим, что произошло при резком (небольшом) рывке камеры вверх с одновременным наклоном. Т.к. нижней поверхности (поверхности стола) камера уже не видит, а по передней поверхности принтера практически невозможно отследить высоту, произошло смещение и неправильный расчет положения камеры. Трек не потерялся, т.к. по мнению программы эта ошибка незначительная. Но в то же время программа нам показывает, что не все в порядке.
В правом окне зеленым и красным отмечены те места, в которых кинект видит в настоящее время поверхности, но они пока не проявляются (в результате смазывания уменьшилась высота принтера).

 

Рекомендую учится водить камеру так, чтобы избегать таких сдвигов. Тогда реконструкция будет происходить достаточно быстро и точно.

Ссылка на сообщение
Поделиться на другие сайты

Но обходить катастрофически нет возможности.
И не нужно обходить, если у вас есть подиум с электроприводом.
А вот если подиума с приводом нет - можно обходить, если есть свободное место 2х2...3м.
У меня Kinect for X-box с переходником (с блоком питания). Общая длина кабеля 3м.
Для подключения к компьютеру использовал экранированный удлинитель ЮСБ длиной 1м. С удлинителем более одного метра кинект вообще не активизируется в программах (не работает).
В общем получается 4м кабеля. Этого вполне достаточно.

 

Я же не предлагаю всем идти след в след за мной. Вариантов и способов есть много.
. Вот, например, выбор программы или камеры у каждого может быть свой. Мне получилось проще приобрести Kinect for X-box (Kinect for Windows по месту моего жительства не продают).
. Также и программы могут нравится разные, т.к. они по разному работают на разных машинах.
Хотя качество сканирования очень во многом зависит не от программы, а в первую очередь от умения сканирующего и правильно построенной сцены.
Помните - чем меньше предметов попадает в зону сканирования - тем труднее вам (и программе) будет удержать трек и избежать смазываний.

Ссылка на сообщение
Поделиться на другие сайты

arhimed, если у вас Kinect for X-box, можно вас попросить Fablitec попробовать в работе. Эта программка с кинектами для виндовс не работает, а на вид очень перспективная программка, очень хочется посмотреть что там получается в реале. Какие плюсы-минусы... Может она и вам пригодится больше других...

Ссылка на сообщение
Поделиться на другие сайты

если у вас Kinect for X-box, можно вас попросить Fablitec попробовать в работе...
Мне такая программа не подходит.
Мне не хочется устанавливать драйвера OpenNI (они могут поругаться с моими уже установленными), но это не главное.
Эта программа требует 4 GB of RAM (у меня из четырех установленных используются пока только три, а один Гб занят встроенной видеокартой).
Также эта программа требует видеокарту NVidia с поддержкой CUDA 2.0 (или выше), а у меня Radeon (с поддержкой DirectX 11).

 

Из всех программ только KinectFusion перевел на русский язык (во всех остальных программах мне не удалось найти языковые ресурсы). Некомфортно мне работать в иностранном интерфейсе. Надеюсь, следующая версия этой бесплатной программы будет еще лучше.

Ссылка на сообщение
Поделиться на другие сайты

Надеюсь когда-нибудь они доработают свою программу для виндовых кинектов.
Надеятся можно.
Но хочу обратить внимание всех владельцев Кинектов и Xtion (и тех кто собирается такими стать).
Эти устройства практически не могут увидеть детали меньше двух миллиметров. Теоретически точность расположения реконструированной поверхности сетки можно достичь до миллиметра только при наложении друг на друга нескольких десятков кадров (значения суммируются и усредняются).
Практически, для создания манекена человека (чтобы затем строить или примерять 3Д одежду) этого достаточно.

 

Если же вы желаете получить более мелкую и точную сетку - вам нужно искать другие 3Д сканеры.

Ссылка на сообщение
Поделиться на другие сайты

Все никак мне не нравилось в KinectFusion ограничение на возможность выбора размера куба.
Ряд 128, 256, 384, 512, 640 мне показался неудачным.
Попробовал изменить программу и заменить значение 640 на 768
Получилось. Даже работает правильно. Вот скрины:
post-30446-1390046476_thumb.jpgpost-30446-1390046533_thumb.jpg
На левом скрине видна метровая линейка. На ней по краям закрепил по три прищепки (на расстоянии по 10см, самая правая прищепка не видна).
На левом скрине (768) можно подсчитать размер ширины объема - почти метр (без 1...3см), а на правом скрине (640) - около 83см. Понятно, что такой размер получается при настройках 768 вокселей на метр. При 386 вокселей на метр - будет в два раза больше.
Вот файл с возможностью выбора таких величин: KinectFusionExplorer_WPF_ru_768.zip
(этот файл только для Developer Toolkit v1.8.0, для тех у кого машина достаточно мощная)

 

Пользуйтесь :)
Но хочу предупредить - не выбирайте по всем координатам сразу 768. Это очень много (может не хватить ресурсов компьютера).
Я сделал этот файл для возможности выбора куба объема 2х1х1м с настройкой 386 вокселей на метр.

Ссылка на сообщение
Поделиться на другие сайты

Вот, по быстрому, сохранил с такими настройками пробник-скан (вид на мой шкафчик):
post-30446-1390048930_thumb.jpg
Размер 1х1м отображает правильно (видно по размерам в нижней строке), но поскольку мой кинект слегка врет (так уж откалиброван) придется масштабировать (уменьшать на 2%).
Процент масштабирования можно уточнить сравнив длины предметов в реальности и в масштабах Рино.
Кстати этот скан получился достаточно большим - 220 Мб

Ссылка на сообщение
Поделиться на другие сайты

Архимед, не смогла опробовать программу KinectFusionExplorer. Сравнила скрин с вашей программой и своей - так у меня нету некоторых пунктов... Я что-то не доустановила? Или вообще не ту версию поставила? У меня 1.7.0.
Новую (v1.8) версию Kinect for Windows Developer Toolkit можно взять тут:
http://www.microsoft.com/en-us/download/de...s.aspx?id=40276
В разделе/окошке выбора размера объема могут не отображаться самые наибольшее значение (640 или 768). Максимальное значение становится недоступным, если ваша видеокарта не достаточно мощная.
Так на моей встроенной видеокарте ATI Radeon HD7560 (1Гб памяти) максимальные значения только 512.
То, что я показал двумя сообщениями выше можно получить на ATI Radeon R7 260X (2Гб).
Ссылка на сообщение
Поделиться на другие сайты

Архимед, благодарю за подсказку. У меня видеокарта NVIDIA GeForce 6150SE nForce 430. Я не разбираюсь на сколько она подходит. Буду пробовать дальше.

Изменено пользователем Nikelia
Ссылка на сообщение
Поделиться на другие сайты

Архимед, не могу понять причину, по котрой не хочет устанавливаться последнее обновление пакета 1,8. Оно станвится поверх 1,7. Последовательность моих действий была такая: SDK - 1.7 - 1.8. Но получается какая-то ерунда. Пишет, что не установлен SDK.

post-10291-1390132614_thumb.jpg

post-10291-1390132633_thumb.jpg

post-10291-1390132654_thumb.jpg

Изменено пользователем Nikelia
Ссылка на сообщение
Поделиться на другие сайты

Последовательность моих действий была такая: SDK - 1.7 - 1.8. Но получается какая-то ерунда.
Наверное, вначале нужно обновить (установить) SDK (Kinect for Windows SDK v1.8):
http://www.microsoft.com/en-us/download/de...s.aspx?id=40278
А затем уже обновлять пакет (Kinect for Windows Developer Toolkit v1.8):
http://www.microsoft.com/en-us/download/de...s.aspx?id=40276

 

Если 1.7 уж очень мешает - удалите его.

 

По "калибровке" все просто.
Влезть в настройки кинекта и его по настоящему откалибровать - я не знаю как.
Как пока делаю я:
Вокруг сканируемого объекта (тела человека) я размещаю различные предметы известных размеров (легко измеряемых). Это обруч (установлен жестко на треножке, клиент держится за него руками), лестница от спортивного уголка (из трубы 2см, установлена вертикально позади клиента и привязана скотчем к обручу).
Вся эта конструкция не мешает сканированию, а наоборот облегчает держать трек и предотвращает смазывания.
После сканирования измеряю высоту лестницы и диаметр обруча в реале и в Рино и масштабирую.

Ссылка на сообщение
Поделиться на другие сайты

... Kinect Fusion Explorer WPF только с датчиком Kinect for Windows?
Если установить драйвера Kinect for Windows (драйвера устанавливаются при установке Kinect for Windows SDK) - то датчик Kinect for X-box работает практически так же как и Kinect for Windows.
Причем не только в программе Kinect Fusion, а и в других программах поддерживающих Kinect for Windows.

 

"asus xtion" не сможет работать в программе Kinect Fusion.

Ссылка на сообщение
Поделиться на другие сайты

до сканирования пока не добралась.
Всем, кто собирается "добраться" до сканирования.
Не буду повторятся. Тут я уже сообщал свои первые впечатления:
http://club.season.ru/index.php?s=&sho...st&p=802791
http://club.season.ru/index.php?s=&sho...st&p=802916

 

Хочу заметить еще одно.
Безусловно, что сканировать и получить почти готовую 3Д сетку манекена человека намного быстрее, проще и точнее, чем фотографировать и т.д.

 

Самым недорогим 3Д сканером является Kinect for X-box (наверное, потому, что его выпускают массово, как приставку к X-box).
Kinect for Window чуть дороже. Может он качественнее - не знаю.
Asus xtion - наверное, немного легче, но тем не менее он дороже Kinect for X-box.

 

Естественно, что для получения хороших сканов желательно мощный компьютер с видеокартой не хуже NVIDIA GtForce GT630 (1Gb/GDR3). Более мощные карты (2Gb/GDR5 и более) только приветствуются. Но в таком случае следует обязательно проверить: поддерживает ли её материнская плата, хватит ли мощности блока питания и есть ли в нем специальный дополнительный разъем для питания видеокарты.
Вращающийся подиум поможет в сканировании, но если у вас его нет - ничего страшного - придется учится плавно (без дрожания в руках) водить камерой.

Ссылка на сообщение
Поделиться на другие сайты

Помогите мне разобраться, пожалуйста, с графическим процессором. Сканект показывает: GPU unavailable .

Изменено пользователем Nikelia
Ссылка на сообщение
Поделиться на другие сайты

Помогите мне разобраться, пожалуйста, с графическим процессором.
Тут включается видеокарта для ускорения процесса реконструкцииpost-30446-1390539457_thumb.jpg
Если она у вас перечеркнута - значит в вашей карте нет поддержки CUDA 2.0
Ссылка на сообщение
Поделиться на другие сайты

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...