Fotogrametría gratuita en Mac OS: de fotos a modelos 3D: 5 pasos
Fotogrametría gratuita en Mac OS: de fotos a modelos 3D: 5 pasos
Anonim
Fotogrametría gratuita en Mac OS: de fotos a modelos 3D
Fotogrametría gratuita en Mac OS: de fotos a modelos 3D

La fotogrametría es el uso de imágenes / fotografías para medir distancias entre objetos (gracias Webster). Pero para propósitos modernos, a menudo se usa para hacer un modelo 3D de algo del mundo real sin necesidad de un escáner 3D.

Existe una gran cantidad de software que puede usar para fotogrametría, incluidas algunas excelentes opciones gratuitas, pero noté que muchos (como Meshroom) no tenían compilaciones de Mac disponibles. O requerirían una tarjeta gráfica con soporte CUDA (no es típico con cosas como una Macbook). Así que eso significó investigar un poco.

Finalmente me encontré con este excelente artículo:

Esto condujo a un script de compilación de seguimiento:

Me tomó un tiempo hacerlo funcionar, pero una vez que lo puse en marcha, quedé bastante satisfecho con los resultados que comencé a obtener. Entonces, voy a desglosar los pasos un poco más, especialmente para los usuarios de Mac.

Paso 1: Obtenga COLMAP

COLMAP (https://colmap.github.io/install.html) es una pequeña y agradable herramienta gratuita para comenzar con la fotogrametría. Lo probé solo al principio, pero algunos de los pasos posteriores requerían CUDA. Así que tuve que empezar a buscar de nuevo. Es por eso que usaremos otro software para los pasos posteriores.

Descargar COLMAP es fácil. Puede seguir las instrucciones aquí:

O puede ver la última versión en su página de github: https://github.com/colmap/colmap/releases y descargar la última versión de COLMAP-dev-mac-no-cuda.zip

Una vez que descargue el zip, descomprímalo y pegue la aplicación COLMAP en su carpeta de Aplicaciones.

Paso 2: Obtenga y compile OpenMVS

El siguiente programa que utilizo para ayudar a terminar de construir los modelos 3D es OpenMVS (https://cdcseacave.github.io/openMVS/). Vas a tener que construir esto en tu máquina, así que intentaré hacerlo lo menos doloroso posible.

El enlace a las instrucciones para obtener y compilar OpenMVS en una Mac está aquí:

pero tuve que modificarlo ligeramente. Aquí esta lo que hice:

  • Descarga Xcode de la tienda de aplicaciones

    Abra Xcode y acepte la licencia

  • Instale Homebrew si aún no lo tiene:
  • Instalar GIT:
  • Instale CMake:
  • Abra una terminal y ejecute el siguiente script. Asegúrate de hacerlo desde algún lugar donde quieras que viva openMVS (tengo una carpeta de 'Proyectos' debajo de mi usuario principal):

# Instalar dependencias /github.com/cdcseacave/openMVS.git #Construir OpenMVS mkdir openMVS_build && cd openMVS_build cmake…/openMVS -DCMAKE_BUILD_TYPE = Lanzamiento -DVCG_ROOT = "$ ruta_principal / vcglib" -G "Xcode"

Versión de configuración de xcodebuild

Paso 3: crea un guión de fotogrametría

Luego creé un script basado en el de aquí:

Esto es lo que terminé con (preste atención a las notas en el guión, ya que requiere que establezca algunas ubicaciones):

Fotogrametría.sh

# Estos parámetros son específicos de la computadora # Almacenar el directorio actual: currDir = $ PWD

# obtener el nombre de la carpeta como variable

myfolder = $ {PWD ## * /}

# Establezca el directorio colmap (cámbielo a donde ha descargado colmap, reemplace 'dev' con el número de versión si es necesario):

colDir = / Aplicaciones / COLMAP.app / Contenidos / MacOS / colmap

# Establezca el directorio openMVS (cámbielo a la carpeta 'bin / Release' donde ha descargado y construido openMVS)

oMVS = / Usuarios / joecooning / Proyectos / openMVS_build / bin / Release

# Establecer directorio de trabajo (creo una carpeta de espacio de trabajo temporal en mi directorio 'Proyectos' para procesar datos)

workDir = / Users / joecooning / Projects / 3dscans / workspace / $ myfolder /

mkdir $ workDir

cp *-j.webp

$ colDir feature_extractor --database_path database.db --image_path.

$ colDir exhaustive_matcher --database_path database.db mkdir sparse $ colDir mapper --database_path database.db --image_path. --output_path sparse $ colDir model_converter --input_path sparse / 0 --output_path model.nvm --output_type NVM $ oMVS / InterfaceVisualSFM model.nvm $ oMVS / DensifyPointCloud model.mvs $ oMVS / ReconstructMesh model_dense.m --vs $ oMesh model_dense.m resolución-nivel 1 model_dense_mesh.mvs $ oMVS / TextureMesh --export-type obj -o $ myfolder.obj model_dense_mesh_refine.mvs

mkdir $ currDir / model /

cp *.obj $ currDir / model / cp *.mtl $ currDir / model / cp * Kd-j.webp

cd $ currDir

Paso 4: ejecutar el script

Ahora que tiene el guión, puede tomar fotos de un objeto del que desea hacer un modelo 3D. Hay otros artículos y videos que pueden brindarle buenos consejos sobre cómo tomar fotos con el propósito de fotogrametría (como este: https://www.tested.com/art/makers/460142-art- Foto…).

Pero esas fotos en una carpeta, copia el script que hiciste en la carpeta.

Desde su terminal, vaya a la carpeta donde están las fotos y el script y ejecute:

sh Fotogrametría.sh

El guión hará el resto del trabajo por ti. Tenga en cuenta que esto puede tardar bastante en procesarse (especialmente si está utilizando muchas fotos de alta resolución). Sugeriría probar primero algunos conjuntos de fotos más pequeños. Aquí se pueden encontrar algunos conjuntos de fotografías de muestra simples: (https://www.regard3d.org/index.php/demo-models)

Recomendado: