YOLO算法流程

在YOLO算法中,为了自己在开发过程中核对自己的思路,写下这个流程:
假设现在CNN输出的结果是(19,19,5,85)的格式,即5个anchor boxes, each boxes have 85 numbers,and in these numbers, 5 numbers are pc,bx,by,bh,bw, the other numbers are classes like bike,car,people and so on…
anchor boxes的引入是为了解决对于一个输出框,我们可能有多个被检测对象。
对于19*19的输出框中,每个框子,都有5个预测框结果,然后抛去 低可能性的输出框(通过pc值这个阈值,不是通过IOU),之后在剩下的输出框中的5个预测结果中通过非极大值抑制利用IOU的值删除4个低的anchor boxes(注意对于每个输出框都有一个(1,1,5,85)的标签值,其中标签值中仅有一组是有值的,其他组都是??? 这句话是错的,因为每个输出框可能存在两个或者多个对象,也就是标签值中可能存在两个或者多个有值的 ),最后的状态时:存在部分输出框,其中每个输出框中有对应对象的多个anchorboxes,。
之后对每个输出框,执行:对每个对象进行一个非最大值抑制,最终会筛选出每个输出框中对象的一个anchorbox。

例如

例如上图中:画箭头的两个框,假设我们的标签值就只有2个anchor boxes。
经过模型输出后,我们可以得到2个anchor boxes,我们检测的目标是红绿灯,可以看到模型的预测结果输出了两个anchor boxes的框,但是我们要确定到底选取哪一个anchor box与我们标签值的anchor boxes交并比最大的那个,所以就需要让这两个输出的anchor box预测值与我们的标签值中anchor box的框子进行对比,选择交并比最大的那个作为我们模型最大的那个作为输出。
但是在吴恩达的作业中,我现在还不知道这块的算法是放在了训练模型外的还是在训练模型中的,我想应该是放在了训练模型中的,不然反向传播的时候会很麻烦。 这块的算法是放在模型训练内的,输出的结果是:每个输出框都会有5个anchor boxes,预测的结果也是anchor box,如果在训练阶段就用这个算法进行处理的话,那铁定不行,这个非极大值抑制的手法就是在预测的时候进行筛选的。

在本文中你讲会得到以下收获:
知道YOLO算法再目标检测中的模型训练过程
知道YOLO算法再目标检测中对预测数据经过模型输出后的处理过程:非极大值抑制等,因为模型的训练只针对每一个输出框进行训练的。模型终究是模型,只提供每个输出框在训练的过程中对应的权重。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值