Estibador
Chrome 79 en Linux
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é.
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?)
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.
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:
https://github.com/OpenDroneMap/OpenSfM/pull/5 : bailarina:
¡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. :)
Comentario más útil
¡No hay problema! Es una base de código divertida. :regalo:
Ahora combinado en OpenDroneMap / OpenSfM y mapillary / OpenSfM, cerrando. :)