Spaces:
Running
on
Zero
Running
on
Zero
Update object_description_generator.py
Browse files- object_description_generator.py +18 -18
object_description_generator.py
CHANGED
|
@@ -592,30 +592,30 @@ class ObjectDescriptionGenerator:
|
|
| 592 |
return (priority, -len(obj_group_list), -avg_area, -quantity_bonus)
|
| 593 |
|
| 594 |
# remove duplicate
|
| 595 |
-
|
| 596 |
-
|
| 597 |
|
| 598 |
-
|
| 599 |
-
|
| 600 |
|
| 601 |
-
|
| 602 |
-
|
| 603 |
-
|
| 604 |
|
| 605 |
-
|
| 606 |
-
|
| 607 |
-
|
| 608 |
-
|
| 609 |
-
|
| 610 |
|
| 611 |
-
|
| 612 |
-
|
| 613 |
-
|
| 614 |
|
| 615 |
-
|
| 616 |
-
|
| 617 |
|
| 618 |
-
|
| 619 |
|
| 620 |
print(f"DEBUG: After spatial deduplication:")
|
| 621 |
for class_name in ["car", "traffic light", "person", "handbag"]:
|
|
|
|
| 592 |
return (priority, -len(obj_group_list), -avg_area, -quantity_bonus)
|
| 593 |
|
| 594 |
# remove duplicate
|
| 595 |
+
deduplicated_objects_by_class = {}
|
| 596 |
+
processed_positions = []
|
| 597 |
|
| 598 |
+
for class_name, group_of_objects in objects_by_class.items():
|
| 599 |
+
unique_objects = []
|
| 600 |
|
| 601 |
+
for obj in group_of_objects:
|
| 602 |
+
obj_position = obj.get("normalized_center", [0.5, 0.5])
|
| 603 |
+
is_duplicate = False
|
| 604 |
|
| 605 |
+
for processed_pos in processed_positions:
|
| 606 |
+
position_distance = abs(obj_position[0] - processed_pos[0]) + abs(obj_position[1] - processed_pos[1])
|
| 607 |
+
if position_distance < 0.15:
|
| 608 |
+
is_duplicate = True
|
| 609 |
+
break
|
| 610 |
|
| 611 |
+
if not is_duplicate:
|
| 612 |
+
unique_objects.append(obj)
|
| 613 |
+
processed_positions.append(obj_position)
|
| 614 |
|
| 615 |
+
if unique_objects:
|
| 616 |
+
deduplicated_objects_by_class[class_name] = unique_objects
|
| 617 |
|
| 618 |
+
objects_by_class = deduplicated_objects_by_class
|
| 619 |
|
| 620 |
print(f"DEBUG: After spatial deduplication:")
|
| 621 |
for class_name in ["car", "traffic light", "person", "handbag"]:
|