Я хочу получить координаты нескольких ограничивающих прямоугольников и класс каждого ограничивающего прямоугольника и вернуть его в виде файла JSON.
, когда я печатаю коробки [] из следующего кода, он имеет форму (1 300,4).В полях есть 300 координат [].Но на моем прогнозируемом изображении только 2.Я хочу, чтобы координаты ограничивающих рамок были предсказаны на моем изображении.
Кроме того, как мы узнаем, какая ограничительная рамка сопоставлена с какой категорией / классом на изображении?
например, скажем, у меня есть собака и человек на изображении, как я узнаю, какая ограничительная рамка соответствует классу собаки, а какая - классу человека?Коробки [] дают нам массив формы (1 300,4) без указания того, какой ограничительной рамке соответствует какой класс в изображении.
Я следовал этому ответу , чтобы получить ограничивающую рамкукоординаты из 300 координат в полях [] с использованием порогового значения.
Я попытался получить ограничивающий прямоугольник с наибольшим количеством очков.Но он возвращает только один ограничивающий прямоугольник, даже если предсказанное изображение имеет несколько ограничивающих прямоугольников.
Координаты ограничивающего прямоугольника с наивысшей оценкой даже не соответствуют координатам ограничивающего прямоугольника на предсказанном изображении.Как получить координаты ограничивающего прямоугольника на моем предсказанном изображении?
vis_util.visualize_boxes_and_labels_on_image_array(
image_np,
np.squeeze(boxes),
np.squeeze(classes).astype(np.int32),
np.squeeze(scores),
category_index,
use_normalized_coordinates=True,
line_thickness=8)
im = Image.fromarray(image_np)
true_boxes = boxes[0][scores[0]==scores.max()] # Gives us the box with max score
for i in range(true_boxes.shape[0]): # rescaling the coordinates
ymin = true_boxes[i,0]*height
xmin = true_boxes[i,1]*width
ymax = true_boxes[i,2]*height
xmax = true_boxes[i,3]*width
Координаты, которые я получаю из приведенного выше кода xmin, ymin, xmax, ymax (который имеет максимальный балл), не совсем совпадаюткоординаты ограничительной рамки на предсказанном изображении.Они отключены на несколько пикселей.Кроме того, я получаю только одну ограничивающую рамку, даже если предсказанное изображение имеет несколько ограничивающих рамок и несколько классов (например, собака и человек).
Я хотел бы вернуть файл JSON с image_name, bounding_boxes и классом, соответствующим каждому ограничивающему прямоугольнику.
Спасибо, я новичок в этом.Пожалуйста, спросите, не поняли ли вы какую-либо часть вопроса.