Ubuntu16.04配置Darknet实现YOLO

介绍:

Darknet:开源的网络框架
YOLO:实时的目标检测系统,网络包括24个卷积层,2个全连接层。其中,卷积层用来提取图像特征,全连接层用来预测图像位置和类别概率值。

一. 安装OpenCV

我安装的版本是opencv3.1.0 官网链接:https://opencv.org/news.html ,下载.zip压缩包,下载完成以后解压到home目录下

1.安装依赖项
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

sudo apt-get install checkinstall yasm libtiff5-dev libjpeg-dev libjasper-dev libdc1394-22-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils libeigen3-dev
这里写图片描述

2.安装opencv
cd opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local …
这里写图片描述

cmake完成以后在build目录下开始make:
make -j8
注:-j8表示八核运算,根据电脑配置自行选择。
make完成以后输入:
sudo make install
这里写图片描述
注:编译完成后要将opencv的安装路径添加到系统环境中,否则编译darknet的时候会提示找不到opencv库,添加方法参考下面第五步。

make过程可能有报错:
注:make失败的话可以用make clean命令消除

  1. 消除nvcc warnning
    在终端输入命令:cmake -DBLAS=Open -DCUDA_NVCC_FLAGS=–Wno-deprecated-gpu-targets

这里写图片描述
这是因为opecv3.0与cuda8.0不兼容导致的。解决办法:直接进入 home/wang/opencv/modules/cudalegacy/src文件夹,修改graphcuts.cpp文件内容,如图:
这里写图片描述
其中,#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)||(CUDART_VERSION>=8000) 是我们修改的。
修改以后重新make

### 配置并使用 YOLOv3 进行训练 要在 Ubuntu 16.04 上成功配置并使用 YOLOv3 模型进行训练,需完成以下几个主要部分的工作: #### 一、安装 Darknet 和依赖项 首先需要克隆 AlexeyAB 的 `darknet` 仓库,并按照官方指南编译项目。 ```bash git clone https://github.com/AlexeyAB/darknet.git cd darknet make ``` 上述命令会下载源码并尝试编译 Darknet 工具包[^1]。如果遇到错误提示缺少某些库,则可能需要手动安装这些依赖项。 #### 二、设置 CUDA 和 cuDNN 支持 为了加速 GPU 训练过程,建议启用 NVIDIA 提供的 CUDA 及其深度学习优化库 cuDNN。以下是具体操作方法: 1. **安装 CUDA**: 下载适合系统的版本 (推荐 CUDA 8 或更高),并通过 dpkg 安装器执行安装脚本。 2. **配置环境变量**: 编辑用户的 `.bashrc` 文件来添加必要的路径信息: ```bash sudo nano ~/.bashrc export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64\ ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} ``` 3. **加载 cuDNN 库**: 将 libcudnn.so.x.y.z 复制至 `/usr/local/cuda/targets/x86_64-linux/lib/`, 并创建软链接指向最新版共享对象文件[^3]: ```bash sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ sudo chmod a+r /usr/local/cuda/lib64/libcudnn* ``` 重新登录使更改生效或者直接运行 source 命令更新当前 shell session 中的环境变量。 #### 三、准备自定义数据集 对于特定领域内的目标检测任务来说,通常都需要用自己的标注图片作为输入资料。这里假设已经准备好了一个 VOC 格式的 XML 数据描述文档集合以及对应的 JPEG 图像资源。 编辑配置文件以匹配个人的数据结构布局: - 创建一个新的 .cfg 文件用于指定网络架构参数; - 修改 classes 参数数量等于类别总数; - 更新 filters 属性值为 `(classes + 5)*3`; 最后记得调整 batch size, subdivisions 等超参设定以便更好地适应硬件条件限制情况下的性能表现需求[^2]. #### 四、开始正式训练流程 当一切准备工作就绪以后就可以发起实际的学习进程啦! ```bash ./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74 -gpu 1 2>&1 | tee logs/train_yolov3.log ``` 这条指令将会调用预训练权重初始化模型参数并向终端打印实时进度报告的同时将其记录下来存入日志文件当中方便日后分析查看效果曲线变化趋势等问题所在之处进而采取相应措施加以改进提升最终成果质量水平达到预期标准之上. --- ### 注意事项 确保所有软件组件兼容性良好;密切监视系统资源消耗状况防止过热宕机等情况发生影响整体效率进展速度等方面因素考虑全面合理规划时间安排科学管理整个开发周期直至顺利完成既定目标任务为止.
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值