Odm: Solo se alinea una reconstrucción parcial por submodelo durante align_submodels

Creado en 2 mar. 2020  ·  5Comentarios  ·  Fuente: OpenDroneMap/ODM

¿Cómo instalaste OpenDroneMap? (Docker, de forma nativa, ...)?

Estibador

¿Cuál es su navegador y sistema operativo? (Copie / pegue la salida de https://www.whatismybrowser.com/)

Chrome 79 en Linux

¿Cuál es el problema?

Cuando se generan reconstrucciones parciales, parece haber un problema en el resultado de la alineación de la reconstrucción.
De acuerdo con las fuentes de OpenSfM, cada reconstrucción parcial de cada submodelo se lanza a un gran problema de ajuste de paquete, luego se genera como un conjunto de transformaciones de similitud que se aplican a cada reconstrucción parcial y luego se guardan en el archivo de reconstrucción alineado.
En realidad, sin embargo, parece que solo se actualiza una reconstrucción parcial. Parece que no puedo entender por qué.

¿Cuál debería ser el comportamiento esperado? Si se trata de una solicitud de función, describa en detalle los cambios que cree que se deben realizar en el código, citando archivos y líneas donde se deben realizar cambios, si es posible.

Esperaría que todos y cada uno de los puntos y tomas de cada reconstrucción parcial se modifiquen al menos en la magnitud 1e-6, pero esto solo parece ser cierto para una única reconstrucción parcial en cada submodelo. Todas las demás reconstrucciones parciales son idénticas en una comparación lado a lado para cada disparo y punto.

(Como nota al margen, me interesaría comprender por qué la transformación de similitud se genera para crear una transformación rígida, en lugar de simplemente aplicar la salida del paquete a la reconstrucción en su conjunto. ¿Esperaría que esto creara límites más suaves entre los submodelos? ¿manejo?)

¿Cómo podemos reproducir esto? (¿Qué pasos siguió para desencadenar el problema? ¿Qué parámetros está utilizando para el procesamiento? Si es posible, incluya una copia de su conjunto de datos cargado en Google Drive o Dropbox. Sea detallado)

Active la etapa align_submodels en OpenSfM en un conjunto de datos dividido en múltiples submodelos que también contiene múltiples reconstrucciones parciales. Esto debería lograrse fácilmente reduciendo el recuento mínimo de características y estableciendo una división en un conjunto de datos con un número suficiente de entradas.

bug help wanted

Comentario más útil

¡No hay problema! Es una base de código divertida. :regalo:
Ahora combinado en OpenDroneMap / OpenSfM y mapillary / OpenSfM, cerrando. :)

Todos 5 comentarios

Creo que esto podría ser un error en lugar de una mejora.
A partir de las fuentes, todas las reconstrucciones parciales siempre deben estar alineadas, pero no puedo decir necesariamente que incluso el índice 0 parcial que usamos en división / fusión en este momento está realmente actualizado en la alineación, lo que implica que en estos casos podríamos ver un fusionar dando como resultado nubes no alineadas.

Lo encontré. Aparentemente, el método itertools.groupby utilizado en apply_transformations (transformaciones) en OpenSfM tiene que pasar a una lista ya ordenada, o no agrupará las entradas correctamente. Dado que la reconstrucción se carga para cada grupo, las reconstrucciones no alineadas se recargarán y sobrescribirán cualquier componente previamente alineado.

Enviar un PR a 099 y Mapillary OpenSfM en un momento. : tada:

¡Fantástico! Gracias por investigar esto @linusmartensson

¡No hay problema! Es una base de código divertida. :regalo:
Ahora combinado en OpenDroneMap / OpenSfM y mapillary / OpenSfM, cerrando. :)

¿Fue útil esta página
0 / 5 - 0 calificaciones