yolov3损失函数公式及代码位置,绝对良心(更新)

版本:darknet yolov3
环境:ubuntu16.04

本人小白,毕设正在做基于yolov3的目标检测系统研究,在网上找了一万遍,基本没有靠谱的损失函数,全是假的或者旧版本的,害人不浅,最后终于找到一个靠谱的。本人花了两天好不容易在源码中找到了其位置并对应上,源码超级零散,各种调用,创作者用的变量定义也不知道是不是故意的,竟然有好几个重名,还没有注释,弄得我差点拉裤

**第五次更新:-------------------------------------------------------------------------------

注意----代码位置:

损失函数的代码具体好像是在layer.c里有一部分,其他部分可以顺藤摸瓜,在layer.c所在的文件夹的其他.c文件里找到。
损失函数是在一个名叫delta的函数下分成三部分加起来的。例:delta=(a+b+c)找到这个delta函数,你就基本成功了
**
2020.5.28--------------------------------------------------------------------------------------

损失函数正主出现:

yolov3损失函数公式及代码位置,绝对良心(更新)_第1张图片
入obj是该cell中存在物体时就是1,否则就是0
脚标r是待检测的一类,如可为猫或狗等

一共分为三部分相加:坐标做损失(中心坐标xy和宽高wh在一起)+类做损失(class)+置信度做损失(conf)

***更正:**据称是误差的平方和(SSE),即每一部分都是误差平方,然后加起来,其实不然。我官网下的代码中就不是,只有坐标和置信度是误差平方,类做损失根本不是,是交叉熵。

这个SSE还可以改成我用的TSE(引用的参考文献),或者把平方换成绝对值(抗干扰性更好),还可用平方和绝对值混合的计算方法(弹性损失),不一定哪个效果更好,得具体问题具体分析试

想起来个事,我老师说这篇文章垃圾
谢谢博主,经过这个方法一弄,精确度下降了1%

参考文献:

吕铄,蔡烜,冯瑞.基于改进损失函数的YOLOv3网络.计算机系统应用,2019,28(2):1-7
LYU Shuo,CAI Xuan,FENG Rui.YOLOv3 Network Based on Improved Loss Function.COMPUTER SYSTEMS APPLICATIONS,2019,28(2):1-7

你可能感兴趣的:(yolov3)