Odm: ๋น„๋””์˜ค ์žฌ๊ตฌ์„ฑ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

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

์•ˆ๋…•ํ•˜์„ธ์š”. ํ˜„์žฌ GIT ์Šค๋ƒ… ์ƒท์— ๋Œ€ํ•œ ๋น„๋””์˜ค ์žฌ๊ตฌ์„ฑ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ œ์•ˆ ๋œ ์„ฑ ๋น„๋””์˜ค ์‚ฌ์šฉ. ODM์€ Docker์—์„œ ์‹คํ–‰๋˜๋ฉฐ Dockerfile์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“  ์ด๋ฏธ์ง€ :

FROM ubuntu
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get remove libdc1394-22-dev \
     && apt-get install -y --install-recommends sudo build-essential cmake \
     python-pip libgdal-dev libgeotiff-dev pkg-config libgtk2.0-dev \
     libavcodec-dev libavformat-dev libswscale-dev python-dev python-numpy \
     libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev \
     libflann-dev libproj-dev libxext-dev liblapack-dev libeigen3-dev \
     libvtk5-dev python-networkx libgoogle-glog-dev libsuitesparse-dev \
     libboost-filesystem-dev libboost-iostreams-dev libboost-regex-dev \
     libboost-python-dev libboost-date-time-dev libboost-thread-dev \
     python-empy python-nose python-pyside python-pyexiv2 python-scipy jhead \
     liblas-bin libglew-dev python-catkin-pkg catkin libgmp-dev libgmp3-dev \
     libmpfr-dev libmpfrc++-dev vim-nox \
     && apt-get autoremove && apt-get clean
RUN useradd -m -U odm
RUN mkdir /code
WORKDIR /code
RUN git clone https://github.com/OpenDroneMap/OpenDroneMap.git .
RUN git submodule init && git submodule update
RUN wget -c http://launchpadlibrarian.net/165141962/libeigen3-dev_3.2.0-8_all.deb && dpkg -i libeigen3-dev_3.2.0-8_all.deb && rm -f libeigen3-dev_3.2.0-8_all.deb
RUN cd SuperBuild && cmake -DODM_BUILD_SLAM=ON . && make
RUN bash ./configure.sh install && \
    cd build && cmake -DODM_BULID_SLAM=ON .. && make && cd .. && \
    chown -R odm:odm /code
USER odm
ENV PYTHONPATH=${PYTHONPATH}:/code/SuperBuild/install/lib/python2.7/dist-packages:/code/SuperBuild/src/opensfm \
    LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/code/SuperBuild/install/lib
VOLUME ["/images"]
ENTRYPOINT ["python", "/code/run.py", "--project-path", "/images"]

์ด๋ฏธ์ง€์—๋Š” ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ ๋น„๋””์˜ค๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ•  ๋•Œ ๋‹ค์Œ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

docker run -t -i --entrypoint=/bin/bash -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v /home/prapor/Downloads:/code/video opendronemap
odm<strong i="9">@53e1ad7fbae3</strong>:/code$ RUNPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
odm<strong i="10">@53e1ad7fbae3</strong>:/code$ export PYTHONPATH=$RUNPATH/SuperBuild/install/lib/python2.7/dist-packages:$RUNPATH/SuperBuild/src/opensfm:$PYTHONPATH
odm<strong i="11">@53e1ad7fbae3</strong>:/code$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$RUNPATH/SuperBuild/install/lib
odm<strong i="12">@53e1ad7fbae3</strong>:/code$ python modules/odm_slam/src/calibrate_video.py --visual 
./video/output/test1/chessboard.mp4 
kept    current chessboard found
34      1107    True              
RMS: 0.881957891046

# Camera calibration and distortion parameters (OpenCV)
Camera.fx: 1512.91332401
Camera.fy: 1512.04223185
Camera.cx: 956.585155225
Camera.cy: 527.321715394

Camera.k1: 0.140581949184
Camera.k2: -0.292250537695
Camera.p1: 0.000188785464717
Camera.p2: 0.000611510377372
Camera.k3: 0.181424769625
odm<strong i="13">@53e1ad7fbae3</strong>:/code$ python run.py --project-path ./video/output --video castle_video.mp4 --slam-config config.yaml --resize-to 1280 test1
[INFO]    Initializing OpenDroneMap app - Mon May 15 13:16:24  2017
Traceback (most recent call last):
  File "run.py", line 39, in <module>
    app = ODMApp(args=args)
  File "/code/scripts/odm_app.py", line 26, in __init__
    ecto.BlackBox.__init__(self, *args, **kwargs)
  File "/code/SuperBuild/install/lib/python2.7/dist-packages/ecto/blackbox.py", line 259, in __init__
    self.__connect()
  File "/code/SuperBuild/install/lib/python2.7/dist-packages/ecto/blackbox.py", line 284, in __connect
    raise BlackBoxError('Got error "%s" when calling connections on "%s"' % (str(e), str(self)))
ecto.blackbox.BlackBoxError: Got error "global name '_p' is not defined" when calling connections on "<scripts.odm_app.ODMApp object at 0x7f2689801c50>"

config.yaml์€ chessboard.mp4 ๋ฐ castle_video.mp4์™€ ๋™์ผํ•œ ํด๋”์— ์žˆ์œผ๋ฉฐ, chessboard ์ถœ๋ ฅ์€ config์—์„œ์™€ ๋™์ผํ•œ ๊ฒƒ์œผ๋กœ ํ™•์ธ๋ฉ๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ๋‚ด๊ฐ€ ๋ญ˜ ์ž˜๋ชปํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

bug help wanted

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

์•ˆ๋…•ํ•˜์„ธ์š”,
๋‚˜๋Š” ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” Ubuntu 16.04 64 ๋น„ํŠธ์—์„œ ์‹คํ–‰ ์ค‘์ด๋ฉฐ Eigen 3.3 (3.2๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œ)์—์„œ ์ผ๋ถ€ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ • ํ•œ ํ›„ ORB_SLAM์œผ๋กœ ์ปดํŒŒ์ผ ๋œ ODM
๊ท€ํ•˜์˜ ๊ฒฝ์šฐ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ž…๋ ฅ ๋น„๋””์˜ค ๋ฐ yaml ๊ตฌ์„ฑ ํŒŒ์ผ์€ / project / path ํด๋”์— ์žˆ์ง€๋งŒ ๋™์ผํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

ํžŒํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

SLAM์„ ๋‹ค์‹œ ์ž‘๋™์‹œํ‚ฌ ์ฑ”ํ”ผ์–ธ์„ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” scripts \ ODM_app.py, 100 ํ–‰์˜ ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค. '_p'๊ฐ€ ์•„๋‹Œ 'return self.slam_connections (p)'์—ฌ์•ผํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ODM์˜ ๋น„๋””์˜ค ๋ถ€๋ถ„์„ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. @pierotofy๋กœ ํ™•์ธํ•˜๊ณ  ๊ทธ๋™์•ˆ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

SLAM ์ง€์›์ด ์ œ๊ฑฐ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค (๋น„๋””์˜ค ์ง€์›์ด ์žˆ์œผ๋ฉด ์ข‹๊ฒ ์ง€ ๋งŒ ๊ธฐ์—ฌํ•˜์ง€ ์•Š์œผ๋ฉด ์™„๋ฃŒ๋˜์ง€ ์•Š์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค).

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