Känner du till projektet OpenDroneMap? Det är en strukturerad metod för att helt automatiskt omvandla fotografier från drönare, drakar, balonger eller i princip en kamera på en pinne (ni skulle se min 6 meters ”selfie stick”) till 3D modeller, höjddata och ortofoto för GIS.
Är det enkelt eller svårt? Fungerar det? Hur bra är resultatet? Hur kan det utvecklas med QGIS? Detta skall jag undersöka i detta inlägg.
Hela projektet ligger på GitHub och installeras på Ubuntu 14.04 eller senare. Det finns ingen version för Windows eller Mac, men det är möjligt att köra i en virtuell maskin om man ändå vill prova.
Det är en liten process att installera allt som krävs, men det är ganska tydliga instruktioner på https://github.com/OpenDroneMap/OpenDroneMap.
cd /sökväg/till/projektkatalog/ git clone https://github.com/OpenDroneMap/OpenDroneMap.git . export PYTHONPATH=$PYTHONPATH:`pwd`/SuperBuild/install/lib/python2.7/dist-packages:`pwd`/SuperBuild/src/opensfm export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`/SuperBuild/install/lib bash configure.sh mkdir build && cd build && cmake .. && make && cd ..
Jag har testat på Xubuntu 16.04 och det fladdrade förbi massor med varningar i skripten under installationen, men inga felmeddelanden. När allt var klart så provade jag med en uppsättning exempelbilder.
Bilderna skall placeras i en ”image” katalog i en projektkatalog. Sedan ger man kommandot:
python run.py --project-path /sökväg/till/projektkatalog/
Detta startar den automatiska processen som kan ta ganska lång tid beroende på hur många bilder och vilken kvalité dessa har.
Jag hade väl inga fantastiska förhoppningar att det skulle fungera. Speciellt inte när det enda jag gjort, förutom att vänta, var att skriva in sju rader med terminalkommandon…
Men efter vad som kan betecknas som en evighet (man skall nog inte göra detta på en gammal laptop) så meddelade skriptet att det var färdigt.
Förutom katalogen med bilder så har det skapats flera nya kataloger med blandat innehåll. I ”pmvs” katalogen finns det flera undermappar och där kan man hitta det ”täta” punktmolnet.
Ply-filer som denna kan öppnas i exempelvis MeshLab, men det mest intressanta finns kanske i ”odm_orthophoto”.
Jämför jag med andra data så verkar bilden ligga nära, men inte helt korrekt. Det är drygt 60 meter fel. Detta kan bero på flera saker, så för att testa så tar jag med bilderna och bearbetar dessa i ett professionellt program som jämförelse.
Med detta program så hamnar bilderna inte heller ”rätt”, men det intressanta är att det skiljer ca 14 meter i position till OpenDroneMap resultatet. Lite konstiga kanter också, men bilderna är snyggt blandade.
Just nu så saknas stöd för att tillverka höjdmodeller som är direkt användbara i QGIS, men punktmolnet som skapas kan levereras i såväl LAZ- (zippad LAS) som XYZ-format, och med LASTOOLS så går det ganska enkelt att omvandla dessa till exempelvis DEM.
Det finns även en hel del alternativ man kan använda för att exempelvis styra hur stora pixlarna i den resulterande bilden skall vara. Jag hittar däremot inget om blandningsläge. Som det är nu så blandas bildernas ljusstyrka inte speciellt bra, men det kanske kommer i senare versioner.
ODM2QGIS
Vad har då OpenDroneMap med QGIS att göra? Jo, eftersom det bara handlar om ett Python-kommando, med vissa anpassningar, så är det inte speciellt svårt att baka in detta i ett QGIS Plug-In. Inte helt olikt ”Drone2Map”, till ett annat större GIS program, baserat på Pix4D.
Då skulle man kunna starta processen inifrån QGIS där man pekar ut projektkatalogen med bilder och välja eventuella parametrar och sedan köra igång processen med ett knapptryck.
Resultatet som finns i en definierad struktur, kan sedan enkelt läggas till som lager i QGIS.
Det tar lite tid, så det är lämpligt att förpassa processen till bakgrunden, så länge man kan ha någon form av indikation på att något faktiskt pågår. Det optimala är ju sedan en dialog där resultatet presenteras och direktlänkar för att lägga till exempelvis ortofoto till kartan som lager.
Sammanfattning
Det är imponerande vad som går att åstadkomma med öppen källkod! Med tanke på att OpenDroneMap kostar ungefär 3’500 $ mindre än det kommersiella programmet så är resultatet strålande. Rent praktiskt så är det färre handgrepp med ODM, och om man klär in det i ett GUI så blir det också enklare att styra detaljer i processen.
Ett insticksprogram i QGIS ser jag som en möjlighet, men jag planerar inte att bygga det själv för närvarande. Den som är sugen kan alltid göra ett försök.
Jag blir lite fundersam när varken ODM eller proffsprogrammet placerar bilden ”rätt” på kartan, och än mer förvånad av att de sinsemellan inte överensstämmer. Jag måste nog ta några egna bilder i en kontrollerad miljö för att testa och jämföra ytterligare. Då kan jag dessutom säkerställa att det finns noggrant inmätta referenspunkter att jämföra med.
Det kan finnas de som tycker att det är synd att ODM bara finns för Ubuntu, men då säger jag: HA-HA!
Jag installerade det på en av jobbets W$-maskiner mha https://github.com/OpenDroneMap/odm_vagrant och det fungerade mycket bra. Speciellt eftersom mappdelning mellan det virualiserade OSt och W var förinstallerat. Annars är det förståss ?Buntu som gäller… 🙂