Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

No Format
The following needed to be done with openCV to make it compile on RGEL/Centos 6.5
 - Try to find OpenCV (using pkg-config)
cd /sw/caffe/caffe-master/cmake/Modules
vi FindOpenCV.cmake
<<<<<<

#
# If OpenCV was installed in a non-defaul location, set OpenCV_DIR
#
# Once done, this will define
#
#  OpenCV_FOUND - system has OpenCV
#  OpenCV_INCLUDE_DIRS - the OpenCV include directories
#  OpenCV_LIBRARIES - link these to use OpenCV
#  OpenCV_LIBRARY_DIRS - the OpenCV library directories
#
# Created: 10 Jan 2012 by bermaw (bermaw at gmail.com)

SET("OpenCV_DIR" "/sw/opencv/opencv-3.1.0")
SET(ENV{PKG_CONFIG_PATH} ${OpenCV_DIR}/lib/pkgconfig)
FIND_PACKAGE(PkgConfig REQUIRED)
pkg_check_modules(OpenCV REQUIRED opencv)

#--- OpenCV (with pkgconfig)
find_package(PkgConfig REQUIRED)
pkg_check_modules(OPENCV REQUIRED opencv)
# https://bugs.freedesktop.org/show_bug.cgi?id=82245
# list(APPEND LIBRARIES ${OPENCV_LIBRARIES})
list(APPEND LIBRARIES ${OPENCV_LDFLAGS})
message(STATUS LIBS ${OPENCV_VERSION})
include_directories(${OPENCV_INCLUDE_DIRS})


>>>>>>>>>>>>>>>>>



Here is the module file for opencv which included 3rdParty Software
No Format


module display opencv/3.1.0
-------------------------------------------------------------------
/sw/com/modulefiles/opencv/3.1.0:

setenv         OpenCV_DIR /sw/opencv/opencv-3.1.0
setenv         OPENCV_INCLUDE_INSTALL_PATH /sw/opencv/opencv-3.1.0/include
setenv         OpenCV_LIB_PATH /sw/opencv/opencv-3.1.0/lib
setenv         OpenCV_INCLUDE_DIRS /sw/opencv/opencv-3.1.0/include:/sw/opencv/opencv-3.1.0/include/opencv:/sw/opencv/opencv-3.1.0/include/opencv2
prepend-path     MANPATH /sw/opencv/opencv-3.1.0/share/OpenCV
prepend-path     LIBRARY_PATH /sw/opencv/opencv-3.1.0/3rdparty/ippicv/unpack/ippicv_lnx/lib/intel64:/sw/opencv/opencv-3.1.0/lib:/sw/opencv/opencv-3.1.0/lib/pkgconfig
prepend-path     FPATH /sw/opencv/opencv-3.1.0/include:/sw/opencv/opencv-3.1.0/3rdparty/include/opencl/1.2/CL:/sw/opencv/opencv-3.1.0/3rdparty/include:/sw/opencv/opencv-3.1.0/3rdparty/include/dshow:/sw/opencv/opencv-3.1.0/3rdparty/ippicv/unpack/ippicv_lnx/include:/sw/opencv/opencv-3.1.0/3rdparty/libjasper:/sw/opencv/opencv-3.1.0/3rdparty/libjasper/jasper:/sw/opencv/opencv-3.1.0/3rdparty/libjpeg:/sw/opencv/opencv-3.1.0/3rdparty/libpng:/sw/opencv/opencv-3.1.0/3rdparty/libtiff:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/cpu-features:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/dec:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/dsp:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/enc:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/mux:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/utils:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/webp:/sw/opencv/opencv-3.1.0/3rdparty/openexr/Half:/sw/opencv/opencv-3.1.0/3rdparty/openexr/IlmThread:/sw/opencv/opencv-3.1.0/3rdparty/openexr/Iex:/sw/opencv/opencv-3.1.0/3rdparty/openexr/IlmImf:/sw/opencv/opencv-3.1.0/3rdparty/openexr/Imath:/sw/opencv/opencv-3.1.0/3rdparty/tbb:/sw/opencv/opencv-3.1.0/3rdparty/zlib
prepend-path     LD_LIBRARY_PATH /sw/opencv/opencv-3.1.0/3rdparty/ippicv/unpack/ippicv_lnx/lib/intel64:/sw/opencv/opencv-3.1.0/lib
prepend-path     CPATH /sw/opencv/opencv-3.1.0/include:/sw/opencv/opencv-3.1.0/include/opencv:/sw/opencv/opencv-3.1.0/include/opencv2:/sw/opencv/opencv-3.1.0/3rdparty/include/opencl/1.2/CL:/sw/opencv/opencv-3.1.0/3rdparty/include:/sw/opencv/opencv-3.1.0/3rdparty/include/dshow:/sw/opencv/opencv-3.1.0/3rdparty/ippicv/unpack/ippicv_lnx/include:/sw/opencv/opencv-3.1.0/3rdparty/libjasper:/sw/opencv/opencv-3.1.0/3rdparty/libjasper/jasper:/sw/opencv/opencv-3.1.0/3rdparty/libjpeg:/sw/opencv/opencv-3.1.0/3rdparty/libpng:/sw/opencv/opencv-3.1.0/3rdparty/libtiff:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/cpu-features:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/dec:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/dsp:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/enc:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/mux:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/utils:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/webp:/sw/opencv/opencv-3.1.0/3rdparty/openexr/Half:/sw/opencv/opencv-3.1.0/3rdparty/openexr/IlmThread:/sw/opencv/opencv-3.1.0/3rdparty/openexr/Iex:/sw/opencv/opencv-3.1.0/3rdparty/openexr/IlmImf:/sw/opencv/opencv-3.1.0/3rdparty/openexr/Imath:/sw/opencv/opencv-3.1.0/3rdparty/tbb:/sw/opencv/opencv-3.1.0/3rdparty/zlib
prepend-path     C_INCLUDE_PATH /sw/opencv/opencv-3.1.0/include:/sw/opencv/opencv-3.1.0/include/opencv:/sw/opencv/opencv-3.1.0/include/opencv2:/sw/opencv/opencv-3.1.0/3rdparty/include/opencl/1.2/CL:/sw/opencv/opencv-3.1.0/3rdparty/include:/sw/opencv/opencv-3.1.0/3rdparty/include/dshow:/sw/opencv/opencv-3.1.0/3rdparty/ippicv/unpack/ippicv_lnx/include:/sw/opencv/opencv-3.1.0/3rdparty/libjasper:/sw/opencv/opencv-3.1.0/3rdparty/libjasper/jasper:/sw/opencv/opencv-3.1.0/3rdparty/libjpeg:/sw/opencv/opencv-3.1.0/3rdparty/libpng:/sw/opencv/opencv-3.1.0/3rdparty/libtiff:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/cpu-features:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/dec:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/dsp:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/enc:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/mux:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/utils:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/webp:/sw/opencv/opencv-3.1.0/3rdparty/openexr/Half:/sw/opencv/opencv-3.1.0/3rdparty/openexr/IlmThread:/sw/opencv/opencv-3.1.0/3rdparty/openexr/Iex:/sw/opencv/opencv-3.1.0/3rdparty/openexr/IlmImf:/sw/opencv/opencv-3.1.0/3rdparty/openexr/Imath:/sw/opencv/opencv-3.1.0/3rdparty/tbb:/sw/opencv/opencv-3.1.0/3rdparty/zlib
prepend-path     CPLUS_INCLUDE_PATH /sw/opencv/opencv-3.1.0/include:/sw/opencv/opencv-3.1.0/include/opencv:/sw/opencv/opencv-3.1.0/include/opencv2:/sw/opencv/opencv-3.1.0/3rdparty/include/opencl/1.2/CL:/sw/opencv/opencv-3.1.0/3rdparty/include:/sw/opencv/opencv-3.1.0/3rdparty/include/dshow:/sw/opencv/opencv-3.1.0/3rdparty/ippicv/unpack/ippicv_lnx/include:/sw/opencv/opencv-3.1.0/3rdparty/libjasper:/sw/opencv/opencv-3.1.0/3rdparty/libjasper/jasper:/sw/opencv/opencv-3.1.0/3rdparty/libjpeg:/sw/opencv/opencv-3.1.0/3rdparty/libpng:/sw/opencv/opencv-3.1.0/3rdparty/libtiff:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/cpu-features:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/dec:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/dsp:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/enc:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/mux:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/utils:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/webp:/sw/opencv/opencv-3.1.0/3rdparty/openexr/Half:/sw/opencv/opencv-3.1.0/3rdparty/openexr/IlmThread:/sw/opencv/opencv-3.1.0/3rdparty/openexr/Iex:/sw/opencv/opencv-3.1.0/3rdparty/openexr/IlmImf:/sw/opencv/opencv-3.1.0/3rdparty/openexr/Imath:/sw/opencv/opencv-3.1.0/3rdparty/tbb:/sw/opencv/opencv-3.1.0/3rdparty/zlib
prepend-path     INCLUDE /sw/opencv/opencv-3.1.0/include:/sw/opencv/opencv-3.1.0/include/opencv:/sw/opencv/opencv-3.1.0/include/opencv2:/sw/opencv/opencv-3.1.0/3rdparty/include/opencl/1.2/CL:/sw/opencv/opencv-3.1.0/3rdparty/include:/sw/opencv/opencv-3.1.0/3rdparty/include/dshow:/sw/opencv/opencv-3.1.0/3rdparty/ippicv/unpack/ippicv_lnx/include:/sw/opencv/opencv-3.1.0/3rdparty/libjasper:/sw/opencv/opencv-3.1.0/3rdparty/libjasper/jasper:/sw/opencv/opencv-3.1.0/3rdparty/libjpeg:/sw/opencv/opencv-3.1.0/3rdparty/libpng:/sw/opencv/opencv-3.1.0/3rdparty/libtiff:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/cpu-features:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/dec:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/dsp:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/enc:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/mux:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/utils:/sw/opencv/opencv-3.1.0/3rdparty/libwebp/webp:/sw/opencv/opencv-3.1.0/3rdparty/openexr/Half:/sw/opencv/opencv-3.1.0/3rdparty/openexr/IlmThread:/sw/opencv/opencv-3.1.0/3rdparty/openexr/Iex:/sw/opencv/opencv-3.1.0/3rdparty/openexr/IlmImf:/sw/opencv/opencv-3.1.0/3rdparty/openexr/Imath:/sw/opencv/opencv-3.1.0/3rdparty/tbb:/sw/opencv/opencv-3.1.0/3rdparty/zlib
prepend-path     PATH /sw/opencv/opencv-3.1.0/bin:/sw/opencv/opencv-3.1.0/share/OpenCV/:/sw/opencv/opencv-3.1.0/cmake
prepend-path     PKG_CONFIG_PATH /sw/opencv/opencv-3.1.0/lib/pkgconfig
-------------------------------------------------------------------


 

Check the version of openCV

No Format
module load opencv/3.1.0
pkg-config --modversion opencv
pkg-config --static --libs opencv
pkg-config --cflags --libs opencv

 

 

 

Protobuf Issue

No Format
vi /sw/caffe/caffe-master/cmake/Modules/FindProtobuf.cmake
# Locate and configure the Google Protocol Buffers library.
# Defines the following variables:
#
#   PROTOBUF_FOUND - Found the Google Protocol Buffers library
#   PROTOBUF_INCLUDE_DIRS - Include directories for Google Protocol Buffers
#   PROTOBUF_LIBRARIES - The protobuf library
#
# The following cache variables are also defined:
#   PROTOBUF_LIBRARY - The protobuf library
#   PROTOBUF_PROTOC_LIBRARY   - The protoc library
#   PROTOBUF_INCLUDE_DIR - The include directory for protocol buffers
#   PROTOBUF_PROTOC_EXECUTABLE - The protoc compiler
#
#  ====================================================================
#  Example:
#
#   find_package(Protobuf REQUIRED)
#   include_directories(${PROTOBUF_INCLUDE_DIRS})
#
#   include_directories(${CMAKE_CURRENT_BINARY_DIR})
#   PROTOBUF_GENERATE_CPP(PROTO_SRCS PROTO_HDRS foo.proto)
#   add_executable(bar bar.cc ${PROTO_SRCS} ${PROTO_HDRS})
#   target_link_libraries(bar ${PROTOBUF_LIBRARY})
#
# NOTE: You may need to link against pthreads, depending
# on the platform.
#  ====================================================================
#
# PROTOBUF_GENERATE_CPP (public function)
#   SRCS = Variable to define with autogenerated
#          source files
#   HDRS = Variable to define with autogenerated
#          header files
#   ARGN = proto files
#
#  ====================================================================


#=============================================================================
# Copyright 2009 Kitware, Inc.
# Copyright 2009 Philip Lowman <philip@yhbt.com>
# Copyright 2008 Esben Mose Hansen, Ange Optimization ApS
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distributed this file outside of CMake, substitute the full
#  License text for the above reference.)

function(PROTOBUF_GENERATE_CPP SRCS HDRS)
  if(NOT ARGN)
    message(SEND_ERROR "Error: PROTOBUF_GENERATE_CPP() called without any proto files")
    return()
  endif(NOT ARGN)

  set(${SRCS})
  set(${HDRS})
  foreach(FIL ${ARGN})
    get_filename_component(ABS_FIL ${FIL} ABSOLUTE)
    get_filename_component(FIL_WE ${FIL} NAME_WE)

    list(APPEND ${SRCS} "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.cc")
    list(APPEND ${HDRS} "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.h")

    add_custom_command(
      OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.cc"
             "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.h"
      COMMAND  ${PROTOBUF_PROTOC_EXECUTABLE}
      ARGS --cpp_out  ${CMAKE_CURRENT_BINARY_DIR} --proto_path ${CMAKE_CURRENT_SOURCE_DIR} ${ABS_FIL}
      DEPENDS ${ABS_FIL}
      COMMENT "Running C++ protocol buffer compiler on ${FIL}"
      VERBATIM )
  endforeach()

  set_source_files_properties(${${SRCS}} ${${HDRS}} PROPERTIES GENERATED TRUE)
  set(${SRCS} ${${SRCS}} PARENT_SCOPE)
  set(${HDRS} ${${HDRS}} PARENT_SCOPE)
endfunction()


find_path(PROTOBUF_INCLUDE_DIR google/protobuf/service.h)

# Google's provided vcproj files generate libraries with a "lib"
# prefix on Windows
if(WIN32)
    set(PROTOBUF_ORIG_FIND_LIBRARY_PREFIXES "${CMAKE_FIND_LIBRARY_PREFIXES}")
    set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "")
endif()

find_library(PROTOBUF_LIBRARY NAMES protobuf
             DOC "The Google Protocol Buffers Library"
)
find_library(PROTOBUF_PROTOC_LIBRARY NAMES protoc
             DOC "The Google Protocol Buffers Compiler Library"
)
find_program(PROTOBUF_PROTOC_EXECUTABLE NAMES protoc
             DOC "The Google Protocol Buffers Compiler"
)

mark_as_advanced(PROTOBUF_INCLUDE_DIR
                 PROTOBUF_LIBRARY
                 PROTOBUF_PROTOC_LIBRARY
                 PROTOBUF_PROTOC_EXECUTABLE)

# Restore original find library prefixes
if(WIN32)
    set(CMAKE_FIND_LIBRARY_PREFIXES "${PROTOBUF_ORIG_FIND_LIBRARY_PREFIXES}")
endif()

include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(PROTOBUF DEFAULT_MSG
    PROTOBUF_LIBRARY PROTOBUF_INCLUDE_DIR)

if(PROTOBUF_FOUND)
    set(PROTOBUF_INCLUDE_DIRS ${PROTOBUF_INCLUDE_DIR})
    set(PROTOBUF_LIBRARIES    ${PROTOBUF_LIBRARY})
endif()


...

No Format
vi /sw/caffe/caffe-master/CMakeLists.txt
#Indy
Add the following at the bottom
>>>>>>
#target_link_libraries(filters ${OpenCV_LIBRARIES})
FIND_PACKAGE(OpenCV REQUIRED)
FIND_PACKAGE(Protobuf REQUIRED)
>>>>>>>>
Also edit: vi /sw/caffe/caffe-master/src/caffe/CMakeLists.txt
Added ${OpenCV_LIBRARIES} as in:
target_link_libraries(caffe proto ${Caffe_LINKER_LIBS} ${OpenCV_LIBRARIES})
>>>>>>

 

 

 

No Format
cd /sw/caffe/caffe-master/build
cmake -D CMAKE_INSTALL_PREFIX=/sw/caffe/caffe-master -DBUILD_SHARED_LIBS=ON -DAtlas_LAPACK_LIBRARY=/sw/library/atlas/3.10.2/lib/liblapack.so -DBUILD_matlab=ON -DMATLAB_DIR=/sw/Matlab/R2015b -DMatlab_mexext=/sw/Matlab/R2015b/toolbox/matlab/general -DMatlab_mex=/sw/Matlab/R2015b/toolbox/matlab/general -DOpenCV_DIR=/sw/opencv/opencv-3.1.0 -DOctave_DIR=/sw/octave/3.8.0  -DCUDNN_INCLUDE="/sw/cuda/cuda_7.5.18/include" -DCUDNN_LIBRARY="/sw/cuda/cuda_7.5.18/lib64/libcudnn.so" -DPROTOBUF_LIBRARY=/sw/caffe/protobuf/lib/libprotobuf.so  .. 2>&1 | tee cmakelog.txt

make
make install

...