class_docstr: Initialize a new Inference Client.
  
  [`InferenceClient`] aims to provide a unified experience to perform inference. The client can be used
  seamlessly with either the (free) Inference API or self-hosted Inference Endpoints.
  
  Args:
      model (`str`, `optional`):
          The model to run inference with. Can be a model id hosted on the Hugging Face Hub, e.g. `bigcode/starcoder`
          or a URL to a deployed Inference Endpoint. Defaults to None, in which case a recommended model is
          automatically selected for the task.
      token (`str`, *optional*):
          Hugging Face token. Will default to the locally saved token. Pass `token=False` if you don't want to send
          your token to the server.
      timeout (`float`, `optional`):
          The maximum number of seconds to wait for a response from the server. Loading a new model in Inference
          API can take up to several minutes. Defaults to None, meaning it will loop until the server is available.
      headers (`Dict[str, str]`, `optional`):
          Additional headers to send to the server. By default only the authorization and user-agent headers are sent.
          Values in this dictionary will override the default values.
      cookies (`Dict[str, str]`, `optional`):
          Additional cookies to send to the server.
class_docstr_tok: ["Initialize","a","new","Inference","Client",".","[","`","InferenceClient","`","]","aims","to","provide","a","unified","experience","to","perform","inference",".","The","client","can","be","used","seamlessly","with","either","the","(","free",")","Inference","API","or","self-hosted","Inference","Endpoints",".","Args",":","model","(","`","str","`",",","`","optional","`",")",":","The","model","to","run","inference","with",".","Can","be","a","model","id","hosted","on","the","Hugging","Face","Hub",",","e.g",".","`","bigcode\/starcoder","`","or","a","URL","to","a","deployed","Inference","Endpoint",".","Defaults","to","None",",","in","which","case","a","recommended","model","is","automatically","selected","for","the","task",".","token","(","`","str","`",",","*","optional","*",")",":","Hugging","Face","token",".","Will","default","to","the","locally","saved","token",".","Pass","`","token=False","`","if","you","do","n't","want","to","send","your","token","to","the","server",".","timeout","(","`","float","`",",","`","optional","`",")",":","The","maximum","number","of","seconds","to","wait","for","a","response","from","the","server",".","Loading","a","new","model","in","Inference","API","can","take","up","to","several","minutes",".","Defaults","to","None",",","meaning","it","will","loop","until","the","server","is","available",".","headers","(","`","Dict","[","str",",","str","]","`",",","`","optional","`",")",":","Additional","headers","to","send","to","the","server",".","By","default","only","the","authorization","and","user-agent","headers","are","sent",".","Values","in","this","dictionary","will","override","the","default","values",".","cookies","(","`","Dict","[","str",",","str","]","`",",","`","optional","`",")",":","Additional","cookies","to","send","to","the","server","."]
docstr: Perform object detection on the given image using the specified model.
  
  <Tip warning={true}>
  
  You must have `PIL` installed if you want to work with images (`pip install Pillow`).
  
  </Tip>
  
  Args:
      image (`Union[str, Path, bytes, BinaryIO]`):
          The image to detect objects on. It can be raw bytes, an image file, or a URL to an online image.
      model (`str`, *optional*):
          The model to use for object detection. Can be a model ID hosted on the Hugging Face Hub or a URL to a
          deployed Inference Endpoint. If not provided, the default recommended model for object detection (DETR) will be used.
  
  Returns:
      `List[ObjectDetectionOutput]`: A list of dictionaries containing the bounding boxes and associated attributes.
  
  Raises:
      [`InferenceTimeoutError`]:
          If the model is unavailable or the request times out.
      `HTTPError`:
          If the request fails with an HTTP error status code other than HTTP 503.
      `ValueError`:
          If the request output is not a List.
  
  Example:
  ```py
  >>> from huggingface_hub import InferenceClient
  >>> client = InferenceClient()
  >>> client.object_detection("people.jpg"):
  [{"score":0.9486683011054993,"label":"person","box":{"xmin":59,"ymin":39,"xmax":420,"ymax":510}}, ... ]
  ```
docstr_tok: ["Perform","object","detection","on","the","given","image","using","the","specified","model",".","<","Tip","warning=","{","true","}",">","You","must","have","`","PIL","`","installed","if","you","want","to","work","with","images","(","`","pip","install","Pillow","`",")",".","<","\/Tip",">","Args",":","image","(","`","Union","[","str",",","Path",",","bytes",",","BinaryIO","]","`",")",":","The","image","to","detect","objects","on",".","It","can","be","raw","bytes",",","an","image","file",",","or","a","URL","to","an","online","image",".","model","(","`","str","`",",","*","optional","*",")",":","The","model","to","use","for","object","detection",".","Can","be","a","model","ID","hosted","on","the","Hugging","Face","Hub","or","a","URL","to","a","deployed","Inference","Endpoint",".","If","not","provided",",","the","default","recommended","model","for","object","detection","(","DETR",")","will","be","used",".","Returns",":","`","List","[","ObjectDetectionOutput","]","`",":","A","list","of","dictionaries","containing","the","bounding","boxes","and","associated","attributes",".","Raises",":","[","`","InferenceTimeoutError","`","]",":","If","the","model","is","unavailable","or","the","request","times","out",".","`","HTTPError","`",":","If","the","request","fails","with","an","HTTP","error","status","code","other","than","HTTP","503",".","`","ValueError","`",":","If","the","request","output","is","not","a","List",".","Example",":","``","`","py",">",">",">","from","huggingface_hub","import","InferenceClient",">",">",">","client","=","InferenceClient","(",")",">",">",">","client.object_detection","(","``","people.jpg","''",")",":","[","{","``","score","''",":0.9486683011054993",",","''","label","''",":","''","person","''",",","''","box","''",":","{","``","xmin","''",":59",",","''","ymin","''",":39",",","''","xmax","''",":420",",","''","ymax","''",":510","}","}",",","...","]","``","`"]
code: def object_detection(
      self,
      image: ContentT,
      *,
      model: Optional[str] = None,
  ) -> List[ObjectDetectionOutput]:
      """
      Perform object detection on the given image using the specified model.
  
      <Tip warning={true}>
  
      You must have `PIL` installed if you want to work with images (`pip install Pillow`).
  
      </Tip>
  
      Args:
          image (`Union[str, Path, bytes, BinaryIO]`):
              The image to detect objects on. It can be raw bytes, an image file, or a URL to an online image.
          model (`str`, *optional*):
              The model to use for object detection. Can be a model ID hosted on the Hugging Face Hub or a URL to a
              deployed Inference Endpoint. If not provided, the default recommended model for object detection (DETR) will be used.
  
      Returns:
          `List[ObjectDetectionOutput]`: A list of dictionaries containing the bounding boxes and associated attributes.
  
      Raises:
          [`InferenceTimeoutError`]:
              If the model is unavailable or the request times out.
          `HTTPError`:
              If the request fails with an HTTP error status code other than HTTP 503.
          `ValueError`:
              If the request output is not a List.
  
      Example:
      ```py
      >>> from huggingface_hub import InferenceClient
      >>> client = InferenceClient()
      >>> client.object_detection("people.jpg"):
      [{"score":0.9486683011054993,"label":"person","box":{"xmin":59,"ymin":39,"xmax":420,"ymax":510}}, ... ]
      ```
      """
      # detect objects
      response = self.post(
          data=image, model=model, task="object-detection"
      )
      output = _bytes_to_dict(response)
      if not isinstance(output, list):
          raise ValueError(
              f"Server output must be a list. Got {type(output)}: {str(output)[:200]}..."
          )
      return output
  
imports: import logging
  import time
  import warnings
  from dataclasses import asdict
  from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Literal, Optional, Union, overload
  from requests import HTTPError
  from requests.structures import CaseInsensitiveDict
  from huggingface_hub.constants import ALL_INFERENCE_API_FRAMEWORKS, INFERENCE_ENDPOINT, MAIN_INFERENCE_API_FRAMEWORKS
  from huggingface_hub.inference._common import TASKS_EXPECTING_IMAGES, ContentT, InferenceTimeoutError, ModelStatus, _b64_encode, _b64_to_image, _bytes_to_dict, _bytes_to_image, _bytes_to_list, _fetch_recommended_models, _import_numpy, _is_tgi_server, _open_as_binary, _set_as_non_tgi, _stream_text_generation_response
  from huggingface_hub.inference._text_generation import TextGenerationParameters, TextGenerationRequest, TextGenerationResponse, TextGenerationStreamResponse, raise_text_generation_error
  from huggingface_hub.inference._types import ClassificationOutput, ConversationalOutput, FillMaskOutput, ImageSegmentationOutput, ObjectDetectionOutput, QuestionAnsweringOutput, TableQuestionAnsweringOutput, TokenClassificationOutput
  from huggingface_hub.utils import BadRequestError, build_hf_headers, get_session, hf_raise_for_status
label_desc: Use image node_id 18 for calling the InferenceClient obj's underlying member method code with example usage: obj.object_detection(image) and returns: output