howto:multimedia:photogrammetry
Obsah
Photogrammetry 3D scanning on Linux
Workflow
Postup vypadá zhruba takhle:
- Nafocení dostatečnýho množství kvalitních fotek
- Vytvoření sparse point cloudu (= množina záchytnejch bodů, který jsou vyfocený na 3 a víc fotkách)
- Vytvoření dense point cloudu (= množina nezáchytnejch bodů, který jsou odvozený ze záchytnejch)
- Vytvoření meshe (3d modelu) z dense point cloudu (tohle už umí i Meshlab)
Jak fotit:
- Každej detail by měl bejt alespoň na 3 fotkách z různejch úhlů
- Fotit ze stejné vzdálenosti s 30-60% překryvem
- Vypnout automatický otáčení fotek (je lepší mít všechny fotky ve stejnym rozlišení)
- Vypnout automatickou expozici, korekci bílý, atd…
- Používat co nejmenší clonu (aby byla co největší hloubka ostrosti)
- Fotit s co největším rozlišením a co nejostřeji
- Ideálně fotit pod mrakem, když je světlo, ale nejsou žádný ostrý stíny
- Lesklý a jednobarevný plochy je potřeba zmatnit a pokrejt vzorama (křídový sprej, gafa, barevný tečky, laserový tečky,…)
- Vyhnout se odleskům
- Pokud jsou na pozadí viditelný featury, tak se scanovanej objekt nesmí vůči pozadí hejbat
- Zapnout ukládání GPS souřadnic do EXIFu (pokud to jde)
Software
- MVE + Meshlab
- Colmap + Meshlab (funguje i na Windows)
- VisualSFM + Meshlab
- OpenMVG?
- bundler+pmvs2?
- e-foto??
- Agisoft PhotoScan (placeny SW, funguje na Linuxu)
- 3df zephyr FREE (jen Windows)
Postupy
ImageMagick
mogrify -resize 500000@\> *.jpg
omezit rozliseni fotek na 0.5 Mpx
Meshlab
Meshlab má spoustu zajímavejch funkcí. Tady jsou vypsaný jen ty úplně nejzákladnější potřebný k sestavení meshe z pointcloudu, rychlý očištění a export:
- Filters → Remeshing → Screen Poisson Surface Reconstruction (prej nema moc smysl depth >15, osobne sem pouzival cca 11-12)
- Filters → Smoothing, Fairing, Deformation → Laplacian Smooth
- Filters → Remeshing → Simplification: Quadratic Edge Collapse Decimation (100k faces = 5MB soubor, 200k = 10MB, atd…)
- Filters → Normals, Curvatures & Orientation → Transform: Translate, Center, Set origin → Set new origin: Trackball center
- Filters→point set→estimate radius from density
- Filters→selection→conditional vertex selection→(rad > 0.007)
- Delete selected vertices
Online nastroje
- https://www.formware.co/onlinestlrepair Mesh repair
MVE
set -x renice -n 10 $$ time ( makescene -i ./img ./scn #-m 500000 sfmrecon ./scn #--video-matching=10 dmrecon -s2 ./scn scene2pset -F2 ./scn ./scn/pset-L2.ply #optional: fssrecon ./scn/pset-L2.ply ./scn/surface-L2.ply meshclean -t10 ./scn/surface-L2.ply ./scn/surface-L2-clean.ply )
Colmap CLI bez NVIDIA + pmvs2
mkdir img out nice colmap automatic_reconstructor --image_path img/ --workspace_path out/ #--use_gpu 0 colmap image_undistorter --image_path img --input_path out/sparse/0 --output_path out/dense --output_type PMVS pmvs2 out/dense/pmvs/ option-all cd out/dense/pmvs/models meshlab option-all.ply
OpenMVG
#Sequential pro po sobe jdouci fotky z videa, Global pro nenavazujici fotky #SfM_SequentialPipeline.py ./img ./out SfM_GlobalPipeline.py ./img ./out
OSM-Bundler
python2 ./RunBundler.py --photos=./img python2 ./RunPMVS.py --bundlerOutputPath=./output #python2 ./RunCMVS.py --bundlerOutputPath=./output --ClusterToCompute=10 #pro velky datasety
OpenDroneMap
docker run -it --rm -v $(pwd)/code/images:/code/images opendronemap/opendronemap --mesh-size 100000 --force-ccd 1 --help
howto/multimedia/photogrammetry.txt · Poslední úprava: 2023/10/09 12:29 autor: harvie