[论文理解]MetaAnchor: Learning to Detect Objects with Customized Anchors

MetaAnchor: Learning to Detect Objects with Customized Anchors

Intro

本文我其实看了几遍也没看懂,看了meta以为是一个很高大上的东西,一搜是元学习的范畴,学会如何学习,很绕人。万般无奈之下请教了下老师,才知道他想表达什么。其实作者的想法很简单,就是先把最后anchor预测类别和位置的权重拿出来,这里的权重通过设计另一个网络来预测,而这个网络的参数又可以通过整个网络的训练梯度回传来学习。这样做的好处是,将anchor的配置(w,h)当成了输入,只需要给定一组anchor参数,就可以完成特定的预测任务,也不用事先指定anchor的数量了,确实是好想法。

Anchor Function

我们知道传统神经网络都是通过事先设定好anchor的种类,然后训练,在训练完成后anchor就固定了,如果想要改变anchor的数量,那么就需要重新训练网络了,而本文的方法的好处是,一次训练,稍微更改,就能适应新的任务!

1492605-20190326221842794-1912394724.png

首先这个anchor function是给定输入的某个特征x和参数sita,来表征这个bin在给定参数下的类别置信度和回归offset的。sita cls 和sita reg 其实理解过来就是预测和回归网络的权重,以参数的形式表达了出来。我觉得这里只要理解了后面就没啥问题了。

作者的想法很简单,就是把anchor的配置作为输入来预测这个权重,这样就能很方便的动态调整anchor的尺度。

Anchor Function Generator

作者先做了个下标变换,其本质目的还是为了使得anchor function的通用化,原来每个bin都有自己独立的一套参数,这个参数其实是预先设计好的,即anchor的配置,把bi放到参数sita里,就是上面提到的,将anchor的配置变为输入的参数,而不是预先设计好并且一一对应的。这里的理解是预先设计好的anchor的尺寸其实是预先设计了anchor function,如果sita改变,得重新训练网络。

1492605-20190326221854274-1541678138.png

然后就是提出anchor function generator来预测给定anchor配置下的参数sita_bi,这时候bi就是输入的anchor配置。

1492605-20190326221903351-1348741754.png

然后将上面的公式扩展成下面的子网络形式,这样就能够通过网络来学习这个网络的参数,从而预测网络权重了。

1492605-20190326221911434-1481842252.png

Architecture Details

文章用retina net来做验证,通过将retina net的最后预测层的权重交由另一个子网络来预测,实验证了文章的想法。其中,其网络结构如图:

1492605-20190326221921222-129912171.png

其中,anchor的配置如下图计算:

1492605-20190326221929478-1106484910.png

1492605-20190326221936701-357435398.png

Conclusion

MetaAnchor的想法很简单,也很实用,解决的问题也很明确,就是图个方便,每次改配置不用重新训练了,文章说实话不好懂,但是懂了就简单了。几句话其实就说完了。

转载于:https://www.cnblogs.com/aoru45/p/10604283.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值