YOLO搭建安装过程

yolo 搭建安装过程

0.Over View

yolo作为一个目标检测的模型,它相对突出的地方就是实时.

最新yolo9000这篇论文相对于SSD等模型也不落下风,由于我们要运行的平台是嵌入式平台,其计算资源非常有限,所以我们就需要对于实时性要求更高的模型.

前面踩得坑有 faster-rcnn,ssd,goturn等,也会有相关文章介绍.

1.安装过程

首先,我们来到YOLO官方网站

https://pjreddie.com/darknet/yolo/

我们按照这个网站 一步一步去做就好了,看下面

  1. 相关依赖

    opencv的安装 https://zangcq.me/?p=494

    cuda 安装 https://zangcq.me/?p=160

    cudnn安装 https://zangcq.me/?p=500

  1. 首先从github上克隆下来,并编译

    编译的时候请注意,看一下Makefile文件

    特别说明一下,如果在嵌入板子 Jetson TX1 或者TX2的话,也要相应修改arch

    NVIDIA产品计算能力的链接

    https://developer.nvidia.com/cuda-gpus

  2. 下载 已经训练好的权值文件

    我们有两权值模型,yolo应该是32层的网络,而tiny-yolo 是15层,更轻量级

    yolo.weights

    tiny-yolo-voc.weighs

  3. 测试一下是否能用

    你还可以在data文件夹下,找到更多的图片进行测试,这里就不赘述了.

  4. 检测阈值的调节

    实际上不论 yolo还是ssd他们都是有好多候选框来检测这个目标的,我们总是去概率最大的几个来输出.

    我们可以用-thresh value,value来作为输出的阈值, 当value = .5含义就会只输出概率大于50%的候选框,,如果我们把阈值设置成0,那么我们会看到很多的候选框.

    大家可以自己试一下,我就不放图了.

  5. 利用摄像头,实时检测

    这一步的话,我们就需要用 opencv来编译了,我们还需要用到一个摄像头,将它插在主机上.

    执行

    我们就可以看到摄像头的直接输出,还会显示当前是实时FPS,类别等等

2.训练过程

2.1处理VOC的数据集

  1. 下载

  2. 用脚本生成 Labels

  3. 处理自己的数据集

    与处理VOC的数据集一致

    参考链接

    http://blog.csdn.net/sinat_30071459/article/details/50723212

    http://www.cnblogs.com/qw12/p/6185126.html

2.2 修改darknet 配置文件

  1. 修改 cfg/voc.data

  2. 修改cfg/tiny-yolo.cfg

    这主要是tiny-yolo定义的一些网络结构,炼金术士们通常会对这个做一下修改.

    我主要简单修改一下 目标的类别 和最后一层的 filters

    就举个例子说明一下.

  3. 下载预训练模型

  4. 生成自己的预训练权值

2.3 训练模型

  1. 训练voc

    如果想训练其他的模型,我们修改这两个 配置文件就行了cfg/voc.data cfg/yolo-voc.cfg

  2. 训练coco

  3. 多个gpu训练(同一机器),似乎不能分布式训练

3.测试

TX2作为测试平台,编译安装过程是一样的,所以不在多说了.

我们同时在 带有1080Ti的服务器和Jetson TX2上搭建环境,服务器用作训练,而嵌入式板卡TX2作为测试,效果测试会在后续优化的文章中说明

Reference

https://pjreddie.com/darknet/yolo/

http://blog.csdn.net/qq_14845119/article/details/53589282#t3

http://www.yuthon.com/2016/11/12/Train-YOLO-on-our-own-dataset/

http://blog.csdn.net/u011475210/article/details/78090344

https://github.com/AlexeyAB/yolo2_light

发表评论

电子邮件地址不会被公开。 必填项已用*标注