jueves, 1 de diciembre de 2016

OpenCV 3.1.0

Compilar versión estable

Cada vez que compilo OpenCV, configurarlo es todo un triunfo.  Pero uso muchas dependencias, por lo que mejor anoto aquí lo usual:

Aunque existe una página con el procedimiento y es útil pasar por ahí primero, aquí dejo mi acordeón.

Dependencias

libgtk-3-dev        ?
libgtk2.0-dev
libqt4-dev

libvtk6-dev
libopenni-dev

libav-tools
libavcodec-dev
libavformat-dev
libswscale-dev

libjpeg-dev
libpng-dev
libtiff-dev
libjasper-dev

libdc1394-22        # Caḿaras IEEE
libdc1394-22-dev

libtbb2             # Paralelismo
libtbb-dev

libgtkglext1-dev

python3-dev
python3-numpy
python-dev
python-numpy

nvidia-cuda-dev
nvidia-cuda-gdb
nvidia-cuda-toolkit

Configurar y compilar

Editar el archivo cmake/FindCUDA.cmake:

Cambiar la línea 711:

711 PATHS "/usr/lib/nvidia-current" "/usr/lib/nvidia-361"

de modo que la segunda dirección se la del driver de nvidia, donde se encuentra el archivo libnvcuvid.so.  Dara algunas advertencias, pero funciona como debe.

En la línea 799 insertar:

799 if(CUDA_VERSION VERSION_GREATER "7.0")

800   find_cuda_helper_libs(nvcuvid)

801 endif()
Otra opción es indicar el directorio de este archivo a cmake, como se indica a continuación.

$ mkdir compile
$ mkdir build
$ cd compile
$ cmake -DCMAKE_INSTALL_PREFIX=</home/...> -DWITH_OPENGL=ON -DWITH_QT=ON -DWITH_VTK=ON -DWITH_OPENNI=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" -D PYTHON3_INCLUDE_DIR=/usr/include/python3.5m -DINSTALL_PYTHON_EXAMPLES=ON -DCUDA_cublas_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libcublas.so -DWITH_CUBLAS=ON -DWITH_NVCUVID=ON -DCUDA_nvcuvid_LIBRARY:FILEPATH=/usr/lib/nvidia-367/libnvcuvid.so ..

ó

$ cmake -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" -DCMAKE_INSTALL_PREFIX:PATH= -DWITH_IPP=ON -DWITH_CUBLAS=1 -DWITH_OPENGL=ON -DWITH_NVCUVID=ON ..
$ make -j 3
$ make install

Aparecerá una advertencia por haber agregado '/usr/lib/nvidia-367'.

Ojo: Qt y Vtk no se llevan, aunque puse ambas opciones arriba, elegir sólo una.

Con ffmpeg local

Para utilizar ffmpeg compilado localmente, antes de  realizar los pasos siguientes:
$ export LD_LIBRARY_PATH=/home/.../ffmpeg.../build/lib
$ export PKG_CONFIG_PATH=/home/.../lib/pkgconfig:$PKG_CONFIG_PATH
$ export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:/home/.../build/lib

No hay comentarios.: