Как отсортировать ограничивающую рамку YOLOv4?
Я обучил yolov4 из репозитория alexeyab darknet обнаруживать символы на номерном знаке. Он правильно сегментирует персонажа, но ограничивающие рамки расположены в случайном порядке. Как я могу отсортировать ограничивающую рамку от верхнего левого угла до нижнего правого для такого изображения: (Это не фактическое изображение, но это фотошопное изображение для образца непальского номерного знака из-за конфиденциальности данных)
Я пробовал: (из pyimagesearch)
def sort_bbox(bbox, method="left-to-right"):
# initialize the reverse flag and sort index
reverse = False
i = 0
# handle if we need to sort in reverse
if method == "right-to-left" or method == "bottom-to-top":
reverse = True
# handle if we are sorting against the y-coordinate rather than
# the x-coordinate of the bounding box
if method == "top-to-bottom" or method == "bottom-to-top":
i = 1
# construct the list of bounding boxes and sort them from top to
# bottom
boundingBoxes = sorted(bbox, key=lambda b: b[1], reverse=reverse)
# return the list of sorted contours and bounding boxes
return boundingBoxes
но не сортировал ограничивающие рамки. Это все еще в случайном порядке.
У меня есть ограничивающий прямоугольник от обнаружения yolov4 следующим образом: несортированные ограничивающие прямоугольники в xywh: [[50, 12, 15, 18], [66, 10, 15, 19], [87, 10, 19, 20], [21, 12, 24, 19], [51, 12, 15, 17], [51, 12, 15, 18], [66, 12, 15, 18], [86, 11, 19, 19], [39, 32, 27, 29], [68, 33, 28, 27], [97, 31, 28, 30], [12, 37, 24, 25], [11, 35, 25, 27], [40, 34, 27, 28], [68, 33, 27, 27], [97, 33, 28, 28]]
и сверху код сортировки: [[66, 10, 15, 19], [87, 10, 19, 20], [86, 11, 19, 19], [50, 12, 15, 18], [21, 12, 24, 19], [51, 12, 15, 17], [51, 12, 15, 18], [66, 12, 15, 18], [97, 31, 28, 30], [39, 32, 27, 29], [68, 33, 28, 27], [68, 33, 27, 27], [97, 33, 28, 28], [40, 34, 27, 28], [11, 35, 25, 27], [12, 37, 24, 25]]
Я хочу, чтобы ограничивающая рамка: बा २ प ८ ८ ८ ८
Любая помощь будет очень признательна.