ultralytics 8.2.16__py3-none-any.whl → 8.2.18__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 ultralytics might be problematic. Click here for more details.

@@ -378,7 +378,7 @@ class Annotator:
378
378
  cv2.polylines(self.im, [points], isClosed=False, color=color, thickness=track_thickness)
379
379
  cv2.circle(self.im, (int(track[-1][0]), int(track[-1][1])), track_thickness * 2, color, -1)
380
380
 
381
- def queue_counts_display(self, label, points=None, region_color=(255, 255, 255), txt_color=(0, 0, 0), fontsize=0.7):
381
+ def queue_counts_display(self, label, points=None, region_color=(255, 255, 255), txt_color=(0, 0, 0)):
382
382
  """
383
383
  Displays queue counts on an image centered at the points with customizable font size and colors.
384
384
 
@@ -387,14 +387,14 @@ class Annotator:
387
387
  points (tuple): region points for center point calculation to display text
388
388
  region_color (RGB): queue region color
389
389
  txt_color (RGB): text display color
390
- fontsize (float): text fontsize
391
390
  """
391
+
392
392
  x_values = [point[0] for point in points]
393
393
  y_values = [point[1] for point in points]
394
394
  center_x = sum(x_values) // len(points)
395
395
  center_y = sum(y_values) // len(points)
396
396
 
397
- text_size = cv2.getTextSize(label, 0, fontScale=fontsize, thickness=self.tf)[0]
397
+ text_size = cv2.getTextSize(label, 0, fontScale=self.sf, thickness=self.tf)[0]
398
398
  text_width = text_size[0]
399
399
  text_height = text_size[1]
400
400
 
@@ -413,13 +413,12 @@ class Annotator:
413
413
  label,
414
414
  (text_x, text_y),
415
415
  0,
416
- fontScale=fontsize,
416
+ fontScale=self.sf,
417
417
  color=txt_color,
418
418
  thickness=self.tf,
419
419
  lineType=cv2.LINE_AA,
420
420
  )
421
421
 
422
- ### Parking management utils
423
422
  def display_objects_labels(self, im0, text, txt_color, bg_color, x_center, y_center, margin):
424
423
  """
425
424
  Display the bounding boxes labels in parking management app.
@@ -445,7 +444,6 @@ class Annotator:
445
444
  cv2.rectangle(im0, (rect_x1, rect_y1), (rect_x2, rect_y2), bg_color, -1)
446
445
  cv2.putText(im0, text, (text_x, text_y), 0, self.sf, txt_color, self.tf, lineType=cv2.LINE_AA)
447
446
 
448
- # Parking lot and object counting app
449
447
  def display_analytics(self, im0, text, txt_color, bg_color, margin):
450
448
  """
451
449
  Display the overall statistics for parking lots
@@ -459,12 +457,12 @@ class Annotator:
459
457
 
460
458
  horizontal_gap = int(im0.shape[1] * 0.02)
461
459
  vertical_gap = int(im0.shape[0] * 0.01)
462
-
463
460
  text_y_offset = 0
464
-
465
461
  for label, value in text.items():
466
462
  txt = f"{label}: {value}"
467
- text_size = cv2.getTextSize(txt, 0, int(self.sf * 1.5), int(self.tf * 1.5))[0]
463
+ text_size = cv2.getTextSize(txt, 0, self.sf, self.tf)[0]
464
+ if text_size[0] < 5 or text_size[1] < 5:
465
+ text_size = (5, 5)
468
466
  text_x = im0.shape[1] - text_size[0] - margin * 2 - horizontal_gap
469
467
  text_y = text_y_offset + text_size[1] + margin * 2 + vertical_gap
470
468
  rect_x1 = text_x - margin * 2
@@ -472,9 +470,7 @@ class Annotator:
472
470
  rect_x2 = text_x + text_size[0] + margin * 2
473
471
  rect_y2 = text_y + margin * 2
474
472
  cv2.rectangle(im0, (rect_x1, rect_y1), (rect_x2, rect_y2), bg_color, -1)
475
- cv2.putText(
476
- im0, txt, (text_x, text_y), 0, int(self.sf * 1.5), txt_color, int(self.tf * 1.5), lineType=cv2.LINE_AA
477
- )
473
+ cv2.putText(im0, txt, (text_x, text_y), 0, self.sf, txt_color, self.tf, lineType=cv2.LINE_AA)
478
474
  text_y_offset = rect_y2
479
475
 
480
476
  @staticmethod
@@ -518,7 +514,9 @@ class Annotator:
518
514
  cv2.circle(self.im, (int(x_coord), int(y_coord)), radius, (0, 255, 0), -1, lineType=cv2.LINE_AA)
519
515
  return self.im
520
516
 
521
- def plot_angle_and_count_and_stage(self, angle_text, count_text, stage_text, center_kpt, line_thickness=2):
517
+ def plot_angle_and_count_and_stage(
518
+ self, angle_text, count_text, stage_text, center_kpt, color=(104, 31, 17), txt_color=(255, 255, 255)
519
+ ):
522
520
  """
523
521
  Plot the pose angle, count value and step stage.
524
522
 
@@ -527,16 +525,17 @@ class Annotator:
527
525
  count_text (str): counts value for workout monitoring
528
526
  stage_text (str): stage decision for workout monitoring
529
527
  center_kpt (int): centroid pose index for workout monitoring
530
- line_thickness (int): thickness for text display
528
+ color (tuple): text background color for workout monitoring
529
+ txt_color (tuple): text foreground color for workout monitoring
531
530
  """
531
+
532
532
  angle_text, count_text, stage_text = (f" {angle_text:.2f}", f"Steps : {count_text}", f" {stage_text}")
533
- font_scale = 0.6 + (line_thickness / 10.0)
534
533
 
535
534
  # Draw angle
536
- (angle_text_width, angle_text_height), _ = cv2.getTextSize(angle_text, 0, font_scale, line_thickness)
535
+ (angle_text_width, angle_text_height), _ = cv2.getTextSize(angle_text, 0, self.sf, self.tf)
537
536
  angle_text_position = (int(center_kpt[0]), int(center_kpt[1]))
538
537
  angle_background_position = (angle_text_position[0], angle_text_position[1] - angle_text_height - 5)
539
- angle_background_size = (angle_text_width + 2 * 5, angle_text_height + 2 * 5 + (line_thickness * 2))
538
+ angle_background_size = (angle_text_width + 2 * 5, angle_text_height + 2 * 5 + (self.tf * 2))
540
539
  cv2.rectangle(
541
540
  self.im,
542
541
  angle_background_position,
@@ -544,19 +543,19 @@ class Annotator:
544
543
  angle_background_position[0] + angle_background_size[0],
545
544
  angle_background_position[1] + angle_background_size[1],
546
545
  ),
547
- (255, 255, 255),
546
+ color,
548
547
  -1,
549
548
  )
550
- cv2.putText(self.im, angle_text, angle_text_position, 0, font_scale, (0, 0, 0), line_thickness)
549
+ cv2.putText(self.im, angle_text, angle_text_position, 0, self.sf, txt_color, self.tf)
551
550
 
552
551
  # Draw Counts
553
- (count_text_width, count_text_height), _ = cv2.getTextSize(count_text, 0, font_scale, line_thickness)
552
+ (count_text_width, count_text_height), _ = cv2.getTextSize(count_text, 0, self.sf, self.tf)
554
553
  count_text_position = (angle_text_position[0], angle_text_position[1] + angle_text_height + 20)
555
554
  count_background_position = (
556
555
  angle_background_position[0],
557
556
  angle_background_position[1] + angle_background_size[1] + 5,
558
557
  )
559
- count_background_size = (count_text_width + 10, count_text_height + 10 + (line_thickness * 2))
558
+ count_background_size = (count_text_width + 10, count_text_height + 10 + self.tf)
560
559
 
561
560
  cv2.rectangle(
562
561
  self.im,
@@ -565,13 +564,13 @@ class Annotator:
565
564
  count_background_position[0] + count_background_size[0],
566
565
  count_background_position[1] + count_background_size[1],
567
566
  ),
568
- (255, 255, 255),
567
+ color,
569
568
  -1,
570
569
  )
571
- cv2.putText(self.im, count_text, count_text_position, 0, font_scale, (0, 0, 0), line_thickness)
570
+ cv2.putText(self.im, count_text, count_text_position, 0, self.sf, txt_color, self.tf)
572
571
 
573
572
  # Draw Stage
574
- (stage_text_width, stage_text_height), _ = cv2.getTextSize(stage_text, 0, font_scale, line_thickness)
573
+ (stage_text_width, stage_text_height), _ = cv2.getTextSize(stage_text, 0, self.sf, self.tf)
575
574
  stage_text_position = (int(center_kpt[0]), int(center_kpt[1]) + angle_text_height + count_text_height + 40)
576
575
  stage_background_position = (stage_text_position[0], stage_text_position[1] - stage_text_height - 5)
577
576
  stage_background_size = (stage_text_width + 10, stage_text_height + 10)
@@ -583,10 +582,10 @@ class Annotator:
583
582
  stage_background_position[0] + stage_background_size[0],
584
583
  stage_background_position[1] + stage_background_size[1],
585
584
  ),
586
- (255, 255, 255),
585
+ color,
587
586
  -1,
588
587
  )
589
- cv2.putText(self.im, stage_text, stage_text_position, 0, font_scale, (0, 0, 0), line_thickness)
588
+ cv2.putText(self.im, stage_text, stage_text_position, 0, self.sf, txt_color, self.tf)
590
589
 
591
590
  def seg_bbox(self, mask, mask_color=(255, 0, 255), det_label=None, track_label=None):
592
591
  """
@@ -626,29 +625,30 @@ class Annotator:
626
625
  line_color (RGB): Distance line color.
627
626
  centroid_color (RGB): Bounding box centroid color.
628
627
  """
629
- (text_width_m, text_height_m), _ = cv2.getTextSize(f"Distance M: {distance_m:.2f}m", 0, 0.8, 2)
630
- cv2.rectangle(self.im, (15, 25), (15 + text_width_m + 10, 25 + text_height_m + 20), (255, 255, 255), -1)
628
+
629
+ (text_width_m, text_height_m), _ = cv2.getTextSize(f"Distance M: {distance_m:.2f}m", 0, self.sf, self.tf)
630
+ cv2.rectangle(self.im, (15, 25), (15 + text_width_m + 10, 25 + text_height_m + 20), line_color, -1)
631
631
  cv2.putText(
632
632
  self.im,
633
633
  f"Distance M: {distance_m:.2f}m",
634
634
  (20, 50),
635
635
  0,
636
- 0.8,
637
- (0, 0, 0),
638
- 2,
636
+ self.sf,
637
+ centroid_color,
638
+ self.tf,
639
639
  cv2.LINE_AA,
640
640
  )
641
641
 
642
- (text_width_mm, text_height_mm), _ = cv2.getTextSize(f"Distance MM: {distance_mm:.2f}mm", 0, 0.8, 2)
643
- cv2.rectangle(self.im, (15, 75), (15 + text_width_mm + 10, 75 + text_height_mm + 20), (255, 255, 255), -1)
642
+ (text_width_mm, text_height_mm), _ = cv2.getTextSize(f"Distance MM: {distance_mm:.2f}mm", 0, self.sf, self.tf)
643
+ cv2.rectangle(self.im, (15, 75), (15 + text_width_mm + 10, 75 + text_height_mm + 20), line_color, -1)
644
644
  cv2.putText(
645
645
  self.im,
646
646
  f"Distance MM: {distance_mm:.2f}mm",
647
647
  (20, 100),
648
648
  0,
649
- 0.8,
650
- (0, 0, 0),
651
- 2,
649
+ self.sf,
650
+ centroid_color,
651
+ self.tf,
652
652
  cv2.LINE_AA,
653
653
  )
654
654
 
@@ -656,7 +656,7 @@ class Annotator:
656
656
  cv2.circle(self.im, centroids[0], 6, centroid_color, -1)
657
657
  cv2.circle(self.im, centroids[1], 6, centroid_color, -1)
658
658
 
659
- def visioneye(self, box, center_point, color=(235, 219, 11), pin_color=(255, 0, 255), thickness=2, pins_radius=10):
659
+ def visioneye(self, box, center_point, color=(235, 219, 11), pin_color=(255, 0, 255)):
660
660
  """
661
661
  Function for pinpoint human-vision eye mapping and plotting.
662
662
 
@@ -665,13 +665,11 @@ class Annotator:
665
665
  center_point (tuple): center point for vision eye view
666
666
  color (tuple): object centroid and line color value
667
667
  pin_color (tuple): visioneye point color value
668
- thickness (int): int value for line thickness
669
- pins_radius (int): visioneye point radius value
670
668
  """
671
669
  center_bbox = int((box[0] + box[2]) / 2), int((box[1] + box[3]) / 2)
672
- cv2.circle(self.im, center_point, pins_radius, pin_color, -1)
673
- cv2.circle(self.im, center_bbox, pins_radius, color, -1)
674
- cv2.line(self.im, center_point, center_bbox, color, thickness)
670
+ cv2.circle(self.im, center_point, self.tf * 2, pin_color, -1)
671
+ cv2.circle(self.im, center_bbox, self.tf * 2, color, -1)
672
+ cv2.line(self.im, center_point, center_bbox, color, self.tf)
675
673
 
676
674
 
677
675
  @TryExcept() # known issue https://github.com/ultralytics/yolov5/issues/5395
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.2.16
3
+ Version: 8.2.18
4
4
  Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author: Glenn Jocher, Ayush Chaurasia, Jing Qiu
6
6
  Maintainer: Glenn Jocher, Ayush Chaurasia, Jing Qiu
@@ -1,4 +1,4 @@
1
- ultralytics/__init__.py,sha256=U9gq2dVgJR4iYEqbeRhy4SDx2LIkYY0kzorgUp0siAA,633
1
+ ultralytics/__init__.py,sha256=UvIkLkGIahFV3Ubeoke_5aRikBkOXwN5EWZEYJ8uR3M,633
2
2
  ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
3
3
  ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
4
4
  ultralytics/cfg/__init__.py,sha256=lR6jykSO_0cigsjrqSyFj_8JG_LvYi796viasyWhcfs,21358
@@ -81,7 +81,7 @@ ultralytics/engine/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDT
81
81
  ultralytics/engine/exporter.py,sha256=2troO7ah3gAhHyQ2VCjFvaK9NBc6uleIVft5IRBjeFM,58122
82
82
  ultralytics/engine/model.py,sha256=IE6HE9VIzqO3DscxSLexub0LUR673eiPFrCPCt6ozEE,40103
83
83
  ultralytics/engine/predictor.py,sha256=wQRKdWGDTP5A6CS0gTC6U3RPDMhP3QkEzWSPm6eqCkU,17022
84
- ultralytics/engine/results.py,sha256=tVcViFF2pT1THaNaM6LIDxzhIQQ7SZf2NN-vKjLlN6Y,30919
84
+ ultralytics/engine/results.py,sha256=1ZY6eXb5uHmDShAXPmXZ-117ZlqeffEZLd2LqFgg8Ik,30975
85
85
  ultralytics/engine/trainer.py,sha256=P5XbPxh5hj4TLwuKeriuAlvcBWmILStm40-SgPrYvLk,35149
86
86
  ultralytics/engine/tuner.py,sha256=iZrgMmXSDpfuDu4bdFRflmAsscys2-8W8qAGxSyOVJE,11844
87
87
  ultralytics/engine/validator.py,sha256=Y21Uo8_Zto4qjk_YqQk6k7tyfpq_Qk9cfjeXeyDRxs8,14643
@@ -153,14 +153,14 @@ ultralytics/nn/modules/conv.py,sha256=Ywe87IhuaS22mR2JJ9xjnW8Sb-m7WTjxuqIxV_Dv8l
153
153
  ultralytics/nn/modules/head.py,sha256=3N_4zW1UvhI1jCrIxIkNYxQDdiW6HxtxpaNAAudq6NU,22236
154
154
  ultralytics/nn/modules/transformer.py,sha256=AxD9uURpCl-EqvXe3DiG6JW-pBzB16G-AahLdZ7yayo,17909
155
155
  ultralytics/nn/modules/utils.py,sha256=779QnnKp9v8jv251ESduTXJ0ol8HkIOLbGQWwEGQjhU,3196
156
- ultralytics/solutions/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
157
- ultralytics/solutions/ai_gym.py,sha256=IZHpvmNyEQT_aqMTrA5sIjCsl3_5Zl2WG31HxGT6KV4,5696
158
- ultralytics/solutions/distance_calculation.py,sha256=N1QB5uDG_6sp8jD5uSwp_NTPmyP4UCqJm9G2lNrgpr8,6334
159
- ultralytics/solutions/heatmap.py,sha256=LDY8cpmsenkaWgDmaKuOPMyQcPCH4jQeMvgbZlTx2fc,11970
160
- ultralytics/solutions/object_counter.py,sha256=nYwUN_9M5azW9zET_hnV7wIY8gDNR4LtUoWo4C2cbXw,11287
161
- ultralytics/solutions/parking_management.py,sha256=-AxUfpBoCCMAaYzeYRohCdBvG0Y7bG37Rvz04sO-6NE,9080
162
- ultralytics/solutions/queue_management.py,sha256=TBQ2dIKYtymBjhdw0Enxa22KHyH3IdXf2C-1Se21siA,6684
163
- ultralytics/solutions/speed_estimation.py,sha256=lvaU-F8f3V4KFVKFaNS7isIdYtMSFjh_zF9gl0Mals8,6714
156
+ ultralytics/solutions/__init__.py,sha256=Ogwo0ckEqzULTiRopo6ZeqjBwlHgsg2WYyO_rGARtQA,490
157
+ ultralytics/solutions/ai_gym.py,sha256=xpKBX37VmAjJpSPUfC8w1IQ0wqOcURAeWZ_3LoVrXSs,4639
158
+ ultralytics/solutions/distance_calculation.py,sha256=pSIkyytHGRAaNzIrkkNkiOnSVWU1PYvURlCIV_jRORA,6505
159
+ ultralytics/solutions/heatmap.py,sha256=AHXnmXhoQ95ph74zsdrvX_Lfy3wF0SsH0MIeTixE7Qg,10386
160
+ ultralytics/solutions/object_counter.py,sha256=htcQGWJX1y-vXVV1yUiTDT3sm8ByItjSNfu2Rl2IEmk,10808
161
+ ultralytics/solutions/parking_management.py,sha256=b0ZyIspCULKO0OIYHEi7x2BqMBQR-QPmOxDfcfuU2ho,9696
162
+ ultralytics/solutions/queue_management.py,sha256=ECm6gLZplmE9Cm-zdOazHBBDcW-vvr8nx2M28fcPbts,6787
163
+ ultralytics/solutions/speed_estimation.py,sha256=kjqMSHGTHMZaNgTKNKWULxnJQNsvhq4WMUphMVlBjsc,6768
164
164
  ultralytics/trackers/__init__.py,sha256=j72IgH2dZHQArMPK4YwcV5ieIw94fYvlGdQjB9cOQKw,227
165
165
  ultralytics/trackers/basetrack.py,sha256=-vBDD-Q9lsxfTMK2w9kuqWGrYbRMmaBCCEbGGyR53gE,3675
166
166
  ultralytics/trackers/bot_sort.py,sha256=39AvhYVbT7izF3--rX_e6Lhgb5czTA23gw6AgnNcRds,8601
@@ -170,10 +170,10 @@ ultralytics/trackers/utils/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7J
170
170
  ultralytics/trackers/utils/gmc.py,sha256=vwcPA1n5zjPaBGhCDt8ItN7rq_6Sczsjn4gsXJfRylU,13688
171
171
  ultralytics/trackers/utils/kalman_filter.py,sha256=0oqhk59NKEiwcJ2FXnw6_sT4bIFC6Wu5IY2B-TGxJKU,15168
172
172
  ultralytics/trackers/utils/matching.py,sha256=UxhSGa5pN6WoYwYSBAkkt-O7xMxUR47VuUB6PfVNkb4,5404
173
- ultralytics/utils/__init__.py,sha256=BGA9z_s-MnB5DgzMPsGjBnC88582MiapOiFV09hplGs,39518
173
+ ultralytics/utils/__init__.py,sha256=AjzSdFGfEPMPyFFX9JaONkmI5xgWLHFMO77aBA0ghpM,39518
174
174
  ultralytics/utils/autobatch.py,sha256=ygZ3f2ByIkcujB89ENcTnGWWnAQw5Pbg6nBuShg-5t4,3863
175
175
  ultralytics/utils/benchmarks.py,sha256=PlnUqhl2Om7jp7bKICDj9a2ABpJSl31VFI3ESnGdme8,23552
176
- ultralytics/utils/checks.py,sha256=wppGRXSjjjCkdGkFUSzICiMpIQyo9kqbVTlwoEXLQcA,28076
176
+ ultralytics/utils/checks.py,sha256=lca-tqMVbMgsHXb_g-LaVqXv6zoDKFXHqc2SXvO0njM,28124
177
177
  ultralytics/utils/dist.py,sha256=3HeNbY2gp7vYhcvVhsrvTrQXpQmgT8tpmnzApf3eQRA,2267
178
178
  ultralytics/utils/downloads.py,sha256=cmO2Ev1DV1m_lYgQ2yGDG5xVRIBVS_z9nS_Frec_NeU,21496
179
179
  ultralytics/utils/errors.py,sha256=GqP_Jgj_n0paxn8OMhn3DTCgoNkB2WjUcUaqs-M6SQk,816
@@ -183,7 +183,7 @@ ultralytics/utils/loss.py,sha256=ejXnPEIAzNEoNz2UjW0_fcdeUs9Hy-jPzUrJ3FiIIwE,327
183
183
  ultralytics/utils/metrics.py,sha256=XPD-xP0fchR8KgCuTcihV2-n0EK1cWi3-53BWN_pLuA,53518
184
184
  ultralytics/utils/ops.py,sha256=wZCWx7dm5GJNIJHyZaFJRetGcQ7prdv-anplqq9figQ,33309
185
185
  ultralytics/utils/patches.py,sha256=SgMqeMsq2K6JoBJP1NplXMl9C6rK0JeJUChjBrJOneo,2750
186
- ultralytics/utils/plotting.py,sha256=ihlGqsBjL23p9ngI0rbjV1Mk10y4p6Z62SlxRORzDaU,48466
186
+ ultralytics/utils/plotting.py,sha256=47mfSDCP7Pt3jT_IlgnIwIH3wcBeSh04lbzep_F2wPc,48207
187
187
  ultralytics/utils/tal.py,sha256=xuIyryUjaaYHkHPG9GvBwh1xxN2Hq4y3hXOtuERehwY,16017
188
188
  ultralytics/utils/torch_utils.py,sha256=6AjQsncSsXZ3Cf_YzxWBeEBbks9s7gvPVpU6-dV3psg,26771
189
189
  ultralytics/utils/triton.py,sha256=gg1finxno_tY2Ge9PMhmu7PI9wvoFZoiicdT4Bhqv3w,3936
@@ -198,10 +198,10 @@ ultralytics/utils/callbacks/mlflow.py,sha256=AVuYE4UKA5Eeg8sffbkCOe4tGgtCvBlGG4D
198
198
  ultralytics/utils/callbacks/neptune.py,sha256=5Z3ua5YBTUS56FH8VQKQG1aaIo9fH8GEyzC5q7p4ipQ,3756
199
199
  ultralytics/utils/callbacks/raytune.py,sha256=ODVYzy-CoM4Uge0zjkh3Hnh9nF2M0vhDrSenXnvcizw,705
200
200
  ultralytics/utils/callbacks/tensorboard.py,sha256=Z1veCVcn9THPhdplWuIzwlsW2yF7y-On9IZIk3khM0Y,4135
201
- ultralytics/utils/callbacks/wb.py,sha256=woCQVuZzqtM5KnwxIibcfM3sFBYojeMPnv11jrRaIQA,6674
202
- ultralytics-8.2.16.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
203
- ultralytics-8.2.16.dist-info/METADATA,sha256=7V-oI3J4lEAQXotsnu38UXuKiSLljYqFHd2HWSeLDDs,40694
204
- ultralytics-8.2.16.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
205
- ultralytics-8.2.16.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
206
- ultralytics-8.2.16.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
207
- ultralytics-8.2.16.dist-info/RECORD,,
201
+ ultralytics/utils/callbacks/wb.py,sha256=DViD0KeXH_i3eVT_CLR4bZFs1TMMUZBVBBYIS3aUfp0,6745
202
+ ultralytics-8.2.18.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
203
+ ultralytics-8.2.18.dist-info/METADATA,sha256=bs7_wNBjYCpAoRHxVVuUYHc20zfgcr-O5_DDLLVKpBw,40694
204
+ ultralytics-8.2.18.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
205
+ ultralytics-8.2.18.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
206
+ ultralytics-8.2.18.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
207
+ ultralytics-8.2.18.dist-info/RECORD,,