Windows系统下YOLO动态链接库的封装和调用
Windows10+VS2015+OpenCV3.4.1+CUDA8.0+cuDNN8.0
参考教程 https://blog.csdn.net/stjuliet/article/details/87884976
承接上一篇文章所做工作,这篇文章进一步讲述如何将YOLO封装成动态链接库以方便后续目标检测时直接调用。
关于动态链接库的介绍:
https://www.cnblogs.com/chechen/p/8676226.html
https://www.jianshu.com/p/458f87251b3d?tdsourcetag=s_pctim_aiomsg
step1 运行环境和前期准备
与上一篇文章所需环境完全一致,具体可参考:
https://blog.csdn.net/stjuliet/article/details/87731998
配置opecv3.4.1 cuda8.0以及配套cudnn
step2 编译动态链接库
1、下载Darknet源代码:
https://github.com/AlexeyAB/darknet
2、
(1)下载解压后,进入darknet-master->build->darknet目录:
(2)打开yolo_cpp_dll.vcxproj文件,将具有CUDA的版本改成自己使用的版本(默认为10.0),一共有两处,分别在55行和302行
(3)打开yolo_cpp_dll.sln文件,在属性管理器中配置包含目录、库目录、附加依赖项(和OpenCV环境配置一样),特别注意要将CUDA设备中的Generation改成自己显卡对应的计算能力(默认添加了35和75两项,可能不是你的显卡的计算能力,可以去英伟达显卡官网查询计算能力:https://developer.nvidia.com/cuda-gpus#collapseOne)
,否则接下来的生成会出错。
(4)分别设置Debug/Release - x64,右键项目->生成,成功后在darknet-master\build\darknet\x64目录下找到生成的yolo_cpp_dll.lib和yolo_cpp_dll.dll两个文件。
step3 调用动态链接库
一、至此所有准备工作已经完成,首先将调用所需的所有文件找出来:
1、动态链接库(均在darknet-master\build\darknet\x64目录下)
(1)yolo_cpp_dll.lib
(2)yolo_cpp_dll.dll
(3)pthreadGC2.dll
(4)pthreadVC2.dll
2、OpenCV库(取决于使用debug还是release模式)
(1)opencv_world340d.dll
(2)opencv_world340.dll
如果是扩展库需要
opencv_aruco341.lib
opencv_bgsegm341.lib
opencv_bioinspired341.lib
opencv_calib3d341.lib
opencv_ccalib341.lib
opencv_core341.lib
opencv_cudaarithm341.lib
opencv_cudabgsegm341.lib
opencv_cudacodec341.lib
opencv_cudafeatures2d341.lib
opencv_cudafilters341.lib
opencv_cudaimgproc341.lib
opencv_cudalegacy341.lib
opencv_cudaobjdetect341.lib
opencv_cudaoptflow341.lib
opencv_cudastereo341.lib
opencv_cudawarping341.lib
opencv_cudev341.lib
opencv_datasets341.lib
opencv_dnn341.lib
opencv_dnn_objdetect341.lib
opencv_dpm341.lib
opencv_face341.lib
opencv_features2d341.lib
opencv_flann341.lib
opencv_fuzzy341.lib
opencv_hfs341.lib
opencv_highgui341.lib
opencv_imgcodecs341.lib
opencv_imgproc341.lib
opencv_img_hash341.lib
opencv_line_descriptor341.lib