Hugging Face 计算机视觉的现状

Hugging Face 已将其生态系统扩展至支持八项核心计算机视觉任务,超过 3,000 个模型和 100 多个数据集。此扩展通过提供针对 Transformer 基础和传统卷积架构的推理、训练和部署的标准化工具,使计算机视觉更加民主化。

核心视觉任务与模型支持

Hugging Face 支持八项核心计算机视觉任务,每项任务在 Hub 上至少有 10 个模型检查点可用:

  • 图像分类
  • 图像分割
  • (零样本)目标检测
  • 视频分类
  • 深度估计
  • 图像到图像合成
  • 无条件图像生成
  • 零样本图像分类

除这些核心任务外,生态系统还支持交叉的视觉-语言任务,包括图像到文本(OCR 与图像字幕)、文本到图像、文档问答以及视觉问答。该库支持多种架构,包括 ViT、Swin、DETR 等基于 Transformer 的模型,以及 ResNet、ConvNeXt、RegNet 等纯卷积架构。

推理与训练框架

简化推理的 Pipelines

Hugging Face Pipelines 为七项视觉任务提供标准化的推理接口。这使得实践者能够使用一致的 API 实现诸如深度估计或视觉问答等复杂任务,而无需关心底层模型。

训练与微调

Trainer API(位于 Transformers 库中)无缝支持图像分类、图像分割、视频分类、目标检测和深度估计。对于 Trainer 未支持的任务,只要模型包含损失计算,仍然可以进行微调。

为支持研究和自定义预训练,Hugging Face 提供了自监督预训练策略(如 MAE)和对比图文预训练(如 CLIP)的示例脚本。

生态系统集成与工具

数据集与增强

Hugging Face Hub 托管了超过 100 个视觉数据集,包括 ImageNet-1k、LAION-400M 和 COYO-700M。这些数据集已与 datasets 库集成,便于加载,并兼容 Kornia、Albumentations 等增强库。

专用库:timm 与 Diffusers

  • timm(PyTorch Image Models): Hugging Face 已将 timm 库中的 200 多个模型集成到 Hub 中。
  • Diffusers: 该模块化工具箱提供预训练的扩散模型,用于诸如根据自然语言输入生成图像(如 Stable Diffusion)等任务。

AutoTrain 零代码训练

AutoTrain 提供了零代码的先进模型训练方案。虽然目前主要面向计算机视觉的图像分类,但它也支持通过公开排行榜进行自动模型评估。

零样本视觉模型

Hugging Face 支持多种模型,可在无需特定任务训练数据的情况下完成视觉任务:

  • CLIP: 通过自然语言提示实现零样本图像分类。
  • OWL-ViT: 支持语言条件的零样本目标检测以及图像条件的一次性目标检测。
  • CLIPSeg: 提供语言条件的零样本以及图像条件的一次性图像分割。
  • X-CLIP: 实现视频分类的零样本泛化。

技术理念与部署

统一的用户体验

无论是哪种模态,Hugging Face 都遵循一致的设计理念。视觉模型使用预处理器(类似于 NLP 的分词器)来准备数据,确保从 from_pretrained() 下载到 push_to_hub() 上传的工作流在 PyTorch 与 TensorFlow 之间保持统一。

部署选项

视觉模型可通过 Hugging Face Inference Endpoints 部署,该服务原生支持图像分类、目标检测和图像分割。对于其他任务,可使用自定义处理器。生态系统还提供了在 Kubernetes 或 Vertex AI 上使用 TF Serving 部署 TensorFlow 视觉模型的指南。

Sources