Índice:

Reconstrução 3D a partir de uma única foto: 8 etapas
Reconstrução 3D a partir de uma única foto: 8 etapas

Vídeo: Reconstrução 3D a partir de uma única foto: 8 etapas

Vídeo: Reconstrução 3D a partir de uma única foto: 8 etapas
Vídeo: Expectativa x realidade. E você lindona, Opção 1 ou 2? 2024, Novembro
Anonim
Reconstrução 3D a partir de uma única foto
Reconstrução 3D a partir de uma única foto
Reconstrução 3D a partir de uma única foto
Reconstrução 3D a partir de uma única foto

A tarefa de reconstrução 3D geralmente está associada à visão binocular. Alternativamente, você pode mover uma única câmera ao redor do objeto. Enquanto isso, se a forma do objeto for conhecida, a tarefa pode ser resolvida a partir de uma única foto. Ou seja, você tem apenas uma câmera e ela não se move. Vejamos como fazer isso passo a passo. Usaremos o Cubo de Rubik porque ele é bem padronizado e possui um rico conjunto de recursos. Pode ser considerado um objeto muito simples e, simultaneamente, uma construção complicada. Portanto, a visão mecânica deve superar obstáculos substanciais para completar a tarefa.

Etapa 1: Avalie a complexidade da tarefa

Avalie a complexidade da tarefa
Avalie a complexidade da tarefa
Avalie a complexidade da tarefa
Avalie a complexidade da tarefa
Avalie a complexidade da tarefa
Avalie a complexidade da tarefa
Avalie a complexidade da tarefa
Avalie a complexidade da tarefa

À primeira vista, a tarefa é simples. Encontre o nó central onde as 3 arestas do cubo se juntam e desenhe essas arestas. A partir de suas coordenadas, é possível calcular a distância da câmera e os ângulos de rotação. O problema é que essas linhas não existem. Na imagem à esquerda, você vê que cada borda é representada por 2 linhas paralelas. Além disso, a imagem superior direita mostra que cada um deles está dividido em 3 segmentos. Além disso, se aplicarmos uma variante da popular transformada de Hough que pode detectar segmentos de linha, ela realiza a tarefa com alguns erros que tornam impossível a detecção do nó central. Se as pontas não se alcançam, não existe um ponto único. Se a detecção ultrapassar o final, parecerá com o nó no meio da borda, como você pode ver nas 2 imagens restantes.

Etapa 2: Encontre a abordagem adequada

Encontre a abordagem adequada
Encontre a abordagem adequada

Quando muitos detalhes tornam os algoritmos determinísticos impraticáveis, é hora de considerar a abordagem probabilística. Se calcularmos os parâmetros médios da imagem, seus erros serão substancialmente diminuídos e, paradoxalmente, o método se tornará mais confiável. A transformação de Hough padrão não produz segmentos de linha. Apenas sua inclinação theta e a distância rho da origem da coordenada. Eles formam a parte do espaço Hough que é mostrada acima. Aqui, teta corresponde ao eixo horizontal. Pontos brilhantes marcam possíveis linhas na imagem. Observe que vários desses pontos estão localizados um acima do outro. Não é à toa que em nossa imagem existem muitas linhas paralelas. Eles têm o mesmo theta e rho diferente.

Etapa 3: Calcular o histograma teta

Calcular o histograma teta
Calcular o histograma teta

Vamos detectar esses clusters. Para este propósito, resumiremos as leituras de todos os pontos no espaço de Hough com o mesmo teta. Você vê o histograma correspondente na ilustração. Algumas notas sobre medições. Quando você trabalha com imagens em coordenadas de pixel, o eixo X segue normalmente, mas Y aponta para baixo, de modo que a origem da coordenada é o canto superior esquerdo e teta deve ser medido a partir do eixo X no sentido horário. Tendo em mente que toda a varredura de teta na imagem é de 180 graus, você pode verificar aproximadamente que 3 picos principais representam 3 inclinações predominantes na imagem.

Etapa 4: Calcular o histograma Rho

Calcular Histograma Rho
Calcular Histograma Rho

Agora que conhecemos os três grupos principais de linhas paralelas, vamos separar as linhas dentro de cada um deles. Podemos repetir a mesma abordagem. Vamos pegar uma coluna do espaço de Hough que corresponde a um pico no histograma teta. A seguir, calcularemos outro histograma onde o eixo X representa o valor de rho e as leituras resumidas de Y para este rho. Obviamente, a soma será menor, então este gráfico não é tão bom. No entanto, os picos são claramente visíveis e o número deles (7) corresponde exatamente ao número de linhas paralelas na imagem de origem. Infelizmente, nem todos os gráficos são tão perfeitos, mas o princípio é claro.

Etapa 5: Encontre o nó central

Encontre o nó central
Encontre o nó central

Se pegarmos o pico central no histograma rho para cada teta, obteremos 3 linhas que são vermelhas na imagem. Sua intersecção marca o ponto necessário.

Etapa 6: Escolha entre 2 alternativas

Escolha entre 2 alternativas
Escolha entre 2 alternativas
Escolha entre 2 alternativas
Escolha entre 2 alternativas

Você vê que cada linha vai do ponto central em ambas as direções. Como determinar a metade correta? Vamos dar theta3. Suponha que pegamos a parte inferior desta linha. Vamos calcular outro espaço de Hough apenas para a parte da imagem de 2 linhas verdes até o canto superior direito da imagem. Em seguida, crie um histograma theta para ele. Você vê que o terceiro pico desapareceu completamente, então fizemos a escolha correta.

Etapa 7: determinar os cantos externos

Determine os cantos externos
Determine os cantos externos

Agora podemos usar o primeiro e o último pico nos histogramas rho para desenhar linhas azuis que cortam as bordas vermelhas e marcam os cantos restantes. A tarefa está resolvida.

Etapa 8: experimente na prática

As ilustrações para este Instructable foram criadas usando Perception 1.0. Este é um software gratuito que usa OpenCV - uma biblioteca poderosa para visão computacional. Também pode estar vinculado ao WinNB, que foi usado em meu outro Instructable, fornecendo capacidade de visão para robótica. Você pode baixar os dois programas do nbsite. Para instalação, basta executar o arquivo exe baixado. Posteriormente, você pode removê-lo usando a ferramenta padrão do Windows. O site também contém recursos sobre visão computacional e tópicos relacionados. Em Perception, você encontrará o método descrito de reconstrução 3D, bem como muitos outros. A vantagem deste programa é que ele produz o resultado final junto com os dados intermediários. Você pode pesquisar como a visão computacional funciona sem ser um programador. Quanto à entrada, cada método possui amostras típicas especialmente selecionadas. Claro, você também pode usar o seu. É possível inserir imagens de um arquivo ou da câmera do computador. Sinta-se à vontade para entrar em contato comigo em caso de dúvidas ou sugestões.

Recomendado: