matrice 1.0.99245__tar.gz → 1.0.99246__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {matrice-1.0.99245/src/matrice.egg-info → matrice-1.0.99246}/PKG-INFO +1 -1
- {matrice-1.0.99245 → matrice-1.0.99246}/setup.py +1 -1
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/__init__.py +10 -2
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/config.py +2 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/core/__init__.py +1 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/core/config.py +66 -1
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/core/config_utils.py +85 -6
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/processor.py +7 -3
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/__init__.py +3 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/intrusion_detection.py +4 -4
- matrice-1.0.99246/src/matrice/deploy/utils/post_processing/usecases/proximity_detection.py +1559 -0
- {matrice-1.0.99245 → matrice-1.0.99246/src/matrice.egg-info}/PKG-INFO +1 -1
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice.egg-info/SOURCES.txt +1 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/LICENSE.txt +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/README.md +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/setup.cfg +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/__init__.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/action.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/actionTracker.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/action_tracker.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/annotation.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/app_store.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/application.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/compute.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/compute_manager/__init__.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/compute_manager/action_instance.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/compute_manager/actions_manager.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/compute_manager/actions_scaledown_manager.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/compute_manager/instance_manager.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/compute_manager/instance_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/compute_manager/prechecks.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/compute_manager/resources_tracker.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/compute_manager/scaling.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/compute_manager/shutdown_manager.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/compute_manager/task_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/__init__.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/aug_server.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/aug_server_v2.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/__init__.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/base.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/__init__.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/bit_depth_reduction.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/blur.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/brightness_contrast.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/color_jitter.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/compression_artifacts.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/downscale_upscale.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/film_grain.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/flip.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/fog.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/horizontal_flip.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/hsv.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/iso_noise.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/low_light.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/posterize.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/rain.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/random_affine.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/salt_pepper.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/shadows.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/snow.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/speckle.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/augmentation_utils/strategies/sunflare.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/client.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/client_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/create_dataset.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/data_augmentation.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/data_augmentor.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/data_formats/__init__.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/data_formats/imagenet_classification.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/data_formats/labelbox_classification.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/data_formats/labelbox_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/data_formats/mscoco_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/data_formats/pascalvoc_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/data_formats/unlabelled.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/data_formats/video_davis_segmentation.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/data_formats/video_detection_mscoco.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/data_formats/video_imagenet_classification.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/data_formats/video_kinetics_activity_recognition.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/data_formats/video_mot_tracking.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/data_formats/video_mscoco_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/data_formats/video_youtube_bb_tracking.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/data_formats/yolo_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/data_labelling.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/data_prep.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/data_processor.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/image_augmentations.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/image_data_augmentation.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/new_data_augmentation.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/pipeline.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/server.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/server_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/data_processing/video_server.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/dataset.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/__init__.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/aggregator/__init__.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/aggregator/aggregator.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/aggregator/ingestor.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/aggregator/pipeline.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/aggregator/publisher.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/aggregator/synchronizer.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/client/__init__.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/client/auto_streaming/__init__.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/client/auto_streaming/auto_streaming.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/client/auto_streaming/auto_streaming_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/client/client.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/client/client_stream_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/client/client_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/client/frame_comparators.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/client/streaming_gateway/__init__.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/client/streaming_gateway/streaming_gateway.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/client/streaming_gateway/streaming_gateway_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/client/streaming_gateway/streaming_results_handler.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/server/__init__.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/server/inference/__init__.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/server/inference/batch_manager.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/server/inference/cache_manager.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/server/inference/inference_interface.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/server/inference/model_manager.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/server/inference/triton_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/server/proxy/__init__.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/server/proxy/proxy_interface.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/server/proxy/proxy_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/server/server.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/server/stream_worker.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/__init__.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/boundary_drawing_internal/__init__.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/boundary_drawing_internal/boundary_drawing_internal.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/boundary_drawing_internal/boundary_drawing_tool.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/boundary_drawing_internal/example_usage.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/kafka_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/advanced_tracker/__init__.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/advanced_tracker/base.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/advanced_tracker/config.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/advanced_tracker/kalman_filter.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/advanced_tracker/matching.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/advanced_tracker/strack.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/advanced_tracker/tracker.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/core/base.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/test_cases/__init__.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/test_cases/run_tests.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/test_cases/test_advanced_customer_service.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/test_cases/test_basic_counting_tracking.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/test_cases/test_comprehensive.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/test_cases/test_config.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/test_cases/test_customer_service.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/test_cases/test_data_generators.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/test_cases/test_people_counting.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/test_cases/test_processor.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/test_cases/test_utilities.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/test_cases/test_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/Histopathological_Cancer_Detection_img.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/abandoned_object_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/advanced_customer_service.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/age_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/anti_spoofing_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/assembly_line_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/banana_defect_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/basic_counting_tracking.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/blood_cancer_detection_img.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/car_damage_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/car_part_segmentation.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/cardiomegaly_classification.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/chicken_pose_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/child_monitoring.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/color_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/color_map_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/concrete_crack_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/crop_weed_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/customer_service.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/defect_detection_products.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/distracted_driver_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/drowsy_driver_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/emergency_vehicle_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/face_emotion.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/face_recognition.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/fashion_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/field_mapping.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/fire_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/flare_analysis.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/flower_segmentation.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/gas_leak_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/gender_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/human_activity_recognition.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/leaf.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/leaf_disease.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/leak_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/license_plate_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/litter_monitoring.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/mask_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/parking.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/parking_space_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/pedestrian_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/people_counting.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/pipeline_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/plaque_segmentation_img.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/pothole_segmentation.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/ppe_compliance.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/price_tag_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/road_lane_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/road_traffic_density.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/road_view_segmentation.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/shelf_inventory_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/shoplifting_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/shopping_cart_analysis.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/skin_cancer_classification_img.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/smoker_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/solar_panel.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/template_usecase.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/theft_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/traffic_sign_monitoring.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/underwater_pollution_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/vehicle_monitoring.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/warehouse_object_segmentation.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/waterbody_segmentation.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/weapon_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/weld_defect_detection.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/windmill_maintenance.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/usecases/wound_segmentation.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/utils/__init__.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/utils/advanced_counting_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/utils/advanced_helper_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/utils/advanced_tracking_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/utils/alerting_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/utils/category_mapping_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/utils/color_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/utils/counting_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/utils/filter_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/utils/format_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/utils/geometry_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/utils/smoothing_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/utils/tracking_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deployment/__init__.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deployment/camera_manager.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deployment/deployment.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deployment/inference_pipeline.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deployment/streaming_gateway_manager.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/docker_utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/drift_monitor.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/exported_model.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/local_test.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/metrics_calculator.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/metrics_calculator_oop.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/model_store.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/models.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/pipeline.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/projects.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/rpc.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/scaling.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/session.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/testing.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/token_auth.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/utils.py +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice.egg-info/dependency_links.txt +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice.egg-info/requires.txt +0 -0
- {matrice-1.0.99245 → matrice-1.0.99246}/src/matrice.egg-info/top_level.txt +0 -0
{matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/__init__.py
RENAMED
@@ -56,6 +56,7 @@ from .core.config import (
|
|
56
56
|
BaseConfig,
|
57
57
|
PeopleCountingConfig,
|
58
58
|
CustomerServiceConfig,
|
59
|
+
ProximityConfig,
|
59
60
|
ZoneConfig,
|
60
61
|
TrackingConfig,
|
61
62
|
AlertConfig,
|
@@ -130,6 +131,7 @@ from .usecases.Histopathological_Cancer_Detection_img import HistopathologicalCa
|
|
130
131
|
from .usecases import (
|
131
132
|
PeopleCountingUseCase,
|
132
133
|
CustomerServiceUseCase,
|
134
|
+
ProximityUseCase,
|
133
135
|
AdvancedCustomerServiceUseCase,
|
134
136
|
BasicCountingTrackingUseCase,
|
135
137
|
LicensePlateUseCase,
|
@@ -193,6 +195,7 @@ from .usecases import (
|
|
193
195
|
# Register use cases automatically
|
194
196
|
_people_counting = PeopleCountingUseCase()
|
195
197
|
_customer_service = CustomerServiceUseCase()
|
198
|
+
_proximity_detection = ProximityUseCase()
|
196
199
|
_advanced_customer_service = AdvancedCustomerServiceUseCase()
|
197
200
|
_basic_counting_tracking = BasicCountingTrackingUseCase()
|
198
201
|
_license_plate = LicensePlateUseCase()
|
@@ -248,7 +251,7 @@ _flower_segmentation = FlowerUseCase()
|
|
248
251
|
_leaf_det = LeafUseCase()
|
249
252
|
_smoker_detection = SmokerDetectionUseCase()
|
250
253
|
_litter_detection = LitterDetectionUseCase()
|
251
|
-
_abandoned_object_detection
|
254
|
+
_abandoned_object_detection = AbandonedObjectDetectionUseCase()
|
252
255
|
_human_activity_recognition = HumanActivityUseCase()
|
253
256
|
_gas_leak_detection = GasLeakDetectionUseCase()
|
254
257
|
|
@@ -262,6 +265,7 @@ _histopathological_cancer_detection = HistopathologicalCancerDetectionUseCase()
|
|
262
265
|
registry.register_use_case(_abandoned_object_detection.category, _abandoned_object_detection.name, AbandonedObjectDetectionUseCase)
|
263
266
|
registry.register_use_case(_litter_detection.category, _litter_detection.name, LitterDetectionUseCase)
|
264
267
|
registry.register_use_case(_people_counting.category, _people_counting.name, PeopleCountingUseCase)
|
268
|
+
registry.register_use_case(_proximity_detection.category, _proximity_detection.name, ProximityUseCase)
|
265
269
|
registry.register_use_case(_customer_service.category, _customer_service.name, CustomerServiceUseCase)
|
266
270
|
registry.register_use_case(_advanced_customer_service.category, _advanced_customer_service.name, AdvancedCustomerServiceUseCase)
|
267
271
|
registry.register_use_case(_basic_counting_tracking.category, _basic_counting_tracking.name, BasicCountingTrackingUseCase)
|
@@ -373,6 +377,7 @@ from .utils import ( # noqa: E402
|
|
373
377
|
# New utilities
|
374
378
|
create_people_counting_config,
|
375
379
|
create_intrusion_detection_config,
|
380
|
+
create_proximity_detection_config,
|
376
381
|
create_customer_service_config,
|
377
382
|
create_advanced_customer_service_config,
|
378
383
|
create_basic_counting_tracking_config,
|
@@ -457,7 +462,8 @@ __all__ = [
|
|
457
462
|
|
458
463
|
# Configuration classes
|
459
464
|
'BaseConfig',
|
460
|
-
'PeopleCountingConfig',
|
465
|
+
'PeopleCountingConfig',
|
466
|
+
'ProximityConfig',
|
461
467
|
'CustomerServiceConfig',
|
462
468
|
'ColorDetectionConfig',
|
463
469
|
'LicensePlateConfig',
|
@@ -524,6 +530,7 @@ __all__ = [
|
|
524
530
|
# Use case classes
|
525
531
|
'PeopleCountingUseCase',
|
526
532
|
'CustomerServiceUseCase',
|
533
|
+
'ProximityUseCase',
|
527
534
|
'AdvancedCustomerServiceUseCase',
|
528
535
|
'BasicCountingTrackingUseCase',
|
529
536
|
'LicensePlateUseCase',
|
@@ -643,6 +650,7 @@ __all__ = [
|
|
643
650
|
# New utilities
|
644
651
|
'create_people_counting_config',
|
645
652
|
'create_intrusion_detection_config',
|
653
|
+
'create_proximity_detection_config',
|
646
654
|
'create_customer_service_config',
|
647
655
|
'create_advanced_customer_service_config',
|
648
656
|
'create_basic_counting_tracking_config',
|
@@ -1,6 +1,7 @@
|
|
1
1
|
APP_NAME_TO_USECASE = {
|
2
2
|
"people_counting": "people_counting",
|
3
3
|
"intrusion_detection": "intrusion_detection",
|
4
|
+
"proximity_detection": "proximity_detection",
|
4
5
|
"mask_detection": "mask_detection",
|
5
6
|
"pipeline_detection": "pipeline_detection",
|
6
7
|
"vehicle_monitoring": "vehicle_monitoring",
|
@@ -55,6 +56,7 @@ APP_NAME_TO_USECASE = {
|
|
55
56
|
APP_NAME_TO_CATEGORY = {
|
56
57
|
"people_counting": "general",
|
57
58
|
"intrusion_detection": "security",
|
59
|
+
"proximity_detection": "security",
|
58
60
|
"mask_detection": "mask_detection",
|
59
61
|
"pipeline_detection": "pipeline_detection",
|
60
62
|
"vehicle_monitoring": "traffic",
|
{matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/core/config.py
RENAMED
@@ -327,6 +327,7 @@ class PeopleCountingConfig(BaseConfig):
|
|
327
327
|
|
328
328
|
return errors
|
329
329
|
|
330
|
+
|
330
331
|
@dataclass
|
331
332
|
class IntrusionConfig(BaseConfig):
|
332
333
|
"""Configuration for intrusion detection use case."""
|
@@ -346,7 +347,7 @@ class IntrusionConfig(BaseConfig):
|
|
346
347
|
time_window_minutes: int = 60
|
347
348
|
|
348
349
|
# Category mapping
|
349
|
-
person_categories: List[str] = field(default_factory=lambda: ["person"
|
350
|
+
person_categories: List[str] = field(default_factory=lambda: ["person"])
|
350
351
|
index_to_category: Optional[Dict[int, str]] = None
|
351
352
|
|
352
353
|
# Alert configuration
|
@@ -372,6 +373,51 @@ class IntrusionConfig(BaseConfig):
|
|
372
373
|
return errors
|
373
374
|
|
374
375
|
|
376
|
+
@dataclass
|
377
|
+
class ProximityConfig(BaseConfig):
|
378
|
+
"""Configuration for intrusion detection use case."""
|
379
|
+
|
380
|
+
# Smoothing configuration
|
381
|
+
enable_smoothing: bool = True
|
382
|
+
smoothing_algorithm: str = "observability" # "window" or "observability"
|
383
|
+
smoothing_window_size: int = 20
|
384
|
+
smoothing_cooldown_frames: int = 5
|
385
|
+
smoothing_confidence_range_factor: float = 0.5
|
386
|
+
|
387
|
+
# Zone configuration
|
388
|
+
zone_config: Optional[ZoneConfig] = None
|
389
|
+
|
390
|
+
# Counting parameters
|
391
|
+
enable_unique_counting: bool = True
|
392
|
+
time_window_minutes: int = 60
|
393
|
+
|
394
|
+
# Category mapping
|
395
|
+
person_categories: List[str] = field(default_factory=lambda: ["person"])
|
396
|
+
index_to_category: Optional[Dict[int, str]] = None
|
397
|
+
|
398
|
+
# Alert configuration
|
399
|
+
alert_config: Optional[AlertConfig] = None
|
400
|
+
|
401
|
+
def validate(self) -> List[str]:
|
402
|
+
"""Validate proximity detection configuration."""
|
403
|
+
errors = super().validate()
|
404
|
+
|
405
|
+
if self.time_window_minutes <= 0:
|
406
|
+
errors.append("time_window_minutes must be positive")
|
407
|
+
|
408
|
+
if not self.person_categories:
|
409
|
+
errors.append("person_categories cannot be empty")
|
410
|
+
|
411
|
+
# Validate nested configurations
|
412
|
+
if self.zone_config:
|
413
|
+
errors.extend(self.zone_config.validate())
|
414
|
+
|
415
|
+
if self.alert_config:
|
416
|
+
errors.extend(self.alert_config.validate())
|
417
|
+
|
418
|
+
return errors
|
419
|
+
|
420
|
+
|
375
421
|
@dataclass
|
376
422
|
class CustomerServiceConfig(BaseConfig):
|
377
423
|
"""Configuration for customer service use case."""
|
@@ -450,6 +496,7 @@ class ConfigManager:
|
|
450
496
|
"customer_service": CustomerServiceConfig,
|
451
497
|
"advanced_customer_service": CustomerServiceConfig,
|
452
498
|
"intrusion_detection": IntrusionConfig,
|
499
|
+
"proximity_detection": ProximityConfig,
|
453
500
|
"basic_counting_tracking": None, # Will be set later to avoid circular import
|
454
501
|
"license_plate_detection": None, # Will be set later to avoid circular import
|
455
502
|
"ppe_compliance_detection": None,
|
@@ -1032,6 +1079,24 @@ class ConfigManager:
|
|
1032
1079
|
alert_config=alert_config,
|
1033
1080
|
**kwargs
|
1034
1081
|
)
|
1082
|
+
|
1083
|
+
elif usecase == "proximity_detection":
|
1084
|
+
# Handle nested configurations
|
1085
|
+
zone_config = kwargs.pop("zone_config", None)
|
1086
|
+
if zone_config and isinstance(zone_config, dict):
|
1087
|
+
zone_config = ZoneConfig(**zone_config)
|
1088
|
+
|
1089
|
+
alert_config = kwargs.pop("alert_config", None)
|
1090
|
+
if alert_config and isinstance(alert_config, dict):
|
1091
|
+
alert_config = AlertConfig(**alert_config)
|
1092
|
+
|
1093
|
+
config = ProximityConfig(
|
1094
|
+
category=category or "security",
|
1095
|
+
usecase=usecase,
|
1096
|
+
zone_config=zone_config,
|
1097
|
+
alert_config=alert_config,
|
1098
|
+
**kwargs
|
1099
|
+
)
|
1035
1100
|
|
1036
1101
|
elif usecase in ["customer_service", "advanced_customer_service"]:
|
1037
1102
|
# Handle nested configurations
|
@@ -13,6 +13,7 @@ from .config import (
|
|
13
13
|
PeopleCountingConfig,
|
14
14
|
CustomerServiceConfig,
|
15
15
|
IntrusionConfig,
|
16
|
+
ProximityConfig,
|
16
17
|
ZoneConfig,
|
17
18
|
TrackingConfig,
|
18
19
|
AlertConfig,
|
@@ -132,13 +133,73 @@ def create_intrusion_detection_config(
|
|
132
133
|
usecase="intrusion_detection",
|
133
134
|
confidence_threshold=confidence_threshold,
|
134
135
|
zone_config=zone_config,
|
135
|
-
person_categories=person_categories or ["person"
|
136
|
+
person_categories=person_categories or ["person"],
|
136
137
|
enable_tracking=enable_tracking,
|
137
138
|
time_window_minutes=time_window_minutes,
|
138
139
|
alert_config=alert_config,
|
139
140
|
**kwargs
|
140
141
|
)
|
141
142
|
|
143
|
+
|
144
|
+
def create_proximity_detection_config(
|
145
|
+
confidence_threshold: float = 0.5,
|
146
|
+
zones: Optional[Dict[str, List[List[float]]]] = None,
|
147
|
+
person_categories: Optional[List[str]] = None,
|
148
|
+
enable_tracking: bool = False,
|
149
|
+
time_window_minutes: int = 60,
|
150
|
+
alert_thresholds: Optional[Dict[str, int]] = None,
|
151
|
+
category: str = "general",
|
152
|
+
**kwargs
|
153
|
+
) -> ProximityConfig:
|
154
|
+
"""
|
155
|
+
Create a proximity detection configuration with sensible defaults.
|
156
|
+
|
157
|
+
Args:
|
158
|
+
confidence_threshold: Minimum confidence for detections (0.0-1.0)
|
159
|
+
zones: Dictionary of zone_name -> polygon points [[x1,y1], [x2,y2], ...]
|
160
|
+
person_categories: List of category names that represent people
|
161
|
+
enable_tracking: Whether to enable object tracking
|
162
|
+
time_window_minutes: Time window for counting statistics
|
163
|
+
alert_thresholds: Dictionary of zone_name -> max_count for alerts
|
164
|
+
category: Use case category
|
165
|
+
**kwargs: Additional configuration parameters
|
166
|
+
|
167
|
+
Returns:
|
168
|
+
ProximityConfig: Configured proximity detection configuration
|
169
|
+
|
170
|
+
Example:
|
171
|
+
config = create_proximity_detection_config(
|
172
|
+
confidence_threshold=0.6,
|
173
|
+
zones={
|
174
|
+
"entrance": [[0, 0], [100, 0], [100, 100], [0, 100]],
|
175
|
+
"exit": [[200, 0], [300, 0], [300, 100], [200, 100]]
|
176
|
+
},
|
177
|
+
alert_thresholds={"entrance": 10, "exit": 5}
|
178
|
+
)
|
179
|
+
"""
|
180
|
+
# Create zone configuration if zones provided
|
181
|
+
zone_config = None
|
182
|
+
if zones:
|
183
|
+
zone_config = ZoneConfig(zones=zones)
|
184
|
+
|
185
|
+
# Create alert configuration if thresholds provided
|
186
|
+
alert_config = None
|
187
|
+
if alert_thresholds:
|
188
|
+
alert_config = AlertConfig(count_thresholds=alert_thresholds)
|
189
|
+
|
190
|
+
return ProximityConfig(
|
191
|
+
category=category,
|
192
|
+
usecase="proximity_detection",
|
193
|
+
confidence_threshold=confidence_threshold,
|
194
|
+
zone_config=zone_config,
|
195
|
+
person_categories=person_categories or ["person"],
|
196
|
+
enable_tracking=enable_tracking,
|
197
|
+
time_window_minutes=time_window_minutes,
|
198
|
+
alert_config=alert_config,
|
199
|
+
**kwargs
|
200
|
+
)
|
201
|
+
|
202
|
+
|
142
203
|
def create_customer_service_config(
|
143
204
|
confidence_threshold: float = 0.5,
|
144
205
|
customer_areas: Optional[Dict[str, List[List[float]]]] = None,
|
@@ -513,6 +574,8 @@ def create_config_from_template(
|
|
513
574
|
return create_people_counting_config(**overrides)
|
514
575
|
elif usecase == "intrusion_detection":
|
515
576
|
return create_intrusion_detection_config(**overrides)
|
577
|
+
elif usecase == "proximity_detection":
|
578
|
+
return create_proximity_detection_config(**overrides)
|
516
579
|
elif usecase == "customer_service":
|
517
580
|
return create_customer_service_config(**overrides)
|
518
581
|
elif usecase == "advanced_customer_service":
|
@@ -566,17 +629,33 @@ def get_use_case_examples() -> Dict[str, Dict[str, Any]]:
|
|
566
629
|
"confidence_threshold": 0.6,
|
567
630
|
"enable_tracking": True,
|
568
631
|
"time_window_minutes": 60,
|
569
|
-
"person_categories": ["person"
|
632
|
+
"person_categories": ["person"],
|
570
633
|
"zone_config": {
|
571
634
|
"zones": {
|
572
|
-
"
|
573
|
-
"Mid": [[663, 995], [925, 817], [1266, 885], [1012, 1116]]
|
635
|
+
"Boarding Gate": [[314, 652], [1034, 317], [1854, 845], [987, 1491]]
|
574
636
|
}
|
575
637
|
},
|
576
638
|
"alert_config": {
|
577
639
|
"count_thresholds": {
|
578
|
-
"
|
579
|
-
|
640
|
+
"Boarding Gate": 0
|
641
|
+
},
|
642
|
+
"alert_cooldown": 10.0
|
643
|
+
}
|
644
|
+
},
|
645
|
+
|
646
|
+
"proximity_detection": {
|
647
|
+
"usecase": "proximity_detection",
|
648
|
+
"category": "security",
|
649
|
+
"confidence_threshold": 0.6,
|
650
|
+
"enable_tracking": True,
|
651
|
+
"time_window_minutes": 60,
|
652
|
+
"person_categories": ["person"],
|
653
|
+
"zone_config": {
|
654
|
+
"zones": {}
|
655
|
+
},
|
656
|
+
"alert_config": {
|
657
|
+
"count_thresholds": {
|
658
|
+
"Boarding Gate": 0
|
580
659
|
},
|
581
660
|
"alert_cooldown": 10.0
|
582
661
|
}
|
{matrice-1.0.99245 → matrice-1.0.99246}/src/matrice/deploy/utils/post_processing/processor.py
RENAMED
@@ -25,12 +25,14 @@ from .core.config import (
|
|
25
25
|
PeopleCountingConfig,
|
26
26
|
CustomerServiceConfig,
|
27
27
|
IntrusionConfig,
|
28
|
+
ProximityConfig,
|
28
29
|
config_manager,
|
29
30
|
ConfigValidationError
|
30
31
|
)
|
31
32
|
from .usecases import (
|
32
33
|
PeopleCountingUseCase,
|
33
34
|
IntrusionUseCase,
|
35
|
+
ProximityUseCase,
|
34
36
|
CustomerServiceUseCase,
|
35
37
|
AdvancedCustomerServiceUseCase,
|
36
38
|
LicensePlateUseCase,
|
@@ -73,7 +75,6 @@ from .usecases import (
|
|
73
75
|
WeldDefectUseCase,
|
74
76
|
WeaponDetectionUseCase,
|
75
77
|
|
76
|
-
AgeDetectionUseCase,
|
77
78
|
PriceTagUseCase,
|
78
79
|
DistractedDriverUseCase,
|
79
80
|
EmergencyVehicleUseCase,
|
@@ -157,6 +158,9 @@ class PostProcessor:
|
|
157
158
|
# Register intrusion detection use case
|
158
159
|
registry.register_use_case("security", "intrusion_detection", IntrusionUseCase)
|
159
160
|
|
161
|
+
# Register proximity detection use case
|
162
|
+
registry.register_use_case("security", "proximity_detection", ProximityUseCase)
|
163
|
+
|
160
164
|
# Register customer service use case
|
161
165
|
registry.register_use_case("sales", "customer_service", CustomerServiceUseCase)
|
162
166
|
|
@@ -340,8 +344,8 @@ class PostProcessor:
|
|
340
344
|
elif isinstance(use_case, ChickenPoseDetectionUseCase):
|
341
345
|
result = use_case.process(data, parsed_config, context, stream_info)
|
342
346
|
elif isinstance(use_case, FlareAnalysisUseCase):
|
343
|
-
result = use_case.process(data, parsed_config,input_bytes, context, stream_info)
|
344
|
-
elif isinstance(use_case,LicensePlateUseCase):
|
347
|
+
result = use_case.process(data, parsed_config, input_bytes, context, stream_info)
|
348
|
+
elif isinstance(use_case, LicensePlateUseCase):
|
345
349
|
result = use_case.process(data, parsed_config, context, stream_info)
|
346
350
|
elif isinstance(use_case, CropWeedDetectionUseCase):
|
347
351
|
result = use_case.process(data, parsed_config, context, stream_info)
|
@@ -7,6 +7,7 @@ post-processing scenarios.
|
|
7
7
|
|
8
8
|
from .people_counting import PeopleCountingUseCase, PeopleCountingConfig
|
9
9
|
from .intrusion_detection import IntrusionUseCase, IntrusionConfig
|
10
|
+
from .proximity_detection import ProximityUseCase, ProximityConfig
|
10
11
|
from .customer_service import CustomerServiceUseCase, CustomerServiceConfig
|
11
12
|
from .advanced_customer_service import AdvancedCustomerServiceUseCase
|
12
13
|
from .basic_counting_tracking import BasicCountingTrackingUseCase
|
@@ -86,6 +87,7 @@ from .Histopathological_Cancer_Detection_img import HistopathologicalCancerDetec
|
|
86
87
|
__all__ = [
|
87
88
|
'PeopleCountingUseCase',
|
88
89
|
'IntrusionUseCase',
|
90
|
+
'ProximityUseCase',
|
89
91
|
'CustomerServiceUseCase',
|
90
92
|
'AdvancedCustomerServiceUseCase',
|
91
93
|
'BasicCountingTrackingUseCase',
|
@@ -157,6 +159,7 @@ __all__ = [
|
|
157
159
|
|
158
160
|
'PeopleCountingConfig',
|
159
161
|
'IntrusionConfig',
|
162
|
+
'ProximityConfig',
|
160
163
|
'ParkingSpaceConfig',
|
161
164
|
'CustomerServiceConfig',
|
162
165
|
'AdvancedCustomerServiceConfig',
|
@@ -554,14 +554,14 @@ class IntrusionUseCase(BaseProcessor):
|
|
554
554
|
return zone_count
|
555
555
|
else:
|
556
556
|
return 0
|
557
|
-
human_text_lines.append(f"\t-
|
557
|
+
human_text_lines.append(f"\t- Person detected in Prohibited Boarding Gate: {total_people}")
|
558
558
|
human_text_lines.append("")
|
559
559
|
human_text_lines.append(f"TOTAL SINCE @ {start_timestamp}:")
|
560
560
|
|
561
561
|
for zone_name, zone_count in zone_analysis.items():
|
562
562
|
zone_total = robust_zone_total(zone_count)
|
563
563
|
human_text_lines.append(f"\t- Zone name: {zone_name}")
|
564
|
-
human_text_lines.append(f"\t\t\t- Total
|
564
|
+
human_text_lines.append(f"\t\t\t- Total person detected in Prohibited Boarding Gate: {zone_total-1}")
|
565
565
|
# human_text_lines.append(f"\t\t- Total count in Prohibited Boarding Gate: {zone_total-1}")
|
566
566
|
|
567
567
|
|
@@ -1485,7 +1485,7 @@ class IntrusionUseCase(BaseProcessor):
|
|
1485
1485
|
"person_categories": {
|
1486
1486
|
"type": "array",
|
1487
1487
|
"items": {"type": "string"},
|
1488
|
-
"default": ["person"
|
1488
|
+
"default": ["person"],
|
1489
1489
|
"description": "Category names that represent people"
|
1490
1490
|
},
|
1491
1491
|
"enable_unique_counting": {
|
@@ -1547,7 +1547,7 @@ class IntrusionUseCase(BaseProcessor):
|
|
1547
1547
|
"enable_analytics": True,
|
1548
1548
|
"enable_unique_counting": True,
|
1549
1549
|
"time_window_minutes": 60,
|
1550
|
-
"person_categories": ["person"
|
1550
|
+
"person_categories": ["person"],
|
1551
1551
|
}
|
1552
1552
|
defaults.update(overrides)
|
1553
1553
|
return IntrusionConfig(**defaults)
|