Odm: No se puede ejecutar la reconstrucción de video

Creado en 15 may. 2017  ·  5Comentarios  ·  Fuente: OpenDroneMap/ODM

Hola. Tengo un problema con la ejecución de la reconstrucción de video para la instantánea GIT actual. Uso del video propuesto del castillo para las pruebas. ODM se ejecuta dentro de Docker, imagen creada con 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"]

Funciona bien para imágenes, pero cuando intento hacer un video, obtengo lo siguiente:

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á en la misma carpeta que chessboard.mp4 y castle_video.mp4, se verifica que la salida del tablero de ajedrez sea la misma que en config. ¿Alguien puede decir qué estoy haciendo mal?

bug help wanted

Todos 5 comentarios

Hola,
Tengo el mismo error. En mi caso, estoy ejecutando Ubuntu 16.04 de 64 bits y ODM compilado con ORB_SLAM después de solucionar algunos problemas con Eigen 3.3 (degradado a 3.2)
Como en su caso, el video de entrada y el archivo de configuración yaml se colocan en la carpeta / project / path, pero recibo el mismo mensaje de error.

¿Alguna pista?

Estoy buscando un campeón para que SLAM vuelva a funcionar

El problema es un error en scripts \ ODM_app.py, línea 100, debería ser 'return self.slam_connections (p)', no '_p'

Hemos eliminado las partes de video de ODM, creo ... confirmando con @pierotofy y cerrando mientras tanto.

Confirme que se ha eliminado el soporte de SLAM (aún sería bueno tener soporte de video, pero sin una contribución, esto probablemente no se hará)

¿Fue útil esta página
0 / 5 - 0 calificaciones