yolo应用(一)

您所在的位置:网站首页 yolo算法是什么意思 yolo应用(一)

yolo应用(一)

#yolo应用(一)| 来源: 网络整理| 查看: 265

YOLO即You Only Look Once,,是检测Pascal VOC(http://host.robots.ox.ac.uk:8080/pascal/VOC/) 2012数据集内对象/目标的系统,能够检测出20种Pascal对象:

yolo应用(一)--YOLO算法框架的简单使用_目标检测

YOLO官方框架使用C写的,性能杠杠的,YOLO算法,我就不做过多介绍了。这次笔记先简单介绍一下这个框架如何使用。

这里默认是yolo2,yolo1接近过时。环境 推荐ubuntu 或者centos

YOLO是一个近实时的框架,在1核cpu下,对一张图片的识别大概在6s-12s之间,其实还是在没有缓存的环境下运行的,如果是在摄像头实时采集识别估计也能达到10s左右的处理速度。如果用GPU来处理,当然时间短很多了。在看官网的信息时,有些名词看不太懂,但号称在titanX 上的处理速度是每秒40-60张图片,识别精度为78.6% ;在coco 开发测试集上的voc 2007 上的识别精度为48.1%。这样看来,速度确实很快。

在https://www.youtube.com/上有yolo摄像头实时识别的视频,如果感兴趣可以翻墙去浏览。

本节内容会知道你如何使用YOLO预训练好的模型进行目标检测。

第一步: 下载安装包并编译,(可以参考官网,文章下方有链接哦!)

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

 

第二步:下载预训练的超参数,也是权重

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

我们可以在终端输入ll,查看一下目录:

yolo应用(一)--YOLO算法框架的简单使用_处理速度_02

cfg/文件夹下包含一些网络模型的配置文件,yolo.weights则为刚下载好的权重。

第三步:执行检测

如果安装DarkNet的时候,没有使用OpenCV,上面的测试不会直接显示出图片结果,你需要自己手动打开predictions.png. 打开你会看到类似于下图的预测结果。

./darknet detect cfg/yolo.cfg yolov2.weights data/dog.jpg

data目录下是自带的示例图片,结果如下:

yolo应用(一)--YOLO算法框架的简单使用_目标检测_03

yolo应用(一)--YOLO算法框架的简单使用_处理速度_04

我们可以看到检测到马的输出概率为91%,狗的概率为85%,另外他会生成一张图片,如下:

yolo应用(一)--YOLO算法框架的简单使用_yolo_05

至此,证明我们已经安装yolo成功了! 

二、图片检测

1)单图片检测

   单图片检测,我们的已经演示过了:

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

 一般服务运行比较慢6s-12s,开启GPU会快速很多,会生成predictions.png,图中会标识出识别的物体。

 dog.jpg 就是要检测的图片,可以换成其余的试试。

 2)多图片检测

./darknet detect cfg/yolo.cfg yolo.weights

多图片检测跟单图片检测是差不多的,只是会不断的提示你输入图片路径进行检测

你可以data/hourses.jpg,

检测完,他继续提示你继续输入图片路径:

yolo应用(一)--YOLO算法框架的简单使用_处理速度_06

终止输入:ctrl + c 就可以退出

 3)设置检测的窗口的阈值

   这个一般没有必要设置,默认阈值是在.25或者以上,当可以通过

   -thresh   来设置,如果设置为0,则:

./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg -thresh 0

结果为:

yolo应用(一)--YOLO算法框架的简单使用_ide_07

这是完全没有必要的。

4,tiny yolo

  Tiny yolo 是更快的yolo模型,但是准确度很低下,可以慎重考虑使用,参考链接为:

https://pjreddie.com/darknet/imagenet/#reference

你可以试着去用tiny的权重voc集去测试一下:

wget https://pjreddie.com/media/files/tiny-yolo-voc.weights ./darknet detector test cfg/voc.data cfg/tiny-yolo-voc.cfg tiny-yolo-voc.weights data/dog.jpg

虽然精度差了,但是处理速度高度200张每秒

5,通过摄像头实时监测

  通过摄像头实时监测识别,这样可以实时查看测试的结果是怎么样的,但是需要相应的设备来支持,硬件必须有摄像头,同时还要编译CUDA和OPENCV,可以执行以下的命令:

./darknet detector demo cfg/coco.data cfg/yolo.cfg yolo.weights

这样就会在展示每一帧上标识出识别的物体。

需要用openv连接到你电脑的摄像头上,摄像头是否能用不是很大问题;如果你有多个摄像头的话,就必须指定一个摄像头:-c  默认为0 第一摄像头。

如果你有video文件,openCV能够读取video的话,那么可以:

./darknet detector demo cfg/coco.data cfg/yolo.cfg yolo.weights

可以动态监测,这里建议去翻一下墙,在youtube 看看yolo的视频。

 

 

参考博客:javascript:void(0)

javascript:void(0)

darknet官网:https://pjreddie.com/darknet/

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3