[Talk-lt] ortofoto iš buitinio bepiločio orlaivio
Motiejus Jakštys
motiejus at jakstys.lt
Mon Jun 28 19:26:00 UTC 2021
Sveiki,
Nufotografavau dalį Krekenavos buitiniu bepiločiu orlaiviu. Tikslas —
tikslesnės ortofoto OSM pildymui. Siunčiu įspūdžius tiems, kas svarstote daryti
tą patį.
Nuorodos:
- demo, palyginimui su ORT10LT: https://jakstys.lt/mtpad/map
- tif ir techninis dokumentas: https://jakstys.lt/mtpad/map/src
Statistika:
- įranga: dji mavic pro.
- aukštis: 120m (maksimalus leidžiamas toje vietoje be papildomų leidimų).
- galutinė rezoliucija: ~5cm/px.
- viso misijų: 16, pavykusių: 12.
- 1931 nuotrauka, viso ~11GB.
- surinkta per 3 savaitgalius.
Procesas susideda iš 3 dalių: fotografavimas, nuotraukų jungimas (stitching) ir
kaladėlių generavimas.
Fotografavimas
--------------
Naudojau pix4dcapture per Android. Tai — uždaro kodo, bet nemokama programa
paprastų misijų susidarymui. Pasižymi stačiakampį, kurį nori apskristi, aukštį
ir tankį. Aš žymėjau didžiausią tankį. Patogiausia turėti ilgus ir plonus
stačiakampius (man optimalu buvo ~900m x 250m), taip sutaupomas laikas drono
apsisukimui.
Pasižymėjus misiją dronas tvarkingai pakyla, nusskrenda į vietą, sufotografuoja
ir grįžta.
Privalumai: nemokamas.
Trūkumai:
1. jei misiją reikia nutraukti viduryje, nėra būdo jos pratęsti. O nutraukiama
misija gali būti dėl bet ko: ne tobulai prijungtas dronas prie pultelio
(kartais užtenka telefonui suvibruoti, kad jungtis trumpam atsijungtų),
įeinantis skambutis ir pan.. Todėl rekomenduoju įjungti "flight mode" prieš
paleidžiant misiją.
2. jei kas nors nepavyko su misija (pvz., buvo nutraukta), sudėtinga tai
matyti: pasimato tik padarius galutinį sujungimą (daugiau -- vėliau).
3. nėra patogaus būdo planuoti kelias misijas: kiekvieną stačiakampiuką reikia
brėžti ranka atskirai.
4. kartais siuntimas iš drono į telefoną pakimba, todėl vis tiek reikia siųstis
nuotraukas iš SD kortelės.
Nofotografavus rūpimą plotą siunčiamės nuotraukas į kompiuterį.
Nuotraukų jungimas (stitching)
------------------------------
Turint foto nuotraukas jas reikia sujungti į vieną tif. Aš naudojau
opendronemap, nes įrankis nemokamas ir gana patogus. Tarkime, nuotraukos
`all/images` kataloge:
```
docker run -ti --rm -v `pwd`:/datasets opendronemap/odm \
--project-path /datasets all --fast-orthophoto --skip-3dmodel
```
Komanda sukiria `all/odm_orthophoto/odm_orthophoto.tif`. Mano 1931 nuotraukoms
32GB atminties neužteko, leidau ant išnuomuoto serverio su 354GB. Užtruko
beveik 7 valandas.
Gavę ortofoto spaudžiame į JPG. Kokybė sumažėja matomai, bet ne ženkliai, o
failo dydis mažėja ~15 kartų (galioja ir ORT10LT!):
```
gdal_translate odm_orthophoto.tif odm_jpeg.tif -b 1 -b 2 -b 3 -mask 4 -co \
COMPRESS=JPEG -co PHOTOMETRIC=YCBCR --config GDAL_TIFF_INTERNAL_MASK YES
```
Kaladėlių generavimas
---------------------
Galima naudoti QGIs arba gdal2tiles.py. QGIS man kažkodėl neišeksportavo visų
kaladėlių, gdal2tiles.py -- viskas gerai; tik atsirado papildomas žingsnis.
Rezultatai, kiti įspūdžiai
--------------------------
Sujungimas vietomis blogas. Bet kiek atsimenu, problematiškos vietos yra tos,
kur buvo kartota misija. Su geresniu misijų planuotoju būtų geriau.
Kai oras geras (nėra tiesioginės saulės ir nedidelis vėjas) norisi leisti
misiją po misijos. Aš turiu vieną akumuliatorių, tai tekdavo laukti. Su ~3
akumuliatoriais būtų įdomiau ir greičiau.
Iš esmės rezultatu esu patenkintas: net su vietomis blogu sujungimu, JOSM'e
žymėjimas tikrai smagesnis, nei iš ORT10LT.
Jei yra norinčių, TIF'ą imkite ir naudokite. Svetainė bus įjungta bent iki
liepos pabaigos.
Iki,
Motiejus
More information about the Talk-lt
mailing list