Darknet_yolov2基本原理
一 Darknet:深度学习框架
深度学习框架提供了一些列的深度学习的组件(对于通用的算法,里面会有实现),当需要使用新的算法的时候就需要用户自己去定义,然后调用深度学习框架的函数接口使用用户自定义的新算法。 Darknet的功能不如主流的tensorflow等框架那么强大,但是也有如下优点:
1.易于安装
2.没有任何依赖项
3.结构明晰,源代码查看、修改方便
4.友好python接口
5.易于移植
Darknet:代码结构 下图是darknet源代码下载解压后文件夹的分布情况:

1.cfg:cfg文件夹内是一些模型的架构,每个cfg文件类似与caffe的prototxt文件,通过该文件定义的整个模型的架构。
2.data:data文件夹内放置了一些label文件。
3.src:src文件夹内全是最底层的框架定义文件,所有层的定义等最基本的函数全部在该文件夹内,可以理解为该文件夹就是框架的源码。
4.examples:examples文件夹是更为高层的一些函数,如检测函数,识别函数等,这些函数直接调用了底层的函数,我们经常使用的就是example中的函数。
5.include:include文件夹,顾名思义,存放头文件的地方。
6.python:python文件夹里是使用python对模型的调用方法,基本都在darknet.py中。 7.scripts:scripts文件夹中是一些脚本,如下载coco数据集,将voc格式的数据集转换为训练所需格式的脚本等
8.除了license文件,剩下的就是Makefile文件,如下图,在问价开头有一些选项,把你需要使用的选项设为1即可。

二 yolov2 Mac有关环境的配置
1.安装darknet
a.用如下代码在电脑上配置darknet:
git clone https://github.com/pjreddie/darknet

由于我的电脑上之前已经配置过darknet,所以可以直接激活
b.用如下代码激活darknet:
cd darknet

c.用如下代码在电脑上载预训练的权重文件:
wget https://pjreddie.com/media/files/yolov
2.weights 在此处遇到的问题:
(1)zsh: command not found: wget 或者是zsh: command not found: brew
遇到这两个问题的原因是没有下载相应的安装包。
可以看一下下载权重文件的源代码中需要通过https在作者网站上下载相应的权重文件。
但是由于没有相应的下载工具,这时就需要配置一个wget自动下载文件的自由工具。
(wget:wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。)
c.用如下代码在电脑上载预训练的权重文件:
wget https://pjreddie.com/media/files/yolov
2.weights 解决办法: 需要在HomeBrew官网上下载Homebrew,也就是我电脑上缺少的缺失的软件包的管理器。

然后通过在终端中运行如下代码下载相应的管理器:
/bin/bash -c "$(curl -fsShttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
d.最后就可以用如下代码运行检测器:
./darknet detect cfg/yolov2.cfg yolov2.weights data/dog.jpg

e.运行前后的图片比较: