HuggingFace镜像/Falcon-Perception
模型介绍文件和版本分析
下载使用量0
Falcon Perception

Falcon Perception

Falcon Perception 是一个拥有 0.6B 参数的早期融合视觉语言模型,专门用于开放词汇接地与实例分割任务。给定一张图像和一个自然语言查询,该模型能够返回零个、一个或多个匹配实例,并提供像素级精确的掩码。

该模型围绕简洁的接口构建。图像块和文本标记通过单一 Transformer 协同处理,并采用混合注意力掩码:图像标记构建双向视觉上下文,而文本和任务标记则在图像条件下进行因果解码。对于每个实例,模型按固定顺序生成简短的结构化任务标记序列,即先 <|coord|>,再 <|size|>,最后 <|seg|>。其中,<|seg|> 标记作为掩码查询,其隐藏状态经投影后与上采样图像特征进行点积运算,无需自回归掩码生成即可产生全分辨率的二值掩码。

链接

  • 代码与推理引擎:https://github.com/tiiuae/Falcon-Perception
  • 技术报告:arXiv 链接即将发布
  • PBench 数据集:tiiuae/PBench
  • OCR 模型:tiiuae/Falcon-OCR

快速开始

安装

pip install "torch>=2.5" transformers pillow einops pycocotools

该模型需要 PyTorch 2.5 或更新版本以支持 FlexAttention。首次调用可能会较慢,因为 torch.compile 可能需要构建优化的内核。

运行开放词汇分割

import torch
from PIL import Image
from transformers import AutoModelForCausalLM

model = AutoModelForCausalLM.from_pretrained(
    "tiiuae/falcon-perception",
    trust_remote_code=True,
    device_map={"": "cuda:0"},
)

image = Image.open("photo.jpg")
preds = model.generate(image, "cat")[0]

for p in preds:
    print(p["xy"], p["hw"])

解码掩码

import numpy as np
from pycocotools import mask as mask_utils

for p in preds:
    rle = p["mask_rle"]
    # pycocotools expects bytes for counts
    m = {"size": rle["size"], "counts": rle["counts"].encode("utf-8")}
    mask = mask_utils.decode(m).astype(bool)  # H x W
    print(mask.shape, mask.sum())

API

model.generate(images, queries, **kwargs)

参数类型默认值描述
imagesPIL.Image 或 list必需单张图像或图像列表
queriesstr 或 list[str]必需查询字符串,每张图像对应一个
max_new_tokensint2048最大解码步数
min_dimensionint256调整大小后图像边的最小尺寸
max_dimensionint1024调整大小后图像边的最大尺寸
compileboolTrue首次调用时运行 torch.compile

返回值: list[list[dict]],每张图像对应一个列表。

每个预测字典包含:

{
  "xy": {"x": float, "y": float},                    # center in normalized coordinates (0 to 1)
  "hw": {"h": float, "w": float},                    # size in normalized coordinates (0 to 1)
  "mask_rle": {"counts": str, "size": [H, W]},       # COCO RLE at original resolution
}

模型用途

Falcon Perception 专为密集目标定位场景设计,其主要挑战在于开放词汇条件下的目标定位。这包括:

  • 图像中基于自然语言的目标选择
  • 可提示的实例分割,用于下游处理流程
  • 实例数量庞大且可变的拥挤场景

它并非旨在作为通用的视觉-语言助手,无法用于开放式推理、长文本生成或多步骤视觉问答(VQA)。

模型概要(高层级)

该架构采用单栈早期融合方案:

  • 一个密集 Transformer 骨干网络从第一层开始就在共享空间中处理图像补丁和文本令牌
  • 混合注意力掩码:图像令牌间采用双向注意力,文本和任务令牌则基于图像进行因果注意力
  • 感知链解码:每个实例依次解码 <|coord|>、<|size|> 和 <|seg|>
  • 用于坐标和尺寸的专用头,通过傅里叶特征进行几何条件约束
  • 并行掩码解码:每个 <|seg|> 令牌成为一个掩码查询,并通过与上采样图像特征的点积生成全分辨率掩码

评估摘要

技术报告显示:

  • SA-Co(开放词汇分割):宏 F1 得分为 68.0,相比之下 SAM 3 为 62.3;主要差距在于存在校准(平均 MCC 为 0.64,SAM 3 为 0.82)
  • PBench:一个诊断基准,按能力(属性、OCR 引导消歧、空间约束、关系)分解性能,并包含一个密集长上下文拥挤场景分割

完整表格、设置细节和消融实验详见报告。

局限性

  • 存在校准仍是自回归密集接口的关键限制。与 DETR 类分割模型相比,该模型在难负样本上更可能产生假阳性。
  • OCR 驱动的提示依赖于文本大小和图像分辨率。小文本和质量不佳的扫描件是其难点。
  • 密集场景的性能很大程度上受益于高分辨率输入。低分辨率可能足以识别概念的存在,但不足以精确定位每个实例。

引用

如果您使用 Falcon Perception,请引用:

@article{bevli2026falcon,
  title   = {Falcon Perception},
  author  = {Bevli, Aviraj and Chaybouti, Sofian and Dahou, Yasser and Hacid, Hakim and Huynh, Ngoc Dung and Le Khac, Phuc H. and Narayan, Sanath and Para, Wamiq Reyaz and Singh, Ankit},
  journal = {arXiv preprint arXiv:2603.27365},
  year    = {2026},
  url     = {https://arxiv.org/abs/2603.27365}
}