作者:Edison_G 为了解决目标检测任务中小目标检测精度低、误检、漏检率高等问题,有研究者提出了一种新的目标检测方法。 一、前言 为了解决目标检测任务中小目标检测精度低、误检、漏检率高等问题,有研究者提出了一种基于YOLOv4卷积神经网络的多目标检测方法。 多目标检测作为目标检测领域的一个重要研究方向,一直受到研究人员的广泛关注。目前,在智能交通、智能辅助驾驶和视频监控等领域已经产生了深入的研究。 二、概要 今天分享的框架,新的方法基于YOLOv4。 高层特征的语义信息首先通过FPN采样传播到低层网络,然后与底层特征的高分辨率信息融合,以提高小目标检测对象的检测效果。 ;检测头采用回归+分类的思想,将输入图像分别划分为76×76、38×38、19×19三种不同尺寸的网格图像,分别实现小目标、中目标和大目标的检测目标。
打开之后整个代码目录如下图: 现在来对代码的整体目录做一个介绍: ├── data:主要是存放一些超参数的配置文件(这些文件(yaml文件)是用来配置训练集和测试集还有验证集的路径的,其中还包括目标检测的种类数和种类的名称 ├── detect.py:利用训练好的权重参数进行目标检测,可以进行图像、视频和摄像头的检测。 ├── train.py:训练自己的数据集的函数。 ├── test.py:测试训练的结果的函数。 利用labelimg制作自己的深度学习目标检测数据集。 还有很完备的代码将labelimg标注好的voc格式或者yolo格式相互转换。 目标检测算法—将数据集为划分训练集和验证集。 数据最好放在最外一级目录中,然后数据集的目录格式如下图所示。大家一定要严格按我的格式来,否则非常容易出问题。 3训练自己的模型 3.1修改数据配置文件 预训练模型和数据集都准备好了,就可以开始训练自己的yolov5目标检测模型了,训练目标检测模型需要修改两个yaml文件中的参数。
睿智的目标检测29——Keras搭建YoloV4目标检测平台 学习前言 什么是YOLOV4 代码下载 YOLOV4改进的部分(不完全) YOLOV4结构解析 1、主干特征提取网络Backbone 2、特征金字塔 什么是YOLOV4 YOLOV4是YOLOV3的改进版,在YOLOV3的基础上结合了非常多的小Tricks。 尽管没有目标检测上革命性的改变,但是YOLOV4依然很好的结合了速度与精度。 YOLOV4整体上的检测思路和YOLOV3相比相差并不大,都是使用三个特征层进行分类与回归预测。 请注意! _output]) 3、YoloHead利用获得到的特征进行预测 当输入是416×416时,特征结构如下: 当输入是608×608时,特征结构如下: 1、在特征利用部分,YoloV4提取多特征层进行目标检测 当然得到最终的预测结构后还要进行得分排序与非极大抑制筛选 这一部分基本上是所有目标检测通用的部分。不过该项目的处理方式与其它项目不同。其对于每一个类进行判别。
前面目标检测1: 目标检测20年综述之(一)和目标检测2: 目标检测20年综述之(二)让大家对目标检测有个大概的认识,机器学习评价指标合辑(Precision/Recall/F1score/P-R曲线/ ROC曲线/AUC)介绍了基础的评价指标,如Precision、Recall、F score等概念,目标检测3: Detection基础之IoU中介绍了目标检测的评价指标IoU,接下来我们介绍目标检测最重要的评价指标 4. mAP计算示例 下面通过示例来解释插值AP。 下图有7张图像,其中15个GT目标用绿色框表示,24个检测到的物体由红色框表示。每个检测到的物体由字母(A,B,... 在一些图像中,存在多于一个与同一个ground truth重叠的检测结果(图像2,3,4,5,6和7)。对于这些情况,选择具有最高IOU的检测框,丢弃其他框。 参考资料 [1] 目标检测中的mAP是什么含义 [2] Object-Detection-Metrics [3] 目标检测mAP计算方式 [4] 目标检测评价标准-AP mAP [5] 目标检测模型的评估指标
《目标检测第2步-数据准备》,链接:https://www.jianshu.com/p/3d9436b4cb66 《目标检测第3步-模型训练》,链接:https://www.jianshu.com/p 现在桌面有1个文件夹目标检测,文件夹目标检测中有3个文件夹nets、object_detection、training。 文件夹training中含有训练了200000次的模型。 下载测试数据 下载链接: https://pan.baidu.com/s/1NksESNqBX--YqMJ4zptGdw 提取码: 6p3u 压缩文件n01440764.tar下载完成后,复制到桌面的文件夹目标检测中 进行到此步,桌面的文件夹目标检测如下图所示: ? 下载完成后,复制到桌面的文件夹目标检测中。
场景文字识别 目标检测任务的目标是给定一张图像或是视频帧,让计算机找出其中所有目标的位置,并给出每个目标的具体类别。对于人类来说,目标检测是一个非常简单的任务。 与此同时,由于目标会出现在图像或是视频帧中的任何位置,目标的形态千变万化,图像或是视频帧的背景千差万别,诸多因素都使得目标检测对计算机来说是一个具有挑战性的问题。 【目标检测】 SSD目标检测 |1. 概述 SSD全称:Single Shot MultiBox Detector,是目标检测领域较新且效果较好的检测算法之一[1],有着检测速度快且检测精度高的特点。 共包含4个字段,以tab分割,第一个字段是检测图像路径,第二字段为检测矩形框内类别,第三个字段是置信度,第四个字段是4个坐标值(以空格分割)。
特征金字塔(Feature pyramids)是识别系统中用于检测不同尺度目标的基本组件。但是最近的深度学习目标检测器已经避免了金字塔表示,部分原因是它们是计算和内存密集型的。 此外,我们的方法可以在 GPU 上以 6 FPS 的速度运行,因此是一种实用且准确的多尺度目标检测解决方案。代码将公开发布。 1. 他们的目标是生成一个高分辨率的单一高级特征图,在其上进行预测(图 2 顶部)。相反,我们的方法利用架构作为特征金字塔,其中预测(例如,目标检测)在每个层级上独立进行(图 2 底部)。 在 HOG 和 SIFT 之前,使用 ConvNets [38, 32] 进行人脸检测的早期工作计算了图像金字塔上的浅层网络,以跨尺度检测人脸。 深度卷积网络目标检测器。 Feature Pyramid Networks for RPN RPN [29] 是一种与类无关的滑动窗口目标检测器。
Int 4量化用于目标检测 【GiantPandaCV】文章2019 CVPR,讲的是Int 4量化用于目标检测,主要是工程化的一些trick。 感受:这篇文章主要是做了实践工作,可以看作是低bit量化(Int 4)用于目标检测的一些trick。 Quantization and training of neural networks for efficient integer-arithmetic-only inference》简称IAO 量化用于目标检测有以下困难 并且让activation在[,] (0 < < 1) 内,文章设置n=20,=0.999. 4、折叠bn。 Int4量化与全精度对比 ? 消融实验 ? FreezeBN与不同bit的对比 ? 截断激活函数阈值的百分比 ? 与其他量化方法的对比图
YOLOv4的贡献如下: 开发了一个高效、强大的目标检测模型。它使每个人都可以使用1080 Ti或2080 TiGPU来训练一个超级快速和准确的目标探测器。 验证了在检测器训练过程中,最先进的Bag-of-Freebies和Bag-of-Specials 的目标检测方法的影响。 2.1 目标检测器通用框架 目前检测器通常可以分为以下几个部分,不管是two-stage还是one-stage都可以划分为如下结构,只不过各类目标检测算法设计改进侧重在不同位置: ? 一个模型的分类效果好不见得其检测效果就好,想要检测效果好需要以下几点: 更大的网络输入分辨率——用于检测小目标 更深的网络层——能够覆盖更大面积的感受野 更多的参数——更好的检测同一图像内不同size的目标 2.4 PAN结构 YOLOv4使用PANet(Path Aggregation Network)代替FPN进行参数聚合以适用于不同level的目标检测, PANet论文中融合的时候使用的方法是Addition
特征融合分类 在深度学习的很多工作中(例如目标检测、图像分割),融合不同尺度的特征是提高性能的一个重要手段。低层特征分辨率更高,包含更多位置、细节信息,但是由于经过的卷积更少,其语义性更低,噪声更多。 FPN将深层信息上采样,与浅层信息逐元素地相加,从而构建了尺寸不同的特征金字塔结构,性能优越,现已成为目标检测算法的一个标准组件。FPN的结构如下所示。 ? 论文地址: https://arxiv.org/abs/1811.04533 代码地址: https://github.com/qijiezhao/M2Det 之前的特征金字塔目标检测网络共有的两个问题是 : 1、原本 backbone 是用于目标分类的网络,导致用于目标检测的语义特征不足; 2、每个用于目标检测的特征层主要或者仅仅是由单级特征层(single-level layers)构成,也就是仅仅包含了单级信息 此外,底层特征更适合描述具有简单外观的目标,而高层特征更适合描述具有复杂外观的目标。在实际中,具有相似大小目标实例的外观可能非常不同。
深度剖析目标检测算法YOLOV4 目录 简述 yolo 的发展历程 介绍 yolov3 算法原理 介绍 yolov4 算法原理(相比于 yolov3,有哪些改进点) YOLOV4 源代码日志解读 采用卷积神经的目标检测算法大致可以分为两个流派,一类是以 R-CNN 为代表的 two-stage,另一类是以 YOLO 为代表的 one-stage, R-CNN 系列的原理:通过 ROI 提取出大约 经过一系列的优化与改进,特别是今年 4 月份推出的 YOLOV4,使得它在准确度方面得到了大幅度的提升,另外,它还能达到实时检测(在 GPU 加持的情况下)。 它的 Star 达到 13400,可以说,知名度不是一般的高,在目标检测领域,好像只有 YOLOV3 超过它了,达到了 19000 ,是不是值得大家花点时间精力去探索一下呢 ? 网格化就有三种情况:19 * 19,38 * 38,76 * 76,那么是不是 19 * 19 网格化后 的小方格的宽和高要比其他两种要大,这也就意味着它的感受视野是最大的,所以它就能检测出大对象
目标检测系列之五(YOLO V4) 论文题目《YOLOv4: Optimal Speed and Accuracy of Object Detection》 论文地址:https://arxiv.org of BoF and BoS3.3 Additional improvement3.4 YOLOv44 Experiment and Result5 实现版本 1 Introduction YOLO V4建立了一个更高效更强大的目标检测模型 2 Related work 2.1 Object detection models 文章首先抛出一张目标检测的概述图,包含One-Stage一阶段和Two-Stage两阶段目标检测算法,之前的各种算法我们都介绍过 3) 改进SAM、PAN和Cross-mini-Batch Normalization使训练更高效 Mosaic可以同时融合4张图像进行数据增强,可以增强目标检测器的检测能力,减少对mini-batch 不同目标检测器的速度和准确性对比结果,YOLOv4位于P-are最优曲线上,在速度和精度方面都优于最快和最精确的检测。 ?
今天的这篇是对吴恩达的深度学习微专业的第四节课卷积神经网络的第三周的目标检测的总结。 普通的卷积神经网络我们用来识别一张图片是什么东西。 衡量一个目标检测是否符合标准,就看神经网络识别后的框和数据标注的框的交并比,也就是两者框的交集除以两者框的并集。 这里可能会碰到多次检测的问题,就是在目标附近的几个格子都会认为它检测到了目标,这时候应用非极大值抑制的算法,选出概率最大的格子,并把其他交并比很高的格子抑制(这一步交并比的判断,是因为有可能一个图像里有多个目标被检测出来 ,利用交并比可以只抑制一个目标附近多余的检测,而不能把其他目标的检测都被你抑制了)。 不同类别的目标检测,如车和人,抑制分别跑,一共跑两次。 ?
近几年来,目标检测算法取得了很大的突破。 本文对常见目标检测算法进行简要综述,并最后总结了目标检测算法方向的一些大V方便大家学习查看。 1. 本文对常见目标检测算法进行简要综述,并最后总结了目标检测算法方向的一些大V方便大家学习查看。 1. (可以认为只使用了inception module中的一个分支,应该是为了简化网络结构) 5.2 目标检测层 先经过4个卷积层和2个全连接层,最后生成7x7x30的输出。 (可以认为只使用了inception module中的一个分支,应该是为了简化网络结构) 5.2 目标检测层 先经过4个卷积层和2个全连接层,最后生成7x7x30的输出。
Network for Fast Object Detection ECCV2016 https://github.com/zhaoweicai/mscnn 本文首先指出 Faster RCNN 在小目标检测存在的问题 随后提出本文的解决思路:1)在不同尺度特征图上进行候选区域提取,2)放大特征图用于检测 the MS-CNN achieves speeds of 10 fps on KITTI (1250×375) 导致小目标的检测效果尤其的差 This creates an inconsistency between the sizes of objects, which are variable, and 我们针对目标检测提出了一个 unified multi-scale deep CNN, denoted the multi-scale CNN (MS-CNN), 主要包括两个部分: an object 这么做的目的就是靠前的特征图可以检测小目标,靠后的特征图可以检测大目标 4 Object Detection Network 检测网络,这里用了一个反卷积的特征图放大 To the best of
的问题,即给定一张图片或一段视频判断里面包含什么类别的目标。 定位-Location:解决“在哪里?”的问题,即定位出这个目标的的位置。 检测-Detection:解决“是什么?在哪里?” 目标检测算法分类 Two stage目标检测算法 先进行区域生成(region proposal,RP)(一个有可能包含待检物体的预选框),再通过卷积神经网络进行样本分类。 常见的two stage目标检测算法有:R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN和R-FCN等。 arXiv:http://arxiv.org/abs/1311.2524 github(caffe):https://github.com/rbgirshick/rcnn 2.One stage目标检测算法 常见的one stage目标检测算法有:OverFeat、YOLOv1、YOLOv2、YOLOv3、SSD和RetinaNet等。
极市导读 本文作者使用C++编写一套基于OpenCV的YOLO目标检测,包含了经典的YOLOv3,YOLOv4,Yolo-Fastest和YOLObile这4种YOLO目标检测的实现。附代码详解。 在此之前,我已经在github发布过YOLOv4,Yolo-Fastest,YOLObile这三种YOLO基于OpenCV做目标检测的程序,但是这些程序是用Python编写的。 接下来,我就使用C++编写一套基于OpenCV的YOLO目标检测,这个程序里包含了经典的YOLOv3,YOLOv4,Yolo-Fastest和YOLObile这4种YOLO目标检测的实现。 1. 运行程序的环境是win10-cpu,VS2019+opencv4.4.0,这4种YOLO目标检测网络在同一幅图片上的运行耗时的结果如下: ? ? ? ? darknet框架里生成的.cfg和.weights文件,还有yolov5的后处理计算与之前的yolov3,v4有所不同,因此我没有把yolov5添加到上面的4种YOLO目标检测程序里。
今天说的是《Soft Anchor-Point Object Detection》,其也是最近关于anchor free的目标检测的论文,作者来自于CMU,一作同样也是FSAF(2019 CVPR)的作者 背景 _ Anchor free是目标检测领域的一个研究热点,其主要可以分为anchor-point和keypoint两类。后者在往往在一个高分辨率的特征图上进行检测,其优点是准确率高,但是计算量大。 而anchor-point的方法往往在多个分辨率上进行检测,结构简单,速度更快。 整体框架其实和FSAF是类似 ●Soft-Weighted Anchor Points ● 清晰的目标更容易获得关注和更高的分数,而边缘或者被遮挡的目标比较难检测。具体的问题如下: ? ●Soft-Selected Pyramid Levels ● 该问题实际上在FSAF中也研究过,即如何选择合适的分辨率(尺度)来进行目标的检测。FSAF是通过loss来选择合适的分辨率。
TIDE: A General Toolbox for Identifying Object Detection Errors 原文作者:Daniel Bolya 内容提要 本文介绍了TIDE,一个用于分析目标检测和实例分割算法中的误差来源的框架和关联的工具盒 通过对4个数据集和7个识别模型的深入分析,结果发现本文框架能够得出准确、全面的结论。 主要框架及实验结果 ? ? ? ? ? ? ? ? ?
8.3 One Stage 目标检测算法 我们将对单次目标检测器(包括SSD系列和YOLO系列等算法)进行综述。 我们将分析FPN以理解多尺度特征图如何提高准确率,特别是小目标的检测,其在单次检测器中的检测效果通常很差。 如下图所示,在8x8的feature map和4x4的feature map上的每个单元取4个不同的default box。 原文对于 300x300 的输入,分别在conv4_3,conv7,conv8_2,conv9_2,conv10_2,conv11_2的特征图上的每个单元取4,6,6,6,4,4个default box 另外,SSD对小目标的检测没有大目标好,因为随着网络的加深,在高层特征图中小目标的信息丢失掉了,适当增大输入图片的尺寸可以提升小目标的检测效果。