[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dzomcHYC-1639818824706)(C:\Users\Mike\Desktop\屏幕截图 2021-12-17 150620.png)]
code:
paper:2112.09133.pdf (arxiv.org)
要想理解论文,我们先搞明白什么是HOG特征
“HOG(方向梯度直方图)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子,HOG特征通过计算和统计图像局部区域的梯度方向直方图来构成特征”
HOG可以表示图像得物体特征,能够检测出这类物体,在早期的计算机视觉,HOG就已经有应用了,比如HOG+SVM的行人检测
这里不详细讲HOG,有兴趣的同学可以搜论文,下面开始正题
遮蔽左图,人类通常能猜出这个大概是什么,并绘制想象信息的轮廓,比如我们猜 masked input,大家大概能猜出来是一个狗
我们要教计算机来会猜,BEiT是去猜经过dVAE的visual token,MAE是去猜pixel,而这篇工作是去猜HOG
作者也证明猜这个HOG很牛的,不仅在视频牛逼,而且也在图像牛逼,通过这个思路,被训练的模型可以充分理解复杂时空结构
我们看看网络的结构是什么样的,方法很简单,一个原图经过masked后进入encoder,然后linear一下,预测这个原图的HOG,具体做法是,首先获得原图的HOG特征图,然后分块,把要mask的部分平坦化,最小化预测的HOG和原始HOG的L2损失
就这么简单,没有BEiT那种复杂的dVAE,MaskFeat 不仅在视频方面取得了不俗的性能,而且在图像方面也有不俗的性能,在ViT-B模型上性能超越BEiT、SimMIM、MAE等
ViT-B | |
---|---|
MoCo v3 | 83.2 % |
DINO | 82.8 % |
BEiT | 83.2 % |
SimMIM | 83.8 % |
MAE | 83.6 % |
MaskFeat | 84.0 % |
自监督的MIM说到底就是在玩去预测什么,以及为什么预测这个能牛逼,bert是预测被mask的词语,beit是预测被mask的visual token,mae是预测被mask的pixel,而现在我们要说一下为什么maskfeat去预测被mask的部分的HOG可以work?
为了证明HOG可以作为很好的预测特征,作者列出了其他的特征,通过实验对比来证明HOG的优势
这个在以前的图像修补任务经常用到,但是有一个潜在的缺点,会过度拟合局部统计数据和高频细节,局部统计这里是指光照和对比变化,这会给模型理解事物本质造成噪声
HOG擅长捕捉局部形状和外观,一定程度不受几何变化影响,对光照变化和对比度变化鲁棒,这一点在HOG+SVM行人检测十分重要,同时HOG计算开销很小,卷积然后进行直方图和归一化就行了,可以忽略
会引起额外的计算开销,如BEiT
deep feature和dVAE一样会带来额外的计算开销,pseudo label参考TokenLabeling
为了比较上述那个好,作者做了简单的实验,如下图所示,基于RGB和基于HOG是one stage的,因为不会引入别的额外模型,直接从图像得到数据,其他的都是two stage(除了scratch外),都需要设定额外模型来对原图进行特征提取
作者注意到,在微调过程中,superviesd 和 pseudo-label 会出现显著的过拟合,表明从类别标签学习在Maskfeat是不合适的,一定程度说明,先ssl然后做fine tune确实有一定的效果
考虑性能和计算成本的权衡,作者选择了HOG作为pretext task
接下来作者基于HOG做了一系列的实验
上图所示,MaskFeat无需额外数据(baseline为ImagNet1k),无需额外模型,得到了具有竞争力的性能,pre-train 1600 epoch,fine-tune 100 epoch(vit-l 50 epoch)有趣得的是,在vit-l大模型下得到了非常好的扩展性,相比scratch,自监督确实是大模型一个很好的解决之路
此外,针对Pixel和HOG更详细的对比,作者做了一系列的实验,如下所示,基于Pixel的预测会生成模糊的图像,如下所示
更形象一点,在高频区域下,比如预测海胆,周边的毛刺可以看做高频区域,基于Pixel的方式会产生模糊的颜色预测,而HOG的预测可以很好抓住高频区域的纹理变化,对模糊性更加鲁棒
实际上,在MAE的实验中,这个现象也存在,如下图所示,高频部分被模糊,纹理特征不明显
[1] Histograms of Oriented Gradients for Human Detection (inria.fr)
[2] facebookresearch/deit: Official DeiT repository (github.com)
[3] zihangJiang/TokenLabeling: Pytorch implementation of “All Tokens Matter: Token Labeling for Training Better Vision Transformers” (github.com)
=============================================
解读匆忙,不足之处多包涵
另外打个广告推广一下 PASSL,飞桨的自监督库,欢迎star呀~
PASSL包含 SimCLR,MoCo,BYOL,CLIP等基于对比学习的图像自监督算法以及 Vision-Transformer,Swin-Transformer,BEiT,CVT,T2T,MLP_Mixer等视觉Transformer算法 (github.com)