• 回答数

    3

  • 浏览数

    228

麦兜爱李公主
首页 > 期刊论文 > yolo5论文文献

3个回答 默认排序
  • 默认排序
  • 按时间排序

水水香蓝草

已采纳

yolo容易漏检,但ssd不容易。YOLO虽然能够达到实时的效果,但是其mAP与刚面提到的的结果有很大的差距,每个网格只预测一个物体,容易造成漏检。针对YOLO中的这些不足,该论文提出的方法SSD在这两方面都有所改进,同时兼顾了mAP和实时性的要求。在满足实时性的条件下,接近stateofart的结果。

169 评论

艾迪奥特曼

把one-hot label 转换为soft label,一般认为这样更容易work。

= (reduction='none') # must be () 这里reduction用none因为在forward里返回的时候取mean。

刚开始看这几行非常confused,查了很久。

这个issue里说减少false negative的影响,我觉得应该写错了,是减少false positive的影响。

false negative指gt有框而network没有predict到,这时候的weight应该要比较大才对。

,当 ,即 时,alpha_factor=0,这应该是false positive的情况。

直白的说,network觉得这里有一个obj,但是gt说没有,这种情况不应该过多的惩罚。

如果采用绝对值的话,会减轻pred和gt差异过大造成的影响。

假设gt是1,pred_prob如果很小,那么就是hard,这样算出来的p_t也会小,最后modulating_factor大。

对alpha_factor也是类似的。alpha_factor对应于foreground,一般设置为。

这里modulating_factor的算法和QFL论文写的一致。

原本FL用class label,也就是one-hot discrete label来supervise;而QFL将其换成了IoU continuous label。

我们先明确一下p和targets的shape p,也就是prediction,[num_dec_layer, batch_size, num_anchor, height, width, 85],这里85是80个class和4个offset以及1个confidence。 targets [nt, 6]

BCEcls, BCEobj是两个criteria,在scratch的hyp中g=0所以没有用focal loss,是普通的BCEloss

cp 和 cn 是soft label的probability,比如 。

balance控制obj loss的加权系数,autobalance决定加权系数也就是balance是否自动更新,autobalance一般是False。

= {3: [, , ]} ,有三个layer的输出,第一个layer的weight是4,第二个1,以此类推。如果有5个layer的输出才用右边那个weight数组。

gr 是iou ratio。

targets就是这个batch里所有的labels,targets(img_idx, cls_idx, x, y, w, h),shape为[nt, 6]。可参考utils/ line 522, 599。 随便打印几行targets也可以验证我们的分析。

x, y, w, h是归一化后的结果。

先复制了三份一样的targets,在最后面加了一维表明anchor idx,本来是6现在变成7。

gain[2:6] = (p[i].shape)[[3, 2, 3, 2]] # xyxy gain t = targets * gain 这里是把 grid size 拿出来乘,恢复到特征图的维度。

在 match 里面比较简单,容易看懂,就是 anchor 和 target 不能差的太离谱,误差小于阈值就 match。

下一步在扩展 targets,个人认为是 positive examples 太少了,所以根据 center 在 cell 中的相对位置,添加相邻的两个 cell 作为 targets。

举个例子,如果 center 在 cell 的左上角,那么 cell 本身,和 cell 的左边一个位置,还有 cell 的上边一个位置,这三个 cell 都作为 targets。

我个人觉得这里的写法是非常巧妙的,取了 grid xy 和 inverse(类似于 flip)。

(gxy % 1. < g) ,这里的 g 是 ,如果仅考虑这个条件, 好像可以 直接判断是否选取左边 cell 和上边 cell。

但是要考虑到边界情况,如果当前已经处于最上方,已经没有上边 cell 可以选择了,这就是 (gxy > 1.) 起到的作用,判断 edge case。

如果本来大于 ,那么 inverse 后就小于 了,所以可以使用相同的逻辑选择右边 cell 和下边 cell ,类似地推理到 edge case。

最后一点要提的是使用 clamp_ 确保返回的 grid indices 不是非法值,旧版本 code 没用这个检查,不过好像也没什么差。

lcls, lbox, lobj 这三个用来存放loss,默认使用pytorch提供的BCE loss。

pxy = ps[:, :2].sigmoid() * 2. - 在learn的时候不需要加cx cy。

bbox回归的公式可以参考model/ line56, 57。

Objectness 这里 gr 设置为 ,也就意味着直接拿 iou 作为 confidence。

至于为什么返回 loss 的时候为什么要乘 bs,还不是很清楚,第二个返回值就是为了打印信息用的。

在train的时候,target是在feature map的scale。

在inference的时候,直接乘img map scale的anchor size就可以了,也就是配置文件里的anchor。

101 评论

密果儿颖颖

对于YOLOv5的命名发布这么大的争议的原因是:Ultralytics公司在开源YOLOv5的代码时,未发布经过同行评议的YOLOv5论文。主要原因就是YOLOv5的license是GPL协议(),而Kaggle不允许使用GPL协议的项目参赛。那么今天就来普及一下这些开源软件协议。软件开源是许多软件企业需要关注的问题,不同的开源软件协议,对应不同的源代码使用限制。只有了解这些开源软件协议,才能更好地使用和回馈开源软件,否则就有可能触犯法律。

266 评论

相关问答

  • 论文参考文献的档案文献

    1.连续出版物的格式 标引项顺序号 作者.题名[J].刊名,出版年份,卷号(期号):起止页码. (外名可缩写,缩写后首字母大写,并省略缩写点) 2.专著的著

    婉儿xiaotu 7人参与回答 2023-12-07
  • 会计论文文献参考文献

    会计论文参考文献范本 参考文献是在学术研究过程中,对某一著作或论文的整体的参考或借鉴。征引过的'文献在注释中已注明,不再出现于文后参考文献中。下面我们来看一下会

    龙真妈妈 3人参与回答 2023-12-06
  • 论文添加文献引用文献

    写论文如何引用参考文献如下: 参考文献只列出已经发表的有影响的参考文献,尽量不要使用未发表的数据和摘要。在投稿之前要对照所有的文献原始出处,仔细检查参考文献内容

    夏初哥哥 2人参与回答 2023-12-09
  • 开题报告文献论文文献

    一样的。 本科生毕业论文的主要内容应包括:题目、目录、开题报告、中文摘要与关键词、英文摘要与关键词、正文及相关图表、参考文献等。引文应以原始文献和第一手资料为原

    19870629侠女 4人参与回答 2023-12-09
  • 论文文献引用文献代码

    字母代表所引用的文献的类型,如【J】代表所引用的这篇文献来自期刊。 根据国家标准,参考文献的引用需要按照一定的格式进行,其中不同类型的参考文献的引用需要做出区分

    力力力力力 6人参与回答 2023-12-08