Innehållsförteckning:

Gratis fotogrammetri på Mac OS: Från foton till 3D -modeller: 5 steg
Gratis fotogrammetri på Mac OS: Från foton till 3D -modeller: 5 steg
Anonim
Gratis fotogrammetri på Mac OS: Från foton till 3D -modeller
Gratis fotogrammetri på Mac OS: Från foton till 3D -modeller

Fotogrammetri är användningen av bilder/fotografering för att mäta avstånd mellan objekt (tack Webster). Men för moderna ändamål används den ofta för att göra en 3D -modell av något från den verkliga världen utan att behöva en 3D -skanner.

Det finns gott om programvara där ute som du kan använda för fotogrammetri, inklusive några bra gratisalternativ, men jag märkte att många (som Meshroom) inte hade Mac -versioner tillgängliga. Eller så skulle de behöva ett grafikkort med CUDA -stöd (inte vanligt för saker som en Macbook). Så det innebar lite grävning.

Jag snubblade äntligen på denna utmärkta artikel:

Detta ledde till ett uppföljningsskript:

Det tog mig ett tag att få det att fungera, men när jag väl kom igång var jag ganska nöjd med resultaten jag började få. Så jag kommer att bryta ner stegen lite mer, speciellt för er Mac -användare där ute.

Steg 1: Skaffa COLMAP

COLMAP (https://colmap.github.io/install.html) är ett trevligt, lite gratis verktyg för att komma igång med fotogrammetri. Jag försökte det på egen hand först, men några av de senare stegen krävde CUDA. Så jag var tvungen att börja leta igen. Det är därför vi kommer att använda annan programvara för de senare stegen.

Det är enkelt att ladda ner COLMAP. Du kan följa instruktionerna här:

Eller så kan du titta på den senaste versionen på deras github-sida: https://github.com/colmap/colmap/releases och ladda ner den senaste COLMAP-dev-mac-no-cuda.zip

När du har laddat ner zip -filen, packa upp den och fäst COLMAP -appen i mappen Program.

Steg 2: Skaffa och bygg OpenMVS

Nästa program som jag använder för att slutföra byggandet av 3d -modellerna är OpenMVS (https://cdcseacave.github.io/openMVS/). Du måste bygga detta på din maskin, så jag ska försöka göra det så smärtfritt som möjligt.

Länken till instruktionerna för att få och bygga OpenMVS på en Mac finns här:

men jag var tvungen att ändra lite. Här är vad jag gjorde:

  • Ladda ner Xcode från App Store

    Öppna Xcode och godkänn licensen

  • Installera Homebrew om du inte redan har det:
  • Installera GIT:
  • Installera CMake:
  • Öppna en terminal och kör följande skript. Se till att du gör det någonstans där du vill att openMVS ska leva (jag har en mapp 'Projekt' under min huvudanvändare):

#Installera beroenden brygga uppdatering brygga installera boost egen opencv cgal ceres-solver main_path = `pwd` #VCGLib (obligatorisk) git-klon https://github.com/cdcseacave/VCG.git vcglib #Skaffa OpenMVS-källor: git klon https:/ /github.com/cdcseacave/openMVS.git #Build OpenMVS mkdir openMVS_build && cd openMVS_build cmake…/openMVS -DCMAKE_BUILD_TYPE = Release -DVCG_ROOT = "$ main_path/vcglib" -G "Xcode"

xcodebuild -configuration Release

Steg 3: Skapa ett fotogrammetri -skript

Jag skapade sedan ett manus baserat på det härifrån:

Här är vad jag slutade med (var uppmärksam på anteckningarna i manuset, eftersom det kräver att du ställer in några platser):

Fotogrammetri.sh

# Dessa parametrar är specifika för datorn # Lagra aktuell katalog: currDir = $ PWD

# få mappnamn som variabel

myfolder = $ {PWD ##*/}

# Ställ in colmap -katalogen (ändra till den plats där du har laddat ner colmap, ersätt 'dev' med versionsnummer om det behövs):

colDir =/Applications/COLMAP.app/Contents/MacOS/colmap

# Ställ in openMVS -katalogen (ändra detta till mappen 'bin/Release' där du har laddat ner och byggt openMVS)

oMVS =/Users/joecooning/Projects/openMVS_build/bin/Release

# Ställ in Working Directory (jag skapar en tillfällig arbetsyta -mapp i min 'Projects' katalog för att bearbeta data i)

workDir =/Users/joecooning/Projects/3dscans/workspace/$ myfolder/

mkdir $ workDir

cp *-j.webp

$ colDir feature_extractor --database_path database.db --image_path.

$ colDir exhaustive_matcher --database_path database.db mkdir sparsam $ colDir mapper --database_path database.db --image_path. --output_path sparse $ colDir model_converter --input_path sparse/0 --output_path model.nvm --output_type NVM $ oMVS/InterfaceVisualSFM model.nvm $ oMVS/DensifyPointCloud model.mvs $ oMVS/ReconstructMesh model_dense.mvs $ oMS/ upplösningsnivå 1 model_dense_mesh.mvs $ oMVS/TextureMesh --exporttyp obj -o $ myfolder.obj model_dense_mesh_refine.mvs

mkdir $ currDir/model/

cp *.obj $ currDir/model/cp *.mtl $ currDir/model/cp *Kd-j.webp

cd $ currDir

Steg 4: Kör skriptet

Nu när du har manuset kan du ta bilder av ett objekt som du vill göra en 3D -modell av. Det finns andra artiklar och videor där ute som kan ge dig bra råd om hur du bäst tar foton för fotogrammetri (till exempel den här: https://www.tested.com/art/makers/460142-art- Foto…).

Men dessa foton till en mapp, kopiera skriptet du gjorde till mappen.

Från din terminal, gå till mappen där foton och skript är och kör:

sh Fotogrammetri.sh

Skriptet kommer sedan att göra resten av arbetet åt dig. Observera att det kan ta ganska lång tid att bearbeta (särskilt om du använder många högupplösta bilder). Jag skulle föreslå att du testar några mindre bilduppsättningar först. Några enkla exempeluppsättningar finns här: (https://www.regard3d.org/index.php/demo-models)

Steg 5: Kolla in din modell

Rekommenderad: