from
ultralytics
import
YOLO
model
=
YOLO(r
"best.pt"
)
results
=
model(r
'\183.jpg'
, save
=
True
)
def
extract_predictions(result):
extracted_data
=
[]
cls_dict
=
result.names
cls_all
=
result.boxes.
cls
.tolist()
xyxy_all
=
result.boxes.xyxy.tolist()
for
i
in
range
(
len
(cls_all)):
label_name
=
cls_dict[
int
(cls_all[i])]
box_xyxy
=
xyxy_all[i]
box_mid_xy
=
[(box_xyxy[
0
]
+
box_xyxy[
2
])
/
2
, (box_xyxy[
1
]
+
box_xyxy[
3
])
/
2
]
box_mid_xy
=
[coord
*
0.762
for
coord
in
box_mid_xy]
extracted_data.append({
"label_name"
: label_name,
"box_mid_xy"
: box_mid_xy,
})
return
extracted_data
def
find_duplicates(predictions):
class_dict
=
{}
for
prediction
in
predictions:
class_name
=
prediction[
'label_name'
]
if
class_name
not
in
class_dict:
class_dict[class_name]
=
[]
class_dict[class_name].append(prediction[
'box_mid_xy'
])
duplicates
=
{k: v
for
k, v
in
class_dict.items()
if
len
(v) >
1
}
return
duplicates
predictions
=
extract_predictions(results[
0
])
duplicate_classes
=
find_duplicates(predictions)
print
(duplicate_classes)