Docker
Chrome 79 no Linux
Quando reconstruções parciais são geradas, parece haver um problema na saída de alinhamento da reconstrução.
De acordo com as fontes do OpenSfM, cada reconstrução parcial de cada submodelo é lançada em um grande problema de ajuste de pacote, em seguida, a saída como um conjunto de transformações de similaridade que são aplicadas a cada reconstrução parcial e, em seguida, salvas no arquivo de reconstrução alinhado.
Na realidade, porém, parece que apenas uma reconstrução parcial foi atualizada. Não consigo descobrir por quê.
Eu esperaria que cada ponto e tiro em cada reconstrução parcial fossem modificados pelo menos na magnitude 1e-6, mas isso só parece ser verdade para uma única reconstrução parcial em cada submodelo. Todas as outras reconstruções parciais são idênticas em uma comparação lado a lado para cada foto e ponto.
(Como nota lateral, estou interessado em entender por que a transformação de similaridade é gerada para criar uma transformação rígida, em vez de apenas aplicar a saída do pacote à reconstrução como um todo. Eu esperaria que isso criasse limites mais suaves entre os submodelos? tratamento?)
Acione o estágio align_submodels no OpenSfM em um conjunto de dados dividido em vários submodelos que também contém várias reconstruções parciais. Isso deve ser facilmente alcançado reduzindo a contagem mínima de recursos e definindo uma divisão em um conjunto de dados com um número suficiente de entradas.
Acho que isso pode ser um bug em vez de um aprimoramento.
A partir das fontes, todas as reconstruções parciais devem sempre ser alinhadas, mas não posso dizer necessariamente que é mesmo o índice parcial 0 que usamos na divisão / mesclagem agora que está realmente atualizado no alinhamento - o que significa que podemos, nesses casos, ver um fusão resultando em nuvens desalinhadas.
Encontrei. Aparentemente, o método itertools.groupby usado em apply_transformations (transformações) em OpenSfM deve ser passado por uma lista já classificada, ou não agrupará as entradas corretamente. Uma vez que a reconstrução é carregada para cada grupo, as reconstruções não alinhadas serão recarregadas e sobrescreverão quaisquer componentes alinhados anteriormente.
Enviando um PR para 099 e OpenSfM mapilar daqui a pouco. : tada:
https://github.com/OpenDroneMap/OpenSfM/pull/5 : dançarino:
Fantástico! Obrigado por olhar para este @linusmartensson
Sem problemas! É uma base de código divertida. :Presente:
Agora mesclado em OpenDroneMap / OpenSfM e mapillary / OpenSfM, fechando. :)
Comentários muito úteis
Sem problemas! É uma base de código divertida. :Presente:
Agora mesclado em OpenDroneMap / OpenSfM e mapillary / OpenSfM, fechando. :)