matrice 1.0.99133__tar.gz → 1.0.99134__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.99133/src/matrice.egg-info → matrice-1.0.99134}/PKG-INFO +1 -1
- {matrice-1.0.99133 → matrice-1.0.99134}/setup.py +1 -1
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/flare_analysis.py +66 -29
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/traffic_sign_monitoring.py +38 -16
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/weapon_detection.py +38 -13
- {matrice-1.0.99133 → matrice-1.0.99134/src/matrice.egg-info}/PKG-INFO +1 -1
- {matrice-1.0.99133 → matrice-1.0.99134}/LICENSE.txt +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/README.md +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/setup.cfg +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/action.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/actionTracker.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/action_tracker.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/annotation.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/app_store.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/application.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/compute.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/compute_manager/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/compute_manager/action_instance.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/compute_manager/actions_manager.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/compute_manager/actions_scaledown_manager.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/compute_manager/instance_manager.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/compute_manager/instance_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/compute_manager/prechecks.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/compute_manager/resources_tracker.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/compute_manager/scaling.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/compute_manager/shutdown_manager.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/compute_manager/task_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/base.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/bit_depth_reduction.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/blur.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/brightness_contrast.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/color_jitter.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/compression_artifacts.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/downscale_upscale.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/film_grain.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/flip.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/fog.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/horizontal_flip.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/hsv.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/iso_noise.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/low_light.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/posterize.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/rain.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/random_affine.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/salt_pepper.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/shadows.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/snow.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/speckle.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/strategies/sunflare.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/client.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/client_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/create_dataset.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_augmentation.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_augmentor.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_formats/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_formats/imagenet_classification.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_formats/labelbox_classification.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_formats/labelbox_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_formats/mscoco_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_formats/pascalvoc_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_formats/unlabelled.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_formats/video_davis_segmentation.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_formats/video_detection_mscoco.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_formats/video_imagenet_classification.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_formats/video_kinetics_activity_recognition.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_formats/video_mot_tracking.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_formats/video_mscoco_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_formats/video_youtube_bb_tracking.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_formats/yolo_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_labelling.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_prep.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_processor.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/image_augmentations.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/image_data_augmentation.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/new_data_augmentation.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/pipeline.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/server.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/server_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/video_server.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/dataset.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/aggregator/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/aggregator/aggregator.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/aggregator/ingestor.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/aggregator/pipeline.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/aggregator/publisher.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/aggregator/synchronizer.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/client/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/client/auto_streaming/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/client/auto_streaming/auto_streaming.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/client/auto_streaming/auto_streaming_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/client/client.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/client/client_stream_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/client/client_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/client/frame_comparators.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/client/streaming_gateway/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/client/streaming_gateway/streaming_gateway.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/client/streaming_gateway/streaming_gateway_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/client/streaming_gateway/streaming_results_handler.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/server/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/server/inference/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/server/inference/batch_manager.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/server/inference/cache_manager.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/server/inference/inference_interface.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/server/inference/model_manager.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/server/inference/triton_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/server/proxy/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/server/proxy/proxy_interface.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/server/proxy/proxy_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/server/server.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/server/stream_worker.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/boundary_drawing_internal/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/boundary_drawing_internal/boundary_drawing_internal.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/boundary_drawing_internal/boundary_drawing_tool.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/boundary_drawing_internal/example_usage.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/kafka_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/advanced_tracker/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/advanced_tracker/base.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/advanced_tracker/config.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/advanced_tracker/kalman_filter.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/advanced_tracker/matching.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/advanced_tracker/strack.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/advanced_tracker/tracker.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/config.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/core/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/core/base.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/core/config.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/core/config_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/processor.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/test_cases/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/test_cases/run_tests.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/test_cases/test_advanced_customer_service.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/test_cases/test_basic_counting_tracking.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/test_cases/test_comprehensive.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/test_cases/test_config.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/test_cases/test_customer_service.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/test_cases/test_data_generators.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/test_cases/test_people_counting.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/test_cases/test_processor.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/test_cases/test_utilities.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/test_cases/test_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/advanced_customer_service.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/age_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/anti_spoofing_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/assembly_line_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/banana_defect_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/basic_counting_tracking.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/blood_cancer_detection_img.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/car_damage_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/car_part_segmentation.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/chicken_pose_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/child_monitoring.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/color_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/color_map_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/concrete_crack_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/crop_weed_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/customer_service.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/defect_detection_products.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/distracted_driver_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/emergency_vehicle_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/face_emotion.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/fashion_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/field_mapping.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/fire_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/flower_segmentation.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/gender_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/leaf.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/leaf_disease.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/license_plate_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/mask_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/parking.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/parking_space_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/pedestrian_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/people_counting.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/plaque_segmentation_img.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/pothole_segmentation.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/ppe_compliance.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/price_tag_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/road_lane_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/shelf_inventory_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/shoplifting_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/shopping_cart_analysis.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/skin_cancer_classification_img.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/solar_panel.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/template_usecase.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/theft_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/underwater_pollution_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/vehicle_monitoring.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/warehouse_object_segmentation.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/weld_defect_detection.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/windmill_maintenance.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/usecases/wound_segmentation.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/utils/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/utils/advanced_counting_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/utils/advanced_helper_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/utils/advanced_tracking_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/utils/alerting_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/utils/category_mapping_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/utils/color_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/utils/counting_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/utils/filter_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/utils/format_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/utils/geometry_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/utils/smoothing_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/utils/post_processing/utils/tracking_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deployment/__init__.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deployment/camera_manager.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deployment/deployment.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deployment/inference_pipeline.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deployment/streaming_gateway_manager.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/docker_utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/drift_monitor.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/exported_model.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/local_test.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/metrics_calculator.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/metrics_calculator_oop.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/model_store.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/models.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/pipeline.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/projects.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/rpc.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/scaling.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/session.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/testing.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/token_auth.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/utils.py +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice.egg-info/SOURCES.txt +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice.egg-info/dependency_links.txt +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice.egg-info/requires.txt +0 -0
- {matrice-1.0.99133 → matrice-1.0.99134}/src/matrice.egg-info/top_level.txt +0 -0
@@ -182,53 +182,90 @@ class FlareAnalysisUseCase(BaseProcessor):
|
|
182
182
|
return {cat: len(ids) for cat, ids in self._per_category_total_track_ids.items()}
|
183
183
|
|
184
184
|
def _format_timestamp_for_video(self, timestamp: float) -> str:
|
185
|
+
"""Format timestamp for video chunks (HH:MM:SS.ms format)."""
|
185
186
|
hours = int(timestamp // 3600)
|
186
187
|
minutes = int((timestamp % 3600) // 60)
|
187
|
-
seconds = timestamp % 60
|
188
|
-
return f"{hours:02d}:{minutes:02d}:{seconds
|
188
|
+
seconds = round(float(timestamp % 60),2)
|
189
|
+
return f"{hours:02d}:{minutes:02d}:{seconds:.1f}"
|
189
190
|
|
190
191
|
def _format_timestamp_for_stream(self, timestamp: float, precision: bool = False) -> str:
|
191
192
|
dt = datetime.fromtimestamp(timestamp, tz=timezone.utc)
|
192
193
|
return dt.strftime("%Y-%m-%d-%H:%M:%S.%f UTC" if precision else "%Y:%m:%d %H:%M:%S")
|
193
194
|
|
194
|
-
def _get_current_timestamp_str(self, stream_info: Optional[Dict[str, Any]], precision:
|
195
|
+
def _get_current_timestamp_str(self, stream_info: Optional[Dict[str, Any]], precision=False, frame_id: Optional[str]=None) -> str:
|
196
|
+
"""Get formatted current timestamp based on stream type."""
|
195
197
|
if not stream_info:
|
196
|
-
return "00:00:00.00"
|
197
|
-
|
198
|
-
|
199
|
-
|
198
|
+
return "00:00:00.00"
|
199
|
+
# is_video_chunk = stream_info.get("input_settings", {}).get("is_video_chunk", False)
|
200
|
+
if precision:
|
201
|
+
if stream_info.get("input_settings", {}).get("start_frame", "na") != "na":
|
202
|
+
if frame_id:
|
203
|
+
start_time = int(frame_id)/stream_info.get("input_settings", {}).get("original_fps", 30)
|
204
|
+
else:
|
205
|
+
start_time = stream_info.get("input_settings", {}).get("start_frame", 30)/stream_info.get("input_settings", {}).get("original_fps", 30)
|
206
|
+
stream_time_str = self._format_timestamp_for_video(start_time)
|
207
|
+
return stream_time_str
|
208
|
+
else:
|
209
|
+
return datetime.now(timezone.utc).strftime("%Y-%m-%d-%H:%M:%S.%f UTC")
|
210
|
+
|
211
|
+
if stream_info.get("input_settings", {}).get("start_frame", "na") != "na":
|
212
|
+
if frame_id:
|
213
|
+
start_time = int(frame_id)/stream_info.get("input_settings", {}).get("original_fps", 30)
|
214
|
+
else:
|
215
|
+
start_time = stream_info.get("input_settings", {}).get("start_frame", 30)/stream_info.get("input_settings", {}).get("original_fps", 30)
|
216
|
+
stream_time_str = self._format_timestamp_for_video(start_time)
|
217
|
+
return stream_time_str
|
200
218
|
else:
|
201
|
-
|
219
|
+
# For streams, use stream_time from stream_info
|
220
|
+
stream_time_str = stream_info.get("input_settings", {}).get("stream_info", {}).get("stream_time", "")
|
202
221
|
if stream_time_str:
|
222
|
+
# Parse the high precision timestamp string to get timestamp
|
203
223
|
try:
|
224
|
+
# Remove " UTC" suffix and parse
|
204
225
|
timestamp_str = stream_time_str.replace(" UTC", "")
|
205
226
|
dt = datetime.strptime(timestamp_str, "%Y-%m-%d-%H:%M:%S.%f")
|
206
227
|
timestamp = dt.replace(tzinfo=timezone.utc).timestamp()
|
207
|
-
return self._format_timestamp_for_stream(timestamp
|
228
|
+
return self._format_timestamp_for_stream(timestamp)
|
208
229
|
except:
|
209
|
-
|
210
|
-
|
230
|
+
# Fallback to current time if parsing fails
|
231
|
+
return self._format_timestamp_for_stream(time.time())
|
232
|
+
else:
|
233
|
+
return self._format_timestamp_for_stream(time.time())
|
211
234
|
|
212
|
-
def _get_start_timestamp_str(self, stream_info: Optional[Dict[str, Any]], precision
|
235
|
+
def _get_start_timestamp_str(self, stream_info: Optional[Dict[str, Any]], precision=False) -> str:
|
236
|
+
"""Get formatted start timestamp for 'TOTAL SINCE' based on stream type."""
|
213
237
|
if not stream_info:
|
214
|
-
return "00:00:00"
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
if self._tracking_start_time is None:
|
219
|
-
stream_time_str = stream_info.get("stream_time", "")
|
220
|
-
if stream_time_str:
|
221
|
-
try:
|
222
|
-
timestamp_str = stream_time_str.replace(" UTC", "")
|
223
|
-
dt = datetime.strptime(timestamp_str, "%Y-%m-%d-%H:%M:%S.%f")
|
224
|
-
self._tracking_start_time = dt.replace(tzinfo=timezone.utc).timestamp()
|
225
|
-
except:
|
226
|
-
self._tracking_start_time = time.time()
|
238
|
+
return "00:00:00"
|
239
|
+
if precision:
|
240
|
+
if stream_info.get("input_settings", {}).get("start_frame", "na") != "na":
|
241
|
+
return "00:00:00"
|
227
242
|
else:
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
243
|
+
return datetime.now(timezone.utc).strftime("%Y-%m-%d-%H:%M:%S.%f UTC")
|
244
|
+
|
245
|
+
if stream_info.get("input_settings", {}).get("start_frame", "na") != "na":
|
246
|
+
# If video format, start from 00:00:00
|
247
|
+
return "00:00:00"
|
248
|
+
else:
|
249
|
+
# For streams, use tracking start time or current time with minutes/seconds reset
|
250
|
+
if self._tracking_start_time is None:
|
251
|
+
# Try to extract timestamp from stream_time string
|
252
|
+
stream_time_str = stream_info.get("input_settings", {}).get("stream_info", {}).get("stream_time", "")
|
253
|
+
if stream_time_str:
|
254
|
+
try:
|
255
|
+
# Remove " UTC" suffix and parse
|
256
|
+
timestamp_str = stream_time_str.replace(" UTC", "")
|
257
|
+
dt = datetime.strptime(timestamp_str, "%Y-%m-%d-%H:%M:%S.%f")
|
258
|
+
self._tracking_start_time = dt.replace(tzinfo=timezone.utc).timestamp()
|
259
|
+
except:
|
260
|
+
# Fallback to current time if parsing fails
|
261
|
+
self._tracking_start_time = time.time()
|
262
|
+
else:
|
263
|
+
self._tracking_start_time = time.time()
|
264
|
+
|
265
|
+
dt = datetime.fromtimestamp(self._tracking_start_time, tz=timezone.utc)
|
266
|
+
# Reset minutes and seconds to 00:00 for "TOTAL SINCE" format
|
267
|
+
dt = dt.replace(minute=0, second=0, microsecond=0)
|
268
|
+
return dt.strftime('%Y:%m:%d %H:%M:%S')
|
232
269
|
|
233
270
|
def _get_track_ids_info(self, detections: List[Dict]) -> Dict[str, Any]:
|
234
271
|
frame_track_ids = set(det.get('track_id') for det in detections if det.get('track_id') is not None)
|
@@ -514,67 +514,89 @@ class TrafficSignMonitoringUseCase(BaseProcessor):
|
|
514
514
|
return {cat: len(ids) for cat, ids in getattr(self, '_per_category_total_track_ids', {}).items()}
|
515
515
|
|
516
516
|
def _format_timestamp_for_video(self, timestamp: float) -> str:
|
517
|
-
"""Format timestamp for video chunks."""
|
517
|
+
"""Format timestamp for video chunks (HH:MM:SS.ms format)."""
|
518
518
|
hours = int(timestamp // 3600)
|
519
519
|
minutes = int((timestamp % 3600) // 60)
|
520
|
-
seconds = timestamp % 60
|
521
|
-
return f"{hours:02d}:{minutes:02d}:{seconds
|
520
|
+
seconds = round(float(timestamp % 60),2)
|
521
|
+
return f"{hours:02d}:{minutes:02d}:{seconds:.1f}"
|
522
522
|
|
523
523
|
def _format_timestamp_for_stream(self, timestamp: float) -> str:
|
524
524
|
"""Format timestamp for streams."""
|
525
525
|
dt = datetime.fromtimestamp(timestamp, tz=timezone.utc)
|
526
526
|
return dt.strftime('%Y:%m:%d %H:%M:%S')
|
527
527
|
|
528
|
-
def _get_current_timestamp_str(self, stream_info: Optional[Dict[str, Any]], precision=False) -> str:
|
529
|
-
"""Get formatted current timestamp."""
|
528
|
+
def _get_current_timestamp_str(self, stream_info: Optional[Dict[str, Any]], precision=False, frame_id: Optional[str]=None) -> str:
|
529
|
+
"""Get formatted current timestamp based on stream type."""
|
530
530
|
if not stream_info:
|
531
531
|
return "00:00:00.00"
|
532
|
+
# is_video_chunk = stream_info.get("input_settings", {}).get("is_video_chunk", False)
|
532
533
|
if precision:
|
533
|
-
if stream_info.get("input_settings", {}).get("
|
534
|
-
|
535
|
-
|
534
|
+
if stream_info.get("input_settings", {}).get("start_frame", "na") != "na":
|
535
|
+
if frame_id:
|
536
|
+
start_time = int(frame_id)/stream_info.get("input_settings", {}).get("original_fps", 30)
|
537
|
+
else:
|
538
|
+
start_time = stream_info.get("input_settings", {}).get("start_frame", 30)/stream_info.get("input_settings", {}).get("original_fps", 30)
|
539
|
+
stream_time_str = self._format_timestamp_for_video(start_time)
|
540
|
+
return stream_time_str
|
536
541
|
else:
|
537
542
|
return datetime.now(timezone.utc).strftime("%Y-%m-%d-%H:%M:%S.%f UTC")
|
538
|
-
|
539
|
-
|
540
|
-
|
543
|
+
|
544
|
+
if stream_info.get("input_settings", {}).get("start_frame", "na") != "na":
|
545
|
+
if frame_id:
|
546
|
+
start_time = int(frame_id)/stream_info.get("input_settings", {}).get("original_fps", 30)
|
547
|
+
else:
|
548
|
+
start_time = stream_info.get("input_settings", {}).get("start_frame", 30)/stream_info.get("input_settings", {}).get("original_fps", 30)
|
549
|
+
stream_time_str = self._format_timestamp_for_video(start_time)
|
550
|
+
return stream_time_str
|
541
551
|
else:
|
542
|
-
|
552
|
+
# For streams, use stream_time from stream_info
|
553
|
+
stream_time_str = stream_info.get("input_settings", {}).get("stream_info", {}).get("stream_time", "")
|
543
554
|
if stream_time_str:
|
555
|
+
# Parse the high precision timestamp string to get timestamp
|
544
556
|
try:
|
557
|
+
# Remove " UTC" suffix and parse
|
545
558
|
timestamp_str = stream_time_str.replace(" UTC", "")
|
546
559
|
dt = datetime.strptime(timestamp_str, "%Y-%m-%d-%H:%M:%S.%f")
|
547
560
|
timestamp = dt.replace(tzinfo=timezone.utc).timestamp()
|
548
561
|
return self._format_timestamp_for_stream(timestamp)
|
549
562
|
except:
|
563
|
+
# Fallback to current time if parsing fails
|
550
564
|
return self._format_timestamp_for_stream(time.time())
|
551
565
|
else:
|
552
566
|
return self._format_timestamp_for_stream(time.time())
|
553
567
|
|
554
568
|
def _get_start_timestamp_str(self, stream_info: Optional[Dict[str, Any]], precision=False) -> str:
|
555
|
-
"""Get formatted start timestamp."""
|
569
|
+
"""Get formatted start timestamp for 'TOTAL SINCE' based on stream type."""
|
556
570
|
if not stream_info:
|
557
571
|
return "00:00:00"
|
558
572
|
if precision:
|
559
|
-
if stream_info.get("input_settings", {}).get("
|
573
|
+
if stream_info.get("input_settings", {}).get("start_frame", "na") != "na":
|
560
574
|
return "00:00:00"
|
561
575
|
else:
|
562
576
|
return datetime.now(timezone.utc).strftime("%Y-%m-%d-%H:%M:%S.%f UTC")
|
563
|
-
|
577
|
+
|
578
|
+
if stream_info.get("input_settings", {}).get("start_frame", "na") != "na":
|
579
|
+
# If video format, start from 00:00:00
|
564
580
|
return "00:00:00"
|
565
581
|
else:
|
582
|
+
# For streams, use tracking start time or current time with minutes/seconds reset
|
566
583
|
if self._tracking_start_time is None:
|
567
|
-
|
584
|
+
# Try to extract timestamp from stream_time string
|
585
|
+
stream_time_str = stream_info.get("input_settings", {}).get("stream_info", {}).get("stream_time", "")
|
568
586
|
if stream_time_str:
|
569
587
|
try:
|
588
|
+
# Remove " UTC" suffix and parse
|
570
589
|
timestamp_str = stream_time_str.replace(" UTC", "")
|
571
590
|
dt = datetime.strptime(timestamp_str, "%Y-%m-%d-%H:%M:%S.%f")
|
572
591
|
self._tracking_start_time = dt.replace(tzinfo=timezone.utc).timestamp()
|
573
592
|
except:
|
593
|
+
# Fallback to current time if parsing fails
|
574
594
|
self._tracking_start_time = time.time()
|
575
595
|
else:
|
576
596
|
self._tracking_start_time = time.time()
|
597
|
+
|
577
598
|
dt = datetime.fromtimestamp(self._tracking_start_time, tz=timezone.utc)
|
599
|
+
# Reset minutes and seconds to 00:00 for "TOTAL SINCE" format
|
578
600
|
dt = dt.replace(minute=0, second=0, microsecond=0)
|
579
601
|
return dt.strftime('%Y:%m:%d %H:%M:%S')
|
580
602
|
|
@@ -426,63 +426,88 @@ class WeaponDetectionUseCase(BaseProcessor):
|
|
426
426
|
return {cat: len(ids) for cat, ids in getattr(self, '_per_category_total_track_ids', {}).items()}
|
427
427
|
|
428
428
|
def _format_timestamp_for_video(self, timestamp: float) -> str:
|
429
|
+
"""Format timestamp for video chunks (HH:MM:SS.ms format)."""
|
429
430
|
hours = int(timestamp // 3600)
|
430
431
|
minutes = int((timestamp % 3600) // 60)
|
431
|
-
seconds = timestamp % 60
|
432
|
-
return f"{hours:02d}:{minutes:02d}:{seconds
|
432
|
+
seconds = round(float(timestamp % 60),2)
|
433
|
+
return f"{hours:02d}:{minutes:02d}:{seconds:.1f}"
|
433
434
|
|
434
435
|
def _format_timestamp_for_stream(self, timestamp: float) -> str:
|
435
436
|
dt = datetime.fromtimestamp(timestamp, tz=timezone.utc)
|
436
437
|
return dt.strftime('%Y:%m:%d %H:%M:%S')
|
437
438
|
|
438
|
-
def _get_current_timestamp_str(self, stream_info: Optional[Dict[str, Any]], precision=False) -> str:
|
439
|
+
def _get_current_timestamp_str(self, stream_info: Optional[Dict[str, Any]], precision=False, frame_id: Optional[str]=None) -> str:
|
440
|
+
"""Get formatted current timestamp based on stream type."""
|
439
441
|
if not stream_info:
|
440
442
|
return "00:00:00.00"
|
443
|
+
# is_video_chunk = stream_info.get("input_settings", {}).get("is_video_chunk", False)
|
441
444
|
if precision:
|
442
|
-
if stream_info.get("input_settings", {}).get("
|
443
|
-
|
444
|
-
|
445
|
+
if stream_info.get("input_settings", {}).get("start_frame", "na") != "na":
|
446
|
+
if frame_id:
|
447
|
+
start_time = int(frame_id)/stream_info.get("input_settings", {}).get("original_fps", 30)
|
448
|
+
else:
|
449
|
+
start_time = stream_info.get("input_settings", {}).get("start_frame", 30)/stream_info.get("input_settings", {}).get("original_fps", 30)
|
450
|
+
stream_time_str = self._format_timestamp_for_video(start_time)
|
451
|
+
return stream_time_str
|
445
452
|
else:
|
446
453
|
return datetime.now(timezone.utc).strftime("%Y-%m-%d-%H:%M:%S.%f UTC")
|
447
|
-
|
448
|
-
|
449
|
-
|
454
|
+
|
455
|
+
if stream_info.get("input_settings", {}).get("start_frame", "na") != "na":
|
456
|
+
if frame_id:
|
457
|
+
start_time = int(frame_id)/stream_info.get("input_settings", {}).get("original_fps", 30)
|
458
|
+
else:
|
459
|
+
start_time = stream_info.get("input_settings", {}).get("start_frame", 30)/stream_info.get("input_settings", {}).get("original_fps", 30)
|
460
|
+
stream_time_str = self._format_timestamp_for_video(start_time)
|
461
|
+
return stream_time_str
|
450
462
|
else:
|
451
|
-
|
463
|
+
# For streams, use stream_time from stream_info
|
464
|
+
stream_time_str = stream_info.get("input_settings", {}).get("stream_info", {}).get("stream_time", "")
|
452
465
|
if stream_time_str:
|
466
|
+
# Parse the high precision timestamp string to get timestamp
|
453
467
|
try:
|
468
|
+
# Remove " UTC" suffix and parse
|
454
469
|
timestamp_str = stream_time_str.replace(" UTC", "")
|
455
470
|
dt = datetime.strptime(timestamp_str, "%Y-%m-%d-%H:%M:%S.%f")
|
456
471
|
timestamp = dt.replace(tzinfo=timezone.utc).timestamp()
|
457
472
|
return self._format_timestamp_for_stream(timestamp)
|
458
473
|
except:
|
474
|
+
# Fallback to current time if parsing fails
|
459
475
|
return self._format_timestamp_for_stream(time.time())
|
460
476
|
else:
|
461
477
|
return self._format_timestamp_for_stream(time.time())
|
462
478
|
|
463
479
|
def _get_start_timestamp_str(self, stream_info: Optional[Dict[str, Any]], precision=False) -> str:
|
480
|
+
"""Get formatted start timestamp for 'TOTAL SINCE' based on stream type."""
|
464
481
|
if not stream_info:
|
465
482
|
return "00:00:00"
|
466
483
|
if precision:
|
467
|
-
if stream_info.get("input_settings", {}).get("
|
484
|
+
if stream_info.get("input_settings", {}).get("start_frame", "na") != "na":
|
468
485
|
return "00:00:00"
|
469
486
|
else:
|
470
487
|
return datetime.now(timezone.utc).strftime("%Y-%m-%d-%H:%M:%S.%f UTC")
|
471
|
-
|
488
|
+
|
489
|
+
if stream_info.get("input_settings", {}).get("start_frame", "na") != "na":
|
490
|
+
# If video format, start from 00:00:00
|
472
491
|
return "00:00:00"
|
473
492
|
else:
|
493
|
+
# For streams, use tracking start time or current time with minutes/seconds reset
|
474
494
|
if self._tracking_start_time is None:
|
475
|
-
|
495
|
+
# Try to extract timestamp from stream_time string
|
496
|
+
stream_time_str = stream_info.get("input_settings", {}).get("stream_info", {}).get("stream_time", "")
|
476
497
|
if stream_time_str:
|
477
498
|
try:
|
499
|
+
# Remove " UTC" suffix and parse
|
478
500
|
timestamp_str = stream_time_str.replace(" UTC", "")
|
479
501
|
dt = datetime.strptime(timestamp_str, "%Y-%m-%d-%H:%M:%S.%f")
|
480
502
|
self._tracking_start_time = dt.replace(tzinfo=timezone.utc).timestamp()
|
481
503
|
except:
|
504
|
+
# Fallback to current time if parsing fails
|
482
505
|
self._tracking_start_time = time.time()
|
483
506
|
else:
|
484
507
|
self._tracking_start_time = time.time()
|
508
|
+
|
485
509
|
dt = datetime.fromtimestamp(self._tracking_start_time, tz=timezone.utc)
|
510
|
+
# Reset minutes and seconds to 00:00 for "TOTAL SINCE" format
|
486
511
|
dt = dt.replace(minute=0, second=0, microsecond=0)
|
487
512
|
return dt.strftime('%Y:%m:%d %H:%M:%S')
|
488
513
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/compute_manager/actions_scaledown_manager.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/__init__.py
RENAMED
File without changes
|
{matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/augmentation_utils/base.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_formats/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_formats/mscoco_detection.py
RENAMED
File without changes
|
File without changes
|
{matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_formats/unlabelled.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/data_formats/yolo_detection.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/image_data_augmentation.py
RENAMED
File without changes
|
{matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/data_processing/new_data_augmentation.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/client/auto_streaming/__init__.py
RENAMED
File without changes
|
{matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/client/auto_streaming/auto_streaming.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{matrice-1.0.99133 → matrice-1.0.99134}/src/matrice/deploy/client/streaming_gateway/__init__.py
RENAMED
File without changes
|