Odm: align_submodels ๋™์•ˆ ํ•˜์œ„ ๋ชจ๋ธ ๋‹น ํ•˜๋‚˜์˜ ๋ถ€๋ถ„ ์žฌ๊ตฌ์„ฑ ๋งŒ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2020๋…„ 03์›” 02์ผ  ยท  5์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: OpenDroneMap/ODM

OpenDroneMap์„ ์–ด๋–ป๊ฒŒ ์„ค์น˜ ํ–ˆ์Šต๋‹ˆ๊นŒ? (Docker, ๊ธฐ๋ณธ์ ์œผ๋กœ ...)?

Docker

๋ธŒ๋ผ์šฐ์ €์™€ ์šด์˜ ์ฒด์ œ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? (https://www.whatismybrowser.com/์˜ ์ถœ๋ ฅ์„ ๋ณต์‚ฌ / ๋ถ™์—ฌ ๋„ฃ๊ธฐ)

Linux์˜ Chrome 79

๋ฌด์—‡์ด ๋ฌธ์ œ์ž…๋‹ˆ๊นŒ?

๋ถ€๋ถ„ ์žฌ๊ตฌ์„ฑ์ด ์ƒ์„ฑ๋˜๋ฉด ์žฌ๊ตฌ์„ฑ ์ •๋ ฌ ์ถœ๋ ฅ์— ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
OpenSfM ์†Œ์Šค์— ๋”ฐ๋ฅด๋ฉด ๊ฐ ํ•˜์œ„ ๋ชจ๋ธ์˜ ๊ฐ ๋ถ€๋ถ„ ์žฌ๊ตฌ์„ฑ์€ ํฐ ๋ฒˆ๋“ค ์กฐ์ • ๋ฌธ์ œ๋กœ ๋˜์ ธ์ง„ ๋‹ค์Œ ๊ฐ ๋ถ€๋ถ„ ์žฌ๊ตฌ์„ฑ์— ์ ์šฉ๋œ ์œ ์‚ฌ์„ฑ ๋ณ€ํ™˜ ์„ธํŠธ๋กœ ์ถœ๋ ฅ ๋œ ๋‹ค์Œ ์ •๋ ฌ ๋œ ์žฌ๊ตฌ์„ฑ ํŒŒ์ผ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ๋กœ๋Š” ๋ถ€๋ถ„ ๋ณต์›์ด ํ•˜๋‚˜๋งŒ ์—…๋ฐ์ดํŠธ ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด์œ ๋ฅผ ์•Œ ์ˆ˜์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๊ธฐ๋Šฅ ์š”์ฒญ ์ธ ๊ฒฝ์šฐ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ๋ณ€๊ฒฝํ•ด์•ผํ•˜๋Š” ํŒŒ์ผ๊ณผ ์ค„์„ ์ธ์šฉํ•˜์—ฌ ์ฝ”๋“œ์— ๋ณ€๊ฒฝํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ž์„ธํžˆ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

๋‚˜๋Š” ๋ชจ๋“  ๋ถ€๋ถ„ ์žฌ๊ตฌ์„ฑ์˜ ๊ฐ๊ฐ์˜ ๋ชจ๋“  ํฌ์ธํŠธ์™€ ์ƒท์ด ์ ์–ด๋„ 1e-6 ํฌ๊ธฐ์—์„œ ์ˆ˜์ • ๋  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•˜์ง€๋งŒ ์ด๊ฒƒ์€ ๊ฐ ์„œ๋ธŒ ๋ชจ๋ธ์˜ ๋‹จ์ผ ๋ถ€๋ถ„ ์žฌ๊ตฌ์„ฑ์— ๋Œ€ํ•ด์„œ๋งŒ ์‚ฌ์‹ค ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ๋ถ€๋ถ„ ์žฌ๊ตฌ์„ฑ์€ ๊ฐ ์ƒท๊ณผ ํฌ์ธํŠธ์— ๋Œ€ํ•ด ๋‚˜๋ž€ํžˆ ๋น„๊ตํ•˜์—ฌ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

(๋ถ€์ฃผ๋กœ์„œ, ๋ฒˆ๋“ค ์ถœ๋ ฅ์„ ์ „์ฒด์ ์œผ๋กœ ์žฌ๊ตฌ์„ฑ์— ์ ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ฆฌ์ง€๋“œ ๋ณ€ํ™˜์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์œ ์‚ฌ์„ฑ ๋ณ€ํ™˜์ด ์ƒ์„ฑ๋˜๋Š” ์ด์œ ๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์„œ๋ธŒ ๋ชจ๋ธ ์‚ฌ์ด์— ๋” ๋ถ€๋“œ๋Ÿฌ์šด ๊ฒฝ๊ณ„๋ฅผ ์ƒ์„ฑ ํ•  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ์†์งˆ?)

์ด๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? (๋ฌธ์ œ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ ํ–ˆ์Šต๋‹ˆ๊นŒ? ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์–ด๋–ค ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ€๋Šฅํ•˜๋ฉด Google Drive ๋˜๋Š” Dropbox์— ์—…๋กœ๋“œ ๋œ ๋ฐ์ดํ„ฐ ์„ธํŠธ์˜ ์‚ฌ๋ณธ์„ ํฌํ•จํ•˜์‹ญ์‹œ์˜ค. ์ž์„ธํžˆ ์„ค๋ช…ํ•˜์‹ญ์‹œ์˜ค.)

์—ฌ๋Ÿฌ ๋ถ€๋ถ„ ์žฌ๊ตฌ์„ฑ์„ ํฌํ•จํ•˜๋Š” ์—ฌ๋Ÿฌ ํ•˜์œ„ ๋ชจ๋ธ๋กœ ๋ถ„ํ•  ๋œ ๋ฐ์ดํ„ฐ ์„ธํŠธ์—์„œ OpenSfM์˜ align_submodels ๋‹จ๊ณ„๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ตœ์†Œ ๊ธฐ๋Šฅ ์ˆ˜๋ฅผ ์ค„์ด๊ณ  ์ถฉ๋ถ„ํ•œ ์ˆ˜์˜ ํ•ญ๋ชฉ์ด์žˆ๋Š” ๋ฐ์ดํ„ฐ ์„ธํŠธ์— ๋ถ„ํ• ์„ ์„ค์ •ํ•˜์—ฌ ์‰ฝ๊ฒŒ ๋‹ฌ์„ฑ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

bug help wanted

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋ฌธ์ œ ์—†์Šต๋‹ˆ๋‹ค! ์žฌ๋ฏธ์žˆ๋Š” ์ฝ”๋“œ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค. :์„ ๋ฌผ:
์ด์ œ OpenDroneMap / OpenSfM๊ณผ mapillary / OpenSfM์— ๋ณ‘ํ•ฉ๋˜์–ด ๋‹ซํž™๋‹ˆ๋‹ค. :)

๋ชจ๋“  5 ๋Œ“๊ธ€

๋‚˜๋Š” ์ด๊ฒƒ์ด ํ–ฅ์ƒ ์ด๋ผ๊ธฐ๋ณด๋‹ค๋Š” ๋ฒ„๊ทธ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
์†Œ์Šค์—์„œ ๋ชจ๋“  ๋ถ€๋ถ„ ์žฌ๊ตฌ์„ฑ์€ ํ•ญ์ƒ ์ •๋ ฌ๋˜์–ด์•ผํ•˜์ง€๋งŒ ์ง€๊ธˆ ๋ถ„ํ•  / ๋ณ‘ํ•ฉ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ธ๋ฑ์Šค 0 ๋ถ€๋ถ„์ด ์‹ค์ œ๋กœ ์ •๋ ฌ์—์„œ ์—…๋ฐ์ดํŠธ๋˜์—ˆ๋‹ค๊ณ  ๋งํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์— ๋ณ‘ํ•ฉ๋˜์–ด ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๊ตฌ๋ฆ„์ด ์ƒ๊น๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์„ ๋ฐœ๊ฒฌ. OpenSfM์˜ apply_transformations (transformations)์—์„œ ์‚ฌ์šฉ ๋œ itertools.groupby ๋ฉ”์„œ๋“œ๋Š” ์ด๋ฏธ ์ •๋ ฌ ๋œ ๋ชฉ๋ก์„ ์ „๋‹ฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํ•ญ๋ชฉ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ทธ๋ฃนํ™”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์žฌ๊ตฌ์„ฑ์ด ๊ฐ ๊ทธ๋ฃน์— ๋Œ€ํ•ด๋กœ๋“œ๋˜๋ฏ€๋กœ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ์žฌ๊ตฌ์„ฑ์ด ๋‹ค์‹œ๋กœ๋“œ๋˜๊ณ  ์ด์ „์— ์ •๋ ฌ ๋œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋ฎ์–ด ์”๋‹ˆ๋‹ค.

PR์„ 099 ๋ฐ Mapillary OpenSfM์— ์กฐ๊ธˆ๋งŒ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค. : tada :

ํ™˜์ƒ์ ์ž…๋‹ˆ๋‹ค! ์ด @linusmartensson ์„ ์ฐพ์•„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

๋ฌธ์ œ ์—†์Šต๋‹ˆ๋‹ค! ์žฌ๋ฏธ์žˆ๋Š” ์ฝ”๋“œ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค. :์„ ๋ฌผ:
์ด์ œ OpenDroneMap / OpenSfM๊ณผ mapillary / OpenSfM์— ๋ณ‘ํ•ฉ๋˜์–ด ๋‹ซํž™๋‹ˆ๋‹ค. :)

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰