YOLO3论文中文版
文章目录
YOLO3论文中文版
摘要
更新YOLO啦! 我们在设计上做了一些小的更改,使它变得更好。 我们训练了这个新的网络,它比以前的版本更准确不过比之前的稍大一些,但不用担心,它的速度依然是扛扛的。 YOLOv3在输入为320×320的图片上的检测速度是22ms ,mAP为28.2。这与SSD一样精确,但速度提高了三倍。 当使用旧的0.5 IOU mAP检测指标,YOLOv3是相当不错的。 在Titan X上,它在51 ms内达到57.9 A P 50 AP_{50} AP50,与RetinaNet在198 ms内的57.5 A P 50 AP_{50} AP50相比,表现相当,但速度提高了3.8倍。 跟以前一样,所有代码都在网站 https://pjreddie.com/yolo/。
1.引言
知道吗?有时你会敷衍了事浑浑噩噩就度过了一年,今年我没有做太多研究,只是在Twitter上挥霍时间。玩了一下GAN。凭着去年遗留的一点动力[10] [1], 我设法对YOLO进行了一些改进。然而,讲真,没有什么超级有趣的进展,只是一小丁点的改善。同时,我也为别人的研究略尽绵力。
于是就有了今天的这篇文章。我们有一个最终的截止日期,需要引用一些我对YOLO进行的随机更新,但我们没有一个资源。所以准备好迎接这篇技术报告!
技术报告的好处是他们不需要引言,大家都知道缘由。所以简介的最后将为本文的其余部分提供指路标。首先我们会告诉你YOLOv3的方案,然后会告诉你我们是如何实现的。我们还会告诉你我们尝试过但并不奏效的一些事情。最后是探讨这一切的意义。
2. 解决方案
这里主要介绍YOLOv3的方案,我们从别人的工作里获得了一些好的点子,还训练了一个比其他模型更好的新的分类器网络。 我们将从头开始介绍整个系统,以便您能彻底地理解它。
2.1 边界框预测
遵循YOLO9000的方法,YOLOv3使用由维度聚类(dimension cluster)得到的锚框(anchor box)来预测边界框(bounding box)[13]。 网络为每个边界框预测4个坐标,tx,ty,tw,th。 假设单元格距离图像的左上角偏移了(cx,cy),先验边界框(bounding box prior)具有宽度pw和高度ph,则预测应为:
YOLOv3使用逻辑回归预测每个边界框的目标分数(objectness score)。如果真实标签框与某个边界框重叠的面积比与其他任何边界框都大,那么这个先验边界框为1。按照[15]的做法,如果先验边界框不是最好的,但是确实与目标的真实标签框重叠的面积大于阈值,我们就会忽略这个预测。我们使用阈值为0.5。与[15]不同,我们的系统只为每个真实标签框分配一个边界框。如果先验边界框未分配给真实标签框,则不会产生坐标或类别预测损失,只会产生目标预测损失。
YOLOv3使用逻辑回归预测每个边界框的目标分数(objectness score)。如果真实标签框与某个边界框重叠的面积比与其他任何边界框都大,那么这个先验边界框为1。按照[15]的做法,如果先验边界框不是最好的,但是确实与目标的真实标签框重叠的面积大于阈值,我们就会忽略这个预测。我们使用阈值为0.5。与[15]不同,我们的系统只为每个真实标签框分配一个边界框。如果先验边界框未分配给真实标签框,则不会产生坐标或类别预测损失,只会产生目标预测损失。
2.2 类预测
每个框使用多标签分类预测边界框可能包含的类。我们不使用softmax,因为我们发现它没能显著提升性能,相反,我们只是使用独立的逻辑分类器。在进行训练时,我们使用二元交叉熵损失来进行类别预测。
当我们转向更复杂的领域,这个公式会变得很有用。例如开放图像数据集[5],在这个数据集中有许多重叠的标签(即女性和人)。使用softmax会强加这样一个假设——每个框只有一个类别,但通常情况并非如此。多标签的方式更好地模拟数据。
2.3 多尺度预测
YOLOv3预测3种不同尺度的框。 我们的系统使用类似金字塔网络的相似概念,从这些尺度中提取特征[6]。 在我们的基本特征提取器上添加几个卷积层,其中最后一个卷积层预测了一个三维张量——边界框,目标和类别预测。 在我们的COCO实验[8]中,我们为每个尺度预测3个框,所以对于4个边界框偏移量,1个目标预测和80个类别预测,张量的大小为N×N×[3 *(4 + 1 + 80)]。
接下来,我们从前面的2个层中取得特征图,并将其上采样2倍。我们还从网络中的较前的层中获取特征图,并使用按元素相加的方式将其与我们的上采样特征图进行合并。这种方法使我们能够从上采样的特征图中获得更有意义的语义信息,同时可以从更前的层中获取更细粒度的信息。然后,我们再添加几个卷积层来处理这个组合的特征图,并最终预测出一个类似的张量,虽然其尺寸是之前的两倍。
我们再次使用相同的设计来预测最终尺寸的边界框。因此,第三个尺寸的预测将既能从所有先前的计算,又能从网络前面的层中的细粒度的特征中获益。
我们仍然使用k-means聚类来确定我们的先验边界框。我们只是选择了9个类和3个尺度,然后在所有尺度上均匀分割聚类。在COCO数据集上,9个聚类分别为(10×13),(16×30),(33×23),(30×61),(62×45),(59×119),(116×90) ,(156×198),(373×326)。
2.4 特征提取器
我们使用新的网络来执行特征提取。我们的新网络融合了YOLOv2,Darknet-19和新颖的残差网络的思想。我们的网络使用连续的3×3和1×1卷积层,但现在多了一些捷径连接(shortcut connetction),而且规模更大。它有53个卷积层,所以我们称之为…emmm… Darknet-53!
这个新网络比Darknet-19功能强大得多,但仍比ResNet-101或ResNet-152更高效。 以下是一些ImageNet结果:
每个网络都使用相同的设置进行训练,并在256×256的图像上进行单精度测试。 运行时间是在Titan X上用256×256图像进行测量的。因此,Darknet-53可与最先进的分类器相媲美,但浮点运算更少,速度更快。 Darknet-53比ResNet-101更好,且速度快1.5倍。 Darknet-53与ResNet-152具有相似的性能,但速度快2倍。
Darknet-53也实现了最高的每秒浮点运算测量。 这意味着网络结构可以更好地利用GPU,使它的评测更加高效,更快。 这主要是因为ResNets的层数太多,效率不高。
2.5 训练
我们仍然在完整的图像进行训练,没有使用难负样本挖掘(hard negative mining)或其他类似的方法。 我们使用多尺度训练,大量的数据增强,批量标准化等等标准的操作。 我们使用Darknet神经网络框架进行训练和测试[12]。
3.我们的做法
YOLOv3非常好!请参见表3,就COCO的mAP指标而言,它与SSD类的模型相当,但速度提高了3倍。尽管如此,它仍然在这个指标上比像RetinaNet这样的其他模型差些。
但是,当我们在“旧的”检测指标——在IOU = 0.5的mAP(或图表中的 A P 50 AP_{50} AP50YOLOv3非常强大。它几乎与RetinaNet相当,并且远高于SSD。这表明YOLOv3是一个非常强大的检测器,擅长为目标生成恰当的框。然而,随着IOU阈值增加,性能显著下降,YOLOv3预测的边界框与目标不能完美对齐。
在过去,YOLO不擅长检测小物体。但是,现在我们看到了这种趋势的逆转。随着新的多尺度预测,我们看到YOLOv3具有相对较高的APS性能。但是,它在中等和更大尺寸的物体上的表现相对较差。需要更多的研究来了解这一点。
当我们在 A P 50 AP_{50} AP50指标上绘制准确度和速度时(见图3),我们看到YOLOv3与其他检测系统相比具有显着的优势。也就是说,速度越来越快。
4. 失败的尝试
我们在研究YOLOv3时尝试了很多东西,但很多都不起作用。 这是我们要记住的血的教训。
锚框的x,y偏移预测。 我们尝试使用常规的锚框预测机制,比如利用线性激活将坐标x、y的偏移程度预测为边界框宽度或高度的倍数。但我们发现这种方法降低了模型的稳定性,并且效果不佳。
用线性激活代替逻辑激活进行x,y预测。 我们尝试使用线性激活代替逻辑激活来直接预测x,y偏移。 这导致了MAP下降了几个点。
focal loss。 我们尝试使用focal loss。 它使得平均分下降2个点。 YOLOv3可能已经对focal loss试图解决的问题具有鲁棒性,因为它具有单独的目标预测和条件类别预测。 因此,对于大多数例子来说,类别预测没有损失? 或者其他的东西? 我们并不完全确定。
双IOU阈值和真值分配。 Faster R-CNN在训练期间使用两个IOU阈值。 如果一个预测与真实标签框重叠超过0.7,它就是一个正的样本,若重叠为[0.3,0.7]之间,那么它会被忽略,若它与所有的真实标签框的IOU小于.3,那么这是一个负样本。 我们尝试了类似的策略,但无法取得好的结果。
我们非常喜欢目前的更新,它似乎至少在局部达到了最佳。 有些方法可能最终会产生好的结果,也许他们只是需要一些调整来稳定训练。
5.这一切意味着什么
YOLOv3是一个很好的检测器。 速度很快,很准确。 COCO在平均AP介于.5和.95 IOU之间的指标的情况并不理想。 但是,对于旧的检测度量.5 IOU来说非常好。
为什么我们要改变指标?COCO的原文件只是有这样一句含糊不清的句子:“一旦评估服务器完成,就会生成全面评测标准”。 Russakovsky等人报告说,人们很难区分.3和.5的IOU。 “训练人类用视觉检查IOU为0.3的边界框,并且与IOU为0.5的框区别开来是非常困难的。“[16]如果人类很难说出差异,那么它也没有多重要吧?
但是也许更好的问题是:“现在我们有了这些检测器,我们要做什么?”很多做关于这方面的研究的人都受聘于Google和Facebook。我想至少我们知道这项技术在好人的手中,绝对不会被用来收集您的个人信息并将其出售给…等等,您是说这正是它的用途?oh。
其他花大钱资助视觉研究的人还有军方,他们从来没有做过任何可怕的事情,例如用新技术杀死很多人,等等…
我强烈地希望,大多数使用计算机视觉的人都用它来做一些快乐且有益的事情,比如计算一个国家公园里斑马的数量[11],或者追踪在附近徘徊时的猫[17]。但是计算机视觉已经有很多可疑的用途,作为研究人员,我们有责任考虑我们的工作可能造成的损害,并思考如何减轻它的影响。我们非常珍惜这个世界。
6.网络层详解(自补)
YOLOv3本身使用的是全卷积层,连图或者说特征图的尺寸的修改都是通过卷积层来实现。来张YOLO论文的结构图:
再来一个YOLO输出时的显示:
layer filters size input output
0 conv 32 3 x 3 / 1 416 x 416 x 3 -> 416 x 416 x 32 0.299 BF
1 conv 64 3 x 3 / 2 416 x 416 x 32 -> 208 x 208 x 64 1.595 BF
2 conv 32 1 x 1 / 1 208 x 208 x 64 -> 208 x 208 x 32 0.177 BF
3 conv 64 3 x 3 / 1 208 x 208 x 32 -> 208 x 208 x 64 1.595 BF
4 Shortcut Layer: 1
5 conv 128 3 x 3 / 2 208 x 208 x 64 -> 104 x 104 x 128 1.595 BF
6 conv 64 1 x 1 / 1 104 x 104 x 128 -> 104 x 104 x 64 0.177 BF
7 conv 128 3 x 3 / 1 104 x 104 x 64 -> 104 x 104 x 128 1.595 BF
8 Shortcut Layer: 5
9 conv 64 1 x 1 / 1 104 x 104 x 128 -> 104 x 104 x 64 0.177 BF
10 conv 128 3 x 3 / 1 104 x 104 x 64 -> 104 x 104 x 128 1.595 BF
11 Shortcut Layer: 8
12 conv 256 3 x 3 / 2 104 x 104 x 128 -> 52 x 52 x 256 1.595 BF
13 conv 128 1 x 1 / 1 52 x 52 x 256 -> 52 x 52 x 128 0.177 BF
14 conv 256 3 x 3 / 1 52 x 52 x 128 -> 52 x 52 x 256 1.595 BF
15 Shortcut Layer: 12
16 conv 128 1 x 1 / 1 52 x 52 x 256 -> 52 x 52 x 128 0.177 BF
17 conv 256 3 x 3 / 1 52 x 52 x 128 -> 52 x 52 x 256 1.595 BF
18 Shortcut Layer: 15
19 conv 128 1 x 1 / 1 52 x 52 x 256 -> 52 x 52 x 128 0.177 BF
20 conv 256 3 x 3 / 1 52 x 52 x 128 -> 52 x 52 x 256 1.595 BF
21 Shortcut Layer: 18
22 conv 128 1 x 1 / 1 52 x 52 x 256 -> 52 x 52 x 128 0.177 BF
23 conv 256 3 x 3 / 1 52 x 52 x 128 -> 52 x 52 x 256 1.595 BF
24 Shortcut Layer: 21
25 conv 128 1 x 1 / 1 52 x 52 x 256 -> 52 x 52 x 128 0.177 BF
26 conv 256 3 x 3 / 1 52 x 52 x 128 -> 52 x 52 x 256 1.595 BF
27 Shortcut Layer: 24
28 conv 128 1 x 1 / 1 52 x 52 x 256 -> 52 x 52 x 128 0.177 BF
29 conv 256 3 x 3 / 1 52 x 52 x 128 -> 52 x 52 x 256 1.595 BF
30 Shortcut Layer: 27
31 conv 128 1 x 1 / 1 52 x 52 x 256 -> 52 x 52 x 128 0.177 BF
32 conv 256 3 x 3 / 1 52 x 52 x 128 -> 52 x 52 x 256 1.595 BF
33 Shortcut Layer: 30
34 conv 128 1 x 1 / 1 52 x 52 x 256 -> 52 x 52 x 128 0.177 BF
35 conv 256 3 x 3 / 1 52 x 52 x 128 -> 52 x 52 x 256 1.595 BF
36 Shortcut Layer: 33
37 conv 512 3 x 3 / 2 52 x 52 x 256 -> 26 x 26 x 512 1.595 BF
38 conv 256 1 x 1 / 1 26 x 26 x 512 -> 26 x 26 x 256 0.177 BF
39 conv 512 3 x 3 / 1 26 x 26 x 256 -> 26 x 26 x 512 1.595 BF
40 Shortcut Layer: 37
41 conv 256 1 x 1 / 1 26 x 26 x 512 -> 26 x 26 x 256 0.177 BF
42 conv 512 3 x 3 / 1 26 x 26 x 256 -> 26 x 26 x 512 1.595 BF
43 Shortcut Layer: 40
44 conv 256 1 x 1 / 1 26 x 26 x 512 -> 26 x 26 x 256 0.177 BF
45 conv 512 3 x 3 / 1 26 x 26 x 256 -> 26 x 26 x 512 1.595 BF
46 Shortcut Layer: 43
47 conv 256 1 x 1 / 1 26 x 26 x 512 -> 26 x 26 x 256 0.177 BF
48 conv 512 3 x 3 / 1 26 x 26 x 256 -> 26 x 26 x 512 1.595 BF
49 Shortcut Layer: 46
50 conv 256 1 x 1 / 1 26 x 26 x 512 -> 26 x 26 x 256 0.177 BF
51 conv 512 3 x 3 / 1 26 x 26 x 256 -> 26 x 26 x 512 1.595 BF
52 Shortcut Layer: 49
53 conv 256 1 x 1 / 1 26 x 26 x 512 -> 26 x 26 x 256 0.177 BF
54 conv 512 3 x 3 / 1 26 x 26 x 256 -> 26 x 26 x 512 1.595 BF
55 Shortcut Layer: 52
56 conv 256 1 x 1 / 1 26 x 26 x 512 -> 26 x 26 x 256 0.177 BF
57 conv 512 3 x 3 / 1 26 x 26 x 256 -> 26 x 26 x 512 1.595 BF
58 Shortcut Layer: 55
59 conv 256 1 x 1 / 1 26 x 26 x 512 -> 26 x 26 x 256 0.177 BF
60 conv 512 3 x 3 / 1 26 x 26 x 256 -> 26 x 26 x 512 1.595 BF
61 Shortcut Layer: 58
62 conv 1024 3 x 3 / 2 26 x 26 x 512 -> 13 x 13 x1024 1.595 BF
63 conv 512 1 x 1 / 1 13 x 13 x1024 -> 13 x 13 x 512 0.177 BF
64 conv 1024 3 x 3 / 1 13 x 13 x 512 -> 13 x 13 x1024 1.595 BF
65 Shortcut Layer: 62
66 conv 512 1 x 1 / 1 13 x 13 x1024 -> 13 x 13 x 512 0.177 BF
67 conv 1024 3 x 3 / 1 13 x 13 x 512 -> 13 x 13 x1024 1.595 BF
68 Shortcut Layer: 65
69 conv 512 1 x 1 / 1 13 x 13 x1024 -> 13 x 13 x 512 0.177 BF
70 conv 1024 3 x 3 / 1 13 x 13 x 512 -> 13 x 13 x1024 1.595 BF
71 Shortcut Layer: 68
72 conv 512 1 x 1 / 1 13 x 13 x1024 -> 13 x 13 x 512 0.177 BF
73 conv 1024 3 x 3 / 1 13 x 13 x 512 -> 13 x 13 x1024 1.595 BF
74 Shortcut Layer: 71
75 conv 512 1 x 1 / 1 13 x 13 x1024 -> 13 x 13 x 512 0.177 BF
76 conv 1024 3 x 3 / 1 13 x 13 x 512 -> 13 x 13 x1024 1.595 BF
77 conv 512 1 x 1 / 1 13 x 13 x1024 -> 13 x 13 x 512 0.177 BF
78 conv 1024 3 x 3 / 1 13 x 13 x 512 -> 13 x 13 x1024 1.595 BF
79 conv 512 1 x 1 / 1 13 x 13 x1024 -> 13 x 13 x 512 0.177 BF
80 conv 1024 3 x 3 / 1 13 x 13 x 512 -> 13 x 13 x1024 1.595 BF
81 conv 18 1 x 1 / 1 13 x 13 x1024 -> 13 x 13 x 18 0.006 BF
82 yolo
83 route 79
84 conv 256 1 x 1 / 1 13 x 13 x 512 -> 13 x 13 x 256 0.044 BF
85 upsample 2x 13 x 13 x 256 -> 26 x 26 x 256
86 route 85 61
87 conv 256 1 x 1 / 1 26 x 26 x 768 -> 26 x 26 x 256 0.266 BF
88 conv 512 3 x 3 / 1 26 x 26 x 256 -> 26 x 26 x 512 1.595 BF
89 conv 256 1 x 1 / 1 26 x 26 x 512 -> 26 x 26 x 256 0.177 BF
90 conv 512 3 x 3 / 1 26 x 26 x 256 -> 26 x 26 x 512 1.595 BF
91 conv 256 1 x 1 / 1 26 x 26 x 512 -> 26 x 26 x 256 0.177 BF
92 conv 512 3 x 3 / 1 26 x 26 x 256 -> 26 x 26 x 512 1.595 BF
93 conv 18 1 x 1 / 1 26 x 26 x 512 -> 26 x 26 x 18 0.012 BF
94 yolo
95 route 91
96 conv 128 1 x 1 / 1 26 x 26 x 256 -> 26 x 26 x 128 0.044 BF
97 upsample 2x 26 x 26 x 128 -> 52 x 52 x 128
98 route 97 36
99 conv 128 1 x 1 / 1 52 x 52 x 384 -> 52 x 52 x 128 0.266 BF
100 conv 256 3 x 3 / 1 52 x 52 x 128 -> 52 x 52 x 256 1.595 BF
101 conv 128 1 x 1 / 1 52 x 52 x 256 -> 52 x 52 x 128 0.177 BF
102 conv 256 3 x 3 / 1 52 x 52 x 128 -> 52 x 52 x 256 1.595 BF
103 conv 128 1 x 1 / 1 52 x 52 x 256 -> 52 x 52 x 128 0.177 BF
104 conv 256 3 x 3 / 1 52 x 52 x 128 -> 52 x 52 x 256 1.595 BF
105 conv 18 1 x 1 / 1 52 x 52 x 256 -> 52 x 52 x 18 0.025 BF
106 yolo
实际,这个已经告诉了我们每层的输出情况。每层特征图的大小情况:
在前文网络的基础上,用红色做了注释。residual使用残差结构。什么是残差结构?举个例子在第一层残差结构(其输出为208208128),其输入为20820864,经过3211和6433的卷积后,其生成的特征图与输入叠加起来。其结构如下:
其叠加后的特征图作为新的输入输入下一层。YOLO主体是由许多这种残差模块组成,减小了梯度爆炸的风险,加强了网络的学习能力。
可以看到YOLO有3个尺度的输出,分别在52×52,26×26,13×13。嗯,都是奇数,使得网格会有个中心位置。同时YOLO输出为3个尺度,每个尺度之间还有联系。比如说,13×13这个尺度输出用于检测大型目标,对应的26×26为中型的,52×52用于检测小型目标。上一张图,我觉得很详细看得懂。
这个检测COCO(80个类的),所以其输出需要构造为:S×S×3×(5+class_number)。解释下为什么是这样。
YOLO将图像划分为S×S的网格,当目标中心落在某个网格中,就用这个网格去检测它,这是S×S的由来。为什么是3,是因为每个网格需要检测3个anchorbox(注意有3个尺度),所以对于每个尺度,其输出为S×S×3×???
对于一个anchorbox,它包含坐标信息(x , y , w , h )以及置信度,而这有5个信息;同时还会包含是否所有类别的信息,使用one-hot编码。比如说有3个类:person、car、dog。检测的结果是人,那么就编码为[1,0,0]。可见所有类别信息都会被编码,COCO有80个类别的话,便是5+80。所以,对于每个维度的输出,其结果为:S × S × 3 × ( 5 + 80 ) = S × S × 255 S×S×3×(5+80) = S×S×255S×S×3×(5+80)=S×S×255.
同时从上图可以看到,其结果便是通过一些卷积操作,将输出构造成这样。并且将不同尺度的特征图叠加到一起,增加输出的信息。这个图可以好好看看。
更多信息请关注公众号:
7.参考文献
[1] Analogy. Wikipedia, Mar 2018. 1
[2] C.-Y. Fu, W. Liu, A. Ranga, A. Tyagi, and A. C. Berg. Dssd: Deconvolutional single shot detector
[3] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition.
[4] J. Huang, V. Rathod, C. Sun, M. Zhu, A. Korattikara, A. Fathi, I. Fischer, Z. Wojna, Y. Song, S. Guadarrama, et al. Speed/accuracy trade-offs for modern convolutional object
[5] I. Krasin, T. Duerig, N. Alldrin, V. Ferrari, S. Abu-El-Haija, A. Kuznetsova, H. Rom, J. Uijlings, S. Popov, A. Veit, S. Belongie, V. Gomes, A. Gupta, C. Sun, G. Chechik, D. Cai, Z. Feng, D. Narayanan, and K. Murphy. Openimages: A public dataset for large-scale multi-label and multi-class image classification.
[6] T.-Y. Lin, P. Dollar, R. Girshick, K. He, B. Hariharan, and S. Belongie. Feature pyramid networks for object detection. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 2117–2125, 2017. 2, 3
[7] T.-Y. Lin, P. Goyal, R. Girshick, K. He, and P. Dollar. ´Focal loss for dense object detection.
[8] T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ramanan, P. Dollar, and C. L. Zitnick. Microsoft coco: Common objects in context. In European conference on computer vision, pages 740–755. Springer, 2014.
[9] W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, C.Y. Fu, and A. C. Berg. Ssd: Single shot multibox detector. In European conference on computer vision, pages 21–37. Springer, 2016.
[10] I. Newton. Philosophiae naturalis principia mathematica. William Dawson & Sons Ltd., London, 1687.
[11] J. Parham, J. Crall, C. Stewart, T. Berger-Wolf, and D. Rubenstein. Animal population censusing at scale with citizen science and photographic identification. 2017.
[12] J. Redmon. Darknet: Open source neural networks in c
[13] J. Redmon and A. Farhadi. Yolo9000: Better, faster, stronger. In Computer Vision and Pattern Recognition (CVPR), 2017 IEEE Conference on, pages 6517–6525. IEEE, 2017. 1, 2, 3
[14] J. Redmon and A. Farhadi. Yolov3: An incremental improvement. arXiv, 2018.
[15] S. Ren, K. He, R. Girshick, and J. Sun. Faster r-cnn: Towards real-time object detection with region proposal networks.
[16] O. Russakovsky, L.-J. Li, and L. Fei-Fei. Best of both worlds: human-machine collaboration for object annotation. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 2121–2131, 2015.
[17] M. Scott. Smart camera gimbal bot scanlime:027, Dec 2017.
[18] A. Shrivastava, R. Sukthankar, J. Malik, and A. Gupta. Beyond skip connections: Top-down modulation for object detection.
[19] C. Szegedy, S. Ioffe, V. Vanhoucke, and A. A. Alemi. Inception-v4, inception-resnet and the impact of residual connections on learning. 2017.