Я запускаю API через серию видеокадров для отслеживания объектов в сцене и извлекаю координаты ограничивающего прямоугольника для каждого объекта, чтобы вычислить центр каждого ограничивающего прямоугольника. Однако может показаться, что существует смещение в координатах ymin и ymax .
Сцена изображает человека, идущего по полю зрения, нижняя часть рамки которого соответствует ногам людей (что может означать очень маленькое значение для ymin и ymax значение, которое не будет распространяться до остановки кадра. Однако API дает следующие нормализованные координаты блока [452.26962089538574, 197.93473720550537, 1073.7505388259888, 639.3438720703125]
. Абсолютные координаты [0.41876816749572754, 0.10309100896120071, 0.9942134618759155, 0.3329916000366211]
Для справки: видео 1920 x 1080.
Тот же фрейм, вставленный в приложение MATLABs video labler (при переводе на [ymin xmin ymax xmax]
), возвращает [8.396575927734375, 57.50376892089844, 722.7988586425781, 431.51695251464844]
. Я знаю, что они не будут точно совпадать, потому что я нарисовал вручную в рамке как основную правду (это особенно верно для x координат), однако ymin и ymax должны быть довольно близки, и эти результаты кажутся намного более реалистичными c.
Кто-нибудь сталкивался с этим раньше? Граничные рамки правильно отображаются на изображении, когда API выполняет вывод, так что я немного растерялся относительно того, что происходит. boxes = detection_graph.get_tensor_by_name('detection_boxes:0')
и сохраняя его на каждой итерации.