Odm: Impossible d'exécuter la reconstruction vidéo

Créé le 15 mai 2017  ·  5Commentaires  ·  Source: OpenDroneMap/ODM

Salut. Vous avez un problème avec l'exécution de la reconstruction vidéo pour l'instantané GIT actuel. Utilisation de la vidéo du château proposée pour les tests. ODM s'exécute dans Docker, image créée à l'aide de 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"]

Cela fonctionne bien pour les images, mais en essayant de faire de la vidéo, j'obtiens le suivant:

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 est dans le même dossier que chessboard.mp4 et castle_video.mp4, la sortie de l'échiquier est vérifiée comme étant la même que dans config. Quelqu'un peut-il dire ce que je fais de mal?

bug help wanted

Tous les 5 commentaires

Bonjour,
J'ai la même erreur. Dans mon cas, je tourne sous Ubuntu 16.04 64 bits et ODM compilé avec ORB_SLAM après avoir corrigé quelques problèmes avec Eigen 3.3 (rétrogradé à 3.2)
Comme dans votre cas, la vidéo d'entrée et le fichier de configuration yaml sont placés dans le dossier / project / path, mais je reçois le même message d'erreur.

Des indices?

Je recherche un champion pour remettre le SLAM en marche

Le problème est un bogue au niveau des scripts \ ODM_app.py, ligne 100, il devrait être 'return self.slam_connections (p)', pas '_p'

Nous avons supprimé les parties vidéo d'ODM je pense ... en confirmant avec @pierotofy et en fermant entre-temps.

Confirmez que le support SLAM a été supprimé (ce serait toujours cool d'avoir un support vidéo, mais sans contribution, cela ne se fera probablement pas).

Cette page vous a été utile?
0 / 5 - 0 notes