Transformers documentation

CHMv2

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

이 모델은 2026-03-06에 HF papers에 게시되었으며, 2026-03-11에 Hugging Face Transformers에 기여되었습니다.

CHMv2

FlashAttention SDPA

개요

Canopy Height Maps v2 (CHMv2) 모델은 CHMv2: Improvements in Global Canopy Height Mapping using DINOv3에서 제안되었습니다. 2024년에 공개된 원본 고해상도 수관 높이 지도를 기반으로, CHMv2는 Meta의 자기지도형 비전 모델인 DINOv3를 활용하여 정확도, 세부 정보, 그리고 전 지구적 일관성에서 상당한 개선을 제공합니다.

더 자세한 정보는 여기에서, 원본 코드는 여기에서 확인할 수 있습니다.

해당 논문의 초록은 다음과 같습니다:

정확한 수관 높이 정보는 산림 탄소 정량화, 복원 및 훼손 모니터링, 서식지 구조 평가에 필수적이지만, 항공 레이저 스캐닝(ALS)을 통한 고해상도 측정은 전 세계적으로 고르게 제공되지 않고 있습니다. 본 논문에서는 DINOv3 기반 깊이 추정 모델을 활용하여 ALS 수관 높이 모델에 대해 학습시킨 후, 고해상도 광학 위성 영상을 통해 전 지구적 미터 해상도 수관 높이 지도인 CHMv2를 생성하는 방법을 제시합니다. 기존 제품과 비교할 때, CHMv2는 정확도를 크게 향상시키고, 높은 산림에서의 편향을 줄이며, 수관 가장자리와 빈 공간과 같은 미세한 구조를 더 잘 보존합니다. 이러한 성능 향상은 지리적으로 다양한 대규모 학습 데이터의 확장, 자동화된 데이터 큐레이션 및 정렬, 그리고 수관 높이 분포에 맞춤화된 손실 함수 구성 및 데이터 샘플링 전략에 의해 가능해졌습니다. 독립적인 ALS 테스트 세트 및 수천만 건의 GEDI와 ICESat-2 관측 데이터에 대해 CHMv2를 검증한 결과, 주요 산림 생물 군계 전반에서 일관된 성능을 입증했습니다.

사용 예시

다음 코드로 이미지에 대해 추론을 실행합니다:

import torch
from PIL import Image

from transformers import AutoImageProcessor, AutoModelForDepthEstimation


processor = AutoImageProcessor.from_pretrained("facebook/dinov3-vitl16-chmv2-dpt-head")
model = AutoModelForDepthEstimation.from_pretrained("facebook/dinov3-vitl16-chmv2-dpt-head", device_map="auto")

image = Image.open("image.tif")
inputs = processor(images=image, return_tensors="pt").to(model.device)

with torch.no_grad():
    outputs = model(**inputs)

depth = processor.post_process_depth_estimation(
    outputs, target_sizes=[(image.height, image.width)]
)[0]["predicted_depth"]

CHMv2Config

클래스 transformers.CHMv2Config

< >

( 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 = Nonebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonepatch_size: int = 16initializer_range: float = 0.02reassemble_factors: list[float | int] | None = Nonepost_process_channels: list[int] | None = Nonefusion_hidden_size: int = 256head_hidden_size: int = 128number_output_channels: int = 256readout_type: str = 'project'min_depth: float = 0.001max_depth: float = 96.0bins_strategy: typing.Literal['linear', 'log', 'chmv2_mixlog'] = 'chmv2_mixlog'norm_strategy: typing.Literal['linear', 'softmax', 'sigmoid', 'chmv2_mixlog'] = 'chmv2_mixlog' )

매개변수

  • backbone_config (Union[dict, "PreTrainedConfig"], 선택) — 백본 모델의 설정입니다. 현재 DINOv3ViTConfig만 지원됩니다.
  • patch_size (int, 선택 사항, 기본값 16) — 백본 비전 트랜스포머에서 사용하는 패치 크기입니다.
  • initializer_range (float, 선택 사항, 기본값 0.02) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다.
  • reassemble_factors (list[float], 선택 사항, 기본값 [4, 2, 1, 0.5]) — reassemble 레이어의 업/다운샘플링 계수입니다.
  • post_process_channels (list[int], 선택 사항, 기본값 [128, 256, 512, 1024]) — 각 backbone feature level에 대한 reassemble stage의 출력 채널 크기입니다.
  • fusion_hidden_size (int, 선택 사항, 기본값 256) — 퓨전 이전의 채널 수입니다.
  • head_hidden_size (int, 선택 사항, 기본값 128) — 깊이 추정 헤드(hidden layer)의 히든 레이어 채널 수입니다.
  • number_output_channels (int, 선택 사항, 기본값 256) — CHMv2 헤드에 대한 출력 채널 수(깊이 빈의 수).
  • readout_type (str, 선택 사항, 기본값 "project") — CLS 토큰에 대한 readout 연산의 유형. ["ignore", "add", "project"] 중 하나입니다.
  • min_depth (float, 선택 사항, 기본값 0.001) — 깊이 버킷 계산에 사용되는 최소 깊이 값입니다.
  • max_depth (float, 선택 사항, 기본값 96.0) — 깊이 bin 계산에 사용되는 최대 깊이 값입니다.
  • bins_strategy (str, 선택 사항, 기본값 "chmv2_mixlog") — 깊이 bins 분포에 사용할 전략입니다. ["linear", "log", "chmv2_mixlog"] 중 하나를 지정합니다.
  • norm_strategy (str, 선택 사항, 기본값 "chmv2_mixlog") — 깊이 예측에 사용되는 정규화 전략입니다. ["linear", "softmax", "sigmoid", "chmv2_mixlog"] 중 하나를 지정합니다.

이것은 Chmv2Model의 설정을 저장하기 위한 설정 클래스입니다. 지정된 인자에 따라 Chmv2 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 설정을 인스턴스화하면 facebook/dinov3-vitl16-chmv2-dpt-head와 유사한 설정이 생성됩니다.

Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.

>>> from transformers import CHMv2Config, CHMv2ForDepthEstimation

>>> configuration = CHMv2Config()
>>> model = CHMv2ForDepthEstimation(configuration)
>>> configuration = model.config

CHMv2ImageProcessor

class transformers.CHMv2ImageProcessor

< >

( **kwargs: *<class 'transformers.models.chmv2.image_processing_chmv2.CHMv2ImageProcessorKwargs'> )

매개변수

  • do_convert_rgb (bool, kwargs, 선택 사항) — 이미지를 RGB로 변환할지 여부입니다.
  • do_resize (bool, kwargs, 선택, 기본값 False) — 이미지를 리사이즈할지 여부.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, 기본값 {'height' -- 384, 'width': 384}): 모델에 입력되는 최대 차원을 설명합니다.
  • default_to_square (bool, kwargs, 선택 사항, 기본값 True) — size가 int인 경우 리사이즈 시 정사각형 이미지로 기본 설정할지 여부입니다.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, 기본값 None) — center_crop을 적용한 후의 출력 이미지 크기입니다.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, 기본값 3) — 이미지를 리사이즈할 때 사용할 리샘플링 필터입니다. PILImageResampling enum 중 하나를 사용할 수 있습니다. 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.42, 0.411, 0.296]) — 정규화에 사용할 이미지 평균입니다. do_normalize가 True로 설정된 경우에만 효과가 있습니다.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, 선택, 기본값 [0.213, 0.156, 0.143]) — 정규화에 사용할 이미지 표준 편차입니다. do_normalize가 True로 설정된 경우에만 효과가 있습니다.
  • do_pad (bool, kwargs, 선택, 기본값 True) — 이미지에 패딩을 적용할지 여부입니다. 패딩은 배치 내 가장 큰 크기로 수행하거나, 이미지마다 고정된 정사각형 크기로 수행합니다. 정확한 패딩 전략은 모델에 따라 달라집니다.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — 이미지를 패딩할 {"height": int, "width" int} 크기를 지정합니다. 전처리용으로 제공된 모든 이미지 크기보다 커야 합니다. pad_size가 제공되지 않으면, 배치 내 가장 큰 높이와 너비로 패딩됩니다. do_pad=True.일 때만 적용됩니다.
  • do_center_crop (bool, kwargs, 선택, 기본값 None) — 이미지를 중앙으로 크롭할지 여부.
  • 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, 선택 사항) — 입력에서 각 이미지에 사용할 이미지 토큰의 수입니다. 하위 호환성을 위해 추가되었지만, 향후 모델에서는 프로세서 속성으로 설정해야 합니다.
  • ensure_multiple_of (int, kwargs, 선택 사항, 기본값 1) — do_resize가 True인 경우, 이미지는 이 값의 배수가 되는 크기로 리사이즈됩니다. preprocess의 ensure_multiple_of로 재정의할 수 있습니다.
  • size_divisor (int, kwargs, 기본값 16) — 높이와 너비가 모두 나뉘도록 보장하는 크기입니다.
  • keep_aspect_ratio (bool, kwargs, 선택 사항, 기본값 False) — True인 경우, 종횡비가 유지되도록 가능한 가장 큰 크기로 이미지가 리사이즈됩니다. preprocess의 keep_aspect_ratio로 이 값을 재정의할 수 있습니다.
  • do_reduce_labels (bool, kwargs, 선택 사항, 기본값 self.do_reduce_labels) — 세그멘테이션 맵의 모든 라벨 값을 1만큼 줄일지 여부입니다. 일반적으로 배경에 0이 사용되고, 배경 자체가 데이터셋의 모든 클래스에 포함되지 않는 데이터셋(예: ADE20k)에서 사용됩니다. 배경 라벨은 255로 대체됩니다.

CHMv2ImageProcessor 이미지 프로세서를 생성합니다.

preprocess

< >

( 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] = None**kwargs: *<class 'transformers.models.chmv2.image_processing_chmv2.CHMv2ImageProcessorKwargs'> ) → ~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, 선택 사항) — 전처리할 분할 맵입니다.
  • 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) — 이미지를 리사이즈할 경우 사용할 리샘플링 필터입니다. 이는 PILImageResampling enum 중 하나일 수 있습니다. 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 (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — 이미지를 패딩할 {"height": int, "width" int} 크기를 지정합니다. 전처리용으로 제공된 모든 이미지 크기보다 커야 합니다. pad_size가 제공되지 않으면, 배치 내 가장 큰 높이와 너비로 패딩됩니다. do_pad=True.일 때만 적용됩니다.
  • 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, 선택 사항) — 입력에서 각 이미지에 사용할 이미지 토큰의 수입니다. 하위 호환성을 위해 추가되었지만, 향후 모델에서는 프로세서 속성으로 설정해야 합니다.
  • ensure_multiple_of (int, kwargs, 선택 사항, 기본값 1) — do_resize가 True인 경우, 이미지는 이 값의 배수가 되는 크기로 리사이즈됩니다. preprocess의 ensure_multiple_of로 재정의할 수 있습니다.
  • size_divisor (int, kwargs) — 높이와 너비가 모두 나뉘도록 보장하기 위한 크기입니다.
  • keep_aspect_ratio (bool, kwargs, 선택 사항, 기본값 False) — True인 경우, 종횡비가 유지되도록 가능한 가장 큰 크기로 이미지가 리사이즈됩니다. preprocess의 keep_aspect_ratio로 이 값을 재정의할 수 있습니다.
  • do_reduce_labels (bool, kwargs, 선택 사항, 기본값 self.do_reduce_labels) — 세그멘테이션 맵의 모든 라벨 값을 1만큼 줄일지 여부입니다. 일반적으로 배경에 0이 사용되고, 배경 자체가 데이터셋의 모든 클래스에 포함되지 않는 데이터셋(예: ADE20k)에서 사용됩니다. 배경 라벨은 255로 대체됩니다.

반환값

~image_processing_base.BatchFeature

  • data (dict) — call 메서드가 반환하는 리스트/배열/텐서 딕셔너리(‘pixel_values’ 등).
  • tensor_type (Union[None, str, TensorType], 선택 사항) — 초기화 시 PyTorch/Numpy 텐서에서 정수 목록을 변환하려면 여기에 tensor_type를 지정할 수 있습니다.

post_process_depth_estimation

< >

( outputs: DepthEstimatorOutputtarget_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = None ) → List[Dict[str, TensorType]]

매개변수

  • outputs (DepthEstimatorOutput) — 모델의 원시 출력입니다.
  • target_sizes (TensorType 또는 List[Tuple[int, int]], 선택 사항) — 배치 내 각 이미지의 목표 크기(높이, 너비)를 포함하는 (batch_size, 2) 형태의 Tensor 또는 튜플(Tuple[int, int]) 목록입니다. None으로 두면 예측 결과가 리사이즈되지 않습니다.

반환값

List[Dict[str, TensorType]]

처리된 깊이 예측을 나타내는 텐서 딕셔너리의 목록입니다.

DepthEstimatorOutput의 원시 출력을 최종 깊이 예측값과 깊이 PIL 이미지로 변환합니다. PyTorch만 지원합니다.

CHMv2ForDepthEstimation

class transformers.CHMv2ForDepthEstimation

< >

( config: CHMv2Config )

매개변수

  • config (CHMv2Config) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 관련된 가중치를 로드하지 않으며, 구성만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

CHMv2 모델은 상단에 depth estimation 헤드(합성곱 계층으로 구성)를 포함하여, 예를 들어 수관 높이 추정과 같은 용도로 사용됩니다.

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

forward

< >

( pixel_values: FloatTensorlabels: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → DepthEstimatorOutput or tuple(torch.FloatTensor)

매개변수

  • pixel_values (torch.FloatTensor, shape (batch_size, num_channels, image_size, image_size)) — 입력 이미지에 해당하는 텐서입니다. 픽셀 값은 CHMv2ImageProcessor를 사용하여 얻을 수 있습니다. 자세한 내용은 CHMv2ImageProcessor.call()를 참조하세요 (processor_class는 이미지 처리에 CHMv2ImageProcessor를 사용합니다).
  • labels (torch.LongTensor, shape (batch_size, height, width), 선택 사항) — 손실을 계산하기 위한 ground truth depth estimation map입니다.

반환값

DepthEstimatorOutput 또는 tuple(torch.FloatTensor)

torch.FloatTensor의 튜플 또는 DepthEstimatorOutput(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(CHMv2Config)과 입력에 따라 다양한 요소를 포함합니다.

CHMv2ForDepthEstimation의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • loss (torch.FloatTensor, shape (1,), 선택 사항, labels가 제공될 때 반환됨) — 분류(또는 config.num_labels==1인 경우 회귀) 손실.

  • predicted_depth (torch.FloatTensor, shape (batch_size, height, width)) — 각 픽셀에 대한 예측된 깊이.

  • hidden_states (tuple(torch.FloatTensor), 선택 사항, output_hidden_states=True가 전달되었거나 config.output_hidden_states=True인 경우 반환됨) — torch.FloatTensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력용 1개 + 각 레이어의 출력용 1개)로, 모양은 (batch_size, num_channels, height, width)입니다.

    각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.

  • attentions (tuple(torch.FloatTensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.FloatTensor의 튜플로, 모양은 (batch_size, num_heads, patch_size, sequence_length)입니다.

    self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.

예:

>>> from transformers import AutoImageProcessor, CHMv2ForDepthEstimation
>>> import torch
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
    >>> from io import BytesIO

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read())).convert("RGB")

>>> processor = AutoImageProcessor.from_pretrained("facebook/dinov3-vitl16-chmv2-dpt-head")
>>> model = CHMv2ForDepthEstimation.from_pretrained("facebook/dinov3-vitl16-chmv2-dpt-head")

>>> device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
>>> model.to(device)

>>> # prepare image for the model
>>> inputs = processor(images=image, return_tensors="pt").to(device)

>>> with torch.no_grad():
...     outputs = model(**inputs)

>>> # interpolate to original size
>>> post_processed_output = processor.post_process_depth_estimation(
...     outputs, [(image.height, image.width)],
... )
>>> predicted_depth = post_processed_output[0]["predicted_depth"]
Update on GitHub