Publicat el

Escaneig 3D partint de fotografies (2)

Pedres escanejades a la Vall de Santa Magdalena

A l‘entrada introductòria a aquesta temàtica comentava que no va ser fàcil trobar una solució de programari lliure per a l’escaneig 3D. Finalment vaig acabar descobrint Python Photogrammetry Toolbox (PPT) que és l’eina que he fet servir fins ara. Està basada en Bundler i tot i que sembla que no funciona bé a Debian 8 Jessie, a Debian 7 Wheezy no hauríem de tenir cap problema. Aquest i altres programes que utilitzen la tècnica fotogramètrica per a la reconstrucció 3D són disponibles a una distribució especialitzada en temes d’arqueologia que es diu Archeos.

La documentació sobre com fer-lo servir era força dispersa i que en parli ara té a veure amb això, en part, ja que vull posar per escrit tota una sèrie de passos que no són obvis però sí necessaris per tal d’obtenir un bon model 3D ben texturitzat d’allò que escanegem. En aquest primer article, però, ens limitarem a l’ús de PPT-GUI, i deixarem per a una segona part explicar com processem els núvols de punts generats i les fotografies originals a Meshlab. Seguint el procés que estic cobrint amb aquests articles he fet alguns assajos tot escanejant roques. A més del que ja mostrava a l’anterior article, aquí hi ha un altre vídeo amb uns altres resultats:

Com que hi pot haver algunes omissions i tampoc vull ser exhaustiu en tots els aspectes, tingues present que al final de l’article podràs trobar els enllaços a les pàgines que, en part, s’han utilitzat per a generar aquesta documentació. Allà hi podràs trobar més informació complementària.

  • No tinc clar en quin estat de desenvolupament es troba Pyhton Photogrammetry Toolbox, ja que han aparegut altres programaris també lliures . No obstant, encara es pot descarregar amb normalitat des d’aquest enllaç present a aquesta pàgina. Per les proves que he fet fins ara, només funciona a versions de Debian fins Wheezy (7). Fa poc vaig tenir l’ocasió de provar-ho a un sistema Windows 10 i funciona bé. Si algun dels enllaços no funcionés, pots utilitzar la Wayback Machine o, en el pitjor dels casos, podria penjar els paquets que vaig descarregar jo mateix.
  • Relacionat o essent part d’aquest projecte, pots visitar aquesta pàgina de Google Code des de la qual també es pot descarregar pràcticament el mateix. Veuràs que el projecte també rep el nom de osm-bundler ja que es va desenvolupar bastant amb vista a l’ús dins d’Open Street Map.
  • Els avantatges que els desenvolupadors destaquen del projecte són:
    • que és 100% basat en programari lliure (moltes altres solucions fotogramètriques no ho són i tenen algunes clàusules que dissuadeixen els usos comercials d’aquesta tecnologia)
    • que en estar basat en Python, per raons que no acabo de comprendre del tot, el programa és més senzill d’utilitzar independentment de la plataforma i altres condicionants.

En cas que t’hagis descarregat osm-bundler_64bit.tar.gz des del primer enllaç de museidironzone.it, només caldria descomprimir-ho i executar l’arxiu ppt_gui_start que hi ha dins la carpeta osm-bundler > linux

  • Et recomano que utilitzis el terminal per a executar el programa. D’aquesta manera podràs veure missatges dels quals és interessant tenir constància.
  • Per a fer-ho, obre un terminal, accedeix a la carpeta linux dins d’osm-bundler i allà tecleges

./ppt_gui_start

  • Si no et funcionés, assegura’t que la ruta d’accés al programa (ppt_gui.py) que hi ha dins aquest script és correcta.
  • Si encara així no et funcionés, podria ser que tinguessis un problema de dependències no satisfetes, ja que el programa es basa en altres llibreries i tecnologies per a funcionar. Fes una ullada a la pàgina de Google Code o al Wiki d’OpenStreetMap on es parla sobre això. Tampoc oblidis llegir tots els arxius Readme que hi hagi juntament amb les descàrregues, per a tenir una visió global de la qüestió.

Un altre dels avantatges d’aquesta eina és que ens ofereix una interfície gràfica per a treballar a aquells qui no estem tan acostumats a l’ús de les eines a través del terminal de comandes.

Si el programa se’ns executa satisfactòriament ens hauria d’aparèixer una finestra com aquesta:

Finestra de diàleg del programa osm-bundler
Finestra de diàleg del programa osm-bundler

Les tres pestanyes que ens interessen de les quatre que hi ha són les següents:

  1. 1. Run Bundler
  2. or run PVMS without CMVS
  3. Check camera database
  1. Primer de tot anirem a Check Camera database i a través del botó corresponent seleccionarem la carpeta de les fotografies que volem utilitzar per a reconstruir el model 3D. Un cop triada la carpeta, farem clic al botó Run que tenim dins la mateixa pestanya. Aparentment no hi haurà cap canvi a la finestra; és per això que hem engegat el programa a través del terminal, ja que si el mires allà podràs observar que, si tot ha anat bé, ens ha de sortir el missatge Camera is already inserted into the database.
  2. Selecciona la ruta de la carpeta que tot just acabem de seleccionar i fes Ctrl+C per a copiar-la
  3. Després d’això anirem a la primera pestanya Run Bundler. Allà enganxa dins el camp path la ruta que has copiat al pas anterior.
  4. Marca la casella Scale Photos with a Scaling Factor i, per a un escaneig de la màxima qualitat, deixa al seu estat per defecte el valor 1.
  5. Fes clic a Run. Durant els minuts següents (que poden ser pocs o molts, en funció del nombre de fotografies i la complexitat del model inferit) es calcularà el núvol de punts.
  6. Veuràs que el càlcul ha finalitzat quan al terminal aparegui el missatge Finished! See the results in the ‘/tmp/una_carpeta_impronunciable’ directory. Molt probablement, aquesta mateixa carpeta se t’obrirà dins dels gestor d’arxius Nautilus.
  7. Ara que s’ha generat la carpeta, si vols la pots retallar i emportar-te-la a una ubicació personalitzada, o seguir-la tenint al directori /tmp. Sigui quina sigui la ubicació on la tinguis, copia aquesta ruta perquè la necessitarem al pas següent.
  8. Ara anem a la pestanya or run PVMS without CMVS, la tercera per l’esquerra. Allà marquem l’opció Use directly PMVS2 (without CMVS).
  9. Al camp on posa path hi enganxem la ruta que hem copiat fa un moment (o bé l’anem a buscar tot utilitzant el botó Select Bundler Output Path. Fem clic a Run
  10. Quan el procés finalitzi, veuràs que dins la carpeta de treball se n’hi ha generat una altra pvms, que al seu temps conté una carpeta models. Si tot ha anat bé, hi ha d’haver un arxiu que és el núvols de punts generat: pmvs_options.txt.ply.

Aquest arxiu de núvol de punts el pots obrir a Meshlab (dins un projecte nou ja creat, i tot utilitzant File > Import Mesh) i et podràs fer una primera idea de com ha quedat. Al proper post veurem com podem editar dins de Meshlab aquest núvol de punts per a convertir-lo en una malla, i com texturitzar aquesta malla i exportar-la per a fer-la servir en una aplicació externa, com per exemple Blender.

Fonts d’informació utilitzades per a elaborar aquest article

Save

Save

Save

Save

Save

Save

Save

Save

Save

Publicat el

Escaneig 3D partint de fotografies (1)

La possibilitat d’escanejar en 3D objectes i elements del món real m’ha atret des de fa temps. Després d’anar-me assabentant d’algunes tècniques i fent provatures amb les que em resultaven accessibles, no va ser fins l’any passat que vaig poder utilitzar satisfactòriament una eina que utilitza un mètode fotogramètric per a la reconstrucció 3D. És el Python Photogrammetry Toolbox, PPT. En un proper article en parlaré amb més profunditat.

Què és la fotogrametria

La fotogrametria és una tècnica que ja fa molt de temps que existeix i que serveix per a extreure dades mètriques, dimensionals, partint de documents fotogràfics. La comparació geomètrica/matemàtica de com es mostren uns mateixos elements a dues o més fotografies, preses des de posicions més o menys diferents, ens permet obtenir aquestes dades. S’utilitza de manera significativa en camps com la cartografia. En aquest cas, a partir de dues fotografies aèries d’una mateixa zona podem calcular-hi distàncies o reconstruir el relleu.

Visió general del procés

1. Creació del núvol de punts

Això és el que veurem en el proper article i és en això precisament que ens assisteix el programa PPT. A partir de l’anàlisi de les fotografies i per cada característica del relleu detectada, el programa crea un punt a l’espai 3D virtual. Cada un d’aquests punts té el color del pixel que hi ha a la posició interpretada i forma el que anomenem un núvol de punts. Tot i que en el programa veurem alguns noms una mica estranys, aquesta part del procés és la més senzilla i on hi ha menys possibilitats que nosaltres o l’ordinador ens equivoquem.

2. Procés del núvol de punts

Els núvols de punts poden ser més o menys densos, però normalment són quelcom complex de treballar amb un programa convencional de 3D i per això existeixen programes específics com Meshlab. Aquests programes ens permeten treballar de manera àgil amb grans quantitats d’informació i, entre altres coses, convertir els núvols de punts en malles que ja podem utilitzar dins un programa de 3D convencional com Blender.

Aquesta part és una mica més complicada, ja que tenim més opcions, i per tant també més possibilitats d’equivocar-nos. En un altre article veurem la proposta de procés que a mi m’ha funcionat.

Resultats del procés

Aquest és el primer dels dos articles que de moment publico sobre aquest tema. Aquí pots llegir el segon, on explico amb detall com es genera el núvol de punts tot utilitzant l’eina Python Photogrammetry Toolbox.

Publicat el

Blender 101: Mòdul 6

Reutilització de dades i de llibreries en Blender: els datablocks

Al mòdul anterior hem après a modelar i a ajustar de manera elemental les propietats dels materials. Aquest sisè i últim mòdul és la conclusió del curs i parla d’un concepte aparentment més abstracte, però que realment té molta relació amb el flux de treball que fem dins el programa. Es tracta dels blocs de dades, que és el mateix que parlar de com s’organitza la informació en Blender. Això és útil perquè ens permet organitzar la feina per tal de no haver de repetir processos, així com fer coses tan habituals com utilitzar materials o altres elements de llibreria que haguem descarregat o comprat a Internet.

Espero que hagis gaudit del curs. Si és així, comparteix-ho a les xarxes socials perquè les teves amistats i seguidors també en puguin treure partit!

Publicat el

Blender 101: Mòdul 5

Modelatge i materials

Al mòdul anterior hem vist com funcionaven les làmpades, la càmera i el procés de render. Al cinquè mòdul aprenem què és el procés de modelatge i els seus mecanismes bàsics. El modelatge és el conjunt de tècniques que ens permeten donar una forma concreta (de pera, de gos, de casa) als objectes. També veiem a nivell molt introductori com funcionen els materials, que són les propietats que ens permeten ajustar l’aspecte que tenen les superfícies quan són il·luminades per la llum d’una làmpada.

Ja falta molt poc per a acabar aquest curs. Al sisè i últim mòdul parlem d’altres aspectes aspectes importants sobre el flux de treball en Blender i per a millorar la nostra productivitat.

Publicat el

Blender 101: Mòdul 4

Llums, càmera i render!

Al mòdul anterior hem après la manera de transformar objectes i altres elements en Blender. Aquest quart mòdul està dedicat als elements imprescindibles que necessitem per a crear una imatge en un programa de 3D, a part dels elements geomètrics: la càmera, les làmpades, i el procés de render. El render és un procés a través del qual es posen en relació tots aquests elements i dóna com a resultat una imatge bidimensional.

Si ja t’ha quedat clar tot això, ara ja pots accedir al cinquè mòdul per a fer una introducció al modelatge i als materials en Blender.

Publicat el

Blender 101: Mòdul 3

Creació i transformació d’objectes

Al mòdul anterior hem vist la interfície del programa. En aquest mòdul ens centrem en els mecanismes per a transformar objectes. No obstant, encara que en aquest cas ho estiguem aplicant a objectes, aquests aprenentatges són importants perquè després són extrapolables a qualsevol cosa susceptible de ser transformada en el programa: keyframes, arbres de nodes, vèrtexs, marques de tracking, etc.

Al mòdul següent aprendrem a crear imatges a partir del 3D, tot ajustant les làmpades, la càmera, i els paràmetres del procés de render.

Publicat el

Blender 101: Mòdul 2

La interfície de Blender

Havent fet una introducció genèrica al programa al mòdul anterior, ara veurem com ens relacionem amb el programa, és a dir, la interfície.

Recorda que pots descarregar la documentació escrita corresponent a aquest mòdul i a l’anterior des d’aquest enllaç.

Al proper mòdul veiem els aspectes bàsics de la creació i transformació d’objectes en Blender.

Publicat el

Blender 101: Intro i mòdul 1

Curs d’introducció a Blender

Durant les últimes setmanes he estat preparant un curs d’introducció a Blender en anglès, que t’ofereixo gratuïtament. Potser no saps qui sóc ni quina experiència tinc amb Blender i és normal que no ho sàpigues, per tant és important que et digui que aquest curs és fruit de la meva experiència durant més de cinc anys ensenyant a persones a fer servir el programa. Això m’ha permès anar veient al llarg del temps què era el més important, i el resultat és el que he condensat en aquest curs.

Blender és el programa que ja podries estar fent servir

Potser has arribat aquí per casualitat i encara t’estàs preguntant per quin motiu hauries de fer servir Blender si ja vas tirant amb l’After Effects / el Cinema 4D / el 3DS Max, posa-hi el programa que vulguis relacionat amb la creació visuals. Aquí tens alguns motius per a utilitzar Blender:

  • si el 3D és la teva assignatura pendent i fins ara has treballat només en 2D, aquesta és una magnífica oportunitat
  • Blender és gratuït. No estàs cansat de piratejar i/o pagar programes?
  • És un secret a veus que Blender funciona molt bé. A algunes persones i empreses els fa vergonya sortir de l’armari i reconèixer-ho, però tot arribarà.

Blender és diferent, no difícil

Blender és un programa que té una interfície diferent, poc convencional. Això és precisament el que fa possible un treball molt ràpid amb el programa. Fins que no la dominis, és possible que sentis un punt de frustració, però això passa en qualsevol procés d’aprenentatge que val la pena. Si estàs disposat a passar pel procés, és senyal que també estàs capacitat per a superar-lo. Un cop entenguis la lògica del programa t’adonaràs que qualsevol altra cosa nova que vulguis aprendre es converteix en molt intuitiva i previsible. Et podràs concentrar en les tècniques en lloc de concentrar-te en el programa.

Curs gratuït, però molt seriós

Aquest curs és per a persones que enfoquen seriosament la seva voluntat d’aprendre Blender. També és el meu primer curs en vídeo i online autoproduit, així que segur que moltes coses les faré millor la propera vegada. Estaré encantat d’escoltar o llegir les teves opinions respectuoses.

Com, què i quant:

El curs té 6 mòduls, cada un dels quals consta de tres o quatre lliçons, amb una breu introducció. Cada lliçó dura uns 5 minuts, així que la durada total del contingut formatiu és d’unes dues hores. Compta que necessitaràs un mínim d’unes quatre hores per a veure el curs i assimilar els continguts a través dels exercicis proposats.

Mòdul 1

En aquest primer mòdul fem un acostament al programa, molt genèric, de manera que quasi no veiem el programa en sí funcionant a l’ordinador, si no que el que fem és aprendre’n conceptes generals i una mica d’història. Dit en altres paraules, el que fem és mentalitzar-nos per a l’aprenentatge. Aquest mòdul i el següent van acompanyats cada un d’un contingut en PDF que pots descarregar des d’aquí.

Al proper mòdul ja comencem a treballar pròpiament amb el programa, analitzant i aprenent els principis bàsics de la interfície.