• Механическая обработка и изготовление деталей из металла
  • Комплектация производства промышленным оборудованием
  • Комплексная поставка микроэлектронных компонентов
+7(342)203-78-58
Тех.отд: +7-922-308-78-81

Meshlab как пользоваться: устранение ошибок в 3D моделях / Хабр

Опубликовано: 02.11.2020 в 16:23

Автор:

Категории: Популярное

устранение ошибок в 3D моделях / Хабр

MeshLab является довольно популярной программой для манипуляции и визуализации трехмерных моделей, предоставляющий широкий набор инструментов. Он среди прочего предоставляет возможности по восстановлению и устранению проблем и ошибок в 3D моделях. О некоторых таких возможностях я бы хотел рассказать в статье. Кого заинтересовало, прошу под кат.

Довольно популярной проблемой при работе с 3D моделями является возникновение отверстий (holes, gaps). Такие проблемы возникают из-за несовершенной процедуры реконструкции сцены или недостаточной точности и качества 3D камер типа Microsoft Kinect.

Мы можем восстановить поврежденные поверхности моделей и закрыть дыры в программе Meshlab. Meshlab включает специальный фильтр для задачи закрытия отверстий в 3D моделях.

В начале откроем Meshlab и импортируем модель: File > Import Mesh.

Здесь показан пример модели с отверстием:

Применим фильтр. Откроем в верхнем меню Filters > Remeshing, Simplification … > Close Holes

Откроется диалог настройки параметров:

Введем значение для параметра Max size to be closed и нажмем Apply. В моем случае хороший результат дало значение 210.

Результат применения фильтра:

Выглядит неплохо, не правда ли?

Как мы видим не нужно писать специальный скрипт для закрытия отверстий. Все работает «из коробки».

Решение проблемы с дубликат вершины в модели

После применения фильтра Close Holes при экспорте модели в obj файл могут возникнуть вершины-дубликаты, т.е. вершины с одинаковыми координатами. Это может привести к некорректной обработке модели при использовании библиотек типа OpenMesh.

Давайте создадим obj файл со следующим содержимым:

v 0 0 0
v 1 0 0
v 0 1 0
v 1 1 0
f 0 1 2
f 1 2 3

Создадим скрипт test_duplicates.py с использованием библиотеки OpenMesh (туториалы по ней можно посмотреть здесь)

import openmesh as om 
import numpy as np
mesh_3 = om.read_trimesh('duplicate_vert_test.obj')
print('Test duplicate vertices')
for i, vh in enumerate(mesh_3.vertices()):
    print('Vertices adjacent to vertex ', i)
    for vh_n in mesh_3. vv(vh):
        print(vh_n.idx())

Запустим его

Vertices adjacent to vertex  0
2
1
Vertices adjacent to vertex  1
0
2
Vertices adjacent to vertex  2
1
0
Vertices adjacent to vertex  3
Vertices adjacent to vertex  4

Добавим дубликат вершины

v 0 0 0
v 1 0 0
v 0 1 0
v 1 1 0
v 1 0 0
f 0 1 2
f 4 2 3

Здесь мы добавили еще одну вершину с координатами 1 0 0.

Запустим скрипт еще раз

Vertices adjacent to vertex  0
Vertices adjacent to vertex  1
3
2
Vertices adjacent to vertex  2
1
3
Vertices adjacent to vertex  3
2
1
Vertices adjacent to vertex  4

Сейчас мы видим, что для вершины 0 нет соседних вершин, зато для вершины 3 появились две соседние вершины 2 и 1. Кажется, что вершина 4 перетянула к себе всех соседей вершины 0, с которой имеет одинаковые координаты.

Попробуем удалить дубликаты вершин на модели из примера выше. Импортируем модель:

Здесь мы видим множество цветных граней.

Применим специальный фильтр для удаления дубликатов вершин

Filters -> Cleaning and Repairing -> Remove duplicate Vertices

Результат применения фильтра:

Если мы применим фильтр на нашей первоначальной простой модели после экспорта модели мы получим obj файл следующего содержания

vn 0. 000000 -nan(ind) 0.000000
v 0.000000 0.000000 0.000000
vn 0.000000 0.000000 -0.785398
v 1.000000 0.000000 0.000000
vn 0.000000 0.000000 -0.785398
v 0.000000 1.000000 0.000000
vn 0.000000 0.000000 -1.570796
v 1.000000 1.000000 0.000000
# 4 vertices, 0 vertices normals
f 4//4 2//2 3//3
# 1 faces, 0 coords texture

На этом все. Удачи в использовании MeshLab для манипуляции с 3D моделями и до новых встреч.

Немного о фотограмметрии или создании модели из фото

Продолжаю рассказывать о своих находках, может кому-нибудь пригодится.

Как-то раз мне понадобилось отсканировать керамическую фигурку для её увеличения и распечатки в пластике. Поиск в сети дал результат — материал ‘Создание 3D модели голени’. Там весьма подробно описан процесс, за что автору спасибо, но есть некоторые мелочи, которые позволяют значительно улучшить результат.

Для сканирования нашего объекта (возьмём безе, оно же меренги) понадобится:

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

— Meshlab c официального сайта http://www. meshlab.net/
— open-source программа Visual-SFM (автор Changchang Wu) http://ccwu.me/vsfm/ , точно работает версия Windows 64 bit, Windows 64 bit Cuda не испытывал, у кого получится с ней или с другими, отпишитесь

— дополнительный софт к программе Visual SFM https://code.google.com/archive/p/osm-bundler/downloads, качать папку osm-bundler-pmvs2-cmvs-full-32-64.zip — поднос Снудда из Ikea чтобы удобно было крутить объект, если нет, то пойдет и лист А4 с напечатанным текстом

— желательно производительный компьютер, время обработки напрямую зависит от мощности системы

Порядок действий:

А) Установка софта

1. Качаем и ставим Мешлаб

2. Скачиваем Visual, распаковываем и кидаем на рабочий стол или в папку, ВЕСЬ путь к которой НЕ содержит кириллицу (софт не понимает ничего, кроме английского)

3. Скачиваем дополнительный софт к программе Visual SFM, распаковываем, переходим

osm-bundler — osm-bundlerWin64 – software – pmvs – bin, копируем файлы в папку

VisualSFM_windows_64bit,

Повторяем с содержимым из osm-bundler — osm-bundlerWin64 – software – bundler – bin и

osm-bundler — osm-bundlerWin64 – software – cmvs – bin

Там, где при копировании в папку VisualSFM_windows_64bit просит заменить уже существующие файлы, заменяем.

4. Опционально — чтобы ноут не перегрелся, Панель управленияВсе элементы панели управленияЭлектропитаниеИзменение параметров схемы — изменить дополнительные параметры питания – управление питанием процессора – выставить максимум на 90 процентов

Софт и железо готовы.

Б) Фотографирование

Здесь несколько особенностей:

1. Программа создает облако точек, чтобы «увидеть» одну и ту же точку на разных фотографиях, ей нужны контрастные переходы. Кто фотографировал, знает, что автофокус хорошо цепляется там, где изображение имеет цветовой и световой переход. Софт видимо работает так же, как и автофокус на камере. Поэтому идеальный вариант для фотограмметрии – объект с матовой цветной поверхностью. Черный не распознает, слишком темный тоже.

2. Если объект глянцевый как керамическая статуэтка – делаем его пятнистым и полосатым с помощью водорастворимого красителя (детские фломастеры для разукрашивания лица). Так программа сможет «ухватиться» за похожие точки на разных фотографиях.

3. Работает принцип – софт видит только то, что видим мы на фотографиях, если нужно проработать какую-то часть, то ее нужно отфотографировать поближе

4. Фотографии должны быть качественными, резкими, сделаны при хорошем освещении.

5. Фотографировать можно обходя объект по кругу или вращая его на подносе. При этом область вокруг объекта тоже должна вращаться (если положить на наш поднос подушку, которая полностью закроет поднос, софт ее не распознает – будет думать, что все фото сделаны из одной точки, нужна имитация «обхода» объекта)

Сам процесс:

Клеим А4 с текстом (чтобы софт видел основание) на поднос, ставим объект на поднос, закрепляем камеру на штативе или держим в руках, стоим на месте, фотографируем каждый раз вращая поднос на 7-10 градусов.

Если фигурка маленькая с простой геометрией (типа безе) для отличного качества хватает 50 фотографий. Если статуэтка – 80. Чем больше, тем лучше, но дольше просчет модели.

B) Работа в программе

1. Открываем VisualSFM, загружаем фотографии (open Multiimages), выбираем все нас интересующие. Ждём. Под кнопкой File есть пиктограмма листа бумаги – это лог программы, можно кликнуть и наблюдать за тем, что происходит

2. Жмём по очереди слева – направо кнопки. Ждём. Долго ждём. Минут 20-30.

3. В конце выбираем папку, куда сохранить проект (только латиница в пути папки!)

4. После просчета находим файл ply. в папке проекта.

5. Открываем файл в Мешлаб, чистим модель от ненужного – сначала выбираем (левая стрелка), потом удаляем (правая стрелка)

6. Создаем полнотелую модель из облака точек: Filters, Remeshing Simplification and Reconstraction, Screened poison Surface Reconstraction, откроется окно, Reconstraction depth меняем на 9 и жмём ок.

7. Дальше File — Export Mesh, сохраняем в stl.

8. Открываем в Repetier Host, увеличиваем по максимуму и сохраняем через Repetier Host в stl. Каким то образом при этом значительно уменьшается вес самого файла.

9. Если есть какие-то ненужные пузыри, то отрезаем в редакторе типа Netfabb.

Готово. Если есть рац.предложения, как сделать качественнее или быстрее, просьба написать в комментариях.

MeshLab

MeshLab
система с открытым исходным кодом для обработки и редактирования 3D треугольных
сетки.
Предоставляет набор инструментов для редактирования, очистки, лечения, проверки,
рендеринг, текстурирование и преобразование мешей. Он предлагает функции для
обработки необработанных данных, полученных с помощью инструментов/устройств 3D-оцифровки, и для
подготовка моделей к 3D печати.

Предыдущий
Далее

Новости

Новая версия MeshLab и PyMeshLab: 2022.02

28/02/2022

Мы выпустили MeshLab и PyMesh2Lab с новыми улучшениями и исправлениями! Вы можете проверить больше
подробности здесь
и тут.

Выпущены MeshLab и PyMeshLab 2021.10
29.10.2021

Выпущены MeshLab и PyMeshLab 2021.10, с множеством
исправления и новые функции! Вы можете проверить больше
подробности здесь
и тут.

Вышла MeshLab 2021.07
23.07.2021

Вышла MeshLab 2021.07! В этой версии мы представляем поддержку
несколько форматов файлов (*.gltf, *.glb, *.nxs, *.nxz, *.e57) и
совершенно новый плагин для точной логической сетки. Скачать можно в разделе загрузок, или на гитхабе
страница выпуска.

Вы можете проверить все подробности о новом выпуске здесь.

MeshLab 2021.05 выпущен
27.05.2021

Вышла версия MeshLab 2021.05! Вы можете скачать в загрузке
раздел или на гитхабе
страница выпуска.

Вы можете проверить все подробности о новом выпуске здесь.

Вышла новая версия 2020.12!!

12.01.2020

Выпущен MeshLab 2020.12. С этой версией мы отклоняем
meshlabserver в пользу PyMeshLab,
наша новая библиотека Python для пакетной обработки сетки с использованием MeshLab
фильтры.
Мы также выпускаем новую версию, которая хранит данные с двойным
точность. Для получения более подробной информации вы можете прочитать обсуждение
на нашей странице GitHub.

Список изменений:

  • множество исправлений ошибок
  • Улучшения графического интерфейса
  • новая версия 2020.12d, хранящая данные с двойной точностью
    (бета!!)

MeshLab 2020.07 выпущен

07.06.2020

MeshLab 2020.07 вышел! Вы можете скачать в загрузке
раздел или на гитхабе
страница выпуска.

Список изменений:

  • новый плагин «Глобальная регистрация» на основе библиотеки OpenGR;
  • опция реверса колеса;
  • Snap-пакет

  • позволяет ассоциировать расширения файлов и открывать
    файлы на внешних дисках;
  • экспортер u3d стал более стабильным и работает на всех платформах;
  • удалена поддержка подключаемых модулей XML и зависимостей QtScript;
  • VisualSFM (и некоторые другие форматы) вывод *. nvm, *.rd.out
    проекты, поддерживаемые meshlabserver
  • различные исправления

MeshLab 2020.06 выпущен

06.01.2020

MeshLab 2020.06 вышел! Вы можете скачать в загрузке
раздел или на гитхабе
страница выпуска.

Список изменений:
Из-за устаревания QtScript и всех связанных с ним проблем,
мы отказываемся от поддержки плагинов XML из MeshLab, и
поэтому все плагины XML были преобразованы в классические
плагины в этой версии MeshLab. Задействованные плагины:

  • Экранированный Пуассон;
  • Мера;
  • Вороной;
  • Взаимная информация;
  • Скетчфаб;

В связи с этим переносом все старые сценарии .mlx MeshLab, включающие один из
эти плагины могут не работать на MeshLab и MeshLabServer 2020. 06.
Начиная с MeshLab 2020.07, подключаемые модули XML больше не будут компилироваться и
они больше не могут быть загружены.

Новый MeshLab 2020.03 и автоматическое развертывание

26.03.2020

Мы рады сообщить, что вышла MeshLab 2020.03! Мы создали
автоматическая система на нашем
Репозиторий Github для автоматического выпуска версии MeshLab
каждое первое число месяца. Ultimate-релиз можно найти в релизе
страница.

Примечание для версии Windows: перед установкой MeshLab 2020.03, пожалуйста,
удалите вручную любую старую версию MeshLab. Это известная ошибка
установщик и будет исправлено как можно скорее в будущем
версии.

SGP Software Award

06.06.2017

Мы с гордостью сообщаем, что 6 июля, в
Симпозиум Eurographics по обработке геометрии (SGP), MeshLab
была удостоена престижной награды Eurographics Software Award !

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

MeshLab 2016 Выпущено

23.12.2016

Спустя очень долгое время огромный процесс переписывания, и сильно
новые усилия наконец-то вышла новая версия MeshLab!

  • Полная переработка внутренней системы рендеринга. Огромный рендеринг
    скорость вперед!
  • Экранированная реконструкция поверхности Пуассона обновлена ​​до самого
    Последняя версия.
  • Новые фильтры трансформации.
  • Новые способы получения метрической информации из ваших моделей.
  • Матрицы преобразования теперь используются более единообразно среди
    фильтры.
  • Альфа-значение теперь правильно используется всеми фильтрами, связанными с цветом.
  • Улучшение и устранение опечаток в различных текстах справки/описания.
  • Прямая загрузка моделей в SketchFab
  • Регистрация растра на 3D модели на основе 2D/3D
    переписки
  • Исправление ошибок почти во всех фильтрах.

Скачать

MeshLab 2022.02

28.02.2022

Вин 64
MacOS
Linux AppImage Linux FlatPak Исходники
Другие выпуски Образцы сеток

Функции

Поддержка

Мистер
P. Учебники YouTube

Основы

В этом плейлисте показаны основные концепции 3D-модели.
обработка в MeshLab.

Features

В этом плейлисте описаны интересные возможности MeshLab:
редактировать, фильтры, украшения, которые могут быть полезны в вашем
повседневная жизнь, связанная с «обработкой сетки».


Сканирование конвейера

В этом плейлисте описаны основные этапы сканирования
конвейер, выполненный с помощью MeshLab.

Очистка

В этом плейлисте описывается способ «очистить» сетку путем удаления
нежелательная геометрия или атрибуты.

Вопросы и форум

Для вопросов, разъяснений и любых
какие-то сомнения по поводу MeshLab и как получить наилучший результат
с различными фильтрами используйте stackoverflow .
Будьте конкретны и отмечайте свои вопросы с помощью MeshLab.

Поиск
Вопрос Задать вопрос
Вопрос

Отчет об ошибке

Пожалуйста, сообщите о github ТОЛЬКО ошибки и
неисправность. Пожалуйста, не отправляйте файлы, так как проблемы с github
вопросы о том, как использовать MeshLab.

Прежде чем выдавать ошибку, пожалуйста , внимательно прочитайте как
сообщить об ошибке
Сообщить об ошибке

Хвастовство

За то, что вы делитесь хорошими фотографиями, сообщаете об интересных
опыт, благодарность (или порицание) разработчиков или просто
хвастаясь своими последними результатами, следите за официальной
Страница MeshLab в фейсбуке.
Помните: не задавайте технические вопросы на Facebook. (фейсбук
трудно найти и плохо индексировать: любой
усилия, затраченные на ответы на технические вопросы, немного
зря)

MeshLab
на

Лицензирование

Источники MeshLab распространяются под лицензией GPL
3.0 Схема лицензирования.
Название «MeshLab»
Торговая марка EUIPO, принадлежащая
CNR.
логотипов MeshLab ( ) распространяются под номером
Creative
Commons Attribution-Sharealike 4.0 Международная лицензия
и их можно свободно использовать внутри любого проекта викимедиа.

Ссылки

Самый простой способ выразить признательность системе MeshLab — это
не забывайте цитировать его всякий раз, когда вы использовали некоторые из его функций.

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

Общая информация: MeshLab — это система с открытым исходным кодом, разработка которой с 2005 года ведется Лабораторией визуальных вычислений ISTI-CNR.
Его скачали более 3 миллионов раз, и, согласно обновляемой статистике, в настоящее время им пользуются более 100 000 пользователей.

{{pi.description}} {{pi.paperAuthors}}
{{pi.paperTitle}}
{{pi.paperVenue}}, {{pi.paperYear}}

{{pi.bibtex}}

PDF

Узнайте, как исправить 3D-файлы с помощью программного обеспечения Meshlab

Центр обучения 3D