英文

MobileViT + DeepLabV3(小尺寸模型)

MobileViT模型在512x512的PASCAL VOC分辨率下进行预训练。该模型由Sachin Mehta和Mohammad Rastegari于 MobileViT: Light-weight, General-purpose, and Mobile-friendly Vision Transformer 年提出,并于 this repository 年首次发布。使用的许可证是 Apple sample code license

声明:发布MobileViT的团队没有为该模型撰写模型卡片,因此此模型卡片是由Hugging Face团队编写的。

模型描述

MobileViT是一个轻量级、低延迟的卷积神经网络,它将MobileNetV2风格的层与使用变换器进行全局处理替代卷积中的局部处理的新块相结合。与ViT(Vision Transformer)一样,图像数据在被变换器层处理之前被转换为平坦的补丁。之后,这些补丁被“展开”回特征图。这样MobileViT块就可以放置在CNN的任何位置。MobileViT不需要任何位置嵌入。

该存储库中的模型为MobileViT主干添加了一个 DeepLabV3 头用于语义分割。

预期用途和限制

您可以使用原始模型进行语义分割。查看 model hub 以查找您感兴趣的任务的微调版本。

如何使用

以下是如何使用该模型的方法:

from transformers import MobileViTFeatureExtractor, MobileViTForSemanticSegmentation
from PIL import Image
import requests

url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)

feature_extractor = MobileViTFeatureExtractor.from_pretrained("apple/deeplabv3-mobilevit-small")
model = MobileViTForSemanticSegmentation.from_pretrained("apple/deeplabv3-mobilevit-small")

inputs = feature_extractor(images=image, return_tensors="pt")

outputs = model(**inputs)
logits = outputs.logits
predicted_mask = logits.argmax(1).squeeze(0)

目前,特征提取器和模型都支持PyTorch。

训练数据

MobileViT + DeepLabV3模型是在 ImageNet-1k 上进行了预训练的,该数据集包含100万个图像和1000个类,并在 PASCAL VOC2012 数据集上进行了微调。

训练过程

预处理

在推理时,图像会被中心裁剪为512x512。像素值被归一化到[0, 1]的范围内。图像应该是BGR像素顺序,而不是RGB。

预训练

MobileViT网络使用8个NVIDIA GPU从头开始在ImageNet-1k上进行了300个epoch的训练,有效批量大小为1024,并进行了3k步的学习率预热,然后是余弦退火。还使用了标签平滑交叉熵损失和L2权重衰减。训练分辨率从160x160到320x320不等,使用多尺度采样。

为了获得DeepLabV3模型,MobileViT在PASCAL VOC数据集上使用4个NVIDIA A100 GPU进行了微调。

评估结果

Model PASCAL VOC mIOU # params URL
MobileViT-XXS 73.6 1.9 M 1239321
MobileViT-XS 77.1 2.9 M 12310321
MobileViT-S 79.1 6.4 M 12311321

BibTeX条目和引用信息

@inproceedings{vision-transformer,
title = {MobileViT: Light-weight, General-purpose, and Mobile-friendly Vision Transformer},
author = {Sachin Mehta and Mohammad Rastegari},
year = {2022},
URL = {https://arxiv.org/abs/2110.02178}
}