def detect_labels(Image=None, MaxLabels=None, MinConfidence=None):
    """
    Detects instances of real-world labels within an image (JPEG or PNG) provided as input. This includes objects like flower, tree, and table; events like wedding, graduation, and birthday party; and concepts like landscape, evening, and nature. For an example, see  get-started-exercise-detect-labels .
    For each object, scene, and concept the API returns one or more labels. Each label provides the object name, and the level of confidence that the image contains the object. For example, suppose the input image has a lighthouse, the sea, and a rock. The response will include all three labels, one for each object.
    In the preceding example, the operation returns one label for each of the three objects. The operation can also return multiple labels for the same object in the image. For example, if the input image shows a flower (for example, a tulip), the operation might return the following three labels.
    In this example, the detection algorithm more precisely identifies the flower as a tulip.
    You can provide the input image as an S3 object or as base64-encoded bytes. In response, the API returns an array of labels. In addition, the response also includes the orientation correction. Optionally, you can specify MinConfidence to control the confidence threshold for the labels returned. The default is 50%. You can also add the MaxLabels parameter to limit the number of labels returned.
    This is a stateless API operation. That is, the operation does not persist any data.
    This operation requires permissions to perform the rekognition:DetectLabels action.
    See also: AWS API Documentation
    
    Examples
    This operation detects labels in the supplied image
    Expected Output:
    
    :example: response = client.detect_labels(
        Image={
            'Bytes': b'bytes',
            'S3Object': {
                'Bucket': 'string',
                'Name': 'string',
                'Version': 'string'
            }
        },
        MaxLabels=123,
        MinConfidence=...
    )
    
    
    :type Image: dict
    :param Image: [REQUIRED]
            The input image. You can provide a blob of image bytes or an S3 object.
            Bytes (bytes) --Blob of image bytes up to 5 MBs.
            S3Object (dict) --Identifies an S3 object as the image source.
            Bucket (string) --Name of the S3 bucket.
            Name (string) --S3 object key name.
            Version (string) --If the bucket is versioning enabled, you can specify the object version.
            
            

    :type MaxLabels: integer
    :param MaxLabels: Maximum number of labels you want the service to return in the response. The service returns the specified number of highest confidence labels.

    :type MinConfidence: float
    :param MinConfidence: Specifies the minimum confidence level for the labels to return. Amazon Rekognition doesn't return any labels with confidence lower than this specified value.
            If MinConfidence is not specified, the operation returns labels with a confidence values greater than or equal to 50 percent.
            

    :rtype: dict
    :return: {
        'Labels': [
            {
                'Name': 'string',
                'Confidence': ...
            },
        ],
        'OrientationCorrection': 'ROTATE_0'|'ROTATE_90'|'ROTATE_180'|'ROTATE_270'
    }
    
    
    """
    pass
