[1] YOLO 图像检测 及训练

YOLO(You only look once)是流行的目标检测模型之一, 原版 Darknet 使用纯 C 编写,不需要安装额外的依赖包,直接编译即可。

CPU环境搭建 (ubuntu 18.04)

1.获取图像检测训练模型 

git clone https://github.com/pjreddie/darknet

下载好的darknet程序包如下图所示:

2.编译 

cd darknet 
make

3.获取训练模型权重 (作者公布的)

wget https://pjreddie.com/media/files/yolov3.weights

如果慢可以网盘下

链接: https://pan.baidu.com/s/1nSPkb792xjaqPOmt2C8Iew 提取码: kjdx 

4.测试图片进行分类 (这里dog.jpg 可以换成你自己的图片,放在data目录下)

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

 

GPU环境搭建 (ubuntu 18.04)

 1.获取图像检测训练模型 

git clone https://github.com/pjreddie/darknet

 2.修改GPU调用配置

  • 修改Makefile文件 
    • cd darknet
    • vim Makefile
    • GPU=1
    • CUDNN=1

 当然CUDNN等需要提前配置调试好

3.编译

cd darknet 
make
make clean(清除编译)

4.获取训练模型权重 (作者公布的)

wget https://pjreddie.com/media/files/yolov3.weights

如果慢可以网盘下

链接: https://pan.baidu.com/s/1nSPkb792xjaqPOmt2C8Iew 提取码: kjdx 

5.测试图片进行分类 (这里dog.jpg 可以换成你自己的图片,放在data目录下)

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

 

 

识别效果(对于密集目标会有丢失率)

 

 

 

Yolov3 darknet训练后可能会检测不出物体 或者检测标示错误

 

sudo ./darknet detect cfg/yolo-obj.cfg  yolo-obj_1200.weights data/containership98.jpg

发现检测位置正确,但标示错了

原因是 没有显式得指明你的xx.data文件 而使用了默认的coco.names文件的类别的cfg/coco.data文件

sudo ./darknet detector test cfg/obj.data  cfg/yolo-obj.cfg  yolo-obj_1200.weights data/containership98.jpg

./darknet detector test cfg/myv3.data cfg/yolov3.cfg backup/yolov3_10000.weights 1.jpg
用这种方式就可以探测显示的是自己的类别了。

https://pjreddie.com/darknet/yolo
上述darknet原版是存在训练后检测不到物体的问题的。 需要加上sudo,就可以显示

https://github.com/AlexeyAB/darknet
AB版darknet 训练后就可以探测得到物体的。
https://blog.csdn.net/u012235003/article/details/54576974

 

posted @ 2019-01-05 15:39  clemente  阅读(2759)  评论(0编辑  收藏  举报