Transformers 文件
SAM-HQ
並獲得增強的文件體驗
開始使用
SAM-HQ
概述
SAM-HQ (High-Quality Segment Anything Model) 是 Lei Ke、Mingqiao Ye、Martin Danelljan、Yifan Liu、Yu-Wing Tai、Chi-Keung Tang 和 Fisher Yu 在 高質量分割一切 中提出的。
該模型是對原始 SAM 模型的增強,可生成更高質量的分割掩碼,同時保持 SAM 原始的可提示設計、效率和零樣本泛化能力。
SAM-HQ 在原始 SAM 模型的基礎上引入了多項關鍵改進:
- 高質量輸出標記:注入到 SAM 掩碼解碼器中的可學習標記,用於更高質量的掩碼預測
- 全域性-區域性特徵融合:結合模型不同階段的特徵,以改進掩碼細節
- 訓練資料:使用精心策劃的 44K 高質量掩碼資料集,而非 SA-1B
- 效率:僅增加 0.5% 的額外引數,同時顯著提高掩碼質量
- 零樣本能力:保持 SAM 強大的零樣本效能,同時提高準確性
論文摘要如下:
最近的 Segment Anything Model (SAM) 代表著分割模型規模化的一大飛躍,它允許強大的零樣本能力和靈活的提示。儘管用 11 億個掩碼進行訓練,SAM 的掩碼預測質量在許多情況下仍顯不足,特別是在處理具有複雜結構的物件時。我們提出了 HQ-SAM,它賦予 SAM 精確分割任何物件的能力,同時保持 SAM 原始的可提示設計、效率和零樣本泛化能力。我們精心設計,重用並保留了 SAM 的預訓練模型權重,同時只引入了最少的額外引數和計算。我們設計了一個可學習的高質量輸出標記,它被注入到 SAM 的掩碼解碼器中,負責預測高質量掩碼。我們不只將其應用於掩碼解碼器特徵,而是首先將它們與早期和最終的 ViT 特徵融合,以改進掩碼細節。為了訓練我們引入的可學習引數,我們從多個來源組成了 44K 細粒度掩碼資料集。HQ-SAM 僅在引入的 44k 掩碼資料集上進行訓練,這在 8 個 GPU 上僅需 4 小時。
技巧
- SAM-HQ 生成的掩碼質量高於原始 SAM 模型,特別是對於具有複雜結構和精細細節的物件
- 該模型預測的二值掩碼具有更準確的邊界,並能更好地處理細微結構
- 與 SAM 類似,該模型在輸入 2D 點和/或輸入邊界框時表現更好
- 您可以為同一影像提示多個點,並預測單個高質量掩碼
- 該模型保持了 SAM 的零樣本泛化能力
- 與 SAM 相比,SAM-HQ 僅增加了約 0.5% 的額外引數
- 模型微調暫不支援
此模型由 sushmanth 貢獻。原始程式碼可在 此處 找到。
以下是給定影像和 2D 點執行掩碼生成的一個示例
import torch
from PIL import Image
import requests
from transformers import SamHQModel, SamHQProcessor
device = "cuda" if torch.cuda.is_available() else "cpu"
model = SamHQModel.from_pretrained("syscv-community/sam-hq-vit-base").to(device)
processor = SamHQProcessor.from_pretrained("syscv-community/sam-hq-vit-base")
img_url = "https://huggingface.co/ybelkada/segment-anything/resolve/main/assets/car.png"
raw_image = Image.open(requests.get(img_url, stream=True).raw).convert("RGB")
input_points = [[[450, 600]]] # 2D location of a window in the image
inputs = processor(raw_image, input_points=input_points, return_tensors="pt").to(device)
with torch.no_grad():
outputs = model(**inputs)
masks = processor.image_processor.post_process_masks(
outputs.pred_masks.cpu(), inputs["original_sizes"].cpu(), inputs["reshaped_input_sizes"].cpu()
)
scores = outputs.iou_scores
您還可以將自己的掩碼與輸入影像一起在處理器中處理,然後傳遞給模型
import torch
from PIL import Image
import requests
from transformers import SamHQModel, SamHQProcessor
device = "cuda" if torch.cuda.is_available() else "cpu"
model = SamHQModel.from_pretrained("syscv-community/sam-hq-vit-base").to(device)
processor = SamHQProcessor.from_pretrained("syscv-community/sam-hq-vit-base")
img_url = "https://huggingface.co/ybelkada/segment-anything/resolve/main/assets/car.png"
raw_image = Image.open(requests.get(img_url, stream=True).raw).convert("RGB")
mask_url = "https://huggingface.co/ybelkada/segment-anything/resolve/main/assets/car.png"
segmentation_map = Image.open(requests.get(mask_url, stream=True).raw).convert("1")
input_points = [[[450, 600]]] # 2D location of a window in the image
inputs = processor(raw_image, input_points=input_points, segmentation_maps=segmentation_map, return_tensors="pt").to(device)
with torch.no_grad():
outputs = model(**inputs)
masks = processor.image_processor.post_process_masks(
outputs.pred_masks.cpu(), inputs["original_sizes"].cpu(), inputs["reshaped_input_sizes"].cpu()
)
scores = outputs.iou_scores
資源
Hugging Face 官方和社群(由 🌎 表示)資源列表,可幫助您開始使用 SAM-HQ
- 使用模型的演示筆記本(即將推出)
- 論文實現和程式碼:SAM-HQ GitHub 儲存庫
SamHQConfig
類 transformers.SamHQConfig
< 源 >( vision_config = None prompt_encoder_config = None mask_decoder_config = None initializer_range = 0.02 **kwargs )
引數
- vision_config (Union[
dict
,SamHQVisionConfig
], 可選) — 用於初始化 SamHQVisionConfig 的配置選項字典。 - prompt_encoder_config (Union[
dict
,SamHQPromptEncoderConfig
], 可選) — 用於初始化 SamHQPromptEncoderConfig 的配置選項字典。 - mask_decoder_config (Union[
dict
,SamHQMaskDecoderConfig
], 可選) — 用於初始化 SamHQMaskDecoderConfig 的配置選項字典。 - kwargs (可選) — 關鍵字引數字典。
SamHQConfig 是用於儲存 SamHQModel 配置的配置類。它用於根據指定引數例項化 SAM-HQ 模型,定義視覺模型、提示編碼器模型和掩碼解碼器配置。使用預設值例項化配置將生成與 SAM-HQ-ViT-H sushmanth/sam_hq_vit_h 架構類似的配置。
配置物件繼承自 PretrainedConfig,可用於控制模型輸出。有關更多資訊,請參閱 PretrainedConfig 的文件。
SamHQVisionConfig
類 transformers.SamHQVisionConfig
< 源 >( hidden_size = 768 output_channels = 256 num_hidden_layers = 12 num_attention_heads = 12 num_channels = 3 image_size = 1024 patch_size = 16 hidden_act = 'gelu' layer_norm_eps = 1e-06 attention_dropout = 0.0 initializer_range = 1e-10 qkv_bias = True mlp_ratio = 4.0 use_abs_pos = True use_rel_pos = True window_size = 14 global_attn_indexes = [2, 5, 8, 11] num_pos_feats = 128 mlp_dim = None **kwargs )
引數
- hidden_size (
int
, 可選, 預設為 768) — 編碼器層和池化層的維度。 - output_channels (
int
, 可選, 預設為 256) — 補丁編碼器中輸出通道的維度。 - num_hidden_layers (
int
, 可選, 預設為 12) — Transformer 編碼器中的隱藏層數量。 - num_attention_heads (
int
, 可選, 預設為 12) — Transformer 編碼器中每個注意力層的注意力頭數量。 - num_channels (
int
, 可選, 預設為 3) — 輸入影像中的通道數量。 - image_size (
int
, 可選, 預設為 1024) — 預期解析度。調整大小後的輸入影像的目標尺寸。 - patch_size (
int
, 可選, 預設為 16) — 從輸入影像中提取的補丁大小。 - hidden_act (
str
, 可選, 預設為"gelu"
) — 非線性啟用函式(函式或字串)。 - layer_norm_eps (
float
, 可選, 預設為 1e-06) — 層歸一化層使用的 epsilon 值。 - attention_dropout (
float
, 可選, 預設為 0.0) — 注意力機率的 dropout 比率。 - initializer_range (
float
, 可選, 預設為 1e-10) — 用於初始化所有權重矩陣的 truncated_normal_initializer 的標準差。 - qkv_bias (
bool
, 可選, 預設為True
) — 是否在查詢、鍵、值投影中新增偏置。 - mlp_ratio (
float
, 可選, 預設為 4.0) — mlp 隱藏維度與嵌入維度的比率。 - use_abs_pos (
bool
, 可選, 預設為True
) — 是否使用絕對位置嵌入。 - use_rel_pos (
bool
, 可選, 預設為True
) — 是否使用相對位置嵌入。 - window_size (
int
, 可選, 預設為 14) — 相對位置的視窗大小。 - global_attn_indexes (
list[int]
, 可選, 預設為[2, 5, 8, 11]
) — 全域性注意力層的索引。 - num_pos_feats (
int
, 可選, 預設為 128) — 位置嵌入的維度。 - mlp_dim (
int
, 可選) — Transformer 編碼器中“中間”(即前饋)層的維度。如果為None
,則預設為mlp_ratio * hidden_size
。
這是用於儲存 SamHQVisionModel 配置的配置類。它用於根據指定引數例項化 SAM_HQ 視覺編碼器,定義模型架構。例項化預設配置將生成與 SAM_HQ ViT-h facebook/sam_hq-vit-huge 架構類似的配置。
配置物件繼承自 PretrainedConfig,可用於控制模型輸出。有關更多資訊,請參閱 PretrainedConfig 的文件。
示例
>>> from transformers import (
... SamHQVisionConfig,
... SamHQVisionModel,
... )
>>> # Initializing a SamHQVisionConfig with `"facebook/sam_hq-vit-huge"` style configuration
>>> configuration = SamHQVisionConfig()
>>> # Initializing a SamHQVisionModel (with random weights) from the `"facebook/sam_hq-vit-huge"` style configuration
>>> model = SamHQVisionModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config
SamHQMaskDecoderConfig
類 transformers.SamHQMaskDecoderConfig
< 源 >( hidden_size = 256 hidden_act = 'relu' mlp_dim = 2048 num_hidden_layers = 2 num_attention_heads = 8 attention_downsample_rate = 2 num_multimask_outputs = 3 iou_head_depth = 3 iou_head_hidden_dim = 256 layer_norm_eps = 1e-06 vit_dim = 768 **kwargs )
引數
- hidden_size (
int
, 可選, 預設為 256) — 隱藏狀態的維度。 - hidden_act (
str
, 可選, 預設為"relu"
) —SamHQMaskDecoder
模組中使用的非線性啟用函式。 - mlp_dim (
int
, 可選, 預設為 2048) — Transformer 編碼器中“中間”(即前饋)層的維度。 - num_hidden_layers (
int
, 可選, 預設為 2) — Transformer 編碼器中的隱藏層數量。 - num_attention_heads (
int
, 可選, 預設為 8) — Transformer 編碼器中每個注意力層的注意力頭數量。 - attention_downsample_rate (
int
, 可選, 預設為 2) — 注意力層的下采樣率。 - num_multimask_outputs (
int
, 可選, 預設為 3) —SamHQMaskDecoder
模組的輸出數量。在 Segment Anything 論文中,此值設定為 3。 - iou_head_depth (
int
, 可選, 預設為 3) — IoU 頭模組中的層數。 - iou_head_hidden_dim (
int
, 可選, 預設為 256) — IoU 頭部模組中隱藏狀態的維度。 - layer_norm_eps (
float
, 可選, 預設為 1e-06) — 層歸一化層使用的 epsilon 值。
這是用於儲存 SamHQMaskDecoder
配置的配置類。它用於根據指定引數例項化 SAM_HQ 掩碼解碼器,定義模型架構。例項化預設配置將生成與 SAM_HQ-vit-h facebook/sam_hq-vit-huge 架構類似的配置。
配置物件繼承自 PretrainedConfig,可用於控制模型輸出。有關更多資訊,請參閱 PretrainedConfig 的文件。
SamHQPromptEncoderConfig
class transformers.SamHQPromptEncoderConfig
< 來源 >( hidden_size = 256 image_size = 1024 patch_size = 16 mask_input_channels = 16 num_point_embeddings = 4 hidden_act = 'gelu' layer_norm_eps = 1e-06 **kwargs )
引數
- hidden_size (
int
, 可選, 預設為 256) — 隱藏狀態的維度。 - image_size (
int
, 可選, 預設為 1024) — 影像的預期輸出解析度。 - patch_size (
int
, 可選, 預設為 16) — 每個補丁的大小(解析度)。 - mask_input_channels (
int
, 可選, 預設為 16) — 要饋送到MaskDecoder
模組的通道數。 - num_point_embeddings (
int
, 可選, 預設為 4) — 要使用的點嵌入的數量。 - hidden_act (
str
, 可選, 預設為"gelu"
) — 編碼器和池化器中的非線性啟用函式。
這是用於儲存 SamHQPromptEncoderModel
配置的配置類。SamHQPromptEncoderModel
模組用於編碼輸入的 2D 點和邊界框。例項化預設配置將生成與 SAM_HQ 模型類似的配置。該配置用於儲存模型的配置。Uminosachi/sam-hq 架構。
配置物件繼承自 PretrainedConfig,可用於控制模型的輸出。有關更多資訊,請閱讀 PretrainedConfig 的文件。
SamHQProcessor
class transformers.SamHQProcessor
< 來源 >( image_processor )
引數
- image_processor (
SamImageProcessor
) — SamImageProcessor 的例項。影像處理器是必需輸入。
構建一個 SAM HQ 處理器,它將 SAM 影像處理器和 2D 點與邊界框處理器封裝到一個處理器中。
SamHQProcessor 提供 SamImageProcessor 的所有功能。有關更多資訊,請參閱 call() 的文件字串。
SamHQVisionModel
class transformers.SamHQVisionModel
< 來源 >( config: SamHQVisionConfig )
引數
- config (SamHQVisionConfig) — 模型配置類,包含模型的所有引數。使用配置檔案初始化不會載入與模型相關的權重,只加載配置。請檢視 from_pretrained() 方法以載入模型權重。
SamHQ 的視覺模型,沒有任何頭部或頂部投影。
此模型繼承自 PreTrainedModel。有關庫為其所有模型實現的通用方法(如下載或儲存、調整輸入嵌入大小、修剪頭部等),請檢視超類文件。
此模型也是 PyTorch torch.nn.Module 子類。將其用作常規 PyTorch 模組,並參考 PyTorch 文件以瞭解與通用用法和行為相關的所有事項。
forward
< 來源 >( pixel_values: typing.Optional[torch.FloatTensor] = None output_attentions: typing.Optional[bool] = None output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None ) → transformers.models.sam_hq.modeling_sam_hq.SamHQVisionEncoderOutput
或 tuple(torch.FloatTensor)
引數
- pixel_values (
torch.FloatTensor
,形狀為(batch_size, num_channels, image_size, image_size)
,可選) — 對應輸入影像的張量。畫素值可以使用{image_processor_class}
獲取。有關詳細資訊,請參閱{image_processor_class}.__call__
({processor_class}
使用{image_processor_class}
處理影像)。 - output_attentions (
bool
, 可選) — 是否返回所有注意力層的注意力張量。有關更多詳細資訊,請參閱返回張量下的attentions
。 - output_hidden_states (
bool
, 可選) — 是否返回所有層的隱藏狀態。有關更多詳細資訊,請參閱返回張量下的hidden_states
。 - return_dict (
bool
, 可選) — 是否返回 ModelOutput 而不是普通元組。
返回
transformers.models.sam_hq.modeling_sam_hq.SamHQVisionEncoderOutput
或 tuple(torch.FloatTensor)
一個 transformers.models.sam_hq.modeling_sam_hq.SamHQVisionEncoderOutput
或 torch.FloatTensor
的元組(如果傳遞了 return_dict=False
或 config.return_dict=False
),根據配置 (SamHQConfig) 和輸入包含各種元素。
-
image_embeds (
torch.FloatTensor
,形狀為(batch_size, output_dim)
,可選,當模型用with_projection=True
初始化時返回) — 透過將投影層應用於池化器輸出獲得的影像嵌入。 -
last_hidden_state (形狀為
(batch_size, sequence_length, hidden_size)
的torch.FloatTensor
, 可選,預設為None
) — 模型最後一層輸出的隱藏狀態序列。 -
hidden_states (
tuple[torch.FloatTensor, ...]
, 可選, 當傳遞output_hidden_states=True
或config.output_hidden_states=True
時返回) —torch.FloatTensor
的元組(如果模型有嵌入層,則一個用於嵌入輸出,加上每個層的輸出)形狀為(batch_size, sequence_length, hidden_size)
。模型在每個層輸出的隱藏狀態以及可選的初始嵌入輸出。
-
attentions (
tuple[torch.FloatTensor, ...]
, 可選, 當傳遞output_attentions=True
或config.output_attentions=True
時返回) —torch.FloatTensor
的元組(每個層一個)形狀為(batch_size, num_heads, sequence_length, sequence_length)
。注意力 softmax 後的注意力權重,用於計算自注意力頭中的加權平均值。
-
intermediate_embeddings (
list(torch.FloatTensor)
, 可選) — 從模型中某些塊(通常是沒有視窗注意力)收集的中間嵌入列表。列表中每個元素的形狀均為(batch_size, sequence_length, hidden_size)
。這是 SAM-HQ 特有的,在基礎 SAM 中不存在。
SamHQVisionModel forward 方法,覆蓋了 __call__
特殊方法。
儘管正向傳播的配方需要在此函式中定義,但之後應呼叫 Module
例項而不是此函式,因為前者負責執行預處理和後處理步驟,而後者則靜默忽略它們。
SamHQModel
class transformers.SamHQModel
< 來源 >( config )
引數
- config (SamHQModel) — 模型配置類,包含模型的所有引數。使用配置檔案初始化不會載入與模型相關的權重,只加載配置。請檢視 from_pretrained() 方法以載入模型權重。
分段萬物模型 HQ (SAM-HQ),用於根據輸入影像和可選的 2D 位置及邊界框生成掩碼。
此模型繼承自 PreTrainedModel。有關庫為其所有模型實現的通用方法(如下載或儲存、調整輸入嵌入大小、修剪頭部等),請檢視超類文件。
此模型也是 PyTorch torch.nn.Module 子類。將其用作常規 PyTorch 模組,並參考 PyTorch 文件以瞭解與通用用法和行為相關的所有事項。
forward
< 來源 >( pixel_values: typing.Optional[torch.FloatTensor] = None input_points: typing.Optional[torch.FloatTensor] = None input_labels: typing.Optional[torch.LongTensor] = None input_boxes: typing.Optional[torch.FloatTensor] = None input_masks: typing.Optional[torch.LongTensor] = None image_embeddings: typing.Optional[torch.FloatTensor] = None multimask_output: bool = True hq_token_only: bool = False attention_similarity: typing.Optional[torch.FloatTensor] = None target_embedding: typing.Optional[torch.FloatTensor] = None output_attentions: typing.Optional[bool] = None output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None intermediate_embeddings: typing.Optional[list[torch.FloatTensor]] = None **kwargs )
引數
- pixel_values (
torch.FloatTensor
,形狀為(batch_size, num_channels, image_size, image_size)
,可選) — 對應輸入影像的張量。畫素值可以使用{image_processor_class}
獲取。有關詳細資訊,請參閱{image_processor_class}.__call__
({processor_class}
使用{image_processor_class}
處理影像)。 - input_points (
torch.FloatTensor
,形狀為(batch_size, num_points, 2)
) — 輸入的 2D 空間點,提示編碼器使用它來編碼提示。通常會產生更好的結果。點可以透過將列表的列表傳遞給處理器來獲取,該處理器將建立相應的 4 維torch
張量。第一個維度是影像批次大小,第二個維度是點批次大小(即我們希望模型每個輸入點預測多少個分割掩碼),第三個維度是每個分割掩碼的點數(可以為單個掩碼傳遞多個點),最後一個維度是點的 x(垂直)和 y(水平)座標。如果為每個影像或每個掩碼傳遞的點數不同,處理器將建立“PAD”點,它們將對應 (0, 0) 座標,並且將使用標籤跳過這些點的嵌入計算。 - input_labels (
torch.LongTensor
,形狀為(batch_size, point_batch_size, num_points)
) — 輸入點的標籤,提示編碼器使用它來編碼提示。根據官方實現,有 3 種類型的標籤:1
: 該點包含感興趣的物件0
: 該點不包含感興趣的物件-1
: 該點對應背景
我們添加了標籤:
-10
: 該點是填充點,因此應被提示編碼器忽略
填充標籤應由處理器自動完成。
- input_boxes (
torch.FloatTensor
,形狀為(batch_size, num_boxes, 4)
) — 輸入框,提示編碼器使用它來編碼提示。通常會產生更好的生成掩碼。框可以透過將列表的列表傳遞給處理器來獲取,該處理器將生成一個torch
張量,每個維度分別對應影像批次大小、每張影像的框數以及框的左上角和右下角的座標。順序為 (x1
,y1
,x2
,y2
):x1
: 輸入框左上角的 x 座標y1
: 輸入框左上角的 y 座標x2
: 輸入框右下角的 x 座標y2
: 輸入框右下角的 y 座標
- input_masks (
torch.FloatTensor
,形狀為(batch_size, image_size, image_size)
) — SAM_HQ 模型還接受分割掩碼作為輸入。掩碼將由提示編碼器嵌入以生成相應的嵌入,該嵌入稍後將饋送到掩碼解碼器。這些掩碼需要使用者手動饋送,並且它們需要是 (batch_size
,image_size
,image_size
) 的形狀。 - image_embeddings (
torch.FloatTensor
,形狀為(batch_size, output_channels, window_size, window_size)
) — 影像嵌入,掩碼解碼器使用它來生成掩碼和 IoU 分數。為了提高記憶體效率,使用者可以首先使用get_image_embeddings
方法檢索影像嵌入,然後將其饋送到forward
方法,而不是饋送pixel_values
。 - multimask_output (
bool
, 可選) — 在原始實現和論文中,模型始終為每張影像(或每個點/每個邊界框,如果相關)輸出 3 個掩碼。但是,可以透過指定multimask_output=False
只輸出一個掩碼,該掩碼對應於“最佳”掩碼。 - hq_token_only (
bool
, 可選, 預設為False
) — 是否僅使用 HQ 令牌路徑生成掩碼。當為 False 時,結合標準路徑和 HQ 路徑。這是 SAM-HQ 架構特有的。 - attention_similarity (
torch.FloatTensor
, 可選) — 注意力相似度張量,用於在模型用於個性化時提供給掩碼解碼器以進行目標引導注意力,如 PerSAM 中介紹的那樣。 - target_embedding (
torch.FloatTensor
, 可選) — 目標概念的嵌入,用於在模型用於個性化時提供給掩碼解碼器以進行目標語義提示,如 PerSAM 中介紹的那樣。 - output_attentions (
bool
, 可選) — 是否返回所有注意力層的注意力張量。有關更多詳細資訊,請參閱返回張量下的attentions
。 - output_hidden_states (
bool
, 可選) — 是否返回所有層的隱藏狀態。有關更多詳細資訊,請參閱返回張量下的hidden_states
。 - return_dict (
bool
, 可選) — 是否返回 ModelOutput 而不是普通元組。 - intermediate_embeddings (
List[torch.FloatTensor]
, 可選) — 視覺編碼器無視窗塊的中間嵌入,由 SAM-HQ 用於增強掩碼質量。當提供預計算的image_embeddings
而不是pixel_values
時,此引數為必需。
SamHQModel 的 forward 方法,覆蓋了 __call__
特殊方法。
儘管正向傳播的配方需要在此函式中定義,但之後應呼叫 Module
例項而不是此函式,因為前者負責執行預處理和後處理步驟,而後者則靜默忽略它們。
示例
>>> from PIL import Image
>>> import requests
>>> from transformers import AutoModel, AutoProcessor
>>> model = AutoModel.from_pretrained("sushmanth/sam_hq_vit_b")
>>> processor = AutoProcessor.from_pretrained("sushmanth/sam_hq_vit_b")
>>> img_url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/sam-car.png"
>>> raw_image = Image.open(requests.get(img_url, stream=True).raw).convert("RGB")
>>> input_points = [[[400, 650]]] # 2D location of a window on the car
>>> inputs = processor(images=raw_image, input_points=input_points, return_tensors="pt")
>>> # Get high-quality segmentation mask
>>> outputs = model(**inputs)
>>> # For high-quality mask only
>>> outputs = model(**inputs, hq_token_only=True)
>>> # Postprocess masks
>>> masks = processor.post_process_masks(
... outputs.pred_masks, inputs["original_sizes"], inputs["reshaped_input_sizes"]
... )