För att testa detta så gav jag mig ut på YouTube och sökte efter drönarfilmer. Jag provade med flygningar runt broar, landskap och byggnader, men i detta inlägg så fastnade jag för ett slott.
Det är ett modernt slott i Tennessee byggt av en herre vid namn Mike Freeman. Slottet heter ”Castle Gwynn” eftersom alla slott måste heta någonting.
Nåja. Det fanns massor med drönarfilmer som flyger runt detta slott och det var bara att hitta en som verkade lämplig och ladda hem den. Hur man får använda filmer på YouTube varierar, så därför visar jag inte så mycket material från filmen i sig, men att använda för experiment som det här ser jag inte som några problem.
För att skapa ett punktmoln så behövs det stillbilder. Helst skall det också vara bilder med samma sensor och samma brännvidd på linsen. Inget av detta kan jag garantera så det blir lite av ett test det hela.
ffmpeg -i youtubefilm.webm -r 5 stillbild_%003d.jpg
Ovanstående kommando gör om filmen till bildrutor med 5 rutor per sekund video. Bilderna sparas i jpg-filer som numreras.
Det blev en sagolik mängd bilder och man skall nog passa sig att köra kommandot på en längre video. Om det dessutom finns mycket i filmen som inte skall användas så är det nog bättre att klippa filmen först.
Hur som helst, en rejäl gallring av bilderna, så att det bara var kvar bilder med slottet i, och så långt det gick bilder tagna från alla tänkbara håll och vinklar.
Därefter laddades alla bilder in i WebODM och den enda inställningen i övrigt som jag gjorde var att avbryta innan ”odm_filterpoints”, vilket stoppar när punktmolnet är klart. Några ortofoton och höjdmodeller, eller texturerade modeller är jag inte intresserad av här. Det går därför lite snabbare att köra beräkningen.
Nu är det ju en hel del bilder, så beräkningen kommer att ta en stund i alla fall. Men så länge så kan jag visa en annan modell som jag skapat baserat på stillbilder från lite godtycklig flygning med drönare runt en järnvägsbro.
Titta gärna på bilden i full upplösning då det är helt galet att detta är ens möjligt. Det finns ingen skala i modellen och heller ingen geografisk referens, men ändå. Ibland när jag testat, speciellt med lite lägre upplösta bilder så blir modellen skalad extremt liten. Det får till konsekvens att många punkter hamnar på exakt samma plats, då WebODM verkar avrunda alla positioner till 0.01 meter. Med korrekt skala och drönare, så är det nog OK, men jag tycker det varit trevligt om detta kunnat lösas automatiskt eller att jag fick ett alternativ att sätta en egen gräns för koordinatnoggrannhet.
Har slottet räknat färdigt?
Nähä! Då tittar vi på en modell till då.
Även detta är ett antal bildrutor från en video där man flugit runt Frihetsgudinnan i New York. Jag skulle tro att man gjort detta utan tillstånd, då jag inte tror att det är tillåtet ens i ”frihetslandet” att flyga på det sätt som man gjorde i filmen. Bilderna kunde dock extraheras väl överlappande åtminstone från statyns framsida.
Eftersom det sedan är väl känt hur hög statyn är så går det att skala punktmolnet relativt noga och därmed så är hela punktmolnet mätbart. Inte så pass att man kan hugga till nya ersättningsstenar till fundamentet, men det går att få en ganska god uppfattning om hur stort, högt och brett olika saker är.
Är slottet klart nu då?
Skit också. Då blir det ÄNNU ett exempel. Den här gången blir det bildrutor hämtade från nyhetssändningen om explosionen i Madrid i onsdags (20/1).
Här var det polisen i Madrid som filmade från helikopter, men inte heller här har jag en aning om vilken sensor som använts. Det var däremot inte speciellt hög upplösning på de bilder som kom ut och det fanns även överlagrade logotyper och texter i bilderna. Med ODM så kan man maska bort allt som man inte vill att programmet skall beräkna genom att skicka med en fil med samma namn som bilden, fast där det finns ”_mask” på slutet innan filändelsen. Det kan ta lite tid att skapa och redigera en mask för alla bilder som behöver det, men det var det värt. Jag provade även utan att maskera och det blev ett resultat, men det blev betydligt bättre med masker.
Vågar jag kontrollera…
Ja! Färdigt.
Punktmolnet blev mycket större än det som visas i bilden ovan. Ändå är detta över 4 miljoner punkter utvunna ur en video. Åter igen så har bristen på referenser ställt till det. Upplösningen i punktmolnet är 0.01 och det räcker inte för att tydligt visa alla identifierade punkter. Om jag reducerar punktmolnet så att inga punkter är närmare någon annan än 0.005 så går det från att vara 4’319’825 till 677’472 punkter och det syns ingen skillnad. I snitt så är det alltså 9 punkter per position i bilden, eller att modellen kunde varit minst 9 gånger tätare, åtminstone runt slottet där det finns flest bilder.
Jag skulle nog kunna göra om beräkningen och lägga till masker för alla bilder, men jag har inte lust att göra det för flera hundra bilder bara föra att testa.
Om någon har tips på hur man ställer in WebODM så att den inte begränsar koordinater till 0.01 så får ni gärna höra av er. Skriv en kommentar här nedanför.
Det blev lite ett antiklimax där det inte riktigt blev som jag hoppades, men då har jag ju glömt lite av det jag började att konstatera. Nämligen att det är helt jävla otroligt att jag kan skapa modeller på det här viset av YouTube filmer och nyhetsklipp med öppen källkod och en rimligt bra dator.