class_docstr: Hook for Google Cloud Vision APIs.
  
  All the methods in the hook where project_id is used must be called with
  keyword arguments rather than positional.
docstr: Label detection.
  
  For the documentation see:
  :py:class:`~airflow.providers.google.cloud.operators.vision.CloudVisionDetectImageLabelsOperator`.
code: def label_detection(
      self,
      image: dict | Image,
      max_results: int | None = None,
      retry: Retry | _MethodDefault = DEFAULT,
      timeout: float | None = None,
      additional_properties: dict | None = None,
  ) -> dict:
      """
      Label detection.
  
      For the documentation see:
      :py:class:`~airflow.providers.google.cloud.operators.vision.CloudVisionDetectImageLabelsOperator`.
      """
      client = self.annotator_client
  
      self.log.info("Detecting labels")
  
      if additional_properties is None:
          additional_properties = {}
  
      response = client.label_detection(
          image=image,
          max_results=max_results,
          retry=retry,
          timeout=timeout,
          **additional_properties,
      )
      response = MessageToDict(response._pb)
      self._check_for_error(response)
  
      self.log.info("Labels detection finished")
  
      return response
  
imports: from __future__ import annotations
  from copy import deepcopy
  from functools import cached_property
  from typing import TYPE_CHECKING, Any, Callable, Sequence
  from google.api_core.gapic_v1.method import DEFAULT, _MethodDefault
  from google.cloud.vision_v1 import AnnotateImageRequest, Image, ImageAnnotatorClient, Product, ProductSearchClient, ProductSet, ReferenceImage
  from google.protobuf.json_format import MessageToDict
  from airflow.exceptions import AirflowException
  from airflow.providers.google.common.consts import CLIENT_INFO
  from airflow.providers.google.common.hooks.base_google import PROVIDE_PROJECT_ID, GoogleBaseHook
label_desc: Use image node_id 21 for calling the CloudVisionHook obj's underlying member method code with example usage: obj.label_detection(image, max_results, retry, timeout, additional_properties) and returns: response