+
    œ°³jk ã                   ó  € R t ^ RIHt ^ RIHt ^ RIHt ^ RIt^ RIHtH	t	 ^RI
Ht ^RIHt ^RIHt ^R	IHt ^R
IHtHt ^RIHtHt ^RIHt ^RIHtHtHtHtH t H!t! ^RI"H#t#H$t$ ^RI%H&t& ^RI'H(t(H)t)H*t* ]! 4       '       d   ^ RI+H,t, ] PZ                  ! ].4      t/R R lt0R R lt1]] ! R R]4      4       4       t2R R lt3R R lt4R t5R t6]! RR7      ] ! R  R!]4      4       4       t7]! R"R7      ] ! R# R$]4      4       4       t8 ! R% R&]	Pr                  4      t: ! R' R(]	Pr                  4      t;RER) R* llt< ! R+ R,]	Pr                  4      t= ! R- R.]	Pr                  4      t> ! R/ R0]4      t?] ! R1 R2]4      4       t@ ! R3 R4]	Pr                  4      tA ! R5 R6]@4      tB ! R7 R8]@4      tC ! R9 R:]@4      tD ! R; R<]@4      tE] ! R= R>]@4      4       tF ! R? R@]	Pr                  4      tG ! RA RB]	Pr                  4      tH ! RC RD]@4      tI. RFOtJR# )GzPyTorch OWLv2 model.)ÚCallable)Ú	dataclass)ÚAnyN)ÚTensorÚnn)Úinitialization)ÚACT2FN)Úcreate_causal_mask)ÚGradientCheckpointingLayer)ÚBaseModelOutputÚBaseModelOutputWithPooling)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModel)ÚUnpack)ÚModelOutputÚTransformersKwargsÚauto_docstringÚis_vision_availableÚloggingÚ	torch_int)Úcan_return_tupleÚmerge_with_config_defaults)Úcapture_outputs)ÚOwlv2ConfigÚOwlv2TextConfigÚOwlv2VisionConfig)Úcenter_to_corners_formatc                óX   € V ^8„  d   QhR\         P                  R\         P                  /# )é   ÚlogitsÚreturn©Útorchr   )Úformats   "Úi/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/owlv2/modeling_owlv2.pyÚ__annotate__r%   6   s&   € ÷ `ñ `œUŸ\™\ð `¬e¯l©lñ `ó    c                 ó”   € \         P                  P                  V \        P                  ! \        V 4      V P                  R 7      4      # )©Údevice)r   Ú
functionalÚcross_entropyr"   ÚarangeÚlenr)   )r   s   &r$   Úcontrastive_lossr.   6   s/   € Ü�=‰=×&Ñ& v¬u¯|ª|¼CÀ»KÐPV×P]ÑP]Ô/^Ó_Ð_r&   c                óX   € V ^8„  d   QhR\         P                  R\         P                  /# )r   Ú
similarityr    r!   )r#   s   "r$   r%   r%   ;   s"   € ÷ -ñ -¬E¯L©Lð -¼U¿\¹\ñ -r&   c                 ó`   € \        V 4      p\        V P                  4      pW,           R ,          # )g       @)r.   ÚT)r0   Úcaption_lossÚ
image_losss   &  r$   Úimage_text_contrastive_lossr5   ;   s(   € Ü# JÓ/€LÜ! *§,¡,Ó/€JØÕ%¨Õ,Ð,r&   c                   ó^   a € ] tR t^At o RtRtRtRtRtRt	Rt
RtV 3R lR ltV 3R ltRtV tR# )ÚOwlv2Outputa‹  
loss (`torch.FloatTensor` of shape `(1,)`, *optional*, returned when `return_loss` is `True`):
    Contrastive loss for image-text similarity.
logits_per_image (`torch.FloatTensor` of shape `(image_batch_size, text_batch_size)`):
    The scaled dot product scores between `image_embeds` and `text_embeds`. This represents the image-text
    similarity scores.
logits_per_text (`torch.FloatTensor` of shape `(text_batch_size, image_batch_size)`):
    The scaled dot product scores between `text_embeds` and `image_embeds`. This represents the text-image
    similarity scores.
text_embeds (`torch.FloatTensor` of shape `(batch_size * num_max_text_queries, output_dim`):
    The text embeddings obtained by applying the projection layer to the pooled output of [`Owlv2TextModel`].
image_embeds (`torch.FloatTensor` of shape `(batch_size, output_dim`):
    The image embeddings obtained by applying the projection layer to the pooled output of
    [`Owlv2VisionModel`].
text_model_output (tuple[`BaseModelOutputWithPooling`]):
    The output of the [`Owlv2TextModel`].
vision_model_output (`BaseModelOutputWithPooling`):
    The output of the [`Owlv2VisionModel`].
Nc                ó0   <€ V ^8„  d   QhRS[ S[,          /# ©r   r    ©Útupler   )r#   Ú__classdict__s   "€r$   r%   ÚOwlv2Output.__annotate__`   ó   ø€ ÷ 
ñ 
™%¡�*ñ 
r&   c                ó    a € \         ;QJ d%    . V 3R  lS P                  4        4       F  NK  	  5# ! V 3R  lS P                  4        4       4      # )c              3   óx   <"  € T F/  pVR9  d
   SV,          M\        SV4      P                  4       x € K1  	  R# 5i©Útext_model_outputN)rB   Úvision_model_output©ÚgetattrÚto_tuple©Ú.0ÚkÚselfs   & €r$   Ú	<genexpr>Ú'Owlv2Output.to_tuple.<locals>.<genexpr>a   ó<   øé € ð 
á �ð Ð LÔLˆD�ŽGÔRYÐZ^Ð`aÓRb×RkÑRkÓRmÔmÛ ùó   ƒ7:©r;   Úkeys©rJ   s   fr$   rF   ÚOwlv2Output.to_tuple`   óA   ø€ ßŒuô 
à—Y‘Y”[ó
�uð 	
ˆuô 
à—Y‘Y”[ó
ó 
ð 	
r&   c                ó  <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[;R&   S[;R&   # )	r   NÚlossÚlogits_per_imageÚlogits_per_textÚtext_embedsÚimage_embedsrB   rC   ©r"   ÚFloatTensorr   )r#   r<   s   "€r$   r%   r=   A   s—   ø‡ ‚ ñ. ×
Ñ
˜dÕ
"Ñ)ñ/ ñ0 ×'Ñ'¨$Õ.Ñ5ñ1 ñ2 ×&Ñ&¨Õ-Ñ4ñ3 ñ4 ×"Ñ" TÕ)Ñ0ñ5 ñ6 ×#Ñ# dÕ*Ñ1ñ7 ñ8 2Ñ8ñ9 ñ: 4Ñ:ò; r&   © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rU   rV   rW   rX   rY   rB   rC   rF   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r<   s   @r$   r7   r7   A   sC   ø‡ € ñð( &*€DØ15ÐØ04€OØ,0€KØ-1€LØ48ÐØ6:Ð÷
ð 
÷? ƒ r&   r7   c                ó0   € V ^8„  d   QhR\         R\         /# )r   Útr    ©r   )r#   s   "r$   r%   r%   h   s   € ÷ Gñ GŒvð Gœ&ñ Gr&   c                 ó2  € V P                  4       '       dB   V P                  \        P                  \        P                  39   d   V # V P                  4       # V P                  \        P                  \        P                  39   d   V # V P                  4       # ©N)	Úis_floating_pointÚdtyper"   Úfloat32Úfloat64ÚfloatÚint32Úint64Úint)rg   s   &r$   Ú_upcastrs   h   sc   € à×Ñ×ÒØ—G‘G¤§¡¬u¯}©}Ð=Ô=ˆqÐLÀ1Ç7Á7Ã9ÐLà—G‘G¤§¡¬U¯[©[Ð9Ô9ˆqÐF¸q¿u¹u»wÐFr&   c                ó0   € V ^8„  d   QhR\         R\         /# )r   Úboxesr    rh   )r#   s   "r$   r%   r%   q   s   € ÷ Eñ E”Fð Eœvñ Er&   c                ó~   € \        V 4      p V R,          V R,          ,
          V R,          V R,          ,
          ,          # )a”  
Computes the area of a set of bounding boxes, which are specified by its (x1, y1, x2, y2) coordinates.

Args:
    boxes (`torch.FloatTensor` of shape `(number_of_boxes, 4)`):
        Boxes for which the area will be computed. They are expected to be in (x1, y1, x2, y2) format with `0 <= x1
        < x2` and `0 <= y1 < y2`.

Returns:
    `torch.FloatTensor`: a tensor containing the area for each box.
)ºNNNr   )rw   é    )rw   é   )rw   é   )rs   )ru   s   &r$   Úbox_arear{   q   s2   € ô �E‹N€EØ�$�K˜% �+Õ%¨%°­+¸¸d½Õ*CÕDÐDr&   c                 ód  € \        V 4      p\        V4      p\        P                  ! V R,          VR,          4      p\        P                  ! V R,          VR,          4      pWT,
          P	                  ^ R7      pVR,          VR,          ,          pVR,          V,           V,
          pWx,          p	W˜3# )	rw   ©Úmin©rw   NºNr   N©rw   r€   ©rw   Nºr   NN©rw   rƒ   ©rw   rw   rx   ©rw   rw   rz   )rw   N)r{   r"   Úmaxr~   Úclamp)
Úboxes1Úboxes2Úarea1Úarea2Úleft_topÚright_bottomÚwidth_heightÚinterÚunionÚious
   &&        r$   Úbox_iour“   ‚   s”   € Ü�VÓ€EÜ�VÓ€Eä�yŠy˜ Õ,¨f°U­mÓ<€HÜ—9’9˜V KÕ0°&¸µ-Ó@€Là Õ+×2Ñ2°qÐ2Ó9€LØ˜Õ! L°Õ$9Õ9€Eà�'�N˜UÕ" UÕ*€Eà
�-€CØˆ:Ðr&   c                ó  € V R,          V R,          8¬  P                  4       '       g   \        RV  24      hVR,          VR,          8¬  P                  4       '       g   \        RV 24      h\        W4      w  r#\        P                  ! V R,          VR,          4      p\        P
                  ! V R,          VR,          4      pWT,
          P                  ^ R7      pVR,          VR	,          ,          pW'V,
          V,          ,
          # )
zÒ
Generalized IoU from https://giou.stanford.edu/. The boxes should be in [x0, y0, x1, y1] (corner) format.

Returns:
    `torch.FloatTensor`: a [N, M] pairwise matrix, where N = len(boxes1) and M = len(boxes2)
z<boxes1 must be in [x0, y0, x1, y1] (corner) format, but got z<boxes2 must be in [x0, y0, x1, y1] (corner) format, but got r}   r„   r�   r   r‚   r…   r†   )ÚallÚ
ValueErrorr“   r"   r~   r‡   rˆ   )r‰   rŠ   r’   r‘   Útop_leftÚbottom_rightr�   Úareas   &&      r$   Úgeneralized_box_iourš   “   sà   € ð �5�M˜V E�]Ñ*×/Ñ/×1Ò1ÜÐWÐX^ÐW_Ð`ÓaÐaØ�5�M˜V E�]Ñ*×/Ñ/×1Ò1ÜÐWÐX^ÐW_Ð`ÓaÐaÜ˜Ó(�J€Cä�yŠy˜ Õ,¨f°U­mÓ<€HÜ—9’9˜V KÕ0°&¸µ-Ó@€Là Õ+×2Ñ2°qÐ2Ó9€LØ˜Õ  <°Õ#8Õ8€Dà˜•, $Õ&Õ&Ð&r&   z5
    Output type of [`Owlv2ForObjectDetection`].
    )Úcustom_introc                   ój   a € ] tR t^«t o RtRtRtRtRtRt	Rt
RtRtRtRtV 3R lR ltV 3R ltRtV tR# )ÚOwlv2ObjectDetectionOutputal  
loss (`torch.FloatTensor` of shape `(1,)`, *optional*, returned when `labels` are provided)):
    Total loss as a linear combination of a negative log-likelihood (cross-entropy) for class prediction and a
    bounding box loss. The latter is defined as a linear combination of the L1 loss and the generalized
    scale-invariant IoU loss.
loss_dict (`Dict`, *optional*):
    A dictionary containing the individual losses. Useful for logging.
logits (`torch.FloatTensor` of shape `(batch_size, num_patches, num_queries)`):
    Classification logits (including no-object) for all queries.
objectness_logits (`torch.FloatTensor` of shape `(batch_size, num_patches, 1)`):
    The objectness logits of all image patches. OWL-ViT represents images as a set of image patches where the
    total number of patches is (image_size / patch_size)**2.
pred_boxes (`torch.FloatTensor` of shape `(batch_size, num_patches, 4)`):
    Normalized boxes coordinates for all queries, represented as (center_x, center_y, width, height). These
    values are normalized in [0, 1], relative to the size of each individual image in the batch (disregarding
    possible padding). You can use [`~Owlv2ImageProcessor.post_process_object_detection`] to retrieve the
    unnormalized bounding boxes.
text_embeds (`torch.FloatTensor` of shape `(batch_size, num_max_text_queries, output_dim`):
    The text embeddings obtained by applying the projection layer to the pooled output of [`Owlv2TextModel`].
image_embeds (`torch.FloatTensor` of shape `(batch_size, patch_size, patch_size, output_dim`):
    Pooled output of [`Owlv2VisionModel`]. OWLv2 represents images as a set of image patches and computes image
    embeddings for each patch.
class_embeds (`torch.FloatTensor` of shape `(batch_size, num_patches, hidden_size)`):
    Class embeddings of all image patches. OWLv2 represents images as a set of image patches where the total
    number of patches is (image_size / patch_size)**2.
text_model_output (tuple[`BaseModelOutputWithPooling`]):
    The output of the [`Owlv2TextModel`].
vision_model_output (`BaseModelOutputWithPooling`):
    The output of the [`Owlv2VisionModel`].
Nc                ó0   <€ V ^8„  d   QhRS[ S[,          /# r9   r:   )r#   r<   s   "€r$   r%   Ú'Owlv2ObjectDetectionOutput.__annotate__Ü   r>   r&   c                ó    a € \         ;QJ d%    . V 3R  lS P                  4        4       F  NK  	  5# ! V 3R  lS P                  4        4       4      # )c              3   óx   <"  € T F/  pVR9  d
   SV,          M\        SV4      P                  4       x € K1  	  R# 5irA   rD   rG   s   & €r$   rK   Ú6Owlv2ObjectDetectionOutput.to_tuple.<locals>.<genexpr>Ý   rM   rN   rO   rQ   s   fr$   rF   Ú#Owlv2ObjectDetectionOutput.to_tupleÜ   rS   r&   c                óŽ  <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R	&   S[;R
&   S[;R&   # )r   NrU   Ú	loss_dictr   Úobjectness_logitsÚ
pred_boxesrX   rY   Úclass_embedsrB   rC   )r"   r[   Údictr   )r#   r<   s   "€r$   r%   rŸ   «   sì   ø‡ ‚ ñL ×
Ñ
˜dÕ
"Ñ)ñM ñN �d�{Ñ!ñO ñP ×Ñ Õ$Ñ+ñQ ñR ×(Ñ(¨4Õ/Ñ6ñS ñT ×!Ñ! DÕ(Ñ/ñU ñV ×"Ñ" TÕ)Ñ0ñW ñX ×#Ñ# dÕ*Ñ1ñY ñZ ×#Ñ# dÕ*Ñ1ñ[ ñ\ 2Ñ8ñ] ñ^ 4Ñ:ò_ r&   r\   )r]   r^   r_   r`   ra   rU   r¥   r   r¦   r§   rX   rY   r¨   rB   rC   rF   rb   rc   rd   re   s   @r$   r�   r�   «   sS   ø‡ € ñð> &*€DØ!€IØ'+€FØ26ÐØ+/€JØ,0€KØ-1€LØ-1€LØ48ÐØ6:Ð÷
ð 
÷c ƒ r&   r�   zL
    Output type of [`Owlv2ForObjectDetection.image_guided_detection`].
    c                   ób   a € ] tR t^ãt o RtRtRtRtRtRt	Rt
RtRtV 3R lR ltV 3R ltRtV tR# )Ú%Owlv2ImageGuidedObjectDetectionOutputa©  
logits (`torch.FloatTensor` of shape `(batch_size, num_patches, num_queries)`):
    Classification logits (including no-object) for all queries.
image_embeds (`torch.FloatTensor` of shape `(batch_size, patch_size, patch_size, output_dim`):
    Pooled output of [`Owlv2VisionModel`]. OWLv2 represents images as a set of image patches and computes
    image embeddings for each patch.
query_image_embeds (`torch.FloatTensor` of shape `(batch_size, patch_size, patch_size, output_dim`):
    Pooled output of [`Owlv2VisionModel`]. OWLv2 represents images as a set of image patches and computes
    image embeddings for each patch.
target_pred_boxes (`torch.FloatTensor` of shape `(batch_size, num_patches, 4)`):
    Normalized boxes coordinates for all queries, represented as (center_x, center_y, width, height). These
    values are normalized in [0, 1], relative to the size of each individual target image in the batch
    (disregarding possible padding). You can use [`~Owlv2ImageProcessor.post_process_object_detection`] to
    retrieve the unnormalized bounding boxes.
query_pred_boxes (`torch.FloatTensor` of shape `(batch_size, num_patches, 4)`):
    Normalized boxes coordinates for all queries, represented as (center_x, center_y, width, height). These
    values are normalized in [0, 1], relative to the size of each individual query image in the batch
    (disregarding possible padding). You can use [`~Owlv2ImageProcessor.post_process_object_detection`] to
    retrieve the unnormalized bounding boxes.
class_embeds (`torch.FloatTensor` of shape `(batch_size, num_patches, hidden_size)`):
    Class embeddings of all image patches. OWLv2 represents images as a set of image patches where the total
    number of patches is (image_size / patch_size)**2.
text_model_output (tuple[`BaseModelOutputWithPooling`]):
    The output of the [`Owlv2TextModel`].
vision_model_output (`BaseModelOutputWithPooling`):
    The output of the [`Owlv2VisionModel`].
Nc                ó0   <€ V ^8„  d   QhRS[ S[,          /# r9   r:   )r#   r<   s   "€r$   r%   Ú2Owlv2ImageGuidedObjectDetectionOutput.__annotate__  r>   r&   c                ó    a € \         ;QJ d%    . V 3R  lS P                  4        4       F  NK  	  5# ! V 3R  lS P                  4        4       4      # )c              3   óx   <"  € T F/  pVR9  d
   SV,          M\        SV4      P                  4       x € K1  	  R# 5irA   rD   rG   s   & €r$   rK   ÚAOwlv2ImageGuidedObjectDetectionOutput.to_tuple.<locals>.<genexpr>  rM   rN   rO   rQ   s   fr$   rF   Ú.Owlv2ImageGuidedObjectDetectionOutput.to_tuple  rS   r&   c                óF  <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[;R&   S[;R	&   # )
r   Nr   rY   Úquery_image_embedsÚtarget_pred_boxesÚquery_pred_boxesr¨   rB   rC   rZ   )r#   r<   s   "€r$   r%   r­   ã   s¿   ø‡ ‚ ñH ×Ñ Õ$Ñ+ñI ñJ ×#Ñ# dÕ*Ñ1ñK ñL ×)Ñ)¨DÕ0Ñ7ñM ñN ×(Ñ(¨4Õ/Ñ6ñO ñP ×'Ñ'¨$Õ.Ñ5ñQ ñR ×#Ñ# dÕ*Ñ1ñS ñT 2Ñ8ñU ñV 4Ñ:òW r&   r\   )r]   r^   r_   r`   ra   r   rY   r³   r´   rµ   r¨   rB   rC   rF   rb   rc   rd   re   s   @r$   r«   r«   ã   sK   ø‡ € ñð8 (,€FØ-1€LØ37ÐØ26ÐØ15ÐØ-1€LØ48ÐØ6:Ð÷
ð 
÷[ ƒ r&   r«   c                   óf   a a€ ] tR tRt oV3R lV 3R lltV3R lR ltR	V3R lR lltRtVtV ;t	# )
ÚOwlv2VisionEmbeddingsi  c                ó    <€ V ^8„  d   QhRS[ /# ©r   Úconfig©r   )r#   r<   s   "€r$   r%   Ú"Owlv2VisionEmbeddings.__annotate__  s   ø€ ÷ jñ jÑ0ñ jr&   c                óì  <€ \         SV `  4        VP                  V n        Wn        VP                  V n        \        P                  ! \        P                  ! VP                  4      4      V n
        \        P                  ! VP                  V P
                  VP                  VP                  R R7      V n        VP                  VP                  ,          ^,          V n        V P                  ^,           V n        \        P"                  ! V P                   V P
                  4      V n        \        P&                  ! \        P(                  ! V P                   4      P+                  R4      R R7      V n        R# )F)Úin_channelsÚout_channelsÚkernel_sizeÚstrideÚbias©Ú
persistentN©rz   éÿÿÿÿ)ÚsuperÚ__init__Ú
patch_sizerº   Úhidden_sizeÚ	embed_dimr   Ú	Parameterr"   ÚrandnÚclass_embeddingÚConv2dÚnum_channelsÚpatch_embeddingÚ
image_sizeÚnum_patchesÚnum_positionsÚ	EmbeddingÚposition_embeddingÚBufferr,   ÚexpandÚposition_ids©rJ   rº   Ú	__class__s   &&€r$   rÈ   ÚOwlv2VisionEmbeddings.__init__  s  ø€ Ü‰ÑÔØ ×+Ñ+ˆŒØŒØ×+Ñ+ˆŒÜ!Ÿ|š|¬E¯KªK¸×8JÑ8JÓ,KÓLˆÔä!ŸyšyØ×+Ñ+ØŸ™Ø×)Ñ)Ø×$Ñ$Øô 
ˆÔð #×-Ñ-°×1BÑ1BÕBÀqÕHˆÔØ!×-Ñ-°Õ1ˆÔÜ"$§,¢,¨t×/AÑ/AÀ4Ç>Á>Ó"RˆÔÜŸIšI¤e§l¢l°4×3EÑ3EÓ&F×&MÑ&MÈgÓ&VÐchÔiˆÖr&   c                óZ   <€ V ^8„  d   QhRS[ P                  RS[RS[RS[ P                  /# )r   Ú
embeddingsÚheightÚwidthr    )r"   r   rr   )r#   r<   s   "€r$   r%   r¼   .  s;   ø€ ÷ 'Dñ 'D±5·<±<ð 'DÉð 'DÑUXð 'DÑ]b×]iÑ]iñ 'Dr&   c                ó  € VP                   ^,          ^,
          pV P                  P                  P                  ^ 4      pVP                   ^,          ^,
          p\        P
                  P                  4       '       g(   WF8X  d"   W#8X  d   V P                  V P                  4      # VR,          pVR,          pVP                   R,          p	W P                  ,          p
W0P                  ,          p\        VR,          4      pVP                  ^WÌV	4      pVP                  ^ ^^^4      p\        P                  P                  VW«3RRR7      pVP                  ^ ^^^4      P                  ^RV	4      p\        P                   ! Wx3^R7      # )	aÐ  
This method allows to interpolate the pre-trained position encodings, to be able to use the model on higher resolution
images. This method is also adapted to support torch.jit tracing.

Adapted from:
- https://github.com/facebookresearch/dino/blob/de9ee3df6cf39fac952ab558447af1fa1365362a/vision_transformer.py#L174-L194, and
- https://github.com/facebookresearch/dinov2/blob/e1277af2ba9496fbadf7aec6eba56e8d882d1e35/dinov2/models/vision_transformer.py#L179-L211
g      à?ÚbicubicF)ÚsizeÚmodeÚalign_corners©Údim)rw   ºNrz   N)rw   ºrz   NNrÆ   )ÚshaperÖ   ÚweightÚ	unsqueezer"   ÚjitÚ
is_tracingrÙ   rÉ   r   ÚreshapeÚpermuter   r*   ÚinterpolateÚviewÚcat)rJ   rÞ   rß   rà   rÓ   rÖ   rÔ   Úclass_pos_embedÚpatch_pos_embedrç   Ú
new_heightÚ	new_widthÚsqrt_num_positionss   &&&&         r$   Úinterpolate_pos_encodingÚ.Owlv2VisionEmbeddings.interpolate_pos_encoding.  s[  € ð !×&Ñ& qÕ)¨AÕ-ˆØ!×4Ñ4×;Ñ;×EÑEÀaÓHÐØ*×0Ñ0°Õ3°aÕ7ˆô �y‰y×#Ñ#×%Ò%¨+Ô*FÈ6Ì?Ø×*Ñ*¨4×+<Ñ+<Ó=Ð=à,¨UÕ3ˆØ,¨UÕ3ˆà×Ñ˜rÕ"ˆàŸ™Õ.ˆ
ØŸ_™_Õ,ˆ	ä& }°cÕ'9Ó:ÐØ)×1Ñ1°!Ð5GÐ]`ÓaˆØ)×1Ñ1°!°Q¸¸1Ó=ˆäŸ-™-×3Ñ3ØØÐ(ØØð	 4ó 
ˆð *×1Ñ1°!°Q¸¸1Ó=×BÑBÀ1ÀbÈ#ÓNˆä�yŠy˜/Ð;ÀÔCÐCr&   c                óT   <€ V ^8„  d   QhRS[ P                  RS[RS[ P                  /# )r   Úpixel_valuesrù   r    )r"   r[   Úboolr   )r#   r<   s   "€r$   r%   r¼   W  s0   ø€ ÷ ñ ¡E×$5Ñ$5ð ÑQUð Ñbg×bnÑbnñ r&   c                óz  € VP                   w  r4rVV P                  V4      pVP                  ^4      P                  ^^4      pV P                  P                  V^R4      p\        P                  ! W‡.^R7      p	V'       d   W�P                  W•V4      ,           p	V	# W�P                  V P                  4      ,           p	V	# )r   ræ   rÆ   )rê   rÑ   ÚflattenÚ	transposerÎ   rØ   r"   ró   rù   rÖ   rÙ   )
rJ   rü   rù   Ú
batch_sizeÚ_rß   rà   Úpatch_embedsr¨   rÞ   s
   &&&       r$   ÚforwardÚOwlv2VisionEmbeddings.forwardW  s®   € Ø'3×'9Ñ'9Ñ$ˆ
�vØ×+Ñ+¨LÓ9ˆØ#×+Ñ+¨AÓ.×8Ñ8¸¸AÓ>ˆà×+Ñ+×2Ñ2°:¸qÀ"ÓEˆÜ—Y’Y Ð;ÀÔCˆ
ß#Ø#×&CÑ&CÀJÐX]Ó&^Õ^ˆJð Ðð $×&=Ñ&=¸d×>OÑ>OÓ&PÕPˆJØÐr&   )	rÎ   rº   rË   rÓ   rÔ   rÑ   rÉ   rÖ   rÙ   ©F)
r]   r^   r_   r`   rÈ   rù   r  rc   rd   Ú__classcell__©rÛ   r<   s   @@r$   r·   r·     s-   ù‡ € ÷jó j÷*'Dð 'D÷R÷ ò r&   r·   c                   óT   a a€ ] tR tRt oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚOwlv2TextEmbeddingsif  c                ó    <€ V ^8„  d   QhRS[ /# r¹   ©r   )r#   r<   s   "€r$   r%   Ú Owlv2TextEmbeddings.__annotate__g  s   ø€ ÷ vñ v™ñ vr&   c                óx  <€ \         SV `  4        \        P                  ! VP                  VP
                  4      V n        \        P                  ! VP                  VP
                  4      V n        \        P                  ! \        P                  ! VP                  4      P                  R4      RR7      V n        R# )rz   FrÃ   NrÅ   )rÇ   rÈ   r   rÕ   Ú
vocab_sizerÊ   Útoken_embeddingÚmax_position_embeddingsrÖ   r×   r"   r,   rØ   rÙ   rÚ   s   &&€r$   rÈ   ÚOwlv2TextEmbeddings.__init__g  s}   ø€ Ü‰ÑÔÜ!Ÿ|š|¨F×,=Ñ,=¸v×?QÑ?QÓRˆÔÜ"$§,¢,¨v×/MÑ/MÈv×OaÑOaÓ"bˆÔô ŸIšI¤e§l¢l°6×3QÑ3QÓ&R×&YÑ&YÐZaÓ&bÐotÔuˆÖr&   c                ó¬   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  /# )r   Ú	input_idsNrÙ   Úinputs_embedsr    )r"   Ú
LongTensorr[   r   )r#   r<   s   "€r$   r%   r  o  sX   ø€ ÷ ñ á×#Ñ# dÕ*ðñ ×&Ñ&¨Õ-ðñ ×(Ñ(¨4Õ/ð	ñ
 
�‰ñr&   c                óì   € Ve   VP                   R,          MVP                   R,          pVf   V P                  RR V13,          pVf   V P                  V4      pV P                  V4      pW5,           pV# )Nrw   rÆ   éþÿÿÿ)rê   rÙ   r  rÖ   )rJ   r  rÙ   r  Ú
seq_lengthÚposition_embeddingsrÞ   s   &&&&   r$   r  ÚOwlv2TextEmbeddings.forwardo  sx   € ð -6Ò,A�Y—_‘_ RÖ(À}×GZÑGZÐ[]ÕG^ˆ
àÒØ×,Ñ,¨Q°°°¨^Õ<ˆLàÒ Ø ×0Ñ0°Ó;ˆMà"×5Ñ5°lÓCÐØ"Õ8ˆ
àÐr&   )rÖ   rÙ   r  ©NNN©	r]   r^   r_   r`   rÈ   r  rc   rd   r  r  s   @@r$   r
  r
  f  s    ù‡ € ÷vó v÷÷ ò r&   r
  c                ó  € V ^8„  d   QhR\         P                  R\        P                  R\        P                  R\        P                  R\        P                  R,          R\        R,          R\        R	\
        \        ,          /# )
r   ÚmoduleÚqueryÚkeyÚvalueÚattention_maskNÚscalingÚdropoutÚkwargs)r   ÚModuler"   r   ro   r   r   )r#   s   "r$   r%   r%   „  s{   € ÷ %ñ %Ü�I‰Ið%ä�<‰<ð%ô 
�‰ð%ô �<‰<ð	%ô
 —L‘L 4Õ'ð%ô �T�\ð%ô ð%ô Ô'Õ(ñ%r&   c                 ó¶  € Vf   VP                  R4      R,          p\        P                  ! WP                  ^^4      4      V,          pVe	   W„,           p\        P
                  P                  VRR7      p\        P
                  P                  W†V P                  R7      p\        P                  ! Wƒ4      p	V	P                  ^^4      P                  4       p	W˜3# )Nræ   )ÚpÚtrainingrÆ   ç      à¿)
rã   r"   Úmatmulr   r   r*   Úsoftmaxr%  r*  Ú
contiguous)
r  r   r!  r"  r#  r$  r%  r&  Úattn_weightsÚattn_outputs
   &&&&&&&,  r$   Úeager_attention_forwardr1  „  s±   € ð ‚Ø—*‘*˜R“. DÕ(ˆô —<’< §}¡}°Q¸Ó':Ó;¸gÕE€LàÒ!Ø#Õ4ˆä—=‘=×(Ñ(¨¸2Ð(Ó>€LÜ—=‘=×(Ñ(¨È6Ï?É?Ð(Ó[€Lä—,’,˜|Ó3€KØ×'Ñ'¨¨1Ó-×8Ñ8Ó:€KàÐ$Ð$r&   c                   óL   a a€ ] tR tRt oRtV 3R ltRV3R lR lltRtVtV ;t	# )ÚOwlv2Attentioni¡  z=Multi-headed attention from 'Attention Is All You Need' paperc                ó<  <€ \         SV `  4        Wn        VP                  V n        VP
                  V n        V P                  V P                  ,          V n        V P                  V P                  ,          V P                  8w  d'   \        R V P                   RV P                   R24      hV P                  R,          V n	        VP                  V n        RV n        \        P                  ! V P                  V P                  4      V n        \        P                  ! V P                  V P                  4      V n        \        P                  ! V P                  V P                  4      V n        \        P                  ! V P                  V P                  4      V n        R# )z;embed_dim must be divisible by num_heads (got `embed_dim`: z and `num_heads`: z).FNr+  )rÇ   rÈ   rº   rÊ   rË   Únum_attention_headsÚ	num_headsÚhead_dimr–   ÚscaleÚattention_dropoutr%  Ú	is_causalr   ÚLinearÚk_projÚv_projÚq_projÚout_projrÚ   s   &&€r$   rÈ   ÚOwlv2Attention.__init__¤  s  ø€ Ü‰ÑÔØŒØ×+Ñ+ˆŒØ×3Ñ3ˆŒØŸ™¨$¯.©.Õ8ˆŒØ�=‰=˜4Ÿ>™>Õ)¨T¯^©^Ô;ÜØMÈdÏnÉnÐM]ð ^Ø—N‘NÐ# 2ð'óð ð —]‘] DÕ(ˆŒ
Ø×/Ñ/ˆŒØˆŒä—i’i §¡°·±Ó?ˆŒÜ—i’i §¡°·±Ó?ˆŒÜ—i’i §¡°·±Ó?ˆŒÜŸ	š	 $§.¡.°$·.±.ÓAˆŽr&   c                óÄ   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          RS[S[ P                  S[ P                  R,          3,          /# )r   Úhidden_statesr#  Nr&  r    )r"   r   r   r   r;   )r#   r<   s   "€r$   r%   ÚOwlv2Attention.__annotate__¸  s]   ø€ ÷ )ñ )á—|‘|ð)ñ Ÿ™ tÕ+ð)ñ Ñ+Õ,ð	)ñ
 
‰u�|‰|™UŸ\™\¨DÕ0Ð0Õ	1ñ)r&   c                ó¢  € VP                   R R p. VORNV P                  N5pV P                  V4      P                  ! V!  P	                  ^^4      pV P                  V4      P                  ! V!  P	                  ^^4      pV P                  V4      P                  ! V!  P	                  ^^4      p\        P                  ! V P                  P                  \        4      p	T	! V VVVV3RV P                  RV P                  '       g   RMV P                  /VB w  r«V
P                  ! . VORN5!  P!                  4       p
V P#                  V
4      p
W«3# )Nr$  r%  ç        rÆ   )rê   r7  r>  rò   r   r<  r=  r   Úget_interfacerº   Ú_attn_implementationr1  r8  r*  r%  rï   r.  r?  )rJ   rB  r#  r&  Úinput_shapeÚhidden_shapeÚquery_statesÚ
key_statesÚvalue_statesÚattention_interfacer0  r/  s   &&&,        r$   r  ÚOwlv2Attention.forward¸  sN  € ð $×)Ñ)¨#¨2Ð.ˆØ8˜Ð8 bÐ8¨$¯-©-Ñ8ˆà—{‘{ =Ó1×6Ò6¸ÑE×OÑOÐPQÐSTÓUˆØ—[‘[ Ó/×4Ò4°lÑC×MÑMÈaÐQRÓSˆ
Ø—{‘{ =Ó1×6Ò6¸ÑE×OÑOÐPQÐSTÓUˆä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØñ	%
ð —J‘Jð	%
ð  $Ÿ}Ÿ}˜}‘C°$·,±,ð	%
ð ñ	%
Ñ!ˆð "×)Ò)Ð;¨;Ð;¸Ó;×FÑFÓHˆØ—m‘m KÓ0ˆàÐ(Ð(r&   )rº   r%  rË   r7  r:  r<  r6  r?  r>  r8  r=  rj   ©
r]   r^   r_   r`   ra   rÈ   r  rc   rd   r  r  s   @@r$   r3  r3  ¡  s   ù‡ € ÙGõB÷()÷ )ò )r&   r3  c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚOwlv2MLPiÛ  c                ó(  <€ \         SV `  4        Wn        \        VP                  ,          V n        \        P                  ! VP                  VP                  4      V n
        \        P                  ! VP                  VP                  4      V n        R # rj   )rÇ   rÈ   rº   r   Ú
hidden_actÚactivation_fnr   r;  rÊ   Úintermediate_sizeÚfc1Úfc2rÚ   s   &&€r$   rÈ   ÚOwlv2MLP.__init__Ü  sb   ø€ Ü‰ÑÔØŒÜ# F×$5Ñ$5Õ6ˆÔÜ—9’9˜V×/Ñ/°×1IÑ1IÓJˆŒÜ—9’9˜V×5Ñ5°v×7IÑ7IÓJˆŽr&   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   rB  r    r!   )r#   r<   s   "€r$   r%   ÚOwlv2MLP.__annotate__ã  s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r&   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# rj   )rV  rT  rW  )rJ   rB  s   &&r$   r  ÚOwlv2MLP.forwardã  s4   € ØŸ™ Ó/ˆØ×*Ñ*¨=Ó9ˆØŸ™ Ó/ˆØÐr&   )rT  rº   rV  rW  r  r  s   @@r$   rQ  rQ  Û  s   ù‡ € õK÷÷ ð r&   rQ  c                   óP   a a€ ] tR tRt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚOwlv2EncoderLayerië  c                ó0   <€ V ^8„  d   QhRS[ S[,          /# r¹   )r   r   )r#   r<   s   "€r$   r%   ÚOwlv2EncoderLayer.__annotate__ì  s   ø€ ÷ Sñ SÑ0±?ÕBñ Sr&   c                óJ  <€ \         SV `  4        VP                  V n        \	        V4      V n        \        P                  ! V P                  VP                  R 7      V n	        \        V4      V n        \        P                  ! V P                  VP                  R 7      V n        R# ©©ÚepsN)rÇ   rÈ   rÊ   rË   r3  Ú	self_attnr   Ú	LayerNormÚlayer_norm_epsÚlayer_norm1rQ  ÚmlpÚlayer_norm2rÚ   s   &&€r$   rÈ   ÚOwlv2EncoderLayer.__init__ì  sm   ø€ Ü‰ÑÔØ×+Ñ+ˆŒÜ'¨Ó/ˆŒÜŸ<š<¨¯©¸F×<QÑ<QÔRˆÔÜ˜FÓ#ˆŒÜŸ<š<¨¯©¸F×<QÑ<QÔRˆÖr&   c                ó~   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[S[,          RS[ P                  /# )r   rB  r#  r&  r    )r"   r   r   r   r[   )r#   r<   s   "€r$   r%   r`  ô  sG   ø€ ÷ ñ á—|‘|ðñ Ÿ™ðñ Ñ+Õ,ð	ñ
 
×	Ñ	ñr&   c                óÄ   € TpV P                  V4      pV P                  ! RR VRV/VB w  rWA,           pTpV P                  V4      pV P                  V4      pWA,           pV# )rB  r#  r\   )rh  re  rj  ri  )rJ   rB  r#  r&  Úresidualr  s   &&&,  r$   r  ÚOwlv2EncoderLayer.forwardô  s   € ð !ˆà×(Ñ(¨Ó7ˆØŸ>š>ñ 
Ø'ð
à)ð
ð ñ
Ñˆð
 !Õ0ˆà ˆØ×(Ñ(¨Ó7ˆØŸ™ Ó/ˆØ Õ0ˆàÐr&   )rË   rh  rj  ri  re  r  r  s   @@r$   r^  r^  ë  s    ù‡ € ÷Só S÷÷ ð r&   r^  c                   ó    a a€ ] tR tRt oRtRtRtRtRtRt	Rt
R.tR]R]/t]P                   ! 4       V3R lV 3R ll4       tV3R	 ltR
tVtV ;t# )ÚOwlv2PreTrainedModeli  Úowlv2Tr^  rB  Ú
attentionsc                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   r  ©r   r'  )r#   r<   s   "€r$   r%   Ú!Owlv2PreTrainedModel.__annotate__  s   ø€ ÷ $vñ $v¡B§I¡Iñ $vr&   c                ó  <€ \         SV `  V4       V P                  P                  p\	        V\
        4      '       dÊ   \        P                  ! VP                  P                  RVR,          R7       \        P                  ! VP                  P                  RVR,          R7       \        P                  ! VP                  \        P                  ! VP                  P                  R,          4      P!                  R4      4       R# \	        V\"        4      '       Ed+   \        P                  ! VP$                  RVP&                  R,          V,          R7       \        P                  ! VP(                  P                  VP                  P*                  V,          R7       \        P                  ! VP                  P                  VP                  P*                  V,          R7       \        P                  ! VP                  \        P                  ! VP                  P                  R,          4      P!                  R4      4       R# \	        V\,        4      '       Ed   VP&                  R,          ^VP                  P.                  ,          R,          ,          V,          pVP&                  R,          V,          p\        P                  ! VP0                  P                  VR7       \        P                  ! VP2                  P                  VR7       \        P                  ! VP4                  P                  VR7       \        P                  ! VP6                  P                  VR7       R# \	        V\8        4      '       dÓ   VP                  P:                  R,          ^VP                  P.                  ,          R,          ,          V,          p^VP                  P:                  ,          R,          V,          p\        P                  ! VP<                  P                  VR7       \        P                  ! VP>                  P                  VR7       R# \	        V\@        4      '       dÀ   \        P                  ! VPB                  P                  VPD                  R,          V,          R7       \        P                  ! VPF                  P                  VPH                  R,          V,          R7       \        PJ                  ! VPL                  V P                  PN                  4       R# \	        V\P        4      '       dH   \        P                  ! VPR                  VPU                  VPV                  VPX                  4      4       R# R# )	zInitialize the weightsrE  g{®Gáz”?)ÚmeanÚstd)ry  NrÆ   rÅ   r+  )-rÇ   Ú_init_weightsrº   Úinitializer_factorÚ
isinstancer
  ÚinitÚnormal_r  rë   rÖ   Úcopy_rÙ   r"   r,   rê   rØ   r·   rÎ   rË   rÑ   Úinitializer_ranger3  Únum_hidden_layersr>  r<  r=  r?  rQ  rÊ   rV  rW  Ú
Owlv2ModelÚtext_projectionÚtext_embed_dimÚvisual_projectionÚvision_embed_dimÚ	constant_Úlogit_scaleÚlogit_scale_init_valueÚOwlv2ForObjectDetectionÚbox_biasÚcompute_box_biasÚnum_patches_heightÚnum_patches_width)rJ   r  ÚfactorÚin_proj_stdÚout_proj_stdÚfc_stdrÛ   s   &&    €r$   rz  Ú"Owlv2PreTrainedModel._init_weights  s{  ø€ ô 	‰Ñ˜fÔ%Ø—‘×/Ñ/ˆÜ�fÔ1×2Ò2Ü�LŠL˜×/Ñ/×6Ñ6¸SÀfÈtÅmÕTÜ�LŠL˜×2Ñ2×9Ñ9ÀÈÐRVÍÕWÜ�JŠJ�v×*Ñ*¬E¯LªL¸×9LÑ9L×9RÑ9RÐSUÕ9VÓ,W×,^Ñ,^Ð_fÓ,gÖhÜ˜Ô 5×6Ó6Ü�LŠL˜×/Ñ/°c¸v×?OÑ?OÐQUÕ?UÐX^Õ?^Õ_Ü�LŠL˜×/Ñ/×6Ñ6¸F¿M¹M×<[Ñ<[Ð^dÕ<dÕeÜ�LŠL˜×2Ñ2×9Ñ9¸v¿}¹}×?^Ñ?^ÐagÕ?gÕhÜ�JŠJ�v×*Ñ*¬E¯LªL¸×9LÑ9L×9RÑ9RÐSUÕ9VÓ,W×,^Ñ,^Ð_fÓ,gÖhÜ˜¤×/Ó/Ø!×+Ñ+¨TÕ1°q¸6¿=¹=×;ZÑ;ZÕ7ZÐ_cÕ6cÕdÐgmÕmˆKØ"×,Ñ,¨dÕ2°fÕ<ˆLÜ�LŠL˜Ÿ™×-Ñ-°;Õ?Ü�LŠL˜Ÿ™×-Ñ-°;Õ?Ü�LŠL˜Ÿ™×-Ñ-°;Õ?Ü�LŠL˜Ÿ™×/Ñ/°\×BÜ˜¤×)Ò)Ø!Ÿ=™=×4Ñ4°dÕ:ÀÀFÇMÁM×DcÑDcÕ@cÐhlÕ?lÕmÐpvÕvˆKØ˜&Ÿ-™-×3Ñ3Õ3¸Õ<¸vÕEˆFÜ�LŠL˜Ÿ™×*Ñ*°Õ7Ü�LŠL˜Ÿ™×*Ñ*°×<Ü˜¤
×+Ò+Ü�LŠLØ×&Ñ&×-Ñ-Ø×)Ñ)¨4Õ/°&Õ8õô �LŠLØ×(Ñ(×/Ñ/Ø×+Ñ+¨TÕ1°FÕ:õô �NŠN˜6×-Ñ-¨t¯{©{×/QÑ/QÖRÜ˜Ô 7×8Ò8Ü�JŠJ�v—‘¨×(?Ñ(?À×@YÑ@YÐ[a×[sÑ[sÓ(tÖuñ 9r&   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r¹   ©r   )r#   r<   s   "€r$   r%   rv    ó   ø‡ ‚ ñ Ñò r&   r\   )ÚimageÚtext)r]   r^   r_   r`   Úbase_model_prefixÚinput_modalitiesÚsupports_gradient_checkpointingÚ_supports_sdpaÚ_supports_flash_attnÚ_supports_flex_attnÚ_supports_attention_backendÚ_no_split_modulesr^  r3  Ú_can_record_outputsr"   Úno_gradrz  rb   rc   rd   r  r  s   @@r$   rq  rq    su   ù‡ € ð  ÐØ(ÐØ&*Ð#Ø€NØÐØÐØ"&ÐØ,Ð-ÐàÐ*Ø�nðÐð
 ‡]‚]ƒ_÷$vò $vó ð$v÷% … r&   rq  c                   óX   a a€ ] tR tRt oRtV3R lV 3R lltRV3R lR lltRtVtV ;t	# )	ÚOwlv2EncoderiF  z›
Transformer encoder consisting of `config.num_hidden_layers` self attention layers. Each layer is a
[`Owlv2EncoderLayer`].

Args:
    config: Owlv2Config
c                ó    <€ V ^8„  d   QhRS[ /# r¹   r•  )r#   r<   s   "€r$   r%   ÚOwlv2Encoder.__annotate__O  s   ø€ ÷ ,ñ ,™{ñ ,r&   c                óÖ   <€ \         SV `  4        Wn        \        P                  ! \        VP                  4       Uu. uF  p\        V4      NK  	  up4      V n        R V n	        R# u upi )FN)
rÇ   rÈ   rº   r   Ú
ModuleListÚranger�  r^  ÚlayersÚgradient_checkpointing)rJ   rº   r  rÛ   s   && €r$   rÈ   ÚOwlv2Encoder.__init__O  sS   ø€ Ü‰ÑÔØŒÜ—m’mÌÈf×NfÑNfÔHgÓ$hÑHgÀ1Ô%6°vÖ%>ÑHgÑ$hÓiˆŒØ&+ˆÖ#ùò %is   ½A&c                ó^   <€ V ^8„  d   QhRS[ P                  R,          RS[S[,          RS[/# )r   r#  Nr&  r    )r"   r   r   r   r   )r#   r<   s   "€r$   r%   r¦  U  s:   ø€ ÷ 
ñ 
ñ Ÿ™ tÕ+ð
ñ Ñ+Õ,ð	
ñ
 
ñ
r&   c                óX   € TpV P                    F  pV! VV3/ VB pK  	  \        VR 7      # ))Úlast_hidden_state)rª  r   )rJ   r  r#  r&  rB  Úencoder_layers   &&&,  r$   r  ÚOwlv2Encoder.forwardU  sC   € ð &ˆØ!Ÿ[œ[ˆMÙ)ØØñð ñŠMñ )ô Ø+ô
ð 	
r&   )rº   r«  rª  rj   rO  r  s   @@r$   r¤  r¤  F  s#   ù‡ € ñ÷,ó ,÷
÷ 
ò 
r&   r¤  c                   ó€   a a€ ] tR tRt oV3R lV 3R llt]]! RR7      ]R	V3R lR ll4       4       4       tRt	Vt
V ;t# )
ÚOwlv2TextTransformerii  c                ó    <€ V ^8„  d   QhRS[ /# r¹   r  )r#   r<   s   "€r$   r%   Ú!Owlv2TextTransformer.__annotate__j  s   ø€ ÷ 	ñ 	™ñ 	r&   c                óê   <€ \         SV `  V4       VP                  p\        V4      V n        \        V4      V n        \        P                  ! W!P                  R 7      V n
        V P                  4        R# rb  )rÇ   rÈ   rÊ   r
  rÞ   r¤  Úencoderr   rf  rg  Úfinal_layer_normÚ	post_init)rJ   rº   rË   rÛ   s   && €r$   rÈ   ÚOwlv2TextTransformer.__init__j  sV   ø€ Ü‰Ñ˜Ô à×&Ñ&ˆ	Ü-¨fÓ5ˆŒÜ# FÓ+ˆŒÜ "§¢¨Y×<QÑ<QÔ RˆÔð 	�‰Ör&   F©Útie_last_hidden_statesc                ó¾   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[S[,          /# )r   r  Nr#  rÙ   r&  r    ©r"   r   r   r   r;   r   )r#   r<   s   "€r$   r%   rµ  x  sd   ø€ ÷ -
ñ -
á—<‘< $Õ&ð-
ñ Ÿ™ tÕ+ð-
ñ —l‘l TÕ)ð	-
ñ
 Ñ+Õ,ð-
ñ 
Ñ+Õ	+ñ-
r&   c           	     óV  € VP                  4       pVP                  RVR,          4      pV P                  WR7      p\        V P                  VVRR7      pVP                  RR4       V P                  ! RRVRVRR/VB pVP                  pV P                  V4      pV\        P                  ! VP                  ^ ,          VP                  R7      VP                  \        P                  4      P                  RR	7      P                  VP                  4      3,          p	\!        VV	R
7      # )aT  
input_ids (`torch.LongTensor` of shape `(batch_size * num_max_text_queries, sequence_length)`):
    Indices of input sequence tokens in the vocabulary. Indices can be obtained using [`AutoTokenizer`]. See
    [`PreTrainedTokenizer.encode`] and [`PreTrainedTokenizer.__call__`] for details. [What are input
    IDs?](../glossary#input-ids)
)r  rÙ   N)rº   r  r#  Úpast_key_valuesr:  r  r#  Tr(   ræ   ©r¯  Úpooler_outputrÆ   r\   )rã   rò   rÞ   r	   rº   Úpopr·  r¯  r¸  r"   r,   rê   r)   Útorr   Úargmaxr   )
rJ   r  r#  rÙ   r&  rH  rB  Úencoder_outputsr¯  Úpooled_outputs
   &&&&,     r$   r  ÚOwlv2TextTransformer.forwardu  s(  € ð   —n‘nÓ&ˆØ—N‘N 2 {°2¥Ó7ˆ	ØŸ™°)˜ÓWˆä+Ø—;‘;Ø'Ø)Ø ô	
ˆð 	�
‰
�; Ô%Ø+/¯<ª<ñ ,
Ø'ð,
à)ð,
ð ð,
ð ñ	,
ˆð ,×=Ñ=ÐØ ×1Ñ1Ð2CÓDÐð *Ü�LŠLÐ*×0Ñ0°Õ3Ð<M×<TÑ<TÔUØ�L‰LœŸ™Ó#×*Ñ*¨rÐ*Ó2×5Ñ5Ð6G×6NÑ6NÓOðQõ
ˆô
 *Ø/Ø'ô
ð 	
r&   )rÞ   r·  r¸  r  ©r]   r^   r_   r`   rÈ   r   r   r   r  rc   rd   r  r  s   @@r$   r³  r³  i  sB   ù‡ € ÷	ó 	ð  Ù¨EÔ2Ø÷-
ñ -
ó ó 3ó  ÷-
ð -
r&   r³  c                   ó†   a a€ ] tR tRt oRtV3R lV 3R lltV3R lR ltR t]RV3R lR ll4       t	V3R	 lt
R
tVtV ;t# )ÚOwlv2TextModeli©  c                ó    <€ V ^8„  d   QhRS[ /# r¹   r  )r#   r<   s   "€r$   r%   ÚOwlv2TextModel.__annotate__­  s   ø€ ÷ ñ ™ñ r&   c                óf   <€ \         SV `  V4       \        V4      V n        V P	                  4        R # rj   )rÇ   rÈ   r³  Ú
text_modelr¹  rÚ   s   &&€r$   rÈ   ÚOwlv2TextModel.__init__­  s&   ø€ Ü‰Ñ˜Ô Ü.¨vÓ6ˆŒà�‰Ör&   c                ó4   <€ V ^8„  d   QhRS[ P                  /# r9   ru  )r#   r<   s   "€r$   r%   rÍ  ³  s   ø€ ÷ :ñ :¡b§i¡iñ :r&   c                óB   € V P                   P                  P                  # rj   ©rÏ  rÞ   r  rQ   s   &r$   Úget_input_embeddingsÚ#Owlv2TextModel.get_input_embeddings³  s   € Ø�‰×)Ñ)×9Ñ9Ð9r&   c                ó:   € WP                   P                  n        R # rj   rÓ  )rJ   r"  s   &&r$   Úset_input_embeddingsÚ#Owlv2TextModel.set_input_embeddings¶  s   € Ø5:�‰×"Ñ"Ö2r&   c          	      ó–   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[S[,          RS[S[,          /# )r   r  Nr#  r&  r    r¾  )r#   r<   s   "€r$   r%   rÍ  º  sQ   ø€ ÷ 
ñ 
á—<‘< $Õ&ð
ñ Ÿ™ tÕ+ð
ñ Ñ+Õ,ð	
ñ
 
Ñ+Õ	+ñ
r&   c                ó.   € V P                   ! RRVRV/VB # )aW  
input_ids (`torch.LongTensor` of shape `(batch_size * num_max_text_queries, sequence_length)`):
    Indices of input sequence tokens in the vocabulary. Indices can be obtained using [`AutoTokenizer`]. See
    [`PreTrainedTokenizer.encode`] and [`PreTrainedTokenizer.__call__`] for details. [What are input
    IDs?](../glossary#input-ids)

Examples:
```python
>>> from transformers import AutoProcessor, Owlv2TextModel

>>> model = Owlv2TextModel.from_pretrained("google/owlv2-base-patch16")
>>> processor = AutoProcessor.from_pretrained("google/owlv2-base-patch16")
>>> inputs = processor(
...     text=[["a photo of a cat", "a photo of a dog"], ["photo of a astranaut"]], return_tensors="pt"
... )
>>> outputs = model(**inputs)
>>> last_hidden_state = outputs.last_hidden_state
>>> pooled_output = outputs.pooler_output  # pooled (EOS token) states
```r  r#  r\   ©rÏ  )rJ   r  r#  r&  s   &&&,r$   r  ÚOwlv2TextModel.forward¹  s/   € ð6 �Šñ 
Øð
à)ð
ð ñ
ð 	
r&   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r¹   r  )r#   r<   s   "€r$   r%   rÍ  ©  s   ø‡ ‚ ÙÑò r&   rÛ  )r˜  ©NN)r]   r^   r_   r`   rš  rÈ   rÔ  r×  r   r  rb   rc   rd   r  r  s   @@r$   rË  rË  ©  sD   ù‡ € à Ð÷ó ÷:ð :ò;ð ÷
ñ 
ó ð
÷# … r&   rË  c                   ó€   a a€ ] tR tRt oV3R lV 3R llt]]! RR7      ]R	V3R lR ll4       4       4       tRt	Vt
V ;t# )
ÚOwlv2VisionTransformeriÜ  c                ó    <€ V ^8„  d   QhRS[ /# r¹   r»   )r#   r<   s   "€r$   r%   Ú#Owlv2VisionTransformer.__annotate__Ý  s   ø€ ÷ 	ñ 	Ñ0ñ 	r&   c                óJ  <€ \         SV `  V4       \        V4      V n        \        P
                  ! VP                  VP                  R 7      V n        \        V4      V n
        \        P
                  ! VP                  VP                  R 7      V n        V P                  4        R# rb  )rÇ   rÈ   r·   rÞ   r   rf  rÊ   rg  Úpre_layernormr¤  r·  Úpost_layernormr¹  rÚ   s   &&€r$   rÈ   ÚOwlv2VisionTransformer.__init__Ý  sr   ø€ Ü‰Ñ˜Ô ä/°Ó7ˆŒÜŸ\š\¨&×*<Ñ*<À&×BWÑBWÔXˆÔÜ# FÓ+ˆŒÜ Ÿlšl¨6×+=Ñ+=À6×CXÑCXÔYˆÔð 	�‰Ör&   Fr»  c          	      ót   <€ V ^8„  d   QhRS[ P                  RS[R,          RS[S[,          RS[S[,          /# )r   rü   rù   Nr&  r    )r"   r[   rý   r   r   r;   r   )r#   r<   s   "€r$   r%   râ  ë  sI   ø€ ÷ 
ñ 
á×'Ñ'ð
ñ #'¨¥+ð
ñ Ñ+Õ,ð	
ñ
 
Ñ+Õ	+ñ
r&   c                óL  € V P                   P                  P                  P                  pVP	                  V4      pV P                  WR 7      pV P                  V4      pV P                  ! RRV/VB pVP                  pVR,          pV P                  V4      p\        VVR7      # ))rù   r  rÁ  r\   )rw   rx   rw   )
rÞ   rÑ   rë   rl   rÄ  rä  r·  r¯  rå  r   )	rJ   rü   rù   r&  Úexpected_input_dtyperB  rÆ  r¯  rÇ  s	   &&&,     r$   r  ÚOwlv2VisionTransformer.forwardè  s¨   € ð  $Ÿ™×>Ñ>×EÑE×KÑKÐØ#—‘Ð';Ó<ˆàŸ™¨˜ÓhˆØ×*Ñ*¨=Ó9ˆà+/¯<ª<ñ ,
Ø'ð,
àñ,
ˆð
 ,×=Ñ=ÐØ)¨'Õ2ˆØ×+Ñ+¨MÓ:ˆä)Ø/Ø'ô
ð 	
r&   )rÞ   r·  rå  rä  r  rÉ  r  s   @@r$   rà  rà  Ü  sB   ù‡ € ÷	ó 	ð  Ù¨EÔ2Ø÷
ñ 
ó ó 3ó  ÷
ð 
r&   rà  c                   ó„   a a€ ] tR tRt oRtRtV3R lV 3R lltV3R lR lt]RV3R lR ll4       t	V3R	 lt
R
tVtV ;t# )ÚOwlv2VisionModeli  rü   c                ó    <€ V ^8„  d   QhRS[ /# r¹   r»   )r#   r<   s   "€r$   r%   ÚOwlv2VisionModel.__annotate__  s   ø€ ÷ ñ Ñ0ñ r&   c                óf   <€ \         SV `  V4       \        V4      V n        V P	                  4        R # rj   )rÇ   rÈ   rà  Úvision_modelr¹  rÚ   s   &&€r$   rÈ   ÚOwlv2VisionModel.__init__  s'   ø€ Ü‰Ñ˜Ô Ü2°6Ó:ˆÔà�‰Ör&   c                ó4   <€ V ^8„  d   QhRS[ P                  /# r9   ru  )r#   r<   s   "€r$   r%   rî    s   ø€ ÷ <ñ <¡b§i¡iñ <r&   c                óB   € V P                   P                  P                  # rj   )rð  rÞ   rÑ   rQ   s   &r$   rÔ  Ú%Owlv2VisionModel.get_input_embeddings  s   € Ø× Ñ ×+Ñ+×;Ñ;Ð;r&   c                ód   <€ V ^8„  d   QhRS[ P                  R,          RS[RS[S[,          RS[/# )r   rü   Nrù   r&  r    )r"   r[   rý   r   r   r   )r#   r<   s   "€r$   r%   rî    sD   ø€ ÷ 
ñ 
á×'Ñ'¨$Õ.ð
ñ #'ð
ñ Ñ+Õ,ð	
ñ
 
$ñ
r&   c                ó.   € V P                   ! RRVRV/VB # )a£  
Examples:
```python
>>> from PIL import Image
>>> import httpx
>>> from io import BytesIO
>>> from transformers import AutoProcessor, Owlv2VisionModel

>>> model = Owlv2VisionModel.from_pretrained("google/owlv2-base-patch16")
>>> processor = AutoProcessor.from_pretrained("google/owlv2-base-patch16")
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> inputs = processor(images=image, return_tensors="pt")

>>> outputs = model(**inputs)
>>> last_hidden_state = outputs.last_hidden_state
>>> pooled_output = outputs.pooler_output  # pooled CLS states
```rü   rù   r\   ©rð  )rJ   rü   rù   r&  s   &&&,r$   r  ÚOwlv2VisionModel.forward  s1   € ð8 × Ò ñ 
Ø%ð
à%=ð
ð ñ
ð 	
r&   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r¹   r»   )r#   r<   s   "€r$   r%   rî    s   ø‡ ‚ ÙÑò r&   r÷  )r—  ©NF)r]   r^   r_   r`   Úmain_input_namerš  rÈ   rÔ  r   r  rb   rc   rd   r  r  s   @@r$   rì  rì    sD   ù‡ € à$€OØ!Ð÷ó ÷<ð <ð ÷
ñ 
ó ð
÷ … r&   rì  c                   óÈ   a a€ ] tR tRt oV3R lV 3R llt]]RV3R lR ll4       4       t]]RV3R lR ll4       4       t]]RV3R lR	 ll4       4       t	V3R
 lt
RtVtV ;t# )r‚  i9  c                ó    <€ V ^8„  d   QhRS[ /# r¹   r•  )r#   r<   s   "€r$   r%   ÚOwlv2Model.__annotate__>  ó   ø€ ÷ ñ ™{ñ r&   c                óV  <€ \         SV `  V4       VP                  pVP                  pVP                  V n        VP
                  V n        VP
                  V n        \        V4      V n	        \        V4      V n        \        P                  ! V P                  V P                  R R7      V n        \        P                  ! V P                  V P                  R R7      V n        \        P                   ! \"        P$                  ! VP&                  4      4      V n        V P+                  4        R# )F)rÂ   N)rÇ   rÈ   Útext_configÚvision_configÚprojection_dimrÊ   r„  r†  r³  rÏ  rà  rð  r   r;  r…  rƒ  rÌ   r"   Útensorr‰  rˆ  r¹  )rJ   rº   r  r  rÛ   s   &&  €r$   rÈ   ÚOwlv2Model.__init__>  sÙ   ø€ Ü‰Ñ˜Ô à×(Ñ(ˆØ×,Ñ,ˆà$×3Ñ3ˆÔØ)×5Ñ5ˆÔØ -× 9Ñ 9ˆÔä.¨{Ó;ˆŒÜ2°=ÓAˆÔä!#§¢¨4×+@Ñ+@À$×BUÑBUÐ\aÔ!bˆÔÜ!Ÿyšy¨×)<Ñ)<¸d×>QÑ>QÐX]Ô^ˆÔÜŸ<š<¬¯ª°V×5RÑ5RÓ(SÓTˆÔð 	�‰Ör&   c          	      óˆ   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          RS[S[,          /# )r   r  r#  Nr&  r    r¾  )r#   r<   s   "€r$   r%   rþ  T  sL   ø€ ÷ !ñ !á—<‘<ð!ñ Ÿ™ tÕ+ð!ñ Ñ+Õ,ð	!ñ
 
Ñ+Õ	+ñ!r&   c                óv   € V P                   ! RRVRV/VB pVP                  pV P                  V4      Vn        V# )a6  
input_ids (`torch.LongTensor` of shape `(batch_size * num_max_text_queries, sequence_length)`):
    Indices of input sequence tokens in the vocabulary. Indices can be obtained using [`AutoTokenizer`]. See
    [`PreTrainedTokenizer.encode`] and [`PreTrainedTokenizer.__call__`] for details. [What are input
    IDs?](../glossary#input-ids)

Examples:
```python
>>> import torch
>>> from transformers import AutoProcessor, Owlv2Model

>>> model = Owlv2Model.from_pretrained("google/owlv2-base-patch16-ensemble")
>>> processor = AutoProcessor.from_pretrained("google/owlv2-base-patch16-ensemble")
>>> inputs = processor(
...     text=[["a photo of a cat", "a photo of a dog"], ["photo of a astranaut"]], return_tensors="pt"
... )
>>> with torch.inference_mode():
...     text_features = model.get_text_features(**inputs)
```r  r#  r\   )rÏ  rÂ  rƒ  )rJ   r  r#  r&  Útext_outputsrÇ  s   &&&,  r$   Úget_text_featuresÚOwlv2Model.get_text_featuresR  sR   € ð6 48·?²?ñ 4
Øð4
à)ð4
ð ñ4
ˆð
 %×2Ñ2ˆØ%)×%9Ñ%9¸-Ó%HˆÔ"àÐr&   c          	      óf   <€ V ^8„  d   QhRS[ P                  RS[RS[S[,          RS[S[,          /# ©r   rü   rù   r&  r    )r"   r   rý   r   r   r;   r   )r#   r<   s   "€r$   r%   rþ  y  sC   ø€ ÷ ñ á—l‘lðñ #'ðñ Ñ+Õ,ð	ñ
 
Ñ+Õ	+ñr&   c                ór   € V P                   ! RRVRV/VB pV P                  VP                  4      Vn        V# )a.  
Examples:
```python
>>> import torch
>>> from transformers.image_utils import load_image
>>> from transformers import AutoProcessor, Owlv2Model

>>> model = Owlv2Model.from_pretrained("google/owlv2-base-patch16-ensemble")
>>> processor = AutoProcessor.from_pretrained("google/owlv2-base-patch16-ensemble")

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = load_image(url)

>>> inputs = processor(images=image, return_tensors="pt")
>>> with torch.inference_mode():
...     image_features = model.get_image_features(**inputs)
```rü   rù   r\   )rð  r…  rÂ  )rJ   rü   rù   r&  Úvision_outputss   &&&, r$   Úget_image_featuresÚOwlv2Model.get_image_featuresw  sO   € ð2 6:×5FÒ5Fñ 6
Ø%ð6
à%=ð6
ð ñ6
ˆð
 (,×'=Ñ'=¸n×>ZÑ>ZÓ'[ˆÔ$àÐr&   c                óì   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[RS[R,          RS[S[,          R	S[S[,          /# )
r   r  Nrü   r#  Úreturn_lossrù   Úreturn_base_image_embedsr&  r    )	r"   r  r[   r   rý   r   r   r;   r7   )r#   r<   s   "€r$   r%   rþ  ›  s—   ø€ ÷ K
ñ K
á×#Ñ# dÕ*ðK
ñ ×'Ñ'¨$Õ.ðK
ñ Ÿ™ tÕ+ð	K
ñ
 ˜D•[ðK
ñ #'ðK
ñ #'¨¥+ðK
ñ Ñ+Õ,ðK
ñ 
‘Õ	ñK
r&   c           
     ó¤  € V P                   ! R	RVRV/VB pV P                  ! R	RVRV/VB p	V	P                  p
V P                  V
4      p
VP                  pV P	                  V4      pV\
        P                  P                  V^R
RR7      ,          pV
\
        P                  P                  V
^R
RR7      ,          pV P                  P                  4       P                  VP                  4      p\
        P                  ! WËP                  4       4      V,          pVP                  4       pRpV'       d   \        V4      pTp
\        VVVV
VV	VR7      # )aå  
return_loss (`bool`, *optional*):
    Whether or not to return the contrastive loss.
return_base_image_embeds (`bool`, *optional*):
    Whether or not to return the base image embeddings.

Examples:
```python
>>> from PIL import Image
>>> import httpx
>>> from io import BytesIO
>>> from transformers import AutoProcessor, Owlv2Model

>>> model = Owlv2Model.from_pretrained("google/owlv2-base-patch16-ensemble")
>>> processor = AutoProcessor.from_pretrained("google/owlv2-base-patch16-ensemble")
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))
>>> inputs = processor(text=[["a photo of a cat", "a photo of a dog"]], images=image, return_tensors="pt")
>>> outputs = model(**inputs)
>>> logits_per_image = outputs.logits_per_image  # this is the image-text similarity score
>>> probs = logits_per_image.softmax(dim=1)  # we can take the softmax to get the label probabilities
```rü   rù   r  r#  T)Úordrç   ÚkeepdimN)rU   rV   rW   rX   rY   rB   rC   r\   rÆ   )rð  rÏ  rÂ  rƒ  r…  r"   ÚlinalgÚnormrˆ  ÚexprÄ  r)   r,  rg   r5   r7   )rJ   r  rü   r#  r  rù   r  r&  r  r  rX   rY   Útext_embeds_normrˆ  rW   rV   rU   s   &&&&&&&,         r$   r  ÚOwlv2Model.forward™  sf  € ðF 6:×5FÒ5Fñ 6
Ø%ð6
à%=ð6
ð ñ6
ˆð 48·?²?ñ 4
Øð4
à)ð4
ð ñ4
ˆð #×0Ñ0ˆØ×*Ñ*¨;Ó7ˆØ%×3Ñ3ˆØ×-Ñ-¨lÓ;ˆð $¤e§l¡l×&7Ñ&7¸È!ÐQSÐ]aÐ&7Ó&bÕbˆØ&¬¯©×):Ñ):¸;ÈAÐSUÐ_cÐ):Ó)dÕdÐð ×&Ñ&×*Ñ*Ó,×/Ñ/°×0CÑ0CÓDˆäŸ,š,Ð'7¿¹Ó9IÓJÈ[ÕXˆØ*×,Ñ,Ó.ÐàˆßÜ.¨Ó?ˆDà&ˆäØØ-Ø+Ø#Ø%Ø*Ø .ô
ð 	
r&   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r¹   r•  )r#   r<   s   "€r$   r%   rþ  9  r–  r&   )rˆ  r  r„  rÏ  rƒ  r†  rð  r…  rj   r  )NNNNFN)r]   r^   r_   r`   rÈ   r   r   r	  r  r  rb   rc   rd   r  r  s   @@r$   r‚  r‚  9  s   ù‡ € ÷
ó ð( Ø÷!ñ !ó ó ð!ðF Ø÷ñ ó ó ðð@ Ø÷K
ñ K
ó ó ðK
÷E … r&   r‚  c                   óT   a a€ ] tR tRt oRV3R lV 3R llltV3R lR ltRtVtV ;t# )ÚOwlv2BoxPredictionHeadiê  c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   rº   Úout_dim)r   rr   )r#   r<   s   "€r$   r%   Ú#Owlv2BoxPredictionHead.__annotate__ë  s   ø€ ÷ 0ñ 0™{ð 0±Sñ 0r&   c                ó&  <€ \         SV `  4        VP                  P                  p\        P
                  ! W34      V n        \        P
                  ! W34      V n        \        P                  ! 4       V n	        \        P
                  ! W24      V n
        R # rj   )rÇ   rÈ   r  rÊ   r   r;  Údense0Údense1ÚGELUÚgeluÚdense2)rJ   rº   r   rà   rÛ   s   &&& €r$   rÈ   ÚOwlv2BoxPredictionHead.__init__ë  s\   ø€ Ü‰ÑÔà×$Ñ$×0Ñ0ˆÜ—i’i Ó-ˆŒÜ—i’i Ó-ˆŒÜ—G’G“IˆŒ	Ü—i’i Ó/ˆŽr&   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©r   Úimage_featuresr    )r"   r   r[   )r#   r<   s   "€r$   r%   r!  ô  s%   ø€ ÷ ñ ¡e§l¡lð ±u×7HÑ7Hñ r&   c                ó°   € V P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pV# rj   )r#  r&  r$  r'  )rJ   r+  Úoutputs   && r$   r  ÚOwlv2BoxPredictionHead.forwardô  sM   € Ø—‘˜^Ó,ˆØ—‘˜6Ó"ˆØ—‘˜VÓ$ˆØ—‘˜6Ó"ˆØ—‘˜VÓ$ˆØˆr&   )r#  r$  r'  r&  )é   r  r  s   @@r$   r  r  ê  s   ù‡ € ÷0õ 0÷÷ ð r&   r  c                   óP   a a€ ] tR tRt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚOwlv2ClassPredictionHeadiþ  c                ó    <€ V ^8„  d   QhRS[ /# r¹   r•  )r#   r<   s   "€r$   r%   Ú%Owlv2ClassPredictionHead.__annotate__ÿ  s   ø€ ÷ 	ñ 	™{ñ 	r&   c                óž  <€ \         SV `  4        VP                  P                  pVP                  P                  V n        \        P                  ! V P
                  V4      V n        \        P                  ! V P
                  ^4      V n	        \        P                  ! V P
                  ^4      V n
        \        P                  ! 4       V n        R# )rz   N)rÇ   rÈ   r  rÊ   r  Ú	query_dimr   r;  r#  Úlogit_shiftrˆ  ÚELUÚelu)rJ   rº   r   rÛ   s   && €r$   rÈ   Ú!Owlv2ClassPredictionHead.__init__ÿ  sƒ   ø€ Ü‰ÑÔà×$Ñ$×0Ñ0ˆØ×-Ñ-×9Ñ9ˆŒä—i’i §¡°Ó8ˆŒÜŸ9š9 T§^¡^°QÓ7ˆÔÜŸ9š9 T§^¡^°QÓ7ˆÔÜ—6’6“8ˆŽr&   c          	      ó®   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[S[ P                  ,          /# )r   rY   Úquery_embedsNÚ
query_maskr    ©r"   r[   r   r;   )r#   r<   s   "€r$   r%   r3  
  sX   ø€ ÷ !1ñ !1á×'Ñ'ð!1ñ ×'Ñ'¨$Õ.ð!1ñ —L‘L 4Õ'ð	!1ñ
 
‰u× Ñ Õ	!ñ!1r&   c                óz  € V P                  V4      pVfV   VP                  pVP                  R,          w  rg\        P                  ! WgV P
                  34      P                  V4      pW„3# V\        P                  P                  VRRR7      R,           ,          pV\        P                  P                  VRRR7      R,           ,          p\        P                  ! RWB4      pV P                  V4      p	V P                  V4      p
V P                  V
4      ^,           p
W‰,           V
,          pVeŒ   VP                  ^8”  d   \        P                  ! VRR7      p\        P                  ! V^ 8H  \        P                   ! VP"                  4      P$                  V4      pVP                  \        P&                  4      pW„3# )	Nr€   T)rç   r  g�íµ ÷Æ°>z...pd,...qd->...pqræ   rÆ   r  )r#  r)   rê   r"   Úzerosr5  rÄ  r  r  Úeinsumr6  rˆ  r8  Úndimrì   ÚwhereÚfinforl   r~   rm   )rJ   rY   r;  r<  Úimage_class_embedsr)   r  rÓ   Úpred_logitsr6  rˆ  s   &&&&       r$   r  Ú Owlv2ClassPredictionHead.forward
  su  € ð "Ÿ[™[¨Ó6ÐØÒØ'×.Ñ.ˆFØ&8×&>Ñ&>¸rÕ&BÑ#ˆJÜŸ+š+ zÀÇÁÐ&OÓP×SÑSÐTZÓ[ˆKØÐ4Ð4ð 0´5·<±<×3DÑ3DÐEWÐ]_ÐimÐ3DÓ3nÐquÕ3uÕvÐØ#¤u§|¡|×'8Ñ'8¸È2ÐW[Ð'8Ó'\Ð_cÕ'cÕdˆô —l’lÐ#7Ð9KÓZˆð ×&Ñ& |Ó4ˆØ×&Ñ& |Ó4ˆØ—h‘h˜{Ó+¨aÕ/ˆØ"Õ0°KÕ?ˆàÒ!Ø�‰ Ô"Ü"Ÿ_š_¨Z¸RÔ@�
äŸ+š+ j°A¡o´u·{²{À;×CTÑCTÓ7U×7YÑ7YÐ[fÓgˆKØ%Ÿ.™.¬¯©Ó7ˆKàÐ0Ð0r&   )r#  r8  rˆ  r6  r5  r  r  s   @@r$   r1  r1  þ  s   ù‡ € ÷	ó 	÷!1÷ !1ð !1r&   r1  c                   óL  a a€ ] tR tRt oV3R lV 3R llt]V3R lR l4       tV3R lR ltV3R lR	 ltRV3R
 lR llt	RV3R lR llt
RV3R lR lltRV3R lR lltRV3R lR llt]]RV3R lR ll4       4       t]]RV3R lR ll4       4       tV3R ltRtVtV ;t# )rŠ  i.  c                ó    <€ V ^8„  d   QhRS[ /# r¹   r•  )r#   r<   s   "€r$   r%   Ú$Owlv2ForObjectDetection.__annotate__1  rÿ  r&   c                ó>  <€ \         SV `  V4       \        V4      V n        \	        V4      V n        \        V4      V n        \        V^R7      V n        \        P                  ! VP                  P                  VP                  P                  R7      V n        \        P                  ! 4       V n        Wn        V P"                  P                  P$                  V P"                  P                  P&                  ,          V n        V P"                  P                  P$                  V P"                  P                  P&                  ,          V n        \        P,                  ! V P/                  V P(                  V P*                  4      RR7      V n        V P3                  4        R# )rz   )r   rc  FrÃ   N)rÇ   rÈ   r‚  rr  r1  Ú
class_headr  Úbox_headÚobjectness_headr   rf  r  rÊ   rg  Ú
layer_normÚSigmoidÚsigmoidrº   rÒ   rÉ   r�  rŽ  r×   rŒ  r‹  r¹  rÚ   s   &&€r$   rÈ   Ú Owlv2ForObjectDetection.__init__1  s  ø€ Ü‰Ñ˜Ô ä Ó'ˆŒ
Ü2°6Ó:ˆŒÜ.¨vÓ6ˆŒÜ5°fÀaÔHˆÔäŸ,š, v×';Ñ';×'GÑ'GÈV×MaÑMa×MpÑMpÔqˆŒÜ—z’z“|ˆŒØŒØ"&§+¡+×";Ñ";×"FÑ"FÈ$Ï+É+×JcÑJc×JnÑJnÕ"nˆÔØ!%§¡×!:Ñ!:×!EÑ!EÈÏÉ×IbÑIb×ImÑImÕ!mˆÔÜŸ	š	Ø×!Ñ! $×"9Ñ"9¸4×;QÑ;QÓRÐ_dô
ˆŒð
 	�‰Ör&   c                ó@   <€ V ^8„  d   QhRS[ RS[ RS[P                  /# ©r   r�  rŽ  r    ©rr   r"   r   )r#   r<   s   "€r$   r%   rI  G  s*   ø€ ÷ ñ ¹cð ÑVYð Ñ^c×^jÑ^jñ r&   c                óœ  € \         P                  ! ^V^,           \         P                  R7      p\         P                  ! ^V ^,           \         P                  R7      p\         P                  ! W#RR7      w  rE\         P                  ! WE3RR7      pVR;;,          V,          uu&   VR;;,          V ,          uu&   VP                  R^4      pV# )rz   )rl   Úxy)Úindexingræ   rÆ   ©.rx   ©.rz   )r"   r,   rm   ÚmeshgridÚstackrò   )r�  rŽ  Úx_coordinatesÚy_coordinatesÚxxÚyyÚbox_coordinatess   &&     r$   Ú!normalize_grid_corner_coordinatesÚ9Owlv2ForObjectDetection.normalize_grid_corner_coordinatesE  sž   € ô Ÿš QÐ(9¸AÕ(=ÄUÇ]Á]ÔSˆÜŸš QÐ(:¸QÕ(>ÄeÇmÁmÔTˆÜ—’ ÀtÔL‰ˆô  Ÿ+š+ r h°BÔ7ˆØ˜×Ð#4Õ4ÓØ˜×Ð#5Õ5Óð *×.Ñ.¨r°1Ó5ˆàÐr&   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# r*  )r"   r[   )r#   r<   s   "€r$   r%   rI  W  s'   ø€ ÷ !ñ !±5×3DÑ3Dð !É×IZÑIZñ !r&   c                óZ   € VP                  4       pV P                  V4      pVR,          pV# )zóPredicts the probability that each image feature token is an object.

Args:
    image_features (`torch.FloatTensor` of shape `(batch_size, num_patches, hidden_dim)`)):
        Features extracted from the image.
Returns:
    Objectness scores.
rX  )ÚdetachrM  )rJ   r+  r¦   s   && r$   Úobjectness_predictorÚ,Owlv2ForObjectDetection.objectness_predictorW  s4   € ð (×.Ñ.Ó0ˆØ ×0Ñ0°Ó@ÐØ-¨fÕ5ÐØ Ð r&   c                ó@   <€ V ^8„  d   QhRS[ RS[ RS[P                  /# rS  rT  )r#   r<   s   "€r$   r%   rI  f  s)   ø€ ÷ ñ ±3ð É3ð ÑSX×S_ÑS_ñ r&   c                ó  € V P                  W4      p\        P                  ! VR R4      p\        P                  ! VR,           4      \        P                  ! V) R,           4      ,
          p\        P
                  ! VR4      pVR;;,          V,          uu&   VR;;,          V,          uu&   \        P                  ! VR,           4      \        P                  ! V) R,           4      ,
          p\        P                  ! WF.RR7      pV# )rE  g      ð?g-Cëâ6?ræ   rX  rY  rÆ   )ra  r"   ÚclipÚlogÚlog1pÚ	full_likeró   )rJ   r�  rŽ  r`  Úbox_coord_biasÚbox_sizeÚbox_size_biasr‹  s   &&&     r$   rŒ  Ú(Owlv2ForObjectDetection.compute_box_biasf  sÆ   € à×@Ñ@ÐASÓgˆÜŸ*š* _°c¸3Ó?ˆô Ÿš ?°TÕ#9Ó:¼U¿[º[È/ÐIYÐ\`ÕI`Ó=aÕaˆô —?’? >°3Ó7ˆØ�×Ð-Õ-ÓØ�×Ð.Õ.ÓÜŸ	š	 (¨T¥/Ó2´U·[²[À(ÀÈTÕAQÓ5RÕRˆô —9’9˜nÐ<À"ÔEˆØˆr&   c                ón   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[RS[ P                  /# )r   Úimage_featsÚfeature_maprù   r    ©r"   r[   rý   )r#   r<   s   "€r$   r%   rI  y  sE   ø€ ÷ ñ á×&Ñ&ðñ ×&Ñ&ðñ #'ð	ñ
 
×	Ñ	ñr&   c                óú   € V P                  V4      pV'       d"   VP                  w  rVruV P                  Wg4      pMV P                  pVP	                  VP
                  4      pWH,          pV P                  V4      pV# )a»  
Args:
    image_feats:
        Features extracted from the image, returned by the `image_text_embedder` method.
    feature_map:
        A spatial re-arrangement of image_features, also returned by the `image_text_embedder` method.
    interpolate_pos_encoding:
        Whether to interpolate the pre-trained position encodings.
Returns:
    pred_boxes:
        List of predicted boxes (cxcywh normalized to 0, 1) nested within a dictionary.
)rL  rê   rŒ  r‹  rÄ  r)   rP  )	rJ   rs  rt  rù   r§   r  r�  rŽ  r‹  s	   &&&&     r$   Úbox_predictorÚ%Owlv2ForObjectDetection.box_predictory  sr   € ð& —]‘] ;Ó/ˆ
÷ $Ø:E×:KÑ:KÑ7ˆAÐ#4Ø×,Ñ,Ð-?ÓS‰Hà—}‘}ˆHà—;‘;˜{×1Ñ1Ó2ˆØÕˆ
Ø—\‘\ *Ó-ˆ
ØÐr&   c          	      ó®   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[S[ P                  ,          /# )r   rs  r;  Nr<  r    r=  )r#   r<   s   "€r$   r%   rI  ›  sX   ø€ ÷ 1ñ 1á×&Ñ&ð1ñ ×'Ñ'¨$Õ.ð1ñ —L‘L 4Õ'ð	1ñ
 
‰u× Ñ Õ	!ñ1r&   c                ó0   € V P                  WV4      w  rEWE3# )zø
Args:
    image_feats:
        Features extracted from the `image_text_embedder`.
    query_embeds:
        Text query embeddings.
    query_mask:
        Must be provided with query_embeddings. A mask indicating which query embeddings are valid.
)rK  )rJ   rs  r;  r<  rE  rD  s   &&&&  r$   Úclass_predictorÚ'Owlv2ForObjectDetection.class_predictor›  s!   € ð -1¯O©O¸KÐWaÓ,bÑ)ˆàÐ0Ð0r&   c                ó®   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  RS[RS[S[,          RS[S[ P                  ,          /# )r   r  rü   r#  rù   r&  r    )r"   r   r[   rý   r   r   r;   )r#   r<   s   "€r$   r%   rI  ¯  sf   ø€ ÷ -4ñ -4á—<‘<ð-4ñ ×'Ñ'ð-4ñ Ÿ™ð	-4ñ
 #'ð-4ñ Ñ+Õ,ð-4ñ 
‰u× Ñ Õ	!ñ-4r&   c                óÔ  € V P                   ! RR VRVRVRV/VB pV'       d^   VP                  w   rxp	W€P                  P                  P                  ,          p
W�P                  P                  P                  ,          pMV P
                  p
V P                  pVP                  ^ ,          pV P                   P                  P                  V4      p\        P                  ! VR,          VRRR13,          P                  4      pVR	,          V,          pV P                  V4      pVP                  ^ ,          V
VVP                  R,          3pVP                  V4      pVR
,          pVWÖ3# )rü   r  r#  rù   rw   Nr\   ©rw   rè   rw   rÆ   ©rw   ré   rw   éüÿÿÿ)rr  rê   rº   r  rÉ   r�  rŽ  rC   rð  rå  r"   Úbroadcast_torN  rï   )rJ   r  rü   r#  rù   r&  Úoutputsr  rß   rà   r�  rŽ  r¯  rY   Úclass_token_outÚnew_sizerX   s   &&&&&,           r$   Úimage_text_embedderÚ+Owlv2ForObjectDetection.image_text_embedder¯  sp  € ð —*’*ñ 
Ø%ð
àð
ð *ð
ð &>ð	
ð
 ñ
ˆ÷ $Ø".×"4Ñ"4ÑˆAˆq˜%Ø!'¯;©;×+DÑ+D×+OÑ+OÕ!OÐØ %¯©×)BÑ)B×)MÑ)MÕ MÑà!%×!8Ñ!8ÐØ $× 6Ñ 6Ðð $×7Ñ7¸Õ:ÐØ—z‘z×.Ñ.×=Ñ=Ð>OÓPˆô  ×,Ò,¨\¸(Õ-CÀ\ÐRSÐUXÐVXÐUXÐRXÕEY×E_ÑE_Ó`ˆð $ HÕ-°Õ?ˆØ—‘ |Ó4ˆð ×Ñ˜qÕ!ØØØ×Ñ˜rÕ"ð	
ˆð $×+Ñ+¨HÓ5ˆØ˜b•kˆà˜\Ð3Ð3r&   c          	      óz   <€ V ^8„  d   QhRS[ P                  RS[RS[S[,          RS[S[ P                  ,          /# r  )r"   r[   rý   r   r   r;   )r#   r<   s   "€r$   r%   rI  ß  sJ   ø€ ÷ '.ñ '.á×'Ñ'ð'.ñ #'ð'.ñ Ñ+Õ,ð	'.ñ
 
‰u× Ñ Õ	!ñ'.r&   c                ó¸  € V P                   P                  ! RR VRV/VB pV'       d^   VP                  w   rVpW`P                  P                  P
                  ,          pWpP                  P                  P
                  ,          p	MV P                  pV P                  p	V^ ,          p
V P                   P                  P                  V
4      p\        P                  ! VR,          VRRR13,          P                  4      pVR,          V,          pV P                  V4      pVP                  ^ ,          VV	VP                  R,          3pVP                  V4      pW´3# )rü   rù   rw   Nr\   r  rÆ   r€  )rr  rð  rê   rº   r  rÉ   r�  rŽ  rå  r"   r‚  rN  rï   )rJ   rü   rù   r&  r  r  rß   rà   r�  rŽ  r¯  rY   r„  r…  s   &&&,          r$   Úimage_embedderÚ&Owlv2ForObjectDetection.image_embedderß  sO  € ð 6:·Z±Z×5LÒ5Lñ 6
Ø%ð6
Ø@Xð6
Ø\bñ6
ˆ÷ $Ø".×"4Ñ"4ÑˆAˆq˜%Ø!'¯;©;×+DÑ+D×+OÑ+OÕ!OÐØ %¯©×)BÑ)B×)MÑ)MÕ MÑà!%×!8Ñ!8ÐØ $× 6Ñ 6Ðð +¨1Õ-ÐØ—z‘z×.Ñ.×=Ñ=Ð>OÓPˆô  ×,Ò,¨\¸(Õ-CÀ\ÐRSÐUXÐVXÐUXÐRXÕEY×E_ÑE_Ó`ˆð $ HÕ-°Õ?ˆØ—‘ |Ó4ˆð ×Ñ˜qÕ!ØØØ×Ñ˜rÕ"ð	
ˆð $×+Ñ+¨HÓ5ˆàÐ-Ð-r&   c                ón   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[RS[ P                  /# )r   Úquery_image_featuresÚquery_feature_maprù   r    ru  )r#   r<   s   "€r$   r%   rI  	  sE   ø€ ÷ *5ñ *5á#×/Ñ/ð*5ñ !×,Ñ,ð*5ñ #'ð	*5ñ
 
×	Ñ	ñ*5r&   c                óè  € V P                  V4      w  rEV P                  WV4      p\        V4      p. p. p	VP                  p
\	        VP
                  ^ ,          4       EFT  p\        P                  ! . RO.V
R7      pW{,          p\        WÍ4      w  rä\        P                  ! V^ ,          R8H  4      '       d   \        WÍ4      p\        P                  ! V4      R,          pV^ ,          V8¬  P                  4       pVP                  4       '       g   K´  W[,          VP                  ^4      ,          p\        P                  ! W[,          ^ R7      p\        P                   ! RVV4      pV\        P"                  ! V4      ,          pVP%                  W[,          V,          4       V	P%                  V4       EKW  	  V'       d.   \        P&                  ! V4      p\        P&                  ! V	4      pMRRppVVV3# )rx   r(   rE  gš™™™™™é?)Úaxiszd,id->iN)rx   rx   rz   rz   )r{  rw  r   r)   r©  rê   r"   r  r“   r•   rš   r‡   ÚnonzeroÚnumelÚsqueezerx  r@  ÚargminÚappendr[  )rJ   r�  rŽ  rù   r  r¨   r§   Úpred_boxes_as_cornersÚbest_class_embedsÚbest_box_indicesÚpred_boxes_deviceÚiÚeach_query_boxÚeach_query_pred_boxesÚiousÚiou_thresholdÚselected_indsÚselected_embeddingsÚmean_embedsÚmean_simÚbest_box_indr;  Úbox_indicess   &&&&                   r$   Úembed_image_queryÚ)Owlv2ForObjectDetection.embed_image_query	  sœ  € ð ×.Ñ.Ð/CÓD‰ˆØ×'Ñ'Ð(<ÐQiÓjˆ
Ü 8¸Ó DÐð ÐØÐØ1×8Ñ8ÐäÐ+×1Ñ1°!Õ4×5ˆAÜ"Ÿ\š\ª<¨.ÐARÔSˆNØ$9Õ$<Ð!Ü˜nÓD‰GˆDô �yŠy˜˜a� C™×(Ò(Ü*¨>ÓQ�ô "ŸIšI d›O¨cÕ1ˆMà! !�W¨Ñ5×>Ñ>Ó@ˆMØ×"Ñ"×$Ô$Ø&2¥o°m×6KÑ6KÈAÓ6NÕ&OÐ#Ü#Ÿjšj¨­¸qÔA�Ü Ÿ<š<¨	°;Ð@SÓT�Ø,¬U¯\ª\¸(Ó-CÕD�Ø!×(Ñ(¨­¸Õ)FÔGØ ×'Ñ'¨×5ñ' 6÷* Ü Ÿ;š;Ð'8Ó9ˆLÜŸ+š+Ð&6Ó7‰Kà(,¨d˜+ˆLà˜[¨*Ð4Ð4r&   c          
      ó~   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[RS[S[,          RS[/# )r   rü   Úquery_pixel_valuesNrù   r&  r    )r"   r[   rý   r   r   r«   )r#   r<   s   "€r$   r%   rI  7  s[   ø€ ÷ `
ñ `
á×'Ñ'ð`
ñ "×-Ñ-°Õ4ð`
ñ #'ð	`
ñ
 Ñ+Õ,ð`
ñ 
/ñ`
r&   c                óº  € V P                  W#R7      ^ ,          pV P                   ! RRVRV/VB w  rgVP                  w  r‰r«\        P                  ! WhWš,          V34      pVP                  w  r‰r«\        P                  ! WXWš,          V34      pV P	                  WÕV4      w  rïpV P                  WÎR7      w  ppV P                  WÆV4      p\        VVVVVVRVR7      # )a,  
query_pixel_values (`torch.FloatTensor` of shape `(batch_size, num_channels, height, width)`):
    Pixel values of query image(s) to be detected. Pass in one query image per target image.

Examples:
```python
>>> import httpx
>>> from io import BytesIO
>>> from PIL import Image
>>> import torch
>>> from transformers import AutoProcessor, Owlv2ForObjectDetection

>>> processor = AutoProcessor.from_pretrained("google/owlv2-base-patch16-ensemble")
>>> model = Owlv2ForObjectDetection.from_pretrained("google/owlv2-base-patch16-ensemble")

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))
>>> query_url = "http://images.cocodataset.org/val2017/000000001675.jpg"
>>> with httpx.stream("GET", query_url) as response:
...     query_image = Image.open(BytesIO(response.read()))
>>> inputs = processor(images=image, query_images=query_image, return_tensors="pt")

>>> # forward pass
>>> with torch.no_grad():
...     outputs = model.image_guided_detection(**inputs)

>>> target_sizes = torch.Tensor([image.size[::-1]])

>>> # Convert outputs (bounding boxes and class logits) to Pascal VOC format (xmin, ymin, xmax, ymax)
>>> results = processor.post_process_image_guided_detection(
...     outputs=outputs, threshold=0.9, nms_threshold=0.3, target_sizes=target_sizes
... )
>>> i = 0  # Retrieve predictions for the first image
>>> boxes, scores = results[i]["boxes"], results[i]["scores"]
>>> for box, score in zip(boxes, scores):
...     box = [round(i, 2) for i in box.tolist()]
...     print(f"Detected similar object with confidence {round(score.item(), 3)} at location {box}")
Detected similar object with confidence 0.938 at location [327.31, 54.94, 547.39, 268.06]
Detected similar object with confidence 0.959 at location [5.78, 360.65, 619.12, 366.39]
Detected similar object with confidence 0.902 at location [2.85, 360.01, 627.63, 380.8]
Detected similar object with confidence 0.985 at location [176.98, -29.45, 672.69, 182.83]
Detected similar object with confidence 1.0 at location [6.53, 14.35, 624.87, 470.82]
Detected similar object with confidence 0.998 at location [579.98, 29.14, 615.49, 489.05]
Detected similar object with confidence 0.985 at location [206.15, 10.53, 247.74, 466.01]
Detected similar object with confidence 0.947 at location [18.62, 429.72, 646.5, 457.72]
Detected similar object with confidence 0.996 at location [523.88, 20.69, 586.84, 483.18]
Detected similar object with confidence 0.998 at location [3.39, 360.59, 617.29, 499.21]
Detected similar object with confidence 0.969 at location [4.47, 449.05, 614.5, 474.76]
Detected similar object with confidence 0.966 at location [31.44, 463.65, 654.66, 471.07]
Detected similar object with confidence 0.924 at location [30.93, 468.07, 635.35, 475.39]
```)rü   rù   rü   rù   )rs  r;  N)rY   r³   r´   rµ   r   r¨   rB   rC   r\   )rŠ  rê   r"   rï   r¥  r{  rw  r«   )rJ   rü   r¨  rù   r&  rŽ  rt  r  r  r�  rŽ  Ú
hidden_dimrs  Úquery_image_featsr;  r˜  rµ   rE  r¨   r´   s   &&&&,               r$   Úimage_guided_detectionÚ.Owlv2ForObjectDetection.image_guided_detection5  s'  € ð| !×/Ñ/Ø+ð 0ó 
à
õÐð '+×&9Ò&9ñ '
Ø%ð'
à%=ð'
ð ñ'
Ñ#ˆð IT×HYÑHYÑEˆ
Ð(9Ü—m’m KÐ>PÕ>dÐfpÐ1qÓrˆàHY×H_ÑH_ÑEˆ
Ð(9Ü!ŸMšMØÐ,>Õ,RÐT^Ð_ó
Ðð <@×;QÑ;QØÐ2Jó<
Ñ8ˆÐ(8ð
 '+×&:Ñ&:À{Ð&:Ó&nÑ#ˆ�lð !×.Ñ.¨{ÐIaÓbÐä4Ø$Ø0Ø/Ø-ØØ%Ø"Ø .ô	
ð 		
r&   c                ó˜   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  R,          RS[RS[S[,          RS[/# )r   r  rü   r#  Nrù   r&  r    )r"   r   r[   rý   r   r   r�   )r#   r<   s   "€r$   r%   rI  ›  sh   ø€ ÷ Z
ñ Z
á—<‘<ðZ
ñ ×'Ñ'ðZ
ñ Ÿ™ tÕ+ð	Z
ñ
 #'ðZ
ñ Ñ+Õ,ðZ
ñ 
$ñZ
r&   c                ó:  € V P                   ! RRVRVRVRV/VB w  rgpVP                  p	VP                  p
VP                  w  r¼rÞ\        P
                  ! W{WÍ,          V34      pVP                  ^ ,          V,          pVP                  VVVP                  R,          4      pVP                  VVVP                  R,          4      pVR,          ^ 8„  pV P                  WöV4      w  ppV P                  V4      pV P                  W÷V4      p\        VVVVVVV	V
R7      # )	a  
input_ids (`torch.LongTensor` of shape `(batch_size * num_max_text_queries, sequence_length)`, *optional*):
    Indices of input sequence tokens in the vocabulary. Indices can be obtained using [`AutoTokenizer`]. See
    [`PreTrainedTokenizer.encode`] and [`PreTrainedTokenizer.__call__`] for details. [What are input
    IDs?](../glossary#input-ids).

Examples:
```python
>>> import httpx
>>> from io import BytesIO
>>> from PIL import Image
>>> import torch

>>> from transformers import Owlv2Processor, Owlv2ForObjectDetection

>>> processor = Owlv2Processor.from_pretrained("google/owlv2-base-patch16-ensemble")
>>> model = Owlv2ForObjectDetection.from_pretrained("google/owlv2-base-patch16-ensemble")

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))
>>> text_labels = [["a photo of a cat", "a photo of a dog"]]
>>> inputs = processor(text=text_labels, images=image, return_tensors="pt")
>>> outputs = model(**inputs)

>>> # Target image sizes (height, width) to rescale box predictions [batch_size, 2]
>>> target_sizes = torch.tensor([(image.height, image.width)])
>>> # Convert outputs (bounding boxes and class logits) to Pascal VOC format (xmin, ymin, xmax, ymax)
>>> results = processor.post_process_grounded_object_detection(
...     outputs=outputs, target_sizes=target_sizes, threshold=0.1, text_labels=text_labels
... )
>>> # Retrieve predictions for the first image for the corresponding text queries
>>> result = results[0]
>>> boxes, scores, text_labels = result["boxes"], result["scores"], result["text_labels"]
>>> for box, score, text_label in zip(boxes, scores, text_labels):
...     box = [round(i, 2) for i in box.tolist()]
...     print(f"Detected {text_label} with confidence {round(score.item(), 3)} at location {box}")
Detected a photo of a cat with confidence 0.614 at location [341.67, 23.39, 642.32, 371.35]
Detected a photo of a cat with confidence 0.665 at location [6.75, 51.96, 326.62, 473.13]
```r  rü   r#  rù   )rY   rX   r§   r   r¦   r¨   rB   rC   r\   rÆ   rX  )
r†  rB   rC   rê   r"   rï   r{  rf  rw  r�   )rJ   r  rü   r#  rù   r&  r;  rt  rƒ  r  r  r  r�  rŽ  rª  rs  Úmax_text_queriesr<  rE  r¨   r¦   r§   s   &&&&&,                r$   r  ÚOwlv2ForObjectDetection.forward™  sY  € ðf .2×-EÒ-Eñ .
Øð.
à%ð.
ð *ð.
ð &>ð	.
ð
 ñ.
Ñ*ˆ 7ð ×0Ñ0ˆØ ×4Ñ4ˆàHS×HYÑHYÑEˆ
Ð(9Ü—m’m KÐ>PÕ>dÐfpÐ1qÓrˆð %Ÿ?™?¨1Õ-°Õ;ÐØ#×+Ñ+¨JÐ8HÈ,×J\ÑJ\Ð]_ÕJ`Óaˆð ×%Ñ% jÐ2BÀIÇOÁOÐTVÕDWÓXˆ	Ø˜vÕ&¨Ñ*ˆ
ð '+×&:Ñ&:¸;ÐV`Ó&aÑ#ˆ�lð !×5Ñ5°kÓBÐð ×'Ñ'¨ÐBZÓ[ˆ
ä)Ø$Ø$Ø!ØØ/Ø%Ø*Ø .ô	
ð 		
r&   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r¹   r•  )r#   r<   s   "€r$   r%   rI  .  s   ø‡ ‚ ÙÑò r&   )
r‹  rL  rK  rº   rN  r�  rŽ  rM  rr  rP  r  rÞ  rú  )r]   r^   r_   r`   rÈ   Ústaticmethodra  rf  rŒ  rw  r{  r†  rŠ  r¥  r   r   r¬  r  rb   rc   rd   r  r  s   @@r$   rŠ  rŠ  .  s¾   ù‡ € ÷ó ð( ÷ó ð÷ !ð !÷ð ÷&ò ÷D1ò 1÷(-4ò -4÷`'.ò '.÷T*5ò *5ðX Ø÷`
ñ `
ó ó ð`
ðD Ø÷Z
ñ Z
ó ó ðZ
÷[ … r&   rŠ  )NrE  )r‚  rq  rË  rì  rŠ  )Kra   Úcollections.abcr   Údataclassesr   Útypingr   r"   r   r   Ú r   r}  Úactivationsr   Úmasking_utilsr	   Úmodeling_layersr
   Úmodeling_outputsr   r   Úmodeling_utilsr   r   Úprocessing_utilsr   Úutilsr   r   r   r   r   r   Úutils.genericr   r   Úutils.output_capturingr   Úconfiguration_owlv2r   r   r   Útransformers.image_transformsr   Ú
get_loggerr]   Úloggerr.   r5   r7   rs   r{   r“   rš   r�   r«   r'  r·   r
  r1  r3  rQ  r^  rq  r¤  r³  rË  rà  rì  r‚  r  r1  rŠ  Ú__all__r\   r&   r$   Ú<module>rÆ     s$  ðñ å $Ý !Ý ã ß å &Ý !Ý /Ý 9ß Kß FÝ &÷÷ ÷ JÝ 5ß PÑ Pñ ×ÒÝFð 
×	Ò	˜HÓ	%€õ`õ
-ð Ø
ô!
�+ó !
ó ó ð!
õJGõEò"ò"'ñ0 ðôð
 ô/
 ó /
ó óð/
ñd ðôð
 ô*
¨Kó *
ó óð*
ô\J˜BŸI™Iô Jô\˜"Ÿ)™)ô ÷<%ô:6)�R—Y‘Yô 6)ôtˆr�y‰yô ô Ð2ô ðB ô4v˜?ó 4vó ð4vôp
�2—9‘9ô 
ôF<
Ð/ô <
ô@/
Ð)ô /
ôf(
Ð1ô (
ôX.
Ð+ô .
ðb ôk
Ð%ó k
ó ðk
ô^˜RŸY™Yô ô(-1˜rŸy™yô -1ô`G
Ð2ô G
òT r‚r&   