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风格的层与使用transformers进行全局处理替代卷积的新块结合起来。与ViT(Vision Transformer)一样,图像数据在被transformer层处理之前被转换为扁平化的补丁。然后,这些补丁被“展开”回特征图。这样,MobileViT块可以放置在CNN的任何位置。MobileViT不需要任何位置嵌入。
该存储库中的模型为MobileViT骨干添加了一个用于语义分割的头部。
您可以使用原始模型进行语义分割。查看链接以查找您感兴趣的任务的微调版本。
以下是如何使用此模型的方法:
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-x-small")
model = MobileViTForSemanticSegmentation.from_pretrained("apple/deeplabv3-mobilevit-x-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模型在包含100万张图像和1,000个类别的数据集 ImageNet-1k 上进行了预训练,然后在 PASCAL VOC2012 数据集上进行了微调。
在推断时,图像会被剪裁为512x512。像素值被归一化到[0, 1]范围内。图像的像素顺序应为BGR,而不是RGB。
MobileViT网络在8个NVIDIA GPU上从头开始训练300个epochs,ImageNet-1k上的有效批量大小为1024,学习率在前3k个步骤进行了热身,然后使用余弦退火。还使用了标签平滑的交叉熵损失和L2权重衰减。训练分辨率从160x160到320x320,使用多尺度采样。
为了获得DeepLabV3模型,使用4个NVIDIA A100 GPU对MobileViT在PASCAL VOC数据集上进行了微调。
| 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 |
@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}
}