Как добавить отступы в обнаруженные ограничивающие рамки OCR? - PullRequest
0 голосов
/ 16 января 2019

Я следующий: реализация тензорного потока детектора текста EAST (https://github.com/argman/EAST#installation) учебник.

Когда я выполняю код GitHub, связанный выше, на изображении я получаю следующий вывод:

enter image description here

Код обнаружения: eval.py

В выводе я хочу добавить заполнение к сгенерированному ограничивающему прямоугольнику, чтобы я мог правильно захватить первый «K» и последний «0».

Я изменил пороговое значение в строке 69 кода. Я пробовал разные значения в диапазоне от 0,1, 0,05 и т. Д., Но размер коробки не меняется.

def detect(score_map, geo_map, timer, score_map_thresh=0.8, box_thresh=0.1, nms_thres=0.2):

Как добавить отступы в ограничительную рамку?

Ответы [ 2 ]

0 голосов
/ 16 января 2019

У меня была эта проблема давным-давно. Просто добавьте поле в bbox, а затем убедитесь, что оно не покидает изображение. Если у вас есть ограничивающие рамки:

def expand(bbox, margin=5):
    # supose bbox is x1, y1, x2, y2
    return [
        bbox[0, 0] - margin,
        bbox[1] - margin,
        bbox[2] + margin,
        bbox[2] + margin]

bbox_expanded = expand(bbox)
img_crop = img[max(0, bbox[1]):min(img.shape[0], bbox[3]), max(bbox[0], 0):min(img.shape[1], bbox[2]), :]

Если у вас 4 очка:

def expand(points, margin):
    # supose points is 1, p2, p3, p4
    return [
        [points[0, 0] - margin, points[0, 1] - margin],
        [points[1, 0] + margin, points[1, 1] - margin],
        [points[2, 0] + margin, points[2, 1] + margin],
        [points[3, 0] - margin, points[3, 1] + margin]]

points_expanded = expand(points)
0 голосов
/ 16 января 2019

Вы должны войти в функцию, найти строку, где извлекаются ящики. Каждое поле будет представлено либо с 2 координатами (вверху слева и внизу справа), либо с одной координатой и смещением (верхняя левая точка, а также высота и ширина поля). В обоих случаях вы должны вычесть некоторое количество пикселей из верхнего левого угла ограничительной рамки и добавить некоторое количество пикселей в нижнюю правую координату / высоту и ширину. Например, предположим, что формат - 2 координаты, и вы получите ((456, 234), (789, 453)). Затем, когда вы выполните математику (вычтите из верхнего левого и добавьте к нижнему правому), вы получите что-то вроде ((470, 250), (800, 470)) Надеюсь, это достаточно ясно.

...