basic版本的yolo,在yolov3版本上增加人体跟踪
编辑 | blame | 历史 | 原始文档
cmake_minimum_required(VERSION 3.5)

SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGPU -DCUDNN -DOPENCV -g -std=c++11 -W  -pthread")
set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -DGPU -DCUDNN -DOPENCV -g -std=c++11 -W")
project(yolo_tracking)
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/build)

set(CMAKE_CXX_STANDARD 11)
#set(CMAKE_BUILD_TYPE debug)
add_compile_options(-fPIC -g -Wall  -Wshadow -Wno-sign-compare -w)
#add_definitions(-DDEBUG_ERR -DDEBUG_INFO)
#add_definitions(-DDEBUG)
#add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)


file(GLOB_RECURSE CURRENT_HEADERS
  ./*.h
  ./lib/*.h
  ./lib/core/*.h
  ./lib/tracker_tools/*.h
  ./lib/encoder_tools/*.h
  ./lib/detecter_tools/*.h
  ./lib/detecter_tools/extra/*.h
  ./lib/Munkres_assign/*.h
  ./lib/utils/*.h
  ./lib/detecter_tools/*.hpp
  ./lib/detecter_tools/*.cuh
  ./lib/detecter_tools/darknet/*.hpp
  ./lib/detecter_tools/darknet/*.cuh)

file(GLOB sources
#./*.cpp
./h_interface.cpp
./lib/*.cpp
./lib/core/*.cpp
./lib/tracker_tools/*.cpp
./lib/encoder_tools/*.cpp
./lib/detecter_tools/*.cpp
./lib/Munkres_assign/*.cpp
./lib/utils/*.cpp
./lib/detecter_tools/*.cpp
./lib/detecter_tools/darknet/*.c
./lib/detecter_tools/darknet/*.cpp
./lib/detecter_tools/darknet/*.cu)


#foreach(s range ${sources})
#message(${s})
#endforeach()


source_group("Include" FILES ${CURRENT_HEADERS}) 
source_group("Source" FILES ${sources}) 


#cudaS
find_package(CUDA REQUIRED)

message("-- CUDA version:$(CUDA_VERSION)")

if(CUDA_VERSION_MAJOR GREATER 9)
        message("-- CUDA ${CUDA_VERSION_MAJOR} detected")
        set(
                CUDA_NVCC_FLAGS
                ${CUDA_NVCC_FLAGS}; 
                -gencode arch=compute_61,code=sm_61 # 不同GPU有不同的算力指数,可查看算力表ls
                ls

        )
        set(CUDA_NVCC_FLAGS_RELWITHDEBINFO "--device-debug;-lineinfo")
#find_package(OpenCV REQUIRED) # 查找系统的默认opencv环境
#message(${OpenCV_LIBS})
endif()


set(TENSORFLOW_DIR /home/disk1/s_opt/tensorflow/tensorflow-1.14.0)

link_directories(/usr/local/cuda-10.0/lib64)
#link_directories(/usr/local/lib)

SET(LIBS
        opencv_core
        opencv_highgui
       # opencv_imgcodecs
       opencv_imgproc
        #opencv_videoio
        opencv_video
        tensorflow_cc
        tensorflow_framework   
        cudart
        cublas     
	       stdc++fs
        curand
        cuda
        cudnn
        )

include_directories(
        ${CMAKE_CURRENT_SOURCE_DIR}
        /home/disk1/s_opt/tensorflow/tensorflow-1.14.0
        /home/disk1/s_opt/tensorflow/tensorflow-1.14.0/bazel-genfiles
        /home/disk1/s_opt/tensorflow/tensorflow-1.14.0/bazel-bin/tensorflow
        /home/disk1/s_opt/tensorflow/tensorflow-1.14.0/tensorflow/contrib/makefile/downloads/nsync/public
        /home/disk1/s_opt/tensorflow/tensorflow-1.14.0/tensorflow/contrib/makefile/downloads/eigen
        /home/disk1/s_opt/tensorflow/tensorflow-1.14.0/tensorflow/contrib/makefile/downloads/absl
        /home/disk1/s_opt/tensorflow/tensorflow-1.14.0/tensorflow/contrib/makefile/downloads/protobuf/src
)
include_directories(/usr/local/cuda/include)
include_directories(".")
include_directories("./lib")
include_directories("./lib/core")
include_directories("./lib/detecter_tools")
include_directories("./lib/encoder_tools")
include_directories("./lib/Munkres_assign")
include_directories("./lib/tracker_tools")
include_directories("./lib/utils")
include_directories("./lib/Munkres_assign/munkres")
include_directories("/usr/include")

link_directories(${TENSORFLOW_DIR}/tensorflow/contrib/makefile/downloads/nsync/builds/default.linux.c++11)
link_directories(${TENSORFLOW_DIR}/bazel-bin/tensorflow)
#link_directories(/usr/local/lib)
link_directories(/usr/local/cuda/lib64)
link_directories(/usr/lib/x86_64-linux-gnu/)


cuda_add_library(${PROJECT_NAME} SHARED ${sources} ${CURRENT_HEADERS})


target_link_libraries(${PROJECT_NAME}   ${LIBS})