2017-01-11 33 views
5

Tôi đang cố gắng cài đặt OpenCV 3.2 cùng với các mô-đun từ opencv_contrib trên Ubuntu 16.04."Biến môi trường OPENCV_TEST_DATA_PATH không được chỉ định" khi cài đặt OpenCV 3.2 với opencv_contib

Tuy nhiên, khi tôi chạy lệnh sudo make install, tôi nhận được kết quả như sau:

➜ 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 

Cái này là tôi đã nhận được khá nhiều lỗi tương tự khi cố gắng chạy lệnh make -j8 và sau đó tôi đã thêm biến môi trường để OPENCV_TEST_DATA_PATH~/.bashrc~/.zshrc tôi file như thế này:

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

tôi đã tải về opencv_extra repo trước. Và lỗi đã biến mất! Tôi có thể chạy thành công lệnh make -j8.

Sau khi chạy lệnh make -j8, sau đó tôi đã cố chạy lệnh sudo make install và nhận kết quả bạn nhìn thấy ở trên.

biến môi trường này được xác định:

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

Vì vậy, tôi không hoàn toàn chắc chắn những gì tôi nên làm gì để cài đặt OpenCV một cách chính xác.

PS: đây là lệnh cmake tôi đã sử dụng:

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 .. 

Ông có thể vui lòng giúp tôi giải quyết vấn đề đó?

Trả lời

3

OK, do đó, lỗi được trỏ đến dòng 84 của tệp opencv_contrib/modules/dnn/CMakeLists.txt. Tôi đã kiểm tra nó và cố gắng để bình luận ra toàn bộ điều Generating test data for Torch importer (nhìn vào cuối của tập tin được cung cấp dưới đây).

Sau đó, tôi đã cố gắng chạy lại sudo make install và mọi thứ hoạt động như một sự quyến rũ.

Tôi không chắc điều gì đang xảy ra và Torch phải làm gì với OpenCV, tuy nhiên tôi đã cài đặt Torch7 trên máy tính Ubuntu 16.04 của mình. Bạn không chắc chắn nếu nó được kết nối bằng cách nào đó hay không, nhưng bình luận những điều đã giúp.

Điều quan trọng cần lưu ý là khi thực hiện chính xác các bước tương tự trên máy Ubuntu 14.04 (không cài đặt Torch7), lỗi này hoàn toàn không xuất hiện.


Dưới đây là nội dung của opencv_contrib/modules/dnn/CMakeLists.txt mà làm việc cho tôi:

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() 
Các vấn đề liên quan