# 06 — Snimanje prostora i lokalizacija

**Istraživački presjek:** 2026-10-27  
**Status:** planiranje izvedivosti; ne postoji snimka ni izmjerena kuća za ovaj plan.

## Sažetak odluke

- DJI Osmo 360 može biti praktična kamera za brzo vizualno dokumentiranje interijera: nudi 2:1 panoramski video do 7680×3840 pri 24–50 fps, panoramske fotografije do 15520×7760, 1/1.1-inčni senzor, f/1.9 i minimalnu udaljenost šivanja od 75 cm. To je dobar početak za obilazak i vizualni prikaz; specifikacije same po sebi ne potvrđuju točnost mjera ni uspjeh rekonstrukcije. [DJI specifikacije](https://www.dji.com/360/specs)
- Jedan kadar od 360° nema translacijsku paralaksu između svojih smjerova. Za SfM/MVS/3DGS potrebni su preklapajući pogledi s pomakom kamere kroz prostor. Središnji put snimanja treba biti hodanje, a ne okretanje na mjestu. To je ključni praktični rizik u uskim sobama.
- COLMAP 4.1 (službena dokumentacija/release notes dostupni na datum istraživanja) dodao je sferične equirectangular modele, ali navodi da su obično manje precizni i sporiji od perspective reprojection pristupa. Stoga pilot treba sačuvati izvorne panorame, a za rekonstrukciju probati više kalibriranih perspective/cubemap pogleda po vremenskoj točki. [COLMAP changelog](https://colmap.github.io/changelog.html) · [COLMAP panorama_sfm primjer](https://github.com/colmap/colmap/tree/main/doc/panoramas)
- 3D Gaussian Splatting (3DGS) je prvenstveno reprezentacija za fotorealistično renderiranje pogleda, a ne pouzdan, zatvoren građevinski CAD/BIM mesh. Za tlocrt, dimenzije, otvore i provjerljive površine treba zasebna geometrijska rekonstrukcija, mjerni oslonci i ljudska kontrola. [Izvorni rad i materijali 3DGS](https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/) · [COLMAP MVS](https://colmap.github.io/)
- Wi‑Fi RTT može dati udaljenost do RTT-kompatibilnih pristupnih točaka samo kad to podržavaju i telefon i pristupna točka, uz Android aplikaciju, dozvole i uključene lokacijske usluge. To nije automatski dostupno web-stranici, niti je standardni RSSI otisak pouzdana zamjena za geometriju.
- Preglednik može zatražiti geolokaciju uređaja uz dozvolu; koordinate i polje `accuracy` ne predstavljaju sobu ni unutarnju poziciju. Kućna lokalizacija treba doći iz snimljenog modela/relativne poze, poznatih sidara i kalibracije.

## Kamera i prikladnost za indoor capture

DJI navodi 120 MP panoramsku fotografiju i panoramski video 8K 2:1. Izvorna specifikacija također navodi JPEG fotografije, OSV/MP4 HEVC video, najviše 170 Mb/s, 128 GB ugrađene memorije (105 GB dostupno), USB 3.1 i microSD do 1 TB. To smanjuje trenje pri prikupljanju, ali 8K je ukupna sferna rezolucija: broj piksela po smjeru je znatno manji nego kod 8K pravokutne kamere. [DJI specifikacije](https://www.dji.com/360/specs)

Snimka od 360° korisna je za obilazak bez čestog kadriranja i za navigacijski pregled. Za precizne detalje na udaljenim zidovima, tankim rubovima ili teksturama valja očekivati ograničenje prostorne razlučivosti. DJI navodi minimalnu udaljenost šivanja 75 cm; držati bliske predmete izvan tog raspona gdje god je moguće, jer šav i dvo-lećna projekcija mogu deformirati predmete blizu kamere. [DJI specifikacije](https://www.dji.com/360/specs)

Za interijere uključiti mirno, ravnomjerno svjetlo; izbjegavati nagle ekspozicijske promjene između prozora i tamnih kuteva, pokretne ljude/ljubimce, pomicanje zavjesa i TV/monitore. Odraz u ogledalu/staklu ne predstavlja dodatnu teksturiranu površinu na poznatoj lokaciji, a može stvoriti lažne značajke; označiti ili privremeno zakloniti ogledala, sjajne fronte i prozore ako je moguće. Jednobojni zidovi, stropovi i podovi često nemaju dovoljno stabiličnih vizualnih značajki za podudaranje. Dodati privremene, uklonjive značajke samo uz dopuštenje vlasnika, ili osloniti rekonstrukciju na kutove, vrata i drugi teksturirani sadržaj.

### SfM/MVS naspram 3DGS

COLMAP opisuje SfM kao oporavak poza kamera i rijetke 3D strukture iz slika, a MVS kao gustu rekonstrukciju koja može proizvesti gustu oblak-točaka i mesh. [COLMAP](https://colmap.github.io/)

3DGS kreće od rijetkih točaka dobivenih kalibracijom kamera, optimizira skup 3D Gaussiana i njihov izgled te brzo renderira nove poglede. To je korisno za vizualno uvjerljivu navigaciju kroz snimljeni prostor, ali nije samo po sebi semantički model kuće niti nužno vodonepropusna, metrički točna površina. [Rad 3DGS](https://arxiv.org/abs/2308.04079) · [materijali autora](https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/)

Mesh ima eksplicitne vrhove, bridove i poligonalne plohe, pa je bolja osnova za presjeke, udaljenosti i interoperabilnu geometriju; ipak, rekonstrukcija iz običnih slika može imati rupe, pogrešne ravnine, teksturu bez geometrijske osnove i drift skale. 3DGS čuva izgled kroz volumetrijske primitive i može prikazati refleksije/teksture uvjerljivije od mesha, ali uređivanje ploha i mjerenje nisu njegova primarna garancija. Planirati dvije izlazne grane: (1) vizualni splat za pregled i (2) geometrijski mesh/plan s označenom neizvjesnošću i ručno potvrđenim mjerama.

### Panorama i kalibracija za COLMAP

Povijesno COLMAP-ov tipičan pipeline očekivao je slike s perspektivnom kamerom; najnovija dokumentacija u trenutku istraživanja navodi sferični equirectangular camera model, dok panorama primjer uspoređuje direktno korištenje sfere s perspektivnim pogledima. COLMAP napominje da equirectangular rekonstrukcija može biti manje precizna i sporija. Stoga tvrdnja „COLMAP ne podržava panorame” nije aktualna; preporuka je testirati oba puta, a ne pretpostaviti da jedna projekcija odgovara svim podacima. [COLMAP changelog](https://colmap.github.io/changelog.html) · [panorama_sfm](https://github.com/colmap/colmap/tree/main/doc/panoramas) · [modeli kamera](https://colmap.github.io/cameras.html)

Praktičan pilot za Osmo 360: izvesti originalni equirectangular video bez naknadne stabilizacije koja mijenja projekciju; izvući vremenski prorijeđene kadrove; za svaki kadar renderirati 6 perspective cubemap lica (ili 4–8 preklapajućih pogleda) s fiksnim horizontalnim/vertikalnim FOV-om, principal pointom i skalom; ignorirati zenit/nadir ili ih tretirati erozivno zbog monopoda/nosača; po projekciji kamere zabilježiti intrinsics i yaw/pitch/roll transformaciju prema panoramskom tijelu. Kalibraciju i korekciju šava testirati na stvarnim snimkama, ne pretpostaviti da je izvozna projekcija geometrijski idealna.

Pri izradi izlaznih slika ne pretvarati svaki cubemap pogled u neovisnu fizičku kameru bez krute veze: svi pogledi iz iste panoramske vremenske točke dijele isti centar projekcije i treba ih povezati kao rig ili koristiti pano-aware solver. COLMAP podržava rigs sa senzorima fiksnih relativnih poza. [COLMAP rigs](https://colmap.github.io/rigs.html)

Pomak između vremenskih točaka mora biti dovoljno velik da pruži translacijsku paralaksu, a preklapanje dovoljno da ponovi značajke. Izbjegavati jako brzu rotaciju, motion blur i razmake bez poveznih kadrova. U hodniku i maloj sobi prikupiti dodatni poprečni luk ili povratni prolaz; zatim hodnikom ući u sobu s vidljivim vratima, čime se veže topologija susjednih prostora. Prikaz samo jednog 360 kadra po sobi može izgledati cjelovito, a istovremeno biti nedostatan za pouzdanu geometriju.

## Predloženi pilot: checklist snimanja

1. Zatražiti dozvolu za snimanje; ukloniti privatne dokumente, fotografije, zaslone i osobne predmete iz kadra ili dogovoriti redakciju prije dijeljenja.
2. Zabilježiti model kamere, firmware, datum, format, rezoluciju, fps, ekspoziciju, stabilizaciju i export preset. Sačuvati originalne datoteke i metapodatke.
3. Odabrati 1–2 prostorije: jednu s teksturama/kutovima i jednu izazovnu (glatki zid, ogledalo, hodnik). Ne zaključivati izvedivost cijele kuće iz jedne prostorije.
4. Fiksirati kameru na približnoj visini očiju/prsa na kratkom štapu; držati je mirno i uspravno; ne mijenjati štap, leću ili ekspoziciju usred serije.
5. Početi snimati prije ulaza, polako proći vrata i zaustaviti se na uglovima/vratima, ali zadržati kontinuirani translacijski prolaz.
6. U svakoj prostoriji napraviti jedan obodni prolaz uz zid i jedan dijagonalni/poprečni prolaz kroz prostor. Ne vrtjeti se samo na mjestu; cilj je kretanje kamere kroz više centara.
7. Na vratima uhvatiti kadar koji vidi i staru i novu prostoriju. Na hodniku uzeti dodatna preklapajuća stajališta/kretnje.
8. Držati namještaj i predmete na mjestu; ukloniti ljude iz prolaza, ugasiti televizore, zaustaviti ventilatore ako stvaraju pokretne teksture.
9. Snimiti statične panoramske fotografije na sobnim čvorovima kao vizualnu kontrolu; fotografije nisu zamjena za putanju s baznom linijom.
10. Zabilježiti nekoliko ručnih referentnih duljina (npr. širina vrata, duljina jedne ravne stijenke) i točno gdje su mjerene. One služe za skalu i provjeru, ne kao dokaz da su sve dimenzije točne.
11. Snimiti ponovno problematičan zid iz kose perspektive i s više udaljenosti; dokumentirati ogledala/prozore koji se nisu mogli zakloniti.
12. Završiti kratkim povratnim prolazom prema početku kako bi se zatvorila petlja; usporediti konzistentnost i drift.
13. Provjeriti ekspoziciju, fokus, treperenje, šavove, preeksponirane prozore i stvarno trajanje/bitrate prije nego što se lokacija napusti.

Dodati mjerilo u ravnini kamere ili poznatu duljinu u svakoj povezanoj sekciji; SfM bez referentne duljine tipično vraća rekonstrukciju do slobodne skale. Kontrolna duljina mora biti dovoljno udaljena od šava i vidljiva u više kadrova.

Ako se prostor snima u više sesija, snimiti preklapajući prolaz i barem tri stabilne vizualne veze između sesija. Razlike u osvjetljenju, pomaknuti namještaj i promijenjena vrata mogu otežati spajanje.

Ne zaklanjati teksturu zidova nakon prvog prolaza prije nego što je evidentirano kako će se obaviti drugi prolaz. Ako se za pomoć stave markeri, fotografirati njihov položaj i ukloniti ih nakon skena.

## Primjer tijeka izvlačenja kadrova (plan, bez implementacije)

- Kopirati izvorne MP4/OSV u direktorij samo za pilot; izračunati kontrolne sažetke i spremiti evidenciju datoteka. Ne prepisivati original.
- Pregledati 360 video u DJI-jevom podržanom tijeku izvoza i potvrditi da izlaz ostaje equirectangular 2:1, bez promjene omjera ili nepoznatog reframea.
- Izabrati početni korak ekstrakcije prema brzini hoda i preklapanju, primjerice 1–2 s kao probnu vrijednost, pa prilagoditi nakon pregleda. To je hipoteza za pilot, ne pravilo kvalitete.
- Za svaki kadar zadržati timestamp i ime izvora. Ne uzimati mnogo gotovo identičnih susjednih slika: povećava trošak i može preopteretiti podudaranje bez nove paralakse.
- Napraviti perspective/cubemap projekcije konzistentnim FOV-om, dimenzijama i interpolacijom; zabilježiti parametre reprojekcije. Ukloniti sliku/patchove oko šava, nadir-štapa i zenita gdje su artefakti vidljivi.
- Pregledati kontakte-sheet i odbaciti mutne, potpuno preeksponirane, zatamnjene ili duplikatne kadrove. Zadržati prostornu pokrivenost, uključujući vrata i kutove.
- Pokrenuti inicijalno SfM na perspektivnim projekcijama uz podijeljene intrinsics po grupi s jednakom kalibracijom; zatim procijeniti alternativu sa sferičnim modelom ako ga instalirana verzija COLMAP-a podržava.
- Pregledati pozama, sparse point cloud, reprojection errors, kamere koje nisu registrirane, rupu u putanji, skalu i spajanje soba prije bilo kakvog MVS/3DGS treniranja.
- Tek nakon prihvatljive registracije generirati gustu rekonstrukciju/mesh i/ili splat. Zadržati neuspjele pilote s bilješkom o uzroku; ne popunjavati nepokrivene sobe sintetičkim „kućnim” sadržajem.

### Dodatna pravila za tijek snimanja

Odlučiti prije snimanja hoće li se koristiti 8K/30 ili 6K/24: viša rezolucija povećava detalje po smjeru, dok sporiji/niži način može pomoći u duljem obilasku. Usporediti kratki testni isječak prije nego što se snimi cijela kuća.

Ne tretirati elektroničku stabilizaciju kao zamjenu za kalibraciju. Ako export uključuje stabilizaciju, zapisati tu postavku i ne miješati stabilizirane i nestabilizirane kadrove u jednoj kalibracijskoj grupi bez provjere.

Kod prozora, snimati i iz smjera prozora prema sobi i obratno, ali paziti da se ekspozicija ne mijenja naglo. HDR/automatske ekspozicije mogu mijenjati boju i kontrast, a to mijenja opisnike značajki.

U otvorenim prostorima koristiti više paralelnih prolaza s pomakom bočno i naprijed-natrag. Sama rotacija oko stalka daje gotovo isti optički centar i slabu geometrijsku baznu liniju.

Voditi jednostavan dnevnik prostora: ID sobe, približan redoslijed putanje, prepreke, sjajne površine, neuspjeli segmenti, kontrolne mjere i ime datoteke. To omogućuje ponoviti baš slab segment bez ponovnog snimanja cijelog objekta.

Dijeliti snimke samo kroz odobreni kanal i zadržati izvornu datoteku odvojeno od verzija s redakcijom. Equirectangular slika otkriva čitav prostor u jednom kadru, uključujući aspekte iza snimatelja.

## Lokalizacija: što se može obećati

### Wi‑Fi RTT i RSSI

Android Wi‑Fi RTT (IEEE 802.11mc) mjeri udaljenost do podržanih pristupnih točaka/peer uređaja. Android dokumentacija kaže da nisu svi Android uređaji kompatibilni i popis RTT uređaja samo je djelomičan; RTT upotreba ovisi o podršci hardvera na telefonu i AP-u, API-ju, dozvolama, uključenom Location Mode i zahtjevima lokacijske dozvole. Za procjenu 2D položaja praktično su potrebne poznate pozicije više AP-ova i kvalitetna geometrija mjerenja; svaki dom mora biti provjeren. [Android Wi‑Fi RTT](https://developer.android.com/develop/connectivity/wifi/wifi-rtt) · [Android RTT API](https://developer.android.com/reference/android/net/wifi/rtt/package-summary)

Wi‑Fi RSSI/scan results su niže pouzdana osnova za fingerprinting: Android nameće dozvole i uključene lokacijske usluge za rezultate skeniranja te ograničava frekvenciju `startScan()`. Rezultati skena mogu biti zastarjeli ili ograničeni OS-om. [Android Wi‑Fi scan](https://developer.android.com/develop/connectivity/wifi/wifi-scan) · [WifiManager.getScanResults](https://developer.android.com/reference/android/net/wifi/WifiManager#getScanResults())

### Preglednik i GPS

Web Geolocation API vraća geografsku poziciju uz dozvolu; W3C definira geolocation kao podatak o geografskoj lokaciji uređaja. MDN opisuje `accuracy` kao procijenjenu horizontalnu točnost s 95% pouzdanosti, u metrima. To ne daje room ID, floor plan koordinatu, niti pouzdan položaj unutar interijera. [W3C Geolocation](https://www.w3.org/TR/geolocation/) · [MDN accuracy](https://developer.mozilla.org/en-US/docs/Web/API/GeolocationCoordinates/accuracy)

Standardni web `navigator` API nema opći web-platform API za enumerate svih obližnjih Wi‑Fi BSSID-a/RSSI-a; to je OS/hardverski privilegiran pristup. Zaključak za plan: web-klijent može tražiti dozvoljenu geolokaciju i može koristiti odobreni native bridge/hardverski SDK ako proizvod to uvede, ali se ne smije oslanjati na browser-only Wi‑Fi scan ili GPS za sobnu lokalizaciju. [MDN Navigator API](https://developer.mozilla.org/en-US/docs/Web/API/Navigator) · [Android Wi‑Fi scan](https://developer.android.com/develop/connectivity/wifi/wifi-scan)

Predložiti lokalizaciju u slojevima: prvo korisnik odabire kuću/kat/sobu ili ulaznu točku; zatim se prati lokalna relativna kamera poza unutar modela; opcionalno se poravnava s poznatim mjerama ili RTT sidrima; GPS ostaje vanjski geografski kontekst. Svako sidro mora imati koordinatu u istom lokalnom sustavu i kontrolu kvalitete. Bez stvarnih hardverskih podataka i terenskog pilota ne možemo tvrditi sobnu točnost.

### Pregled uzorka prije pune obrade

- Izabrati kratke isječke iz teksturirane prostorije, glatke prostorije i vrata između njih.
- Izvući mali broj kadrova u dva razmaka, primjerice 0.5 s i 2 s, pa usporediti preklapanje i razliku položaja kamera.
- Usporediti perspective lica s direktnim equirectangular uvozom u podržanoj verziji COLMAP-a.
- Zabilježiti trajanje feature extraction/matching i broj uspješno registriranih kamera, bez ekstrapoliranja linearne cijene na čitavu kuću prije mjerenja.
- Provjeriti ručno barem jednu udaljenost po uzorkovanoj prostoriji; slaganje izgleda nije metrička provjera.
- Ako se samo jedna strana prostorije registrira, promijeniti putanju i dodati kutne/bočne kadrove prije povećanja GPU-a ili broja slika.

## Kvalitativni prolazi / vrata za odluku

- **Gate A — ulaz:** izvorni video čitljiv, ekspozicija i šavovi pregledani, dovoljno teksture i preklapanja u uzorku.
- **Gate B — geometrijska registracija:** velika većina uzorkovanih kamera registrirana u jednoj ili namjerno povezanih komponentama; putanja ne preskače vrata; bez očitog zrcalnog duplikata ili sloma skale. Granicu postaviti prije pilotiranja; prag nije univerzalan.
- **Gate C — geometrija:** ručno provjeriti skalu i neke kontrolne duljine; provjeriti zidove, kutove, otvore, rupe i pod/strop. Prijaviti odstupanja i mjesta bez podataka; ne zaključiti da cijeli mesh zadovoljava toleranciju iz nekoliko dobrih mjera.
- **Gate D — splat:** pregledati nove poglede između snimljenih pozicija; označiti “floaters”, zamućene plohe, ghosting, prozirnost i područja izvan pokrivenosti. Splat je vizualni model, ne mjerni certifikat.
- **Gate E — lokalizacija:** usporediti procijenjene položaje s neovisnim lokalnim kontrolnim točkama/RTT sidrima; odvojiti medianu i percentile pogreške po sobi; ponoviti u drugačijem osvjetljenju i s pomaknutim namještajem. Ne objavljivati jednu stopu točnosti prije validacije.
- Ako vrata ne prođu, pojednostavniti cilj na panoramski pregled ili tražiti dodatne perspektivne fotografije, LiDAR/depth senzor ili ručno izmjerene planove; odluku donijeti tek na temelju uzorka.

## Obrada rezultata i izvještavanje

U izvještaju odvojiti: (a) što je kamera snimila, (b) što je algoritam rekonstruirao, (c) što je ručno izmjereno, (d) što je algoritamski interpolirano ili nedostaje. Te kategorije ne smiju se prikazati kao jednako pouzdane.

Za svaku sobu pohraniti status registracije i pokrivenosti, broj izvornih vremenskih točaka, broj perspektivnih pogleda, kamere bez registracije, broj poveznih vrata i kontrolne mjere. To čini pilot usporedivim između različitih postavki ekstrakcije.

Pri ocjeni mesh-a ne koristiti samo vizualno lijep render: promatrati siluetu, ravnost zidova, zatvaranje poda i stropa, otvor vrata, mjerilo i ponovljivost dimenzija. Tekstura može sakriti pogrešku ravnine.

Pri ocjeni splat-a pregledati i perspektive koje nisu bile izvorišni kadrovi. Ako se prikaz raspada kad se kamera pomakne malo izvan putanje, označiti ga kao ograničen pregled, a ne slobodno navigabilni model.

Pohranjivati i parametre pipelinea: verziju COLMAP-a, kamerni model, FOV, izlaznu rezoluciju reprojekcije, frame stride, feature/matcher postavke i verziju alata za splat. Rezultati različitih postavki nisu izravno usporedivi bez takvog zapisa.

## Resursi, troškovi i neizvjesnost

Hardver: kamera, štap/tripod, rezervna baterija/napajanje i brza kartica/USB pohrana; DJI navodi do 100 minuta 8K/30fps samo u kontroliranim uvjetima sa smanjenom potrošnjom, pa stvarno trajanje ovisi o zaslonu, bežičnom prijenosu, temperaturi i načinu rada. [DJI specifikacije](https://www.dji.com/360/specs)

Podaci: 170 Mb/s je maksimalni deklarirani bitrate (oko 21.25 MB/s, dakle grubi gornji red veličine 76.5 GB na sat ako se drži taj maksimum). To je račun iz deklariranog maksimuma, ne obećanje stvarnog prosjeka. Dodati prostora za izvorne datoteke, projekcije, sličice, COLMAP bazu, sparse/dense izlaze i 3DGS treninge.

Računanje: COLMAP pipeline je lokalno besplatan/open-source, ali vrijeme i memorija ovise o broju projekcija, rezoluciji, grafičkoj kartici, GPU memoriji i kvaliteti putanje. Dense MVS i 3DGS povećavaju trošak računanja i pohrane. Cloud obrada može uvesti cijenu, upload vrijeme, privatnost i zadržavanje snimaka; procijeniti tek nakon kratkog pilota s brojkama i odabranim uslugama.

Nisu potvrđeni: pristup hardveru, podrška konkretnog mobitela za RTT, RTT AP-ovi u kući, prostor/raspored, firmware/export ponašanje, tolerancija mjerenja, privatnost i budžet, željena rezolucija/rok, veličina dataseta, cloud GPU cijena i korištena COLMAP/3DGS implementacija. Niti službeni podaci o kameri niti literatura o algoritmu ne jamče uspješnu obnovu određene kuće.

## Izvori provjereni na datum istraživanja

- DJI — [Osmo 360 Specifications](https://www.dji.com/360/specs)
- COLMAP — [trenutna dokumentacija](https://colmap.github.io/), [Changelog](https://colmap.github.io/changelog.html), [Camera Models](https://colmap.github.io/cameras.html), [Panorama SfM example](https://github.com/colmap/colmap/tree/main/doc/panoramas), [Rig Support](https://colmap.github.io/rigs.html)
- Kerbl et al. — [3D Gaussian Splatting for Real-Time Radiance Field Rendering (arXiv)](https://arxiv.org/abs/2308.04079) i [autorski projekt/rad](https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/)
- Android Developers — [Wi‑Fi RTT](https://developer.android.com/develop/connectivity/wifi/wifi-rtt), [Wi‑Fi scan restrictions](https://developer.android.com/develop/connectivity/wifi/wifi-scan), [WifiManager API](https://developer.android.com/reference/android/net/wifi/WifiManager)
- W3C / MDN — [Geolocation standard](https://www.w3.org/TR/geolocation/), [Geolocation accuracy](https://developer.mozilla.org/en-US/docs/Web/API/GeolocationCoordinates/accuracy), [Navigator API](https://developer.mozilla.org/en-US/docs/Web/API/Navigator)
