【目标检测】Ubuntu版本Darknet编译+libdarknet.a静态链接库和libdarknet.so动态链接库调用+VMware 12.0.1+Opencv3.4.1

在Ubuntu16.04 LTS系统上编译Opencv3.4.1和Darknet

电脑是x86_64架构的,如果要用在树莓派那种arm架构电脑上的话,可以参考:

【树莓派3B上测试YOLO效果】http://www.360doc.com/content/17/0909/23/27698033_685865660.shtml

 

1.VMware 12.0.1+Ubuntu16.04 LTS的安装

参考:【虚拟机安装Ubuntu 16.04.5 图解】https://blog.csdn.net/qq1326702940/article/details/82322079

方便又快捷!双系统安装很快很爽,

但是如果只有一台电脑,系统之间切换,或者文件传输就很麻烦了,所以还是老实点用虚拟机吧

 

2.Opencv3.4.1编译

参考:【ubuntu16.04安装opencv3.4.1教程】https://blog.csdn.net/cocoaqin/article/details/78163171

可以手动下载 ippicv_2017u3_lnx_intel64_general_20170822.tgz,

详细参考https://blog.csdn.net/u010739369/article/details/79966263

 

3.Darknet编译

darknet的编译可以说简单到三行命令行你就可以带回家

直接看【官网】https://pjreddie.com/darknet/yolo/

里面就有很好的编译说明

首先是下载darknet项目

git clone https://github.com/pjreddie/darknet

然后根据实际情况修改makefile

我没有用到GPU,所以GPU=0

OPENCV=1 

GPU=0

最后

make

编译好的darknet文件夹长这个样子

【目标检测】Ubuntu版本Darknet编译+libdarknet.a静态链接库和libdarknet.so动态链接库调用+VMware 12.0.1+Opencv3.4.1_第1张图片

4.C++应用中调用darknet进行目标检测

说白了就是对libdarknet.a静态链接库和libdarknet.so动态链接库调用

参考:【C++应用中调用YOLOv3(darknet)进行目标检测】https://blog.csdn.net/weixin_33860450/article/details/84890877

这位博主给出了非常棒的源码,就差一份CMakeLists.txt 

这里就贴出来造福大家

# cmake needs this line
cmake_minimum_required(VERSION 2.8)

# Enable C++11
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
set(ROOT_DIR /home/leon/test_libdarknet)
# Define project name
project(test_libdarknet)

# Find OpenCV, you may need to set OpenCV_DIR variable
# to the absolute path to the directory containing OpenCVConfig.cmake file
# via the command line or GUI
find_package(OpenCV REQUIRED) 
find_package(Threads REQUIRED)
 
include_directories( ${OpenCV_INCLUDE_DIRS} )  
# Declare the executable target built from your sources
add_executable(test_libdarknet main.cpp improcess.cpp)

include_directories(${ROOT_DIR})
# Link your application with OpenCV libraries
target_link_libraries(test_libdarknet ${OpenCV_LIBS})
target_link_libraries(test_libdarknet ${ROOT_DIR}/libdarknet.a ${ROOT_DIR}/libdarknet.so)

target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})

这里贴出我在写CMakeLists.txt的时候遇到的一些问题

【undefined reference to symbol 'pthread_sigmask@@GLIBC_2.2.5' 解决方法】https://blog.csdn.net/DONGHUIB/article/details/82824011

 

最后贴一张图,祝大家幸福快乐!

【目标检测】Ubuntu版本Darknet编译+libdarknet.a静态链接库和libdarknet.so动态链接库调用+VMware 12.0.1+Opencv3.4.1_第2张图片

你可能感兴趣的:(目标检测)