yolo

Yolo置信度

别来无恙 提交于 2020-03-07 19:53:00
Yolo置信度 置信度是每个bounding box输出的其中一个重要参数,作者对他的作用定义有两重: 一重是:代表当前box是否有对象的概率Pr(Object),注意,是对象,不是某个类别的对象,也就是说它用来说明当前box内只是个背景(backgroud)还是有某个物体(对象); 另一重:表示当前的box有对象时,它自己预测的box与物体真实的box可能的值,注意,这里所说的物体真实的box实际是不存在的,这只是模型表达自己框出了物体的自信程度。 以上所述,也就不难理解作者为什么将其称之为置信度了,因为不管哪重含义,都表示一种自信程度:框出的box内确实有物体的自信程度和框出的box将整个物体的所有特征都包括进来的自信程度。经过以上的解释,其实我们也就可以用数学形式表示置信度的定义了 来源: CSDN 作者: AIchiNuirou 链接: https://blog.csdn.net/weixin_44523062/article/details/104717799

yolo解读

a 夏天 提交于 2020-03-04 19:29:19
转载 https://blog.csdn.net/leviopku/article/details/82660381 版权申明:转载和引用图片,都必须经过书面同意。获得留言同意即可 本文使用图片多为本人所画,需要高清图片可以留言联系我,先点赞后取图 这篇博文比较推荐的yolo v3代码是qwe的keras版本,复现比较容易,代码相对来说比较容易理解。同学们可以结合代码和博文共同理解v3的精髓。 github地址: https://github.com/qqwweee/keras-yolo3 前言 前言就是唠唠嗑,想直接看干货可以跳过前言,直接看Yolo v3。 yolo_v3是我最近一段时间主攻的算法,写下博客,以作分享交流。 看过yolov3论文的应该都知道,这篇论文写得很随意,很多亮点都被作者都是草草描述。很多骚年入手yolo算法都是从v3才开始,这是不可能掌握yolo精髓的,因为v3很多东西是保留v2甚至v1的东西,而且v3的论文写得很随心。想深入了解yolo_v3算法,是有必要先了解v1和v2的。以下是我关于v1和v2算法解析所写的文章: v1算法解析:《 yolo系列之yolo v1 》 v2算法解析:《 yolo系列之yolo v2 》 yolo_v3作为yolo系列目前最新的算法,对之前的算法既有保留又有改进。先分析一下yolo_v3上保留的东西: “分而治之”

keras_yolov3训练自己的数据集

…衆ロ難τιáo~ 提交于 2020-03-03 21:08:58
如有侵权,请告知,立马删除! 代码:https://github.com/qqwweee/keras-yolo3 修改yolov3.cfg文件:https://blog.csdn.net/lilai619/article/details/79695109 写文章不易,转载请表明本文出处:https://blog.csdn.net/Patrick_Lxc/article/details/80615433 本文介绍如何制作数据集、修改代码、不加载预权重从头跑自己的训练数据 一、简单回顾一下yolo原理: 1、端到端,输入图像,一次性输出每个栅格预测的一种或多种物体 2、坐标x,y代表了预测的bounding box的中心与栅格边界的相对值。 坐标w,h代表了预测的bounding box的width、height相对于整幅图像(或者栅格)width,height的比例。 3、 每个格子可以预测B个bounding box,但是最终只选择只选择IOU最高的bounding box作为物体检测输出,即每个格子最多只预测出一个物体。当物体占画面比例较小,如图像中包含畜群或鸟群时,每个格子包含多个物体,但却只能检测出其中一个。 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 原文: https://www.cnblogs.com/makefile/p/YOLOv3

yolo---训练时,命令行中加入-map 和 -dont_show

你离开我真会死。 提交于 2020-03-03 11:03:51
AlexeyAB(darknet yolov3)训练自己的数据时,在命令行中加入-map 和 -dont_show。 -map 是为了把loss曲线和测试的准确率打印出来; -dont_show 是在训练中图像显示给隐藏了; @https://blog.csdn.net/qq_43487391/article/details/102933080 @https://github.com/AlexeyAB/darknet#how-to-use @https://github.com/muyiguangda/darknet @https://github.com/Zzh-tju/DIoU-darknet @https://blog.csdn.net/qq_33270279/article/details/103482085 @www.freesion.com/article/1819217386/ IoU,GIoU,DIoU和CIoU三种目标检测lossIoU:使用最广泛的检测框loss。 GIoU:2019年CVPR Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression DIoU和CIoU:2020年AAAI Distance-IoU Loss: Faster and

YOLO v2 / YOLO9000论文详解

╄→尐↘猪︶ㄣ 提交于 2020-03-02 01:14:56
YOLO9000:Better, Faster, Stronger 声明:笔者翻译论文仅为学习研究,如有侵权请联系作者删除博文,谢谢 ! 源论文地址: https://arxiv.org/abs/1612.08242 注 :文字中标粗和亮色的部分为笔者认为有创新改进余地和需要注意的地方,斜体部分为笔者的一些想法,因水平所限,部分笔触可能有不实和错误之处,敬请广大读者批评指正,让我们一起进步~ YOLO v2 和 YOLO 9000 可以看成是两部分,其中v2是对v1的各个部分进行技术上的加持和改进;9000是对数据集和检测类别进行扩展。这里我们重点说YOLO v2部分。 v2相对于v1来说,速度更快、精度更高。 具体改进措施有以下几点: 1. 各卷积层后添加BN层; 2. YOLO2在采用 224×224 图像进行分类模型预训练后,再采用 448×448 的高分辨率样本对分类模型进行微调(10个epoch),使网络特征逐渐适应 448×448 的分辨率。然后再使用 448×448 的检测样本进行训练,缓解了分辨率突然切换造成的影响; 3. 引入anchor boxes(召回率上升,准确率略微下降),448×448 -> 416×416 通过使用K-means聚类方法筛选出一个网格cell里预测5个锚点框最合适; 通过给anchor

darknet简述

我的梦境 提交于 2020-02-27 22:50:03
概述 darknet官网: https://pjreddie.com/darknet/ https://github.com/AlexeyAB/darknet Darknet是一个比较小众的深度学习框架,没有社区,主要靠作者团队维护,所以推广较弱,用的人不多。而且由于维护人员有限,功能也不如tensorflow等框架那么强大,但是该框架还是有一些独有的优点: 1.易于安装:在makefile里面选择自己需要的附加项(cuda,cudnn,opencv等)直接make即可,几分钟完成安装; 2.没有任何依赖项:整个框架都用C语言进行编写,可以不依赖任何库,连opencv作者都编写了可以对其进行替代的函数; 3.结构明晰,源代码查看、修改方便:其框架的基础文件都在src文件夹,而定义的一些检测、分类函数则在example文件夹,可根据需要直接对源代码进行查看和修改; 4.友好python接口:虽然darknet使用c语言进行编写,但是也提供了python的接口,通过python函数,能够使用python直接对训练好的.weight格式的模型进行调用; 5.易于移植:该框架部署到机器本地十分简单,且可以根据机器情况,使用cpu和gpu,特别是检测识别任务的本地端部署,darknet会显得异常方便。 darknet是一个纯C的轻量级框架,专为Yolo设计,是yolo的最佳配合平台

windows10+keras下的yolov3的快速使用及自己数据集的训练

谁说我不能喝 提交于 2020-02-26 12:01:38
引用: https://blog.csdn.net/weixin_42769131/article/details/88849903 该版本yolov3使用者较多,但是文章里有重要步骤遗漏,在这里补充之。 一、环境要求 tensorflow-gpu keras pycharm 二、快速使用 1、下载yolov3代码:https://github.com/qqwweee/keras-yolo3 ,并解压缩之后用pycharm打开。 2、下载权重:https://pjreddie.com/media/files/yolov3.weights并将权重放在keras-yolo3的文件夹下。如下图所示: 3、执行如下命令将darknet下的yolov3配置文件转换成keras适用的h5文件。 python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5 4、运行预测图像程序 python yolo_video.py --image 输入需要预测的图片路径即可,结果示例如下: 这样就可以实现yolov3的快速使用了。 三、训练自己的数据集进行目标检测 1、在工程下新建一个文件夹VOCdevkit,目录结构为VOCdevkit/VOC2007/,在下面就是新建几个默认名字的文件夹 Annotations,ImageSets

目标检测之YOLO V1

佐手、 提交于 2020-02-22 06:57:58
前面介绍的R-CNN系的目标检测采用的思路是:首先在图像上提取一系列的候选区域,然后将候选区域输入到网络中修正候选区域的边框以定位目标,对候选区域进行分类以识别。虽然,在Faster R-CNN中利用RPN网络将候选区域的提取以放到了CNN中,实现了end-to-end的训练,但是其本质上仍然是提取 先提取候选区域,然后对候选区域识别,修正候选区域的边框位置。 这称为 tow-stage 的方法,虽然在精度已经很高了,但是其速度却不是很好。造成速度不好的主要原因就是候选区域的提取,这就需要一种网络能够直接预测出图像中目标的位置,中间不需要候选区域的计算,这就是 one-stage 。 YOLO系就是 one-stage 目标检测的一种,其全名 You only look once 很形象,只需要将图片输入到网络中就预测中其中目标的bounding box以及bounding box所属的类别。相比R-CNN,YOLO损失了一定的精度,但是其有点就是速度快。 YOLO V1 YOLO V1将目标检测定义为一个回归问题,从图像像素信息直接得到目标的边框以及所属类别的概率,其有以下的优点: 快。其整个网络结构就是解决回归问题,很快。 在做predict的时候,使用的一整张图像的全局信息。two-stage的方法,每次只是“看到”图像的一块区域,YOLO 一次“看”一整张图像

YOLO V1论文理解

让人想犯罪 __ 提交于 2020-02-22 05:39:19
摘要 作者提出了一种新的物体检测方法YOLO。YOLO之前的物体检测方法主要是通过region proposal产生大量的可能包含待检测物体的 potential bounding box,再用分类器去判断每个 bounding box里是否包含有物体,以及物体所属类别的 probability或者 confidence,如R-CNN,Fast-R-CNN,Faster-R-CNN等。 YOLO不同于这些物体检测方法,它将物体检测任务当做一个regression问题来处理,使用一个神经网络,直接从一整张图像来预测出bounding box 的坐标、box中包含物体的置信度和物体的probabilities。因为YOLO的物体检测流程是在一个神经网络里完成的,所以可以end to end来优化物体检测性能。 YOLO检测物体的速度很快,标准版本的YOLO在Titan X 的 GPU 上能达到45 FPS。网络较小的版本Fast YOLO在保持mAP是之前的其他实时物体检测器的两倍的同时,检测速度可以达到155 FPS。 相较于其他的state-of-the-art 物体检测系统,YOLO在物体定位时更容易出错,但是在背景上预测出不存在的物体(false positives)的情况会少一些。而且,YOLO比DPM、R-CNN等物体检测系统能够学到更加抽象的物体的特征

yolo v1记录

被刻印的时光 ゝ 提交于 2020-02-22 05:33:27
  这里主要从输入数据增量和检测层的处理两个方面来说下v1版本,文中使用的参数和数值为代码中默认值并以voc数据集为例来说明的。 一.输入数据处理   网络的配置使用batch和subdivisions两个参数来控制网络输入图片的批量处理,以batch作为一次读取图片个数,以batch/subdivisions作为一次传播使用的图片个数,以subdivisions为一次读取的数据用来传播的循环次数。   输入的数据也分图片数据和标注数据,先说对图片的操作。   读取图片后,程序会做增量处理,根据detection层的jitter参数对图片做抖动。假设一张图片原始的宽高为w和h,则jitter后的宽高为   dw = w*jitter   dh = h*jitter 对于宽度来说,在-dw和dw两值之间随机产生两个整数pleft和pright作为新的图片的参考,以   w - pleft - pright 作为新的图片的宽度,对高度来说,处理方式相同,所以新的图片是在jitter的比例下放大或者缩小。以jitter为默认的0.2为例,它向上下左右随机的伸展或者缩小1/5的原图的比例来生成一张新的图片。新图片的填充方式:重叠的部分,原值拷贝;缩小的部分丢弃;扩展的部分以原图的边缘值填充。下图给出了一个可能的图片增量的输出图片(分别为原图和生成的新图)