У вас стоит задача по вычислению географических координат объектов, обнаруженных с помощью компьютерного зрения на панорамных фотографиях. Исходные данные включают панорамные фотографии, сделанные с интервалом в несколько секунд, с координатами в EXIF (включая RTK-координаты с высокой точностью). Также известна высота камеры, однако скорость её движения изменяется, и при этом данные о компасе в камере и в EXIF отсутствуют. Азимут камеры во время съемки колеблется случайным образом по отношению к северу и к предыдущей фотографии. Вам нужно выяснить координаты распознанных объектов на фотографиях. Вы предполагаете, что для решения этой задачи необходимо увеличить частоту съемки, чтобы определять пары объектов на соседних снимках. Это позволит вычислить направление севера, используя азимуты объектов на разных фотографиях и координаты соседних снимков, а затем находить координаты самих объектов. Существует ли более простой подход к решению данной задачи? Вы рассматриваете вариант фотограмметрии, который заключается в создании 3D-модели на основе панорамных фотографий и определении координат объектов в этой модели, но считаете его избыточным и ресурсозатратным.
Для определения географических координат объектов на панорамных изображениях можно рассмотреть несколько подходов, каждый из которых имеет свои преимущества и недостатки. Ваши мысли о необходимости увеличения частоты съемки и применения фотограмметрии являются хорошей основой, но существуют также менее ресурсоемкие методы. Вот несколько возможных подходов: 1. **Использование акселерометров и гироскопов**: Если у камеры есть встроенные сенсоры, вы можете использовать данные акселерометра и гироскопа для отслеживания перемещения и углового положения камеры в пространстве. Это позволит оценить изменение азимута между снимками и скорректировать вычисления координат объектов. 2. **Оптический трекинг**: Попробуйте использовать методы трекинга объектов, которые будут отслеживать одни и те же объекты на соседних снимках. Вы можете установить некие ключевые точки на изображениях и использовать алгоритмы, такие как оптическое потедение или методы сопоставления характеристик (например, SIFT или ORB), чтобы определить, как изменились позиции объектов между фотографиями, и тем самым вычислить их координаты в пространстве. 3. **Интерполяция координат**: Если у вас есть координаты для первых и последних снимков, а также информация о высоте камеры и время между снимками, вы можете провести интерполяцию для определения между значениями координат. Это предполагает, что движение между снимками относительно равномерно, что может быть неплохо для панорамных изображений. 4. **Калибровка по известным объектам**: Если на панорамных изображениях есть известные статичные объекты с известными географическими координатами, вы можете использовать их в качестве контрольных точек. Например, вы можете провести сопоставление между изображением и известными координатами объектов, чтобы откалибровать систему координат для определения местоположения других объектов. 5. **Использование машинного обучения**: Вы можете обучить модель машинного обучения, которая сможет извлекать и предсказывать географические координаты на основе визуальных характеристик объектов и контекста. В таком случае модель могла бы учитывать различные параметры фотографий и их ориентацию. Каждый из этих подходов требует проверки на вашем наборе данных, и наиболее подходящий метод может зависеть от доступных ресурсов и временных ограничений. Если в вашем случае данные акселерометров и гироскопов доступны, это может значительно упростить задачу.
Из исходных данных - панорамные фотографии, снятые через небольшие (секунды) промежутки времени с координатами в exifКоординаты чего? Самой камеры? При том, что камера постоянно накодится в одной точке и эти координаты на всех фотографиях одинаковые?
отсюда по азимутам между этих объектов на разных фото и координатам соседних фотографий вычислять направление севераОткуда возьмёте азимуты, если компаса нет?
Панорама круговая (на 360 градусов)? Если да, то вы только сможете вычислить, сколько пикселей составляют какой угол, а на основе этого вычислить углы между объектами (но не азимуты объектов). И всё равно линейные расстояния будут неизвестны. Если панорама меньше, чем на 360 градусов, то даже для вычисления углов между объектами не будет данных.
В любом случае потребуется как минимум одно калибровочное фото, для которого будет известно: 1) точный азимут на объект, 2) точное расстояние от камеры до объекта, 3) точные размеры объекта (высота или ширина). Тогда уже можно вычислять. Без этого исходных данных просто нет.
И это ещё при отсутствии дисторсии у оптики камеры. А при наличии дисторсии потребуются точные данные о нескольких объектах в калибровочном кадре, чтобы можно было вычислить и в дальнейшем как-то учитывать дисторсию.