`np.unique()` sort fix for segments (#5609)
Browse files* `np.unique()` sort fix for segments
* Update datasets.py
- utils/datasets.py +6 -4
utils/datasets.py
CHANGED
@@ -913,10 +913,12 @@ def verify_image_label(args):
|
|
913 |
assert l.shape[1] == 5, f'labels require 5 columns, {l.shape[1]} columns detected'
|
914 |
assert (l >= 0).all(), f'negative label values {l[l < 0]}'
|
915 |
assert (l[:, 1:] <= 1).all(), f'non-normalized or out of bounds coordinates {l[:, 1:][l[:, 1:] > 1]}'
|
916 |
-
|
917 |
-
if len(
|
918 |
-
|
919 |
-
|
|
|
|
|
920 |
else:
|
921 |
ne = 1 # label empty
|
922 |
l = np.zeros((0, 5), dtype=np.float32)
|
|
|
913 |
assert l.shape[1] == 5, f'labels require 5 columns, {l.shape[1]} columns detected'
|
914 |
assert (l >= 0).all(), f'negative label values {l[l < 0]}'
|
915 |
assert (l[:, 1:] <= 1).all(), f'non-normalized or out of bounds coordinates {l[:, 1:][l[:, 1:] > 1]}'
|
916 |
+
_, i = np.unique(l, axis=0, return_index=True)
|
917 |
+
if len(i) < nl: # duplicate row check
|
918 |
+
l = l[i] # remove duplicates
|
919 |
+
if segments:
|
920 |
+
segments = segments[i]
|
921 |
+
msg = f'{prefix}WARNING: {im_file}: {nl - len(i)} duplicate labels removed'
|
922 |
else:
|
923 |
ne = 1 # label empty
|
924 |
l = np.zeros((0, 5), dtype=np.float32)
|