2017-01-11 9 views
5

Я пытаюсь установить OpenCV 3.2 вместе с модулями от opencv_contrib на Ubuntu 16.04.«переменная среды OPENCV_TEST_DATA_PATH не указана» при установке OpenCV 3.2 с opencv_contib

Однако, когда я запускаю команду sudo make install, я получаю следующий результат:

➜ build git:(master) sudo make install 
-- Detected version of GNU GCC: 54 (504) 
-- FP16: Feature disabled 
-- Found ZLIB: /usr/lib64/libz.so (found suitable version "1.2.8", minimum required is "1.2.3") 
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.8") 
-- Looking for linux/videodev.h 
-- Looking for linux/videodev.h - not found 
-- Looking for linux/videodev2.h 
-- Looking for linux/videodev2.h - found 
-- Looking for sys/videoio.h 
-- Looking for sys/videoio.h - not found 
-- Checking for module 'libavresample' 
-- No package 'libavresample' found 
-- Checking for module 'libgphoto2' 
-- No package 'libgphoto2' found 
-- Found TBB: /usr/lib64/libtbb.so 
-- found IPP (ICV version): 9.0.1 [9.0.1] 
-- at: /home/denis/code/opencv/build/3rdparty/ippicv/ippicv_lnx 
-- CUDA detected: 8.0 
-- CUDA NVCC target flags: -gencode;arch=compute_20,code=sm_20;-gencode;arch=compute_30,code=sm_30;-gencode;arch=compute_35,code=sm_35;-gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_52,code=sm_52;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_61,code=sm_61;-D_FORCE_INLINES 
-- LAPACK_IMPL: OpenBLAS, LAPACK_LIBRARIES: /opt/OpenBLAS/lib/libopenblas.so 
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) 
-- Could NOT find Matlab (missing: MATLAB_MEX_SCRIPT MATLAB_INCLUDE_DIRS MATLAB_ROOT_DIR MATLAB_LIBRARIES MATLAB_LIBRARY_DIRS MATLAB_MEXEXT MATLAB_ARCH MATLAB_BIN) 
-- VTK is not found. Please set -DVTK_DIR in CMake to VTK build directory, or to VTK install subdirectory with VTKConfig.cmake file 
-- Caffe: NO 
-- Protobuf: YES 
-- Glog: YES 
-- freetype2: YES 
-- harfbuzz: YES 
-- Module opencv_sfm disabled because the following dependencies are not found: Eigen Glog/Gflags 
-- Assume that non-module dependency is available: freetype (for module opencv_freetype) 
-- Assume that non-module dependency is available: harfbuzz (for module opencv_freetype) 
CMake Error at /home/denis/code/opencv_contrib/modules/dnn/CMakeLists.txt:84 (message): 
    OPENCV_TEST_DATA_PATH environment variable was not specified 


-- Configuring incomplete, errors occurred! 
See also "/home/denis/code/opencv/build/CMakeFiles/CMakeOutput.log". 
See also "/home/denis/code/opencv/build/CMakeFiles/CMakeError.log". 
Makefile:10450: recipe for target 'cmake_check_build_system' failed 
make: *** [cmake_check_build_system] Error 1 

Дело в том, что я получаю довольно много ту же ошибку при попытке выполнить команду make -j8, а затем я добавлена ​​переменная окружения OPENCV_TEST_DATA_PATH моим ~/.bashrc и ~/.zshrc файлы так:

export OPENCV_TEST_DATA_PATH=/home/denis/code/opencv_extra/testdata 

Я скачал opencv_extra репо заранее. И ошибка исчезла! Я мог успешно выполнить команду make -j8.

Запустив команду make -j8, я попытался запустить команду sudo make install и получил вывод, который вы видите выше.

Эта переменная среды задается:

➜ build echo $OPENCV_TEST_DATA_PATH 
/home/denis/code/opencv_extra/testdata 

Таким образом, я не совсем уверен, что я должен сделать, чтобы правильно установить OpenCV.

PS: вот команда cmake я использовал:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_CUBLAS=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules .. 

Не могли бы вы помочь мне решить эту проблему?

ответ

3

Хорошо, поэтому ошибка указывала на строку 84 файла opencv_contrib/modules/dnn/CMakeLists.txt. Я изучил его и попытался прокомментировать всю вещь Generating test data for Torch importer (посмотрите на конец файла, представленного ниже).

Затем я снова попытался запустить sudo make install, и все работало как шарм.

Я не уверен, что происходило и что Факел имеет отношение к OpenCV, однако у меня есть Torch7, установленный на моей машине Ubuntu 16.04. Не уверен, что это как-то связано или нет, но комментировать это помогло.

Важно отметить, что при выполнении тех же самых действий на машине Ubuntu 14.04 (без установленного Torch7) ошибка не появилась вообще.


Ниже приводится содержание opencv_contrib/modules/dnn/CMakeLists.txt, который работал на меня:

cmake_minimum_required(VERSION 2.8) 

if(APPLE_FRAMEWORK OR WINRT 
    OR AARCH64 # protobuf doesn't know this platform 
) 
    ocv_module_disable(dnn) 
endif() 

set(the_description "Deep neural network module. It allows to load models from different frameworks and to make forward pass") 
set(OPENCV_MODULE_IS_PART_OF_WORLD OFF) 

ocv_add_module(dnn opencv_core opencv_imgproc WRAP python matlab) 
ocv_warnings_disable(CMAKE_CXX_FLAGS -Wno-shadow -Wno-parentheses -Wmaybe-uninitialized -Wsign-promo 
            -Wmissing-declarations -Wmissing-prototypes 
) 
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4701 /wd4100) 

if(MSVC) 
    add_definitions(-D_CRT_SECURE_NO_WARNINGS=1) 
    ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4244 /wd4267 /wd4018 /wd4355 /wd4800 /wd4251 /wd4996 /wd4146 
             /wd4305 /wd4127 /wd4100 /wd4512 /wd4125 /wd4389 /wd4510 /wd4610 
             /wd4702 /wd4456 /wd4457 /wd4065 /wd4310 /wd4661 /wd4506 
) 
else() 
    ocv_warnings_disable(CMAKE_CXX_FLAGS -Wno-deprecated -Wmissing-prototypes -Wmissing-declarations -Wshadow 
             -Wunused-parameter -Wunused-local-typedefs -Wsign-compare -Wsign-promo 
             -Wundef -Wtautological-undefined-compare -Wignored-qualifiers -Wextra 
             -Wunused-function -Wunused-const-variable -Wdeprecated-declarations 
) 
endif() 

if(ANDROID) 
    add_definitions(-DDISABLE_POSIX_MEMALIGN -DTH_DISABLE_HEAP_TRACKING) 
endif() 

# ---------------------------------------------------------------------------- 
# Resolve libprotobuf dependency 
# ---------------------------------------------------------------------------- 
include(cmake/OpenCVFindLibProtobuf.cmake) 
ocv_source_group("Src\\protobuf" FILES ${PROTOBUF_SRCS} ${PROTOBUF_HDRS}) 
ocv_module_include_directories(include ${PROTOBUF_INCLUDE_DIR}) 

ocv_glob_module_sources(${PROTOBUF_SRCS} ${PROTOBUF_HDRS} ${CBLAS_H_PROXY_PATH}) 
ocv_create_module(${PROTOBUF_LIBRARIES}) 
ocv_add_samples() 
ocv_add_accuracy_tests() 
ocv_add_perf_tests() 

# ---------------------------------------------------------------------------- 
# Download pre-trained models for complex testing on GoogLeNet and AlexNet 
# ---------------------------------------------------------------------------- 
OCV_OPTION(${the_module}_DOWNLOAD_CAFFE_MODELS "Use GoogLeNet Caffe model for testing" OFF IF BUILD_TESTS AND DEFINED ENV{OPENCV_TEST_DATA_PATH}) 
if(BUILD_TESTS AND DEFINED ENV{OPENCV_TEST_DATA_PATH} AND (DOWNLOAD_EXTERNAL_TEST_DATA OR ${the_module}_DOWNLOAD_CAFFE_MODELS)) 
    add_custom_command(TARGET opencv_test_${name} POST_BUILD 
         COMMAND ${CMAKE_COMMAND} -Dmodel=GoogleNet -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_model.cmake) 
    add_definitions(-DENABLE_CAFFE_MODEL_TESTS=1) 
endif() 

# ---------------------------------------------------------------------------- 
# Torch7 importer of blobs and models, produced by Torch.nn module 
# ---------------------------------------------------------------------------- 
OCV_OPTION(${the_module}_BUILD_TORCH_IMPORTER "Build Torch model importer" ON) 
if(${the_module}_BUILD_TORCH_IMPORTER) 
    add_definitions(-DENABLE_TORCH_IMPORTER=1) 
    ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4702 /wd4127 /wd4267) #supress warnings in original torch files 

    if(NOT DEFINED HAVE_TORCH_EXE) 
     execute_process(COMMAND th ${CMAKE_CURRENT_SOURCE_DIR}/testdata/dnn/torch/torch_nn_echo.lua RESULT_VARIABLE TORCH_EXE_STATUS) 
     set(HAVE_TORCH_EXE OFF) 
     if(${TORCH_EXE_STATUS} EQUAL 0) 
      set(HAVE_TORCH_EXE ON) 
     endif() 
     set(HAVE_TORCH_EXE ${HAVE_TORCH_EXE} CACHE INTERNAL "Have torch binary") 
    endif() 
endif() 

# ---------------------------------------------------------------------------- 
# Generating test data for Torch importer 
# ---------------------------------------------------------------------------- 
# OCV_OPTION(${the_module}_BUILD_TORCH_TESTS "Build Torch tests (installed torch7 with nn module is required)" ON IF BUILD_TESTS AND ${the_module}_BUILD_TORCH_IMPORTER AND HAVE_TORCH_EXE) 
# if(${the_module}_BUILD_TORCH_TESTS) 
# 
#  if(NOT DEFINED ENV{OPENCV_TEST_DATA_PATH}) 
#   message(FATAL_ERROR "OPENCV_TEST_DATA_PATH environment variable was not specified") 
#  endif() 
# 
#  if(NOT HAVE_TORCH_EXE) 
#   message(FATAL_ERROR "Torch executable \"th\" not found or nn module not found") 
#  endif() 
# 
#  add_custom_command(TARGET opencv_test_${name} POST_BUILD 
#       COMMAND th ${CMAKE_CURRENT_SOURCE_DIR}/testdata/dnn/torch/torch_gen_test_data.lua 
#       WORKING_DIRECTORY $ENV{OPENCV_TEST_DATA_PATH}/dnn/torch) 
#  add_definitions(-DENABLE_TORCH_TESTS=1) 
# endif()