前提
要使用gpu和cudnn必须安装好驱动,cuda,cudnn,要在图像上显示检测框需要安装好opencv(?我也不知道是不是一定要opencv才能显示检测框)
准备工作
下载vscode
安装
[html] view plain copy print?
sudo dpkg -i code*.deb
sudo dpkg -i code*.deb
下载darknet
[html] view plain copy print?
git clone https://github.com/pjreddie/darknet
cd darknet
wget https://pjreddie.com/media/files/yolov3.weights
git clone https://github.com/pjreddie/darknet cd darknet wget https://pjreddie.com/media/files/yolov3.weights
配置vscode
打开安装好的vscode并安装扩展C/C++(ms-vscode.cpptools)
在开始处打开文件夹打开darknet文件夹,如下图所示:
这时候可能会有找不到darknet.h的问题,因为darknet.h文件在include的文件夹中,而vscode默认从系统和${workspaceFolder}(当前打开的文件夹,即darknet目录)下找头文件,所以我们要将工作区的include文件夹加入到配置文件中去。vscode下的C或C++项目的配置文件是c_cpp_properties.json,用快捷键ctrl+shift+p调出vscode命令搜索框,搜索Edit Configurations并点击就会跳转到c_cpp_properties.json文件的编辑界面,将include加入到includePath即可:
编译
在vscode下编译可由task.json来定义,但darknet下已有Makefile文件,可以不用自己写task.json。但如果想以调试的模式运行的话需要将Makefile中的CC=gcc改为CC=gcc -g来编译出可以gdb调试的可执行文件。
vscode功能强大,可以直接在vscode界面内使用终端。在编译之前根据电脑的环境选择是否使用cuda,cudnn,opencv等选项修改Makefile,使用快捷键ctrl+`调出vscode的终端,在darknet目录下make。编译完成后在darknet文件夹下可以看到名为darknet的可执行文件。
调试
要启动调试,vscode需要知道编译的可调式的可执行文件的目录,以及带进去的参数,这些内容需要配置到launch.json中。按F5启动调试,选择GDB环境,编辑launch.json如下所示:
主要修改program和args,具体参数请根据自己具体的情况配置,我这上面的1.mkv是自己跑的视频(傲骨贤妻第一季第一集)
测试
在darknet.c里面设置了断点并启动调试,可以看到变量,调用堆栈等信息,至此调试成功。最后一张跑的视频的图:
第一篇博客。。。希望能产生点小小的帮助!