
'''simple docstring'''






import unittest

from transformers import MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING, is_vision_available, pipeline
from transformers.testing_utils import (
    is_pipeline_test,
    nested_simplify,
    require_tf,
    require_torch,
    require_vision,
    slow,
)

from .test_pipelines_common import ANY


if is_vision_available():
					from PIL import Image
else:




					class     __snake_case		:
										@staticmethod
										def     UpperCAmelCase_							(     *A,    **A      ):

														"""simple docstring"""


														pass




@is_pipeline_test
@require_vision
@require_torch
class     __snake_case		(   unittest.TestCase):
					_lowerCAmelCase			     =	MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING
					def     UpperCAmelCase_							(     self,    A,    A,    A      ):

									"""simple docstring"""


									lowerCamelCase					:			Any									= pipeline(
									    'zero-shot-object-detection',    model='hf-internal-testing/tiny-random-owlvit-object-detection'      )

									lowerCamelCase					:			Any									= [
									    {
									        'image': './tests/fixtures/tests_samples/COCO/000000039769.png',
									        'candidate_labels': ['cat', 'remote', 'couch'],
									    }
									]
									return object_detector, examples
					def     UpperCAmelCase_							(     self,    A,    A      ):

									"""simple docstring"""


									lowerCamelCase					:			int									= object_detector(examples[0],    threshold=0.0      )

									lowerCamelCase					:			Tuple									= len(A      )
									self.assertGreater(A,    0      )
									self.assertEqual(
									    A,    [
									        {
									            'score': ANY(A      ),
									            'label': ANY(A      ),
									            'box': {'xmin': ANY(A      ), 'ymin': ANY(A      ), 'xmax': ANY(A      ), 'ymax': ANY(A      )},
									        }
									        for i in range(A      )
									    ],    )
					@require_tf
					@unittest.skip('Zero Shot Object Detection not implemented in TF'      )
					def     UpperCAmelCase_							(     self      ):

									"""simple docstring"""


									pass
					@require_torch
					def     UpperCAmelCase_							(     self      ):

									"""simple docstring"""


									lowerCamelCase					:			List[str]									= pipeline(
									    'zero-shot-object-detection',    model='hf-internal-testing/tiny-random-owlvit-object-detection'      )

									lowerCamelCase					:			List[str]									= object_detector(
									    './tests/fixtures/tests_samples/COCO/000000039769.png',    candidate_labels=['cat', 'remote', 'couch'],    threshold=0.64,    )

									self.assertEqual(
									    nested_simplify(A,    decimals=4      ),    [
									        {'score': 0.7235, 'label': 'cat', 'box': {'xmin': 204, 'ymin': 167, 'xmax': 232, 'ymax': 190}},
									        {'score': 0.7218, 'label': 'remote', 'box': {'xmin': 204, 'ymin': 167, 'xmax': 232, 'ymax': 190}},
									        {'score': 0.7184, 'label': 'couch', 'box': {'xmin': 204, 'ymin': 167, 'xmax': 232, 'ymax': 190}},
									        {'score': 0.6748, 'label': 'remote', 'box': {'xmin': 571, 'ymin': 83, 'xmax': 598, 'ymax': 103}},
									        {'score': 0.6656, 'label': 'cat', 'box': {'xmin': 571, 'ymin': 83, 'xmax': 598, 'ymax': 103}},
									        {'score': 0.6614, 'label': 'couch', 'box': {'xmin': 571, 'ymin': 83, 'xmax': 598, 'ymax': 103}},
									        {'score': 0.6456, 'label': 'remote', 'box': {'xmin': 494, 'ymin': 105, 'xmax': 521, 'ymax': 127}},
									        {'score': 0.642, 'label': 'remote', 'box': {'xmin': 67, 'ymin': 274, 'xmax': 93, 'ymax': 297}},
									        {'score': 0.6419, 'label': 'cat', 'box': {'xmin': 494, 'ymin': 105, 'xmax': 521, 'ymax': 127}},
									    ],    )

									lowerCamelCase					:			Union[str, Any]									= object_detector(
									    [
									        {
									            'image': './tests/fixtures/tests_samples/COCO/000000039769.png',
									            'candidate_labels': ['cat', 'remote', 'couch'],
									        }
									    ],    threshold=0.64,    )

									self.assertEqual(
									    nested_simplify(A,    decimals=4      ),    [
									        [
									            {'score': 0.7235, 'label': 'cat', 'box': {'xmin': 204, 'ymin': 167, 'xmax': 232, 'ymax': 190}},
									            {'score': 0.7218, 'label': 'remote', 'box': {'xmin': 204, 'ymin': 167, 'xmax': 232, 'ymax': 190}},
									            {'score': 0.7184, 'label': 'couch', 'box': {'xmin': 204, 'ymin': 167, 'xmax': 232, 'ymax': 190}},
									            {'score': 0.6748, 'label': 'remote', 'box': {'xmin': 571, 'ymin': 83, 'xmax': 598, 'ymax': 103}},
									            {'score': 0.6656, 'label': 'cat', 'box': {'xmin': 571, 'ymin': 83, 'xmax': 598, 'ymax': 103}},
									            {'score': 0.6614, 'label': 'couch', 'box': {'xmin': 571, 'ymin': 83, 'xmax': 598, 'ymax': 103}},
									            {'score': 0.6456, 'label': 'remote', 'box': {'xmin': 494, 'ymin': 105, 'xmax': 521, 'ymax': 127}},
									            {'score': 0.642, 'label': 'remote', 'box': {'xmin': 67, 'ymin': 274, 'xmax': 93, 'ymax': 297}},
									            {'score': 0.6419, 'label': 'cat', 'box': {'xmin': 494, 'ymin': 105, 'xmax': 521, 'ymax': 127}},
									        ]
									    ],    )
					@require_torch
					@slow
					def     UpperCAmelCase_							(     self      ):

									"""simple docstring"""


									lowerCamelCase					:			Any									= pipeline('zero-shot-object-detection'      )

									lowerCamelCase					:			Optional[Any]									= object_detector(
									    'http://images.cocodataset.org/val2017/000000039769.jpg',    candidate_labels=['cat', 'remote', 'couch'],    )
									self.assertEqual(
									    nested_simplify(A,    decimals=4      ),    [
									        {'score': 0.2868, 'label': 'cat', 'box': {'xmin': 324, 'ymin': 20, 'xmax': 640, 'ymax': 373}},
									        {'score': 0.277, 'label': 'remote', 'box': {'xmin': 40, 'ymin': 72, 'xmax': 177, 'ymax': 115}},
									        {'score': 0.2537, 'label': 'cat', 'box': {'xmin': 1, 'ymin': 55, 'xmax': 315, 'ymax': 472}},
									        {'score': 0.1474, 'label': 'remote', 'box': {'xmin': 335, 'ymin': 74, 'xmax': 371, 'ymax': 187}},
									        {'score': 0.1208, 'label': 'couch', 'box': {'xmin': 4, 'ymin': 0, 'xmax': 642, 'ymax': 476}},
									    ],    )

									lowerCamelCase					:			int									= object_detector(
									    [
									        {
									            'image': 'http://images.cocodataset.org/val2017/000000039769.jpg',
									            'candidate_labels': ['cat', 'remote', 'couch'],
									        },
									        {
									            'image': 'http://images.cocodataset.org/val2017/000000039769.jpg',
									            'candidate_labels': ['cat', 'remote', 'couch'],
									        },
									    ],    )
									self.assertEqual(
									    nested_simplify(A,    decimals=4      ),    [
									        [
									            {'score': 0.2868, 'label': 'cat', 'box': {'xmin': 324, 'ymin': 20, 'xmax': 640, 'ymax': 373}},
									            {'score': 0.277, 'label': 'remote', 'box': {'xmin': 40, 'ymin': 72, 'xmax': 177, 'ymax': 115}},
									            {'score': 0.2537, 'label': 'cat', 'box': {'xmin': 1, 'ymin': 55, 'xmax': 315, 'ymax': 472}},
									            {'score': 0.1474, 'label': 'remote', 'box': {'xmin': 335, 'ymin': 74, 'xmax': 371, 'ymax': 187}},
									            {'score': 0.1208, 'label': 'couch', 'box': {'xmin': 4, 'ymin': 0, 'xmax': 642, 'ymax': 476}},
									        ],
									        [
									            {'score': 0.2868, 'label': 'cat', 'box': {'xmin': 324, 'ymin': 20, 'xmax': 640, 'ymax': 373}},
									            {'score': 0.277, 'label': 'remote', 'box': {'xmin': 40, 'ymin': 72, 'xmax': 177, 'ymax': 115}},
									            {'score': 0.2537, 'label': 'cat', 'box': {'xmin': 1, 'ymin': 55, 'xmax': 315, 'ymax': 472}},
									            {'score': 0.1474, 'label': 'remote', 'box': {'xmin': 335, 'ymin': 74, 'xmax': 371, 'ymax': 187}},
									            {'score': 0.1208, 'label': 'couch', 'box': {'xmin': 4, 'ymin': 0, 'xmax': 642, 'ymax': 476}},
									        ],
									    ],    )
					@require_tf
					@unittest.skip('Zero Shot Object Detection not implemented in TF'      )
					def     UpperCAmelCase_							(     self      ):

									"""simple docstring"""


									pass
					@require_torch
					@slow
					def     UpperCAmelCase_							(     self      ):

									"""simple docstring"""


									lowerCamelCase					:			Optional[int]									= 0.2
									lowerCamelCase					:			Any									= pipeline('zero-shot-object-detection'      )

									lowerCamelCase					:			Optional[int]									= object_detector(
									    'http://images.cocodataset.org/val2017/000000039769.jpg',    candidate_labels=['cat', 'remote', 'couch'],    threshold=A,    )
									self.assertEqual(
									    nested_simplify(A,    decimals=4      ),    [
									        {'score': 0.2868, 'label': 'cat', 'box': {'xmin': 324, 'ymin': 20, 'xmax': 640, 'ymax': 373}},
									        {'score': 0.277, 'label': 'remote', 'box': {'xmin': 40, 'ymin': 72, 'xmax': 177, 'ymax': 115}},
									        {'score': 0.2537, 'label': 'cat', 'box': {'xmin': 1, 'ymin': 55, 'xmax': 315, 'ymax': 472}},
									    ],    )




					@require_torch
					@slow
					def     UpperCAmelCase_							(     self      ):

									"""simple docstring"""


									lowerCamelCase					:			Optional[Any]									= 2
									lowerCamelCase					:			List[Any]									= pipeline('zero-shot-object-detection'      )

									lowerCamelCase					:			str									= object_detector(
									    'http://images.cocodataset.org/val2017/000000039769.jpg',    candidate_labels=['cat', 'remote', 'couch'],    top_k=A,    )
									self.assertEqual(
									    nested_simplify(A,    decimals=4      ),    [
									        {'score': 0.2868, 'label': 'cat', 'box': {'xmin': 324, 'ymin': 20, 'xmax': 640, 'ymax': 373}},
									        {'score': 0.277, 'label': 'remote', 'box': {'xmin': 40, 'ymin': 72, 'xmax': 177, 'ymax': 115}},
									    ],    )


'''simple docstring'''






import numpy as np





def    UpperCAmelCase							(  UpperCAmelCase__							:							np.array):
				return 1 / (1 + np.exp(-vector))


if __name__ == "__main__":
					import doctest

					doctest.testmod()
