Odm: Une seule reconstruction partielle par sous-modèle est alignée pendant align_submodels

Créé le 2 mars 2020  ·  5Commentaires  ·  Source: OpenDroneMap/ODM

Comment avez-vous installé OpenDroneMap? (Docker, nativement, ...)?

Docker

Quel est votre navigateur et votre système d'exploitation? (Copiez / collez la sortie de https://www.whatismybrowser.com/)

Chrome 79 sous Linux

Quel est le problème?

Lorsque des reconstructions partielles sont générées, il semble y avoir un problème dans la sortie d'alignement de reconstruction.
Selon les sources d'OpenSfM, chaque reconstruction partielle à partir de chaque sous-modèle est jetée dans un gros problème d'ajustement de faisceau, puis sortie sous la forme d'un ensemble de transformées de similitude qui sont appliquées à chaque reconstruction partielle puis enregistrées dans le fichier de reconstruction aligné.
En réalité cependant, il semble qu'une seule reconstruction partielle soit mise à jour. Je n'arrive pas à comprendre pourquoi.

Quel devrait être le comportement attendu? S'il s'agit d'une demande de fonctionnalité, veuillez décrire en détail les modifications qui, selon vous, devraient être apportées au code, en citant les fichiers et les lignes où des modifications doivent être apportées, si possible.

Je m'attendrais à ce que chaque point et chaque plan de chaque reconstruction partielle soient modifiés au moins à la magnitude 1e-6, mais cela ne semble être vrai que pour une seule reconstruction partielle dans chaque sous-modèle. Toutes les autres reconstructions partielles sont identiques dans une comparaison côte à côte pour chaque plan et chaque point.

(En passant, je serais intéressé à comprendre pourquoi la transformation de similarité est générée pour créer une transformation rigide, plutôt que d'appliquer simplement la sortie du bundle à la reconstruction dans son ensemble. Je m'attendrais à ce que cela crée des limites plus lisses entre les sous-modèles? manipulation?)

Comment pouvons-nous reproduire cela? (Quelles étapes avez-vous suivies pour déclencher le problème? Quels paramètres utilisez-vous pour le traitement? Si possible, veuillez inclure une copie de votre ensemble de données téléchargé sur Google Drive ou Dropbox. Soyez détaillé)

Déclenchez l'étape align_submodels dans OpenSfM sur un ensemble de données divisé en plusieurs sous-modèles qui contient également plusieurs reconstructions partielles. Cela devrait être facilement réalisable en réduisant le nombre minimum d'entités et en définissant une division sur un jeu de données avec un nombre suffisant d'entrées.

bug help wanted

Commentaire le plus utile

Pas de problème! C'est une base de code amusante. :cadeau:
Maintenant fusionné à la fois dans OpenDroneMap / OpenSfM et mapillary / OpenSfM, donc fermeture. :)

Tous les 5 commentaires

Je pense que cela pourrait être un bug plutôt qu'une amélioration.
À partir des sources, toutes les reconstructions partielles doivent toujours être alignées, mais je ne peux pas nécessairement dire que c'est même l'index 0 partiel que nous utilisons actuellement dans la division / fusion qui est en fait mis à jour dans l'alignement - ce qui implique que nous pourrions dans ces cas fusion résultant en des nuages ​​non alignés.

Je l'ai trouvé. Apparemment, la méthode itertools.groupby utilisée dans apply_transformations (transformations) dans OpenSfM doit recevoir une liste déjà triée, sinon elle ne regroupera pas correctement les entrées. Puisque la reconstruction est chargée pour chaque groupe, les reconstructions non alignées seront rechargées et écraseront tous les composants précédemment alignés.

Soumettre un PR à 099 et OpenSfM mapillaire dans un peu. : tada:

Fantastique! Merci d'avoir regardé dans ce @linusmartensson

Pas de problème! C'est une base de code amusante. :cadeau:
Maintenant fusionné à la fois dans OpenDroneMap / OpenSfM et mapillary / OpenSfM, donc fermeture. :)

Cette page vous a été utile?
0 / 5 - 0 notes