【YOLO】实时对象检测使用体验

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

以下全部在服务器上完成,服务器上是有opencv等。

1.安装Darknet

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

2.下载预先训练的权重文件(258 MB)。或者只是运行这个:  

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

3.运行检测器

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

  你会看到一些这样的输出:

layer     filters    size              input                output
    0 conv     32  3 x 3 / 1   416 x 416 x   3   ->   416 x 416 x  32
    1 max          2 x 2 / 2   416 x 416 x  32   ->   208 x 208 x  32
    .......
   29 conv    425  1 x 1 / 1    13 x  13 x1024   ->    13 x  13 x 425
   30 detection
Loading weights from yolo.weights...Done!
data/dog.jpg: Predicted in 0.016287 seconds.
car: 54%
bicycle: 51%
dog: 56%

Darknet打印出它检测到的对象,它的信心,以及找到它们需要多长时间。我们没有编译Darknet,OpenCV所以它不能直接显示检测。目录下predictions.png可看到上图。您可以打开它来查看检测到的对象。由于我们在CPU上使用了Darknet,所以每个图像需要大约6-12秒。如果我们使用GPU版本,会更快。

4.下面是使用GPU需要修改的命令

不要忘了修改目录下的makefile!
GPU,cudnn,opencv设为1

make后重新跑一次(必须make)

这是我服务器跑的结果,没设置GPU的话用了50s。因为设置了opencv,所以直接弹出了图片。

 

5.更改检测阈值(可选)

默认情况下,YOLO仅显示以0.25以上的置信度检测到的对象。您可以通过将该-thresh <val>标志传递给该yolo命令来进行更改。例如,要显示所有检测,您可以将阈值设置为0:

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

6.small yolo(可选)

微型YOLO基于Darknet参考网络,并且比正常的YOLO型号快得多但不太准确。使用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

7.如果OpenCV可以读取视频,也可以在视频文件上运行它:(可选)

./darknet detector demo cfg/coco.data cfg/yolo.cfg yolo.weights <video file>

  

关于一次性检测多张图片和训练自己的模型后续加入。

时间: 2024-10-07 06:33:30

【YOLO】实时对象检测使用体验的相关文章

OpenCV DNN之YOLO实时对象检测

OpenCV DNN之YOLO实时对象检测 OpenCV在3.3.1的版本中开始正式支持Darknet网络框架并且支持YOLO1与YOLO2以及YOLO Tiny网络模型的导入与使用.YOLO是一种比SSD还要快的对象检测网络模型,算法作者在其论文中说FPS是Fast R-CNN的100倍,基于COCO数据集跟SSD网络的各项指标对比 在最新的OpenCV3.4上我也测试了YOLO3,发现不支持,因为YOLO3有个新层类型shortcut,OpenCV3.4的Darknet暂时还不支持.这里首先

【C/C++学院】0825-类模板/final_override/类模板与普通类的派生类模板虚函数抽象模板类/类模板友元/位运算算法以及类声明/Rtti 实时类型检测/高级new创建/类以及函数包装器

类模板 类模板多个类型默认类型简单数组模板 #pragma once template <class T=int>//类模板可以有一个默认的值 class myArray { public: myArray(); ~myArray(); }; #include "myArray.h" template <class T=int>//每一个函数都需要加上一个默认的值 myArray<T>::myArray() //类模板成员函数在外部,需要加载类型初始

携程实时智能检测平台建设实践

一.背景介绍 1.规则告警带来的问题 大部分监控平台是基于规则告警实现监控指标的预警.规则告警一般基于统计学,如某个指标同比.环比连续上升或下降到一定阈值进行告警.规则告警需要用户较为熟悉业务指标的形态,从而才能较为准确的配置告警阈值,这样带来的问题是配置规则告警非常繁琐.告警效果也比较差,需要大量人力物力来维护规则告警.当一个告警产生时,也需要耗费许多人力验证告警是否正确并确认是否需要重新调整阈值.在携程,规则告警还涉及了其它问题,比如携程光公司级别的监控平台就有三个,每个业务部门还会根据自己

[OpenCV-Python] OpenCV 中计算摄影学 部分 IX 对象检测 部分 X

部分 IX计算摄影学 49 图像去噪目标 ? 学习使用非局部平均值去噪算法去除图像中的噪音 ? 学习函数 cv2.fastNlMeansDenoising(),cv2.fastNlMeansDenoisingColored()等原理 在前面的章节中我们已经学习了很多图像平滑技术,比如高斯平滑,中值平滑等,当噪声比较小时这些技术的效果都是很好的.在这些技术中我们选取像素周围一个小的邻域然后用高斯平均值或者中值平均值取代中心像素.简单来说,像素级别的噪声去除是限制在局部邻域的.噪声有一个性质.我们认

吴恩达【深度学习工程师】 04.卷积神经网络 第三周目标检测 (1)基本的对象检测算法

该笔记介绍的是<卷积神经网络>系列第三周:目标检测(1)基本的对象检测算法 主要内容有: 1.目标定位 2.特征点检测 3.目标检测  目标定位 使用算法判断图片中是不是目标物体,如果是还要再图片中标出其位置并使用边框标记出来                          我们研究过的问题中,图片分类的思想可以帮助学习分类定位,而分类定位的思想又可以帮助学习对象检测 a.分类定位问题,通常有一个较大的对象位于图片中间位置. b.对象检测问题,图片可以含有多个对象,或一张图片中会有多个不同分

Kafka+Flink 实现准实时异常检测系统

1.背景介绍异常检测可以定义为"基于行动者(人或机器)的行为是否正常作出决策",这项技术可以应用于非常多的行业中,比如金融场景中做交易检测.贷款检测:工业场景中做生产线预警:安防场景做***检测等等. 根据业务要求的不同,流计算在其中扮演着不同的角色:既可以做在线的欺诈检测,也可以做决策后近实时的结果分析.全局预警与规则调整等. 本文先介绍一种准实时的异常检测系统. 所谓准实时,即要求延迟在100ms以内.比如一家银行要做一个实时的交易检测,判断每笔交易是否是正常交易:如果用户的用户名

实战小项目之基于yolo的目标检测web api实现

上个月,对微服务及web service有了一些想法,看了一本app后台开发及运维的书,主要是一些概念性的东西,对service有了一些基本了解.互联网最开始的构架多是cs构架,浏览器兴起以后,变成了bs,最近几年,随着移动互联网的兴起,cs构架再次火了起来,有了一个新的概念,web service. 最近两天,想结合自己这段时间学的东西,实现一个cs构架的service接口.说一下大体流程,client上传图片到http服务器,http后台使用yolo进行图片的检测,之后将检测结果封装成jso

浏览器对象检测

<!doctype html> <html> <head> <meta charset="utf-8"> <title></title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="pragma" content="no-cache"&

opencv-视频处理-实时前景检测-阈值法

阈值法: 对每一帧进行阈值处理,取较低的一个阈值进行二值化处理.假设以下为视频流中的任意一帧 代表任意一点处的亮度值(灰度空间),代表一个固定的阈值,对当前帧做以下二值化处理: 该算法比较适合运动物体的亮度大于周围环境的情况,如夜晚的汽车前灯.尾灯等. 下面基于阈值法的前景检测,完成夜晚视频中车辆的检测.跟踪和计数: [算法的步骤] 1.首先画出感兴趣区域,步骤再此博文已详细描述:视频中画出感兴趣区域 2.对进入感兴趣区域的车辆进行前灯的检测,跟踪和计数 代码如下: #include<iostr