collapse

* Posts Recentes

Emulador NES em ESP32 por dropes
[Hoje às 15:31]


Arame de Estendal por almamater
[Ontem às 16:16]


O que é isto ? por SerraCabo
[12 de Abril de 2024, 14:20]


Amplificador - Rockboard HA 1 In-Ear por almamater
[11 de Abril de 2024, 20:46]


Meu novo robô por josecarlos
[29 de Março de 2024, 18:30]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]

Autor Tópico: Robot vision  (Lida 16214 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline KammutierSpule

  • Mini Robot
  • *
  • Mensagens: 1.482
Re: Robot vision
« Responder #15 em: 04 de Outubro de 2015, 17:11 »
Visao artificial e' uma area bastante complexa.
Visao 3D e' uma area bastante compexa elevada `a terceira dimensao :)

Para certo tipo de condicoes, navegacao e detectacao de objectso pode ser feito com apenas 2D.

Investiga este software:
RoboRealm
http://www.roborealm.com/tutorials.php
http://www.roborealm.com/help/index.php

nao e' opensource, tem uma versao 30 dias para experimentar e tem tutorials com um texto muito facil de ler para quem esta a comecar e pode experimentar com uma webcam.

EDIT: Possivelmente existem outros softwares identicos faceis de brincar com webcams e sem necessidade de programacao. Depois disso, a sugestao mais natural 'e passar para openCV, mas para usar aquilo ja e' necessario perceber muito da coisa.
« Última modificação: 04 de Outubro de 2015, 17:20 por KammutierSpule »

Offline josecarlos

  • Mini Robot
  • *
  • Mensagens: 394
Re: Robot vision
« Responder #16 em: 04 de Outubro de 2015, 17:33 »
Penso que seria um retrocesso o 2D pois cada vez mais estamos a progredir nas 3D a avaliar pelo que nos rodeia, câmaras, óculos, impressoras etc.
Vou também investigar a tua sugestão com mais conhecimento há mais possibilidade de escolher a certa. ;)

Obrigado

   

Offline KammutierSpule

  • Mini Robot
  • *
  • Mensagens: 1.482
Re: Robot vision
« Responder #17 em: 04 de Outubro de 2015, 17:51 »
Penso que seria um retrocesso o 2D pois cada vez mais estamos a progredir nas 3D a avaliar pelo que nos rodeia, câmaras, óculos, impressoras etc.

Na verdade, quando se diz "camera 3D" ou "visualizacao 3D" o que se esta a falar e' de uma imagem 2D mais um valor de profundidade.

Nao podes comparar por exemplo com uma impressora 3D. Um camera (tal como os humanos) so consegue extrair informacao 2D (+ nocao de profundidade). (isto e', na nossa dimensao, apenas a olhar parado, nao nos permite saber o que esta por detras de um objecto. Se vivessemos com uma quarta dimensao, ao olhar-mos para um objecto 3D poderiamos visualizar completamente todos os pontos do objecto.. atras..dentro..etc)

Portanto, mesmo que tenhas informacao da profundidade, o processamento principal e a maior parte da informacao 'e 2D. A informacao de profundidade, acaba por ser apenas isso: uma indicacao da distancia relativa `a camera de cada pixel. O resto da "riqueza" da informacao esta no 2D (formas, linhas, pontos, cores, etc)

Nas se trata de um retrocesso, trata-se de algo essencial. Se tivesses so a informacao da profundidade era o mesmo que andar a caminhar "as apalpadelas".
Tal como os humanos, os sistemas roboticos tendem em aglomerar toda a informacao sensorial disponivel para tirar conclusoes.

Offline josecarlos

  • Mini Robot
  • *
  • Mensagens: 394
Re: Robot vision
« Responder #18 em: 04 de Outubro de 2015, 18:31 »
Penso que a noção de profundidade é importante na forma de como os robôs vêem são calculadas triangulações.
Para mim vejo de outra forma, é uma forma geométrica triângulo que podes juntar e fazer qualquer imagem ou forma , malha de triângulos ou Mesh.

Essa profundidade é a 3 linha do triângulo.
     
« Última modificação: 04 de Outubro de 2015, 18:45 por josecarlos »

Offline josecarlos

  • Mini Robot
  • *
  • Mensagens: 394
Re: Robot vision
« Responder #19 em: 04 de Outubro de 2015, 19:10 »

Origem: Wikipédia, a enciclopédia livre.

Exemplos de malhas poligonais
Uma malha poligonal é uma coleção de faces (onde cada uma é um conjunto de vértices) que definem um objeto tridimensional nos campos da computação gráfica e da modelagem tridimensional. As faces geralmente são constituídas de triângulos ou quadriláteros, umas vez que estas formas simplificam o processo de renderização, no entanto também podem ser compostas por formas geométricas complexas.

O estudo das malhas poligonais é um grande sub-campo da computação gráfica e modelagem geométrica. Diferentes representações de malhas poligonais são utilizadas para diferentes aplicações e propósitos. Devido a grande importância deste assunto, atualmente existem algoritmos bem desenvolvidos para técnicas como ray tracing, detecção de colisão, etc.

Offline KammutierSpule

  • Mini Robot
  • *
  • Mensagens: 1.482
Re: Robot vision
« Responder #20 em: 04 de Outubro de 2015, 22:37 »
Essa tecnica que referes, nao tenho conhecimento que seja usada em robots e nao me parece uma aplicacao adequada. Para alem que e' necessario um ambiente controlado para extrair essas malhas poligonais. (esse sim e' um exemplo identico as impressoras 3D: um prato giratorio e' projectado uma matrix de luz que e uma camera recebe as imagens integrando a rotacao. Depois esses algoritmos recontroem usando os pontos recolhidos uma malha)

A ideia é aplicar num robô, detectar objectos e também navegação.

No caso que pretendes, detectar objectos e navegacao, aplicando ao robot, essa tecnica nao 'e indicada. Pois geralmente nao ha interesse em saber a geometria dos objectos. Para alem que para extrair essa geometria como expliquei seria preciso pegar no objecto completo e roda-lo com uma precisao mt grande.

Para navegacao, ajuda ter a informacao da profundidade. Por exemplo se queres o robot a andar em casa e nao ir contra o sofa ou mesa.
No entanto, em visao grafica, penso que 'e importante primeiro definir muito bem o que se pretende fazer e aplicar a tecnica mais simples que consegues os objectivos pretendidos da melhor forma.

Por exemplo, se definires "preciso de uma maneira para desviar dos obstaculos na casa".
Considerando que as coisas sao planas e tem um formato identico, ex: sofa, mesa, vasos.
Seria possivel obter uma deteccao de obstaculos mesmo sem usar duas cameras (stereo vision), usando ou uma matrix ou um laser (ou luz) linear. (ou varrimento)

Se forem outras condicoes, por exemplo:
http://www.roborealm.com/tutorial/Obstacle_Avoidance/slide010.php

Se considerares procurar um objecto como um livro, entao nesse caso nem 'e necessario informacao de profundidade nem 3d. Basta dar a conhecer o livro e existem tecnicas para aprender a detectar baseado em imagens (feature tracking).

And so on, por isso 'e muito importante definir exactamente o que se pretende fazer pois nao existe uma solucao "da para tudo" e como ja tinha falado no outro email e necessario juntar varias tecnicas para conseguir resolver um problema.


Offline josecarlos

  • Mini Robot
  • *
  • Mensagens: 394
Re: Robot vision
« Responder #21 em: 04 de Outubro de 2015, 23:20 »
Desvio de obstáculos pode até ser feito com um simples ultra sónico e há muito mais formas de o fazer
estamos de acordo.
Com uma câmara 3d há a possibilidade de calcular a que distância exacta do objecto.
Essa técnica de que falo já é usada em visão computacional e reconhecimento facial.
Quando desenhas em CAD uma peça é criada uma malha de triângulos essa é forma que o computador entende.
   
 

Offline KammutierSpule

  • Mini Robot
  • *
  • Mensagens: 1.482
Re: Robot vision
« Responder #22 em: 04 de Outubro de 2015, 23:54 »
Essa técnica de que falo já é usada em visão computacional e reconhecimento facial.
 

Esse exemplo, e' um exemplo 2D, repara que o que 'e mostrado 'e uma folha com a imagem de uma cara e nao a cara real da pessoa. Sabendo as "features" (olhos, nariz, boca,etc) do objecto (cara) a detectar, 'e possivel mapear uma orientacao 3D do objecto.
Mesmo sem a informacao de profundidade, como o objecto 'e "universalmente conhecido" serial possivel saber a distancia (relativa) a q ele se encontra.

Claro que se tiveres a informacaode profundidade 'e mais um valor e ajuda a melhorar a precisao desse conhecimento.

Quando desenhas em CAD uma peça é criada uma malha de triângulos essa é forma que o computador entende

Consegues encontrar algum exemplo de utilizacao (pratico ou nao) em que por um sistema de visao (num robot) extraia a informacao 3D (pontos/malha) de um objecto para o comparar com um objecto virtual (CAD)? Ou seja, que a deteccao e tratamento do objecto seja feito recorrendo `a malha extraida?

Eu consigo talvez encontar um exemplo, mas e' um caso muito muito especifico.
Edit: googlar/youtube por: "bin picking"
« Última modificação: 05 de Outubro de 2015, 00:03 por KammutierSpule »

Offline josecarlos

  • Mini Robot
  • *
  • Mensagens: 394
Re: Robot vision
« Responder #23 em: 05 de Outubro de 2015, 00:24 »


Claro que se tiveres a informacaode profundidade 'e mais um valor e ajuda a melhorar a precisao desse conhecimento.

Toda a informação é valida e porque não por em pratica os progressos já realizados.


Eu consigo talvez encontar um exemplo, mas e' um caso muito muito especifico.
Edit: googlar/youtube por: "bin picking"


Afinal já temos alguma coisa , não sou expert em visão computacional estou apenas a focar as minhas pesquisas para a parte que me interessa vou fazer o que posso, conto com todas as opiniões. ;)

Obrigado

Offline josecarlos

  • Mini Robot
  • *
  • Mensagens: 394
Re: Robot vision
« Responder #24 em: 06 de Outubro de 2015, 14:44 »
Mais um exemplo ;)




Offline KammutierSpule

  • Mini Robot
  • *
  • Mensagens: 1.482
Re: Robot vision
« Responder #25 em: 06 de Outubro de 2015, 15:11 »
Mais um exemplo ;)



Esse exemplo e' 2D. Trata-se de mapeamento de pontos (features) para um objecto conhecido 3D.
Repara como ele so trata a parte da frente, quando a cara vira, deixa de ter pontos para fazer o "match".

Esse exemplo nao tem a com o que falavas em aquirir a malha do objecto e comparar com o objecto virtual
Ou seja, nao e' uma comparacao de dados 3D-3D. So a informacao 2D da webcam e' tratada.

Eh mesma situacao que ja tinhas mostrado no outro exemplo da cara.
E esses sao exemplos que nao precisas de aquisicao de profundidade nem 3D (pontos.. malhas) basta usar os pontos conhecidos adquiridos em 2D que pela sua posicao relativa se consegue mapear para o objecto (conhecido) 3D para saber a orientacao (e distancia) dele.

O uso de profundidade e 3D eh mesmo para situacoes mt especificas. Por exemplo se tapares um olho e caminhares pela casa, consegues faze-lo sem ir contra as paredes :) E no entanto nao tens a informacao directa de profundidade.
Mas o cerebro que tem informacao historica (objectos conhecidos) consegue mapear (e integrar no tempo) essa informacao 2D para navegar.

No exemplo que dei de "bin picking" e' usado a informacao de profundidade/pontos 3D porque os objectos estao todos uns em cima dos outros e e' dificil so com o 2D tirar pontos (features, pois os objectos sao muito lisos e sem nenhuma aparencia que se sobresaia)
Entao a profundidade/3D e' usado por exemplo para saber o ponto/objecto que esta mais perto.

Offline josecarlos

  • Mini Robot
  • *
  • Mensagens: 394
Re: Robot vision
« Responder #26 em: 06 de Outubro de 2015, 15:35 »


Esse exemplo e' 2D. Trata-se de mapeamento de pontos (features) para um objecto conhecido 3D.
Repara como ele so trata a parte da frente, quando a cara vira, deixa de ter pontos para fazer o "match".





Podes também  ver o exemplo do GPS é mapeamento baseado em triangulação  em tempo real certo. 
A visão humana também é uma triangulação tens dois olhos e o ponto que estás a ver  isso quando tapas um olho ficas sem ter a possibilidade de avaliar a essa tal profundidade de que falas .

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Robot vision
« Responder #27 em: 07 de Outubro de 2015, 17:10 »
Queres compativel com o ROS, certo?

Como ja foi dito visao e' complicado e visao 3d nao esta assim tao estavel como parece, a maior parte dos projectos implementados usa visao 2d, visao 3d stereo ainda esta muito na parte de investigacao. Podes e' usar RGBD tipo kinnect ou este projecto por exemplo: https://www.indiegogo.com/projects/orbbec-persee-world-s-first-3d-camera-computer#/story mas tens que assumir que so vais usar o robot em espacos sem luz solar directa.

Para navegacao podes comprar um lidar http://www.ebay.co.uk/sch/i.html?_from=R40&_trksid=p2050601.m570.l1313.TR0.TRC0.H0.Xneato+lidar.TRS0&_nkw=neato+lidar&_sacat=0 mas mesmo depois disso nao e' assim tao trivial fazer a navegacao.

Eu chamo atencao para dizer que isto nao e' simples porque dizes nao perceber nada e isto sao coisas que e' preciso ter bastantes bases da area, ainda nao sao temas muito "user-friendly".

Offline josecarlos

  • Mini Robot
  • *
  • Mensagens: 394
Re: Robot vision
« Responder #28 em: 07 de Outubro de 2015, 18:57 »
Boas @metRo_

Reconheço que deve ser uma área difícil mas estou disposto a percorrer esse caminho é mais um desafio.
Encaro esse desafio como um processo de aprendizagem vamos ver até aonde posso ir.

Muito obrigado  ;) 

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Robot vision
« Responder #29 em: 07 de Outubro de 2015, 21:03 »
Boas @metRo_

Reconheço que deve ser uma área difícil mas estou disposto a percorrer esse caminho é mais um desafio.
Encaro esse desafio como um processo de aprendizagem vamos ver até aonde posso ir.

Muito obrigado  ;)

Entao aconcelho o seguinte, antes de pensares no 3d, comeca por usar uma camera para fazer um tracking por cor ou assim, ja e' um exercicio relativamente completo. Que maquina tens no robot?

As cameras ps3 eye sao as melhores na relacao qualidade preco, muito acima de qualquer outra camera que compres por 100euros e custam cerca de 10E.

Indenpende do SO conseguiras usar o opencv para fazer a deteccao da cor depois ha os algoritmos para o tracking. Vamos supor que nao precisas de tracking e a deteccao de cor e' suficientemente boa, isto e', sem interrupcoes que prejudicam o movimento do robot. Comeca por ai:)