LusoRobótica - Robótica em Português
Robótica => Projectos de robótica => Projectos em desenvolvimento => Tópico iniciado por: guibot em 21 de Julho de 2010, 03:34
-
ICU . I See You - é um sub-projecto derivado do SWARS . see what a robot sees (http://lab.guilhermemartins.net/2010/04/11/swars/).
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Ffarm5.static.flickr.com%2F4116%2F4812292801_99db14ab9e_z.jpg&hash=865abd6da191277b634a0fe58c707d5e2eb51ce1)
Desta vez, além de ter como objectivo ver o que o robot vê, quis também dar-lhe a capacidade de detectar faces, e segui-las.
Para a detecção facial usei a biblioteca OPENCV (http://ubaa.net/shared/processing/opencv/) para Processing (http://processing.org/), é muito divertida e fácil de trabalhar, e mostrou ser muito sensível na detecção de faces, por vezes até sensível de mais pois detectava faces onde elas não existiam, até houve alguém que comentou ser um algoritmo de detecção de faces de fantasmas!
ICU . I See You (1/2) (http://www.youtube.com/watch?v=_UFAa2XB6XA#ws)
ICU . I See You (2/2) (http://www.youtube.com/watch?v=l78ci2fiRPo#ws)
Não tive tempo suficiente para pôr os quatro motores servo a funcionar, neste momento só os dois de cima é que funcionam. O próximo passo será implementar inverse kinematics e tornar os movimentos muito mais interessantes assim como a interactividade do robot com as pessoas.
Este projecto esteve (está) exposto na exposição dos laboratórios da Audiência Zero no Espaço do Tempo em Montemor-o-Novo, mas infelizmente tive que ir lá buscar o computador que estava a processar a detecção facial pois vai-me fazer falta nas próximas semanas. Espero em breve ter o ICU novamente exposto ao público.
Deixo aqui a programação que estou a usar, tanto para o arduino como para o processing.
Para o Arduino necessitam de ter a biblioteca MegaServo, e para o Processing a OPENCV citada acima.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Ffarm5.static.flickr.com%2F4095%2F4812289881_2f8631f7f9_z.jpg&hash=78a5e23a18fc5866cbbcdf6aec60c1d982033ceb)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Ffarm5.static.flickr.com%2F4120%2F4812293561_b72431bc0c_z.jpg&hash=955f493809aea121cc01f7fa6402eba79bfc7ea1)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Ffarm5.static.flickr.com%2F4082%2F4812291683_4cc78998ac_z.jpg&hash=b54b9347f6991d645dc9d15b487f119596beef30)
-
Espetacular...Adorei...
Cumprimentos...
-
Bastante interessante, qual é a distancia máxima a que faz detecção de rostos?
Está aqui uma ideia interessante para quem tem servos encostados ao canto. ;)
Boa continuação de projecto
-
A distância máxima é relativa, depende sempre da lente, se está com ou sem zoom.. com a ps eye, consigo que faça detecção de rostos a uma distância entre 5 a 7 metros
-
Boa tarde
Podes mostrar mais sobre este projecto?
Qual equipamento que utilizas,ligaçoes,algum código?
Achei interessante, emboranão saiba bem por onde começar, tipo qual o equipamento utilizado.
Obrigado
Bom trabalho
-
O equipamento que estou a usar basicamente é um Motoruino (http://guibot.pt/motoruino) (que é um clone de Arduino (http://arduino.cc)), depois são 4 motores servo montados em sistemas de pan/tilt modificados,
Em relação ao software estou a usar Processing (http://processing.org) com a biblioteca OPENCV (http://ubaa.net/shared/processing/opencv/), que tem vários algoritmos disponíveis todos eles relacionados com visão por computador e prontos a usar, neste caso uso o Face Detect, que como o próprio nome indica, detecta faces humanas.
O código vou inseri-lo no post principal para quem quizer dar uma olhada.
-
O projecto está muito engraçado... e consegues sempre fazer-lhes umas antenas e coisas do género que lhe dão grande piada.
Quando a código.. é meter tudo na batedeira, juntar um bocadinho de alma e misturar muito bem!
-
Esta muito fixe, enquanto estava o ver o video nao pude deixar de imaginar como ficaria se fosse combinado com outro projecto teu que achei altamente o "Talkie Walkie" ;D
Parabens, abraço.
-
Estás a usar a webcam em windows com o processing? como?
Está altamente...
é possivel detectar faces diferentes, e contar quantas diferentes passam na frente?
-
Provavelmente o que o opencv está a fazer é detectar olhos e nariz para reconhecer como uma face. Visto que a distancia da câmara varia e dado a velocidade das imagens no processing... creio que não faz reconhecimento facial mas apenas tracking de uma forma semelhante à de uma face.
-
Muito bom ... Não existe OpenCV para Visual Studio ?
-
OpenCV é open e pode ser compilado para qualquer ambiente de trabalho.
http://opencv.willowgarage.com/wiki/ (http://opencv.willowgarage.com/wiki/)
Tens aqui para VS:
http://opencv.willowgarage.com/wiki/VisualC%2B%2B (http://opencv.willowgarage.com/wiki/VisualC%2B%2B)
-
OpenCV é open e pode ser compilado para qualquer ambiente de trabalho.
http://opencv.willowgarage.com/wiki/ (http://opencv.willowgarage.com/wiki/)
Tens aqui para VS:
http://opencv.willowgarage.com/wiki/VisualC%2B%2B (http://opencv.willowgarage.com/wiki/VisualC%2B%2B)
Isso é visual c++ . mas vou ver o que se pode fazer...
-
Pediste para VS e não para C#.
Para C# tens aqui:
http://code.google.com/p/opencvdotnet/ (http://code.google.com/p/opencvdotnet/)
(O google é amigo)
-
Pediste para VS e não para C#.
Para C# tens aqui:
http://code.google.com/p/opencvdotnet/ (http://code.google.com/p/opencvdotnet/)
(O google é amigo)
Nem pedi para C# pedia para visual studio .. em geral.. isto funciona em VB? mas obrigado :D.
Cumprimentos
-
O visual studio é uma ferramenta para várias linguagens de programação, mas para cada linguagem precisas do respectivo port.
É como estares a pedir-me porcas para chave inglesa... Não existem porcas que funcionam em todos os parafusos, mas para cada parafuso existem várias porcas que são utilizaveis com a tua chave inglesa.
-
Ok e obrigado
-
@TigPT as antenas derivaram das braçadeiras de serrilha que usei para fixar melhor a camara ao suporte, mas logo vi que seriam as antenas do bicho que lhe dão um certo carisma :)
@amando96 não entendi a pergunta da webcam em windows e processing.. (neste caso estou a usar mac)
Em relação à outra questão é possivel detectar várias faces e saber quantas estão a ser detectadas, existem algoritmos para diferentes partes do corpo chamados HAAR CASCADE, isto é uma área muito explorada, enquanto a biblioteca do opencv para o processing é muito reduzida, a de C++ é muito mais extensa e abre muitas mais possibilidades
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fubaa.net%2Fshared%2Fprocessing%2Fopencv%2Fimages%2FfaceDetect.png&hash=24c9a0420760221712fb8ca6ff4d29f6b5cbbb4e)
-
Ah, pois, quando tento usar webcam + processing + windows pede-me o VDIG, que para windows não é de borla. Não sei se dá para sacar :P
Mas para mac vem incluido logo.
-
tenta com este: http://www.eden.net.nz/7/20071008/ (http://www.eden.net.nz/7/20071008/)
-
Causará coflitos por ser para XP e eu ter W7?
Estou a ler sobre openCV, parece mesmo interessante, vamos ver se o VDIG instala :D
-
Muito bom aspecto este ICU. :D
Tens uns bons tempos de resposta dos servos, eu tive de fazer uns tweeks no meu codigo para deixar de detectar caras fantasma, envolveu em parte a criação de um algoritmo que verifica a existencia de pelo menos 3 frames com detecção numa mesma area.
Como reage o ICU a mais que uma pessoa a aparecer na camara? segue sempre a mesma pessoa? Esta foi a minha maior dificuldade, mas acho que ja a estou a superar com um algoritmo de reconhecimento facial.
Ver se no verão faço novos videos e coloco aqui a fase 2 que ja envolve duas camaras.
@Amando96 O meu "Face Tracker" que podes ver aqui http://lusorobotica.com/index.php?topic=2130.0 (http://lusorobotica.com/index.php?topic=2130.0) foi feito com C# e foi todo gratuito (windows)
-
@Marvin quando detecta mais do que uma face ele salta entre elas.. mas sei que podes dar um ID a cada face detectada e dar ordem para seguir uma ou outra :)
vou agora ler o teu post que desconhecia por completo e parece bem interessante ;)
-
Qualquer web cam dá?
-
sim qualquer uma dá, no entanto a resolução e os FPS (frames por segundo) são factores muito importantes
-
Uma nota em relação ás imagens a processar. (tendo em conta que foi usado o openCV a base é a mesma)
Quanto maior a imagem a nivel de pixels mais processador é necessario para processar a imagem. Pois, de uma forma mto basica, a imagem é subdividida em quadrados de 10px e analisada como um array.
Uma forma para acelarar este processamento é reduzir o tamanho da imagem para uma definição mais baixa. Nesse caso o importante é a qualidade da lente para a imagem (embora pequena) seja o mais nitida possivel.
Já agora, quantos FPS estas a conseguir ter Guibot?
-
não cheguei a ver quantos frames estava a ter, mas aquilo estava lentinho podes ver nos videos..
e por falar em aplicações de detecção facial vejam esta que adivinha o estado de humor e idade, estão a disponibilizar uma versão de demonstração:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.iis.fraunhofer.de%2Ffhg%2FImages%2Fgesichtsfeinanalyse_web_tcm278-138890.jpg&hash=e00523e558dbc713a3009ad3848550fa906d63b8)
http://www.iis.fraunhofer.de/EN/bf/bv/kognitiv/biom/dd.jsp (http://www.iis.fraunhofer.de/EN/bf/bv/kognitiv/biom/dd.jsp)
-
Já existe uma aplicação em Tokyo a usar estes algoritmos.
http://www.smartplanet.com/business/blog/smart-takes/tokyos-intelligent-digital-billboards-can-tell-gender-age-of-passersby/9031/ (http://www.smartplanet.com/business/blog/smart-takes/tokyos-intelligent-digital-billboards-can-tell-gender-age-of-passersby/9031/)
Estou para fazer um post sobre isto no meu blog, mas ainda não encontrei um video decente da aplicação pratica disto.
Para o mês que vem espero ver um destes ao vivo no metro de Tokyo e tento filmar o bilboard em acção. (isso e do Gundam mais isso já é outra conversa)
-
Eu visitei a Feira da Tecnologia na FIL e qual não foi o meu espanto quando encontrei o ICU ;D
Mas não se mexia :-[ foi pena :)
OFFTOPIC: Um motoruino ao vivo é muito bonito ;D
-
Não se mexia?? estranho, amanhã passo por lá para o ir ver :)
-
A pseye estava ligada mas os servos nem sinal deles ;D
-
Obrigado AcidDagger!!
Gostei de ver o ICU no site makebits.net ;)
-
A todos o que queiram ver o ICU ao vivo bastam aparecerem na FIL, a entrada é gratuita! O ICU está no pavilhão 3 junto a uma exposição do Alentejo (salvo erro).
A Feira termina amanhã :)
-
é pena é não estar a funcionar, e só consigo passar por lá amanhã à tarde..