本文是目标检测方向的第二篇,也是综述的第二部分,第一篇见目标检测1: 目标检测20年综述之(一)。 这两篇的目的主要是让读者对目标检测任务有直观的认识,后续介绍细节时有一定的概念储备,无需关注细节。 在这些方法中,Haar小波(Haar wavelet)由于其较高的计算效率,应用于许多目标检测任务中,如通用目标检测、人脸检测、行人检测等。 每个预定义anchor box的损失包括两部分:1)用于分类的交叉熵损失和2)目标定位的L1/L2回归损失。 大部分检测器并没有利用目标实例之间的关系来检测和识别它们。近年来的研究表明,考虑上下文的交互可以有效地提高目标检测器的性能。 缺点 (1)得分最高的框可能不是最合适的 (2)它可能会抑制附近的物体 (3)它不抑制false positives 5.5.2 BB aggregation 边界框聚合是针对NMS的另一种技术,其思想是将多个重叠的边界框组合或聚类成一个最终的检测结果
场景文字识别 目标检测任务的目标是给定一张图像或是视频帧,让计算机找出其中所有目标的位置,并给出每个目标的具体类别。对于人类来说,目标检测是一个非常简单的任务。 与此同时,由于目标会出现在图像或是视频帧中的任何位置,目标的形态千变万化,图像或是视频帧的背景千差万别,诸多因素都使得目标检测对计算机来说是一个具有挑战性的问题。 【目标检测】 SSD目标检测 |1. 概述 SSD全称:Single Shot MultiBox Detector,是目标检测领域较新且效果较好的检测算法之一[1],有着检测速度快且检测精度高的特点。 PaddlePaddle已集成SSD算法,本示例旨在介绍如何使用PaddlePaddle中的SSD模型进行目标检测。
本文作者接触深度学习2个月后,开始进行目标检测实践。 本文作者的专题《目标检测》,链接:https://www.jianshu.com/c/fd1d6f784c1f 此专题的宗旨是让基础较为薄弱的新手能够顺利实现目标检测,专题内容偏向于掌握技能,学会工具的使用 image.png 解压完成后,桌面的目标检测文件夹中如下图所示: ? image.png 2.选择图片 在此数据集中,大部分图片都较为清晰,但是有极少数图片像素点少,不清晰。 8.编写配置文件 在桌面文件夹目标检测的文件夹training中,创建配置文件ssdlite_mobilenet_v2_coco.config。 本文作者给读者提供2种方式获得正确的配置文件。 《目标检测》系列的下一篇文章《目标检测第3步-模型训练》,链接:https://www.jianshu.com/p/0e5f9df4686a
特征金字塔(Feature pyramids)是识别系统中用于检测不同尺度目标的基本组件。但是最近的深度学习目标检测器已经避免了金字塔表示,部分原因是它们是计算和内存密集型的。 此外,我们的方法可以在 GPU 上以 6 FPS 的速度运行,因此是一种实用且准确的多尺度目标检测解决方案。代码将公开发布。 1. 他们的目标是生成一个高分辨率的单一高级特征图,在其上进行预测(图 2 顶部)。相反,我们的方法利用架构作为特征金字塔,其中预测(例如,目标检测)在每个层级上独立进行(图 2 底部)。 在 HOG 和 SIFT 之前,使用 ConvNets [38, 32] 进行人脸检测的早期工作计算了图像金字塔上的浅层网络,以跨尺度检测人脸。 深度卷积网络目标检测器。 Feature Pyramid Networks for RPN RPN [29] 是一种与类无关的滑动窗口目标检测器。
概述 FCOS提出了一个全卷积的单阶段目标检测器,以逐像素预测的方式解决目标检测,类似于语义分割。 FCOS通过消除预先定义的锚框集合,完全避免了训练过程中与锚框相关的复杂计算,例如与锚框相关的所有超参数,而这些参数通常对最终的检测性能非常敏感。 此外,由于回归目标总是正的,FCOS网络使用exp(x)将任何实数映射到回归分支顶部的(0,+∞)。 值得注意的是FCOS的网络输出变量比流行的基于锚的检测器少九倍,因为流行的基于锚框的检测器每个位置由9个锚框。 (self, points, targets): object_sizes_of_interest = [ [-1, 64], # 不同的FPN层每层需要规定检测目标的大小
今天我们将来分析一下YOLO目标检测算法系列的YOLOv2和YOLO9000。 YOLOv2 原理 YOLOv1作为One-Stage目标检测算法的开山之作,速度快是它最大的优势。 高分辨率 当前大多数目标检测网络都喜欢使用主流分类网络如VGG,ResNet来做Backbone,而这些网络大多是在ImageNet上训练的,而分辨率的大小必然会影响到模型在测试集上的表现。 聚类的结果中多是高瘦的box,而矮胖的box数量较少,这也比较符合数据集中目标的视觉效果。 ? 在大尺寸图片检测中,YOLOv2达到了SOAT结果,VOC2007 上mAP为78.6%,仍然高于平均水准,下图是YOLOv2和其他网络的精度对比: ? 速度对比: ? 总结 YOLOv2借鉴了很多其它目标检测方法的一些技巧,如Faster R-CNN的anchor boxes, SSD中的多尺度检测。
谷歌近期又推出了下一代移动视觉应用 MobileNetV2 ,它在 MobileNetV1 的基础上获得了显著的提升,并推动了移动视觉识别技术的有效发展,包括分类、目标检测和语义分割。 MobileNetV2 作为 TensorFlow-Slim 图像分类库的一部分而推出,同时也已经集成到目标检测的包中,同时重要的是提供了预训练模型。 2、模型实验 由于分类的实验本质上包含在目标检测中,此处只对检测进行分析: (1)object_detection包中自带的测试图片,其检测结果如下,可见还是有一些未检测出来的。 ? (2)与上次mobilenetv1实验进行对比,见博客:tensorflow model中目标对象检测包的编译和测试 其中照片位置:https://worldtravelholics.files.wordpress.com 下图为mobilenetv1的检测效果 ? 可见mobilenetv2的检测效果比v1版本来得好!
基于深度学习的显著性目标检测研究思路 一个显著性目标检测模型能取得较好的效果至少应该满足以下3个标准:一是好的检测能力,尽量少地遗漏真正的显著区域或错误地将背景标记为显著区域;二是高分辨率,显著图应具有较高的分辨率或全分辨率 基于不同数据源的显著性目标检测方法研究思路也主要围绕以上3个方面展开,对检测模型的性能进行不断优化和提升,如图6所示。 显著性检测是发现显著目标具有非常大的尺度变化,故而针对多尺度特征的提取和学习成为了显著性目标检测模型中被探讨最为频繁的内容。 Wu等[56]提出的DCN模型将整个网络分为2个阶段,其中分解网络迭代地利用跨任务聚合和跨层聚合模块同时进行显著性、边缘和骨架图的预测,而在合成网络中,使用边缘和骨架信息学习分别定位显著目标的边界和内部 参考 [1].基于深度学习的显著性目标检测综述
采用和未采用Res2Net块的ResNet50得到的Grad-CAM激活映射(或热图)对比。注意到使用Res2Net后目标覆盖程度有所提高。 图2:瓶颈块和提出的Res2Net模块比较(缩放维度s=4) 这里的概念是通过增加块内的感受野,而不是更细粒度级别的一层一层捕获图像不同尺度,来提高CNN检测和管理图像中目标的能力。 这些Res2Net模块将被移植到标准ResNet或ResNeXt卷积神经网络中,从而提高网络的细粒度。 Res2Net改进的目标识别能力在不同类型分割任务中发挥了重要作用。 在FastAI 框架中使用 Res2Net Plus(创建维度为4,宽度为26 的 Res2Net50) Res2NetPlus的效果: 在咨询工作中,我做了一个能够从卫星图像检测太阳能电池板的检测器 这一个问题我没有想出如何纠正,除了假设一些分类任务可能不会严重依赖全目标区分。 因此,Res2Net 的最佳用法似乎侧重于目标识别和任务分割类型。
今天的这篇是对吴恩达的深度学习微专业的第四节课卷积神经网络的第三周的目标检测的总结。 普通的卷积神经网络我们用来识别一张图片是什么东西。 衡量一个目标检测是否符合标准,就看神经网络识别后的框和数据标注的框的交并比,也就是两者框的交集除以两者框的并集。 这里可能会碰到多次检测的问题,就是在目标附近的几个格子都会认为它检测到了目标,这时候应用非极大值抑制的算法,选出概率最大的格子,并把其他交并比很高的格子抑制(这一步交并比的判断,是因为有可能一个图像里有多个目标被检测出来 ,利用交并比可以只抑制一个目标附近多余的检测,而不能把其他目标的检测都被你抑制了)。 不同类别的目标检测,如车和人,抑制分别跑,一共跑两次。 ?
采用和未采用Res2Net块的ResNet50得到的Grad-CAM激活映射(或热图)对比。注意到使用Res2Net后目标覆盖程度有所提高。 图2:瓶颈块和提出的Res2Net模块比较(缩放维度s=4) 这里的概念是通过增加块内的感受野,而不是更细粒度级别的一层一层捕获图像不同尺度,来提高CNN检测和管理图像中目标的能力。 这些Res2Net模块将被移植到标准ResNet或ResNeXt卷积神经网络中,从而提高网络的细粒度。 Res2Net改进的目标识别能力在不同类型分割任务中发挥了重要作用。 在FastAI 框架中使用 Res2Net Plus(创建维度为4,宽度为26 的 Res2Net50) Res2NetPlus的效果: 在咨询工作中,我做了一个能够从卫星图像检测太阳能电池板的检测器 这一个问题我没有想出如何纠正,除了假设一些分类任务可能不会严重依赖全目标区分。 因此,Res2Net 的最佳用法似乎侧重于目标识别和任务分割类型。
本文对常见目标检测算法进行简要综述,并最后总结了目标检测算法方向的一些大V方便大家学习查看。 1. (可以认为只使用了inception module中的一个分支,应该是为了简化网络结构) 5.2 目标检测层 先经过4个卷积层和2个全连接层,最后生成7x7x30的输出。 (可以认为只使用了inception module中的一个分支,应该是为了简化网络结构) 5.2 目标检测层 先经过4个卷积层和2个全连接层,最后生成7x7x30的输出。 YoloV2还利用了之前的26x26的特征图进行目标检测。 它在YoloV2基础上,进行了imageNet和coco的联合训练。这种方式充分利用imageNet可以识别1000类物体和coco可以进行目标位置检测的优点。
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等。 One stage目标检测算法 不用RP,直接在网络中提取特征来预测物体分类和位置。 常见的one stage目标检测算法有:OverFeat、YOLOv1、YOLOv2、YOLOv3、SSD和RetinaNet等。
今天我们将来分析一下 YOLO 目标检测算法系列的 YOLOv2 和 YOLO9000。 YOLOv2 ---- 原理 YOLOv1 作为 One-Stage 目标检测算法的开山之作,速度快是它最大的优势。但我们知道,YOLOv1 的定位不够准,并且召回率低。 高分辨率 当前大多数目标检测网络都喜欢使用主流分类网络如 VGG,ResNet 来做 Backbone,而这些网络大多是在 ImageNet 上训练的,而分辨率的大小必然会影响到模型在测试集上的表现。 聚类的结果中多是高瘦的 box,而矮胖的 box 数量较少,这也比较符合数据集中目标的视觉效果。 ? 总结 ---- YOLOv2 借鉴了很多其它目标检测方法的一些技巧,如 Faster R-CNN 的 anchor boxes, SSD 中的多尺度检测。
(2)HOG Detector 方向梯度直方图(HOG)特征描述符最初是由N. Dalal和B.Triggs在2005年提出的。 (2)SPPNet 2014年,K. He等人提出了空间金字塔池化网络( Spatial Pyramid Pooling Networks,SPPNet)。 Joseph在 YOLO 的基础上进行了一系列改进,提出了其 v2 和 v3 版本,在保持很高检测速度的同时进一步提高了检测精度。 (2)ILSVRC ImageNet大规模视觉识别挑战(Large Scale Visual Recognition Challenge,ILSVRC)推动了通用目标检测技术的发展。 在开放图像中有两个任务:1) 标准目标检测,2) 视觉关系检测,检测特定关系中成对的目标。
今天说的是《Soft Anchor-Point Object Detection》,其也是最近关于anchor free的目标检测的论文,作者来自于CMU,一作同样也是FSAF(2019 CVPR)的作者 背景 _ Anchor free是目标检测领域的一个研究热点,其主要可以分为anchor-point和keypoint两类。后者在往往在一个高分辨率的特征图上进行检测,其优点是准确率高,但是计算量大。 因而作者提出了两种策略:1)soft-weighted anchor points对不同位置的样本进行权重分配,2)soft-selected pyramid levels,将样本分配到多个分辨率,并进行权重加权 整体框架其实和FSAF是类似 ●Soft-Weighted Anchor Points ● 清晰的目标更容易获得关注和更高的分数,而边缘或者被遮挡的目标比较难检测。具体的问题如下: ? ●Soft-Selected Pyramid Levels ● 该问题实际上在FSAF中也研究过,即如何选择合适的分辨率(尺度)来进行目标的检测。FSAF是通过loss来选择合适的分辨率。
论文地址: http://arxiv.org/pdf/2008.08115v2.pdf 代码: https://dbolya.github.io/tide/ 来源: 佐治亚理工学院 论文名称:TIDE: A General Toolbox for Identifying Object Detection Errors 原文作者:Daniel Bolya 内容提要 本文介绍了TIDE,一个用于分析目标检测和实例分割算法中的误差来源的框架和关联的工具盒
YOLO-V2速度优化 大多数检测网络依赖于VGG-16作为特征提取网络,VGG-16是一个强大而准确的分类网络,但是过于复杂。 这个过程让网络有足够的时间去适应高分辨率的输入,然后再fine tune检测网络,mAP获得了4%的提升。 YOLOV1和YOLOV2网格输出维度对比 我们知道YOLO-V1输出7x7x30的检测结果,如上图,其中每个网格输出的30个数据包括两个候选框的位置,有无包含物体的置信度,以及网格中包含物体类别的20 细粒度特征 我们前面学过SSD通过不同Scale的Feature Map来预测Box,实现多尺度,如下: 目标检测算法SSD结构详解 而YOLO-V2则采用了另一种思路:通过添加一个passthrough 多尺度训练 这种机制使得网络可以更好地预测不同尺寸的图片,同一个网格可以进行不同分辨率的检测任务,在小尺寸图片上YOLO-V2运行更快,在速度和精度上达到了平衡。
前言 本文介绍了知乎上关于视频目标检测与图像目标检测的区别的几位大佬的回答。主要内容包括有视频目标检测与图像目标检测的区别、视频目标检测的研究进展、研究思路和方法。 spm=a2hzp.8253869.0.0&from=y1.7-2 这样的稳定性的问题,在实际的应用中其实也会带来很多困扰。例如在自动驾驶中,需要稳定的2D检测框来进行车辆距离和速度的估计。 第三种:频域特征的利用 在基于视频的目标检测中,除了可以对目标空间和时间信息进行分析外,目标的频域信息在检测过程中也能发挥巨大的作用。比如,在鸟种检测中,我们可以通过分析翅膀扇动频率实现鸟种的判别。 首先,从概念上来讲,视频目标检测要解决的问题是对于视频中每一帧目标的正确识别和定位。那么和其他领域如图像目标检测、目标跟踪有什么区别呢? 该工作由于对每帧都做了特征提取,计算开支很大,检测速度不高。优势是检测精度得到提升,ImageNet VID 任务冠军方案就使用了上述两种方法。 2.