Tag Archive | 3D modeller

Var är alla ”Raketforskare”?

Jag har flera gånger återkommit till fotogrammetri och skapandet av 3D modeller från foton och video och det finns gott om projekt på Internet som handlar om detta. Exempel på ett sådant visas i några videosnuttar nedan.

Det är däremot glest mellan riktigt användarvänliga program. Själv har jag en god förståelse för teorin och vari svårigheterna ligger, men mina programmeringskunskaper når inte upp till den nivå som krävs för att vidarförädla den kod och de bibliotek som finns tillgängliga till ett användarvänligt program.

Tänk er ett program som man bara dumpar ett antal (kanske tusentals) bilder i, och ut ramlar en 3d modell, antingen georefererad och klar, eller enkel att vidarförädla med referensmått och geografiska positioner.

Samla in foton från olika kameror med bilder tagna i olika vinklar vid olika tillfällen, bearbeta och abra-kadabra!

Nåja, i väntan på att någon superhacker skall göra jobbet så får man hålla till godo med lite exempel på vad som är tekniskt möjligt (om man är raketforskare).

Bilder tagna från ett flygplan och bearbetade av CVLAB.

Runt 4’500 bilder bearbetade till ett punktmoln på 272 miljoner punkter.

Annonser

Structure from Motion (SFM) – Foto till 3D

Det finns många kommersiella system som gör om foton till 3D, men nu har jag hittat ett Open Source som fungerar (ganska bra).

Visual SFM (structure from motion) går att ladda ner för flera operativsystem, men det är enklast att ladda ner en förkompilerad version för Windows.

Jag använder ett par hundra bilder från baksidan av trädgården, ju mera överlapp desto bättre. Det som avgör är inte bara antalet bilder utan även att de är tagna från lite olika platser.

Tyvärr så har min laptop inte en NVIDIA GPU så programmet kommer bara att använda processorn för beräkningar, vilket tar ganska lång tid…

Nåja, genom att klicka på rätt knapp så körs en SIFT (scale-invariant feature transform) funktion för att identifiera nyckelpunkter i alla bilder. Därefter så matchas bilderna mot varandra för att hitta överensstämmelser.

Det sista steget blir att rekonstruera 3D miljön. Detta fungerar inte helt felfritt, om det inte är helt ideala förutsättningar så skapar programmet flera modeller. Det är hur som helst ganska imponerande att allt görs automatiskt.

Jag passar även på att köra ett tillägg för att förtäta punktmolnet kallat CMVS/PMVS, som gör att objekten framträder lite tydligare. Detta skapar även nya filer med de resulterande modellerna. Dessa visualiseras i programmet, men jag tycker det blir snyggare i Meshlab.

Nu väntar jag bara på ett plug-in till Sketch-Up (numera distribuerat av Trimble) för att kombinera automatiskt med lite manuellt arbete för att snabba upp 3D byggandet. Kan bara data sparas i ett bra format som gör det användbart i olika GIS system så är lycken fullständig 😉

God Jul med GIS i 3D

Så här i jultider tänkte jag slå in ett litet GIS paket.

Jag skall ge ett exempel på hur man kan jobba med ArcGIS 10 och SketchUp 8 för att hantera 3D modeller.

I en tidigare artikel så beskrev jag hur man med ett plug-in i SketchUp kunde läsa ESRI shapefiler, men denna gång tänkte jag att vi skulle slippa det.

Börja i ArcMap eller använd ett befintligt lager med byggnadspolygoner.

Lägg till lagret i ArcGlobe och extrudera en höjd godtyckligt.

Gör om formen till ESRI multipatch genom att använda verktyget ”Layer 3D to Feature Class”.

Exportera det nya multipatchlagret till Collada med verktyget ”Multipatch To Collada”.

I SketchUp importeras Colladafilen (*.dae). Den ser säkert lite konstig ut, men ”explodera” modellen och redigera efter tycke och smak.

Modellen är uppbyggd av trianglar men detta kan ändras med verktygen i SketchUp till något som passar bättre för ändamålet.

Exportera modellen tillbaka till Collada under ett nytt namn. Använd 3D-Edit i ArcGlobe för att markera originalmodellen, och välj ”Replace With Model…” i menyn (se nedan).

Välj den nya Colladafilen och sim-salabim så har den redigerade modellen tagit den gamlas plats.

På det här sättet kan man exportera, redigera och importera modeller till en geodatabas i 3D. Begränsningen är framför allt att det bara fungerar med ESRI programvaror med 3D-analystillägget.

Tänk nu om det kunde komma en öppen standard för att hantera 3D modeller i exempelvis PostgreSQL/PostGIS som direkt fungerar med såväl ESRI som Google (med flera), på ett lika smidigt sätt som det här har varit.

Fallgropar, eller problem som jag upptäckt på vägen:

  • Referenssystemet ställer till det i bland. Data kan behöva sparas i ett projicerat system som SWEREF 99TM (osäker om så är fallet).
  • Jag fick inte med texturerna från SketchUp till ArcGlobe och jag har inte tagit reda på vad detta beror på.
  • Som vanligt så ”låser” ArcGIS programmen olika lager för varandra så att de inte går att redigera. Om detta inträffar så spara och stäng alla (ESRI-) program och öppna dem igen.

CRP – Close Range Photogrammetry

Begreppet som sådant innebär att man utifrån tagna fotografier i efterhand kan skapa geografiska punkter, mäta olika avstånd och på annat sätt göra beräkningar i 3D.

Här kommer jag endast att titta på två program och visa lite exempel på vad man kan göra med Open Source. Det finns kommersiell programvara som gör detta mycket bättre, men i denna blogg så försöker jag hålla mig till Open Source och fri programvara.

Vi börjar med programmet som skall skapa 3D informationen. Insight3D är ett Open Source program som tar en serie med bilder med lite olika vinkel och räknar ut gemensamma punkters position i 3D.

Jag har tagit en serie bilder på en sten (mycket texturer och goda möjligheter att automatiskt hitta gemensamma punkter).

Läs mer…

SketchUp och ESRI Shape

Jag har i tidigare inlägg tipsat om möjligheten att läsa shape filer i Google SketchUp och nu tänkte jag visa ett praktiskt exempel.

Först så återvände jag till Open Street Map och laddade hem de senaste shape filerna. Jag läste in byggnader och vägar i uDig och valde ut huvudbyggnaderna på Karlbergs Slott.

Läs mer…

SketchUp

För några år sedan så tittade jag närmare på hur man skulle kunna integrera enkelheten och snabbheten i Google SketchUp med ”kvalitén” i ett professionellt GIS system som ESRI ArcGIS. Till SketchUp Pro i version 6 fanns ett ArcGIS plug-in som gjorde att man kunde använda ArcGIS att hämta geografisk information från, och att publicera 3D modeller till. Detta fungerade OK, men då det inte fanns tid för vidare utvärdering så stannade allt vid några enkla experiment.

För några veckor sedan så blev det åter aktuellt att skapa lite 3D modeller för att visualisera ett förslag på utveckling av ett område, med nya byggnader etc. Då kom jag att tänka på SketchUp och den gamla version 6 lösningen fick komma till tals igen.

Det som jag nu testat är om det går att utveckla konceptet vidare till SketchUp 8, som är den version som nu finns tillgänglig (länk till Google SketchUp). Fortfarande så finns det en ”Pro” version av programmet, som förutom ett layout program även har möjlighet att importera och exportera en mängd olika filformat. Tills vidare så kommer jag att nöja mig med gratisversionen, inte minst då import av GIS filer är begränsat i Pro versionen.

Läs mer…