Jag har experimenterat en del med fotogrammetri den senaste tiden. Det handlar inte om drönare, utan enkla handhållna kameror, för att se hur bra det kan bli och i vilken utsträckning man skulle kunna använda det för insamling av information.
Jag har testat kommersiella mjukvaror men här redovisas endast Open Source, men som jämförelse kan jag säga att i många fall så blir det bättre med kommersiella program, men inte alltid. En del scener blir faktiskt bättre med Open Source, och framför allt så tar det betydligt kortare tid att få ett resultat med den lösning jag använt, jämfört med de inställningar som gett bättre resultat med kommersiell mjukvara.
Jag har använt en GoPro 7, med inbyggd GPS inställd på intervallfotografering. Kameran har jag haft ca 2 meter över marken och något vinklad nedåt. Erfarenheten är att ju längre ifrån såväl marken och vertikala objekt som byggnader man kan vara med kameran, desto färre bilder behöver man för en bra 3d modell. Beroende på hur hög upplösning du behöver så spelar avståndet också roll, men du kommer att se resultatet av min 2 meters höjd och 1 bild per sekund i promenadtakt lite längre ner.
Beräkningen av bilderna har gjorts i WebODM, som bara blir bättre och bättre.
WebODM är riktigt enkelt att hantera, åtminstone så länge man håller sig till förval och standardinställningar. Allt körs via webbläsaren och det man gör är:
- Ladda upp bilder
- Döp projektet
- Välj ”profil” eller ändra manuella inställningar
- Kör!
Resultatet tar olika lång tid beroende på datorprestanda och antal bilder, men även scenens komplexitet och typ spelar roll för hur snabbt det går.
Jag har en ny dator med bra prestanda när det gäller CPU och Ram, men nytt grafikkort lär det inte bli förrän nästa år, när nVidia får ordning på sina leveranser…
I bilden ovan visas min scen över gamla stan i Eksjö och alla kameraplatser finns utmärkta också. Uppe till höger visas även en av bilderna. Bilder visas såhär när man klickar på en kamerasymbol och om man klickar på bilden så visas den i full upplösning.
Det är 899 bilder (!), vilka samlades in under uppskattningsvis 15 minuter. Beräkningen, som tog 2 timmar och 11 minuter, genererade drygt 57 miljoner punkter.
I gränssnittet kan man navigera runt, växla mellan punktmoln för mätningar och texturerad ytmodell för visualiseringar. För mig är punktmolnet mest intressant då det är här mätningarna kan göras.
Nu blir det inte milimeternogranna mått, men med några centimeters marginal så vill jag påstå att måtten stämmer. För mig så räcker detta gott, och man skall även betänka att då har jag samma upplösning i hela modellen, där bilden ovan bara representerar en bråkdel. Om det bara var området i bilden ovan som var intressant, så hade jag på kortare tid, med färre bilder, kunnat få ett än bättre resultat.
Punktmolnen
Från WebODM så kan man ”ladda ner” punktmoln i *.laz format, och om man så önskar så kan man ställa in programmet att även producera *.las.
Beroende på inställningar så skapas även andra data, och dessa är mer eller mindre användbara beroende på vilken typ av bilder man använt.
I WebODM så visualiseras punktmolnet med Potree som även kan installeras fristående för att visualisera extremt stora punktmoln. På Linux kan man installera Potree med några kommandon.
sudo apt install nodejs npm git clone https://github.com/potree/potree.git cd potree npm install npm start
Därefter pekar man en webbläsare på datorns ip med port 1234 (localhost:1234).
Här finns massor med exempel och instruktioner för hur man använder Potree och det är imponerande vad som går att göra i en webbläsare. Något exempel jag hittade var över 270 miljoner punkter och det fungerade utmärt att visualisera.
Jag har själv inte provat Potree på Windows, men här finns även en ”desktop” version som körs som electron-app. Jag antar att man behöver installera Node.JS även på Windows, men i övrigt bör allt vara inbyggt i appen. Det är dessutom möjligt att desktop appen kan läsa LAS/LAZ direkt, vilket inte går med Potree som jag använt. Punktmoln måste först konverteras till ”Potree format” med ”PotreeConverter”.
Ett annat sätt att hantera punktmoln är via program som CloudCompare. Detta är ett väldigt kraftfullt program där det går att visualisera, filtrera, dela och sammanfoga punktmoln.
Även om det strular med min installation av CloudCompare så skall det gå att skapa punkter, linjer med mera och spara dessa i andra format som exempelvis går att läsa i QGIS. Även mätningar i WebODM/Potree går att spara i exempelvis *.dxf och öppnas i QGIS.
Open Source
Bara för att det är Open Source så behöver det inte vara dåligt! Kommersiella program kan lösa något ”bättre”, men för många är resultatet av Open Source tillräckligt bra.
När dessutom kommersiella program inkluderar Open Source så är det ett kvitto på att det är tillräckligt bra. Pix4D är exempelvis en användare av Potree [ref].
Något som kan vara mer oroande är när större myndigheter försöker påverka att man inte väljer vissa lösningar. Så har det exempelvis hänt när det gäller LAStools. Amerikanska DOI har försökt få sina organisationer och myndigheter att avinstallera verktygen med mera på högst oklara grunder. Det är dessutom väldigt många som använder programmet med mycket gott resultat. LAStools är inte Open Source, men Rapidlasso som står bakom programsviten har även skapat formatet *.laz, och det är släppt som Open Source. Laz formatet har i praktiken blivit de-facto standard för stora punktmoln i konkurrens med bland annat Esri proprietära zLAS-format.
Just historien kring LAStools känns rejält infekterad och det är många hårda ord i sociala media. Något som jag absolut inte stödjer, men grundproblemet är ändå viktigt att belysa. Vill du veta mer så kan du läsa om det på https://groups.google.com/g/lastools/c/H5wjOdfynQA?pli=1.
[WebODM fotogrammetri]
[Potree punktmoln i webbläsaren]
[NodeJS för Potree]
[NPM installera Potree]
[Rapidlasso LASzip]
[Esri LAS-dataset LAS/zLAS]
[Esri konvertera LAS/LAZ/zLAS]
För enstaka byggnader och mindre objekt (eller föremål) kan Meshroom från AliceVision vara värt att titta på.
Där finns dock ingen georeferering baserad på GPS.
Du måste dessutom ha ett nVidia grafikkort av lite modernare slag för att köra hela vägen.