Измерьте размер объекта без привязки объект всегда в кадре

#python #opencv #image-processing #size

Вопрос:

Есть ли способ измерить размер объекта без того, чтобы ссылочный объект (маркер Aruco/монета) всегда находился в кадре? Как и после вычисления отношения пикселей на метрику, можем ли мы использовать это значение только для вычисления размера объекта? Камера также всегда будет находиться с фиксированной высоты. Большое спасибо!

Комментарии:

1. Если я правильно понял, вы хотите получить размер объекта, наблюдая только за частью этого объекта. Затем, я полагаю, вам следует изменить процесс обучения, и всякий раз, когда вы показываете часть объекта в своей сети, вы также должны предоставить ему фактический размер объекта.

Ответ №1:

Короткий ответ-нет. Эта проблема возникает в 3D->2D проекции (также называемой гомографией или перспективной проекцией). Вот пример:

перспективные манипуляции1

Вот упрощенная версия этой проекции:

введите описание изображения здесь

Как вы можете видеть — если вы уменьшите z, но увеличите x и y, вы можете получить тот же результат, даже если вы знаете соотношение расстояний до пикселей (это f указано в уравнении).

проверьте эти две ссылки для получения более математического доказательства.

Для измерения на 2D-изображениях вам сначала нужна f (внутренняя калибровка), а также одно из двух: зная размер объекта на экране (например, aruco), вы можете определить z, и если вы знаете z объекта (=расстояние от камеры), вы можете определить размер.