Transcripció de l'episodi 008 Generat automàticament amb OpenAI Whisper Data: 2026-04-19 23:18:06 ================================================== Imaginem per un moment que estem passejant per un parc i ens aturem davant d'una font d'aigua, una d'aquestes fonts clàssiques de pedra que està plena de petits detalls desgrastats. Si fem un parell de passos al voltant, el nostre cervell entén immediatament tota l'estructura. Clar, ho processem al moment. Exacte. Sabem, sense pensar-hi, quina distància hi ha entre l'aigua i la base o on queden els arbres del fons. El cervell biològic construeix aquest mapa en qüestió de milisegons, gastant tot just uns pocs watts d'energia. És impressionant, sí. Però, i aquí ve el tema, si agafem una càmera, fem un grapat de fotografies des de diferents angles i les fiquem en un ordinador, allò que té la màquina al davant no és un espai, oi? No, i tant que no. El que té és un llistat completament pla de valors numèrics. Vull dir, són milions de píxels que només representen colors en una quadrícula en 2D. Una taula de colors, i prou. Això mateix. Per a l'ordinador, no hi ha profunditat, no hi ha parc. És un buit absolut d'informació espacial. La màquina ha d'utilitzar matemàtiques pures per deduir allò que la nostra biologia entén per intuïció. Necessita descobrir on era col·locada la càmera exactament a l'hora de fer cada foto i cap a on mirava. I aquest repte tan bèstia és el que abordarem en l'anàlisi a fons d'avui. Ens basem en un vídeo extremadament detallat del canal de YouTube Everypoint, que es titula L'objectiu és desmitificar aquesta caixa negra. És una missió important perquè molta gent s'hi encalla. Totalment. Volem donar a qui ens escolta el coneixement per entendre aquest engranatge i que potser s'animin a provar-ho a casa. I la peça central de tot això, bé, del vídeo, és aquest programari, el Colmap. Sí, Colmap, que ve de Collection Mapper. És un mapejador de col·leccions d'imatges de codi obert. I ara mateix és un estàndard total a la indústria. El va crear Johannes Schomburger a la Universitat UNC Chapel Hill. I, com a dada curiosa, s'arriba a dir que durant el seu doctorat va processar 100 milions d'imatges en un sol ordinador personal. Ostres, 100 milions d'imatges en un PC. Sí. Sí, sí, amb les primeres versions del programa. Això és una xifra completament fora de tota lògica, vaja. Però, a veure, abans d'arribar a construir espais 3D gegants, l'ordinador ha de saber que està mirant en 2D. D'acord, desgranem això. Com comença a trobar referències? Doncs, el primer pas és l'extracció de característiques. El programa utilitza un algoritme clàssic que es diu SIFT. SIFT, amb S, oi? Exacte. Transformació de característiques invariants, transformació de característiques invariants, en qualipè pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pakí pak cel borrós. Si només busca taques, com sap que és el mateix pom? Per això es diu invariant a l'escala. El que fa és desenfocar la imatge artificialment en múltiples capes. Crea una mena de piràmide gaussiana per extreure el contrast, ignosant la mida de l'objecte. I no es guarda una foto del pom, eh? Llavors, què es guarda? Crea un vector matemàtic, una descripció numèrica de com canvia la llum al voltant d'aquest punt. O sigui, és com tenir una empremta dactilar numèrica per a milers de punts de cada foto. Exactament això. Però llavors tenim un problema enorme. Si algú a casa carrega mil fotos al programa i cada foto té 10.000 empremtes, comparar cada punt amb tots els altres punts sona a un coll d'ampolla brutal per al processador. És devastador. I de fet, l'emparellament o matching és on molta gent nova abandona el programari, perquè ferien malament. El vídeo d'Every Point ho explica molt bé. Depèn de molt de com hagis fet les fotos. Anem a pams, llavors. Si jo, per exemple, he fet un vídeo caminant del voltant de la font d'aigua del parc i he tret un fotograma cada mig segon, aquí no cal comparar-ho tot. Clar que no. El programa pot assumir que la foto 1 s'assemblarà a la 2, oi? Com llegir un llibre pàgina a pàgina. Aquest és l'enfocament seqüencial. I és superràpid. El drama comença quan li dones a Colmap fotos desordenades. Imagina't fotos d'un monument, baixades d'internet o un dron volant sense sentit. Si fas l'estratègia exhaustiva, compararà cada foto amb totes les altres. Totes amb totes? Totes. Amb 10.000 fotos, hauria de fer 50 milions de comparacions. Carai, un absurd absolut per a un ordinador domèstic. Llavors, quina és la drecera per a conjunts desordenats? La solució és l'arbre de vocabulari, o vocabtri. Abans de mirar punt per punt, fa un resum ràpid del contingut, com una bossa de paraules visuals, saps? Ah, d'acord. Si veu que una foto té textura de pedra de la font i una altra té textura de fulles verdes, diu, mira, ni mi esforço. Exacte. Només emparella les que tenen un resum semblant. I després, tenim el mètode especial. Que entenc que utilitza el GPS, perquè avui dia els mòbils o el dron com els DGI ja guarden l'oblicació. I tant. I si el dron sap que una foto està feta a dos quilòmetres de l'altra, les descarta de cop. Estalvia moltíssim temps. Molt bé. Però ara em sorgeix un dubte greu. Què passa quan l'algoritme s'equivoca? Vull dir, imagina que estem vapejant una paret de maons. SIFT troba un maó a l'esquerra i el connecta amb un maó idèntic a la dreta. Són maons diferents, però l'emprenta dactilar serà gairebé igual. És el malson típic. Els falsos positius amb patrons repetits com finestres o maons. Si l'ordinador es creu això, l'edifici quedarà com un nyact, no? Quedaria completament deformat. Per això, Call Map, fa el que s'anomena verificació geomètrica. És un filtre implacable. Avalua si el moviment dels punts entre fotos té sentit físicament. A veure si ho pillo. Si jo moc dos pams a la dreta, tots els punts d'aquella paret s'haurien de moure junts. Si un maó de sobte salta tres metres amunt... El programa diu perdona, això és impossible. És la restricció epipolar. Es descarta el punt enganyós. Però aquí hi ha una trampa. I és que el programa necessita conèixer la teva lente per fer bé aquest càlcul de geometria. Clar. No és el mateix la càmera del meu telèfon intel·ligent que una càmera d'acció enganxada a un casc esportiu. Aquests objectius d'ull de peix, els Fisheye, distorsionen moltíssim. Una paret recta es veu completament curvada, com una bombolla. I si no l'edius al programa, que és una lente d'ull de peix, pensarà que l'edifici realment és rodó. Has de definir el model de càmera. Paràmetres com el K1 i el K2 gestionen aquesta distorsió radical. Per tornar a aplanar la bombolla. I també caldrà saber on és el centre de la imatge i això. Sí. La longitud focal, el punt principal, el CX i el CI. Per sort, gairebé sempre l'ordinador llegeix les dades exifs de la fotografia per tenir una primera estimació de com és la lente. Dades exif? Fantàstic. Llavors, recopilant. Tenim fotos. Hem trobat punts, hem descartat mons falsos i hem corregit la lente. Ara tenim un mapa en 2D perfectament connectat. Ara ve el salt al 3D. I aquí és una esposa realment interessant, de debò? El vídeo d'Everypoint comenta que qualsevol de nosaltres pensaria, bueno, comences per la foto 1 i sumes la 2 i vas fent. Però diu que això seria un error fatal per a la màquina. Un fracàs absolut. El programa necessita una bona línia base o paral·làxi. Si agafes la foto 1 i la foto 2 preses gairebé des del mateix loc, els ratlls de visió són paral·lels. No pots fer triangulació geomètrica, per calcular la profunditat. O sigui, necessita un canvi de perspectiva fort. Com quan et tapes un ull, després l'altre, i veus com el dit sembla que salti respecte al fons. Això mateix. Llavors, colma-ho buscant tota la llista fins a trobar la parella perfecta. Potser la foto 12 i la 85. Clar, si tenen molts punts en comú però estan separades a l'espai, les tria. I allà, inicialit de l'univers tridimensional. Crea els primers punts sospesos en l'espai i col·loca aquestes dues primeres càmeres. I llavors arrenca la reconstrucció incremental. Exacte. Busca una tercera foto que vegi aquests punts, la situa a l'espai i hi afegeix els nous punts que porti. I després la quarta, la cinquena. Va afegint peces, però el vídeo insistés molt en un terme matemàtic, el bundle adjustment, o ajust de feixos. I he de confessar que jo al principi em vaig quedar... Feixos de què? De pals de fusta? Sí, el no menenant-se. L'anglès enganya. Són feixos de raïs geomètrics, de línies imaginàries que van des de la lent de cada càmera fins als punts en 3D. Aquest ajust és vital. Imagina que en afegir la tercera foto hi ha un petit error. Fraccions de mil·límetre. Gaire res. Però si arribes a la foto humil i vas arrossegant aquest error, el que hauria de ser una paret recta acabarà doblegada com un plàtan. Una deriva catastròfica, vaja. Deixa'm provar una analogia per veure si ho tinc clar per a qui ens escolta. És com si estiguessis teixint una taranyaina enorme a l'aire. Cada cop que poses un fil nou, estires la xarxa. Si tenses molt d'un cantó, deformes el centre. L'ajust de feixos seria el procés per equilibrar totes aquestes tensions a la vegada. M'encanta l'analogia. És optimització no lineal. El programa fa ajustos locals sovint, on només tens els fils propers a la nova foto, seguint la teva idea, però de tant en tant fa un ajust global que atura el procés i ho revisa tot. Tot. Agafa totes les càmeres, tots els punts i fins i tot torna a revisar la deformació de les lents per assegurar-se que l'estructura general és sòlida. Ostres, clar. Reexamina la taranyina sencera. I això ens porta al gran drama de la comunitat. L'autor del vídeo ho descriu de forma molt visual. Imagina que algú s'ha gastat 2.000 euros en una targeta gràfica impressionant, una GPU d'última generació. Pobres, sí. Posa el colmó a funcionar, esperant que els ventiladors sonin com un avió, però la GPU està morta de riure. No fa absolutament res durant la reconstrucció incremental i, en canvi, la CPU, el processador normal, està 5 hores al 100% patint com Boik. Per què passa això? És per culpa de l'algebra lineal. Les GPUs són brutals per fer coses en paral·lel. Si li dones a buscar els punts shift, ho faran en segons, perquè analitzar un píxel no depèn d'altre. Però la reconstrucció incremental, per definició, és seqüencial. No pots dividir-lo. L'autor posa l'exemple del detectiu, que em sembla brillant. La CPU és un detectiu intel·ligent. Troba una pista, s'asseu, resol l'equació matemàtica i llavors s'aconsegueix la clau per obrir la següent porta. La GPU seria en un milió de persones, però, clar, si han de passar totes per la mateixa porta, una darrere l'altra... Doncs es queden fent coa. No serveixen per a res en aquell moment. No pots calcular on és la càmera 80, si encara no has resolt matemàticament la 79. I per això s'ha buscat una alternativa. La solució moderna que s'esmenta al vídeo, el GLOMAP, no? G-L-A-M-A-P, sí, de Global Mapper. El mateix Johannes Schoenberger hi està involucrat. Aquest programa canvia la filosofia. En lloc d'anar foto per foto acumulant petits errors, intenta mirar tot el món de cop utilitzant la mitjana de rotacions. Com funciona això d'avaluar-lo tot a l'uníson? Avalua cap a on haurien de mirar totes les càmeres al mateix temps, sense trencar el model 3D. Com que és un càlcul global de matrius, sí que es pot paral·lelitzar. La teva GPU de 2.000 euros ara sí que es posa a treballar, i el temps pot baixar a una desena part. És brutal. Però, alerta, vull fer un apunt pràctic crucial que surt a la font. GLOMAP és meravellós, però requereix unes condicions específiques per no fracassar. Has de tenir moltíssima connexió entre les fotos. Clar. Si, per exemple, has gravat... Si, per exemple, has gravat caminant tot de recte per un passadís d'hospital amb parets blanques, el programa entra en pànic. Totalment. Si les fotos de la paret sud no comparteixen res amb la nord perquè no t'ha girat ben, les equacions de GLOMAP es trenquen completament. Acaba posant totes les càmeres amuntegades, generant uns blocs de punts inútils. Que el creador del vídeo anomena de broma Cupsborg, pels enemics de Star Trek. Sí, sí, és un desastre visual absolut. Llavors, depèn molt de com la persona hagi capturat el món real. Ara bé, i anant cap al panorama general de tot plegat, què en traiem de tot això? Per què dediquem tant d'esforç a entendre on era col·locada una càmera a l'espai? Doncs perquè GLOMAP, encara que sigui silenciós i lent, és el fonament absolut de les revolucions visuals que estem vivint. Tot això del cinema, la realitat augmentada o els bessons digitals ho necessita. Sense aquesta estimació mil·limètrica de les lents i la càmera, no es pot fer res. Suposo que refereixes a aquests vídeos tan virals de 3D Gaussian Splatting, on sembla que puguis passejar per dins d'una fotografia, amb un fotorealisme al·lucinant. Exacte. Aquestes xarxes neuronals necessiten saber quina és la geometria prèvia per poder pintar-hi les colors. Si GLOMAP no els dona un full de ruta perfecta, s'enfonsen. Entren escombràries, surten escombràries. Quina gran frase. I precisament per això, la nàusia acaba amb un consell clau per a l'audiència que es vulgui endinsar en aquest camp. No utilitzeu datasets d'internet, d'aquests que ja venen preparats. Aquests conjunts acadèmics són massa perfectes. Totes les lents estan hipercalibrades, la il·luminació no falla mai, allà no aprens com es fan les salsitxes realment. Cal sortir al món real, eh? Baixar al carrer, fer fotos a una font d'aigua esquivant gent i reflexos de llum, carregar-ho a l'ordinador i veure on es trenca tot. Veure per què confon l'arbre del fons amb l'aigua. És l'única manera de dominar aquest caos. I aquesta feina d'experimentar ens porta a una idea final molt reveladora, que connecta amb el que dèiem al començament de tot sobre el nostre cervell biològic. Nosaltres entenem l'espai veient la imatge global, de manera natural. I l'ordinador anava a cegues, pas a pas, que és molt poc natural. Però programes noves com GLOMSAP intenten precisament fer això, mirar la foto sencera simultàniament, intentant ser holístics, com la nostra intuïció. Això em deixa amb un pensament provocador per a la gent que ens segueixi avui guirrumiari. Si els ordinadors segueixen perfeccionant aquest modelat global i deixen de ser només esclaus seqüencials, arribarà el dia en què superin la nostra pròpia intuïció espacial? És una pregunta fantàstica. Arribarà un moment on analitzaran la geometria millor i més ràpid del que ho han fet milions d'anys d'evolució humana. Estic segura que aquest és el gran debat de futur. I potser aquell dia, passejant pel parc, li haurem de demanar al telèfon que ens confirmi quina branca està al davant de quina. Aprofundiu-s'hi quan sortiu a caminar avui. Ens retrobem a la propera Anàlisi a Fons.