- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想实现 Yolo v1,但我对算法有一些疑问。
据我了解,在 YOLO 中,我们将图像按单元格划分 (7x7),并预测固定数量的边界框(论文中默认为 2 个,具有 4 个坐标:x、y、w、h),置信度得分,我们还预测每个单元格的类别得分。在测试步骤中,我们可以使用NMS算法来去除物体的多重检测。
1)我们什么时候将图像划分为网格?事实上,当我阅读论文时,他们提到了分割图像,但是当我查看网络的架构时,我们似乎有两部分:卷积层和 FC 层。这是否意味着网络“自然地”处理边界框输出?网格的大小 7x7 是特定于卷积部分使用的论文吗?例如,如果我们使用 VGG,它会改变网格的大小吗?
编辑:由于我们网络的输出,网格似乎被“虚拟”划分。
2) 每个单元格使用 2 个边界框。但在一个单元格中,我们只能预测一个物体。为什么我们使用两个边界框?
At training time we only want one bounding box predictor to be responsible for each object. We assign one predictor to be “responsible” for predicting an object based on which prediction has the highest current IOU with the ground truth. This leads to specialization between the bounding box predictors. Each predictor gets better at predicting certain sizes, aspect ratios, or classes of object, improving overall recall.
3)我不太明白这句话。事实上,据说图像中的每个对象都有一个边界框。但边界框仅限于单元格,那么当物体大于一个单元格时,YOLO 是如何工作的呢?
4)关于输出层,据说他们使用线性激活函数,但是它使用的最大值等于1吗?因为他们说他们标准化了 0 和 1 之间的坐标(我认为这对于置信度和类别预测是相同的)。
最佳答案
1)最后一层的输出将是大小为SxSx(5B+C)的向量。这意味着,如果您采用该向量,并且采用前 5 个值,这些值将是 x、y、w、h 和第一个单元格中第一个框的置信度,那么后五个值将对应于第二个边界框在第一个单元格中,您将拥有与类别概率相对应的 C 值,假设您有两个类别以及网络的以下输出 [0.21 0.98],因此第二个类别具有更大的概率,这意味着网络认为它是该网格单元中的第二类。所以是的,你是对的,图像实际上是被分割的。
2)当他们训练网络时,他们选择哪个预测器(从某个网格单元中的 B 框中读取一个框)进行惩罚。他们根据与真实情况的 IoU 最高的值来选择一个预测器。论文引用:“我们指定一个预测器“负责”预测一个对象,该对象的预测与实际情况的当前 IOU 最高。”假设在预测过程中,第一个框的 IoU 为 0.3,第二个框的 IoU 为 0.7,我们选择第二个框来负责预测该对象,并且我们将仅累积该框的损失。因此,例如,在训练过程中,网络自然会学习使用第一个预测器来预测高盒子(人),并使用第二个预测器(汽车)来预测宽盒子。所以使用多个盒子的原因是为了能够预测不同长宽比的盒子。
3) “但是边界框仅限于单元格,那么当对象大于一个单元格时,YOLO 如何工作?”。 YOLO预测的边界框不限于网格单元,仅其(x,y)坐标限于网格单元。他们在论文中写道:“(x,y)坐标代表相对于网格单元边界的框的中心。宽度和高度是相对于整个图像预测的。”。正如您所看到的,它们预测 bbox 相对于整个图像的宽度和高度,而不是网格单元。
4)嗯,我不知道这个问题的答案,但我可以说在他们的代码中他们还使用了检测层,它计算损失、IoU 和很多其他东西。我不太擅长阅读他们的代码,但你可能有更好的运气:this is code for detection layer in yolo github
附注关于 YOLO 的另一个很好的信息来源:Joseph Redmon's presentation on youtube
关于machine-learning - 训练步骤中的 Yolo v1 边界框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49707542/
real adaboost Logit boost discrete adaboost 和 gentle adaboost in train cascade parameter 有什么区别.. -bt
我想为 book crossing 构建训练数据矩阵和测试数据矩阵数据集。但作为 ISBN 代码的图书 ID 可能包含字符。因此,我无法应用此代码(来自 tutorial ): #Create two
我找到了 JavaANPR 库,我想对其进行自定义以读取我所在国家/地区的车牌。 似乎包含的字母表与我们使用的字母表不同 ( http://en.wikipedia.org/wiki/FE-Schri
我有一个信用卡数据集,其中 98% 的交易是非欺诈交易,2% 是欺诈交易。 我一直在尝试在训练和测试拆分之前对多数类别进行欠采样,并在测试集上获得非常好的召回率和精度。 当我仅在训练集上进行欠采样并在
我打算: 在数据集上从头开始训练 NASNet 只重新训练 NASNet 的最后一层(迁移学习) 并比较它们的相对性能。从文档中我看到: keras.applications.nasnet.NASNe
我正在训练用于分割的 uNet 模型。训练模型后,输出全为零,我不明白为什么。 我看到建议我应该使用特定的损失函数,所以我使用了 dice 损失函数。这是因为黑色区域 (0) 比白色区域 (1) 大得
我想为新角色训练我现有的 tesseract 模型。我已经尝试过 上的教程 https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesser
我的机器中有两个 NVidia GPU,但我没有使用它们。 我的机器上运行了三个神经网络训练。当我尝试运行第四个时,脚本出现以下错误: my_user@my_machine:~/my_project/
我想在python的tensorflow中使用稀疏张量进行训练。我找到了很多代码如何做到这一点,但没有一个有效。 这里有一个示例代码来说明我的意思,它会抛出一个错误: import numpy as
我正在训练一个 keras 模型,它的最后一层是单个 sigmoid单元: output = Dense(units=1, activation='sigmoid') 我正在用一些训练数据训练这个模型
所以我需要使用我自己的数据集重新训练 Tiny YOLO。我正在使用的模型可以在这里找到:keras-yolo3 . 我开始训练并遇到多个优化器错误,添加了错误代码以防止混淆。 我注意到即使它应该使用
将 BERT 模型中的标记化范式更改为其他东西是否有意义?也许只是一个简单的单词标记化或字符级标记化? 最佳答案 这是论文“CharacterBERT: Reconciling ELMo and BE
假设我有一个非常简单的神经网络,比如多层感知器。对于每一层,激活函数都是 sigmoid 并且网络是全连接的。 在 TensorFlow 中,这可能是这样定义的: sess = tf.Inte
有没有办法在 PyBrain 中保存和恢复经过训练的神经网络,这样我每次运行脚本时都不必重新训练它? 最佳答案 PyBrain 的神经网络可以使用 python 内置的 pickle/cPickle
我尝试使用 Keras 训练一个对手写数字进行分类的 CNN 模型,但训练的准确度很低(低于 10%)并且误差很大。我尝试了一个简单的神经网络,但没有效果。 这是我的代码。 import tensor
我在 Windows 7 64 位上使用 tesseract 3.0.1。我用一种新语言训练图书馆。 我的示例数据间隔非常好。当我为每个角色的盒子定义坐标时,盒子紧贴角色有多重要?我使用其中一个插件,
如何对由 dropout 产生的许多变薄层进行平均?在测试阶段要使用哪些权重?我真的很困惑这个。因为每个变薄的层都会学习一组不同的权重。那么反向传播是为每个细化网络单独完成的吗?这些细化网络之间的权重
我尝试训练超正方语言。我正在使用 Tess4J 进行 OCR 处理。我使用jTessBoxEditor和SerakTesseractTrainer进行训练操作。准备好训练数据后,我将其放在 Tesse
我正在构建一个 Keras 模型,将数据分类为 3000 个不同的类别,我的训练数据由大量样本组成,因此在用一种热编码对训练输出进行编码后,数据非常大(item_count * 3000 * 的大小)
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
我是一名优秀的程序员,十分优秀!