eye-cv 1.0.0__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.
Files changed (94) hide show
  1. eye/__init__.py +115 -0
  2. eye/__init___supervision_original.py +120 -0
  3. eye/annotators/__init__.py +0 -0
  4. eye/annotators/base.py +22 -0
  5. eye/annotators/core.py +2699 -0
  6. eye/annotators/line.py +107 -0
  7. eye/annotators/modern.py +529 -0
  8. eye/annotators/trace.py +142 -0
  9. eye/annotators/utils.py +177 -0
  10. eye/assets/__init__.py +2 -0
  11. eye/assets/downloader.py +95 -0
  12. eye/assets/list.py +83 -0
  13. eye/classification/__init__.py +0 -0
  14. eye/classification/core.py +188 -0
  15. eye/config.py +2 -0
  16. eye/core/__init__.py +0 -0
  17. eye/core/trackers/__init__.py +1 -0
  18. eye/core/trackers/botsort_tracker.py +336 -0
  19. eye/core/trackers/bytetrack_tracker.py +284 -0
  20. eye/core/trackers/sort_tracker.py +200 -0
  21. eye/core/tracking.py +146 -0
  22. eye/dataset/__init__.py +0 -0
  23. eye/dataset/core.py +919 -0
  24. eye/dataset/formats/__init__.py +0 -0
  25. eye/dataset/formats/coco.py +258 -0
  26. eye/dataset/formats/pascal_voc.py +279 -0
  27. eye/dataset/formats/yolo.py +272 -0
  28. eye/dataset/utils.py +259 -0
  29. eye/detection/__init__.py +0 -0
  30. eye/detection/auto_convert.py +155 -0
  31. eye/detection/core.py +1529 -0
  32. eye/detection/detections_enhanced.py +392 -0
  33. eye/detection/line_zone.py +859 -0
  34. eye/detection/lmm.py +184 -0
  35. eye/detection/overlap_filter.py +270 -0
  36. eye/detection/tools/__init__.py +0 -0
  37. eye/detection/tools/csv_sink.py +181 -0
  38. eye/detection/tools/inference_slicer.py +288 -0
  39. eye/detection/tools/json_sink.py +142 -0
  40. eye/detection/tools/polygon_zone.py +202 -0
  41. eye/detection/tools/smoother.py +123 -0
  42. eye/detection/tools/smoothing.py +179 -0
  43. eye/detection/tools/smoothing_config.py +202 -0
  44. eye/detection/tools/transformers.py +247 -0
  45. eye/detection/utils.py +1175 -0
  46. eye/draw/__init__.py +0 -0
  47. eye/draw/color.py +154 -0
  48. eye/draw/utils.py +374 -0
  49. eye/filters.py +112 -0
  50. eye/geometry/__init__.py +0 -0
  51. eye/geometry/core.py +128 -0
  52. eye/geometry/utils.py +47 -0
  53. eye/keypoint/__init__.py +0 -0
  54. eye/keypoint/annotators.py +442 -0
  55. eye/keypoint/core.py +687 -0
  56. eye/keypoint/skeletons.py +2647 -0
  57. eye/metrics/__init__.py +21 -0
  58. eye/metrics/core.py +72 -0
  59. eye/metrics/detection.py +843 -0
  60. eye/metrics/f1_score.py +648 -0
  61. eye/metrics/mean_average_precision.py +628 -0
  62. eye/metrics/mean_average_recall.py +697 -0
  63. eye/metrics/precision.py +653 -0
  64. eye/metrics/recall.py +652 -0
  65. eye/metrics/utils/__init__.py +0 -0
  66. eye/metrics/utils/object_size.py +158 -0
  67. eye/metrics/utils/utils.py +9 -0
  68. eye/py.typed +0 -0
  69. eye/quick.py +104 -0
  70. eye/tracker/__init__.py +0 -0
  71. eye/tracker/byte_tracker/__init__.py +0 -0
  72. eye/tracker/byte_tracker/core.py +386 -0
  73. eye/tracker/byte_tracker/kalman_filter.py +205 -0
  74. eye/tracker/byte_tracker/matching.py +69 -0
  75. eye/tracker/byte_tracker/single_object_track.py +178 -0
  76. eye/tracker/byte_tracker/utils.py +18 -0
  77. eye/utils/__init__.py +0 -0
  78. eye/utils/conversion.py +132 -0
  79. eye/utils/file.py +159 -0
  80. eye/utils/image.py +794 -0
  81. eye/utils/internal.py +200 -0
  82. eye/utils/iterables.py +84 -0
  83. eye/utils/notebook.py +114 -0
  84. eye/utils/video.py +307 -0
  85. eye/utils_eye/__init__.py +1 -0
  86. eye/utils_eye/geometry.py +71 -0
  87. eye/utils_eye/nms.py +55 -0
  88. eye/validators/__init__.py +140 -0
  89. eye/web.py +271 -0
  90. eye_cv-1.0.0.dist-info/METADATA +319 -0
  91. eye_cv-1.0.0.dist-info/RECORD +94 -0
  92. eye_cv-1.0.0.dist-info/WHEEL +5 -0
  93. eye_cv-1.0.0.dist-info/licenses/LICENSE +21 -0
  94. eye_cv-1.0.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,319 @@
1
+ Metadata-Version: 2.4
2
+ Name: eye-cv
3
+ Version: 1.0.0
4
+ Summary: Eye - Simple & Powerful Computer Vision. Auto-convert, smart tracking, jitter reduction.
5
+ Author: Dakar Project
6
+ Classifier: Development Status :: 4 - Beta
7
+ Classifier: Intended Audience :: Developers
8
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
9
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
10
+ Classifier: Topic :: Scientific/Engineering :: Image Recognition
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.8
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Requires-Python: >=3.8
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE
20
+ Requires-Dist: opencv-python>=4.8.0
21
+ Requires-Dist: numpy>=1.24.0
22
+ Requires-Dist: matplotlib>=3.7.0
23
+ Requires-Dist: tqdm>=4.66.0
24
+ Provides-Extra: smooth
25
+ Requires-Dist: filterpy>=1.4.5; extra == "smooth"
26
+ Provides-Extra: track
27
+ Requires-Dist: lap>=0.4.0; extra == "track"
28
+ Provides-Extra: web-flask
29
+ Requires-Dist: flask>=2.3.0; extra == "web-flask"
30
+ Requires-Dist: flask-cors>=4.0.0; extra == "web-flask"
31
+ Provides-Extra: web-fastapi
32
+ Requires-Dist: fastapi>=0.104.0; extra == "web-fastapi"
33
+ Requires-Dist: uvicorn>=0.24.0; extra == "web-fastapi"
34
+ Provides-Extra: web
35
+ Requires-Dist: flask>=2.3.0; extra == "web"
36
+ Requires-Dist: flask-cors>=4.0.0; extra == "web"
37
+ Requires-Dist: fastapi>=0.104.0; extra == "web"
38
+ Requires-Dist: uvicorn>=0.24.0; extra == "web"
39
+ Provides-Extra: all
40
+ Requires-Dist: filterpy>=1.4.5; extra == "all"
41
+ Requires-Dist: lap>=0.4.0; extra == "all"
42
+ Requires-Dist: flask>=2.3.0; extra == "all"
43
+ Requires-Dist: flask-cors>=4.0.0; extra == "all"
44
+ Requires-Dist: fastapi>=0.104.0; extra == "all"
45
+ Requires-Dist: uvicorn>=0.24.0; extra == "all"
46
+ Provides-Extra: dev
47
+ Requires-Dist: pytest>=7.4.0; extra == "dev"
48
+ Requires-Dist: black>=23.0.0; extra == "dev"
49
+ Requires-Dist: flake8>=6.0.0; extra == "dev"
50
+ Requires-Dist: build>=1.0.0; extra == "dev"
51
+ Requires-Dist: twine>=5.0.0; extra == "dev"
52
+ Dynamic: author
53
+ Dynamic: classifier
54
+ Dynamic: description
55
+ Dynamic: description-content-type
56
+ Dynamic: license-file
57
+ Dynamic: provides-extra
58
+ Dynamic: requires-dist
59
+ Dynamic: requires-python
60
+ Dynamic: summary
61
+
62
+ # VisionKit
63
+
64
+ **Professional Computer Vision Toolkit for Commercial Projects**
65
+
66
+ A comprehensive, production-ready library for object detection, tracking, and annotation - built as a reusable alternative to Supervision with enhanced features and innovations.
67
+
68
+ ## 🚀 Features
69
+
70
+ ### Core Detection Management
71
+ - **Immutable Detections**: Thread-safe, immutable operations
72
+ - **Efficient Caching**: Automatic caching of expensive computations (area, center, aspect ratio)
73
+ - **Rich Metadata**: Store custom data with detections
74
+ - **Flexible Indexing**: Natural slicing and filtering
75
+
76
+ ### Advanced Tracking
77
+ - **Multiple Algorithms**: SORT, ByteTrack, BoT-SORT
78
+ - **Box Inflation**: Automatic inflation/deflation for robust tracking
79
+ - **Unified Interface**: Single API for all tracking methods
80
+
81
+ ### Smart Zone Management
82
+ - **Multiple Trigger Types**: Center, bottom center, any corner, all corners
83
+ - **Zone Analytics**: Automatic counting and statistics
84
+ - **Batch Processing**: Efficient multi-zone operations
85
+
86
+ ### Professional Annotators
87
+ - **Box Annotator**: Rounded corners, adaptive thickness, confidence-based styling
88
+ - **Label Annotator**: Multiple positions, shadows, auto-sizing
89
+ - **Trace Annotator**: Fading trails, smoothing, variable thickness
90
+ - **Zone Annotator**: Transparent fills, labels, statistics
91
+ - **Heatmap Annotator**: Real-time density maps with decay
92
+
93
+ ### Flexible Filtering
94
+ - **Composable Filters**: Chain multiple filters
95
+ - **Built-in Filters**: Confidence, area, aspect ratio, class
96
+ - **Statistics Tracking**: Monitor filtering performance
97
+
98
+ ### Video Processing
99
+ - **Multi-Backend Writers**: OpenCV or FFmpeg
100
+ - **Progress Callbacks**: Real-time progress monitoring
101
+ - **Frame Generators**: Memory-efficient frame iteration
102
+
103
+ ## 📦 Installation
104
+
105
+ ```bash
106
+ # From PyPI (once published)
107
+ pip install eye-cv
108
+
109
+ # Recommended: enable optional features
110
+ pip install "eye-cv[all]" # tracking + smoothing + web
111
+
112
+ # Or pick what you need
113
+ pip install "eye-cv[track]" # advanced tracking (ByteTrack/BoT-SORT)
114
+ pip install "eye-cv[smooth]" # Kalman smoothing
115
+ pip install "eye-cv[web]" # Flask + FastAPI helpers
116
+
117
+ # Local dev install
118
+ pip install -e .
119
+ ```
120
+
121
+ ## 📚 Examples
122
+
123
+ **20+ comprehensive examples** in the [`examples/`](examples/) directory:
124
+
125
+ ```bash
126
+ cd examples
127
+ python 00_complete_showcase.py # See ALL features in action!
128
+ python 01_quickstart.py # 3-line usage
129
+ python 04_tracker_comparison.py # Compare SORT, ByteTrack, BoT-SORT
130
+ python 19_traffic_monitoring.py # Production traffic system
131
+ ```
132
+
133
+ See [`examples/README.md`](examples/README.md) for the complete list.
134
+
135
+ ## 💻 Quick Start
136
+
137
+ ```python
138
+ import visionkit as vk
139
+ from ultralytics import YOLO
140
+
141
+ # Load model
142
+ model = YOLO("yolo11n.pt")
143
+
144
+ # Create tracker
145
+ tracker = vk.Tracker(
146
+ tracker_type=vk.TrackerType.SORT,
147
+ inflation_factor=1.5 # Better tracking
148
+ )
149
+
150
+ # Define zone
151
+ zone = vk.Zone(
152
+ polygon=np.array([[100, 300], [200, 300], [200, 400], [100, 400]]),
153
+ trigger_type=vk.ZoneType.CENTER
154
+ )
155
+
156
+ # Create annotators
157
+ box_ann = vk.BoxAnnotator()
158
+ label_ann = vk.LabelAnnotator()
159
+ trace_ann = vk.TraceAnnotator(fade_trail=True)
160
+
161
+ # Process video
162
+ video = vk.VideoProcessor("input.mp4", "output.mp4")
163
+
164
+ def process_frame(frame, frame_idx):
165
+ # Detect
166
+ results = model(frame)[0]
167
+ detections = vk.Detections.from_yolo(results)
168
+
169
+ # Track
170
+ detections = tracker.update(detections)
171
+
172
+ # Filter by zone
173
+ zone_dets = zone.filter(detections)
174
+
175
+ # Annotate
176
+ annotated = box_ann.annotate(frame, detections)
177
+ annotated = trace_ann.annotate(annotated, detections)
178
+ annotated = label_ann.annotate(annotated, detections, labels)
179
+
180
+ return annotated
181
+
182
+ video.process(process_frame)
183
+ ```
184
+
185
+ ## 🎯 Innovations Over Supervision
186
+
187
+ 1. **Immutable Operations**: Thread-safe, prevents bugs
188
+ 2. **Automatic Caching**: Faster repeated computations
189
+ 3. **Box Inflation**: Better tracking without manual tuning
190
+ 4. **Multi-Backend Video**: FFmpeg for better quality/speed
191
+ 5. **Fading Trails**: Professional-looking traces
192
+ 6. **Rounded Corners**: Modern box styling
193
+ 7. **Heatmap Generation**: Built-in density visualization
194
+ 8. **Filter Pipeline Stats**: Monitor performance
195
+ 9. **Zone Analytics**: Built-in counting
196
+ 10. **Better Type Hints**: Improved IDE support
197
+
198
+ ## 📚 Documentation
199
+
200
+ ### Detections
201
+ ```python
202
+ # Create detections
203
+ detections = vk.Detections(
204
+ xyxy=boxes,
205
+ confidence=scores,
206
+ class_id=classes
207
+ )
208
+
209
+ # Cached properties
210
+ areas = detections.area # Fast, cached
211
+ centers = detections.center # Fast, cached
212
+ ratios = detections.aspect_ratio
213
+
214
+ # Filtering
215
+ filtered = detections.filter(detections.confidence > 0.5)
216
+
217
+ # Immutable updates
218
+ updated = detections.with_confidence(new_scores)
219
+ ```
220
+
221
+ ### Tracking
222
+ ```python
223
+ tracker = vk.Tracker(
224
+ tracker_type=vk.TrackerType.SORT,
225
+ max_age=30,
226
+ min_hits=3,
227
+ iou_threshold=0.3,
228
+ inflation_factor=2.0 # Inflate boxes 2x for matching
229
+ )
230
+
231
+ tracked = tracker.update(detections)
232
+ ```
233
+
234
+ ### Zones
235
+ ```python
236
+ zone = vk.Zone(
237
+ polygon=polygon_points,
238
+ trigger_type=vk.ZoneType.BOTTOM_CENTER, # Use bottom of box
239
+ name="Entrance"
240
+ )
241
+
242
+ # Check which detections are in zone
243
+ inside = zone.filter(detections)
244
+
245
+ # Get analytics
246
+ print(f"Current: {zone.current_count}, Total: {zone.total_count}")
247
+ ```
248
+
249
+ ### Filters
250
+ ```python
251
+ pipeline = vk.FilterPipeline([
252
+ vk.ConfidenceFilter(0.3),
253
+ vk.AreaFilter(min_area=100, max_area=50000),
254
+ vk.AspectRatioFilter(min_ratio=0.2, max_ratio=5.0),
255
+ vk.ClassFilter([0, 2, 5, 7])
256
+ ])
257
+
258
+ filtered = pipeline(detections)
259
+ stats = pipeline.get_stats()
260
+ ```
261
+
262
+ ### Video Writing
263
+ ```python
264
+ # OpenCV backend
265
+ writer = vk.VideoWriter(
266
+ "output.mp4",
267
+ fps=30,
268
+ resolution=(1920, 1080),
269
+ backend=vk.WriterBackend.OPENCV
270
+ )
271
+
272
+ # FFmpeg backend (better quality)
273
+ writer = vk.VideoWriter(
274
+ "output.mp4",
275
+ fps=30,
276
+ resolution=(1920, 1080),
277
+ backend=vk.WriterBackend.FFMPEG,
278
+ crf=18, # Quality (0-51, lower = better)
279
+ preset="fast" # Encoding speed
280
+ )
281
+ ```
282
+
283
+ ## 🎨 Color Palettes
284
+
285
+ ```python
286
+ # Predefined palettes
287
+ colors = vk.PredefinedPalettes.bright()
288
+ colors = vk.PredefinedPalettes.pastel()
289
+ colors = vk.PredefinedPalettes.traffic()
290
+ colors = vk.PredefinedPalettes.monochrome(vk.Color(255, 0, 0), steps=10)
291
+
292
+ # Custom palette
293
+ custom = vk.ColorPalette([
294
+ vk.Color(255, 0, 0),
295
+ vk.Color(0, 255, 0),
296
+ vk.Color.from_hex("#0000FF")
297
+ ])
298
+ ```
299
+
300
+ ## 📄 License
301
+
302
+ MIT License - Free for commercial use
303
+
304
+ ## 🤝 Contributing
305
+
306
+ This is a production library for your commercial projects. Extend and customize as needed.
307
+
308
+ ## ⚡ Performance Tips
309
+
310
+ 1. Use box inflation (1.5-2.0) for better tracking
311
+ 2. Enable caching for repeated property access
312
+ 3. Use FFmpeg backend for video writing
313
+ 4. Batch zone operations with MultiZone
314
+ 5. Use filter pipelines instead of manual filtering
315
+
316
+ ## 📊 Example Output
317
+
318
+ See `example.py` for complete usage with all features.
319
+ # eye
@@ -0,0 +1,94 @@
1
+ eye/__init__.py,sha256=jkklS84w2YKPei6PDyvYJqcI_0ZnzMdVRNiAVcxdLyk,4706
2
+ eye/__init___supervision_original.py,sha256=6o07eA6xQqEAhChMEhqy9sUzcn9QON-QM9KsmqmDvYY,3338
3
+ eye/config.py,sha256=CAUMVD0GFWHTBAGVO-qGAMSov2Jer2EUC0gqJCwFlbY,77
4
+ eye/filters.py,sha256=kWgmR-yetEHGfoyXZwsujnc-6eVBKRdf8ooU40bPR5Q,3588
5
+ eye/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ eye/quick.py,sha256=ZVfu9YO0ShJYZn0Fxa9WnEcRbVFSrSwFSeoailMRqv8,3178
7
+ eye/web.py,sha256=cuMOdHYAQ0edO54OOgMqbSZaWGLSanYzsnrli7oIbWU,8303
8
+ eye/annotators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ eye/annotators/base.py,sha256=b-Ydrs4P0bX9Xz3BfqmxTO3jSRJjjlNIxjTG72969sc,623
10
+ eye/annotators/core.py,sha256=GpnR87N4zeYy4GGx9ydU3e-ciNIZyUkcPltQNZgLeIo,101865
11
+ eye/annotators/line.py,sha256=YpqHOR3hTg-JW4O58mYj6AKAZEsSe4003BM5xmXEvAg,4276
12
+ eye/annotators/modern.py,sha256=o99upeal7ia1UluPvyv0Ru6JLvZNNrYSocNYrmzlfnY,19720
13
+ eye/annotators/trace.py,sha256=KRas50W-rq5Res46E71qZOgW2-iJGbFx9F9nnZvyBWc,5312
14
+ eye/annotators/utils.py,sha256=S-CC2lHNxul25ZtimI1CXv2uLcQIgUq7e_llilZNySk,6192
15
+ eye/assets/__init__.py,sha256=sNOMbHkkbL-Z4nW6QVksOe4XeL5Q4sDAhIUcGzgHx4E,92
16
+ eye/assets/downloader.py,sha256=oPvOXff8PCjtCuNyjBqvi4BEsUtvMWWJy6zkMfAaML4,3023
17
+ eye/assets/list.py,sha256=mHiQZi2t0xD6BwX0JyKYBtggg_1oPsKs0BqvAURIQjc,4048
18
+ eye/classification/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
+ eye/classification/core.py,sha256=aDRFb4djDpLPfTPaynt65fq2Y-tpOaqD-Sfjrf-PEdI,5957
20
+ eye/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
+ eye/core/tracking.py,sha256=rzvMega9-qUAC0-QR2I7Q1YLu_XGHQ30X0zIl-VXbKg,4985
22
+ eye/core/trackers/__init__.py,sha256=OYGz_2xNpu_GAs6pkTl7Z1s6V2fBWwHxeC5pYkyrKL8,32
23
+ eye/core/trackers/botsort_tracker.py,sha256=movit9j5f7fD6NWTvVl8kQiIw-ritOXc0uBdXCPl9_g,12736
24
+ eye/core/trackers/bytetrack_tracker.py,sha256=TFG7zvwXvgEssa9WSUvEm6cm44dh-B_j7PIaoQOjTsE,10380
25
+ eye/core/trackers/sort_tracker.py,sha256=_P5PkB_bLixNI_eRECiOonOo3AqipL4FrPnHogJNbLk,7303
26
+ eye/dataset/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
+ eye/dataset/core.py,sha256=bzXyYtUHq20uRAHwIZ4JdBLeqJbiiJalPoIxl-pQpZg,35034
28
+ eye/dataset/utils.py,sha256=eykZ5YOBoW66YXUjF6ALfjZIA5YbaFQNab_No0ep6CE,8507
29
+ eye/dataset/formats/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
+ eye/dataset/formats/coco.py,sha256=9bIOsCPHI1OZKfHlFXRcpPAxOxekSA7_JCFIuCKu1aQ,8546
31
+ eye/dataset/formats/pascal_voc.py,sha256=bBl04B3AXM6n71pVODnPGFfO8qWOfR7IOnjahSoZTOQ,9529
32
+ eye/dataset/formats/yolo.py,sha256=A_sMSmX0yauQeIhsZs-u80_2yWe6SISBuSyx6XN8juY,9826
33
+ eye/detection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
+ eye/detection/auto_convert.py,sha256=WBpsVfc_N4I07V3zQf0JRIvoPdsTBxiPMYgvuYHxPJA,6155
35
+ eye/detection/core.py,sha256=iaZkbj00K5oDQg_BhkluTIgLifN43OvnlRlV53R-TwU,55768
36
+ eye/detection/detections_enhanced.py,sha256=rRMwwk5ewevw53yQ0U26vCx8QYnwo31GBGMLScjOiM8,14790
37
+ eye/detection/line_zone.py,sha256=3KFPG2onEWRNpmEoTQrDll8erbM6zx_jYgzwOl4YGjk,32038
38
+ eye/detection/lmm.py,sha256=kjtN-CuKNls_T9PaXpsrNo_9m0Ad28NpJJOopzrzOew,6843
39
+ eye/detection/overlap_filter.py,sha256=RB2YQBm07awo5MKfP1wp7N72jhcJc5p_asZ5l4z2yQU,9674
40
+ eye/detection/utils.py,sha256=9sDLmrGI3KY3XEeEsd9AR8bhaheIS3cbnQUa7ZwOz4M,39634
41
+ eye/detection/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
+ eye/detection/tools/csv_sink.py,sha256=vCU9tjlxmvTMge7vOZVuZGjF-q8vDd7JHOuewVUERZg,5583
43
+ eye/detection/tools/inference_slicer.py,sha256=uZsng3VBvuHadYe0AsJD-F_vTUeeCl59jMRvqZwx8Xw,12188
44
+ eye/detection/tools/json_sink.py,sha256=xHFp1_GtUHMQH3CsT7UVTqW8fyfmYLFuYZAvKBgCNYU,4477
45
+ eye/detection/tools/polygon_zone.py,sha256=jtD7eTReCBVrXpyY93YbVN1tyJTSAl837sWprequXg8,7620
46
+ eye/detection/tools/smoother.py,sha256=csLe3fqhlNhLZk8o2pkZ3KBOUg7tmeuLYSAzgHrFHrA,4288
47
+ eye/detection/tools/smoothing.py,sha256=yZnUmtsMbFFEqE4VEKQFiNCgV8-NWXqjXRRX-8dDpgs,5554
48
+ eye/detection/tools/smoothing_config.py,sha256=GYHrqeO-NDoTfj_9VsbzHVvsoUYgxCZkMLududnWuT8,6940
49
+ eye/detection/tools/transformers.py,sha256=mWapDZAea6sihAViAot3uCMmwtiZCy2zEDTRIM64oSs,9798
50
+ eye/draw/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
+ eye/draw/color.py,sha256=lwl96IzMxnnHiEHeVk-QDfby4mvwAh8T7Sw7YK1QXDE,4525
52
+ eye/draw/utils.py,sha256=sUOgEldFwdcH7DWTyfioWrGaA-GCcaOiooHt3119Mlc,11618
53
+ eye/geometry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
+ eye/geometry/core.py,sha256=OaPvaPLZdWK3AC2FXNXZf2Drzw2mTLqE0rcfjgVBbBU,3528
55
+ eye/geometry/utils.py,sha256=H9HmkTOnNcChMV0Ny9S0tJNxrl9sNFKeOc7XhFfsogs,1514
56
+ eye/keypoint/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
+ eye/keypoint/annotators.py,sha256=RxVPt24PGxMqF7Z2ug-Hgt11yUu6E82fmBqWmWz4aMk,15478
58
+ eye/keypoint/core.py,sha256=I4ZEgwokbYPSYcQyBYMU2p45K31IEs-ddcahOUq7i7E,25182
59
+ eye/keypoint/skeletons.py,sha256=jimzJ_cjyfdtb-RWGCLMc2tMtP3II9CsjFf2jLl6Y3c,54318
60
+ eye/metrics/__init__.py,sha256=lRR_jBRVAzCQmqmquAz0cwPy-mep4YqmYtK6ihlEqNA,616
61
+ eye/metrics/core.py,sha256=fzTLmO7h5KtTGo7c9yis1pss1sVsbWxQ0uO8tRvworQ,2268
62
+ eye/metrics/detection.py,sha256=TmQxJ5Qe3AjoSm3vtEn-12MrrNZJQqVjj9UvFwj_Bn0,31754
63
+ eye/metrics/f1_score.py,sha256=zaUHv3FS7IFZxaBF4sH7RKaQgxOB2cpXp7GydHoTCMY,25397
64
+ eye/metrics/mean_average_precision.py,sha256=BqsQN76vObMEXFEqkc1S7AP5aESmWKHmRWC064ZoaJA,24076
65
+ eye/metrics/mean_average_recall.py,sha256=gitqJpZQl1BUqRJdyXxEK58JWf6W3p3w7D2OENUjK9g,27872
66
+ eye/metrics/precision.py,sha256=F6phLBpsIjcicB55PePRENGbDOLxT5xlxLl4Lk9d9w8,26049
67
+ eye/metrics/recall.py,sha256=mcvmhvVxxA6Mf4-GdqgHEp6rLYj9RWEVgg32mK983CQ,25676
68
+ eye/metrics/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
+ eye/metrics/utils/object_size.py,sha256=vhXQD-x6C5l-58OV0yaC7q1otIaLCt7Lcl0tWFu8xso,5439
70
+ eye/metrics/utils/utils.py,sha256=nTiaoEYXOnpA54Q8SlF7qeGeI4kb4XLD0yAI6VIQOBE,297
71
+ eye/tracker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
+ eye/tracker/byte_tracker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
+ eye/tracker/byte_tracker/core.py,sha256=Wnbx6HSX_K5JQeHtudyJgKOx8kI6mAzOH4B4amkil3Y,15277
74
+ eye/tracker/byte_tracker/kalman_filter.py,sha256=7KXyIq2Ck0-iM6UIsgTyoYX2F_H74gEO7voQP7fP9Ig,7496
75
+ eye/tracker/byte_tracker/matching.py,sha256=oqUimgDPKu2nU4krbNfuS26crKpGJxFCscj2rHdtq4s,2344
76
+ eye/tracker/byte_tracker/single_object_track.py,sha256=f01rd_ZuLXYMHk-BjdoS1Py-QbOu23rkG8HnZShmj0o,5870
77
+ eye/tracker/byte_tracker/utils.py,sha256=Jv6uB6Df46uFQ5cRHYDBL7jRFtzB7riK_ikNbOr2BbE,482
78
+ eye/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
+ eye/utils/conversion.py,sha256=OMJpWa1KtflKbfLM0jke5ydmK02zji7M9bNbS6BY3PI,3971
80
+ eye/utils/file.py,sha256=A3cb3ZzZU8H_Yp63cxASrPDZepyhCidOPdKxqHQqf14,4994
81
+ eye/utils/image.py,sha256=fH3DFAjNnw5k0JGMaHMNnd4wo-tH53f6-dVyEvI4qbM,29339
82
+ eye/utils/internal.py,sha256=IAIV7i9LtYjhtWYEvh6GtLqbSfOvu7YO3Vwdy8XfLso,6222
83
+ eye/utils/iterables.py,sha256=ltapimvFLhV43-zfwhdzflOhScR6bWFQAIJdGcIlppY,2519
84
+ eye/utils/notebook.py,sha256=P9XdCfpNBN5eo1Itzho1_7onqJ0WVoZzV0ryI_eFOls,3453
85
+ eye/utils/video.py,sha256=QE12zersv8CsRo7Im1cP4zLIrZb7up3MycNaJobmUuo,10051
86
+ eye/utils_eye/__init__.py,sha256=AH6armLb9QDMiDcjLuJYYFZRpnRFhz78pwN5w-jdrVM,14
87
+ eye/utils_eye/geometry.py,sha256=sh5rqFi7wK4qVWyrARFU2pI3WY7e-KBZVcF_ZcmJMQs,1920
88
+ eye/utils_eye/nms.py,sha256=cyCqPZHQQgxo9BUhJf0fcve7bUTM0QOu7dFidIpJw1E,1391
89
+ eye/validators/__init__.py,sha256=2H8tINSWt5XPasJzwsqxuCUkjykNjD4o4_uJomIBM1Q,4661
90
+ eye_cv-1.0.0.dist-info/licenses/LICENSE,sha256=3f4ZF0KXgBJLAS65F_DTbqVxRBPKaGnF7vSxL6oz1iQ,1091
91
+ eye_cv-1.0.0.dist-info/METADATA,sha256=u5RDPZNwFE2TVfyjq_FJFmRBqHlI40tjHSpHWaBD5CI,9502
92
+ eye_cv-1.0.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
93
+ eye_cv-1.0.0.dist-info/top_level.txt,sha256=O14nPS6w4bLr1liyqPTYbRjLH3UYz7FTAcLRrq03XGM,4
94
+ eye_cv-1.0.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.10.2)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Dakar Project
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.
@@ -0,0 +1 @@
1
+ eye