Transformers documentation
MaskFormer
이 모델은 2021-07-13에 HF papers에 게시되었으며, 2022-03-02에 Hugging Face Transformers에 기여되었습니다.
MaskFormer
이 모델은 최근에 도입된 모델이므로 API가 광범위하게 테스트되지 않았습니다. 향후 수정을 위해 일부 버그나 경미한 깨짐 변경 사항이 있을 수 있습니다. 이상한 사항을 발견하시면 Github Issue를 등록해 주세요.
개요
The MaskFormer model was proposed in Per-Pixel Classification is Not All You Need for Semantic Segmentation by Bowen Cheng, Alexander G. Schwing, Alexander Kirillov. MaskFormer addresses semantic segmentation with a mask classification paradigm instead of performing classic pixel-level classification.
해당 논문의 초록은 다음과 같습니다:
현대적 접근법은 일반적으로 시맨틱 세그멘테이션을 픽셀별 분류 문제로 정의하고, 인스턴스 레벨 세그멘테이션은 별도의 마스크 분류로 처리합니다. 핵심 통찰: 마스크 분류는 동일한 모델, 손실, 학습 절차로 시맨틱 및 인스턴스 레벨 세그멘테이션 작업을 통합적으로 해결할 만큼 충분히 일반적입니다. 이러한 관찰에 따라, MaskFormer를 제안합니다. MaskFormer는 이진 마스크의 집합을 예측하는 단순한 마스크 분류 모델로, 각 마스크에는 단일 전역 클래스 라벨 예측이 연결됩니다. 전체적으로, 제안된 마스크 분류 기반 방법은 시맨틱 및 팬옵틱 세그멘테이션 작업에 효과적인 접근법의 지형을 단순화하고 뛰어난 실증 결과를 보여줍니다. 특히, 클래스 수가 많을 때 MaskFormer가 픽셀별 분류 베이스라인보다 우수한 성능을 내는 것을 관찰했습니다. 제안된 마스크 분류 기반 방법은 현재 최첨단 시맨틱(55.6 mIoU on ADE20K) 및 팬옵틱 세그멘테이션(52.7 PQ on COCO) 모델 모두를 능가합니다.
아래 그림은 MaskFormer의 아키텍처를 보여줍니다. 원본 논문에서 가져왔습니다.
이 모델은 francesco가 기여했습니다. 원본 코드는 여기에서 찾을 수 있습니다.
사용 팁
- MaskFormer의 Transformer decoder는 DETR의 decoder와 동일합니다. DETR의 저자들은 학습 과정에서, 특히 각 클래스의 올바른 개수만큼의 객체를 출력하도록 모델을 돕기 위해 decoder에서 보조 손실을 사용하는 것이 유용하다고 확인했습니다. MaskFormerConfig의
use_auxiliary_loss매개변수를True로 설정하면, 각 decoder 레이어 뒤에 예측 피드포워드 신경망과 헝가리안 손실이 추가됩니다(FFN은 매개변수를 공유합니다). - 모델을 여러 노드에 걸친 분산 환경에서 학습하려면
modeling_maskformer.py의MaskFormerLoss클래스 안의get_num_masks함수를 업데이트해야 합니다. 여러 노드에서 학습하는 경우, 여기의 원래 구현에서 볼 수 있듯이 이 값을 모든 노드에 걸친 대상 마스크의 평균 개수로 설정해야 합니다. - MaskFormerImageProcessor를 사용하여 모델에 사용할 이미지와 선택적 타겟을 준비할 수 있습니다.
- 작업에 따라 post_process_semantic_segmentation() 또는 post_process_panoptic_segmentation()을 호출하여 최종 분할 결과를 얻을 수 있습니다. 두 작업 모두 MaskFormerForInstanceSegmentation의 출력으로 해결할 수 있으며, panoptic segmentation은 대상 객체(예: 하늘)의 인스턴스를 병합하기 위한 선택적
label_ids_to_fuse인수를 지원합니다.
리소스
- MaskFormer를 사용하여 추론 및 커스텀 데이터로 파인튜닝을 보여주는 모든 노트북은 여기에서 찾을 수 있습니다.
MaskFormer의 특정 출력
class transformers.models.maskformer.modeling_maskformer.MaskFormerModelOutput
< source >( encoder_last_hidden_state: typing.Optional[torch.Tensor] = Nonepixel_decoder_last_hidden_state: typing.Optional[torch.Tensor] = Nonetransformer_decoder_last_hidden_state: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: tuple[torch.Tensor] | None = Nonepixel_decoder_hidden_states: tuple[torch.Tensor] | None = Nonetransformer_decoder_hidden_states: tuple[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor] | None = Noneattentions: tuple[torch.Tensor] | None = None )
매개변수
- encoder_last_hidden_state (
torch.Tensor, shape(batch_size, num_channels, height, width)) — 인코더 모델(백본)의 마지막 단계의 마지막 히든 상태(최종 특징 맵). - pixel_decoder_last_hidden_state (
torch.Tensor, shape(batch_size, num_channels, height, width)) — 픽셀 디코더 모델(FPN)의 마지막 단계의 마지막 히든 상태(최종 피처 맵). - transformer_decoder_last_hidden_state (
torch.Tensor, shape(batch_size, sequence_length, hidden_size)) — transformer decoder 모델의 마지막 단계의 마지막 hidden states(최종 feature map). - encoder_hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(임베딩 출력 1개 + 각 단계의 출력 1개)로, shape은(batch_size, num_channels, height, width)입니다. 각 단계의 출력에서 인코더 모델의 hidden-states(또는 feature maps라고도 함). - pixel_decoder_hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(임베딩 출력 1개 + 각 단계의 출력 1개)로, shape이(batch_size, num_channels, height, width)입니다. 각 단계 출력 시점의 픽셀 디코더 모델의 히든 스테이트(피처 맵이라고도 함). - transformer_decoder_hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(임베딩 출력 1개 + 각 단계의 출력 1개)로, shape이(batch_size, sequence_length, hidden_size)입니다. 각 단계 출력 시점의 transformer decoder hidden-states(또는 feature maps라고도 함). - hidden_states
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —encoder_hidden_states,pixel_decoder_hidden_states및decoder_hidden_states를 포함하는torch.Tensor의 Tuple - hidden_states (
tuple[torch.Tensor], 선택 사항, 다음 조건에서 반환됩니다:output_hidden_states=True이 전달되거나config.output_hidden_states=True) — 다음 형태의 튜플:torch.Tensor(임베딩이 있는 경우 임베딩 레이어의 출력 1개 + 각 레이어의 출력 1개)로, 형태는(batch_size, sequence_length, hidden_size).각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
- attentions (
tuple[torch.Tensor], 선택 사항, 다음 조건에서 반환됩니다:output_attentions=True이 전달되거나config.output_attentions=True) — 다음의 튜플입니다:torch.Tensor(각 레이어당 하나씩, 모양이(batch_size, num_heads, sequence_length, sequence_length).self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
MaskFormerModel의 출력을 위한 클래스입니다. 이 클래스는 logits를 계산하는 데 필요한 모든 hidden states를 반환합니다.
class transformers.models.maskformer.modeling_maskformer.MaskFormerForInstanceSegmentationOutput
< source >( loss: typing.Optional[torch.Tensor] = Noneclass_queries_logits: typing.Optional[torch.Tensor] = Nonemasks_queries_logits: typing.Optional[torch.Tensor] = Noneauxiliary_logits: typing.Optional[torch.Tensor] = Noneencoder_last_hidden_state: typing.Optional[torch.Tensor] = Nonepixel_decoder_last_hidden_state: typing.Optional[torch.Tensor] = Nonetransformer_decoder_last_hidden_state: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: tuple[torch.Tensor] | None = Nonepixel_decoder_hidden_states: tuple[torch.Tensor] | None = Nonetransformer_decoder_hidden_states: tuple[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor] | None = Noneattentions: tuple[torch.Tensor] | None = None )
매개변수
- loss (
torch.Tensor, 선택 사항) — 레이블이 존재할 때 반환되는 계산된 손실입니다. - class_queries_logits (
torch.Tensor, 선택) — 각 쿼리에 대해 제안된 클래스를 나타내는(batch_size, num_queries, num_labels + 1)형태의 텐서입니다.+ 1은 null 클래스를 포함하기 때문에 필요합니다. - masks_queries_logits (
torch.Tensor, 선택 사항) — 각 쿼리에 대한 제안된 마스크를 나타내는(batch_size, num_queries, height, width)형태의 텐서. - auxiliary_logits (
Dict[str, torch.Tensor], 선택,output_auxiliary_logits=True일 때 반환됨) — 보조 손실이 활성화된 경우 각 decoder 레이어에 대한 보조 예측을 포함하는 사전입니다. - encoder_last_hidden_state (
torch.Tensor, shape(batch_size, num_channels, height, width)) — 인코더 모델(백본)의 마지막 단계의 마지막 히든 상태(최종 특징 맵). - pixel_decoder_last_hidden_state (
torch.Tensor, shape(batch_size, num_channels, height, width)) — 픽셀 디코더 모델(FPN)의 마지막 단계의 마지막 히든 상태(최종 피처 맵). - transformer_decoder_last_hidden_state (
torch.Tensor, shape(batch_size, sequence_length, hidden_size)) — transformer decoder 모델의 마지막 단계의 마지막 hidden states(최종 feature map). - encoder_hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(임베딩 출력 1개 + 각 단계의 출력 1개)로, shape은(batch_size, num_channels, height, width)입니다. 각 단계의 출력에서 인코더 모델의 hidden-states(또는 feature maps라고도 함). - pixel_decoder_hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(임베딩 출력 1개 + 각 단계의 출력 1개)로, shape이(batch_size, num_channels, height, width)입니다. 각 단계 출력 시점의 픽셀 디코더 모델의 히든 스테이트(피처 맵이라고도 함). - transformer_decoder_hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(임베딩 출력 1개 + 각 단계의 출력 1개)로, shape이(batch_size, sequence_length, hidden_size)입니다. 각 단계 출력 시점의 transformer decoder hidden-states입니다. - hidden_states
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —encoder_hidden_states,pixel_decoder_hidden_states및decoder_hidden_states를 포함하는torch.Tensor의 Tuple입니다. - hidden_states (
tuple[torch.Tensor], 선택 사항, 다음 조건에서 반환됩니다:output_hidden_states=True이 전달되거나config.output_hidden_states=True) — 다음 형태의 튜플:torch.Tensor(임베딩이 있는 경우 임베딩 레이어의 출력 1개 + 각 레이어의 출력 1개)로, 형태는(batch_size, sequence_length, hidden_size).각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
- attentions (
tuple[torch.Tensor], 선택 사항, 다음 조건에서 반환됩니다:output_attentions=True이 전달되거나config.output_attentions=True) — 다음의 튜플입니다:torch.Tensor(각 레이어당 하나씩, 모양이(batch_size, num_heads, sequence_length, sequence_length).self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
MaskFormerForInstanceSegmentation의 출력 클래스입니다.
이 출력은 작업에 따라 post_process_semantic_segmentation() 또는 post_process_instance_segmentation() 또는 post_process_panoptic_segmentation()에 직접 전달할 수 있습니다. 사용법에 대한 자세한 내용은 [`~MaskFormerImageProcessor]를 참고하세요.
MaskFormerDetrConfig
클래스 transformers.MaskFormerDetrConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0id2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Noneis_encoder_decoder: bool = Truebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonenum_channels: int = 3num_queries: int = 100encoder_layers: int = 6encoder_ffn_dim: int = 2048encoder_attention_heads: int = 8decoder_layers: int = 6decoder_ffn_dim: int = 2048decoder_attention_heads: int = 8encoder_layerdrop: float | int = 0.0decoder_layerdrop: float | int = 0.0activation_function: str = 'relu'd_model: int = 256dropout: float | int = 0.1attention_dropout: float | int = 0.0activation_dropout: float | int = 0.0init_std: float = 0.02init_xavier_std: float = 1.0auxiliary_loss: bool = Falseposition_embedding_type: str = 'sine'dilation: bool = Falseclass_cost: int = 1bbox_cost: int = 5giou_cost: int = 2mask_loss_coefficient: int = 1dice_loss_coefficient: int = 1bbox_loss_coefficient: int = 5giou_loss_coefficient: int = 2eos_coefficient: float = 0.1 )
매개변수
- is_encoder_decoder (
bool, 선택 사항, 기본값True) — 모델이 인코더/디코더로 사용되는지 여부를 나타냅니다. - backbone_config (
Union[dict, ~configuration_utils.PreTrainedConfig], 선택) — backbone 모델의 설정입니다. - num_channels (
int, 선택 사항, 기본값3) — 입력 채널의 수입니다. - num_queries (
int, 선택 사항, 기본값 100) — 객체 쿼리의 수, 즉 감지 슬롯의 수입니다. 이는 ConditionalDetrModel이 단일 이미지에서 감지할 수 있는 최대 객체 수입니다. COCO의 경우 100개의 쿼리를 권장합니다. - encoder_layers (
int, 선택 사항, 기본값6) — Transformer 인코더의 숨겨진 레이어 수입니다. 설정하지 않으면num_layers와 동일한 값을 사용합니다. - encoder_ffn_dim (
int, 선택 사항, 기본값2048) — 인코더의 “중간” 레이어(일반적으로 feed-forward 레이어라고도 함)의 차원입니다. - encoder_attention_heads (
int, 선택 사항, 기본값8) — Transformer 인코더의 각 어텐션 레이어에 사용할 어텐션 헤드 수입니다. - decoder_layers (
int, 선택 사항, 기본값6) — Transformer decoder의 hidden layer 수입니다. 설정하지 않으면num_layers와 동일한 값을 사용합니다. - decoder_ffn_dim (
int, 선택 사항, 기본값2048) — decoder의 “intermediate”(일반적으로 feed-forward라고도 함) 레이어의 차원입니다. - decoder_attention_heads (
int, 선택 사항, 기본값8) — Transformer decoder의 각 attention layer에 사용할 attention head 수입니다. - encoder_layerdrop (
Union[float, int], 선택 사항, 기본값0.0) — 인코더의 LayerDrop 확률입니다. 자세한 내용은 [LayerDrop 논문](https://huggingface.co/papers/1909.11556 참조)을 참고하세요. - decoder_layerdrop (
Union[float, int], 선택 사항, 기본값0.0) — 디코더의 LayerDrop 확률입니다. 자세한 내용은 [LayerDrop 논문](https://huggingface.co/papers/1909.11556 참조)을 참고하세요. - activation_function (
str, 선택 사항, 기본값relu) — 디코더에서 사용되는 비선형 활성화 함수(함수 또는 문자열)입니다. 예를 들어,"gelu","relu","silu"등이 있습니다. - d_model (
int, 선택 사항, 기본값256) — 인코더 레이어와 풀러 레이어의 크기입니다. - dropout (
Union[float, int], 선택 사항, 기본값0.1) — 모든 dropout 레이어에 적용할 비율입니다. - attention_dropout (
Union[float, int], 선택 사항, 기본값0.0) — Attention 확률에 적용할 dropout 비율입니다. - activation_dropout (
Union[float, int], 선택 사항, 기본값0.0) — 완전 연결 레이어 내부 활성화에 적용할 dropout 비율입니다. - init_std (
float, 선택 사항, 기본값0.02) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다. - init_xavier_std (
float, 선택 사항, 기본값1.0) — 크로스 어텐션 가중치의 Xavier 초기화에 사용되는 스케일링 계수입니다. - auxiliary_loss (
bool, 선택 사항, 기본값False) — 보조 디코딩 손실(각 디코더 레이어의 손실)을 사용할지 여부입니다. - position_embedding_type (
str, 선택 사항, 기본값"sine") — 이미지 특징 위에 사용할 위치 임베딩의 유형입니다."sine"또는"learned"중 하나입니다. - dilation (
bool, 선택 사항, 기본값False) — 마지막 컨볼루션 블록(DC5)에서 stride를 dilation으로 대체할지 여부입니다.use_timm_backbone=True일 때만 지원됩니다. - class_cost (
int, 선택 사항, 기본값1) — 헝가리안 매칭 비용에서 분류 오류의 상대적 가중치입니다. - bbox_cost (
int, 선택 사항, 기본값5) — 헝가리안 매칭 비용에서 L1 바운딩 박스 오차의 상대적 가중치입니다. - giou_cost (
int, 선택 사항, 기본값2) — 헝가리안 매칭 비용에서 일반화 IoU 손상의 상대적 가중치. - mask_loss_coefficient (
int, 선택 사항, 기본값1) — panoptic segmentation loss에서 focal loss의 상대적 가중치입니다. - dice_loss_coefficient (
int, 선택 사항, 기본값1) — panoptic segmentation loss에서 dice loss의 상대적 가중치입니다. - bbox_loss_coefficient (
int, 선택 사항, 기본값5) — panoptic segmentation loss에서 L1 bounding box loss의 상대적 가중치입니다. - giou_loss_coefficient (
int, 선택 사항, 기본값2) — panoptic segmentation loss에서 generalized IoU loss의 상대적 가중치입니다. - eos_coefficient (
float, 선택 사항, 기본값0.1) — 객체 감지 손실에서 ‘no-object’ 클래스의 상대 분류 가중치입니다.
이것은 MaskFormerModel의 설정을 저장하기 위한 설정 클래스입니다. 지정된 인자에 따라 Maskformer 모델을 인스턴스화하여 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 설정을 인스턴스화하면 facebook/maskformer-swin-base-ade와 유사한 설정이 생성됩니다.
Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.
예:
>>> from transformers import MaskFormerDetrConfig, MaskFormerDetrModel
>>> # Initializing a MASK_FORMER_DETR facebook/mask_former_detr-resnet-50 style configuration
>>> configuration = MaskFormerDetrConfig()
>>> # Initializing a model (with random weights) from the facebook/mask_former_detr-resnet-50 style configuration
>>> model = MaskFormerDetrModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configMaskFormerConfig
클래스 transformers.MaskFormerConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonefpn_feature_size: int = 256mask_feature_size: int = 256no_object_weight: float = 0.1use_auxiliary_loss: bool = Falsebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonedecoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneinit_std: float = 0.02init_xavier_std: float = 1.0dice_weight: float = 1.0cross_entropy_weight: float = 1.0mask_weight: float = 20.0output_auxiliary_logits: bool | None = None )
매개변수
- fpn_feature_size (
int, 선택 사항, 기본값 256) — Feature Pyramid Network의 특징 크기입니다. - mask_feature_size (
int, 선택 사항, 기본값 256) — 마스크의 특징 크기입니다. 이 값은 Feature Pyramid Network 특징의 크기를 지정하는 데에도 사용됩니다. - no_object_weight (
float, 선택 사항, 기본값0.1) — 객체 감지 손실에서 no-object 클래스의 상대 분류 가중치입니다. - use_auxiliary_loss (
bool, 선택 사항, 기본값False) — transformer decoder의 중간 예측을 사용하여 손실을 계산할지 여부입니다. - backbone_config (
Union[dict, ~configuration_utils.PreTrainedConfig], 선택) — backbone 모델의 설정입니다. - decoder_config (
Dict, 선택 사항) — 설정되지 않은 경우detr-resnet-50의 기본 설정이 사용되며, transformer decoder 모델에 전달되는 설정입니다. - init_std (
float, 선택 사항, 기본값0.02) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다. - init_xavier_std (
float, 선택 사항, 기본값1.0) — 크로스 어텐션 가중치의 Xavier 초기화에 사용되는 스케일링 계수입니다. - dice_weight (
float, 선택 사항, 기본값1.0) — panoptic segmentation loss에서 dice loss의 상대적 가중치입니다. - cross_entropy_weight (
float, 선택 사항, 기본값 1.0) — cross entropy loss에 적용할 가중치입니다. - mask_weight (
float, 선택 사항, 기본값20.0) — panoptic segmentation loss에서 focal loss의 상대적 가중치입니다. - output_auxiliary_logits (
bool, 선택) — 모델이auxiliary_logits를 출력할지 여부를 지정합니다.
예외
ValueError
ValueError— 선택한 backbone 모델 유형이["swin"]에 없거나 선택한 decoder 모델 유형이["detr"]에 없는 경우 발생
이것은 MaskFormerModel의 설정을 저장하기 위한 설정 클래스입니다. 지정된 인자에 따라 Maskformer 모델을 인스턴스화하여 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 설정을 인스턴스화하면 facebook/maskformer-swin-base-ade와 유사한 설정이 생성됩니다.
Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.
예:
>>> from transformers import MaskFormerConfig, MaskFormerModel
>>> # Initializing a MaskFormer facebook/maskformer-swin-base-ade configuration
>>> configuration = MaskFormerConfig()
>>> # Initializing a model (with random weights) from the facebook/maskformer-swin-base-ade style configuration
>>> model = MaskFormerModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configMaskFormerImageProcessor
class transformers.MaskFormerImageProcessor
< source >( **kwargs: *<class 'transformers.models.maskformer.image_processing_maskformer.MaskFormerImageProcessorKwargs'> )
매개변수
- do_convert_rgb (
bool, kwargs, 선택 사항) — 이미지를 RGB로 변환할지 여부입니다. - do_resize (
bool, kwargs, 선택 사항, 기본값True) — 이미지를 리사이즈할지 여부. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, 기본값{'shortest_edge' -- 800, 'longest_edge': 1333}): 모델에 전달되는 최대 입력 차원을 설명합니다. - default_to_square (
bool, kwargs, 선택 사항, 기본값False) — size가 int인 경우 리사이즈 시 정사각형 이미지로 기본 설정할지 여부. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) —center_crop을 적용한 후 출력 이미지의 크기. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, 기본값2) — 이미지 크기를 조정할 때 사용할 리샘플링 필터입니다.PILImageResamplingenum 중 하나를 사용할 수 있습니다.do_resize가True로 설정된 경우에만 효과가 있습니다. - do_rescale (
bool, kwargs, 선택, 기본값True) — 이미지를 다시 스케일링할지 여부. - rescale_factor (
float, kwargs, 선택 사항, 기본값0.00392156862745098) —do_rescale이True로 설정된 경우 이미지를 재조정(rescale)하는 데 사용할 재조정 계수입니다. - do_normalize (
bool, kwargs, 선택, 기본값True) — 이미지를 정규화할지 여부. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, 선택, 기본값[0.485, 0.456, 0.406]) — 정규화에 사용할 이미지 평균입니다.do_normalize가True로 설정된 경우에만 효과가 있습니다. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, 선택, 기본값[0.229, 0.224, 0.225]) — 정규화에 사용할 이미지 표준 편차입니다.do_normalize가True로 설정된 경우에만 효과가 있습니다. - do_pad (
bool, kwargs, optional) — 이미지를 패딩할지 여부입니다. 패딩은 배치 내 가장 큰 크기로 수행하거나, 이미지마다 고정된 정사각형 크기로 수행합니다. 정확한 패딩 전략은 모델에 따라 달라집니다. - pad_size (
SizeDict, kwargs, 선택 사항) — 이미지를 패딩할 크기입니다. 전처리용으로 제공된 모든 이미지 크기보다 커야 합니다.pad_size가 제공되지 않으면, 배치 내 가장 큰 높이와 너비로 이미지가 패딩됩니다. - do_center_crop (
bool, kwargs, 선택) — 이미지를 중앙으로 크롭할지 여부. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, 선택 사항) —ChannelDimension.FIRST만 지원됩니다. 느린 프로세서와의 호환성을 위해 추가되었습니다. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, 선택 사항) — 입력 이미지의 채널 차원 형식입니다. 설정되지 않으면 입력 이미지에서 채널 차원 형식을 추론합니다. 다음 중 하나일 수 있습니다:"channels_first"또는ChannelDimension.FIRST: (num_channels, height, width) 형식의 이미지."channels_last"또는ChannelDimension.LAST: (height, width, num_channels) 형식의 이미지."none"또는ChannelDimension.NONE: (height, width) 형식의 이미지.
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — 동영상을 처리할 장치입니다. 설정되지 않은 경우, 입력 동영상에서 장치를 추론합니다. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) —'pt'로 설정된 경우 스택된 텐서를 반환하고, 그렇지 않으면 텐서 목록을 반환합니다. - disable_grouping (
bool, kwargs, 선택 사항) — 이미지를 크기에 따라 그룹화하는 것을 비활성화하여 배치 대신 개별적으로 처리할지 여부입니다. None인 경우, 이미지가 CPU에 있으면 True, 그렇지 않으면 False로 설정됩니다. 이 선택은 https://github.com/huggingface/transformers/pull/38157에 자세히 설명된 경험적 관찰에 기반합니다. - image_seq_length (
int, kwargs, 선택 사항) — 입력에서 각 이미지에 사용할 이미지 토큰의 수입니다. 하위 호환성을 위해 추가되었지만, 향후 모델에서는 프로세서 속성으로 설정해야 합니다. - ignore_index (
int, kwargs, 선택 사항) — 분할 맵에서 배경 픽셀에 할당할 라벨입니다. 지정된 경우, 0(배경)으로 표시된 분할 맵 픽셀은ignore_index로 대체됩니다. - do_reduce_labels (
bool, kwargs, 선택 사항, 기본값False) — 세그멘테이션 맵의 모든 라벨 값을 1만큼 줄일지 여부입니다. 일반적으로 배경에 0이 사용되고, 배경 자체가 데이터셋의 모든 클래스에 포함되지 않는 데이터셋(예: ADE20k)에서 사용됩니다. 배경 라벨은ignore_index로 대체됩니다. - num_labels (
int, kwargs, 선택 사항) — 세그멘테이션 맵에 포함된 라벨의 수입니다. - size_divisor (
int, kwargs, 선택 사항, 기본값32) — 일부 backbone은 특정 숫자로 나누어 떨어지는 이미지가 필요합니다. 값을 전달하지 않으면 Swin Transformer에서 사용된 값이 기본값으로 적용됩니다.
MaskFormerImageProcessor 이미지 프로세서를 생성합니다.
preprocess
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]segmentation_maps: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Noneinstance_id_to_semantic_id: list[dict[int, int]] | dict[int, int] | None = None**kwargs: *<class 'transformers.models.maskformer.image_processing_maskformer.MaskFormerImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature
매개변수
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — 전처리할 이미지. 픽셀 값이 0에서 255 범위로 이루어진 단일 이미지 또는 배치 이미지를 기대합니다. 픽셀 값이 0에서 1 사이인 이미지를 전달하는 경우do_rescale=False로 설정하세요. - segmentation_maps (
ImageInput, 선택 사항) — 세그멘테이션 맵입니다. - instance_id_to_semantic_id (
Union[list[dict[int, int]], dict[int, int]], 선택) — 인스턴스 ID에서 의미론적 ID로 매핑합니다. - do_convert_rgb (
bool, kwargs, 선택 사항) — 이미지를 RGB로 변환할지 여부입니다. - do_resize (
bool, kwargs, 선택) — 이미지를 리사이즈할지 여부. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — 모델의 최대 입력 차원을 설명합니다. - default_to_square (
bool, kwargs, 선택 사항) — size가 int인 경우 리사이즈 시 정사각형 이미지로 기본 설정할지 여부. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) —center_crop을 적용한 후 출력 이미지의 크기. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — 이미지를 리사이즈할 경우 사용할 리샘플링 필터입니다. 이는PILImageResamplingenum 중 하나일 수 있습니다.do_resize가True로 설정된 경우에만 효과가 있습니다. - do_rescale (
bool, kwargs, 선택 사항) — 이미지를 다시 스케일링할지 여부입니다. - rescale_factor (
float, kwargs, optional) —do_rescale이True로 설정된 경우 이미지를 리스케일하기 위한 리스케일 팩터입니다. - do_normalize (
bool, kwargs, optional) — 이미지를 정규화할지 여부. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, 선택) — 정규화에 사용할 이미지 평균입니다.do_normalize가True로 설정된 경우에만 효과가 있습니다. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, 선택) — 정규화에 사용할 이미지 표준 편차.do_normalize가True로 설정된 경우에만 효과가 있습니다. - do_pad (
bool, kwargs, optional) — 이미지를 패딩할지 여부입니다. 패딩은 배치 내 가장 큰 크기로 수행하거나, 이미지마다 고정된 정사각형 크기로 수행합니다. 정확한 패딩 전략은 모델에 따라 달라집니다. - pad_size (
SizeDict, kwargs, 선택 사항) — 이미지를 패딩할 크기입니다. 전처리용으로 제공된 모든 이미지 크기보다 커야 합니다.pad_size가 제공되지 않으면, 배치 내 가장 큰 높이와 너비로 이미지가 패딩됩니다. - do_center_crop (
bool, kwargs, 선택) — 이미지를 중앙으로 크롭할지 여부. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, 선택 사항) —ChannelDimension.FIRST만 지원됩니다. 느린 프로세서와의 호환성을 위해 추가되었습니다. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, 선택 사항) — 입력 이미지의 채널 차원 형식입니다. 설정되지 않으면 입력 이미지에서 채널 차원 형식을 추론합니다. 다음 중 하나일 수 있습니다:"channels_first"또는ChannelDimension.FIRST: (num_channels, height, width) 형식의 이미지."channels_last"또는ChannelDimension.LAST: (height, width, num_channels) 형식의 이미지."none"또는ChannelDimension.NONE: (height, width) 형식의 이미지.
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — 동영상을 처리할 장치입니다. 설정되지 않은 경우, 입력 동영상에서 장치를 추론합니다. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) —'pt'로 설정된 경우 스택된 텐서를 반환하고, 그렇지 않으면 텐서 목록을 반환합니다. - disable_grouping (
bool, kwargs, 선택 사항) — 이미지를 크기에 따라 그룹화하는 것을 비활성화하여 배치 대신 개별적으로 처리할지 여부입니다. None인 경우, 이미지가 CPU에 있으면 True, 그렇지 않으면 False로 설정됩니다. 이 선택은 https://github.com/huggingface/transformers/pull/38157에 자세히 설명된 경험적 관찰에 기반합니다. - image_seq_length (
int, kwargs, 선택 사항) — 입력에서 각 이미지에 사용할 이미지 토큰의 수입니다. 하위 호환성을 위해 추가되었지만, 향후 모델에서는 프로세서 속성으로 설정해야 합니다. - ignore_index (
int, kwargs, 선택 사항) — 분할 맵에서 배경 픽셀에 할당할 라벨입니다. 지정된 경우, 0(배경)으로 표시된 분할 맵 픽셀은ignore_index로 대체됩니다. - do_reduce_labels (
bool, kwargs, 선택 사항, 기본값False) — 세그멘테이션 맵의 모든 라벨 값을 1만큼 줄일지 여부입니다. 일반적으로 배경에 0이 사용되고, 배경 자체가 데이터셋의 모든 클래스에 포함되지 않는 데이터셋(예: ADE20k)에서 사용됩니다. 배경 라벨은ignore_index로 대체됩니다. - num_labels (
int, kwargs, 선택 사항) — 세그멘테이션 맵에 포함된 라벨의 수입니다. - size_divisor (
int, kwargs, 선택 사항, 기본값32) — 일부 backbone은 특정 숫자로 나누어 떨어지는 이미지가 필요합니다. 값을 전달하지 않으면 Swin Transformer에서 사용된 값이 기본값으로 적용됩니다.
반환값
~image_processing_base.BatchFeature
- data (
dict) — call 메서드가 반환하는 리스트/배열/텐서 딕셔너리(‘pixel_values’ 등). - tensor_type (
Union[None, str, TensorType], 선택 사항) — 초기화 시 PyTorch/Numpy 텐서에서 정수 목록을 변환하려면 여기에 tensor_type를 지정할 수 있습니다.
post_process_semantic_segmentation
< source >( outputstarget_sizes: list[tuple[int, int]] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]
매개변수
- outputs (MaskFormerForInstanceSegmentation) — 모델의 원시 출력입니다.
- target_sizes (
list[tuple[int, int]], 선택 사항) — (batch_size) 길이의 리스트로, 각 리스트 항목(tuple[int, int]])은 각 예측의 요청된 최종 크기(height, width)에 해당합니다. None으로 두면 예측 결과가 리사이즈되지 않습니다. - return_segmentation_scores (
bool, 선택 사항, 기본값False) — 분할 맵과 함께 분할 점수를 반환할지 여부입니다.True인 경우, 반환된 리스트의 각 요소는SemanticSegmentationPostProcessorOutput이며,segmentation필드(클래스 ID, shape(height, width))와segmentation_scores필드(shape(num_classes, height, width))를 포함합니다.
반환값
list[torch.Tensor] 또는 list[SemanticSegmentationPostProcessorOutput]
return_segmentation_scores=False(기본값)인 경우, 각 항목이 클래스 ID를 가진 (height, width) 형태의 분할 맵인 길이 batch_size의 리스트를 반환합니다. return_segmentation_scores=True인 경우, segmentation(클래스 ID, 형태 (height, width))와 segmentation_scores(형태 (num_classes, height, width)) 필드를 가진 SemanticSegmentationPostProcessorOutput의 리스트를 반환합니다. 두 경우 모두 (height, width)는 대상 크기(target_sizes가 지정된 경우)에 해당합니다.
MaskFormerForInstanceSegmentation의 출력을 의미 분할(semantic segmentation) 맵으로 변환합니다. PyTorch만 지원합니다.
post_process_instance_segmentation
< source >( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8target_sizes: list[tuple[int, int]] | None = Nonereturn_coco_annotation: bool | None = Falsereturn_binary_maps: bool | None = False ) → list[Dict]
매개변수
- outputs (MaskFormerForInstanceSegmentation) — 모델의 원시 출력입니다.
- threshold (
float, 선택 사항, 기본값 0.5) — 예측된 인스턴스 마스크를 유지할 확률 점수 임계값입니다. - mask_threshold (
float, 선택 사항, 기본값 0.5) — 예측된 마스크를 이진 값으로 변환할 때 사용할 임계값. - overlap_mask_area_threshold (
float, 선택 사항, 기본값 0.8) — 각 바이너리 인스턴스 마스크 내에서 작은 분리된 부분을 병합하거나 제거하기 위한 오버랩 마스크 영역 임계값입니다. - target_sizes (
list[Tuple], 선택 사항) — (batch_size) 길이의 리스트로, 각 리스트 항목(tuple[int, int]])은 각 예측에 대해 요청된 최종 크기(높이, 너비)에 해당합니다. None으로 두면 예측 결과가 리사이즈되지 않습니다. - return_coco_annotation (
bool, 선택, 기본값False) —True로 설정하면, 분할 맵이 COCO run-length encoding(RLE) 형식으로 반환됩니다. - return_binary_maps (
bool, 선택 사항, 기본값False) —True로 설정하면, 분할 맵이 바이너리 분할 맵의 연결된 텐서로 반환됩니다(감지된 인스턴스당 하나씩).
반환값
list[Dict]
이미지별로 하나씩 포함된 딕셔너리 목록이며, 각 딕셔너리에는 두 개의 키가 포함됩니다:
- segmentation — 각 픽셀이
segment_id를 나타내는(height, width)형태의 텐서, 또는 return_coco_annotation이True로 설정된 경우 분할 맵의list[List]run-length encoding (RLE), 또는 return_binary_maps가True로 설정된 경우(num_instances, height, width)형태의 텐서입니다.threshold보다 높은 마스크가 발견되지 않으면None으로 설정됩니다. - segments_info — 각 세그먼트에 대한 추가 정보를 포함하는 딕셔너리입니다.
- id —
segment_id을 나타내는 정수입니다. - label_id —
segment_id에 해당하는 라벨/의미 클래스 id를 나타내는 정수입니다. - score —
segment_id를 가진 세그먼트의 예측 점수.
- id —
MaskFormerForInstanceSegmentationOutput의 출력을 인스턴스 분할 예측으로 변환합니다. PyTorch만 지원합니다. 인스턴스가 겹칠 수 있는 경우, 올바른 분할 결과를 얻으려면 return_coco_annotation 또는 return_binary_maps 중 하나를 True로 설정하세요.
post_process_panoptic_segmentation
< source >( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8label_ids_to_fuse: set[int] | None = Nonetarget_sizes: list[tuple[int, int]] | None = None ) → list[Dict]
매개변수
- outputs (
MaskFormerForInstanceSegmentationOutput) — MaskFormerForInstanceSegmentation의 출력입니다. - threshold (
float, 선택 사항, 기본값 0.5) — 예측된 인스턴스 마스크를 유지할 확률 점수 임계값입니다. - mask_threshold (
float, 선택 사항, 기본값 0.5) — 예측된 마스크를 이진 값으로 변환할 때 사용할 임계값. - overlap_mask_area_threshold (
float, 선택 사항, 기본값 0.8) — 각 바이너리 인스턴스 마스크 내에서 작은 분리된 부분을 병합하거나 제거하기 위한 오버랩 마스크 영역 임계값입니다. - label_ids_to_fuse (
Set[int], 선택 사항) — 이 상태의 레이블은 모든 인스턴스가 하나로 병합됩니다. 예를 들어 이미지에는 하늘이 하나만 있을 수 있지만 사람은 여러 명 있을 수 있으므로, 하늘의 레이블 ID는 해당 세트에 포함되지만 사람의 레이블 ID는 포함되지 않습니다. - target_sizes (
list[Tuple], 선택 사항) — batch_size 길이의 리스트로, 각 리스트 항목(tuple[int, int]])은 배치 내 각 예측의 요청된 최종 크기(높이, 너비)에 해당합니다. None으로 두면 예측 이미지가 리사이즈되지 않습니다.
반환값
list[Dict]
이미지별로 하나씩 포함된 딕셔너리 목록이며, 각 딕셔너리에는 두 개의 키가 포함됩니다:
- segmentation — 각 픽셀이
segment_id를 나타내는(height, width)형태의 텐서.threshold보다 큰 마스크가 없으면None으로 설정됩니다.target_sizes가 지정된 경우, segmentation은 해당target_sizes항목으로 리사이즈됩니다. - segments_info — 각 세그먼트에 대한 추가 정보를 포함하는 딕셔너리.
- id —
segment_id을 나타내는 정수입니다. - label_id —
segment_id에 해당하는 라벨/의미 클래스 id를 나타내는 정수입니다. - was_fused —
label_id가label_ids_to_fuse에 포함되면True, 그렇지 않으면False인 boolean 값입니다. 동일한 클래스/라벨의 여러 인스턴스가 병합되어 단일segment_id가 할당되었습니다. - score —
segment_id를 가진 세그먼트의 예측 점수.
- id —
MaskFormerForInstanceSegmentationOutput의 출력을 이미지 판옵틱 세분화 예측으로 변환합니다. PyTorch만 지원합니다.
MaskFormerImageProcessorPil
class transformers.MaskFormerImageProcessorPil
< source >( **kwargs: *<class 'transformers.models.maskformer.image_processing_pil_maskformer.MaskFormerImageProcessorKwargs'> )
매개변수
- do_convert_rgb (
bool, kwargs, 선택 사항) — 이미지를 RGB로 변환할지 여부입니다. - do_resize (
bool, kwargs, 선택 사항, 기본값True) — 이미지를 리사이즈할지 여부. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, 기본값{'shortest_edge' -- 800, 'longest_edge': 1333}): 모델에 전달되는 최대 입력 차원을 설명합니다. - default_to_square (
bool, kwargs, 선택 사항, 기본값False) — size가 int인 경우 리사이즈 시 정사각형 이미지로 기본 설정할지 여부. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) —center_crop을 적용한 후 출력 이미지의 크기. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, 기본값2) — 이미지 크기를 조정할 때 사용할 리샘플링 필터입니다.PILImageResamplingenum 중 하나를 사용할 수 있습니다.do_resize가True로 설정된 경우에만 효과가 있습니다. - do_rescale (
bool, kwargs, 선택, 기본값True) — 이미지를 다시 스케일링할지 여부. - rescale_factor (
float, kwargs, 선택 사항, 기본값0.00392156862745098) —do_rescale이True로 설정된 경우 이미지를 재조정(rescale)하는 데 사용할 재조정 계수입니다. - do_normalize (
bool, kwargs, 선택, 기본값True) — 이미지를 정규화할지 여부. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, 선택, 기본값[0.485, 0.456, 0.406]) — 정규화에 사용할 이미지 평균입니다.do_normalize가True로 설정된 경우에만 효과가 있습니다. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, 선택, 기본값[0.229, 0.224, 0.225]) — 정규화에 사용할 이미지 표준 편차입니다.do_normalize가True로 설정된 경우에만 효과가 있습니다. - do_pad (
bool, kwargs, optional) — 이미지를 패딩할지 여부입니다. 패딩은 배치 내 가장 큰 크기로 수행하거나, 이미지마다 고정된 정사각형 크기로 수행합니다. 정확한 패딩 전략은 모델에 따라 달라집니다. - pad_size (
SizeDict, kwargs, 선택 사항) — 이미지를 패딩할 크기입니다. 전처리용으로 제공된 모든 이미지 크기보다 커야 합니다.pad_size가 제공되지 않으면, 배치 내 가장 큰 높이와 너비로 이미지가 패딩됩니다. - do_center_crop (
bool, kwargs, 선택) — 이미지를 중앙으로 크롭할지 여부. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, 선택 사항) —ChannelDimension.FIRST만 지원됩니다. 느린 프로세서와의 호환성을 위해 추가되었습니다. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, 선택 사항) — 입력 이미지의 채널 차원 형식입니다. 설정되지 않으면 입력 이미지에서 채널 차원 형식을 추론합니다. 다음 중 하나일 수 있습니다:"channels_first"또는ChannelDimension.FIRST: (num_channels, height, width) 형식의 이미지."channels_last"또는ChannelDimension.LAST: (height, width, num_channels) 형식의 이미지."none"또는ChannelDimension.NONE: (height, width) 형식의 이미지.
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — 동영상을 처리할 장치입니다. 설정되지 않은 경우, 입력 동영상에서 장치를 추론합니다. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) —'pt'로 설정된 경우 스택된 텐서를 반환하고, 그렇지 않으면 텐서 목록을 반환합니다. - disable_grouping (
bool, kwargs, 선택 사항) — 이미지를 크기에 따라 그룹화하는 것을 비활성화하여 배치 대신 개별적으로 처리할지 여부입니다. None인 경우, 이미지가 CPU에 있으면 True, 그렇지 않으면 False로 설정됩니다. 이 선택은 https://github.com/huggingface/transformers/pull/38157에 자세히 설명된 경험적 관찰에 기반합니다. - image_seq_length (
int, kwargs, 선택 사항) — 입력에서 각 이미지에 사용할 이미지 토큰의 수입니다. 하위 호환성을 위해 추가되었지만, 향후 모델에서는 프로세서 속성으로 설정해야 합니다. - ignore_index (
int, kwargs, 선택 사항) — 분할 맵에서 배경 픽셀에 할당할 라벨입니다. 지정된 경우, 0(배경)으로 표시된 분할 맵 픽셀은ignore_index로 대체됩니다. - do_reduce_labels (
bool, kwargs, 선택 사항, 기본값False) — 세그멘테이션 맵의 모든 라벨 값을 1만큼 줄일지 여부입니다. 일반적으로 배경에 0이 사용되고, 배경 자체가 데이터셋의 모든 클래스에 포함되지 않는 데이터셋(예: ADE20k)에서 사용됩니다. 배경 라벨은ignore_index로 대체됩니다. - num_labels (
int, kwargs, 선택 사항) — 세그멘테이션 맵에 포함된 라벨의 수입니다. - size_divisor (
int, kwargs, 선택 사항, 기본값32) — 일부 backbone은 특정 숫자로 나누어 떨어지는 이미지가 필요합니다. 값을 전달하지 않으면 Swin Transformer에서 사용된 값이 기본값으로 적용됩니다.
MaskFormerImageProcessor 이미지 프로세서를 생성합니다.
preprocess
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]segmentation_maps: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Noneinstance_id_to_semantic_id: list[dict[int, int]] | dict[int, int] | None = None**kwargs: *<class 'transformers.models.maskformer.image_processing_pil_maskformer.MaskFormerImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature
매개변수
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — 전처리할 이미지. 픽셀 값이 0에서 255 범위로 이루어진 단일 이미지 또는 배치 이미지를 기대합니다. 픽셀 값이 0에서 1 사이인 이미지를 전달하는 경우do_rescale=False로 설정하세요. - segmentation_maps (
ImageInput, 선택 사항) — 세그멘테이션 맵입니다. - instance_id_to_semantic_id (
Union[list[dict[int, int]], dict[int, int]], 선택) — 인스턴스 ID에서 의미론적 ID로 매핑합니다. - do_convert_rgb (
bool, kwargs, 선택 사항) — 이미지를 RGB로 변환할지 여부입니다. - do_resize (
bool, kwargs, 선택) — 이미지를 리사이즈할지 여부. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — 모델의 최대 입력 차원을 설명합니다. - default_to_square (
bool, kwargs, 선택 사항) — size가 int인 경우 리사이즈 시 정사각형 이미지로 기본 설정할지 여부. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) —center_crop을 적용한 후 출력 이미지의 크기. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — 이미지를 리사이즈할 경우 사용할 리샘플링 필터입니다. 이는PILImageResamplingenum 중 하나일 수 있습니다.do_resize가True로 설정된 경우에만 효과가 있습니다. - do_rescale (
bool, kwargs, 선택 사항) — 이미지를 다시 스케일링할지 여부입니다. - rescale_factor (
float, kwargs, optional) —do_rescale이True로 설정된 경우 이미지를 리스케일하기 위한 리스케일 팩터입니다. - do_normalize (
bool, kwargs, optional) — 이미지를 정규화할지 여부. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, 선택) — 정규화에 사용할 이미지 평균입니다.do_normalize가True로 설정된 경우에만 효과가 있습니다. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, 선택) — 정규화에 사용할 이미지 표준 편차.do_normalize가True로 설정된 경우에만 효과가 있습니다. - do_pad (
bool, kwargs, optional) — 이미지를 패딩할지 여부입니다. 패딩은 배치 내 가장 큰 크기로 수행하거나, 이미지마다 고정된 정사각형 크기로 수행합니다. 정확한 패딩 전략은 모델에 따라 달라집니다. - pad_size (
SizeDict, kwargs, 선택 사항) — 이미지를 패딩할 크기입니다. 전처리용으로 제공된 모든 이미지 크기보다 커야 합니다.pad_size가 제공되지 않으면, 배치 내 가장 큰 높이와 너비로 이미지가 패딩됩니다. - do_center_crop (
bool, kwargs, 선택) — 이미지를 중앙으로 크롭할지 여부. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, 선택 사항) —ChannelDimension.FIRST만 지원됩니다. 느린 프로세서와의 호환성을 위해 추가되었습니다. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, 선택 사항) — 입력 이미지의 채널 차원 형식입니다. 설정되지 않으면 입력 이미지에서 채널 차원 형식을 추론합니다. 다음 중 하나일 수 있습니다:"channels_first"또는ChannelDimension.FIRST: (num_channels, height, width) 형식의 이미지."channels_last"또는ChannelDimension.LAST: (height, width, num_channels) 형식의 이미지."none"또는ChannelDimension.NONE: (height, width) 형식의 이미지.
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — 동영상을 처리할 장치입니다. 설정되지 않은 경우, 입력 동영상에서 장치를 추론합니다. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) —'pt'로 설정된 경우 스택된 텐서를 반환하고, 그렇지 않으면 텐서 목록을 반환합니다. - disable_grouping (
bool, kwargs, 선택 사항) — 이미지를 크기에 따라 그룹화하는 것을 비활성화하여 배치 대신 개별적으로 처리할지 여부입니다. None인 경우, 이미지가 CPU에 있으면 True, 그렇지 않으면 False로 설정됩니다. 이 선택은 https://github.com/huggingface/transformers/pull/38157에 자세히 설명된 경험적 관찰에 기반합니다. - image_seq_length (
int, kwargs, 선택 사항) — 입력에서 각 이미지에 사용할 이미지 토큰의 수입니다. 하위 호환성을 위해 추가되었지만, 향후 모델에서는 프로세서 속성으로 설정해야 합니다. - ignore_index (
int, kwargs, 선택 사항) — 분할 맵에서 배경 픽셀에 할당할 라벨입니다. 지정된 경우, 0(배경)으로 표시된 분할 맵 픽셀은ignore_index로 대체됩니다. - do_reduce_labels (
bool, kwargs, 선택 사항, 기본값False) — 세그멘테이션 맵의 모든 라벨 값을 1만큼 줄일지 여부입니다. 일반적으로 배경에 0이 사용되고, 배경 자체가 데이터셋의 모든 클래스에 포함되지 않는 데이터셋(예: ADE20k)에서 사용됩니다. 배경 라벨은ignore_index로 대체됩니다. - num_labels (
int, kwargs, 선택 사항) — 세그멘테이션 맵에 포함된 라벨의 수입니다. - size_divisor (
int, kwargs, 선택 사항, 기본값32) — 일부 backbone은 특정 숫자로 나누어 떨어지는 이미지가 필요합니다. 값을 전달하지 않으면 Swin Transformer에서 사용된 값이 기본값으로 적용됩니다.
반환값
~image_processing_base.BatchFeature
- data (
dict) — call 메서드가 반환하는 리스트/배열/텐서 딕셔너리(‘pixel_values’ 등). - tensor_type (
Union[None, str, TensorType], 선택 사항) — 초기화 시 PyTorch/Numpy 텐서에서 정수 목록을 변환하려면 여기에 tensor_type를 지정할 수 있습니다.
post_process_semantic_segmentation
< source >( outputstarget_sizes: list[tuple[int, int]] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]
매개변수
- outputs (MaskFormerForInstanceSegmentation) — 모델의 원시 출력입니다.
- target_sizes (
list[tuple[int, int]], 선택 사항) — (batch_size) 길이의 리스트로, 각 리스트 항목(tuple[int, int]])은 각 예측의 요청된 최종 크기(height, width)에 해당합니다. None으로 두면 예측 결과가 리사이즈되지 않습니다. - return_segmentation_scores (
bool, 선택 사항, 기본값False) — 분할 맵과 함께 분할 점수를 반환할지 여부입니다.True인 경우, 반환된 리스트의 각 요소는SemanticSegmentationPostProcessorOutput이며,segmentation필드(클래스 ID, shape(height, width))와segmentation_scores필드(shape(num_classes, height, width))를 포함합니다.
반환값
list[torch.Tensor] 또는 list[SemanticSegmentationPostProcessorOutput]
return_segmentation_scores=False(기본값)인 경우, 각 항목이 클래스 ID를 가진 (height, width) 형태의 분할 맵인 길이 batch_size의 리스트를 반환합니다. return_segmentation_scores=True인 경우, segmentation(클래스 ID, 형태 (height, width))와 segmentation_scores(형태 (num_classes, height, width)) 필드를 가진 SemanticSegmentationPostProcessorOutput의 리스트를 반환합니다. 두 경우 모두 (height, width)는 대상 크기(target_sizes가 지정된 경우)에 해당합니다.
MaskFormerForInstanceSegmentation의 출력을 의미 분할(semantic segmentation) 맵으로 변환합니다. PyTorch만 지원합니다.
post_process_instance_segmentation
< source >( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8target_sizes: list[tuple[int, int]] | None = Nonereturn_coco_annotation: bool | None = Falsereturn_binary_maps: bool | None = False ) → list[Dict]
매개변수
- outputs (MaskFormerForInstanceSegmentation) — 모델의 원시 출력입니다.
- threshold (
float, 선택 사항, 기본값 0.5) — 예측된 인스턴스 마스크를 유지할 확률 점수 임계값입니다. - mask_threshold (
float, 선택 사항, 기본값 0.5) — 예측된 마스크를 이진 값으로 변환할 때 사용할 임계값. - overlap_mask_area_threshold (
float, 선택 사항, 기본값 0.8) — 각 바이너리 인스턴스 마스크 내에서 작은 분리된 부분을 병합하거나 제거하기 위한 오버랩 마스크 영역 임계값입니다. - target_sizes (
list[Tuple], 선택 사항) — (batch_size) 길이의 리스트로, 각 리스트 항목(tuple[int, int]])은 각 예측에 대해 요청된 최종 크기(높이, 너비)에 해당합니다. None으로 두면 예측 결과가 리사이즈되지 않습니다. - return_coco_annotation (
bool, 선택, 기본값False) —True로 설정하면, 분할 맵이 COCO run-length encoding(RLE) 형식으로 반환됩니다. - return_binary_maps (
bool, 선택 사항, 기본값False) —True로 설정하면, 분할 맵이 바이너리 분할 맵의 연결된 텐서로 반환됩니다(감지된 인스턴스당 하나씩).
반환값
list[Dict]
이미지별로 하나씩 포함된 딕셔너리 목록이며, 각 딕셔너리에는 두 개의 키가 포함됩니다:
- segmentation — 각 픽셀이
segment_id를 나타내는(height, width)형태의 텐서, 또는 return_coco_annotation이True로 설정된 경우 분할 맵의list[List]run-length encoding (RLE), 또는 return_binary_maps가True로 설정된 경우(num_instances, height, width)형태의 텐서입니다.threshold보다 높은 마스크가 발견되지 않으면None으로 설정됩니다. - segments_info — 각 세그먼트에 대한 추가 정보를 포함하는 딕셔너리입니다.
- id —
segment_id을 나타내는 정수입니다. - label_id —
segment_id에 해당하는 라벨/의미 클래스 id를 나타내는 정수입니다. - score —
segment_id를 가진 세그먼트의 예측 점수.
- id —
MaskFormerForInstanceSegmentationOutput의 출력을 인스턴스 분할 예측으로 변환합니다. PyTorch만 지원합니다. 인스턴스가 겹칠 수 있는 경우, 올바른 분할 결과를 얻으려면 return_coco_annotation 또는 return_binary_maps 중 하나를 True로 설정하세요.
post_process_panoptic_segmentation
< source >( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8label_ids_to_fuse: set[int] | None = Nonetarget_sizes: list[tuple[int, int]] | None = None ) → list[Dict]
매개변수
- outputs (
MaskFormerForInstanceSegmentationOutput) — MaskFormerForInstanceSegmentation의 출력입니다. - threshold (
float, 선택 사항, 기본값 0.5) — 예측된 인스턴스 마스크를 유지할 확률 점수 임계값입니다. - mask_threshold (
float, 선택 사항, 기본값 0.5) — 예측된 마스크를 이진 값으로 변환할 때 사용할 임계값. - overlap_mask_area_threshold (
float, 선택 사항, 기본값 0.8) — 각 바이너리 인스턴스 마스크 내에서 작은 분리된 부분을 병합하거나 제거하기 위한 오버랩 마스크 영역 임계값입니다. - label_ids_to_fuse (
Set[int], 선택 사항) — 이 상태의 레이블은 모든 인스턴스가 하나로 병합됩니다. 예를 들어 이미지에는 하늘이 하나만 있을 수 있지만 사람은 여러 명 있을 수 있으므로, 하늘의 레이블 ID는 해당 세트에 포함되지만 사람의 레이블 ID는 포함되지 않습니다. - target_sizes (
list[Tuple], 선택 사항) — batch_size 길이의 리스트로, 각 리스트 항목(tuple[int, int]])은 배치 내 각 예측의 요청된 최종 크기(높이, 너비)에 해당합니다. None으로 두면 예측 이미지가 리사이즈되지 않습니다.
반환값
list[Dict]
이미지별로 하나씩 포함된 딕셔너리 목록이며, 각 딕셔너리에는 두 개의 키가 포함됩니다:
- segmentation — 각 픽셀이
segment_id를 나타내는(height, width)형태의 텐서.threshold보다 큰 마스크가 없으면None으로 설정됩니다.target_sizes가 지정된 경우, segmentation은 해당target_sizes항목으로 리사이즈됩니다. - segments_info — 각 세그먼트에 대한 추가 정보를 포함하는 딕셔너리.
- id —
segment_id을 나타내는 정수입니다. - label_id —
segment_id에 해당하는 라벨/의미 클래스 id를 나타내는 정수입니다. - was_fused —
label_id가label_ids_to_fuse에 포함되면True, 그렇지 않으면False인 boolean 값입니다. 동일한 클래스/라벨의 여러 인스턴스가 병합되어 단일segment_id가 할당되었습니다. - score —
segment_id를 가진 세그먼트의 예측 점수.
- id —
MaskFormerForInstanceSegmentationOutput의 출력을 이미지 판옵틱 세분화 예측으로 변환합니다. PyTorch만 지원합니다.
MaskFormerModel
class transformers.MaskFormerModel
< source >( config: MaskFormerConfig )
매개변수
- config (MaskFormerConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하면 모델에 연결된 가중치는 로드되지 않으며 구성만 로드됩니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
특정 헤드가 위에 없는 맨 상태의 Maskformer 모델로, 원시 hidden-states를 출력합니다.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
forward
< source >( pixel_values: Tensorpixel_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → MaskFormerModelOutput or tuple(torch.Tensor)
매개변수
- pixel_values (
torch.Tensor, shape(batch_size, num_channels, image_size, image_size)) — 입력 이미지에 해당하는 텐서입니다. 픽셀 값은 MaskFormerImageProcessor를 사용하여 얻을 수 있습니다. 자세한 내용은 MaskFormerImageProcessor.call()를 참조하세요 (processor_class는 이미지 처리에 MaskFormerImageProcessor를 사용합니다). - pixel_mask (
torch.Tensor의 형태인(batch_size, height, width), 선택 사항) — 패딩 픽셀 값에 대한 attention을 수행하지 않도록 하는 마스크. [0, 1] 범위에서 선택된 마스크 값: 실제 픽셀(즉, 마스크되지 않은 픽셀)은 1, 패딩 픽셀(즉, 마스크된 픽셀)은 0. attention 마스크란 무엇인가요?[0, 1]:- 실제 픽셀(즉, 마스크가 적용되지 않은 픽셀)에 대해 1
- 패딩(즉, 마스크 처리된) 픽셀은 0
- output_hidden_states (
bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중hidden_states항목을 참고하세요. - output_attentions (
bool, 선택 사항) — 모든 attention 레이어의 attentions 텐서를 반환할지 여부. 자세한 내용은 반환 텐서 섹션의attentions항목을 참조하세요. - return_dict (
bool, 선택) — 일반 튜플 대신 ModelOutput를 반환할지 여부.
반환값
MaskFormerModelOutput 또는 tuple(torch.Tensor)
torch.Tensor의 튜플 또는 MaskFormerModelOutput입니다. return_dict=False가 전달되거나 config.return_dict=False인 경우, 구성(MaskFormerConfig)과 입력에 따라 다양한 요소를 포함합니다.
MaskFormerModel의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
encoder_last_hidden_state (
torch.Tensor, shape(batch_size, num_channels, height, width)) — 인코더 모델(백본)의 마지막 단계의 마지막 히든 상태(최종 특징 맵).pixel_decoder_last_hidden_state (
torch.Tensor, shape(batch_size, num_channels, height, width)) — 픽셀 디코더 모델(FPN)의 마지막 단계의 마지막 히든 스테이트(최종 피처 맵).transformer_decoder_last_hidden_state (
torch.Tensor, shape(batch_size, sequence_length, hidden_size)) — transformer decoder 모델의 마지막 단계의 마지막 hidden states(최종 feature map).encoder_hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(임베딩 출력 1개 + 각 단계의 출력 1개)로, shape는(batch_size, num_channels, height, width)입니다. 각 단계의 출력에서 인코더 모델의 hidden-states(또는 feature maps라고도 함).pixel_decoder_hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(임베딩 출력용 1개 + 각 단계 출력용 1개)로, shape는(batch_size, num_channels, height, width)입니다. 각 단계 출력 시점의 픽셀 디코더 모델의 hidden-states(또는 feature maps이라고도 함).transformer_decoder_hidden_states (
tuple(torch.Tensor), 선택,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(임베딩 출력 1개 + 각 단계의 출력 1개)로, shape이(batch_size, sequence_length, hidden_size)입니다. 각 단계 출력 시점의 transformer decoder의 hidden-states(또는 feature maps라고도 함). hidden_statestuple(torch.Tensor), 선택,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨:encoder_hidden_states,pixel_decoder_hidden_states,decoder_hidden_states를 포함하는torch.Tensor의 튜플hidden_states (
tuple[torch.Tensor], 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
attentions (
tuple[torch.Tensor], 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
예:
>>> from transformers import AutoImageProcessor, MaskFormerModel
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> # load MaskFormer fine-tuned on ADE20k semantic segmentation
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/maskformer-swin-base-ade")
>>> model = MaskFormerModel.from_pretrained("facebook/maskformer-swin-base-ade")
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read()))
>>> inputs = image_processor(image, return_tensors="pt")
>>> # forward pass
>>> outputs = model(**inputs)
>>> # the decoder of MaskFormer outputs hidden states of shape (batch_size, num_queries, hidden_size)
>>> transformer_decoder_last_hidden_state = outputs.transformer_decoder_last_hidden_state
>>> list(transformer_decoder_last_hidden_state.shape)
[1, 100, 256]MaskFormerForInstanceSegmentation
forward
< source >( pixel_values: Tensormask_labels: list[torch.Tensor] | None = Noneclass_labels: list[torch.Tensor] | None = Nonepixel_mask: typing.Optional[torch.Tensor] = Noneoutput_auxiliary_logits: bool | None = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → MaskFormerForInstanceSegmentationOutput or tuple(torch.Tensor)
매개변수
- pixel_values (
torch.Tensor, shape(batch_size, num_channels, image_size, image_size)) — 입력 이미지에 해당하는 텐서입니다. 픽셀 값은 MaskFormerImageProcessor를 사용하여 얻을 수 있습니다. 자세한 내용은 MaskFormerImageProcessor.call()를 참조하세요 (processor_class는 이미지 처리에 MaskFormerImageProcessor를 사용합니다). - mask_labels (
list[torch.Tensor], 선택 사항) — 모델에 전달할(num_labels, height, width)형태의 마스크 라벨 목록 - class_labels (
list[torch.LongTensor], 선택 사항) — 모델에 입력할(num_labels, height, width)형식의 대상 클래스 라벨 목록입니다.mask_labels의 라벨을 식별하며, 예를 들어mask_labels[i][j]의 라벨은class_labels[i][j]입니다. - pixel_mask (
torch.Tensor의 형태인(batch_size, height, width), 선택 사항) — 패딩 픽셀 값에 대한 attention을 수행하지 않도록 하는 마스크. [0, 1] 범위에서 선택된 마스크 값: 실제 픽셀(즉, 마스크되지 않은 픽셀)은 1, 패딩 픽셀(즉, 마스크된 픽셀)은 0. attention 마스크란 무엇인가요?[0, 1]:- 실제 픽셀(즉, 마스크가 적용되지 않은 픽셀)에 대해 1
- 패딩(즉, 마스크 처리된) 픽셀은 0
- output_auxiliary_logits (
bool, 선택 사항) — 보조 logits를 출력할지 여부. - output_hidden_states (
bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중hidden_states항목을 참고하세요. - output_attentions (
bool, 선택 사항) — 모든 attention 레이어의 attentions 텐서를 반환할지 여부. 자세한 내용은 반환 텐서 섹션의attentions항목을 참조하세요. - return_dict (
bool, 선택) — 일반 튜플 대신 ModelOutput를 반환할지 여부.
반환값
MaskFormerForInstanceSegmentationOutput 또는 tuple(torch.Tensor)
torch.Tensor의 튜플 또는 MaskFormerForInstanceSegmentationOutput입니다. return_dict=False가 전달되거나 config.return_dict=False인 경우, 구성(MaskFormerConfig)과 입력에 따라 다양한 요소를 포함합니다.
MaskFormerForInstanceSegmentation의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
loss (
torch.Tensor, 선택 사항) — 라벨이 존재할 때 반환되는 계산된 손실.class_queries_logits (
torch.Tensor, 선택 사항) — 각 쿼리에 대해 제안된 클래스를 나타내는(batch_size, num_queries, num_labels + 1)형태의 텐서입니다.+ 1은 null 클래스를 포함하기 때문에 필요합니다.masks_queries_logits (
torch.Tensor, 선택 사항) — 각 쿼리에 대한 제안된 마스크를 나타내는(batch_size, num_queries, height, width)형태의 텐서.auxiliary_logits (
Dict[str, torch.Tensor], 선택,output_auxiliary_logits=True일 때 반환됨) — 보조 손실이 활성화된 경우 각 decoder 레이어에 대한 보조 예측을 포함하는 사전입니다.encoder_last_hidden_state (
torch.Tensor, shape(batch_size, num_channels, height, width)) — 인코더 모델(백본)의 마지막 단계의 마지막 히든 상태(최종 특징 맵).pixel_decoder_last_hidden_state (
torch.Tensor, shape(batch_size, num_channels, height, width)) — 픽셀 디코더 모델(FPN)의 마지막 단계의 마지막 히든 스테이트(최종 피처 맵).transformer_decoder_last_hidden_state (
torch.Tensor, shape(batch_size, sequence_length, hidden_size)) — transformer decoder 모델의 마지막 단계의 마지막 hidden states(최종 feature map).encoder_hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(임베딩 출력 1개 + 각 단계의 출력 1개)로, shape는(batch_size, num_channels, height, width)입니다. 각 단계의 출력에서 인코더 모델의 hidden-states(또는 feature maps라고도 함).pixel_decoder_hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(임베딩 출력용 1개 + 각 단계 출력용 1개)로, shape는(batch_size, num_channels, height, width)입니다. 각 단계 출력 시점의 픽셀 디코더 모델의 hidden-states(또는 feature maps이라고도 함).transformer_decoder_hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(임베딩 출력용 1개 + 각 단계 출력용 1개)로, shape는(batch_size, sequence_length, hidden_size)입니다. 각 단계 출력 시점의 transformer decoder hidden-states입니다. hidden_statestuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨:encoder_hidden_states,pixel_decoder_hidden_states,decoder_hidden_states를 포함하는torch.Tensor의 튜플입니다.hidden_states (
tuple[torch.Tensor], 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
attentions (
tuple[torch.Tensor], 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
예:
의미 분할 예시:
>>> from transformers import AutoImageProcessor, MaskFormerForInstanceSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> # load MaskFormer fine-tuned on ADE20k semantic segmentation
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/maskformer-swin-base-ade")
>>> model = MaskFormerForInstanceSegmentation.from_pretrained("facebook/maskformer-swin-base-ade")
>>> url = (
... "https://huggingface.co/datasets/hf-internal-testing/fixtures_ade20k/resolve/main/ADE_val_00000001.jpg"
... )
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read()))
>>> inputs = image_processor(images=image, return_tensors="pt")
>>> outputs = model(**inputs)
>>> # model predicts class_queries_logits of shape `(batch_size, num_queries)`
>>> # and masks_queries_logits of shape `(batch_size, num_queries, height, width)`
>>> class_queries_logits = outputs.class_queries_logits
>>> masks_queries_logits = outputs.masks_queries_logits
>>> # you can pass them to image_processor for postprocessing
>>> predicted_semantic_map = image_processor.post_process_semantic_segmentation(
... outputs, target_sizes=[(image.height, image.width)]
... )[0]
>>> # we refer to the demo notebooks for visualization (see "Resources" section in the MaskFormer docs)
>>> list(predicted_semantic_map.shape)
[512, 683]Panoptic segmentation 예시:
>>> from transformers import AutoImageProcessor, MaskFormerForInstanceSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> # load MaskFormer fine-tuned on COCO panoptic segmentation
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/maskformer-swin-base-coco")
>>> model = MaskFormerForInstanceSegmentation.from_pretrained("facebook/maskformer-swin-base-coco")
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read()))
>>> inputs = image_processor(images=image, return_tensors="pt")
>>> outputs = model(**inputs)
>>> # model predicts class_queries_logits of shape `(batch_size, num_queries)`
>>> # and masks_queries_logits of shape `(batch_size, num_queries, height, width)`
>>> class_queries_logits = outputs.class_queries_logits
>>> masks_queries_logits = outputs.masks_queries_logits
>>> # you can pass them to image_processor for postprocessing
>>> result = image_processor.post_process_panoptic_segmentation(outputs, target_sizes=[(image.height, image.width)])[0]
>>> # we refer to the demo notebooks for visualization (see "Resources" section in the MaskFormer docs)
>>> predicted_panoptic_map = result["segmentation"]
>>> list(predicted_panoptic_map.shape)
[480, 640]