Käyttöopas

Luku 9 — SfM-taustajärjestelmät

Inspector Expert-tilassa kuudella osiolla: Presets, Cameras & Capture, Training, Progress, Look ja Export — kullakin alarivi, joka kertoo milloin se vaikuttaa
Inspector Expert-tilassa. Se jakautuu kuuteen osioon — Presets, Cameras & Capture, Training, Progress, Look ja Export —, joista jokaisella on alarivi, joka kertoo milloin asetus vaikuttaa. SfM-menetelmän valinta sijaitsee osiossa „Cameras & Capture".
Avattu Camera-Alignment-valikko, jossa täsmälleen kaksi kohtaa: Apple Photogrammetry ja Native
Avattu Camera-Alignment-valikko julkaistussa versiossa: täsmälleen kaksi kohtaa — Apple Photogrammetry ja Native. COLMAP ei näy tässä, eikä „Native" kanna enää Beta-lisäystä.

Camera-Alignment-valitsin sijaitsee Inspectorin osiossa „Cameras & Capture" ja on avattava valikko, ei segmentoitu ohjain (taustajärjestelmien nimet ovat segmenteille liian pitkiä ja rikkoisivat kapean Inspector-sarakkeen). Kohtien määrä riippuu buildista: App Store -versio näyttää täsmälleen kaksi — Apple Photogrammetry (oletus) ja Native. COLMAP puuttuu siellä taustajärjestelmänä kokonaan ja esiintyy vain Developer-/DMG-buildeissa kolmantena kohtana (katso Q2). Natiivi kohta on nimeltään pelkästään „Native"; aiempi lisäys „(experimental)" tai „(Beta)" on poistettu — Native ei ole enää kokeilupolku, vaan laatupolku. Se on vahva maantasoisissa orbit- ja valokuvaus-skenaarioissa, mutta tällä hetkellä heikko ilma-/dronekartoituksessa (liian ohut pistepilvi); Apple Photogrammetry pysyy turvallisena oletuksena. Jos kuvaustyypiksi on valittu järjestämätön kuvasarja, sovellus kohdistaa aina Nativella, riippumatta siitä mitä valitsin näyttää — valitsimen alla oleva huomautusrivi kertoo tämän nimenomaisesti, ja valitsin pysyy käytettävissä, koska sen arvo ei ole poissa käytöstä vaan vain ohitettu. Ulkoisia SfM-tuloksia Metashapesta, COLMAP:sta tai muusta fotogrammetriaohjelmistosta voi lisäksi tuoda File-valikon kautta (Q3 COLMAP-tekstiformaatti, Q6 Workspace-tuonti) — valitsin ei vaihdu, mutta tuodut poosit korvaavat SfM-tuloksen. Tällä tuonnilla ei ole tekemistä COLMAP-taustajärjestelmäkysymyksen kanssa, ja se toimii jokaisessa buildissa.

SfM tarkoittaa Structure from Motion. Joukosta päällekkäisiä valokuvia ohjelmisto rekonstruoi jokaiselle kuvalle kameran sijainnin ja katselusuunnan yhteisessä 3D-koordinaatistossa. Tätä varten luodaan karkea 3D-pistepilvi, joka alustaa Gaussian Splatting -harjoittelun. SfM-tulos on varsinaisen harjoittelun syöte ja ratkaisee merkittävästi myöhemmän kuvanlaadun.

RadianceKit tarjoaa viisi SfM-reittiä: kaksi sovellukseen sisäänrakennettua taustajärjestelmää (Q1 Apple Photogrammetry, Q4/Q5 Native), kaksi tuontireittiä ulkoisista työkaluista (Q3 COLMAP-tekstiformaatti, Q6 binäärinen Workspace-tuonti) sekä Q2 COLMAP-binääri, joka on käytettävissä vain App Storen ulkopuolisissa Developer-buildeissa. Mikä näistä on oikea, riippuu skenaarion tyypistä (orbit kohteen ympäri, sisätila, dronelento) ja siitä, tuottaako ulkoinen ohjelmisto jo rekonstruktion.

Q1 — Apple Photogrammetry

MISSÄ

Expert View → Inspector → osio „Cameras & Capture" → Camera-Alignment-valitsin, kohta „Apple Photogrammetry". Oletusasetus jokaisessa buildissa.

TEKNINEN

Kääriköinä Applen sisäänrakennetun Photogrammetry-kehyksen, joka on alun perin kehitetty Object Capturea varten. Apple erottaa sisäisesti piirteet omalla suljetulla putkellaan (vaiheita ei ole julkisesti dokumentoitu), varmistaa ne monikuva-täsmäytyksellä ja ratkaisee Bundle-Adjustmentin Apple Siliconin Neural Enginellä + GPU:lla. Taustajärjestelmä on täysin App Store -yhteensopiva (ei ulkoista binääriä, Sandbox=true, laitteella), mutta tuottaa vain kameraposeet sekä karkean pistepilven — ei diagnostisia mittareita kuten track-pituutta tai reprojektiovirhettä. Skaalautuu Applen suosituksen mukaan muutamaan sataan kuvaan asti. Yli ~500 kuvan lineaarisilla dronelennoilla tai suurissa ulkotilaskenaarioissa on toistuvasti havaittu kaatumisia tai yksittäisten kameroiden hiljaista hylkäämistä.

Q3 — COLMAP-tekstiformaatti (Metashape / ETH3D)

MISSÄ

Valikko „File → Import COLMAP / Metashape Workspace…" (Cmd+⇧+I) TAI kansion raahaus ja pudotus, jossa sparse/0/cameras.txt.

TEKNINEN

Lukee standardoidun COLMAP-tekstivientimuodon — kolme tekstitiedostoa cameras.txt, images.txt, points3D.txt sparse/0/-alikansiossa — ja muuntaa sisäiseen SfM-tulosmalliin. Sama formaattimäärittely kuin COLMAP-binäärivienti, mutta ASCII-muodossa binäärin sijaan. Agisoft Metashape, RealityCapture, PolyCam ja ETH3D-vertailutesti tuottavat tulosteen juuri tässä muodossa. Jäsentäjä jakaa kameramallin tunnistuksen binääriparserin kanssa ja tunnistaa kaikki yksitoista COLMAP:in standardikameramallia — SIMPLE_PINHOLE:sta ja PINHOLE:sta SIMPLE_RADIAL:iin (COLMAP:in oma oletus) ja OPENCV:hen sekä fisheye-variantteihin. Kestää kommenttirivit ja tyhjät rivit hyvin. Skaalautuu testeissä ~1 400 kameraan asti (ETH3D Tunnel) ilman ongelmia.

Q4 — Native SfM (inkrementaalinen)

MISSÄ

Expert View → Inspector → osio „Cameras & Capture" → Camera-Alignment-valitsin, kohta „Native" (ilman aiempaa lisäystä „(experimental)"). Inkrementaalinen on tämän taustajärjestelmän oletustila; Nativelle ei ole erillistä mapper-valintaa. Sen alla oleva rivi „Mapper" kuuluu yksinomaan COLMAP:iin: Developer-buildeissa se näkyy näkyvänä mutta harmaana niin kauan kuin Native on valittuna, App Store -versiosta se puuttuu kokonaan. Todella natiivit rivit — „FOV Override", „High-Quality" ja „Native SfM Recipe" — eivät enää katoa muiden taustajärjestelmien alla, vaan jäävät näkyviin harmaana ja kertovat alla olevalla rivillä, mitä pitää muuttaa, jotta ne aukeavat uudelleen. Inkrementaalisen ja globaalin menetelmän välillä et voi vaihtaa itse: Inkrementaalinen on kiinteästi oletusasetuksena, ja globaaliin menetelmään sovellus vaihtaa vain itsestään (katso Q5).

TEKNINEN

Oma GPU-kiihdytetty toteutus koko SfM-putkesta: FAST+BRIEF-piirteet TAI SuperPoint+LightGlue CoreML:n kautta (kytketään päälle „High-Quality"-kytkimellä; järjestämättömillä kuvasarjoilla joka tapauksessa aktiivinen), jonka jälkeen Hamming-KNN-täsmäytys, RANSAC-fundamentaalimatriisi, track-rakentaminen, alkuparin valinta, kaksinäkymä-bootstrap (F→E plus DLT), ahne inkrementaalinen mapper PnP-rekisteröinnillä ja monikuvatriangulaatiolla ja lopullinen Bundle-Adjustment Schur-redusoidun Levenberg-Marquardtin kautta Huber-häviöllä ja analyyttisillä Jacobianeilla Choleskyn ratkaisun kautta. Täysin App Store -yhteensopiva: ei ulkoista binääriä, Sandbox=true. Sisäänrakennetulla collapse-tunnistimella: se luokittelee tuloksen degeneroituneeksi, jos alle 60 % syötekehyksistä rekisteröityi, jos points-per-camera-suhde jää alle 13:n tai jos pistepilvi on lähes litteä. Tämän seurauksena ei heti vaihdeta menetelmää — sovellus toistaa ensin inkrementaalisen ajon (se ottaa käyttöön ensimmäisen poikkeuksettoman tuloksen, muuten yritysten parhaan) ja vasta sitten siirtyy globaaliin mapperiin (Q5), jos paraskin yritys jää degeneroituneeksi. Empiirisesti siisti orbit-/kääntöpöytäskenaarioissa; yleisemmillä liikkeillä (dronelento, monimutkaisen geometrian sisätilat) onnistumisprosentti on alhaisempi — tunnistin kuitenkin nappaa nämä tapaukset. Skaalautuu luotettavasti ~200 kameraan asti, korkeammalla huomattavasti pidemmällä ajoajalla.

Q5 — Native SfM (globaali)

MISSÄ

Käynnistyy automaattisesti, kun inkrementaalinen mapper (Q4) laukaisee collapse-tunnistimen (alle 60 % syötekehyksistä rekisteröity, points-per-camera-suhde alle 13 tai lähes litteä pistepilvi) — ja vasta sen jälkeen, kun inkrementaalinen ajo on toistettu ja paraskin yritys jäi degeneroituneeksi. Käsin sitä ei voi käynnistää: Inspectorissa ei ole tälle valitsinta eikä muutakaan kytkintä — sovellus päättää itse, milloin se vaihtaa.

TEKNINEN

Natiivin putken globaali versio. Ensin piirre-erotus + täsmäytys kuten Q4:ssä, sitten suhteellisen posen arviointi kaikille varmistetuille pareille, sen jälkeen rotaation keskiarvoistus (synkronoi kaikkien kameroiden rotaatiot maailma-koordinaatistossa) ja translaation keskiarvoistus (LSQR-pohjainen matriisiton harva formulaatio, joka välttää kokonaislukuylivuodon suurilla kameramäärillä). Skaalautuu periaatteessa ~5 000 kameraan, käytännössä laatu heikkenee selvästi muutaman sadan kameran yläpuolella. Käsitellään „varasuunnitelma-tasona": otetaan käyttöön, kun inkrementaalinen mapper degeneroituu toistonkin jälkeen, eikä sitä itseään enää alisteta collapse-tunnistimelle — jos sen tulos jää ohueksi, esiin tulee sen sijaan putken yleinen laatuvaroitus.

Q6 — Metashape / COLMAP-tekstiWorkspace-tuonti

MISSÄ

File-valikko → „Import COLMAP / Metashape Workspace…" (Cmd+⇧+I). Kansion raahaus ja pudotus, jossa sparse/0/cameras.{bin,txt} ja images/.

TEKNINEN

Tunnistaa automaattisesti, vastaako raahauksella tai Open-paneelilla valittu kansio jotain kolmesta COLMAP-Workspace-asettelusta (sparse/0/, sparse/ tai juuri) ja onko rekonstruktio binäärinen (cameras.bin) vai teksti (cameras.txt). Binäärinen polku käyttää COLMAP-binääriparseria, tekstipolku ETH3D-lataajaa — molemmat tuottavat saman SfM-tulosmallin, ja putken loppuosa (kuvien tuonti, MCMC-harjoittelun käynnistys) on agnostinen lähteen suhteen. Kuvat avataan sovelluksen sandbox-kirjanmerkkijärjestelmän kautta security-scoped-tilassa, jolloin tuonti toimii myös App Store -versiossa. Suunniteltu erityisesti tapaukseen „Metashape-vienti ilman rekonstruktion uudelleenlaskentaa". File-valikon kohdassa mainittu tunnistus varoittaa sovelluslokissa, jos valittu kansio ei ole tunnistettava Workspace.

Q7 — Native-reseptit (Standard / Professional / E3 High-Accuracy)

MISSÄ

Expert View → Inspector → osio „Cameras & Capture" → rivi „Native SfM Recipe". Rivi on käytettävissä vain, kun Camera Alignmentiksi on valittu „Native" ja kuvaustyypiksi on asetettu järjestämätön kuvasarja — muuten se on harmaana ja kertoo alla, mitä pitää muuttaa (saatavuussäännöt löytyvät luvusta 2).

TEKNINEN

Kolme samaisen natiivin taustajärjestelmän tasoa. Ne eivät muuta algoritmia, vaan sitä, kuinka perusteellisesti se toimii:

Standard — perusresepti ilman lisävaiheita.

Professional — lisää kaksi asiaa: tunnistetut AprilTag-merkit otetaan jäykkinä kappaleina mukaan mappingiin ja Bundle-Adjustmentiin, ja valmiit poosit trianguloidaan tiheästi uudelleen (tiheämpi alkupistepilvi). Jos kuvauksessa ei ole merkkejä, tunnistin ei löydä mitään ja vain tiheä uudelleentriangulointi jää vaikuttavaksi.

E3 High-Accuracy — rakentuu Professionalin päälle ja kytkee lisäksi päälle HQ-esikäsittelyn (3×3-SuperPoint-laatoitus, LightGlue 4096 avainpisteellä, covisibility-parit) sekä yhteisen polttovälin hienosäädön kaikkien kameroiden yli. Tämä tuottaa terävimmät kameraposeet ja pisimmän täsmäytysajan.

Mikä backend milloinkin?

SkenaarioSuositeltu backend
Ensimmäinen tulos, ilman sen kummempaa pohdintaaQ1 Apple Photogrammetry (oletusasetus)
Objektiskannaus, 50–200 kuvaaQ1 Apple Photogrammetry
Maksimaalinen laatu samasta kohtauksestaPreset „Maximum Quality (Native)" — Q4 Native + Q7-resepti E3
Kuvaus painetuilla AprilTag-markkereillaQ4 Native + Q7-resepti Professional
Suuri ulkotila / drone / >500 kuvaaQ6 Workspace-tuonti (laske Metashapessa tai COLMAPissa, tuo sitten sisään)
Metashape/RealityCapture-vienti on jo tehtyQ6 Tuonti (ei SfM:ää tarvita)
ETH3D / akateeminen COLMAP-tekstisettiQ3 COLMAP-teksti-tuonti
Q4 kaatuuQ5 Native global (vaihtaa automaattisesti)

Pikavertailu

BackendApp StoreSandboxUlkoinen binaariParas käyttötarkoitusMaks. ~kamerat
Q1 Apple PGOrbit-objekti~300
Q2 COLMAP Binary❌ (vain developer-koontiversio)colmap/glomapUlkotilat, suuret~5 000
Q3 COLMAP-Text-ImportBench-rigit~1 500
Q4 Native incrementalOrbit-objekti~200
Q5 Native globalQ4-varajärjestelmä~5 000
Q6 Workspace-tuontiMetashape-uudelleenkäyttölähdettä kohden