matrice-analytics 0.1.2__py3-none-any.whl
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.
Potentially problematic release.
This version of matrice-analytics might be problematic. Click here for more details.
- matrice_analytics/__init__.py +28 -0
- matrice_analytics/boundary_drawing_internal/README.md +305 -0
- matrice_analytics/boundary_drawing_internal/__init__.py +45 -0
- matrice_analytics/boundary_drawing_internal/boundary_drawing_internal.py +1207 -0
- matrice_analytics/boundary_drawing_internal/boundary_drawing_tool.py +429 -0
- matrice_analytics/boundary_drawing_internal/boundary_tool_template.html +1036 -0
- matrice_analytics/boundary_drawing_internal/data/.gitignore +12 -0
- matrice_analytics/boundary_drawing_internal/example_usage.py +206 -0
- matrice_analytics/boundary_drawing_internal/usage/README.md +110 -0
- matrice_analytics/boundary_drawing_internal/usage/boundary_drawer_launcher.py +102 -0
- matrice_analytics/boundary_drawing_internal/usage/simple_boundary_launcher.py +107 -0
- matrice_analytics/post_processing/README.md +455 -0
- matrice_analytics/post_processing/__init__.py +732 -0
- matrice_analytics/post_processing/advanced_tracker/README.md +650 -0
- matrice_analytics/post_processing/advanced_tracker/__init__.py +17 -0
- matrice_analytics/post_processing/advanced_tracker/base.py +99 -0
- matrice_analytics/post_processing/advanced_tracker/config.py +77 -0
- matrice_analytics/post_processing/advanced_tracker/kalman_filter.py +370 -0
- matrice_analytics/post_processing/advanced_tracker/matching.py +195 -0
- matrice_analytics/post_processing/advanced_tracker/strack.py +230 -0
- matrice_analytics/post_processing/advanced_tracker/tracker.py +367 -0
- matrice_analytics/post_processing/config.py +142 -0
- matrice_analytics/post_processing/core/__init__.py +63 -0
- matrice_analytics/post_processing/core/base.py +704 -0
- matrice_analytics/post_processing/core/config.py +3188 -0
- matrice_analytics/post_processing/core/config_utils.py +925 -0
- matrice_analytics/post_processing/face_reg/__init__.py +43 -0
- matrice_analytics/post_processing/face_reg/compare_similarity.py +556 -0
- matrice_analytics/post_processing/face_reg/embedding_manager.py +681 -0
- matrice_analytics/post_processing/face_reg/face_recognition.py +1870 -0
- matrice_analytics/post_processing/face_reg/face_recognition_client.py +339 -0
- matrice_analytics/post_processing/face_reg/people_activity_logging.py +283 -0
- matrice_analytics/post_processing/ocr/__init__.py +0 -0
- matrice_analytics/post_processing/ocr/easyocr_extractor.py +248 -0
- matrice_analytics/post_processing/ocr/postprocessing.py +271 -0
- matrice_analytics/post_processing/ocr/preprocessing.py +52 -0
- matrice_analytics/post_processing/post_processor.py +1153 -0
- matrice_analytics/post_processing/test_cases/__init__.py +1 -0
- matrice_analytics/post_processing/test_cases/run_tests.py +143 -0
- matrice_analytics/post_processing/test_cases/test_advanced_customer_service.py +841 -0
- matrice_analytics/post_processing/test_cases/test_basic_counting_tracking.py +523 -0
- matrice_analytics/post_processing/test_cases/test_comprehensive.py +531 -0
- matrice_analytics/post_processing/test_cases/test_config.py +852 -0
- matrice_analytics/post_processing/test_cases/test_customer_service.py +585 -0
- matrice_analytics/post_processing/test_cases/test_data_generators.py +583 -0
- matrice_analytics/post_processing/test_cases/test_people_counting.py +510 -0
- matrice_analytics/post_processing/test_cases/test_processor.py +524 -0
- matrice_analytics/post_processing/test_cases/test_utilities.py +356 -0
- matrice_analytics/post_processing/test_cases/test_utils.py +743 -0
- matrice_analytics/post_processing/usecases/Histopathological_Cancer_Detection_img.py +604 -0
- matrice_analytics/post_processing/usecases/__init__.py +267 -0
- matrice_analytics/post_processing/usecases/abandoned_object_detection.py +797 -0
- matrice_analytics/post_processing/usecases/advanced_customer_service.py +1601 -0
- matrice_analytics/post_processing/usecases/age_detection.py +842 -0
- matrice_analytics/post_processing/usecases/age_gender_detection.py +1043 -0
- matrice_analytics/post_processing/usecases/anti_spoofing_detection.py +656 -0
- matrice_analytics/post_processing/usecases/assembly_line_detection.py +841 -0
- matrice_analytics/post_processing/usecases/banana_defect_detection.py +624 -0
- matrice_analytics/post_processing/usecases/basic_counting_tracking.py +667 -0
- matrice_analytics/post_processing/usecases/blood_cancer_detection_img.py +881 -0
- matrice_analytics/post_processing/usecases/car_damage_detection.py +834 -0
- matrice_analytics/post_processing/usecases/car_part_segmentation.py +946 -0
- matrice_analytics/post_processing/usecases/car_service.py +1601 -0
- matrice_analytics/post_processing/usecases/cardiomegaly_classification.py +864 -0
- matrice_analytics/post_processing/usecases/cell_microscopy_segmentation.py +897 -0
- matrice_analytics/post_processing/usecases/chicken_pose_detection.py +648 -0
- matrice_analytics/post_processing/usecases/child_monitoring.py +814 -0
- matrice_analytics/post_processing/usecases/color/clip.py +232 -0
- matrice_analytics/post_processing/usecases/color/clip_processor/merges.txt +48895 -0
- matrice_analytics/post_processing/usecases/color/clip_processor/preprocessor_config.json +28 -0
- matrice_analytics/post_processing/usecases/color/clip_processor/special_tokens_map.json +30 -0
- matrice_analytics/post_processing/usecases/color/clip_processor/tokenizer.json +245079 -0
- matrice_analytics/post_processing/usecases/color/clip_processor/tokenizer_config.json +32 -0
- matrice_analytics/post_processing/usecases/color/clip_processor/vocab.json +1 -0
- matrice_analytics/post_processing/usecases/color/color_map_utils.py +70 -0
- matrice_analytics/post_processing/usecases/color/color_mapper.py +468 -0
- matrice_analytics/post_processing/usecases/color_detection.py +1835 -0
- matrice_analytics/post_processing/usecases/color_map_utils.py +70 -0
- matrice_analytics/post_processing/usecases/concrete_crack_detection.py +827 -0
- matrice_analytics/post_processing/usecases/crop_weed_detection.py +781 -0
- matrice_analytics/post_processing/usecases/customer_service.py +1008 -0
- matrice_analytics/post_processing/usecases/defect_detection_products.py +936 -0
- matrice_analytics/post_processing/usecases/distracted_driver_detection.py +822 -0
- matrice_analytics/post_processing/usecases/drone_traffic_monitoring.py +930 -0
- matrice_analytics/post_processing/usecases/drowsy_driver_detection.py +829 -0
- matrice_analytics/post_processing/usecases/dwell_detection.py +829 -0
- matrice_analytics/post_processing/usecases/emergency_vehicle_detection.py +827 -0
- matrice_analytics/post_processing/usecases/face_emotion.py +813 -0
- matrice_analytics/post_processing/usecases/face_recognition.py +827 -0
- matrice_analytics/post_processing/usecases/fashion_detection.py +835 -0
- matrice_analytics/post_processing/usecases/field_mapping.py +902 -0
- matrice_analytics/post_processing/usecases/fire_detection.py +1112 -0
- matrice_analytics/post_processing/usecases/flare_analysis.py +891 -0
- matrice_analytics/post_processing/usecases/flower_segmentation.py +1006 -0
- matrice_analytics/post_processing/usecases/gas_leak_detection.py +837 -0
- matrice_analytics/post_processing/usecases/gender_detection.py +832 -0
- matrice_analytics/post_processing/usecases/human_activity_recognition.py +871 -0
- matrice_analytics/post_processing/usecases/intrusion_detection.py +1672 -0
- matrice_analytics/post_processing/usecases/leaf.py +821 -0
- matrice_analytics/post_processing/usecases/leaf_disease.py +840 -0
- matrice_analytics/post_processing/usecases/leak_detection.py +837 -0
- matrice_analytics/post_processing/usecases/license_plate_detection.py +914 -0
- matrice_analytics/post_processing/usecases/license_plate_monitoring.py +1194 -0
- matrice_analytics/post_processing/usecases/litter_monitoring.py +717 -0
- matrice_analytics/post_processing/usecases/mask_detection.py +869 -0
- matrice_analytics/post_processing/usecases/natural_disaster.py +907 -0
- matrice_analytics/post_processing/usecases/parking.py +787 -0
- matrice_analytics/post_processing/usecases/parking_space_detection.py +822 -0
- matrice_analytics/post_processing/usecases/pcb_defect_detection.py +888 -0
- matrice_analytics/post_processing/usecases/pedestrian_detection.py +808 -0
- matrice_analytics/post_processing/usecases/people_counting.py +1728 -0
- matrice_analytics/post_processing/usecases/people_tracking.py +1842 -0
- matrice_analytics/post_processing/usecases/pipeline_detection.py +605 -0
- matrice_analytics/post_processing/usecases/plaque_segmentation_img.py +874 -0
- matrice_analytics/post_processing/usecases/pothole_segmentation.py +915 -0
- matrice_analytics/post_processing/usecases/ppe_compliance.py +645 -0
- matrice_analytics/post_processing/usecases/price_tag_detection.py +822 -0
- matrice_analytics/post_processing/usecases/proximity_detection.py +1901 -0
- matrice_analytics/post_processing/usecases/road_lane_detection.py +623 -0
- matrice_analytics/post_processing/usecases/road_traffic_density.py +832 -0
- matrice_analytics/post_processing/usecases/road_view_segmentation.py +915 -0
- matrice_analytics/post_processing/usecases/shelf_inventory_detection.py +583 -0
- matrice_analytics/post_processing/usecases/shoplifting_detection.py +822 -0
- matrice_analytics/post_processing/usecases/shopping_cart_analysis.py +899 -0
- matrice_analytics/post_processing/usecases/skin_cancer_classification_img.py +864 -0
- matrice_analytics/post_processing/usecases/smoker_detection.py +833 -0
- matrice_analytics/post_processing/usecases/solar_panel.py +810 -0
- matrice_analytics/post_processing/usecases/suspicious_activity_detection.py +1030 -0
- matrice_analytics/post_processing/usecases/template_usecase.py +380 -0
- matrice_analytics/post_processing/usecases/theft_detection.py +648 -0
- matrice_analytics/post_processing/usecases/traffic_sign_monitoring.py +724 -0
- matrice_analytics/post_processing/usecases/underground_pipeline_defect_detection.py +775 -0
- matrice_analytics/post_processing/usecases/underwater_pollution_detection.py +842 -0
- matrice_analytics/post_processing/usecases/vehicle_monitoring.py +950 -0
- matrice_analytics/post_processing/usecases/warehouse_object_segmentation.py +899 -0
- matrice_analytics/post_processing/usecases/waterbody_segmentation.py +923 -0
- matrice_analytics/post_processing/usecases/weapon_detection.py +771 -0
- matrice_analytics/post_processing/usecases/weld_defect_detection.py +615 -0
- matrice_analytics/post_processing/usecases/wildlife_monitoring.py +898 -0
- matrice_analytics/post_processing/usecases/windmill_maintenance.py +834 -0
- matrice_analytics/post_processing/usecases/wound_segmentation.py +856 -0
- matrice_analytics/post_processing/utils/__init__.py +150 -0
- matrice_analytics/post_processing/utils/advanced_counting_utils.py +400 -0
- matrice_analytics/post_processing/utils/advanced_helper_utils.py +317 -0
- matrice_analytics/post_processing/utils/advanced_tracking_utils.py +461 -0
- matrice_analytics/post_processing/utils/alerting_utils.py +213 -0
- matrice_analytics/post_processing/utils/category_mapping_utils.py +94 -0
- matrice_analytics/post_processing/utils/color_utils.py +592 -0
- matrice_analytics/post_processing/utils/counting_utils.py +182 -0
- matrice_analytics/post_processing/utils/filter_utils.py +261 -0
- matrice_analytics/post_processing/utils/format_utils.py +293 -0
- matrice_analytics/post_processing/utils/geometry_utils.py +300 -0
- matrice_analytics/post_processing/utils/smoothing_utils.py +358 -0
- matrice_analytics/post_processing/utils/tracking_utils.py +234 -0
- matrice_analytics/py.typed +0 -0
- matrice_analytics-0.1.2.dist-info/METADATA +481 -0
- matrice_analytics-0.1.2.dist-info/RECORD +160 -0
- matrice_analytics-0.1.2.dist-info/WHEEL +5 -0
- matrice_analytics-0.1.2.dist-info/licenses/LICENSE.txt +21 -0
- matrice_analytics-0.1.2.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Test package for post processing module
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Test runner for post-processing module tests.
|
|
4
|
+
|
|
5
|
+
This script runs all tests in the post-processing test suite and provides
|
|
6
|
+
a comprehensive summary of the results.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import sys
|
|
10
|
+
import os
|
|
11
|
+
import subprocess
|
|
12
|
+
import time
|
|
13
|
+
from pathlib import Path
|
|
14
|
+
|
|
15
|
+
# Add src to path
|
|
16
|
+
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../../src'))
|
|
17
|
+
|
|
18
|
+
def run_tests():
|
|
19
|
+
"""Run all post-processing tests and provide summary."""
|
|
20
|
+
|
|
21
|
+
print("=" * 80)
|
|
22
|
+
print("POST-PROCESSING MODULE TEST SUITE")
|
|
23
|
+
print("=" * 80)
|
|
24
|
+
print()
|
|
25
|
+
|
|
26
|
+
# Get test directory
|
|
27
|
+
test_dir = Path(__file__).parent
|
|
28
|
+
|
|
29
|
+
# Test files to run
|
|
30
|
+
test_files = [
|
|
31
|
+
"test_comprehensive.py"
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
# Check for other test files
|
|
35
|
+
other_test_files = [
|
|
36
|
+
"test_utilities.py",
|
|
37
|
+
"test_data_generators.py",
|
|
38
|
+
"test_basic_counting_tracking.py",
|
|
39
|
+
"test_config.py",
|
|
40
|
+
"test_utils.py"
|
|
41
|
+
]
|
|
42
|
+
|
|
43
|
+
available_tests = []
|
|
44
|
+
for test_file in test_files:
|
|
45
|
+
if (test_dir / test_file).exists():
|
|
46
|
+
available_tests.append(test_file)
|
|
47
|
+
|
|
48
|
+
# Check if other test files exist and work
|
|
49
|
+
for test_file in other_test_files:
|
|
50
|
+
if (test_dir / test_file).exists():
|
|
51
|
+
print(f"Note: {test_file} exists but may have compatibility issues")
|
|
52
|
+
|
|
53
|
+
print(f"Running {len(available_tests)} test file(s):")
|
|
54
|
+
for test_file in available_tests:
|
|
55
|
+
print(f" - {test_file}")
|
|
56
|
+
print()
|
|
57
|
+
|
|
58
|
+
# Run tests
|
|
59
|
+
total_passed = 0
|
|
60
|
+
total_failed = 0
|
|
61
|
+
total_time = 0
|
|
62
|
+
|
|
63
|
+
for test_file in available_tests:
|
|
64
|
+
print(f"Running {test_file}...")
|
|
65
|
+
print("-" * 60)
|
|
66
|
+
|
|
67
|
+
start_time = time.time()
|
|
68
|
+
|
|
69
|
+
# Run pytest on the specific file
|
|
70
|
+
cmd = [sys.executable, "-m", "pytest", str(test_dir / test_file), "-v"]
|
|
71
|
+
result = subprocess.run(cmd, capture_output=True, text=True)
|
|
72
|
+
|
|
73
|
+
end_time = time.time()
|
|
74
|
+
elapsed = end_time - start_time
|
|
75
|
+
total_time += elapsed
|
|
76
|
+
|
|
77
|
+
# Parse results
|
|
78
|
+
if result.returncode == 0:
|
|
79
|
+
# Extract test counts from output
|
|
80
|
+
lines = result.stdout.split('\n')
|
|
81
|
+
summary_line = [line for line in lines if 'passed' in line and '=' in line]
|
|
82
|
+
if summary_line:
|
|
83
|
+
# Extract numbers from summary like "26 passed in 20.94s"
|
|
84
|
+
parts = summary_line[-1].split()
|
|
85
|
+
for i, part in enumerate(parts):
|
|
86
|
+
if 'passed' in part and i > 0:
|
|
87
|
+
try:
|
|
88
|
+
passed = int(parts[i-1])
|
|
89
|
+
total_passed += passed
|
|
90
|
+
print(f"✅ {passed} tests passed in {elapsed:.2f}s")
|
|
91
|
+
break
|
|
92
|
+
except ValueError:
|
|
93
|
+
pass
|
|
94
|
+
else:
|
|
95
|
+
print(f"✅ All tests passed in {elapsed:.2f}s")
|
|
96
|
+
else:
|
|
97
|
+
# Extract failure information
|
|
98
|
+
lines = result.stdout.split('\n')
|
|
99
|
+
summary_line = [line for line in lines if 'failed' in line and 'passed' in line and '=' in line]
|
|
100
|
+
if summary_line:
|
|
101
|
+
# Extract numbers from summary like "4 failed, 22 passed"
|
|
102
|
+
parts = summary_line[-1].split()
|
|
103
|
+
failed = 0
|
|
104
|
+
passed = 0
|
|
105
|
+
for i, part in enumerate(parts):
|
|
106
|
+
if 'failed' in part and i > 0:
|
|
107
|
+
try:
|
|
108
|
+
failed = int(parts[i-1])
|
|
109
|
+
except ValueError:
|
|
110
|
+
pass
|
|
111
|
+
elif 'passed' in part and i > 0:
|
|
112
|
+
try:
|
|
113
|
+
passed = int(parts[i-1])
|
|
114
|
+
except ValueError:
|
|
115
|
+
pass
|
|
116
|
+
total_failed += failed
|
|
117
|
+
total_passed += passed
|
|
118
|
+
print(f"❌ {failed} tests failed, {passed} tests passed in {elapsed:.2f}s")
|
|
119
|
+
else:
|
|
120
|
+
print(f"❌ Tests failed in {elapsed:.2f}s")
|
|
121
|
+
total_failed += 1
|
|
122
|
+
|
|
123
|
+
print()
|
|
124
|
+
|
|
125
|
+
# Final summary
|
|
126
|
+
print("=" * 80)
|
|
127
|
+
print("FINAL SUMMARY")
|
|
128
|
+
print("=" * 80)
|
|
129
|
+
print(f"Total tests passed: {total_passed}")
|
|
130
|
+
print(f"Total tests failed: {total_failed}")
|
|
131
|
+
print(f"Total execution time: {total_time:.2f}s")
|
|
132
|
+
print(f"Success rate: {total_passed/(total_passed+total_failed)*100:.1f}%" if (total_passed+total_failed) > 0 else "No tests run")
|
|
133
|
+
|
|
134
|
+
if total_failed == 0:
|
|
135
|
+
print("🎉 All tests passed!")
|
|
136
|
+
return True
|
|
137
|
+
else:
|
|
138
|
+
print(f"⚠️ {total_failed} test(s) failed")
|
|
139
|
+
return False
|
|
140
|
+
|
|
141
|
+
if __name__ == "__main__":
|
|
142
|
+
success = run_tests()
|
|
143
|
+
sys.exit(0 if success else 1)
|