Odm: opensfm ๋ฌธ์ œ ๊ฐ์ง€ ๊ธฐ๋Šฅ์œผ๋กœ ์ƒˆ๋กœ ์„ค์น˜

์— ๋งŒ๋“  2019๋…„ 01์›” 25์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: OpenDroneMap/ODM

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

Ubuntu 16.04 LTS์˜ ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜ ์ƒˆ๋กœ ์„ค์น˜์—์„œ OpendronMap

๋ธŒ๋ผ์šฐ์ €์™€ ์šด์˜ ์ฒด์ œ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

Ubuntu 16.04 LTS

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

Opensfm detect_features ๋ชจ๋“ˆ์—์„œ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.-

์—ญ ์ถ”์  (๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰) :
ํŒŒ์ผ "/mnt/odm/odm-v0.4/SuperBuild/src/opensfm/bin/opensfm", 34 ํ–‰, in
command.run (args)
์‹คํ–‰์ค‘์ธ "/mnt/odm/odm-v0.4/SuperBuild/src/opensfm/opensfm/commands/detect_features.py"ํŒŒ์ผ, 30 ํ–‰
parallel_map (๊ฐ์ง€, ์ธ์ˆ˜, ํ”„๋กœ์„ธ์Šค)
ํŒŒ์ผ "/mnt/odm/odm-v0.4/SuperBuild/src/opensfm/opensfm/context.py", 38 ํ–‰, parallel_map
๋ฐ˜ํ™˜ ๋ชฉ๋ก (e.map (func, args))
_chain_from_iterable_of_lists์˜ ํŒŒ์ผ "/usr/local/lib/python2.7/dist-packages/loky/process_executor.py", 794 ํ–‰
iterable์˜ ์š”์†Œ :
result_iterator์˜ ํŒŒ์ผ "/usr/local/lib/python2.7/dist-packages/loky/_base.py", 589 ํ–‰
yield future.result ()
ํŒŒ์ผ "/usr/local/lib/python2.7/dist-packages/loky/_base.py", 433 ํ–‰, ๊ฒฐ๊ณผ
return self .__ get_result ()
__get_result์˜ ํŒŒ์ผ "/usr/local/lib/python2.7/dist-packages/loky/_base.py", 381 ํ–‰
self._exception ์˜ฌ๋ฆฌ๊ธฐ
TypeError : ์˜ˆ์ƒ๋˜๋Š” str, bytes ๋˜๋Š” os.PathLike ๊ฐ์ฒด, ์œ ๋‹ˆ ์ฝ”๋“œ๊ฐ€ ์•„๋‹˜

์ด๊ฒƒ์€ ์ง์ ‘
"" "
์—ญ ์ถ”์  (๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰) :
_process_worker์˜ ํŒŒ์ผ "/usr/local/lib/python2.7/dist-packages/loky/process_executor.py", 418 ํ–‰
r = call_item ()
__call__์—์žˆ๋Š” "/usr/local/lib/python2.7/dist-packages/loky/process_executor.py"ํŒŒ์ผ, 272 ํ–‰
return self.fn ( self.args, * self.kwargs)
_process_chunk์˜ ํŒŒ์ผ "/usr/local/lib/python2.7/dist-packages/loky/process_executor.py", 337 ํ–‰
return [fn (* args) for args in chunk]
ํŒŒ์ผ "/mnt/odm/odm-v0.4/SuperBuild/src/opensfm/opensfm/commands/detect_features.py", 78 ํ–‰, detect
data.save_features (์ด๋ฏธ์ง€, p_sorted, f_sorted, c_sorted)
save_features์˜ ํŒŒ์ผ "/mnt/odm/odm-v0.4/SuperBuild/src/opensfm/opensfm/dataset.py", 276 ํ–‰
self .__ save_features (self .__ feature_file (image), ์ด๋ฏธ์ง€, ํฌ์ธํŠธ, ์„ค๋ช…์ž, ์ƒ‰์ƒ)
__save_features์˜ ํŒŒ์ผ "/mnt/odm/odm-v0.4/SuperBuild/src/opensfm/opensfm/dataset.py", 261 ํ–‰
์ƒ‰์ƒ = ์ƒ‰์ƒ)
savez_compressed์˜ ํŒŒ์ผ "/usr/local/lib/python2.7/dist-packages/numpy/lib/npyio.py", 691 ํ–‰
_savez (ํŒŒ์ผ, ์ธ์ˆ˜, kwds, True)
_savez์—์žˆ๋Š” "/usr/local/lib/python2.7/dist-packages/numpy/lib/npyio.py"ํŒŒ์ผ, 700 ํ–‰
ํŒŒ์ผ = os_fspath (ํŒŒ์ผ)
os_fspath์—์žˆ๋Š” ํŒŒ์ผ "/usr/local/lib/python2.7/dist-packages/numpy/compat/py3k.py", 237 ํ–‰
"์•„๋‹˜"+ path_type .__ name__)
TypeError : ์˜ˆ์ƒ๋˜๋Š” str, bytes ๋˜๋Š” os.PathLike ๊ฐ์ฒด, ์œ ๋‹ˆ ์ฝ”๋“œ๊ฐ€ ์•„๋‹˜
"" "
์—ญ ์ถ”์  (๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰) :
ํŒŒ์ผ "/mnt/odm/odm-v0.4/run.py", 47 ํ–‰, in
plasm.execute (niter = 1)
ํŒŒ์ผ "/mnt/odm/odm-v0.4/scripts/run_opensfm.py", 116 ํ–‰, ์ฒ˜๋ฆฌ ์ค‘
(context.pyopencv_path, context.opensfm_path, tree.opensfm))
ํŒŒ์ผ "/mnt/odm/odm-v0.4/opendm/system.py", 34 ํ–‰, ์‹คํ–‰ ์ค‘
raise Exception ( "Child returns {}". format (retcode))
์˜ˆ์™ธ : ์ž๋…€๊ฐ€ 1์„ ๋ฐ˜ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
์น˜๋ช…์  ์˜ค๋ฅ˜ : ODM ์‹คํ–‰์ด ์˜ค๋ฅ˜ ์ฝ”๋“œ 0์œผ๋กœ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.

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

๋‹ค๋ฅธ ์ด๋ฏธ์ง€ ์„ธํŠธ๋กœ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. opensfm์œผ๋กœ ์ž˜ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

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

"bash configure.sh install"๋ฐ ํ”„๋กœ์„ธ์Šค ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ์šฐ๋ถ„ํˆฌ 16.04์— ์ƒˆ๋กœ ์„ค์น˜
bash run.sh --project-path images-path --matcher-neighbors 0 --min-num-features 8000 --start-with dataset --end-with odm_meshing project-id

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

@pierotofy ์˜ˆ numpy ์ตœ์‹  ๋ฒ„์ „ ๋ฌธ์ œ๋„ ๋ฐœ๊ฒฌํ–ˆ์œผ๋ฉฐ numpy ํŒจ์น˜๋ฅผ ์ ์šฉํ•˜์—ฌ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์—์„œ ์žฌ์„ค์น˜ ํ•œ ํ›„์—๋„ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜ โ€‹โ€‹์žˆ์Šต๋‹ˆ๋‹ค.

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

์•„๋งˆ๋„ ๊ด€๋ จ https://github.com/OpenDroneMap/WebODM/issues/608

์˜ˆ, ๊ธฐ๋ณธ ์„ค์น˜์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. numpy ์ด (๊ฐ€) ์†์ƒ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด์ „ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ configure.sh ์Šคํฌ๋ฆฝํŠธ์—์„œ gippy ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์ƒˆ๋กœ์šด ์†์ƒ๋œ ๋ฒ„์ „์„ ์€๋ฐ€ํ•˜๊ฒŒ ๋‹ค์‹œ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ • ์‚ฌํ•ญ์„ ์ ์šฉํ–ˆ์œผ๋ฉฐ ํ˜„์žฌ ํ…Œ์ŠคํŠธ ์ค‘์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด git pull origin master ๋ฐ bash configure.sh reinstall ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”.

@pierotofy ์˜ˆ numpy ์ตœ์‹  ๋ฒ„์ „ ๋ฌธ์ œ๋„ ๋ฐœ๊ฒฌํ–ˆ์œผ๋ฉฐ numpy ํŒจ์น˜๋ฅผ ์ ์šฉํ•˜์—ฌ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์—์„œ ์žฌ์„ค์น˜ ํ•œ ํ›„์—๋„ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜ โ€‹โ€‹์žˆ์Šต๋‹ˆ๋‹ค.

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