Mve: Vis√£o para ponto denso

Criado em 22 abr. 2016  ¬∑  8Coment√°rios  ¬∑  Fonte: simonfuhrmann/mve

Outro esquema de filtragem de pontos denso √© o baseado em vis√£o, que est√° usando a vis√£o de cada ponto para sua c√Ęmera relacionada e mostra um excelente resultado tamb√©m. Mas n√£o vi essa informa√ß√£o na nuvem de pontos de sa√≠da do mve. Isso ser√° considerado e o novo esquema poder√° ser fundido?

PS: mais informa√ß√Ķes usadas implicam em mais potencial para melhores resultados~

ref:
https://github.com/cdcseacave/openMVS

Vu HH, Labatut P, ‚Äč‚ÄčPons JP, et ai. Est√©reo multiview denso de alta precis√£o e visibilidade consistente [J]. An√°lise de padr√Ķes e intelig√™ncia de m√°quina, transa√ß√Ķes IEEE em, 2012, 34(5): 889-901.

https://www.acute3d.com/

Coment√°rios muito √ļteis

Tanto quanto sei, as diferenças entre as abordagens são graves.

1) A malha de superfície é construída a partir da nuvem de pontos semi-esparsa, enquanto o MVE (FSSR) a constrói nos pontos ultradensos
2) O MVS real é feito na própria malha com otimização, enquanto no MVE é feito usando mapas de profundidade

O primeiro passo requer tetraedralização em uma otimização global, como mencionou Pierre. A própria tetraedralização é muito desagradável, nem mesmo falando em incluir otimização para determinar a conectividade. Para mim, parece que as abordagens são tão diferentes que nem quero pensar em me casar com elas.

E bem, mesmo o c√≥digo-fonte aberto pode ser feio. Na verdade, √© o √ļnico c√≥digo que pode ser feio porque voc√™ n√£o pode ver o c√≥digo fonte pr√≥ximo. ;-)

Todos 8 coment√°rios

O trabalho referenciado usa uma t√©cnica de reconstru√ß√£o fundamentalmente diferente da MVE. Estou ciente deste trabalho. As informa√ß√Ķes de linha de vis√£o s√£o usadas principalmente para otimiza√ß√£o de superf√≠cie, mas o MVE n√£o realiza nenhuma otimiza√ß√£o global em nenhum est√°gio do pipeline (exceto BA, √© claro). Duvido que esta t√©cnica seja ou possa ser integrada ao MVE. Pelo menos n√£o sei como.

Que eu saiba, ambas as técnicas incluem quatro etapas:

1 geração de nuvem de pontos densa fundindo mapa de profundidade em cada visualização
2 reconstrução de superfície/malha (nuvem de pontos -> faces triangulares)
3 otimização de superfície/malha (global ou local)
4 texturização

A principal diferença entre as duas técnicas é a reconstrução de superfície, fssr para mve, seleção de face (triangulação delaunay + st cut) para seu trabalho. A linha de visão desempenha um papel importante para a reconstrução da superfície não apenas para a otimização da superfície em seu trabalho. O resultado das tendências fssr é suave, enquanto o método baseado na seleção de face pode manter a borda afiada.

Na minha opini√£o, a vis√£o de linha deve opcionalmente ser exportada ap√≥s a primeira etapa, ent√£o a nova etapa de reconstru√ß√£o da superf√≠cie poderia ser desenvolvida, por √ļltimo fazer a mesma texturiza√ß√£o.

https://github.com/cdcseacave/openMVS/wiki/Modules

Uma dificuldade adicional é que não há uma biblioteca de tetraedralização de Delaunay licenciada permissiva.
http://doc.cgal.org/latest/Triangulation_3/index.html#Chapter_3D_Triangulations => GPL
http://wias-berlin.de/software/tetgen/ => AGPL
Observe que o MVE usa uma licença permissiva.

cgal é o que o openmvs usou, o openmvs está tentando implementar o esquema de seleção de face, mas o código deles é muito feio~

Eu nunca diria que um código-fonte aberto é feio, isso não é muito gentil com os autores
Colocar algo como código aberto e deixá-lo utilizável por qualquer pessoa é uma coisa legal.
PS: Você deve observar que não há outra implementação de código aberto de "linha de visão" por aí.
O OpenMVS implementa o corte grah da triangulação de tetraedros delaunay de maneira genérica (permite usar vários algoritmos de corte de gráfico) e com e sem visibilidade de superfície fraca.

Tanto quanto sei, as diferenças entre as abordagens são graves.

1) A malha de superfície é construída a partir da nuvem de pontos semi-esparsa, enquanto o MVE (FSSR) a constrói nos pontos ultradensos
2) O MVS real é feito na própria malha com otimização, enquanto no MVE é feito usando mapas de profundidade

O primeiro passo requer tetraedralização em uma otimização global, como mencionou Pierre. A própria tetraedralização é muito desagradável, nem mesmo falando em incluir otimização para determinar a conectividade. Para mim, parece que as abordagens são tão diferentes que nem quero pensar em me casar com elas.

E bem, mesmo o c√≥digo-fonte aberto pode ser feio. Na verdade, √© o √ļnico c√≥digo que pode ser feio porque voc√™ n√£o pode ver o c√≥digo fonte pr√≥ximo. ;-)

Sim, minha culpa, o código aberto deve ser respeitado. Só porque eu passei algum tempo estudando e achei um pouco difícil de entender e bugado, o que não é tão elegante quanto o MVE, obrigado de qualquer maneira ~

Eu tenho jogado bastante com Theia e OpenMVS. @daleydeng Eu concordaria que existem alguns bugs no OpenMVS que bloqueiam completamente o processo de reconstrução e exigem depuração.

Descobri que o OpenMVS produz modelos muito bons ao pular o processo de densificação e ir direto para reconstruir a entrada esparsa e depois refiná-la. Eu realmente gostaria de obter a implementação CUDA do Refine funcionando, mas tive problemas de vinculação que ainda não pude gastar tempo resolvendo. Esse processo é bastante rápido, pois a nuvem esparsa contém significativamente menos pontos e geralmente resulta em uma malha final que também possui uma contagem de polígonos tolerável.

Executar o Densify+Reconstruct+Refine leva MUITO mais tempo e produz uma malha muito grande. No entanto, a qualidade é melhor ao preencher áreas que a esparsa não cobriu.

A texturização também é muito boa, e aprecio que o OpenMVS ofereça um pacote completo e seja de código aberto.

Estou interessante agora em MVE e ansioso para aprender mais.

Esta p√°gina foi √ļtil?
0 / 5 - 0 avalia√ß√Ķes

Quest√Ķes relacionadas

Jus80687 picture Jus80687  ¬∑  11Coment√°rios

HelliceSaouli picture HelliceSaouli  ¬∑  12Coment√°rios

GustavoCamargoRL picture GustavoCamargoRL  ¬∑  13Coment√°rios

MaxDidIt picture MaxDidIt  ¬∑  30Coment√°rios

HelliceSaouli picture HelliceSaouli  ¬∑  14Coment√°rios