Publish license plate box coordinates (#22337)

* publish the detected plate's box coordinates in tracked_object_update

* docs
This commit is contained in:
Josh Hawkins 2026-03-08 17:22:38 -05:00 committed by GitHub
parent b2c7840c29
commit e930492ccc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 21 additions and 1 deletions

View File

@ -159,7 +159,8 @@ Published when a license plate is recognized on a car object. See the [License P
"plate": "123ABC",
"score": 0.95,
"camera": "driveway_cam",
"timestamp": 1607123958.748393
"timestamp": 1607123958.748393,
"plate_box": [917, 487, 1029, 529] // box coordinates of the detected license plate in the frame
}
```

View File

@ -1225,6 +1225,8 @@ class LicensePlateProcessingMixin:
logger.debug(f"{camera}: License plate area below minimum threshold.")
return
plate_box = license_plate
license_plate_frame = rgb[
license_plate[1] : license_plate[3],
license_plate[0] : license_plate[2],
@ -1341,6 +1343,20 @@ class LicensePlateProcessingMixin:
logger.debug(f"{camera}: License plate is less than min_area")
return
# Scale back to original car coordinates and then to frame
plate_box_in_car = (
license_plate[0] // 2,
license_plate[1] // 2,
license_plate[2] // 2,
license_plate[3] // 2,
)
plate_box = (
left + plate_box_in_car[0],
top + plate_box_in_car[1],
left + plate_box_in_car[2],
top + plate_box_in_car[3],
)
license_plate_frame = car[
license_plate[1] : license_plate[3],
license_plate[0] : license_plate[2],
@ -1404,6 +1420,8 @@ class LicensePlateProcessingMixin:
0, [license_plate_frame.shape[1], license_plate_frame.shape[0]] * 2
)
plate_box = tuple(int(x) for x in expanded_box)
# Crop using the expanded box
license_plate_frame = license_plate_frame[
int(expanded_box[1]) : int(expanded_box[3]),
@ -1611,6 +1629,7 @@ class LicensePlateProcessingMixin:
"id": id,
"camera": camera,
"timestamp": start,
"plate_box": plate_box,
}
),
)