Episodi 010: Reconstrucció 3D amb COLMAP i mòbils

Durada: 19:18 Episodi 10
Episodi 010: Reconstrucció 3D amb COLMAP i mòbils

🎯 Capítols

Carregant capítols…

Introducció

Tercer i últim episodi de la sèrie sobre reconstrucció 3D amb COLMAP. Després d’introduir els fonaments a l’Episodi 008: Com COLMAP reconstrueix el món en 3D i aprofundir en la captura terrestre en anglès a l’Episodi 009: Construir mons 3D sense drons, ara repassem tot el pipeline complet — en català — amb un enfocament pràctic i accessible: des de com l’algorisme SIFT crea empremtes dactilars de 128 dimensions per a cada punt d’interès fins a la reflexió inquietant sobre què implica per a la privacitat que qualsevol persona amb un mòbil pugui generar models 3D d’espais públics.

Temes tractats

Fonts


Important: Aquest episodi ha estat generat amb intel·ligència artificial basant-se en fonts públiques. La transcripció s’ha generat automàticament amb OpenAI Whisper (model large-v3). Consulta sempre les fonts originals per obtenir la informació completa.

audio_file: 010-reconstruccio-3d-colmap-mobils.mp3 date: ‘2026-04-20’ description: ‘ Quan una persona camina per una gran plaça a l’‘aire lliure o, no sé, fa la volta a una font monumental de pedra, el cervell humà fa una feina absolutament extraordinària i gairebé sense que ens n’‘…’ duration: ‘10:32’ episode_number: 10 season: 1 sources:

Introducció

[Descripció generada automàticament. Revisa i personalitza segons calgui.]

Quan una persona camina per una gran plaça a l’aire lliure o, no sé, fa la volta a una font monumental de pedra, el cervell humà fa una feina absolutament extraordinària i gairebé sense que ens n’…

Transcripció completa

Quan una persona camina per una gran plaça a l’aire lliure o, no sé, fa la volta a una font monumental de pedra, el cervell humà fa una feina absolutament extraordinària i gairebé sense que ens n’adonem, deduïm de manera immediata què és a prop, què és lluny i, bueno, com s’estructura tot aquest espai en tres dimensions. Clar, i tant. És un procés evolutiu increïble. O sigui, el nostre sistema visual està processant contínuament micromoviments, la paral·làxia, la perspectiva de les línies i fins i tot el joc de llums i ombres. Exacte. I tot això ens permet entendre la profunditat amb un simple cop d’ull. Per això podem moure’ns per la ciutat sense xocar amb els fanals, saps? Sí, sí, totalment. Però clar, aquí és on topem amb un mur enorme quan parlem de tecnologia. Perquè un ordinador parteix absolutament de zero. De zero absolut, sí. Si li donem una fotografia d’aquesta mateixa plaça, la màquina no veu l’espai. El que veu és una grella plana, bidimensional, amb una mena de fulla de càlcul gegant plena de números. Això mateix. Només valors numèrics per als colors de cada píxel. I no té cap noció de què és el cel, on comença el terra, o a quina distància física de la lenta està l’estàtua. Llavors, el que avui explorarem a fons és precisament d’això. Com aconseguim que una màquina arribi a veure la profunditat a partir d’aquests píxels plans? És el gran repte. I el que és més fascinant encara, com podem capturar espais exteriors gegantins només caminant-hi amb un telèfon mòbil, sense necessitat d’utilitzar drons ni equipament topogràfic caríssim. I aquest és justament el repte tècnic que resol la reconstrucció 3D moderna fent servir programari de codi obert. Avui desgranem les mecanismes d’això que a molta gent li sembla màgia negra. Ens basarem en un material molt bo, un vídeo del canal Everypoint, on parlen amb un expert en visió per comunicació, computador, sobre un programa que és l’estàndard absolut, el Colmap. D’acord, doncs anem al gra. Per on comença l’ordinador? Perquè, a veure, si jo miro una foto d’un cel blau, el meu cervell entén a l’instant el concepte cel. Però per a la màquina són només milers de píxels iguals. Com trobar punts de referència per començar a mesurar res? Aquest primer pas s’anomena extracció de característiques, o feature extraction. Com deies, l’ordinador no entén conceptes semàntics com cel o pedra. Ja. El que fa és utilitzar algoritmes matemàtics complexos com un de molt formós, que es diu SIFT, per buscar gradients, o sigui, rastreja tota la quadrícula de píxels buscant llocs on hi ha un canvi brusc de color, de textura o de llum. Com, per exemple, una línia foscada que de cop es creu en una zona clara. Exacte. O la vora esmolada d’una finestra contra una paret llisa. Allà on detecta un contraste fort, pam, i planta un marcador geomètric que anomenem punt clau. Ostres, clar. Això em recorda a l’exemple de la font del Capitoli d’Òregon que surt al material d’avui. Allà es veu molt evident. L’ordinador s’obsessiona literalment amb les motllures de la pedra o amb el relleu d’un pom d’una porta. Clar, perquè allà hi ha petites ombres i llums barrejades. Hi ha molt contrast. Però, en canvi, quan l’algoritme mira al cel clar o a una carretera d’asfalt que és superplana, no troba contrast. I es queda sec. No hi ha res a marcar. Però, què fa l’ordinador un cop troba un d’aquests punts clau? Simplement anota a les coordonades la X i la Y? Ui, no, no. Si només guardés la ubicació del píxel, seria inútil. El que fa realment és analitzar tots els píxels del voltant d’aquest punt clau i crear un descriptor. Un descriptor. D’acord. Sí. És com un vector matemàtic molt robust. Per exemple, amb el SIFT, es crea un vector de 128 dimensions. Uau. 128 dimensions per a un sol punt? Sí. I això codifica de manera molt precisa com es distribueixen les gradients de llum en aquell petit radi. En el fons, és com si el programa generés una empremta dactilar numèrica única per a cada recu de la fotografia. Una empremta dactilar de 128 dimensions només per un puntet i en traiem millers per fotografia. Déu-n’hi-do. Dó el volum de dades inicial. Ara entenc l’evolució del Colmap. Clar. Recareix molta potència. El seu creador, en Johannes Schoenberger, inicialment havia dissenyat un sistema diferent que es deia MapMap, oi? I estava pensat exclusivament per a drons. Exactament. Però la fotografia aèria amb drons té un avantatge enorme respecte a caminar amb un mòbil. Que miren cap avall. Això mateix. La càmera sol mirar cap avall en un angle constant. De manera que les línies de visió són ordenades. Schoenberger es va adonar que el repte real era generalitzar aquest procés per a imatges completament desordenades, fetes a peu de carrer des de qualsevol angle. I d’aquí va néixer el projecte Colmap. Sí, que de fet és l’acrònim de Collection Mapper. La idea era que qualsevol col·lecció d’imatges capturades lliurement pogués convertir-se en una rèplica en 3D. Però aquí hi ha un detall que em grinyola una mica. Un dron porta una lent calibrada i d’alta qualitat. Però si jo vull fer servir el meu telèfon caminant per una plaça o una càmera d’acció, tipus GoPro, enganxada al pit, aquestes lents deformen l’espai d’una manera brutal. I tant, moltíssim. Jo he vist fotos meves on els edificis dels cantons semblen caure cap endins. Llavors, com pot l’ordinador calcular una geometria precisa si la meva lent li està falsejant que és recte que no ho és? Aquesta deformació en la distorsió de la lent destrossaria qualsevol càlcul si l’ordinador l’ignoreix. Així que, abans de relacionar les fotos a l’espai, el programa necessita modelar matemàticament el comportament d’aquest vidre. O sigui, literalment, aplica una correcció per desdoblegar la imatge i posar-la plana. Bueno, no la desdoblega visualment creant un fitxe nou, com si fossis al Photoshop. El que fa és incorporar els factors de distorsió directament a les seves equacions. Ah, d’acord, ho entenc matemàticament. Exacte. Si fas servir un mòbil normal, potser només aplica un paràmetre radial anomenat K, que compensa la curva del vidre. Però si grabes amb un gran angular o un ull de peix per capturar més espai, la fórmula s’encareix, ha d’afegir paràmetres tangencials complexos. Sense saber com la llum es dobla, els reis que l’ordinador projecta mai es creuarien a l’espai 3D. Val, val, ho tinc. Llavors, assumim que ja tenim milers d’aquestes empremtes dactilars identificades per cada foto. I sabem exactament com la gent ha filtrat la llum. Perfecte, sí. Però si jo em moc al voltant d’aquesta gran font i faig 50 fotos des de diferents angles, com dimonis relaciona la màquina els punts de la foto número 1 amb els de la foto número 15? I recordem, sense fer servir dades de satèl·lit que el GPS del mòbil rebota entre els edificis i és super imprecís. Clar, ens oblidem del GPS. Entrem a la segona fase. L’emparellament de capítols. El programa ha de comparar cadascuna d’aquestes empremtes matemàtiques de 128 dimensions amb les de les altres fotos, per trobar les que siguin prou semblants per confirmar que és el mateix objecte físic. A veure, a veure. Frena un moment perquè m’està explotant el cap amb les matemàtiques. Si tinc 100.000 fotos d’una plaça per cobrir-la tota, el programa comprova els milers de punts de la foto 1 contra els de les altres 9.999 fotos. Eh… Sí, d’entrada podria fer-ho. I després la foto 2 contra totes les altres. Això és exponencial. Estem demanant buscar una agulla amb milions de pallers alhora. El meu ordinador es fundria. I tens tota la raó. Estic segura que es fundria. Això és el que s’anomena l’estratègia de cerca exhaustiva. Si tens 50 fotos, cap problema, es fan minuts. Però amb milers de fotos pot trigar setmanes només a calcular quina foto va amb quina, abans de construir… Ostres. I llavors, si trigues setmanes, per què tants cops escollim aquesta opció exhaustiva quan fem servir aquests programes? Què estem ignorant? És un error de plantejament brutal. No està aprofitant com hem recollit les dades. Si grabes la font caminant, fas un recorregut al seu voltant, oi? Un vídeo o fotos seguides. Clar, vaig donant la volta a poc a poc. Doncs pots escollir l’estratègia seqüencial, li dius a la màquina. Escolta, la foto 30 només l’has de comparar amb les 3 o 4 fotos d’abans i de després. Ah, clar. D’aquesta manera, t’estalvies comparar la cara nord de la font amb les fotos de la cara sud. Estalvies milions d’operacions inútils. D’acord. O sigui que el context cronològic és clau. Però i si no tinc aquest luxe? Imagina un grup d’arquitectes que vol reconstruir una plaça històrica a partir de fotografies d’arxiu desordenades o de turistes que les han pujat a internet en diferents estats. Sense seqüència lògica, tornem a l’infern exhaustiu. No del tot. Aquí entra una solució genial que es diu arbre de vocabulari, o vocabtri. En lloc de fer-ho a la força bruta, agrupa els vectors en paraules visuals, crea etiquetes tipus textura de tot això, o reixa de ferro, i resumeix la foto en un catàleg de paraules. Espera, a veure si ho entenc. És com si l’algoritme creés un índex temàtic al final d’un llibre gegant. Mmm. Sí, bona analogia. En lloc de llegir cada pàgina buscant arquitectura romana, va directament a l’índex, veu quines 5 pàgines tenen aquesta paraula clau, i només comparar aquestes 5 pàgines. Exacte. Actua com un motor de cerca intern ultraràpid. Colmap filtra l’índex i et diu d’aquestes 10.000 fotos, només aquestes 50 tenen els mateixos elements. I només fa l’emparellament pesat, pixel a pixel, contra aquesta 50. És magistral. Molt intel·ligent, sí senyor. Però bé, fem un parellament. Un pas més. Perquè ara mateix encara estem en el món dosdí de les fotos. Com saltem a l’espai 3D? Em fascina això de la reconstrucció incremental. Com decideix la màquina on col·locar la primera peça d’aquest món? Suposo que no comença per la foto 1 i la foto 2, oi? Sobretot si es van fer des del matgexloco exacte. Vas molt bé encaminat. El programa depèn d’un principi fonamental. La triangulació. Hi ha encerrats imaginaris des de les càmeres calculades perquè es creuin a l’espai. Clar. Si fes servir dues fotos fetes a 3 centímetres de distància, els raig sortirien gairebé paral·lels i no es creuarien nítidament. El càlcul de profunditat seria un desastre. Lògic. És la mateixa raó biològica per la qual els humans tenim dos ulls separats a la cara. Si em tapo un ull i intento omplir un got d’aigua, acabo mullant la taula, saps? Totalment. Necessites paral·laci, necessites que l’ordinador tingui els ulls separats. Llavors intento emparellar dos fotogrames. Seguits d’un vídeo, és com si l’ordinador tingués els ulls enganxats al mateix lloc. Això mateix. Així que, per col·locar la primera llavor del model 3D, el programa busca una bona línia base. Busca dos fotos que tinguin milers de punts en comú, però amb una distància física entre elles prou gran per oferir un bon angle per la triangulació. Pot ser començar aparellant la foto 12 amb la 90. I un cop té aquesta base, va afegint la resta una a una, avaluant noves càmeres. Però m’imagino que això acumula errors, oi? He vist que el material parla d’un procés que es diu bundle adjustment, l’ajust de feixos. I sentint això de feixos, només m’imagino algú lligant branques de llenya al bosc. Oblida’t de la llenya. Fa referència als feixos de raix de llum. Quan vas afegint fotos una a una, l’algoritme va arrossegant petits errors minúsculs. Això es diu drift. Si la càmera 18 es col·loca malament uns mil·límetres, la 19 es basarà en aquest error i s’anirà desviant. Ah, o sigui que el carrer que jo he gravat totalment recte, a la pantalla s’aniria corbant fins a acabar mirant el cel com a la pel·lícula Origin. Literalment, sí. Una corba totalment grotesca. Això de l’ajust m’intriga. Si jo munto una cadira de fusta a casa i en lloc de collar-me els cargols d’una pota els deixo mig sols, quan posi el cent tot tronxollarà i la cadira acabarà trencant-se. Aquest procés seria com tenir un muntador que constantment està repassant i apretant mil·límetre a mil·límetre cadascun dels cargols de les potes alhora, fins que la cadira és sòlida. És una bona idea visual, però hi afegiré una capa més de bogeria per ser rigorosa. Imagina que mentre s’ajusten les potes de la cadira, paral·lelament el muntador està reavaluant i modificant la inclinació de les rajoles del terra de tota l’habitació. Què dius ara? Modifica a la vegada les coordenades X, Y i Z de milions de punts. La rotació de totes les càmeres. I fins i tot recalcula retroactivament la distorció de l’alent, que hem comentat al principi. Tot per trobar l’equilibri matemàtic global perfecte. Modificar les rajoles mentre es canvia el vidre del mòbil? Tela. Això és una quantitat d’operacions matemàtiques absolutament obscena. I clar, això m’explica una de les grans queixes que es llegeixen per internet. A veure, quina queixa? Doncs gent que diu M’he gastat 3.000 euros en una targeta gràfica d’última generació matemàtica. Brutal. Una GPU. I el procés d’afegir fotos triga 15 hores per una plaça petita. Per què una GPU caríssima no es cruspeix aquest procés a l’instant? És una confusió molt típica de com funciona el hardware. Les GPUs estan dissenyades amb milers de nuclis petits per fer tasques senzilles i simultànies. Són genials per a la primera fase, la d’extracció de punts clau o les comparacions a l’engròs, perquè poden enviar feina a cada nucli de manera paral·lela. Però clar, aquest ajust de feixos que m’has descrit és seqüencial, oi? És a dir, jo no puc calcular on va el MAO-80 de la paret si no sé del cert com ha quedat el MAO-79. Exacte. Dependent l’un de l’altre. Per tant, tot aquest procés forma una coa gegant de procés. És com… A veure, si la GPU és un exèrcit sencer de policies de trànsit buscant pistes separades per tota una ciutat alhora, l’ajust incremental és la feina d’un sol detectiu solitari que ha de relacionar les pistes cronològicament al seu despatx abans de donar l’ajust. I això és el que fa que la GPU no es cruspeix. Abans de donar el cas per tancat. Molt bona metàfora. Estic totalment d’acord. La naturalesa seqüencial de l’ajust fa que la GPU perdi tota l’eficàcia. Aquesta feina pesada acaba derivant-se a la CPU de l’ordinador que té menys nuclis però molta més força per càlculs lògics encadenats i per això es creen els colls d’ampolla que poden durar dies sencers d’espera. O sigui que ens hem de resignar a l’espera per sempre, per als espais oberts? No. I aquí ve la gran revolució. Per evitar aquest infern d’hores encadenant càmeres una per una ha sorgit un nou enfocament de global mappers, com ara el GiloMap. GiloMap. Què fa d’especial? Totalment assumint error i corregint, intenta calcular-lo tota l’hora, de manera global. Utilitza una tècnica anomenada promig de rotació. Abans d’ubicar cap càmera en l’espai XYZ, primer mira els punts clau croats i calcula exclusivament cap on estan mirant tot el temps. I això és el que fa que la GPU perdi tota l’eficàcia. I això és el que fa que la GPU perdi tota l’eficàcia. Ai, exigeixo obligatoriament que hagis tancat el cercle. El que en diuen fer un loop closure. Tancar el cercle logísticament. Si començo a gravar a la porta de la catedral, dones tota la volta a la catedral. Caminant per les esglésies i els carrerons de darrere, has de tornar al punt exacte i gravar de nou la porta frontal des de l’angle on vas començar. Aquesta sobreposició del final amb el principi obliga l’algoritme a quadrar tota la roda metàforal i matemàtica perfectament. Si no ho fas, el model se’n pot anar en orris. Clar, fa del cinturó de seguretat logístic, no? Fixa tota l’òrbita de les dades perquè no s’escapi res. Sí, i quan aprens a fer això, les possibilitats sobren massivament per a qualsevol que no sigui topògraf. Doncs precisament d’això vull destacar com a conclusió d’aquesta exploració. Per a tota la gent que ens escolta, si destilem aquesta tecnologia, el que veiem és un apoderament espectacular per al ciutadà del carrer. Avui en dia, no he tingut la possibilitat que calen certificats de vol per a drons cars ni aparells complexos. Pots generar captures hiperrealistes d’espais públics o de patrimoni en perill només amb la que portes a la butaca. Si tries bé l’estratègia del programari, com ara evitar la cerca sexiva, o fer servir GeloMap per processar globalment. I aquí enllaçom el consell clau de l’expert que vam extraure del vídeo d’avui. Perd la por i surt al carrer. Molta gent vol aprendre visió per computador usant conjunts de fotos estèrils d’internet. Preparats i nets perquè tot funcioni a la primera des del despatx. I això és un error. Monumental. L’única manera d’entendre la fragilitat d’aquesta tecnologia és anar a gravar una font de veritat. Trobar-te que el sol t’ha canviat les ombres o que una finestra de vidre de l’edifici del costat ha reflectit el cel i t’ha destrossat la línia ciuchreomètrica. Clar. Lluitant contra la realitat. Bé, tot això és molt inspirador. Però vull acabar plantejant un pensament provocador. Perquè, si ara mateix absolutament qualsevol persona anònima pot començar a caminar amb un telèfon, fer una volta per una plaça turística i generar un model tridimensional pràcticament perfecte de tot l’entorn, què vol dir això per a la nostra privacitat? Uf, això és un gran tema. És que, fins ara, un vídeo d’un turista només era una perspectiva limitada, una gravació fugida. Però amb aquests algoritmes, milers de fotos anònimes d’una plaça poden processar-se juntes per crear un volum interactiu. La gent que estava caminant en aquell moment quedarà congelada com a figures en tres dimensions, sense haver donat permís per aquest tipus de modelat omnidireccional. I qualsevol podrà inspeccionar-los lliurement des de la pantalla de casa seva i des de qualsevol angle impossible. És una idea absolutament fascinant, però també força inquietant sobre el pes amagat que pot arribar a tenir una simple col·lecció de fotografies. I tant que sí, totalment. O deixem aquí perquè hi doneu unes quantes voltes. Ein moment, que fa tres comevos d’ patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarchal patriarch

Fonts

Actualitza aquesta secció amb les fonts reals utilitzades per generar el contingut.


Important: Aquest episodi ha estat generat amb intel·ligència artificial basant-se en fonts públiques. La transcripció s’ha generat automàticament amb OpenAI Whisper. Consulta sempre les fonts originals per obtenir la informació completa.

📚 Fonts Utilitzades