DINO 自监督算法简介

Emerging Properties in Self-Supervised Vision Transformers

[Ref: https://arxiv.org/abs/2104.14294]

DINO 的初衷是质疑自监督学习相较于 CNN 是否为 Transformer(ViT) 提供了新的属性,但是在过程中,发现:

  • 自监督 ViT 的特征在图像的语义分割中包含的显式信息,这是之前监督学习下无论 ViT 还是 CNN 都没有出现的情况。
  • 这个架构用一个很小的 ViT 提取出来的特征用 k-NN 来对 ImageNet 图像数据集进行分类可以达到 78.3% top-1

论文将这个自监督结构命名为 DINO 🦖 ,这种**没有引入标签的“自蒸馏”**形式在结合各种 ViTs 以后可以达到 80.1% top-1.

下面的这幅 GIF 很简洁地表示了 DINO 的结构:Alt

DINO 的结构

在这里插入图片描述

其中 Student 模型和 Teacher 模型是完全一样的

在训练中,Teacher 模型是没有训练的,它的权重更新是通过对 Student 模型权重的 EMA(exponential moving average )
来更新 Teacher 模型的。下面的图是 EMA 的举例,可以感受一下。

还有值得注意的是两个模型的输入是完全独立的数据增强

具体的表示可以参考 [Ref: https://en.wikipedia.org/wiki/Moving_average]

在这里插入图片描述

Pseudocode

在这里插入图片描述

下载源码

下面就是代码层面的一些展示了。

!git clone https://github.com/facebookresearch/dino.git /home/featurize/dino

目录准备以及下载图片样例

!mkdir /home/featurize/dino/input
!mkdir /home/featurize/dino/output
!wget https://www.snowskool.com/uploads/images/ski_and_snowboard_snowsport12.jpg -O /home/featurize/dino/input/ski.jpg

import matplotlib.pyplot as plt
import cv2

plt.axis('off')
plt.imshow(cv2.cvtColor(cv2.imread('/home/featurize/dino/input/ski.jpg'), cv2.COLOR_BGR2RGB));

在这里插入图片描述

对图片进行推理

!python /home/featurize/dino/visualize_attention.py  \
--image_path /home/featurize/dino/input/ski.jpg  \
--output_dir /home/featurize/dino/output

f, axs = plt.subplots(2,3, figsize=(12,8))
for i, ax in enumerate(axs.reshape(-1)):
    ax.axis('off')
    ax.imshow(cv2.cvtColor(cv2.imread(f'/home/featurize/dino/output/attn-head{i}.png'), cv2.COLOR_BGR2RGB));

在这里插入图片描述

下面试一下视频

下载测试视频

!unset http_proxy;unset https_proxy;unset all_proxy
!wget https://featurize.oss-cn-chengdu.aliyuncs.com/input.mp4 -O /home/featurize/dino/input/input.mp4

Jupyter里可视化一下

from IPython.display import Video
Video('/home/featurize/dino/input/input.mp4', embed=True, width=800, height=600)

在这里插入图片描述

DINO 进行推理

!python /home/featurize/dino/video_generation.py  \
--pretrained_weights dino_deitsmall8_pretrain.pth  \
--input_path /home/featurize/dino/input/input.mp4  \
--output_path /home/featurize/dino/output \
--video_format mp4 \
--fps 25

这是 Dave 之前推理的视频

在这里插入图片描述

drawing

Dave 觉得自监督学习在并未输入人类的理解信息的情况下,模型能够给出语义级别的解释并且能够超过监督学习,这就十分符合我对智能体的期望。

原文链接
点击👆原文链接可以运行代码
在这里插入图片描述

image

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dave 扫地工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值