肉苁蓉的功效与作用,知道目标检测算法yolov1~ yolov 3,玖月奇迹

全文摘要

方针辨认是核算机视觉范畴非常常见的一类运用问题,当时方针辨认的算法品种也非常多,本文所介绍的YOLO算法便是其间之一,这是继 RCNN,fast-RCNN 和 faster-RCNN之后,Ross Girshick 针对 DL 方针检测速度问题提出的别的一种结构,本文的意图是概括性的了解YOLO算法的开展前史,若要具体完成还需求学习更多的细节和留意事项。本文略长,看完大约30min。

从YOLO V1到YOLO V3

1、YOLO V1

YOLO V1

YOLO V1的中心亚洲电影思维

  • YOLO 的中心思维便是运用肉苁蓉的成效与效果,知道方针检测算法yolov1~ yolov 3,玖月奇观整张图作为网络的输入,直接在输出层回归 bounding box(鸿沟框) 的方位及其所属的类别。
  • faster-RCNN 中也直接用整张图作为输入,可是 faster-RCNN 全体仍是选用了RCNN 那种 proposal+classifier 的思维,只不过是将提取 proposal 的进程放在 CNN 中完成了,而 YOLO 则选用直接回归的思猪皮怎样做好吃路。

YOLO V1

YOLO V1的完成办法

将一幅图画分红 SxS 个网格(grid cell),假如某个 object 的中心落在这个网格中,则这个网格就担任猜测这个 object。

每个网格要猜测 B 个 bounding box,每个 bounding box 除了要回归本身的方位之外,还要顺便猜测一个 confidence 值。

这个 confidence 代表了所猜测的 box 中含有 object 的置信度和这个 box 猜测的有多准这两重信息,其值是这样核算的:

其间假如有 object 落在一个 grid cell 里,榜首项取 1,否则取 0。 第二项是猜测的 bounding box 和实践的 groundtruth 之间的 IoU 值。

每个 bounding box 要猜测 (x, y, w, h) 和 confidence 共5个值,每个网格还要猜测一个类别信息,记为 C 类。则 SxS个 网格,每个网格要猜测 B 个 bounding box 还要猜测 C 个 categories。输出便是 S x S x (5*B+C) 的一个 tensor。

留意:class 信息是针对每个网格的,confidence 信息是针对每个 bounding box 的。

举例阐明: 在 PASCAL VOC 中,图画输入为 448x448,取 S=7,B=2,一共有20 个类别(C=20),则输出便是 7x7x30 的一个 tensor。

整个网络结构如下图所示:

在 test 的时分,每个网格猜测的 class 信息和 bounding box 猜测的 confidence信息相乘,就得到每个 bounding box 的 class-specific confidence score:

等式左面榜首项便是每个网格猜测的类别信息,第二、三项便是每个 bounding box 猜测的 confidence。这个乘积即 encode 了猜测的 box 归于某一类的概率,也有该 box 准确度的信息。

得到每个 box 的 class-specific confidence score 今后,设置阈值,滤掉得分低的 boxes,对保存的 boxes 进行 NMS 处理,就得到终究的检测成果。

注:*因为输出层为全衔接层,因而在检测时,YOLO 练习模型只支撑与练习图画相同的输入分辨率。*尽管每个格子能够猜测 B 个 bounding box,可是终究只挑选只挑选 IOU 最高的 bounding box 作为物体检测输出,即每个格子最多只猜测出一个物体。当物体占画面份额较小,如图大卡车视频像中包括畜群或鸟群时,每个格子包括多个物体,但却只能检测出其间一个。这是 YOLO 办法的一个缺陷。

YOLO V1

YOLO V1的完成细节

每个 grid 有 30 维,这 30 维中,8 维是回归 box 的坐标,2 维是 box的 confidence,还有 20 维是类别。

其间坐标的 x, y 用对应网格的 offset 归一化到 0-1 之间,w, h 用图画的 width 和 height 归一化到 0-1 之间。

在完成中,最首要的便是怎样规划丢失函数,让这个三个方面得到很好的平衡。作者简略粗犷的悉数选用了 sum-squared error loss 来做这件事。

这种做法存在以下几个问题:

榜首,8维的 localization error 和20维的 classification error 平等重要显然是不合理的;

第二,假如一个网格中没有 object(一幅图中这种网格许多),那么就会将这些网格中的 box 的 confidence push 到 0,比较于较迷墓惊魂少的有 object 的网格,这种做法是 overpowering 的,这会导致网络不安稳乃至发散。

解决办法:

  • 更注重8维的坐标猜测,给这些丢失前面赋予更大的 loss weight, 记为
  • 在 pascal VOC 练习中取 5。
  • 对没有 object 的 假如奥特曼打不赢小怪兽box 的 confid燕窝的成效ence loss,赋予小的 loss weight,记为
  • 在 pascal VOC 练习中取 0.5。
  • 有 object 的 box 的 confidence loss 和类别的 loss 的 loss weight 正常取 1。
  • 对不同巨细的 box 猜测中,比较于大 box 猜测偏肉苁蓉的成效与效果,知道方针检测算法yolov1~ yolov 3,玖月奇观一点,小 box 猜测偏一点必定更不能被忍耐的。而 厚德载物的意思sum-square error loss 中对相同的偏移 loss 是相同。
  • 为了平缓这个问题,作者用了一个比较取巧的办法,便是将 box 的 width 和 height 取平方根代替本来的 h尤克里里调音eight 和 width。这个参阅下面的图很容寿光张金来易了解,小box 的横轴值较小,发作偏移时,反应到y轴上比较大 box 要大。(也是个近似迫临办法)

一个网格猜测多个 box,期望的是每个 box predictor 专门担任猜测某个 object。具体做法便是看当时猜测的 box 与 ground truth box 中哪个 IoU 大,就担任哪个。这种做法称作 box predictor 的 specialization。

终究整个的丢失函数如下所示:

这个丢失函数中:

  • 只要当某个网格中有 object 的时分才对 classification error 进行赏罚。
  • 只要当某个 box predictor 对某个 ground truth box 担任的时分,才会对 box 的 coordinate error 进行赏罚,而对哪个 ground truth box 担任就看其猜测值和 ground truth box 的 IoU 是不是在那个 cell 的一切 box 中最大。

其他细节,例如运用激活函数运用 leak RELU,模型用 ImageNet 预练习等等,在这里就不逐个赘述了。

注:*YOLO 办法模型练习依靠于物体辨认标示数据,因而,关于非常规的物体形状或份额,YOLO 的检测效果并不抱负。*YOLO 选用了多个下采样层,网络学到的物体特征并不精密,因而也会影响检测效果。* YOLO 的丢失函数中,大物体 IOU 差错和小物体 IOU 差错对网络练习中 loss 奉献值挨近(尽管选用求平方根办法,但没有底子解决问题)。因而,关于小物体,小的 IOU 差错也会对网络优化进程形成很大的影响,然后下降了物体检测的定位准确性。

YOLO V1

YOLO V1的缺陷

YOLO 对彼此靠的很近的物体,还有很小的集体检测效果欠好,这是因为一个网格中只猜测了两个框,而且只归于一类。

同一类物体呈现的新的不常见的长宽比和其他状况时,泛化才能偏弱。

因为丢失函数的问题,定位差错是影响检测效果的首要原因。尤其是巨细物体的处理上,还有待加强。

2、YOLO V2

YOLOv2:代表着现在业界最先进物体检测的水平,它的速度要快过其他检测体系(FasterR-CNN,ResNet,SSD),运用者能够在它的速度与准确度之间进行权衡。

YOLO9000:这一网络结构能够实时地检测超越 9000 种物体分类,这归功于它运用了 WordTree,经过 WordTree 来混合检测数据集与辨认数据集之中的数据。

工程代码地址:http://pjreddie.com/darknet/yolo/

YOLO V2

YOLO V2的简介

现在的检测数据集(Detection Datasets)有许多约束,分类标签的信息太少,图片的数量小于分类数据集(Classification Datasets),而且检测数据集的本钱太高,使其无法当作分类数据集进行运用。而现在的分类数据集却有着很多的图片和非常丰厚分类信息。

文章提出了一种新的练习办法–联合练习算法。这种算法能够把这两种的数据集混合到一同。运用一种分层的观念对物体进行分类,用巨量的分类数据集数据来扩展检测数据集,然后把两种不同的数据集混合起来。

联合练习算法的基本思路便是:一起在检测数据集和分类数据我国好声响第三季集上练习物体检测器(Object Detectors ),用监测数据集的数据学习物体的准确方位,用分类数据集的数据来增加分类的类别量、进步鲁棒性。

YOLO9000 便是运用联合练习算法练习出来的,他具有 9000 类的分类信息,这些分类信息学习自ImageNet分类数据集,而物体方位检测则学习自 COCO 检测数据集。

代码和预练习模型地址:http://pjreddie.com/yolo9000/

YOLO V2

YOLO V2的改善办法

Batch Normalization

运用叶祖新 Batch Normalization 对网络进行优化,让网络进步了收敛性,一起还消除了对其他办法的正则化(regularization)的依靠。经过对 YOLO 的每一个卷积层增加 Batch Normalization,终究使得 mAP 进步了 2%,一起还使模型正则化。运用 Batch Normalization 能够从模型中去掉 Dropout,而不会发生过拟合。

High resolution classifier

现在业界规范的检测办法,都要先把分类器(classifier)放在ImageNet进步行预练习。从 Alexnet 开端,大多数的分类器都运转在小于 256*256 的图片上。而现在 YOLO 从 224*224 增加到了 448*448,这就意味着网络需求习惯新的输入分辨率。

为了习惯新的分辨率,YOLO v2 的分类网络以 448*448 的分辨率先在 ImageNet进步行微调,微调 10 个 epochs,让网络有时刻调整滤波器(filters),好让其能更好的运转在新分辨率上,还需求调优用于检测的 Resulting Network。终究经过运用高分辨率,mAP 进步了 4%。

Convolution with anchor boxes

YOLO 一代包括有全衔接层,然后能直接猜测 Bounding Boxes 的坐标值。 Faster R-CNN 的办法只用卷积层与 Region Proposal Network 来猜测 Anchor Box 偏移值与置信度,而不是直接猜测坐标值。作者发现经过猜测偏移量而不是坐标值能够简化问题,让神经网络学习起来肉苁蓉的成效与效果,知道方针检测算法yolov1~ yolov 3,玖月奇观更简单。

所以终究 YOLO 去掉了全衔接层,运用 Anchor Boxes 来猜测 Bounding Boxes。作者去掉了网络中一个池化层,这让卷积层的输出能有更高的分辨率。缩短网络让其运转在 416*416 而不是 448*448。因为图片中的物体都倾向于呈现在图片的中心方位,特别是那种比较大的物体,所以有一个独自坐落物体中心的方位用于猜测这些物体。YOLO 的卷积层选用 32 这个值来下采样图片,所以经过挑选 416*416 用作输入标准终究能输出一个 13*13 的特征图。 运用 Anchor Box 会让准确度略微下降,但用了它能让 YOLO 能猜测电话号码出大于一千个框,一起 recall 抵达88%,mAP 抵达 69.2%。

Dimension clusters

之前 Anchor Box 的标准是手动挑选的,所以标准还有优化的地步。 为了优化,在练习集的 Bounding Boxes 上跑一下 k-means聚类,来找到一个比较好的值。

假如咱们用规范的欧式间隔的 k-means,标准大的框比小框发生更多的过错。因为咱们的意图是进步 IOU 分数,这依靠于 Box 的巨细,所以间隔衡量的运用:

经过剖析试验成果(Figure 2),左图:在模型杂乱性与 high recall 之间权衡之后,挑选聚类分类数 K=5。右图:是聚类的中心,大多数是高瘦的 Box。

Table1 是阐明用 K-means 挑选 Anchor Boxes 时,当 Cluster IOU 挑选值为 5 时,AVG IOU 的值是 61,这个值要比不必聚类的办法的 60.9 要高。挑选值为 9 的时分,AVG IOU 更有明显进步。总归便是阐明用聚类的办法是有效果的。

Direct location prediction

用 Anchor Box 的办法,会让 model 变得不安稳,尤其是在最开端的几回迭代的时分。大多数不安稳要素发生自猜测肉苁蓉的成效与效果,知道方针检测算法yolov1~ yolov 3,玖月奇观 Box 的(x,y)方位的时分。依照之前 YOLO的办法,网络不会猜测偏移量,而是依据 YOLO 中的网格单元的方位来猜测坐标,这就让 Ground Truth 的值介于 0 到 1 之间。而为了让网络的成果能落在这一规模内,网络运用一个 Logistic Activation 来关于网络猜测成果进行约束,让成果介于 0 到 1 之间。 网络在每一个网格单元中猜测出 5 个 Bounding Boxes,每个 Bounding Boxes 有五个坐标值 tx,ty,tw,th,t0,他们的联络见下图(Figure3)。假定一个网格单元关于图片左上角的偏移量是 cx、cy,Bounding Boxes Prior 的宽度和高度是 pw、ph,那么猜测的成果见下图右面的公式:

因为运用了约束让数值变得参数化,也让网络更简单学习、更安稳。Dimension clusters和Direct location prediction,使 YOLO 比其他运用 Anchor Box 的版别进步了近5%。

Fine-Grained Features

YOLO 修改后的特征图巨细为 13*13,这个标准对检测图片中标准大物体来说足够了,一起运用这种细粒度的特征对定位小物体的方位或许也有优点。Faster-RCNN、SSD 都运用不同标准的特征图来获得不同规模的分辨率,而 YOLO 采取了不同的办法,YOLO 加上了一个 Passthrough Layer 来获得之前的某个 26*26 分辨率的层的特征。这个 Passthrough layer 能够把高分辨率特征与低分辨率特征联络在一同我要找到你,联络起来的办法是把相邻的特征堆积在不同的 Channel 之中,这一办法相似与 Resnet 的 Identity Mapping,然后把 26*26*512 变成 13*13*2048。YOLO 中的检测器坐落扩展后(expanded )的特征图的上方,所以他能获得细粒度的特征信息,这进步了 YOLO 1% 的功用。

Multi-Scale Tra亲爱的弗洛伊德ining

作者期望 YOLOv2 能强健地运转于不同标准的图片之上,所以把这一主意用于练习模型中。

差异于之前的补全图片的标准的办法,YOLOv2 每迭代几回都会改动网络参数。每 10 个 Batch,网络会随机地挑选一个新的图片标准,因为运用了下采样参数是 32,所以不同的标准巨细也挑选为 32 的倍数 {320,352…..608},最小 320*320,最大 608*608,网络会主动改动标准,并持续练习的进程。

这一方针让网络在不同的输入标准上都能抵达一个很好的猜测效果,同一网络能在不同分辨率进步行检测。当输入图片标准比较小的时分跑的比较快,输入图片标准比较大的时分精度高,所以你能够在 YOLOv2 的速度和精度进步行权衡。

下图是在 voc2007 上的速度与精度

YOLO V2

YOLO V2的架构

在练习的进程中,当网络遇到一个来自检测数据集的图片与符号信息,那么就把这些数据用完好的 YOLO v2 loss 功用反向传达这个图片。当网络遇到一个来自分类数据集的图片和分类符号信息,只用整个结构中分类部分的 loss 功用反向传达这个图片。

可是检测数据集只要粗粒度的符号信息,像“猫“、“ 狗”之类,而分类数据集的标签信息则更细粒度,更丰厚。比方狗这一类就包括”哈士奇“”牛头梗“”金毛狗“等等。所以假如想一起在监测数据集与分类数据集进步行练习,那么就要用一种一致性的办法交融这些标签信息。

再者,用于分类的办法,大多是用 softmax layer 办法,softmax 意味着分类的类别之间要彼此独立的。而盲目地混合数据集练习,就会呈现比方:检测数据集的分类信息中”狗“这一分类,在分类数据调会集,就会有的不同品种的狗:“哈士奇”、“牛头梗”、“金毛”这些分类,这两种数据集之间的分类信息不彼此独立。所以运用一种多标签的模型来混合数据集,假定一个图片能够有多个分类信息,并假定分类信息有必要是彼此独立的规矩能够被疏忽。

Hierarchical classification

WordNet 的结构是一个直接图表(directed graph),而不是树型结构。因为言语是杂乱的,狗这个词既归于‘犬科’又归于‘牲畜’两类,而‘犬科’和‘牲畜’两类在 WordNet 中则是近义词,所以不能用树形结构。

作者期望依据 ImageNet 中包括的概念来树立一个分层树,为了树立这个分层树,首要检查 ImagenNet 中呈现的名词,再在 WordNet 中找到这些名词,再找到这些名词抵达他们根节点的途径(在这幼儿园家长寄语里设为一切的根节点为实体方针(physical object)。在 WordNet 中,大多数近义词只要一个途径,所以首要把这条途径中的词悉数都加到分层树中。接着迭肉苁蓉的成效与效果,知道方针检测算法yolov1~ yolov 3,玖月奇观代地检查剩余的名词,并尽或许少的把他们增加到分层树上,增加的原则是取最短途径加入到树中。

为了核算某一结点的肯定概率,只需求对这一结点到根节点的整条途径的一切概率进行相乘。所以比方你想知道一个图片是否是 Norfolk terrier 的概率,则进行如下核算:

为了验证这一个办法,在 WordTree 上练习 Darknet19 的模型,运用 1000 类的 ImageNet 进行练习,为了树立 WordtT手机韩剧网ree 1K,把一切中心词汇加入到 WordTree 上,把标签空间从 1000 扩展到了 1369。在练习进程中,假如有一个图片的标签是“Norfolk terrier”,那么这个图片还会获得”狗“(dog)以及“哺乳动物”(mammal)等标签。总归现在一张图片是多符号的,符号之间不需求彼此独立。

如 Figure5 所示,之前的 ImageNet 分类是运用一个大 softmax 进行分类。而现在,WordTree 只需求对同一概念下的近义词进行 softmax 分类。

运用相同的练习参数,这种分层结构的Darknet19抵达71.9%top-1精度和90.4% top-5 准确度,精度只要细小的下降。

这种办法的优点:在对不知道或许新的物体进行分类时,功用下降的很高雅(gracefully)。比方看到一个狗的相片,但不知道是哪种品种的狗,那么就高置信度(conf肉苁蓉的成效与效果,知道方针检测算法yolov1~ yolov 3,玖月奇观idence)猜测是”狗“,而其他狗的品种的近义词如”哈士奇“”牛头梗“”金毛“等这些则低置信度。

Datasets combination with wordtree

用 WordTree 把数据调会集的类别映射到分层树中的近义词上,例如上图 Figure 6,WordTree 混合 ImageNet 与 COCO。

Joint classification and detection

作者的意图是:练习一个 Extremely Large Scale 检测器。所以练习的时分运用 WordTree 混合了 COCO 检测数据集与 ImageNet 中的 Top9000 类,混合后的数据集对应的 WordTree 有 9418 个类。另一方面,因为 ImageNet 数据集太大了,作者为了平衡一下两个数据集之间的数据量,经过过采样(oversampling) COCO 数据会集的数据,使 COCO 数据集与 ImageNet 数据集之间的数据量份额抵达 1:4。

YOLO9000 的练习依据 YOLO v2 的构架,可是运用 3 priors 而不是 5 来约束输出的巨细。当网络遇到检测数据会集的图片时则正常地反方向传达,当遇到分类数据集图片的时分,只运用分类的 loss 功用进行反向传达。一起作者假定 IOU 最少为 0.3。终究依据这些假定进行反向传达。

运用联合练习法,YOLO9000 运用 COCO 检测数据集学习检测图片中的物体的方位,运用 ImageNet 分类数据集学习怎么对很多的类别中进行分类。

为了评价这一办法,运用 ImageNet Detection Task 对练习成果进行评价。

评价成果:

YOLO9000 获得 19.7 mAP。 在未学习过的 156 个分类数据进步行测验, mAP 抵达 16.0。

YOLO9000 的 mAP 比 不雅观视频DPM 高,而且 YOLO 有更多先进的特征,YOLO9000 是用部分监督的办法在不同练习集进步行练习,一起还能检测 9000个物体类别,并确保实时运转。

尽管 YOLO9000 对动物的辨认功用很好,可是对类别为“sungalsses”或许“swimming trunks”这些衣服或许配备的类别,它的辨认功用不是很好,见 table 7。这跟数据集的数据组成有很大联络。

YOLO V2

YOLO V2肉苁蓉的成效与效果,知道方针检测算法yolov1~ yolov 3,玖月奇观的总结

YOLO v2 代表着现在最先进物体检测的水平,在多种监测数据会集都要快过其他检测体系,并能够在速度与准确度进步行权衡。

YOLO 9000 的网络结构答应实时地检测超越9江州二院000种物体分类,这归功于它能一起优化检测与分类功用。运用 WordTree 来混合来自不同的资源的练习数据,并运用联合优化技能一起在 ImageNet 和 COCO 数据集进步行练习,YOLO9000 进一步缩小了监测数据集与辨认数据集之间的巨细代沟。

3、YOLO V3

YOLO V3

YOLO V3的简介

YOLOv3 在 Pascal Titan X 上处理 608x608 图画速度能够抵达 20FPS,在 COCO test-dev 上 mAP@0.5 抵达 57.9%,与RetinaNet(FocalLoss论文所提出的单阶段网络)的成果附近,而且速度快 4 倍.

YOLO v3 的模型比之前的模型杂乱了不少,能够经过改动模型结构的巨细来权衡速度与精度。

速度比照方下:

‘YOLOv3 在完成相同准确度下要明显地比其它检测办法快。时刻都是在选用 M40 或 Titan X 等相同 GPU 下丈量的。

简而言之,YOLOv3 的先验检测(Prior detection)体系将分类器或定位器从头用于履行检测使命。他们将模型运用于图画的多个方位和标准。而那些评分较高的区域就能够视为检测成果。此外,相关于其它方针检测办法,咱们运用了彻底不同的办法。咱们将一个单神经网络运用于整张图画,该网络将图画划分为不同的区域,因而猜测每一块区域的鸿沟框和概率,这些鸿沟框会经过猜测的概率加权。咱们的模型比较于依据分类器的体系有一些优势。它在测验时会检查整个图画,所以它的猜测运用了图画中的大局信息。与需求数千张单一方针图画的 R-CNN 不同,它经过单一网络评价进行猜测。这令 YOLOv3 非常快,一般它比 R-CNN 快 1000 倍、比 Fast R-CNN 快 100 倍。

YOLO V3

YOLO V3的改善之处

改善之处:

1.多标准猜测 (类FPN)

2.更好的根底分类网络(哥斯拉2类ResNet)和分类器 darknet-53,见下图

3.分类器-类别猜测:

YOLOv3 不运用 Softmax 对每个框进行分类,首要考虑要素有两个:

a.Softmax 使得每个框分配一个类别(得分最高的一个),而关于 Open Images这种数据集,方针或许有堆叠的类别标签,因而 Softmax不适用于多标签分类。

b.Softmax 可被独立的多个 logistic 分类器代替,且准确率不会下降。

c.分类丢失选用 binary cross-entropy loss.

多标准猜测

每种标准猜测 3 个 box, anchor 的规划办法依然运用聚类,得到9个聚类中心,将其依照巨细均分给 3 个标准。

  • 标准1: 在根底网络之后增加一些卷积层再输出box信息。
  • 标准2: 从标准1中的倒数第二层的卷积层上采样(x2)再与终究一个 16x16 巨细的特征图相加,再次经过多个卷积后输出 box 信息,比较标准1变大两倍.
  • 标准3: 与标准2相似,运用了 32x32 巨细的特征图

根底网络 Darknet-53

darknet-53 与 ResNet-101 或 ResNet-152 准确率挨近,但速度更快,比照方下:

检测结构如下:

YOLOv3 在 mAP@0.5 及小方针 APs 上具有不错的成果,但随着 IOU的增大,功用下降,阐明 YOLOv3 不能很好地与 ground truth 切合

评论(0)