Transformers documentation

Grounding DINO

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

and get access to the augmented documentation experience

to get started

Model ini dipublikasikan di HF papers pada 2023-03-09 dan disumbangkan ke Hugging Face Transformers pada 2024-04-11.

Grounding DINO

Ikhtisar

Model Grounding DINO diusulkan dalam Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection oleh Shilong Liu, Zhaoyang Zeng, Tianhe Ren, Feng Li, Hao Zhang, Jie Yang, Chunyuan Li, Jianwei Yang, Hang Su, Jun Zhu, Lei Zhang. Grounding DINO memperluas model deteksi objek closed-set dengan text encoder, sehingga memungkinkan deteksi objek open-set. Model ini mencapai hasil yang luar biasa, seperti 52,5 AP pada COCO zero-shot.

Abstrak dari makalah tersebut adalah sebagai berikut:

Dalam makalah ini, kami memperkenalkan detektor objek open-set yang disebut Grounding DINO, dengan menggabungkan detektor berbasis Transformer DINO dengan pre-training berbasis grounding, yang dapat mendeteksi objek arbitrer dengan masukan manusia seperti nama kategori atau ekspresi rujukan. Solusi kunci dari deteksi objek open-set adalah memperkenalkan bahasa ke detektor closed-set untuk generalisasi konsep open-set. Untuk secara efektif memfusi modalitas bahasa dan visual, kami secara konseptual membagi detektor closed-set menjadi tiga fase dan mengusulkan solusi fusi ketat, yang mencakup penguat fitur, pemilihan query yang dipandu bahasa, dan decoder lintas-modalitas untuk fusi lintas-modalitas. Sementara karya-karya sebelumnya terutama mengevaluasi deteksi objek open-set pada kategori baru, kami mengusulkan untuk juga melakukan evaluasi pada pemahaman ekspresi rujukan untuk objek yang ditentukan dengan atribut. Grounding DINO menunjukkan kinerja yang sangat baik pada ketiga pengaturan, termasuk benchmark pada COCO, LVIS, ODinW, dan RefCOCO/+/g. Grounding DINO mencapai 52,5 AP pada benchmark transfer zero-shot deteksi COCO, yaitu tanpa data pelatihan apa pun dari COCO. Ini menetapkan rekor baru pada benchmark zero-shot ODinW dengan rata-rata 26,1 AP.

drawing Grounding DINO overview. Taken from the original paper.

Model ini disumbangkan oleh EduardoPacheco dan nielsr. Kode aslinya dapat ditemukan di sini.

Tips penggunaan

  • Anda dapat menggunakan GroundingDinoProcessor untuk menyiapkan pasangan gambar-teks untuk model.
  • Untuk memisahkan kelas dalam teks, gunakan titik, misalnya “a cat. a dog.”
  • Saat menggunakan beberapa kelas (misalnya "a cat. a dog."), gunakan post_process_grounded_object_detection dari GroundingDinoProcessor untuk memproses keluaran. Karena label yang dikembalikan dari post_process_object_detection mewakili indeks dari dimensi model di mana prob > threshold.

Berikut cara menggunakan model untuk deteksi objek zero-shot:

import requests

import torch
from PIL import Image
from transformers import AutoProcessor, AutoModelForZeroShotObjectDetection

model_id = "IDEA-Research/grounding-dino-tiny"

processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForZeroShotObjectDetection.from_pretrained(model_id, device_map="auto")

image_url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(image_url, stream=True).raw)
# Check for cats and remote controls
text_labels = [["a cat", "a remote control"]]

inputs = processor(images=image, text=text_labels, return_tensors="pt").to(model.device)
with torch.no_grad():
    outputs = model(**inputs)

results = processor.post_process_grounded_object_detection(
    outputs,
    inputs.input_ids,
    threshold=0.4,
    text_threshold=0.3,
    target_sizes=[image.size[::-1]]
)

# Retrieve the first image result
result = results[0]
for box, score, labels in zip(result["boxes"], result["scores"], result["labels"]):
    box = [round(x, 2) for x in box.tolist()]
    print(f"Detected {labels} with confidence {round(score.item(), 3)} at location {box}")
Detected a cat with confidence 0.468 at location [344.78, 22.9, 637.3, 373.62]
Detected a cat with confidence 0.426 at location [11.74, 51.55, 316.51, 473.22]

Grounded SAM

Anda dapat menggabungkan Grounding DINO dengan model Segment Anything untuk menghasilkan mask berbasis teks, sebagaimana diperkenalkan dalam Grounded SAM: Assembling Open-World Models for Diverse Visual Tasks. Anda dapat merujuk pada notebook demo ini 🌍 untuk detailnya.

drawing Grounded SAM overview. Taken from the original repository.

Sumber daya

Daftar sumber resmi Hugging Face dan komunitas (ditandai dengan 🌎) untuk membantu Anda memulai dengan Grounding DINO. Jika Anda tertarik untuk mengirimkan sumber agar disertakan di sini, silakan buka Pull Request dan kami akan meninjaunya! Sumber tersebut sebaiknya mendemonstrasikan sesuatu yang baru, bukan menduplikasi sumber yang sudah ada.

  • Notebook demo mengenai inferensi dengan Grounding DINO serta penggabungannya dengan SAM dapat ditemukan di sini. 🌎

GroundingDinoImageProcessor

kelas transformers.GroundingDinoImageProcessor

< >

( **kwargs: *<class 'transformers.models.grounding_dino.image_processing_grounding_dino.GroundingDinoImageProcessorKwargs'> )

Parameter

  • do_convert_rgb (bool, kwargs, opsional) — Apakah akan mengonversi gambar ke RGB.
  • do_resize (bool, kwargs, opsional, default True) — Apakah akan mengubah ukuran gambar.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, defaultnya {'shortest_edge' -- 800, 'longest_edge': 1333}): Menggambarkan dimensi input maksimum ke model.
  • default_to_square (bool, kwargs, opsional, defaultnya False) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkan center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, defaultnya 2) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini bisa berupa salah satu enum PILImageResampling. Hanya berpengaruh jika do_resize diatur ke True.
  • do_rescale (bool, kwargs, opsional, default True) — Apakah akan melakukan penskalaan ulang pada gambar.
  • rescale_factor (float, kwargs, opsional, default 0.00392156862745098) — Faktor rescale untuk menskalakan ulang gambar jika do_rescale diatur ke True.
  • do_normalize (bool, kwargs, opsional, default True) — Apakah akan menormalisasi gambar.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya [0.485, 0.456, 0.406]) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya [0.229, 0.224, 0.225]) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • do_pad (bool, kwargs, opsional, default True) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam {"height": int, "width" int} untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jika pad_size tidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketika do_pad=True.
  • do_center_crop (bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Hanya ChannelDimension.FIRST yang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:
    • "channels_first" atau ChannelDimension.FIRST: gambar dalam format (num_channels, height, width).
    • "channels_last" atau ChannelDimension.LAST: gambar dalam format (height, width, num_channels).
    • "none" atau ChannelDimension.NONE: gambar dalam format (height, width).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke 'pt', selain itu mengembalikan daftar tensor.
  • disable_grouping (bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang.
  • format (str, kwargs, opsional, defaultnya AnnotationFormat.COCO_DETECTION) — Format data dari anotasi. Salah satu dari “coco_detection” atau “coco_panoptic”.
  • do_convert_annotations (bool, kwargs, opsional, default True) — Mengontrol apakah anotasi akan dikonversi ke format yang diharapkan oleh model GROUNDING_DINO. Mengonversi kotak pembatas ke format (center_x, center_y, width, height) dan dalam rentang [0, 1]. Dapat ditimpa oleh parameter do_convert_annotations pada metode preprocess.

Membangun pemroses gambar GroundingDinoImageProcessor.

praproses

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]annotations: dict[str, int | str | list[dict]] | list[dict[str, int | str | list[dict]]] | None = Nonereturn_segmentation_masks: bool | None = Nonemasks_path: str | pathlib.Path | None = None**kwargs: *<class 'transformers.models.grounding_dino.image_processing_grounding_dino.GroundingDinoImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature

Parameter

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Gambar yang akan dipreprocess. Mengharapkan satu gambar atau batch gambar dengan nilai piksel berkisar dari 0 hingga 255. Jika mengirimkan gambar dengan nilai piksel antara 0 dan 1, atur do_rescale=False.
  • annotations (AnnotationType atau list[AnnotationType], opsional) — Anotasi yang akan ditransformasikan sesuai dengan padding yang diterapkan pada gambar.
  • return_segmentation_masks (bool, opsional, defaultnya self.return_segmentation_masks) — Apakah akan mengembalikan masker segmentasi.
  • masks_path (str atau pathlib.Path, opsional) — Path ke direktori yang berisi mask segmentasi.
  • do_convert_rgb (bool, kwargs, opsional) — Apakah akan mengonversi gambar ke RGB.
  • do_resize (bool, kwargs, opsional) — Apakah akan mengubah ukuran gambar.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Menggambarkan dimensi input maksimum untuk model.
  • default_to_square (bool, kwargs, opsional) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkan center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini dapat berupa salah satu enum PILImageResampling. Hanya berpengaruh jika do_resize diatur ke True.
  • do_rescale (bool, kwargs, opsional) — Apakah akan melakukan penskalaan ulang pada gambar.
  • rescale_factor (float, kwargs, opsional) — Faktor rescale untuk menskalakan ulang gambar jika do_rescale diatur ke True.
  • do_normalize (bool, kwargs, opsional) — Apakah akan menormalisasi gambar.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • do_pad (bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam {"height": int, "width" int} untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jika pad_size tidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketika do_pad=True.
  • do_center_crop (bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Hanya ChannelDimension.FIRST yang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:
    • "channels_first" atau ChannelDimension.FIRST: gambar dalam format (num_channels, height, width).
    • "channels_last" atau ChannelDimension.LAST: gambar dalam format (height, width, num_channels).
    • "none" atau ChannelDimension.NONE: gambar dalam format (height, width).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke 'pt', selain itu mengembalikan daftar tensor.
  • disable_grouping (bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang.
  • format (str, kwargs, opsional, defaultnya AnnotationFormat.COCO_DETECTION) — Format data dari anotasi. Salah satu dari “coco_detection” atau “coco_panoptic”.
  • do_convert_annotations (bool, kwargs, opsional, default True) — Mengontrol apakah anotasi akan dikonversi ke format yang diharapkan oleh model GROUNDING_DINO. Mengonversi kotak pembatas ke format (center_x, center_y, width, height) dan dalam rentang [0, 1]. Dapat ditimpa oleh parameter do_convert_annotations pada metode preprocess.

Mengembalikan

~image_processing_base.BatchFeature

  • data (dict) — Kamus berisi daftar/array/tensor yang dikembalikan oleh metode call (‘pixel_values’, dll.).
  • tensor_type (Union[None, str, TensorType], opsional) — Anda dapat memberikan tensor_type di sini untuk mengonversi daftar bilangan bulat menjadi Tensor PyTorch/Numpy saat inisialisasi.

GroundingDinoImageProcessorPil

kelas transformers.GroundingDinoImageProcessorPil

< >

( **kwargs: *<class 'transformers.models.grounding_dino.image_processing_pil_grounding_dino.GroundingDinoImageProcessorKwargs'> )

Parameter

  • do_convert_rgb (bool, kwargs, opsional) — Apakah akan mengonversi gambar ke RGB.
  • do_resize (bool, kwargs, opsional, default True) — Apakah akan mengubah ukuran gambar.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, defaultnya {'shortest_edge' -- 800, 'longest_edge': 1333}): Menggambarkan dimensi input maksimum ke model.
  • default_to_square (bool, kwargs, opsional, defaultnya False) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkan center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, defaultnya 2) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini bisa berupa salah satu enum PILImageResampling. Hanya berpengaruh jika do_resize diatur ke True.
  • do_rescale (bool, kwargs, opsional, default True) — Apakah akan melakukan penskalaan ulang pada gambar.
  • rescale_factor (float, kwargs, opsional, default 0.00392156862745098) — Faktor rescale untuk menskalakan ulang gambar jika do_rescale diatur ke True.
  • do_normalize (bool, kwargs, opsional, default True) — Apakah akan menormalisasi gambar.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya [0.485, 0.456, 0.406]) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya [0.229, 0.224, 0.225]) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • do_pad (bool, kwargs, opsional, default True) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam {"height": int, "width" int} untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jika pad_size tidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketika do_pad=True.
  • do_center_crop (bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Hanya ChannelDimension.FIRST yang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:
    • "channels_first" atau ChannelDimension.FIRST: gambar dalam format (num_channels, height, width).
    • "channels_last" atau ChannelDimension.LAST: gambar dalam format (height, width, num_channels).
    • "none" atau ChannelDimension.NONE: gambar dalam format (height, width).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke 'pt', selain itu mengembalikan daftar tensor.
  • disable_grouping (bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang.
  • format (str, kwargs, opsional, defaultnya AnnotationFormat.COCO_DETECTION) — Format data dari anotasi. Salah satu dari “coco_detection” atau “coco_panoptic”.
  • do_convert_annotations (bool, kwargs, opsional, default True) — Mengontrol apakah anotasi akan dikonversi ke format yang diharapkan oleh model GROUNDING_DINO. Mengonversi kotak pembatas ke format (center_x, center_y, width, height) dan dalam rentang [0, 1]. Dapat ditimpa oleh parameter do_convert_annotations pada metode preprocess.

Membangun pemroses gambar GroundingDinoImageProcessor.

praproses

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]annotations: dict[str, int | str | list[dict]] | list[dict[str, int | str | list[dict]]] | None = Nonereturn_segmentation_masks: bool | None = Nonemasks_path: str | pathlib.Path | None = None**kwargs: *<class 'transformers.models.grounding_dino.image_processing_pil_grounding_dino.GroundingDinoImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature

Parameter

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Gambar yang akan dipreprocess. Mengharapkan satu gambar atau batch gambar dengan nilai piksel berkisar dari 0 hingga 255. Jika mengirimkan gambar dengan nilai piksel antara 0 dan 1, atur do_rescale=False.
  • annotations (AnnotationType atau list[AnnotationType], opsional) — Anotasi yang akan ditransformasikan sesuai dengan padding yang diterapkan pada gambar.
  • return_segmentation_masks (bool, opsional, defaultnya self.return_segmentation_masks) — Apakah akan mengembalikan masker segmentasi.
  • masks_path (str atau pathlib.Path, opsional) — Path ke direktori yang berisi mask segmentasi.
  • do_convert_rgb (bool, kwargs, opsional) — Apakah akan mengonversi gambar ke RGB.
  • do_resize (bool, kwargs, opsional) — Apakah akan mengubah ukuran gambar.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Menggambarkan dimensi input maksimum untuk model.
  • default_to_square (bool, kwargs, opsional) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkan center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini dapat berupa salah satu enum PILImageResampling. Hanya berpengaruh jika do_resize diatur ke True.
  • do_rescale (bool, kwargs, opsional) — Apakah akan melakukan penskalaan ulang pada gambar.
  • rescale_factor (float, kwargs, opsional) — Faktor rescale untuk menskalakan ulang gambar jika do_rescale diatur ke True.
  • do_normalize (bool, kwargs, opsional) — Apakah akan menormalisasi gambar.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • do_pad (bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam {"height": int, "width" int} untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jika pad_size tidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketika do_pad=True.
  • do_center_crop (bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Hanya ChannelDimension.FIRST yang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:
    • "channels_first" atau ChannelDimension.FIRST: gambar dalam format (num_channels, height, width).
    • "channels_last" atau ChannelDimension.LAST: gambar dalam format (height, width, num_channels).
    • "none" atau ChannelDimension.NONE: gambar dalam format (height, width).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke 'pt', selain itu mengembalikan daftar tensor.
  • disable_grouping (bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang.
  • format (str, kwargs, opsional, defaultnya AnnotationFormat.COCO_DETECTION) — Format data dari anotasi. Salah satu dari “coco_detection” atau “coco_panoptic”.
  • do_convert_annotations (bool, kwargs, opsional, default True) — Mengontrol apakah anotasi akan dikonversi ke format yang diharapkan oleh model GROUNDING_DINO. Mengonversi kotak pembatas ke format (center_x, center_y, width, height) dan dalam rentang [0, 1]. Dapat ditimpa oleh parameter do_convert_annotations pada metode preprocess.

Mengembalikan

~image_processing_base.BatchFeature

  • data (dict) — Kamus berisi daftar/array/tensor yang dikembalikan oleh metode call (‘pixel_values’, dll.).
  • tensor_type (Union[None, str, TensorType], opsional) — Anda dapat memberikan tensor_type di sini untuk mengonversi daftar bilangan bulat menjadi Tensor PyTorch/Numpy saat inisialisasi.

post_process_object_detection

< >

( outputs: GroundingDinoObjectDetectionOutputthreshold: float = 0.1target_sizes: transformers.utils.generic.TensorType | list[tuple] | None = None ) → list[Dict]

Parameter

  • outputs (GroundingDinoObjectDetectionOutput) — Output mentah dari model.
  • threshold (float, opsional, default 0.1) — Ambang batas skor untuk mempertahankan prediksi deteksi objek.
  • target_sizes (torch.Tensor atau list[tuple[int, int]], opsional) — Tensor dengan bentuk (batch_size, 2) atau daftar tuple (tuple[int, int]) yang berisi ukuran target (height, width) dari setiap gambar dalam batch. Jika tidak diset, prediksi tidak akan di-resize.

Mengembalikan

list[Dict]

Daftar kamus, di mana setiap kamus berisi kunci-kunci berikut:

  • “scores”: Skor kepercayaan untuk setiap kotak prediksi pada gambar.
  • “labels”: Indeks kelas yang diprediksi oleh model pada gambar.
  • “boxes”: Kotak pembatas gambar dalam format (top_left_x, top_left_y, bottom_right_x, bottom_right_y).

Mengonversi output mentah dari GroundingDinoForObjectDetection menjadi kotak batas akhir dalam format (top_left_x, top_left_y, bottom_right_x, bottom_right_y).

GroundingDinoProcessor

kelas transformers.GroundingDinoProcessor

< >

( image_processortokenizer )

Parameter

  • image_processor (GroundingDinoImageProcessor) — Prosesor gambar adalah input yang wajib.
  • tokenizer (BertTokenizer) — Tokenizer adalah input yang wajib.

Membangun GroundingDinoProcessor yang membungkus image processor dan tokenizer menjadi satu processor.

GroundingDinoProcessor menyediakan semua fungsionalitas dari GroundingDinoImageProcessor dan BertTokenizer. Lihat ~GroundingDinoImageProcessor dan ~BertTokenizer untuk informasi lebih lanjut.

__call__

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Nonetext: str | list[str] | list[list[str]] | None = Nonevideos: typing.Union[list['PIL.Image.Image'], numpy.ndarray, ForwardRef('torch.Tensor'), list[numpy.ndarray], list['torch.Tensor'], list[list['PIL.Image.Image']], list[list[numpy.ndarray]], list[list['torch.Tensor']], transformers.video_utils.URL, list[transformers.video_utils.URL], list[list[transformers.video_utils.URL]], transformers.video_utils.Path, list[transformers.video_utils.Path], list[list[transformers.video_utils.Path]], NoneType] = Noneaudio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = None**kwargs: *<class 'transformers.processing_utils.ProcessingKwargs'> )

Parameter

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]], opsional) — Gambar yang akan dipreprocess. Mengharapkan satu gambar atau batch gambar dengan nilai piksel berkisar dari 0 hingga 255. Jika mengirimkan gambar dengan nilai piksel antara 0 dan 1, atur do_rescale=False.
  • text (Union[str, list[str], list[list[str]]], opsional) — Sequens atau batch dari sequens yang akan dienkod. Setiap sequens dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika Anda memasukkan input yang sudah dipretokenisasi, atur is_split_into_words=True untuk menghindari ambiguitas dengan input yang di-batch.
  • videos (Union[list[PIL.Image.Image], numpy.ndarray, torch.Tensor, list[numpy.ndarray], list[torch.Tensor], list[list[PIL.Image.Image]], list[list[numpy.ndarray]], list[list[torch.Tensor]], ~video_utils.URL, list[~video_utils.URL], list[list[~video_utils.URL]], ~video_utils.Path, list[~video_utils.Path], list[list[~video_utils.Path]]], opsional) — Video yang akan dipreprocess. Mengharapkan satu video atau batch video dengan nilai piksel berkisar dari 0 hingga 255. Jika mengirimkan video dengan nilai piksel antara 0 dan 1, atur do_rescale=False.
  • audio (Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]], opsional) — Audio atau batch audio yang akan disiapkan. Setiap audio dapat berupa array NumPy atau tensor PyTorch. Jika berupa array NumPy/tensor PyTorch, setiap audio harus memiliki bentuk (C, T), di mana C adalah jumlah channel, dan T adalah panjang sampel dari audio tersebut.
  • return_tensors (str atau TensorType, opsional) — Jika diset, akan mengembalikan tensor dari framework tertentu. Nilai yang dapat diterima adalah:
    • 'pt': Mengembalikan objek PyTorch torch.Tensor.
    • 'np': Mengembalikan objek NumPy np.ndarray.
  • **kwargs (ProcessingKwargs, opsional) — Opsi pemrosesan tambahan untuk setiap modalitas (teks, gambar, video, audio). Parameter spesifik model tercantum di atas; lihat kelas TypedDict untuk daftar lengkap argumen yang didukung.

post_process_grounded_object_detection

< >

( outputs: GroundingDinoObjectDetectionOutputinput_ids: transformers.utils.generic.TensorType | None = Nonethreshold: float = 0.25text_threshold: float = 0.25target_sizes: transformers.utils.generic.TensorType | list[tuple] | None = Nonetext_labels: list[list[str]] | None = None ) → list[Dict]

Parameter

  • outputs (GroundingDinoObjectDetectionOutput) — Output mentah dari model.
  • input_ids (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — ID token dari teks input. Jika tidak disediakan, akan diambil dari output model.
  • threshold (float, opsional, default 0.25) — Ambang batas untuk mempertahankan prediksi deteksi objek berdasarkan skor kepercayaan.
  • text_threshold (float, opsional, default 0.25) — Ambang batas skor untuk mempertahankan prediksi deteksi teks.
  • target_sizes (torch.Tensor atau list[tuple[int, int]], opsional) — Tensor dengan bentuk (batch_size, 2) atau daftar tuple (tuple[int, int]) yang berisi ukuran target (height, width) dari setiap gambar dalam batch. Jika tidak diset, prediksi tidak akan di-resize.
  • text_labels (list[list[str]], opsional) — Daftar label kandidat yang akan dideteksi pada setiap gambar. Saat ini TIDAK digunakan, tetapi wajib ada dalam tanda tangan untuk pipeline deteksi objek zero-shot. Label teks justru diekstrak dari tensor input_ids yang disediakan dalam outputs.

Mengembalikan

list[Dict]

Daftar kamus, di mana setiap kamus berisi

  • scores: tensor skor kepercayaan untuk objek yang terdeteksi
  • boxes: tensor kotak pembatas dalam format [x0, y0, x1, y1]
  • labels: daftar label teks untuk setiap objek yang terdeteksi (akan diganti dengan id integer di v4.51.0)
  • text_labels: daftar label teks untuk objek yang terdeteksi

Mengonversi output mentah dari GroundingDinoForObjectDetection menjadi kotak batas akhir dalam format (top_left_x, top_left_y, bottom_right_x, bottom_right_y) dan mendapatkan label teks yang terkait.

GroundingDinoConfig

kelas transformers.GroundingDinoConfig

< >

( 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 = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonenum_queries: int = 900encoder_layers: int = 6encoder_ffn_dim: int = 2048encoder_attention_heads: int = 8decoder_layers: int = 6decoder_ffn_dim: int = 2048decoder_attention_heads: int = 8activation_function: str = 'relu'd_model: int = 256dropout: float | int = 0.1attention_dropout: float | int = 0.0activation_dropout: float | int = 0.0auxiliary_loss: bool = Falseposition_embedding_type: str = 'sine'num_feature_levels: int = 4encoder_n_points: int = 4decoder_n_points: int = 4two_stage: bool = Trueclass_cost: float = 1.0bbox_cost: float = 5.0giou_cost: float = 2.0bbox_loss_coefficient: float = 5.0giou_loss_coefficient: float = 2.0focal_alpha: float = 0.25disable_custom_kernels: bool = Falsemax_text_len: int = 256text_enhancer_dropout: float | int = 0.0fusion_droppath: float | int = 0.1fusion_dropout: float | int = 0.0embedding_init_target: bool = Truequery_dim: int = 4decoder_bbox_embed_share: bool = Truetwo_stage_bbox_embed_share: bool = Falsepositional_embedding_temperature: int = 20init_std: float = 0.02layer_norm_eps: float = 1e-05tie_word_embeddings: bool = True )

Parameter

  • is_encoder_decoder (bool, opsional, defaultnya True) — Apakah model digunakan sebagai encoder/decoder atau tidak.
  • backbone_config (Union[dict, ~configuration_utils.PreTrainedConfig], opsional) — Konfigurasi dari model backbone.
  • text_config (Union[dict, ~configuration_utils.PreTrainedConfig], opsional) — Objek config atau dictionary dari text backbone.
  • num_queries (int, opsional, default 900) — Jumlah query objek, yaitu slot deteksi. Ini adalah jumlah maksimal objek yang dapat dideteksi oleh GroundingDinoModel dalam satu gambar.
  • encoder_layers (int, opsional, default 6) — Jumlah lapisan tersembunyi dalam encoder Transformer. Akan menggunakan nilai yang sama dengan num_layers jika tidak diatur.
  • encoder_ffn_dim (int, opsional, defaultnya 2048) — Dimensi dari lapisan “intermediate” (sering disebut feed-forward) di encoder.
  • encoder_attention_heads (int, opsional, default 8) — Jumlah kepala perhatian untuk setiap lapisan perhatian dalam encoder Transformer.
  • decoder_layers (int, opsional, default 6) — Jumlah lapisan tersembunyi dalam decoder Transformer. Akan menggunakan nilai yang sama dengan num_layers jika tidak diatur.
  • decoder_ffn_dim (int, opsional, defaultnya 2048) — Dimensi dari lapisan “intermediate” (sering disebut feed-forward) di decoder.
  • decoder_attention_heads (int, opsional, default 8) — Jumlah kepala perhatian untuk setiap lapisan perhatian dalam decoder Transformer.
  • activation_function (str, opsional, defaultnya relu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya, "gelu", "relu", "silu", dan sebagainya.
  • d_model (int, opsional, default 256) — Ukuran lapisan encoder dan lapisan pooler.
  • dropout (Union[float, int], opsional, default 0.1) — Rasio untuk semua lapisan dropout.
  • attention_dropout (Union[float, int], opsional, default 0.0) — Rasio dropout untuk probabilitas perhatian.
  • activation_dropout (Union[float, int], opsional, defaultnya 0.0) — Rasio dropout untuk aktivasi di dalam lapisan fully connected.
  • auxiliary_loss (bool, opsional, default False) — Apakah kerugian dekode bantu (kerugian pada setiap lapisan decoder) akan digunakan.
  • position_embedding_type (str, opsional, default "sine") — Jenis position embedding yang akan digunakan di atas fitur gambar. Salah satu dari "sine" atau "learned".
  • num_feature_levels (int, opsional, default 4) — Jumlah level fitur input.
  • encoder_n_points (int, opsional, defaultnya 4) — Jumlah kunci yang disampelkan di setiap tingkat fitur untuk setiap kepala perhatian di encoder.
  • decoder_n_points (int, opsional, defaultnya 4) — Jumlah kunci yang disampelkan di setiap tingkat fitur untuk setiap kepala perhatian dalam decoder.
  • two_stage (bool, opsional, default True) — Apakah akan menerapkan deformable DETR dua tahap, di mana proposal region juga dihasilkan oleh varian Grounding DINO, yang kemudian dimasukkan ke dalam decoder untuk penyempurnaan kotak batas secara iteratif.
  • class_cost (float, opsional, default 1.0) — Bobot relatif dari error klasifikasi dalam biaya pencocokan Hungarian.
  • bbox_cost (float, opsional, default 5.0) — Bobot relatif dari error bounding box L1 dalam biaya pencocokan Hungarian.
  • giou_cost (float, opsional, default 2.0) — Bobot relatif dari kerugian generalized IoU dalam biaya pencocokan Hungarian.
  • bbox_loss_coefficient (float, opsional, defaultnya 5.0) — Bobot relatif dari kerugian kotak batas L1 dalam kerugian segmentasi panoptik.
  • giou_loss_coefficient (float, opsional, defaultnya 2.0) — Bobot relatif dari kerugian generalized IoU dalam kerugian segmentasi panoptik.
  • focal_alpha (float, opsional, default 0.25) — Parameter alpha dalam focal loss.
  • disable_custom_kernels (bool, opsional, default False) — Nonaktifkan penggunaan kernel CUDA dan CPU kustom. Opsi ini diperlukan untuk ekspor ONNX, karena kernel kustom tidak didukung oleh ekspor ONNX PyTorch.
  • max_text_len (int, opsional, default 256) — Panjang maksimum dari input teks.
  • text_enhancer_dropout (float, opsional, default 0.0) — Rasio dropout untuk text enhancer.
  • fusion_droppath (float, opsional, default 0.1) — Rasio droppath untuk modul fusion.
  • fusion_dropout (float, opsional, default 0.0) — Rasio dropout untuk modul fusion.
  • embedding_init_target (bool, opsional, defaultnya True) — Apakah akan menginisialisasi target dengan bobot Embedding.
  • query_dim (int, opsional, default 4) — Dimensi dari vektor query.
  • decoder_bbox_embed_share (bool, opsional, default True) — Apakah head regresi bbox akan dibagikan untuk semua lapisan decoder.
  • two_stage_bbox_embed_share (bool, opsional, default False) — Apakah embedding bbox akan dibagikan antara generator bbox dua tahap dan pembuatan usulan region.
  • positional_embedding_temperature (float, opsional, default 20) — Suhu untuk Sine Positional Embedding yang digunakan bersama dengan vision backbone.
  • init_std (float, opsional, defaultnya 0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.
  • layer_norm_eps (float, opsional, defaultnya 1e-05) — Epsilon yang digunakan oleh lapisan normalisasi lapisan.
  • tie_word_embeddings (bool, opsional, default True) — Apakah akan mengikat bobot embedding sesuai dengan pemetaan tied_weights_keys model.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari Grounding DinoModel. Kelas ini digunakan untuk membuat instans model Grounding Dino sesuai dengan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari IDEA-Research/grounding-dino-tiny

Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.

Contoh:

>>> from transformers import GroundingDinoConfig, GroundingDinoModel

>>> # Initializing a Grounding DINO IDEA-Research/grounding-dino-tiny style configuration
>>> configuration = GroundingDinoConfig()

>>> # Initializing a model (with random weights) from the IDEA-Research/grounding-dino-tiny style configuration
>>> model = GroundingDinoModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

GroundingDinoModel

kelas transformers.GroundingDinoModel

< >

( config: GroundingDinoConfig )

Parameter

  • config (GroundingDinoConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Model Grounding DINO polos (terdiri dari backbone dan Transformer encoder-decoder) yang menghasilkan hidden-states mentah tanpa head spesifik di atasnya.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

( pixel_values: Tensorinput_ids: Tensortoken_type_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonepixel_mask: typing.Optional[torch.Tensor] = Noneencoder_outputs = Noneoutput_attentions = Noneoutput_hidden_states = Nonereturn_dict = None**kwargs ) → GroundingDinoModelOutput or tuple(torch.Tensor)

Parameter

  • pixel_values (torch.Tensor dengan bentuk (batch_size, num_channels, image_size, image_size)) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan GroundingDinoImageProcessor. Lihat GroundingDinoImageProcessor.call() untuk detailnya (GroundingDinoProcessor menggunakan GroundingDinoImageProcessor untuk memproses gambar).
  • input_ids (torch.LongTensor dengan bentuk (batch_size, text_sequence_length)) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default jika Anda menyediakannya.

    Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat BertTokenizer.call() untuk detailnya.

  • token_type_ids (torch.LongTensor dengan bentuk (batch_size, text_sequence_length), opsional) — Indeks token segmen untuk menunjukkan bagian pertama dan kedua dari input. Indeks dipilih dalam [0, 1]: 0 merujuk pada token sentence A , 1 merujuk pada token sentence B

    Apa itu token type ID?

  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

  • pixel_mask (torch.Tensor dengan bentuk (batch_size, height, width), opsional) — Mask untuk menghindari penerapan attention pada nilai piksel padding. Nilai mask yang dipilih dalam [0, 1]:
    • 1 untuk piksel yang asli (yaitu tidak dimasker),
    • 0 untuk piksel yang merupakan padding (yaitu masked).

    Apa itu attention mask?

  • encoder_outputs (`) -- Tuple consists of (last_hidden_state, *optional*: hidden_states, *optional*: attentions) last_hidden_stateof shape(batch_size, sequence_length, hidden_size)`, optional) is a sequence of hidden-states at the output of the last layer of the encoder. Used in the cross-attention of the decoder.
  • output_attentions (`) -- Whether or not to return the attentions tensors of all attention layers. See attentions` under returned tensors for more detail.
  • output_hidden_states (`) -- Whether or not to return the hidden states of all layers. See hidden_states` under returned tensors for more detail.
  • return_dict (“) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.

Mengembalikan

GroundingDinoModelOutput atau tuple(torch.Tensor)

GroundingDinoModelOutput atau tuple dari torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (GroundingDinoConfig) dan input.

Metode forward dari GroundingDinoModel menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • last_hidden_state (torch.Tensor dengan bentuk (batch_size, num_queries, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir dari decoder model.

  • init_reference_points (torch.Tensor dengan bentuk (batch_size, num_queries, 4)) — Titik referensi awal yang dikirim melalui decoder Transformer.

  • intermediate_hidden_states (torch.Tensor dengan bentuk (batch_size, config.decoder_layers, num_queries, hidden_size)) — State tersembunyi antara yang ditumpuk (output dari setiap layer decoder).

  • intermediate_reference_points (torch.Tensor dengan bentuk (batch_size, config.decoder_layers, num_queries, 4)) — Titik referensi antara yang ditumpuk (titik referensi dari setiap lapisan decoder).

  • decoder_hidden_states (tuple[torch.Tensor], opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states dari decoder pada output setiap layer ditambah output embedding awal.

  • decoder_attentions (tuple[tuple[torch.Tensor]], opsional, dikembalikan ketika output_attentions=True dilewatkan atau ketika config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap lapisan) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

    Bobot perhatian dari decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.

  • encoder_last_hidden_state_vision (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size), opsional) — Urutan hidden-state pada keluaran lapisan terakhir dari encoder model.

  • encoder_last_hidden_state_text (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size), opsional) — Urutan hidden-state pada keluaran lapisan terakhir dari encoder model.

  • encoder_vision_hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari vision embeddings + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size). Hidden-states dari vision encoder pada output dari setiap lapisan ditambah output embedding awal.

  • encoder_text_hidden_states (tuple(torch.Tensor), opsional, dikembalikan ketika output_hidden_states=True dilewatkan atau ketika config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari text embeddings + satu untuk output dari setiap layer) dengan bentuk (batch_size, sequence_length, hidden_size). Hidden-states dari text encoder pada output setiap layer ditambah output embedding awal.

  • encoder_attentions (tuple(tuple(torch.Tensor)), opsional, dikembalikan ketika output_attentions=True dilewatkan atau ketika config.output_attentions=True) — Tuple of tuples of torch.Tensor (satu untuk perhatian pada setiap lapisan) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length). Bobot perhatian setelah attention softmax, digunakan untuk menghitung rata-rata berbobot dalam text-vision attention, vision-text attention, text-enhancer (self-attention) dan multi-scale deformable attention heads. attention softmax, digunakan untuk menghitung rata-rata berbobot dalam bi-attention heads.

  • enc_outputs_class (torch.Tensor dengan bentuk (batch_size, sequence_length, config.num_labels), opsional, dikembalikan ketika config.two_stage=True) — Skor kotak pembatas yang diprediksi, di mana config.num_queries kotak pembatas dengan skor tertinggi dipilih sebagai usulan wilayah pada tahap pertama. Hasil klasifikasi biner kotak pembatas (yaitu latar depan dan latar belakang).

  • enc_outputs_coord_logits (torch.Tensor dengan bentuk (batch_size, sequence_length, 4), opsional, dikembalikan ketika config.two_stage=True) — Logits dari koordinat kotak pembatas yang diprediksi pada tahap pertama.

  • encoder_logits (torch.Tensor dengan bentuk (batch_size, sequence_length, config.num_labels), opsional, dikembalikan ketika config.two_stage=True) — Logits dari config.num_queries kotak pembatas dengan skor tertinggi pada tahap pertama.

  • encoder_pred_boxes (torch.Tensor dengan bentuk (batch_size, sequence_length, 4), opsional, dikembalikan ketika config.two_stage=True) — Koordinat dari config.num_queries kotak pembatas dengan skor tertinggi pada tahap pertama.

Contoh:

>>> from transformers import AutoProcessor, AutoModel
>>> 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()))
>>> text = "a cat."

>>> processor = AutoProcessor.from_pretrained("IDEA-Research/grounding-dino-tiny")
>>> model = AutoModel.from_pretrained("IDEA-Research/grounding-dino-tiny")

>>> inputs = processor(images=image, text=text, return_tensors="pt")
>>> outputs = model(**inputs)

>>> last_hidden_states = outputs.last_hidden_state
>>> list(last_hidden_states.shape)
[1, 900, 256]

GroundingDinoForObjectDetection

kelas transformers.GroundingDinoForObjectDetection

< >

( config: GroundingDinoConfig )

Parameter

  • config (GroundingDinoConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Model Grounding DINO (terdiri dari backbone dan Transformer encoder-decoder) dengan kepala deteksi objek di atasnya, untuk tugas seperti deteksi COCO.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

( pixel_values: Tensorinput_ids: LongTensortoken_type_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonepixel_mask: typing.Optional[torch.BoolTensor] = Noneencoder_outputs: transformers.models.grounding_dino.modeling_grounding_dino.GroundingDinoEncoderOutput | tuple | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = Nonelabels: list[dict[str, typing.Union[torch.LongTensor, torch.Tensor]]] | None = None**kwargs )

Parameter

  • pixel_values (torch.Tensor dengan bentuk (batch_size, num_channels, image_size, image_size)) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan GroundingDinoImageProcessor. Lihat GroundingDinoImageProcessor.call() untuk detailnya (GroundingDinoProcessor menggunakan GroundingDinoImageProcessor untuk memproses gambar).
  • input_ids (torch.LongTensor dengan bentuk (batch_size, text_sequence_length)) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default jika Anda menyediakannya.

    Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat BertTokenizer.call() untuk detailnya.

  • token_type_ids (torch.LongTensor dengan bentuk (batch_size, text_sequence_length), opsional) — Indeks token segmen untuk menunjukkan bagian pertama dan kedua dari input. Indeks dipilih dalam [0, 1]: 0 merujuk pada token sentence A , 1 merujuk pada token sentence B

    Apa itu token type ID?

  • attention_mask (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

  • pixel_mask (torch.BoolTensor dengan bentuk (batch_size, height, width), opsional) — Mask untuk menghindari penerapan attention pada nilai piksel padding. Nilai mask yang dipilih dalam [0, 1]:
    • 1 untuk piksel yang asli (yaitu tidak dimasker),
    • 0 untuk piksel yang merupakan padding (yaitu masked).

    Apa itu attention mask?

  • encoder_outputs (Union[~models.grounding_dino.modeling_grounding_dino.GroundingDinoEncoderOutput, tuple], opsional) — Tuple terdiri dari (last_hidden_state, opsional: hidden_states, opsional: attentions) last_hidden_state dengan bentuk (batch_size, sequence_length, hidden_size), opsional) adalah rangkaian hidden-states pada keluaran lapisan terakhir encoder. Digunakan dalam cross-attention decoder.
  • output_attentions (bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihat attentions di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • output_hidden_states (bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihat hidden_states di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • return_dict (bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.
  • labels (list[Dict] of len (batch_size,), opsional) — Label untuk menghitung bipartite matching loss. Daftar dict, di mana setiap dictionary mengandung setidaknya 2 kunci berikut: ‘class_labels’ dan ‘boxes’ (masing-masing label kelas dan bounding box dari sebuah gambar dalam batch). Label kelas itu sendiri harus berupa torch.LongTensor of len (number of bounding boxes in the image,) dan boxes berupa torch.Tensor of shape (number of bounding boxes in the image, 4).

Metode forward dari GroundingDinoForObjectDetection menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

Contoh:

>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO

>>> import torch
>>> from PIL import Image
>>> from transformers import AutoProcessor, AutoModelForZeroShotObjectDetection

>>> model_id = "IDEA-Research/grounding-dino-tiny"
>>> device = "cuda"

>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = AutoModelForZeroShotObjectDetection.from_pretrained(model_id).to(device)

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))
>>> # Check for cats and remote controls
>>> text_labels = [["a cat", "a remote control"]]

>>> inputs = processor(images=image, text=text_labels, return_tensors="pt").to(device)
>>> with torch.no_grad():
...     outputs = model(**inputs)

>>> results = processor.post_process_grounded_object_detection(
...     outputs,
...     threshold=0.4,
...     text_threshold=0.3,
...     target_sizes=[(image.height, image.width)]
... )
>>> # Retrieve the first image result
>>> result = results[0]
>>> for box, score, text_label in zip(result["boxes"], result["scores"], result["text_labels"]):
...     box = [round(x, 2) for x in box.tolist()]
...     print(f"Detected {text_label} with confidence {round(score.item(), 3)} at location {box}")
Detected a cat with confidence 0.479 at location [344.7, 23.11, 637.18, 374.28]
Detected a cat with confidence 0.438 at location [12.27, 51.91, 316.86, 472.44]
Detected a remote control with confidence 0.478 at location [38.57, 70.0, 176.78, 118.18]
Update on GitHub