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

Título: ICU . I See You
Enviado 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)



Título: Re: ICU . I See You
Enviado por: zordlyon em 21 de Julho de 2010, 12:18
Espetacular...Adorei...

Cumprimentos...
Título: Re: ICU . I See You
Enviado por: bdesigns em 21 de Julho de 2010, 14:47
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
Título: Re: ICU . I See You
Enviado por: guibot em 21 de Julho de 2010, 15:11
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
Título: Re: ICU . I See You
Enviado por: kerwac em 21 de Julho de 2010, 15:15
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
Título: Re: ICU . I See You
Enviado por: guibot em 21 de Julho de 2010, 15:29
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.
Título: Re: ICU . I See You
Enviado por: TigPT em 21 de Julho de 2010, 15:46
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!
Título: Re: ICU . I See You
Enviado por: preytender em 21 de Julho de 2010, 17:12

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.
Título: Re: ICU . I See You
Enviado por: amando96 em 21 de Julho de 2010, 18:47
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?
Título: Re: ICU . I See You
Enviado por: TigPT em 21 de Julho de 2010, 18:53
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.
Título: Re: ICU . I See You
Enviado por: GnGz em 21 de Julho de 2010, 19:14
Muito bom ... Não existe OpenCV para Visual Studio ?
Título: Re: ICU . I See You
Enviado por: TigPT em 21 de Julho de 2010, 19:20
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)
Título: Re: ICU . I See You
Enviado por: GnGz em 21 de Julho de 2010, 19:22
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...
Título: Re: ICU . I See You
Enviado por: TigPT em 21 de Julho de 2010, 19:24
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)
Título: Re: ICU . I See You
Enviado por: GnGz em 21 de Julho de 2010, 19:26
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
Título: Re: ICU . I See You
Enviado por: TigPT em 21 de Julho de 2010, 19:29
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.
Título: Re: ICU . I See You
Enviado por: GnGz em 21 de Julho de 2010, 19:31
Ok e obrigado
Título: Re: ICU . I See You
Enviado por: guibot em 21 de Julho de 2010, 20:25
@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)

Título: Re: ICU . I See You
Enviado por: amando96 em 21 de Julho de 2010, 22:35
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.
Título: Re: ICU . I See You
Enviado por: guibot em 21 de Julho de 2010, 23:17
tenta com este: http://www.eden.net.nz/7/20071008/ (http://www.eden.net.nz/7/20071008/)
Título: Re: ICU . I See You
Enviado por: amando96 em 22 de Julho de 2010, 11:55
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
Título: Re: ICU . I See You
Enviado por: Marvin em 22 de Julho de 2010, 12:01
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)
Título: Re: ICU . I See You
Enviado por: guibot em 22 de Julho de 2010, 12:48
@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 ;)
Título: Re: ICU . I See You
Enviado por: kerwac em 22 de Julho de 2010, 15:05
Qualquer web cam dá?
Título: Re: ICU . I See You
Enviado por: guibot em 22 de Julho de 2010, 16:18
sim qualquer uma dá, no entanto a resolução e os FPS (frames por segundo) são factores muito importantes
Título: Re: ICU . I See You
Enviado por: Marvin em 22 de Julho de 2010, 17:02
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?
Título: Re: ICU . I See You
Enviado por: guibot em 22 de Julho de 2010, 17:12
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)
Título: Re: ICU . I See You
Enviado por: Marvin em 22 de Julho de 2010, 17:29
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)

Título: Re: ICU . I See You
Enviado por: AcidDagger em 24 de Setembro de 2010, 22:42
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
Título: Re: ICU . I See You
Enviado por: guibot em 25 de Setembro de 2010, 01:53
Não se mexia?? estranho, amanhã passo por lá para o ir ver  :)

Título: Re: ICU . I See You
Enviado por: AcidDagger em 25 de Setembro de 2010, 10:37
A pseye estava ligada mas os servos nem sinal deles  ;D
Título: Re: ICU . I See You
Enviado por: guibot em 25 de Setembro de 2010, 10:52
Obrigado AcidDagger!!
Gostei de ver o ICU no site makebits.net  ;)
Título: Re: ICU . I See You
Enviado por: AcidDagger em 25 de Setembro de 2010, 11:33
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ã  :)
Título: Re: ICU . I See You
Enviado por: guibot em 25 de Setembro de 2010, 14:38
é pena é não estar a funcionar, e só consigo passar por lá amanhã à tarde..