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.

Files changed (160) hide show
  1. matrice_analytics/__init__.py +28 -0
  2. matrice_analytics/boundary_drawing_internal/README.md +305 -0
  3. matrice_analytics/boundary_drawing_internal/__init__.py +45 -0
  4. matrice_analytics/boundary_drawing_internal/boundary_drawing_internal.py +1207 -0
  5. matrice_analytics/boundary_drawing_internal/boundary_drawing_tool.py +429 -0
  6. matrice_analytics/boundary_drawing_internal/boundary_tool_template.html +1036 -0
  7. matrice_analytics/boundary_drawing_internal/data/.gitignore +12 -0
  8. matrice_analytics/boundary_drawing_internal/example_usage.py +206 -0
  9. matrice_analytics/boundary_drawing_internal/usage/README.md +110 -0
  10. matrice_analytics/boundary_drawing_internal/usage/boundary_drawer_launcher.py +102 -0
  11. matrice_analytics/boundary_drawing_internal/usage/simple_boundary_launcher.py +107 -0
  12. matrice_analytics/post_processing/README.md +455 -0
  13. matrice_analytics/post_processing/__init__.py +732 -0
  14. matrice_analytics/post_processing/advanced_tracker/README.md +650 -0
  15. matrice_analytics/post_processing/advanced_tracker/__init__.py +17 -0
  16. matrice_analytics/post_processing/advanced_tracker/base.py +99 -0
  17. matrice_analytics/post_processing/advanced_tracker/config.py +77 -0
  18. matrice_analytics/post_processing/advanced_tracker/kalman_filter.py +370 -0
  19. matrice_analytics/post_processing/advanced_tracker/matching.py +195 -0
  20. matrice_analytics/post_processing/advanced_tracker/strack.py +230 -0
  21. matrice_analytics/post_processing/advanced_tracker/tracker.py +367 -0
  22. matrice_analytics/post_processing/config.py +142 -0
  23. matrice_analytics/post_processing/core/__init__.py +63 -0
  24. matrice_analytics/post_processing/core/base.py +704 -0
  25. matrice_analytics/post_processing/core/config.py +3188 -0
  26. matrice_analytics/post_processing/core/config_utils.py +925 -0
  27. matrice_analytics/post_processing/face_reg/__init__.py +43 -0
  28. matrice_analytics/post_processing/face_reg/compare_similarity.py +556 -0
  29. matrice_analytics/post_processing/face_reg/embedding_manager.py +681 -0
  30. matrice_analytics/post_processing/face_reg/face_recognition.py +1870 -0
  31. matrice_analytics/post_processing/face_reg/face_recognition_client.py +339 -0
  32. matrice_analytics/post_processing/face_reg/people_activity_logging.py +283 -0
  33. matrice_analytics/post_processing/ocr/__init__.py +0 -0
  34. matrice_analytics/post_processing/ocr/easyocr_extractor.py +248 -0
  35. matrice_analytics/post_processing/ocr/postprocessing.py +271 -0
  36. matrice_analytics/post_processing/ocr/preprocessing.py +52 -0
  37. matrice_analytics/post_processing/post_processor.py +1153 -0
  38. matrice_analytics/post_processing/test_cases/__init__.py +1 -0
  39. matrice_analytics/post_processing/test_cases/run_tests.py +143 -0
  40. matrice_analytics/post_processing/test_cases/test_advanced_customer_service.py +841 -0
  41. matrice_analytics/post_processing/test_cases/test_basic_counting_tracking.py +523 -0
  42. matrice_analytics/post_processing/test_cases/test_comprehensive.py +531 -0
  43. matrice_analytics/post_processing/test_cases/test_config.py +852 -0
  44. matrice_analytics/post_processing/test_cases/test_customer_service.py +585 -0
  45. matrice_analytics/post_processing/test_cases/test_data_generators.py +583 -0
  46. matrice_analytics/post_processing/test_cases/test_people_counting.py +510 -0
  47. matrice_analytics/post_processing/test_cases/test_processor.py +524 -0
  48. matrice_analytics/post_processing/test_cases/test_utilities.py +356 -0
  49. matrice_analytics/post_processing/test_cases/test_utils.py +743 -0
  50. matrice_analytics/post_processing/usecases/Histopathological_Cancer_Detection_img.py +604 -0
  51. matrice_analytics/post_processing/usecases/__init__.py +267 -0
  52. matrice_analytics/post_processing/usecases/abandoned_object_detection.py +797 -0
  53. matrice_analytics/post_processing/usecases/advanced_customer_service.py +1601 -0
  54. matrice_analytics/post_processing/usecases/age_detection.py +842 -0
  55. matrice_analytics/post_processing/usecases/age_gender_detection.py +1043 -0
  56. matrice_analytics/post_processing/usecases/anti_spoofing_detection.py +656 -0
  57. matrice_analytics/post_processing/usecases/assembly_line_detection.py +841 -0
  58. matrice_analytics/post_processing/usecases/banana_defect_detection.py +624 -0
  59. matrice_analytics/post_processing/usecases/basic_counting_tracking.py +667 -0
  60. matrice_analytics/post_processing/usecases/blood_cancer_detection_img.py +881 -0
  61. matrice_analytics/post_processing/usecases/car_damage_detection.py +834 -0
  62. matrice_analytics/post_processing/usecases/car_part_segmentation.py +946 -0
  63. matrice_analytics/post_processing/usecases/car_service.py +1601 -0
  64. matrice_analytics/post_processing/usecases/cardiomegaly_classification.py +864 -0
  65. matrice_analytics/post_processing/usecases/cell_microscopy_segmentation.py +897 -0
  66. matrice_analytics/post_processing/usecases/chicken_pose_detection.py +648 -0
  67. matrice_analytics/post_processing/usecases/child_monitoring.py +814 -0
  68. matrice_analytics/post_processing/usecases/color/clip.py +232 -0
  69. matrice_analytics/post_processing/usecases/color/clip_processor/merges.txt +48895 -0
  70. matrice_analytics/post_processing/usecases/color/clip_processor/preprocessor_config.json +28 -0
  71. matrice_analytics/post_processing/usecases/color/clip_processor/special_tokens_map.json +30 -0
  72. matrice_analytics/post_processing/usecases/color/clip_processor/tokenizer.json +245079 -0
  73. matrice_analytics/post_processing/usecases/color/clip_processor/tokenizer_config.json +32 -0
  74. matrice_analytics/post_processing/usecases/color/clip_processor/vocab.json +1 -0
  75. matrice_analytics/post_processing/usecases/color/color_map_utils.py +70 -0
  76. matrice_analytics/post_processing/usecases/color/color_mapper.py +468 -0
  77. matrice_analytics/post_processing/usecases/color_detection.py +1835 -0
  78. matrice_analytics/post_processing/usecases/color_map_utils.py +70 -0
  79. matrice_analytics/post_processing/usecases/concrete_crack_detection.py +827 -0
  80. matrice_analytics/post_processing/usecases/crop_weed_detection.py +781 -0
  81. matrice_analytics/post_processing/usecases/customer_service.py +1008 -0
  82. matrice_analytics/post_processing/usecases/defect_detection_products.py +936 -0
  83. matrice_analytics/post_processing/usecases/distracted_driver_detection.py +822 -0
  84. matrice_analytics/post_processing/usecases/drone_traffic_monitoring.py +930 -0
  85. matrice_analytics/post_processing/usecases/drowsy_driver_detection.py +829 -0
  86. matrice_analytics/post_processing/usecases/dwell_detection.py +829 -0
  87. matrice_analytics/post_processing/usecases/emergency_vehicle_detection.py +827 -0
  88. matrice_analytics/post_processing/usecases/face_emotion.py +813 -0
  89. matrice_analytics/post_processing/usecases/face_recognition.py +827 -0
  90. matrice_analytics/post_processing/usecases/fashion_detection.py +835 -0
  91. matrice_analytics/post_processing/usecases/field_mapping.py +902 -0
  92. matrice_analytics/post_processing/usecases/fire_detection.py +1112 -0
  93. matrice_analytics/post_processing/usecases/flare_analysis.py +891 -0
  94. matrice_analytics/post_processing/usecases/flower_segmentation.py +1006 -0
  95. matrice_analytics/post_processing/usecases/gas_leak_detection.py +837 -0
  96. matrice_analytics/post_processing/usecases/gender_detection.py +832 -0
  97. matrice_analytics/post_processing/usecases/human_activity_recognition.py +871 -0
  98. matrice_analytics/post_processing/usecases/intrusion_detection.py +1672 -0
  99. matrice_analytics/post_processing/usecases/leaf.py +821 -0
  100. matrice_analytics/post_processing/usecases/leaf_disease.py +840 -0
  101. matrice_analytics/post_processing/usecases/leak_detection.py +837 -0
  102. matrice_analytics/post_processing/usecases/license_plate_detection.py +914 -0
  103. matrice_analytics/post_processing/usecases/license_plate_monitoring.py +1194 -0
  104. matrice_analytics/post_processing/usecases/litter_monitoring.py +717 -0
  105. matrice_analytics/post_processing/usecases/mask_detection.py +869 -0
  106. matrice_analytics/post_processing/usecases/natural_disaster.py +907 -0
  107. matrice_analytics/post_processing/usecases/parking.py +787 -0
  108. matrice_analytics/post_processing/usecases/parking_space_detection.py +822 -0
  109. matrice_analytics/post_processing/usecases/pcb_defect_detection.py +888 -0
  110. matrice_analytics/post_processing/usecases/pedestrian_detection.py +808 -0
  111. matrice_analytics/post_processing/usecases/people_counting.py +1728 -0
  112. matrice_analytics/post_processing/usecases/people_tracking.py +1842 -0
  113. matrice_analytics/post_processing/usecases/pipeline_detection.py +605 -0
  114. matrice_analytics/post_processing/usecases/plaque_segmentation_img.py +874 -0
  115. matrice_analytics/post_processing/usecases/pothole_segmentation.py +915 -0
  116. matrice_analytics/post_processing/usecases/ppe_compliance.py +645 -0
  117. matrice_analytics/post_processing/usecases/price_tag_detection.py +822 -0
  118. matrice_analytics/post_processing/usecases/proximity_detection.py +1901 -0
  119. matrice_analytics/post_processing/usecases/road_lane_detection.py +623 -0
  120. matrice_analytics/post_processing/usecases/road_traffic_density.py +832 -0
  121. matrice_analytics/post_processing/usecases/road_view_segmentation.py +915 -0
  122. matrice_analytics/post_processing/usecases/shelf_inventory_detection.py +583 -0
  123. matrice_analytics/post_processing/usecases/shoplifting_detection.py +822 -0
  124. matrice_analytics/post_processing/usecases/shopping_cart_analysis.py +899 -0
  125. matrice_analytics/post_processing/usecases/skin_cancer_classification_img.py +864 -0
  126. matrice_analytics/post_processing/usecases/smoker_detection.py +833 -0
  127. matrice_analytics/post_processing/usecases/solar_panel.py +810 -0
  128. matrice_analytics/post_processing/usecases/suspicious_activity_detection.py +1030 -0
  129. matrice_analytics/post_processing/usecases/template_usecase.py +380 -0
  130. matrice_analytics/post_processing/usecases/theft_detection.py +648 -0
  131. matrice_analytics/post_processing/usecases/traffic_sign_monitoring.py +724 -0
  132. matrice_analytics/post_processing/usecases/underground_pipeline_defect_detection.py +775 -0
  133. matrice_analytics/post_processing/usecases/underwater_pollution_detection.py +842 -0
  134. matrice_analytics/post_processing/usecases/vehicle_monitoring.py +950 -0
  135. matrice_analytics/post_processing/usecases/warehouse_object_segmentation.py +899 -0
  136. matrice_analytics/post_processing/usecases/waterbody_segmentation.py +923 -0
  137. matrice_analytics/post_processing/usecases/weapon_detection.py +771 -0
  138. matrice_analytics/post_processing/usecases/weld_defect_detection.py +615 -0
  139. matrice_analytics/post_processing/usecases/wildlife_monitoring.py +898 -0
  140. matrice_analytics/post_processing/usecases/windmill_maintenance.py +834 -0
  141. matrice_analytics/post_processing/usecases/wound_segmentation.py +856 -0
  142. matrice_analytics/post_processing/utils/__init__.py +150 -0
  143. matrice_analytics/post_processing/utils/advanced_counting_utils.py +400 -0
  144. matrice_analytics/post_processing/utils/advanced_helper_utils.py +317 -0
  145. matrice_analytics/post_processing/utils/advanced_tracking_utils.py +461 -0
  146. matrice_analytics/post_processing/utils/alerting_utils.py +213 -0
  147. matrice_analytics/post_processing/utils/category_mapping_utils.py +94 -0
  148. matrice_analytics/post_processing/utils/color_utils.py +592 -0
  149. matrice_analytics/post_processing/utils/counting_utils.py +182 -0
  150. matrice_analytics/post_processing/utils/filter_utils.py +261 -0
  151. matrice_analytics/post_processing/utils/format_utils.py +293 -0
  152. matrice_analytics/post_processing/utils/geometry_utils.py +300 -0
  153. matrice_analytics/post_processing/utils/smoothing_utils.py +358 -0
  154. matrice_analytics/post_processing/utils/tracking_utils.py +234 -0
  155. matrice_analytics/py.typed +0 -0
  156. matrice_analytics-0.1.2.dist-info/METADATA +481 -0
  157. matrice_analytics-0.1.2.dist-info/RECORD +160 -0
  158. matrice_analytics-0.1.2.dist-info/WHEEL +5 -0
  159. matrice_analytics-0.1.2.dist-info/licenses/LICENSE.txt +21 -0
  160. matrice_analytics-0.1.2.dist-info/top_level.txt +1 -0
@@ -0,0 +1,481 @@
1
+ Metadata-Version: 2.4
2
+ Name: matrice_analytics
3
+ Version: 0.1.2
4
+ Summary: Common server utilities for Matrice.ai services
5
+ Author-email: "Matrice.ai" <dipendra@matrice.ai>
6
+ License-Expression: MIT
7
+ Keywords: matrice,common,utilities,pyarmor,obfuscated
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: Operating System :: OS Independent
11
+ Classifier: Operating System :: POSIX :: Linux
12
+ Classifier: Operating System :: Microsoft :: Windows
13
+ Classifier: Operating System :: MacOS
14
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
15
+ Classifier: Programming Language :: Python :: 3.8
16
+ Classifier: Programming Language :: Python :: 3.9
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Typing :: Typed
21
+ Requires-Python: >=3.8
22
+ Description-Content-Type: text/markdown
23
+ License-File: LICENSE.txt
24
+ Dynamic: license-file
25
+ Dynamic: requires-python
26
+
27
+ # Post-Processing Module - Refactored Architecture
28
+
29
+ ## Overview
30
+
31
+ This module provides a comprehensive, refactored post-processing system for the Matrice Python SDK. The system has been completely redesigned to be more pythonic, maintainable, and extensible while providing powerful analytics capabilities for various use cases.
32
+
33
+ ## 🚀 Key Features
34
+
35
+ ### ✅ **Unified Architecture**
36
+ - **Single Entry Point**: `PostProcessor` class handles all processing needs
37
+ - **Standardized Results**: All operations return `ProcessingResult` objects
38
+ - **Consistent Configuration**: Type-safe configuration system with validation
39
+ - **Registry Pattern**: Easy registration and discovery of use cases
40
+
41
+ ### ✅ **Separate Use Case Classes**
42
+ - **People Counting**: Advanced people counting with zone analysis and tracking
43
+ - **Customer Service**: Comprehensive customer service analytics with business intelligence
44
+ - **Extensible Design**: Easy to add new use cases
45
+
46
+ ### ✅ **Pythonic Configuration Management**
47
+ - **Dataclass-based**: Type-safe configurations using dataclasses
48
+ - **Nested Configurations**: Support for complex nested config structures
49
+ - **File Support**: JSON/YAML configuration file loading and saving
50
+ - **Validation**: Built-in validation with detailed error messages
51
+
52
+ ### ✅ **Comprehensive Error Handling**
53
+ - **Standardized Errors**: All errors return structured `ProcessingResult` objects
54
+ - **Detailed Information**: Error messages include type, context, and debugging info
55
+ - **Graceful Degradation**: System continues operating even with partial failures
56
+
57
+ ### ✅ **Processing Statistics**
58
+ - **Performance Tracking**: Automatic processing time measurement
59
+ - **Success Metrics**: Success/failure rates and statistics
60
+ - **Insights Generation**: Automatic generation of actionable insights
61
+
62
+ ## 📁 Architecture
63
+
64
+ ```
65
+ post_processing/
66
+ ├── __init__.py # Main exports and convenience functions
67
+ ├── processor.py # Main PostProcessor class
68
+ ├── README.md # This documentation
69
+
70
+ ├── core/ # Core system components
71
+ │ ├── __init__.py
72
+ │ ├── base.py # Base classes, enums, and protocols
73
+ │ ├── config.py # Configuration system
74
+ │ └── advanced_usecases.py # Advanced use case implementations
75
+
76
+ ├── usecases/ # Separate use case implementations
77
+ │ ├── __init__.py
78
+ │ ├── people_counting.py # People counting use case
79
+ │ └── customer_service.py # Customer service use case
80
+
81
+ └── utils/ # Utility functions organized by category
82
+ ├── __init__.py
83
+ ├── geometry_utils.py # Geometric calculations
84
+ ├── format_utils.py # Format detection and conversion
85
+ ├── filter_utils.py # Filtering and cleaning operations
86
+ ├── counting_utils.py # Counting and aggregation
87
+ └── tracking_utils.py # Tracking and movement analysis
88
+ ```
89
+
90
+ ## 🛠 Quick Start
91
+
92
+ ### Basic Usage
93
+
94
+ ```python
95
+ from matrice_analytics.post_processing import PostProcessor, process_simple
96
+
97
+ # Method 1: Simple processing (recommended for quick tasks)
98
+ result = process_simple(
99
+ raw_results,
100
+ usecase="people_counting",
101
+ confidence_threshold=0.5
102
+ )
103
+
104
+ # Method 2: Using PostProcessor class (recommended for complex workflows)
105
+ processor = PostProcessor()
106
+ result = processor.process_simple(
107
+ raw_results,
108
+ usecase="people_counting",
109
+ confidence_threshold=0.5,
110
+ enable_tracking=True
111
+ )
112
+
113
+ print(f"Status: {result.status.value}")
114
+ print(f"Summary: {result.summary}")
115
+ print(f"Insights: {len(result.insights)} generated")
116
+ ```
117
+
118
+ ### Advanced Configuration
119
+
120
+ ```python
121
+ # Create complex configuration
122
+ config = processor.create_config(
123
+ 'people_counting',
124
+ confidence_threshold=0.6,
125
+ enable_tracking=True,
126
+ person_categories=['person', 'people', 'human'],
127
+ zone_config={
128
+ 'zones': {
129
+ 'entrance': [[0, 0], [100, 0], [100, 100], [0, 100]],
130
+ 'checkout': [[200, 200], [300, 200], [300, 300], [200, 300]]
131
+ }
132
+ },
133
+ alert_config={
134
+ 'count_thresholds': {'all': 10},
135
+ 'occupancy_thresholds': {'entrance': 5}
136
+ }
137
+ )
138
+
139
+ # Process with configuration
140
+ result = processor.process(raw_results, config)
141
+ ```
142
+
143
+ ### Configuration File Support
144
+
145
+ ```python
146
+ # Save configuration to file
147
+ processor.save_config(config, "people_counting_config.json")
148
+
149
+ # Load and use configuration from file
150
+ result = processor.process_from_file(raw_results, "people_counting_config.json")
151
+ ```
152
+
153
+ ## 📊 Use Cases
154
+
155
+ ### 1. People Counting (`people_counting`)
156
+
157
+ Advanced people counting with comprehensive analytics:
158
+
159
+ ```python
160
+ result = process_simple(
161
+ raw_results,
162
+ usecase="people_counting",
163
+ confidence_threshold=0.5,
164
+ enable_tracking=True,
165
+ person_categories=['person', 'people'],
166
+ zone_config={
167
+ 'zones': {
168
+ 'entrance': [[0, 0], [100, 0], [100, 100], [0, 100]]
169
+ }
170
+ }
171
+ )
172
+ ```
173
+
174
+ **Features:**
175
+ - Multi-category person detection
176
+ - Zone-based counting and analysis
177
+ - Unique person tracking
178
+ - Occupancy analysis
179
+ - Alert generation based on thresholds
180
+ - Temporal analysis and trends
181
+
182
+ ### 2. Customer Service (`customer_service`)
183
+
184
+ Comprehensive customer service analytics:
185
+
186
+ ```python
187
+ result = process_simple(
188
+ raw_results,
189
+ usecase="customer_service",
190
+ confidence_threshold=0.6,
191
+ service_proximity_threshold=50.0,
192
+ staff_categories=['staff', 'employee'],
193
+ customer_categories=['customer', 'person']
194
+ )
195
+ ```
196
+
197
+ **Features:**
198
+ - Staff utilization analysis
199
+ - Customer-staff interaction detection
200
+ - Service quality metrics
201
+ - Area occupancy analysis
202
+ - Queue management insights
203
+ - Business intelligence metrics
204
+
205
+ ## 🔧 Configuration System
206
+
207
+ ### Configuration Classes
208
+
209
+ All configurations are type-safe dataclasses with built-in validation:
210
+
211
+ ```python
212
+ from matrice_analytics.post_processing import PeopleCountingConfig, ZoneConfig
213
+
214
+ # Create configuration programmatically
215
+ config = PeopleCountingConfig(
216
+ confidence_threshold=0.5,
217
+ enable_tracking=True,
218
+ zone_config=ZoneConfig(
219
+ zones={
220
+ 'entrance': [[0, 0], [100, 0], [100, 100], [0, 100]]
221
+ }
222
+ )
223
+ )
224
+
225
+ # Validate configuration
226
+ errors = config.validate()
227
+ if errors:
228
+ print(f"Configuration errors: {errors}")
229
+ ```
230
+
231
+ ### Configuration Templates
232
+
233
+ ```python
234
+ # Get configuration template for a use case
235
+ template = processor.get_config_template('people_counting')
236
+ print(f"Available options: {list(template.keys())}")
237
+
238
+ # List all available use cases
239
+ use_cases = processor.list_available_usecases()
240
+ print(f"Available use cases: {use_cases}")
241
+ ```
242
+
243
+ ## 📈 Processing Results
244
+
245
+ All processing operations return a standardized `ProcessingResult` object:
246
+
247
+ ```python
248
+ class ProcessingResult:
249
+ data: Any # Processed data
250
+ status: ProcessingStatus # SUCCESS, ERROR, WARNING, PARTIAL
251
+ usecase: str # Use case name
252
+ category: str # Use case category
253
+ processing_time: float # Processing time in seconds
254
+ summary: str # Human-readable summary
255
+ insights: List[str] # Generated insights
256
+ warnings: List[str] # Warning messages
257
+ error_message: Optional[str] # Error message if failed
258
+ predictions: List[Dict[str, Any]] # Detailed predictions
259
+ metrics: Dict[str, Any] # Performance metrics
260
+ ```
261
+
262
+ ### Working with Results
263
+
264
+ ```python
265
+ result = processor.process_simple(data, "people_counting")
266
+
267
+ # Check status
268
+ if result.is_success():
269
+ print(f"✅ {result.summary}")
270
+
271
+ # Access insights
272
+ for insight in result.insights:
273
+ print(f"💡 {insight}")
274
+
275
+ # Access metrics
276
+ print(f"📊 Metrics: {result.metrics}")
277
+
278
+ # Access processed data
279
+ processed_data = result.data
280
+ else:
281
+ print(f"❌ Processing failed: {result.error_message}")
282
+ ```
283
+
284
+ ## 📊 Statistics and Monitoring
285
+
286
+ ```python
287
+ # Get processing statistics
288
+ stats = processor.get_statistics()
289
+ print(f"Total processed: {stats['total_processed']}")
290
+ print(f"Success rate: {stats['success_rate']:.2%}")
291
+ print(f"Average processing time: {stats['average_processing_time']:.3f}s")
292
+
293
+ # Reset statistics
294
+ processor.reset_statistics()
295
+ ```
296
+
297
+ ## 🔌 Extensibility
298
+
299
+ ### Adding New Use Cases
300
+
301
+ 1. **Create Use Case Class**:
302
+
303
+ ```python
304
+ from matrice_analytics.post_processing.core.base import BaseProcessor
305
+
306
+ class MyCustomUseCase(BaseProcessor):
307
+ def __init__(self):
308
+ super().__init__("my_custom_usecase")
309
+ self.category = "custom"
310
+
311
+ def process(self, data, config, context=None):
312
+ # Implement your processing logic
313
+ return self.create_result(processed_data, "my_custom_usecase", "custom")
314
+ ```
315
+
316
+ 2. **Register Use Case**:
317
+
318
+ ```python
319
+ from matrice_analytics.post_processing.core.base import registry
320
+
321
+ registry.register_use_case("custom", "my_custom_usecase", MyCustomUseCase)
322
+ ```
323
+
324
+ ### Adding New Utility Functions
325
+
326
+ Add utility functions to the appropriate module in the `utils/` directory and export them in `utils/__init__.py`.
327
+
328
+ ## 🧪 Testing
329
+
330
+ The system includes comprehensive error handling and validation. Here's how to test your implementations:
331
+
332
+ ```python
333
+ # Test configuration validation
334
+ errors = processor.validate_config({
335
+ 'usecase': 'people_counting',
336
+ 'confidence_threshold': 0.5
337
+ })
338
+
339
+ # Test with sample data
340
+ sample_data = [
341
+ {'category': 'person', 'confidence': 0.8, 'bbox': [10, 10, 50, 50]}
342
+ ]
343
+
344
+ result = process_simple(sample_data, 'people_counting')
345
+ assert result.is_success()
346
+ ```
347
+
348
+ ## 🔄 Migration from Old System
349
+
350
+ If you're migrating from the old post-processing system:
351
+
352
+ 1. **Update Imports**:
353
+ ```python
354
+ # Old
355
+ from matrice_analytics.old_post_processing import some_function
356
+
357
+ # New
358
+ from matrice_analytics.post_processing import PostProcessor, process_simple
359
+ ```
360
+
361
+ 2. **Update Processing Calls**:
362
+ ```python
363
+ # Old
364
+ result = old_process_function(data, config_dict)
365
+
366
+ # New
367
+ result = process_simple(data, "usecase_name", **config_dict)
368
+ ```
369
+
370
+ 3. **Update Configuration**:
371
+ ```python
372
+ # Old
373
+ config = {"threshold": 0.5, "enable_tracking": True}
374
+
375
+ # New
376
+ config = processor.create_config("people_counting",
377
+ confidence_threshold=0.5,
378
+ enable_tracking=True)
379
+ ```
380
+
381
+ ## 🐛 Troubleshooting
382
+
383
+ ### Common Issues
384
+
385
+ 1. **Use Case Not Found**:
386
+ ```python
387
+ # Check available use cases
388
+ print(processor.list_available_usecases())
389
+ ```
390
+
391
+ 2. **Configuration Validation Errors**:
392
+ ```python
393
+ # Validate configuration
394
+ errors = processor.validate_config(config)
395
+ if errors:
396
+ print(f"Validation errors: {errors}")
397
+ ```
398
+
399
+ 3. **Processing Failures**:
400
+ ```python
401
+ # Check result status and error details
402
+ if not result.is_success():
403
+ print(f"Error: {result.error_message}")
404
+ print(f"Error type: {result.error_type}")
405
+ print(f"Error details: {result.error_details}")
406
+ ```
407
+
408
+ ## 📝 API Reference
409
+
410
+ ### Main Classes
411
+
412
+ - **`PostProcessor`**: Main processing class
413
+ - **`ProcessingResult`**: Standardized result container
414
+ - **`BaseConfig`**: Base configuration class
415
+ - **`PeopleCountingConfig`**: People counting configuration
416
+ - **`CustomerServiceConfig`**: Customer service configuration
417
+
418
+ ### Convenience Functions
419
+
420
+ - **`process_simple()`**: Simple processing function
421
+ - **`create_config_template()`**: Get configuration template
422
+ - **`list_available_usecases()`**: List available use cases
423
+ - **`validate_config()`**: Validate configuration
424
+
425
+ ### Utility Functions
426
+
427
+ The system provides comprehensive utility functions organized by category:
428
+
429
+ - **Geometry**: Point-in-polygon, distance calculations, IoU
430
+ - **Format**: Format detection and conversion
431
+ - **Filter**: Confidence filtering, deduplication
432
+ - **Counting**: Object counting, zone analysis
433
+ - **Tracking**: Movement analysis, line crossing detection
434
+
435
+ ## 🎯 Best Practices
436
+
437
+ 1. **Use Simple Processing for Quick Tasks**:
438
+ ```python
439
+ result = process_simple(data, "people_counting", confidence_threshold=0.5)
440
+ ```
441
+
442
+ 2. **Use PostProcessor Class for Complex Workflows**:
443
+ ```python
444
+ processor = PostProcessor()
445
+ config = processor.create_config("people_counting", **params)
446
+ result = processor.process(data, config)
447
+ ```
448
+
449
+ 3. **Always Check Result Status**:
450
+ ```python
451
+ if result.is_success():
452
+ # Process successful result
453
+ else:
454
+ # Handle error
455
+ ```
456
+
457
+ 4. **Use Configuration Files for Complex Setups**:
458
+ ```python
459
+ processor.save_config(config, "config.json")
460
+ result = processor.process_from_file(data, "config.json")
461
+ ```
462
+
463
+ 5. **Monitor Processing Statistics**:
464
+ ```python
465
+ stats = processor.get_statistics()
466
+ # Monitor success rates and performance
467
+ ```
468
+
469
+ ## 🔮 Future Enhancements
470
+
471
+ The refactored system is designed for easy extension. Planned enhancements include:
472
+
473
+ - Additional use cases (security monitoring, retail analytics)
474
+ - Advanced tracking algorithms
475
+ - Real-time processing capabilities
476
+ - Integration with external analytics platforms
477
+ - Machine learning-based insights generation
478
+
479
+ ---
480
+
481
+ **The refactored post-processing system provides a solid foundation for scalable, maintainable, and powerful analytics capabilities. The clean architecture makes it easy to extend and customize for specific use cases while maintaining consistency and reliability.**
@@ -0,0 +1,160 @@
1
+ matrice_analytics/__init__.py,sha256=-qzjYt4wl6dxSgmWQzcE5f3-Fp25zmXwtDMZAvreS4E,675
2
+ matrice_analytics/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ matrice_analytics/boundary_drawing_internal/README.md,sha256=OoxjYJJLaePzNoHjeB9ZDypr-g9IZhLErqnhzZlOcZI,9486
4
+ matrice_analytics/boundary_drawing_internal/__init__.py,sha256=-sIwmVxWcJJcVVE3v19UyQrZiaORR3rPUK3vwyrt63I,1579
5
+ matrice_analytics/boundary_drawing_internal/boundary_drawing_internal.py,sha256=5SPGXS9EIhJJtvC5qTBBmOTQqSKU2byxHIFgo6Bmt-U,43944
6
+ matrice_analytics/boundary_drawing_internal/boundary_drawing_tool.py,sha256=xWIqzI4Vsr7l-WZBs6SOF69trIpTiFVfmmdHCBlWcL4,15400
7
+ matrice_analytics/boundary_drawing_internal/boundary_tool_template.html,sha256=lnY2RHJxA8vm-w3iHWa4UZzXnn6vcD6_TwV9pfysvv4,36817
8
+ matrice_analytics/boundary_drawing_internal/example_usage.py,sha256=M6sYmCEYtN20MBWt6nkW929Etk8l6vo0sFqqfWxM4pU,6419
9
+ matrice_analytics/boundary_drawing_internal/data/.gitignore,sha256=2veyLL4kwzJaV9L5_00ECzWG2ehdoCht_4mFLq9pULc,466
10
+ matrice_analytics/boundary_drawing_internal/usage/README.md,sha256=9AgWPhYOqUeY2NuJHRPkWSRXfGu47_UaorNg2cUFZeI,3142
11
+ matrice_analytics/boundary_drawing_internal/usage/boundary_drawer_launcher.py,sha256=W3JSeo3A4n04iS6ToID6V0McWwI_dvAIdfhb-xD385w,3638
12
+ matrice_analytics/boundary_drawing_internal/usage/simple_boundary_launcher.py,sha256=jHPriRLorLuiC8km0MFNS96w121tKxd7t5GQl7I5kKE,3494
13
+ matrice_analytics/post_processing/README.md,sha256=bDszazvqV5xbGhMM6hDaMctIyk5gox9bADo2IZZ9Goo,13368
14
+ matrice_analytics/post_processing/__init__.py,sha256=dxGBUQaRCGndQmXpYAWqUhDeUZAcxU-_6HFnm3GRDRA,29417
15
+ matrice_analytics/post_processing/config.py,sha256=p0BHD4XM5jFueibW7cfusrA4OMHP2_9PD9lNvTxtaiI,6569
16
+ matrice_analytics/post_processing/post_processor.py,sha256=F7xPIQEpcae3V5wqUZiJgCnENtX7sqwyeO2hVzvw1RQ,43114
17
+ matrice_analytics/post_processing/advanced_tracker/README.md,sha256=RM8dynVoUWKn_hTbw9c6jHAbnQj-8hEAXnmuRZr2w1M,22485
18
+ matrice_analytics/post_processing/advanced_tracker/__init__.py,sha256=tAPFzI_Yep5TLX60FDwKqBqppc-EbxSr0wNsQ9DGI1o,423
19
+ matrice_analytics/post_processing/advanced_tracker/base.py,sha256=VqWy4dd5th5LK-JfueTt2_GSEoOi5QQfQxjTNhmQoLc,3580
20
+ matrice_analytics/post_processing/advanced_tracker/config.py,sha256=hEVJVbh4uUrbIynmoq4OhuxF2IZA5AMCBLpixScp5FI,2865
21
+ matrice_analytics/post_processing/advanced_tracker/kalman_filter.py,sha256=KBUKLVULnMoJoaRXCtVzPnfj0qobSXmc5PItzPo5Nmo,16017
22
+ matrice_analytics/post_processing/advanced_tracker/matching.py,sha256=ebnOiXjwb3MKqUs0buNF7KRlNf10Xa9eIKBXYpqRaDM,7644
23
+ matrice_analytics/post_processing/advanced_tracker/strack.py,sha256=uBinhL4rp_om4dcXDAwoecsCqw6BpzITyad4XjapE6I,9374
24
+ matrice_analytics/post_processing/advanced_tracker/tracker.py,sha256=yN_tUzDZ-8M4NSoZrKf0OW0JA0JxOvz2oYKgbm-os88,15687
25
+ matrice_analytics/post_processing/core/__init__.py,sha256=QlgoJwjTU-3UYTEmFRN6wFWpOr7zNSnrohoqLBF5bNY,1434
26
+ matrice_analytics/post_processing/core/base.py,sha256=V6iF2_u8APBKIeudNBUP-_cHL4FAYrgEpM7W7fbtT74,29112
27
+ matrice_analytics/post_processing/core/config.py,sha256=20RGCpqo7RDIW0fzI2p4i_Yb5lldddmtELRwaNdKFnY,127079
28
+ matrice_analytics/post_processing/core/config_utils.py,sha256=QuAS-_JKSoNOtfUWgr7Alf_wsqODzN2rHlQu-cHRK0s,34311
29
+ matrice_analytics/post_processing/face_reg/__init__.py,sha256=yntaiGlW9vdjBpPZQXNuovALihJPzRlFyUE88l3MhBA,1364
30
+ matrice_analytics/post_processing/face_reg/compare_similarity.py,sha256=ogAF-r36TRhz7I-k9iIuut4oo_4J6Gfzs8YZ_E9ycso,23381
31
+ matrice_analytics/post_processing/face_reg/embedding_manager.py,sha256=MWM5y3EQMLborcbjiqEUGERq076kIJESQLLuNcj8Cmw,30759
32
+ matrice_analytics/post_processing/face_reg/face_recognition.py,sha256=UKibp2cnnamutAeKjYONIBWrwwEGfYugp1Qrkyvi7n8,85397
33
+ matrice_analytics/post_processing/face_reg/face_recognition_client.py,sha256=8J7z4Y9Zr2OUNU4lFFwGcJ4ijiX7V7aKf3fEntFbMJM,13913
34
+ matrice_analytics/post_processing/face_reg/people_activity_logging.py,sha256=4x5CFNA9dQ7RDaUphHNr3B8xy92loddHsRJqHjmjDYM,11031
35
+ matrice_analytics/post_processing/ocr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
+ matrice_analytics/post_processing/ocr/easyocr_extractor.py,sha256=FwVoUATYdiZtfhSAoiyCo_9dgA786pFZfONx6tsQOfE,11403
37
+ matrice_analytics/post_processing/ocr/postprocessing.py,sha256=m3zn72C-x4sYaMFJY5-ZIrj-zoFB26yv8Y3xGRkJsq0,12421
38
+ matrice_analytics/post_processing/ocr/preprocessing.py,sha256=LZolyUw4syMU6Q0V6SQzvkITVSmlkvwu0p9cUNhkbgA,1790
39
+ matrice_analytics/post_processing/test_cases/__init__.py,sha256=zUU2kKrIcCl8WeyjjQViwp7PWTZlKPuF8M2pZkxoNNQ,42
40
+ matrice_analytics/post_processing/test_cases/run_tests.py,sha256=RBFGvxFR-gozxnQFzkWLrs90vLlp8Bsn-Z7MLQrNw4o,4731
41
+ matrice_analytics/post_processing/test_cases/test_advanced_customer_service.py,sha256=yQXxpzZR_OuOHRsNBVoJJdGGWiDlFHp5vMj93V4NZBI,35001
42
+ matrice_analytics/post_processing/test_cases/test_basic_counting_tracking.py,sha256=WDAWo6e26bxVKP2JNBah2XG7o3ElIO6zRw4nq5D0XjA,19579
43
+ matrice_analytics/post_processing/test_cases/test_comprehensive.py,sha256=hQzf34Jg77QO2mjyBHZxU9qRMUHolI6WraPvCSDTV8E,20606
44
+ matrice_analytics/post_processing/test_cases/test_config.py,sha256=w7A8Phv86N4wseyzpMSMLWbWj-8_vW1KUvrxShGO-Bk,31164
45
+ matrice_analytics/post_processing/test_cases/test_customer_service.py,sha256=gfJwdLiSJeRedC6oHOlinkOU6_0TsuHJGjFZhKy9On8,22426
46
+ matrice_analytics/post_processing/test_cases/test_data_generators.py,sha256=RYeY1pCQdPSAsnevdMkqudBOCIDBrWS2-cZK-hcOSlU,20214
47
+ matrice_analytics/post_processing/test_cases/test_people_counting.py,sha256=1QINfIvtQ5idIMHaojgilRcSiCCVqZPd1fyGOM08HiE,19194
48
+ matrice_analytics/post_processing/test_cases/test_processor.py,sha256=Mi0dRkpszChMS1SOPVBHj2bgkRt93Xxl94mvpQ-5yws,19799
49
+ matrice_analytics/post_processing/test_cases/test_utilities.py,sha256=zUtBqwELjovkhQfhn1vM-y7aH04z9sFvt6LIpXXBFSE,13415
50
+ matrice_analytics/post_processing/test_cases/test_utils.py,sha256=lgDX0vILylA6m8sG3_3kxAJ7TiDo8xkprJNfBrLoID4,29371
51
+ matrice_analytics/post_processing/usecases/Histopathological_Cancer_Detection_img.py,sha256=bHDXxxG3QgWMFZbDuBaJWpkIvxTXsFMTqCPBCFm3SDs,30247
52
+ matrice_analytics/post_processing/usecases/__init__.py,sha256=tsu51e2q2gbr5UcALel9IyB21Dr9RKaYX8t5GSduymI,11304
53
+ matrice_analytics/post_processing/usecases/abandoned_object_detection.py,sha256=zVrqlvgsjc5F2JHd-Zav6d-poVIpTJBpPKZ3CC71lQk,40332
54
+ matrice_analytics/post_processing/usecases/advanced_customer_service.py,sha256=ELt5euxr6P4X2s8-YGngmj27QscOHefjOsx3774sNFk,75914
55
+ matrice_analytics/post_processing/usecases/age_detection.py,sha256=yn1LXOgbnOWSMDnsCds6-uN6W-I1Hy4_-AMrjbT5PtY,41318
56
+ matrice_analytics/post_processing/usecases/age_gender_detection.py,sha256=JSmQOSXdERZ6lOa28OrYBMEWa6Ey6VGv_mLjrRHIgts,50703
57
+ matrice_analytics/post_processing/usecases/anti_spoofing_detection.py,sha256=XdtDdXGzZMLQdWcoOoiE5t4LPYHhgOtJ7tZCNlq1A2E,31329
58
+ matrice_analytics/post_processing/usecases/assembly_line_detection.py,sha256=I_oeuec84KJnGMg_A8Wgs9U6h_IiopkDz9FbM1JG110,40410
59
+ matrice_analytics/post_processing/usecases/banana_defect_detection.py,sha256=uKvB550Xve3iWfdWeOU3VhgORxD-M_UzsQDQKkYcFBc,30338
60
+ matrice_analytics/post_processing/usecases/basic_counting_tracking.py,sha256=-vr2z0J-qMh5wOoGubqeTWPttJ4NOYtGqKSV-_8PaKw,28311
61
+ matrice_analytics/post_processing/usecases/blood_cancer_detection_img.py,sha256=7Zx3SOW-0hoTwMQucxmO2mx9O-2vYIpZS4ELf-Hj0bI,42137
62
+ matrice_analytics/post_processing/usecases/car_damage_detection.py,sha256=2jPoVEFl51XExToJ2qMzPJIcH9D9MExrMudiVBMNBRY,40425
63
+ matrice_analytics/post_processing/usecases/car_part_segmentation.py,sha256=JbLcl1VvsQ2heuJYOn6QN44odQZ5WwLYWJXpM6iXpVk,46240
64
+ matrice_analytics/post_processing/usecases/car_service.py,sha256=b9gOBjIuoWywksoq_FrAOmwHs_IVa2L8ldZYp7wPyXA,74383
65
+ matrice_analytics/post_processing/usecases/cardiomegaly_classification.py,sha256=1P6DyOU6R1XKmQ-55BbKMU8CSsm4-wR5wS827UJG2JU,41244
66
+ matrice_analytics/post_processing/usecases/cell_microscopy_segmentation.py,sha256=eQ_s5u3Vnvja6-FmI6ZPxlNkaZtG-pVjTu8NuLjZJ5M,43714
67
+ matrice_analytics/post_processing/usecases/chicken_pose_detection.py,sha256=-e8di7Am-E-FCQFrSY8qJTO1aWtdRAVJoE-VKBgcyyI,29291
68
+ matrice_analytics/post_processing/usecases/child_monitoring.py,sha256=z3oymoqq4hDGwA8MkdEONZW_Vx5CAZmvzZaNLsqmCfw,39380
69
+ matrice_analytics/post_processing/usecases/color_detection.py,sha256=dJjZmZoxCPkSKLkO3I24IS0kzjQqDl89c31-bx0BMAM,87794
70
+ matrice_analytics/post_processing/usecases/color_map_utils.py,sha256=SP-AEVcjLmL8rxblu-ixqUJC2fqlcr7ab4hWo4Fcr_k,2677
71
+ matrice_analytics/post_processing/usecases/concrete_crack_detection.py,sha256=pxhOH_hG4hq9yytNepbGMdk2W_lTG8D1_2RAagaPBkg,40252
72
+ matrice_analytics/post_processing/usecases/crop_weed_detection.py,sha256=Ao1k5fJDYU_f6yZ8VO-jW8-esECV0-zY5Q570c_fako,35674
73
+ matrice_analytics/post_processing/usecases/customer_service.py,sha256=UWS83qxguyAyhh8a0JF5QH9DtKxO8I-gI2BPOjLPxBw,44642
74
+ matrice_analytics/post_processing/usecases/defect_detection_products.py,sha256=blvo4wmak-wlvPSZOcmRsV1FoZSeGX_dUAX5A1WheBE,45949
75
+ matrice_analytics/post_processing/usecases/distracted_driver_detection.py,sha256=rkyYHbmcYUAfKbmmKyKxHlk47vJ_fogHWKhQjrERsok,40316
76
+ matrice_analytics/post_processing/usecases/drone_traffic_monitoring.py,sha256=vlRuW1LFccbU9Df1CyCx7MN4OxUKM1X-ZxIQFYxfzQ0,46430
77
+ matrice_analytics/post_processing/usecases/drowsy_driver_detection.py,sha256=mkO3XWRw_nsj5Mvq1Ub-lWT2a3pk8YLw1y7TlIBQl_U,40337
78
+ matrice_analytics/post_processing/usecases/dwell_detection.py,sha256=5jHA-bSKzfZ9SeINjmIgdEHBhZKQEJFISFSEbah2MGQ,41016
79
+ matrice_analytics/post_processing/usecases/emergency_vehicle_detection.py,sha256=3Mim_JvynHEkOtFRjh4dNTznwCqMgbdia4Iyk8RoPTc,39975
80
+ matrice_analytics/post_processing/usecases/face_emotion.py,sha256=eRfqBdryB0uNoOlz_y-JMuZL1BhPWrI-odqgx_9LT7s,39132
81
+ matrice_analytics/post_processing/usecases/face_recognition.py,sha256=T5xAuv6b9OrkmTmoXgZs4LZ5XUsbvp9xCpeLBwdu7eI,40231
82
+ matrice_analytics/post_processing/usecases/fashion_detection.py,sha256=f9gpzMDhIW-gyn46k9jgf8nY7YeoqAnTxGOzksabFbE,40457
83
+ matrice_analytics/post_processing/usecases/field_mapping.py,sha256=JDwYX8pd2W-waDvBh98Y_o_uchJu7wEYbFxOliA4Iq4,39822
84
+ matrice_analytics/post_processing/usecases/fire_detection.py,sha256=6ZwIWSweFZoeRk1CoOtOdlEV-CtYj3gWnhSQw6ONZxg,52294
85
+ matrice_analytics/post_processing/usecases/flare_analysis.py,sha256=-egmS3Hs_iGOLeCMfapbkfQ04EWtZx97QRuUcDa-jMU,45340
86
+ matrice_analytics/post_processing/usecases/flower_segmentation.py,sha256=4I7qMx9Ztxg_hy9KTVX-3qBhAN-QwDt_Yigf9fFjLus,52017
87
+ matrice_analytics/post_processing/usecases/gas_leak_detection.py,sha256=KL2ft7fXvjTas-65-QgcJm3W8KBsrwF44qibSXjfaLc,40557
88
+ matrice_analytics/post_processing/usecases/gender_detection.py,sha256=DEnCTRew6B7DtPcBQVCTtpd_IQMvMusBcu6nadUg2oM,40107
89
+ matrice_analytics/post_processing/usecases/human_activity_recognition.py,sha256=SLyvbw1y_nEQ0AlT-ErpeSydjA8U5yfRPrjMx1t3Yz0,42226
90
+ matrice_analytics/post_processing/usecases/intrusion_detection.py,sha256=VwvRexU3oN5u1Yyddrh4iNfyQlpWrnXOVCqnGZn2E94,83809
91
+ matrice_analytics/post_processing/usecases/leaf.py,sha256=cwgB1ZNxkQFtkk-thSJrkXOGou1ghJr1kqtopb3sLD4,37036
92
+ matrice_analytics/post_processing/usecases/leaf_disease.py,sha256=bkiLccTdf4KUq3he4eCpBlKXb5exr-WBhQ_oWQ7os68,36225
93
+ matrice_analytics/post_processing/usecases/leak_detection.py,sha256=oOCLLVMuXVeXPHyN8FUrD3U9JYJJwIz-5fcEMgvLdls,40531
94
+ matrice_analytics/post_processing/usecases/license_plate_detection.py,sha256=WmVmtp-GLUSNtBxjZHUtUk_M9lPp_8gA0rdzFXVL1SY,44961
95
+ matrice_analytics/post_processing/usecases/license_plate_monitoring.py,sha256=ft7Gu1Pofcozl9ylae1tiHAAKOK_vWaJNX6-uD0OXyk,59372
96
+ matrice_analytics/post_processing/usecases/litter_monitoring.py,sha256=XaHAUGRBDJg_iVbu8hRMjTR-5TqrLj6ZNCRkInbzZTY,33255
97
+ matrice_analytics/post_processing/usecases/mask_detection.py,sha256=L_s6ZiT5zeXG-BsFcskb3HEG98DhLgqeMSDmCuwOteU,41501
98
+ matrice_analytics/post_processing/usecases/natural_disaster.py,sha256=ehxdPBoYcZWGVDOVn_mHFoz4lIE8LrveAkuXQj0n9XE,44253
99
+ matrice_analytics/post_processing/usecases/parking.py,sha256=lqTGqcjUZZPFw3tu11Ha8BSsZ311K5--wEZnlVsXakU,34534
100
+ matrice_analytics/post_processing/usecases/parking_space_detection.py,sha256=xwhkJjGGKcT827URbasi3olYqhd95Sh0zsEIphwzcgY,39561
101
+ matrice_analytics/post_processing/usecases/pcb_defect_detection.py,sha256=xH3q-WoR3TwMUeUvWw1W7vPLdCUfu_Kl_gQ9dZFf1SE,43006
102
+ matrice_analytics/post_processing/usecases/pedestrian_detection.py,sha256=hPFtvpWXXEsbDavmuiXIhrosMNlOhGya--jukT-ZOHA,39288
103
+ matrice_analytics/post_processing/usecases/people_counting.py,sha256=baFxuwVGRkNPKCXR-caf9kSVBFejrotaILg_rs3BA_A,84756
104
+ matrice_analytics/post_processing/usecases/people_tracking.py,sha256=iXzGJgqKgWxvIVLqa1cFKkiF0DrHolwghSiJ2P8mDhc,90484
105
+ matrice_analytics/post_processing/usecases/pipeline_detection.py,sha256=VsLTXMAqx0tRw7Olrxqx7SBLolZR7p2aFOrdSXLS-kE,30796
106
+ matrice_analytics/post_processing/usecases/plaque_segmentation_img.py,sha256=d__a0PkkObYVoC-Q5-2bFVfeyKnQHtB5xVAKVOCeFyk,41925
107
+ matrice_analytics/post_processing/usecases/pothole_segmentation.py,sha256=jXTb8ZqInp5xJ-O3Zp3zQBiryFVD0-WBbhW6Kux_NDo,44905
108
+ matrice_analytics/post_processing/usecases/ppe_compliance.py,sha256=G9P9j9E9nfNJInHJxmK1Lb4daFBlG5hq0aqotTLvFFE,30146
109
+ matrice_analytics/post_processing/usecases/price_tag_detection.py,sha256=09Tp6MGAHh95s-NSAp-4WC9iCc20sajWApuUBAvgXiQ,39880
110
+ matrice_analytics/post_processing/usecases/proximity_detection.py,sha256=6zViF9L_nY-qmgEu8isuKAv8-fc7RfX93vUeZs2eojY,92867
111
+ matrice_analytics/post_processing/usecases/road_lane_detection.py,sha256=V_KxwBtAHSNkyoH8sXw-U-P3J8ToXtX3ncc69gn6Tds,31591
112
+ matrice_analytics/post_processing/usecases/road_traffic_density.py,sha256=YiHQ0kKhXglagHPvygywxMqZAw8s0WharrBQqLQj2q4,40311
113
+ matrice_analytics/post_processing/usecases/road_view_segmentation.py,sha256=BcBbOOg5622KuvzKrzs9cJW1wkRoIIcOab0N7BONQKQ,44986
114
+ matrice_analytics/post_processing/usecases/shelf_inventory_detection.py,sha256=1juloltHnCj3U499Aps0ggE0nEI37x3iKe4DgfP4RCw,29140
115
+ matrice_analytics/post_processing/usecases/shoplifting_detection.py,sha256=90UUbEAl6qAA-z72C9cdRfmxZ9PnJu-iIiYddJNEzfg,39737
116
+ matrice_analytics/post_processing/usecases/shopping_cart_analysis.py,sha256=9Ej2xiZM7yq5sOBcSXIllou_z0rSZDJ_QHyYz6HxZSY,43957
117
+ matrice_analytics/post_processing/usecases/skin_cancer_classification_img.py,sha256=TvWIPHxq69vHZepx8AeeTyQnSWFqTsy8O3mZaisGeV4,41332
118
+ matrice_analytics/post_processing/usecases/smoker_detection.py,sha256=EB22bn9QsJRAM7nrPO1UGfATq1bAjoY6hyjbayVSwus,40517
119
+ matrice_analytics/post_processing/usecases/solar_panel.py,sha256=16rECiJLDpIGzBMnlpp4u-_lzAyLUtsx3a3kQzseUYw,38976
120
+ matrice_analytics/post_processing/usecases/suspicious_activity_detection.py,sha256=mioyd7tQI6RCSAEEGjPx1JlT0_aTNKcwUb7oGshnS_w,48366
121
+ matrice_analytics/post_processing/usecases/template_usecase.py,sha256=6NC-bTnyB1FeZfdTbQVYK-M5PlAlgdNkWfBDOXCTQ4c,15758
122
+ matrice_analytics/post_processing/usecases/theft_detection.py,sha256=Rs_zKn2z9YM10fGzTHR44Q3m8TIO1s5UMdiPWA03rbA,28671
123
+ matrice_analytics/post_processing/usecases/traffic_sign_monitoring.py,sha256=nDlEzHgMlUjy_VtJ7usnEzMcdSs-jouqaoJpJ8DYUMw,34351
124
+ matrice_analytics/post_processing/usecases/underground_pipeline_defect_detection.py,sha256=W_2joZStsP0jl2zn89-jtdtqqGv3vJ0amsalbE5WKwo,37647
125
+ matrice_analytics/post_processing/usecases/underwater_pollution_detection.py,sha256=jqP1ZKfDZe2-56Lyvgb2DxnbqRfvxm6pPL0Ck3esfBk,40356
126
+ matrice_analytics/post_processing/usecases/vehicle_monitoring.py,sha256=tV18K-toLjKVWlcPI657reWC6x2kgy84jdZIBa7SNpQ,48216
127
+ matrice_analytics/post_processing/usecases/warehouse_object_segmentation.py,sha256=5uZXTJL_A3tUEN08T-_ZQpUoJ9gqbuuMc4z2mT4sMnQ,43753
128
+ matrice_analytics/post_processing/usecases/waterbody_segmentation.py,sha256=JsCxDEMB8s4WDcezfJDr2zrjM-TCjB9hxOztzSvWmpY,45268
129
+ matrice_analytics/post_processing/usecases/weapon_detection.py,sha256=AhbVpJaa2I3aRCEAdIxovY5xd9370dUY4JllCQ8tdT4,37185
130
+ matrice_analytics/post_processing/usecases/weld_defect_detection.py,sha256=b0dAJGKUofbGrwHDJfIYb4pqmvp4Y23JK09Qb-34mxg,30209
131
+ matrice_analytics/post_processing/usecases/wildlife_monitoring.py,sha256=TMVHJ5GLezmqG7DywmqbLggqNXgpsb63MD7IR6kvDkk,43446
132
+ matrice_analytics/post_processing/usecases/windmill_maintenance.py,sha256=G1eqo3Z-HYmGJ6oeZYrpZwhpvqQ9Lc_T-6S7BLBXHeA,40498
133
+ matrice_analytics/post_processing/usecases/wound_segmentation.py,sha256=ehNX6VuWMB3xAnCySO3ra3Tf_5FUNg5LCSdq_91h374,38342
134
+ matrice_analytics/post_processing/usecases/color/clip.py,sha256=J4eWBDUHaSzoU87OGBrauJGEz_JLXjDyAGn4pDUk_Rk,9624
135
+ matrice_analytics/post_processing/usecases/color/color_map_utils.py,sha256=SP-AEVcjLmL8rxblu-ixqUJC2fqlcr7ab4hWo4Fcr_k,2677
136
+ matrice_analytics/post_processing/usecases/color/color_mapper.py,sha256=o_UldCQNC5QqKAIxmfnvySA9NlT4AuOpcyh_LC6n7zw,17452
137
+ matrice_analytics/post_processing/usecases/color/clip_processor/merges.txt,sha256=n9aR98gDkhDg_O0VhlRmxlgg0JtjmIsBdL_iXeKZBRo,524619
138
+ matrice_analytics/post_processing/usecases/color/clip_processor/preprocessor_config.json,sha256=j7VHQDZW6QGbCYLSMQsEW-85udKoEaDJh1blLUjiXbY,504
139
+ matrice_analytics/post_processing/usecases/color/clip_processor/special_tokens_map.json,sha256=LNs7gzGmDJL8HlWhPp_WH9IpPFpRJ1_czNYreABSUw4,588
140
+ matrice_analytics/post_processing/usecases/color/clip_processor/tokenizer.json,sha256=bZEJzIOJd_PKlKN57sNq7MfIB-F4XNcpZgyi_AFx-zU,3642073
141
+ matrice_analytics/post_processing/usecases/color/clip_processor/tokenizer_config.json,sha256=w9KmfEiln_qP2S3gYGCFJLEsrpOstP6D5esDFHoAH1o,774
142
+ matrice_analytics/post_processing/usecases/color/clip_processor/vocab.json,sha256=UEe1Vs6GzK9qois__M_FLTkepKzNq5wvJAfaW3QtQ2M,862328
143
+ matrice_analytics/post_processing/utils/__init__.py,sha256=tBmon3z4wYoaNuHhkhCxv_R7b90r5r1gz0rfJJjNJjM,3786
144
+ matrice_analytics/post_processing/utils/advanced_counting_utils.py,sha256=D6jlZNRCfPtfG8COv3AMCbCfZf4_DK9rFhwzVJEYjpg,19152
145
+ matrice_analytics/post_processing/utils/advanced_helper_utils.py,sha256=W8mDqJTpg98YJgWYBod0rZUNbR4bmvYMeWAGASs14_s,11624
146
+ matrice_analytics/post_processing/utils/advanced_tracking_utils.py,sha256=tKEGjq-1bJ_AeXEWl_clr-7vAry0NLU_P_Q0cbSqLFI,16942
147
+ matrice_analytics/post_processing/utils/alerting_utils.py,sha256=zDX66UiMBMC7FwQNCq-t6eUcP3Zj2JvCQX0K774zhaQ,8430
148
+ matrice_analytics/post_processing/utils/category_mapping_utils.py,sha256=B31n8PIyGqT7QMFgYSfZPlkgSQQTpvHAHQ5B0glW48I,3459
149
+ matrice_analytics/post_processing/utils/color_utils.py,sha256=apolmz75CgcwChTXf3c_QdTCy5eZWtguxYRSpG76exM,21129
150
+ matrice_analytics/post_processing/utils/counting_utils.py,sha256=a2Y9Qr9pCuzJM2ehmDzI0yQTmN-UYvuBMVtBSjXqRa8,6859
151
+ matrice_analytics/post_processing/utils/filter_utils.py,sha256=2XR7vtzaCtWnPHzIKnVlsGJBXvAmg3Y75DFwM8b0J30,8775
152
+ matrice_analytics/post_processing/utils/format_utils.py,sha256=UTF7A5h9j0_S12xH9wG24PWyvBS89d348W9n7DA524Q,11502
153
+ matrice_analytics/post_processing/utils/geometry_utils.py,sha256=BWfdM6RsdJTTLR1GqkWfdwpjMEjTCJyuBxA4zVGKdfk,9623
154
+ matrice_analytics/post_processing/utils/smoothing_utils.py,sha256=78U-yucAcjUiZ0NIAc9NOUSIT0PWP1cqyIPA_Fdrjp0,14699
155
+ matrice_analytics/post_processing/utils/tracking_utils.py,sha256=rWxuotnJ3VLMHIBOud2KLcu4yZfDp7hVPWUtNAq_2xw,8288
156
+ matrice_analytics-0.1.2.dist-info/licenses/LICENSE.txt,sha256=_uQUZpgO0mRYL5-fPoEvLSbNnLPv6OmbeEDCHXhK6Qc,1066
157
+ matrice_analytics-0.1.2.dist-info/METADATA,sha256=7fDDJKogtXwUxdEyKWxP4ARhtlkU9nVQhePlbKRex7A,14377
158
+ matrice_analytics-0.1.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
159
+ matrice_analytics-0.1.2.dist-info/top_level.txt,sha256=STAPEU-e-rWTerXaspdi76T_eVRSrEfFpURSP7_Dt8E,18
160
+ matrice_analytics-0.1.2.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Matrice.ai
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.