Photoscan

Photoscan er et fotogrammetri-program utviklet av det russiske selskapet Agisoft. Du kan lese mer om fotogrammetri på siden under linken i menyen til høyre.

Photoscan gir brukeren mulighet til å lage 3d-modeller utfra fotografier. Her laster man inn bilder av objektet en ønsker å modelere, og programmet sammenligner bildene, finner fellestrekk, og forsøker å finne hvor bildene er tatt fra i forhold til hverandre. Programmet gjenkjenner altså objekter fra bilde til bilde, og sammenligner hvordan egenskaper i bildene endrer seg mellom de ulike kameraposisjonene. Ved triangulering av enkeltdetaljer i de ulike bildene bestemmes dybder, og programmet er således i stand til å opprette en 3d-punktsky på bakgrunn av bildene. Videre kan programmet omgjøre punktskyen til en mesh/modell hvor det er dannet flater mellom punkter som er nær hverandre. I neste steg kler programmet flatene med informasjon fra bildematerialet slik at modellen ser mere naturtro ut.

Klikk på bildene for å se større versjon. Her er "kameraene" stilt opp i forhold til hverandre. Programmet viser hvilke bilder som er tatt hvor. Mens programmet jobber med å finne ut kameraposisjonene oppretter det en punktsky, og gir punktene farger fra bildemateriellet.
For at dette skal fungere optimalt må bildene være av høy kvalitet og ha god dybdeskarphet. Flatene som avfotograferes bør ha tilstrekkelig mye tekstur, ellers vil ikke programmet være i stand til å regne ut dybder. Flatene bør også være matte, slik at de reflekterer lys relativt likt etterhvert som en beveger kameraet omkring objektet. Blanke flater vil endre utseendet når man fotograferer dem fra ulike vinkler, og dette gjør det vanskelig for programvaren å tolke hva den "ser". Bildene bør også ha en stor grad av overlapping, - minst 60% av "nabobildet".

Når en jobber i programmet kan det være fornuftig å dele objektet inn i mindre segmenter ved hjelp av "chunks". Her er punktskyen fra området ved baugen. Målet med arbeidet her var geometrisk og visuell dokumentasjon av dekket på M/K Fuglø
Her er en annen "chunk" fra forskipet. Babord side av romlukekarmen.
I "chunken" fra styrbord side inkluderte jeg også bilder ned mot lasterommet. Det gir meg mulighet til å enklere legge til bilder fra lasterommet i etterkant, og sy de nye bildene sammen med resten av modellen.
Her er punktskyene fra forskipet tilpasset og innrettet i forhold til hverandre, eller registrert - som det heter i denne typen arbeid.
Her er for- og akterskipet registrert. På akterdekket var jeg også påpasselig med å ta en god del bilder ned mot maskinrommet. Det skal monteres skott mellom maskinrom og lasterom, i etterkant kan jeg nå tilpasse en evt. dokumentasjon av maskinrommet til resten av modellen.
For at programmet skal kunne jobbe mest mulig effektivt med bildene, bør de tas i kontinuerlige serier med god overlapping. En velger da funksjon for parvis sammenligning i programmet, noe som reduserer behandlingstiden i programmet betraktelig. Vi kan tenke oss at vi har et bildesett på omlag 300 bilder - dersom disse er tatt i kontinuerlig rekkefølge, vil det være vesentlig lettere for programmet å sammenligne to og to, i steden for hvert enkelt med alle de andre. En sparer også prosesseringstid ved å kalibrere linsen en bruker til fotograferingen. Ulike linser har ulik forvrengning, - noen strekker hjørnene mer enn andre osv. Agisoft tilbyr et eget gratisprogram for kalibrering av linsen hvor en avfotograferer et rutenett som vises på skjermen. Disse bildene lastes inn i programmet hvorpå dette regner ut i hvilken grad linsa forvrenger bildet på den brennvidden som er brukt. Disse kalibreringsdataene tillegges de bilder hvor den respektive linsa med den respektive brennvidden er brukt.

Når programmet er ferdig med å opprette punktskyer ved hjelp av kommandoen "Align Photos...", kan en kjøre kommandoen "Build Geometry...". Programmet lager da en "mesh" som består av et nettverk av linjer gjennom punktskyen. Disse linjene er kantene i flater som danner en geometrisk modell. På bildet ovenfor ser vi nettverket av linjer.
Her vises flatene i modellen. Før dette og forrige bilde ble tatt hadde jeg beskjært bort alt som ikke har med dekket å gjøre. Formålet her var å dokumentere dekket, og for å holde filstørrelsen nede valgte jeg å fjerne alt annet.
Når programmet lager modellen gir det flatene i meshen fargeinformasjon fra punktene i punktskyen.
Dersom en vil ha en enda mere naturtro modell, kan en kle flatene med tekstur fra bildemateriellet. Legg merke til at en tydelig ser hvor støter og nat er.

Det kreves mye regnekraft og minne til fotogrammetriske oppgaver. Datamaskinen vi bruker til denne typen arbeid er en hjemmebygd PC med firekjernet Intel i7 3820 designet for å kjøre på 3,6 GHz, denne er svakt overklokket til å kjøre på drøyt 3,8 GHz. Hovedkortet har 8 spor for ram, og støtter opp til 64 GB ram, - vi har installert 48 GB ram. Photoscan kan også nyttegjøre seg av regnekrafta i grafikkkortet, - dette er bedre egnet enn hovedprosessoren til flere av gjøremålene i denne oppgavetypen, og dess bedre grafikkort - dess kortere behandlingstid. Vår maskin har et Geforce GTX 680 med 4 GB ram installert. På tross av denne maskinens relativt høye ytelse, har vi møtt veggen ett par ganger. 48 GB ram har vist seg å være for lite i enkelte tilfeller. Vi lastet da inn over 400 høyoppløste bilder, uten å dele disse inn i det som kalles "chunks" i Photoscan. Chunks gir brukeren mulighet til å dele større oppgaver inn i segmenter, disse segmentene kan prosesseres separat og deretter sys sammen til større modeller i programmet. All prosesseringstid og maskinvarekrav bestemmes imidlertid av hvor store datamengder og hvilken nøyaktighetsgrad en velger at Photoscan skal jobbe mot på de ulike trinnene i prosessen.

Her prøver vi å lage en modell fra 476 høyoppløste bilder, 12 Mpx, og maskinen sliter. Dette forsøket gav resultatet "Not enough memory". I den kryptiske teksten nederst på bilder kan vi se hvordan Geforce GTX 680-kortet bidrar i forhold til CPUen
Arbeidsprosessen i Photoscan er som følgende:
  • Først legger en til de bildene en vil at Photoscan skal jobbe med, i en eller flere "chunks". Dersom en har kalibreringsdata for brukte linser, legges disse til nå. Dersom noen av bildene inneholder ting som har flyttet på seg under fotograferinga, feks skyer, personer, busker i vind, etc. kan disse maskeres - dvs. at en skjuler dem for den videre behandlinga i programmet.
  • Så velger en "Align Photos..." i en enkelt-chunk i "Workflow"-menyen. Her må en videre velge hvilken nøyaktighet, scenariotype og fremgangsmåte Photoscan skal bruke for å finne kameraposisjoner slik at programmet kan opprette en punktsky. Med scenariotype menes om det er feks flyfoto (aeriale) eller nærfeltsbilder photoscan skal jobbe med, noe som har konsekvenser for hvordan Photoscan tolker bildematerialet - i praksis forteller man Photoscan om bildene er tatt ovenfra eller rundt om fra flere sider. Med fremgangsmåte menes om Photoscan skal sammenligne bildene i rekkefølge (parvis) eller om hvert enkelt bilde skal sammenlignes med alle andre bilder i samme "chunk". Resultatet fra denne delen av arbeidsprosessen er en punktsky. Denne representerer objektet visuelt, og en kan lett se om oppstillingen av de forskjellige kameraposisjonene var vellykket eller ikke. 
  • Når en har en punktsky som ser fornuftig ut er det tid for å velge "Build Geometry..." i workflow-menyen. Programmet vil da danne flater mellom punktene i punktskyen og gi disse farge fra punktene i punktskyen og informasjon om hva som er overflate/bakside. Også dette trinnet har egne innstillinger. Disse avgjør hvilken nøyaktighet/oppløsning resultatet skal ha, og om huller i punktskyen skal fylles med flater eller ikke. Når Photoscan er ferdig med å opprette modellen må en gjerne bruke litt tid på å renske opp/fjerne uønskede flater og objekter. Til dette arbeidet har Photoscan "gradvise filtre", samt andre ulike verktøy for å velge deler av modellen.
  • Det siste steget er å gi flatene i modellen tekstur fra bildene. Dette gjør at modellen blir en veldig god grafisk presentasjon av objektet en forsøker å dokumentere.
Som sagt fungerer fotogrammetri dårlig på objekter med blanke overflater og overflater med lite tekstur. Til treverk og denslags er det imidlertid utmerket. Derfor er denne teknologien midt i blinken for oss ved Nordnorsk Fartøyvernsenter.

Agisoft Photoscan kan lastes ned som prøveversjon, eller kjøpes som standardversjon eller pro-versjon. Vi har kjøpt standardversjonen, denne kom på omlag 1050 kroner. Pro-versjonen er omlag 20 ganger dyrere, men gir muligheter vi savner i standardversjonen. Blant annet kan vi ikke definere hva som er opp/ned, bak/fram i standardversjonen. Vi kan heller ikke bestemme dimensjoner for modellen i standardversjonen. Disse manglene i standardversjonen kan imidlertid omgås ved å importere utdataene til andre gratisprogrammer som "Meshlab" og "CloudCompare".

Photoscan kan eksportere både punktskyer og modeller til en rekke av de vanligste 3d-formatene, inkludert .pdf. Pdf-formatet gir oss mulighet til å distribuere filene i et format som "alle" kan bruke dersom de har installert gratisprogrammet Adobe Reader. For å inkludere måleverktøy må en ha Adobe Acrobat Pro når en forbereder fila for distribusjon. Det har vi, og jeg vedlegger link til ei pdf fil av Fuglø-dekket som er eksportert fra Agisoft Photoscan. Last ned fila og åpne den i Adobe Reader. Når modellen vises på skjermen kan du bruke musa til å bevege modellen. Høyreklikk på modellen for å få flere verktøy tilgjengelige.
Klikk her for laste ned modellen i .pdf-format.