linux下让自己的程序调用caffe库

来源:互联网 发布:php网站密码破解 编辑:程序博客网 时间:2024/05/17 02:31

简单的说,caffe并不像opencv那样。有个官方的例程,可以让小伙伴们方便的入手。正因为如此,本文将详细讲解如何在linux下在自己写的工程中调用caffe库。

 

本文测试平台Ubuntu14.04+corei7+TitanX

方式1

如果自己的caffe是用CMakeLists编译安装的,那么就会在/usr/local/lib/cmake/下方生成相应的.cmake的配置文件,这样在其他程序调用CMakeLists的时候就可以,就可以根据这些.cmake文件来找到需要调用的库。

这样的话,可以运行如下的CMakeLists来编译自己的调用了caffe库的程序

cmake_minimum_required(VERSION 2.8)find_package(Caffe)include_directories(${Caffe_INCLUDE_DIRS})add_definitions(${Caffe_DEFINITIONS}) add_executable(caffeinated_application main.cpp)target_link_libraries(caffeinated_application ${Caffe_LIBRARIES})

只调用opencv的CMakeLists

cmake_minimum_required (VERSION 2.8) PROJECT(main)# Requires OpenCV v2.4.1 or laterFIND_PACKAGE( OpenCV REQUIRED )IF (${OpenCV_VERSION} VERSION_LESS 2.4.1)    MESSAGE(FATAL_ERROR "OpenCV version is not compatible : ${OpenCV_VERSION}. requires atleast OpenCV v2.4.1")ENDIF()SET(SRC    main.cpp)ADD_EXECUTABLE( ${PROJECT_NAME} ${SRC} )TARGET_LINK_LIBRARIES( ${PROJECT_NAME}  ${OpenCV_LIBS} )

方式2

很不巧,自己的caffe是根据Makefile.config编译的,那么这时候就需要自己指定相应的库的路径了,CMakeLists如下,其中opencv调用的库根据自己的需要添加,将cafferoot替换为自己的caffe根目录,opencvroot替换为自己的opencv根目录

cmake_minimum_required (VERSION 2.8)project (classification)add_executable(classification classification.cpp)include_directories ( /cafferoot/include    /usr/local/include    /usr/local/cuda/include )target_link_libraries(classification / cafferoot /build/lib/libcaffe.so    /opencvroot /build/lib/libopencv_highgui.so    / opencvroot /build/lib/libopencv_core.so    / opencvroot /build/lib/libopencv_imgproc.so    /usr/local/lib/libglog.so/usr/lib/x86_64-linux-gnu/libboost_system.so    )

实验测试:

为了测试刚才的CMakeLists的可行性,本文对caffe自带的cafferoot/examples/cpp_classification/(cafferoot为自己电脑的caffe安装的根目录)下面的classification.cpp进行编译,生成相应的exe。

cd cafferoot/examples/cpp_classification/mkdir buildcd buildcmake ..makels


1 0
原创粉丝点击