• No se han encontrado resultados

6.2 Librer´ıa de detecci ´on de imaxe

6.2.2 Detecci ´on de caras

No caso de reco ˜necemento de caras o algoritmo utilizado xa traballa dunha forma distinta a como o fac´ıa cando se estudaba a detecci ´on de obxectos de cor, neste caso ou seu funcio- namento basearase non reco ˜necemento a trav ´es de fervenzas de ‘Haar’.

A detecci ´on de obxectos utilizando os clasificadores de fervenzas de ‘Haar’ ´e un m ´etodo de detecci ´on efectivo proposto por Paul Viola e Michael Jones [50]. Esta funcionalidade real´ızase tam ´en coa axuda de OpenCV, que traballa utilizando ditas ‘fervenzas’, as cales se basean en detectar caras en m ´ultiples etapas.

Para cada subrexi ´on dunha imaxe faise unha proba aproximada e r ´apida, e se esta proba se pasa, faise unha proba un pouco m ´ais detallada, e as´ı sucesivamente. O algoritmo pode ter 30-50 destas etapas ou fervenzas, e s ´o detectar ´a unha cara se todas as etapas se pasan. Na figura6.2.2.1m ´ostrase de forma conceptual a forma de traballo das diferentes fervenzas.

E.P.S. M ´ASTER EN ENXE ˜NAR´IA INDUSTRIAL TFM Nº: 10

Figura 6.2.2.1 –Funcionamento dun detector baseado en multiples etapas ou fervenzas

As fervenzas son s ´o unha chea de arquivos de tipo XML que conte ˜nen datos OpenCV uti- lizados para detectar obxectos, por tanto basta con inicializar o c ´odigo coa fervenza que se desexa e logo esta xa fai o traballo. Neste caso, como se comentou xa, a fervenza utilizada ´e de tipo ‘Haar’ e serve para reco ˜necer caras que est ´an de fronte ´a imaxe, pero existen outros moitos tipos delas.

Hai que comentar tam ´en que estes algoritmos contan cunha serie de par ´ametros que ha- ber ´a que axustar en funci ´on do ambiente no que se pretendan empregar, isto ´e, non ser ´a o mesmo reco ˜necer unha cara nun ambiente sombr´ıo que nun con moita luz, ou se a cara se atopa m ´ais preto ou m ´ais lonxe da c ´amara. Os principais par ´ametros son os seguintes:

O factor de escala, utilizado para compensar o feito de que algunhas caras poden estar m ´ais preto da c ´amara que outras.

O tama ˜no da xanela m ´obil utiliza para definir cada unha das subrexi ´ons da imaxe. O n ´umero de obxectos que se detectan preto da xanela actual antes de declarar a cara como ‘atopada’. Este par ´ametro afectar ´a ´a calidade das caras detectadas: un valor m ´ais alto resulta en menos detecci ´ons pero con maior calidade.

Por outra banda, o algoritmo devolve unha lista de rect ´angulos onde cre que atopou unha cara, os cales est ´an definidos por catro valores que son: a localizaci ´on ‘x’ e ‘y’ do rect ´angulo, e o ancho e altura do mesmo ‘w’ e ‘h’. Un exemplo do seu funcionamento, unha vez implemen-

tado no robot, pode verse na figura6.2.2.2.

Figura 6.2.2.2 –Exemplo de detecci ´on de caras

´

A hora da implementaci ´on da librer´ıa de detecci ´on facial, procederase ao axuste dos prin- cipais par ´ametros do algoritmo. Destes par ´ametros, axustaranse o factor de escala e n ´umero de obxectos que se detectan preto da xanela actual, xa que, como se dixo con anterioridade, inciden directamente na calidade da detecci ´on.

Nun primeiro momento tende a pensarse que se se indica a m ´axima calidade para a detec- ci ´on de caras, tan s ´o haber ´a que axustar o factor de escala para obter unha soluci ´on ´optima, pero non ´e as´ı. Xa que se o reco ˜necedor ´e moi preciso tardar ´a moito tempo en executarse, e dado que neste caso o que se pretende ´e poder empregalo en tempo real, iso non ser´ıa unha posibilidade. Inda que, por outra banda, se o detector ´e pouco preciso executarase en menos tempo, pero pode non chegar a reco ˜necer moitas caras reais.

Ser ´a necesario, polo tanto, chegar a un punto intermedio de consenso, onde o par ´ametro de calidade permita ´a funci ´on traballar o suficientemente r ´apido como para poder executala nunha aplicaci ´on que traballa en tempo real, de forma que permita o seguimento dunha cara, e que te ˜na a suficiente precisi ´on como para detectar as caras m ´ais b ´asicas ou pr ´oximas ´a c ´amara do robot, xa que tampouco se trata de as identifique todas, porque s ´o se vai a seguir a cara principal, ´e dicir, a de maior tama ˜no, xa que, a priori, ser ´a a m ´ais pr ´oxima ao robot e a que pretenda interactuar co mesmo.

Unha vez axustado este par ´ametro, bastar ´a con axustar o factor de escala para obter o mellor resultado posible.

E.P.S. M ´ASTER EN ENXE ˜NAR´IA INDUSTRIAL TFM Nº: 10

A continuaci ´on incl ´uense un exemplos acerca de como afecta o factor de escala ´a detec- ci ´on, unha vez a calidade da mesma xa foi axustada. As´ı, na parte superior da figura6.2.2.3 pode verse como cun factor de escala maior hai caras que quedan sen detectar, mentres que se este dimin ´ue o seu valor ata un punto concreto, no cal segue sendo r ´apida a execuci ´on do algoritmo, ´e posible detectalas todas, tal e como se mostra na parte inferior da mesma figura.

(a) Factor de escala maior - Menor tempo de execuci ´on pero peor resultado

(b) Factor de escala menor - Resultado ´optimo dentro da marxe de tempo

Figura 6.2.2.3 –Influencia do factor de escala no algoritmo de reco ˜necemento facial

Hai que comentar que ´a hora da utilizaci ´on deste algoritmo dentro da correspondente li- brer´ıa, terase en conta tan s ´o a cara de maior tama ˜no, que ´e a que nos exemplos da figura 6.2.2.3se mostra encadrada dentro dun rect ´angulo de diferente cor e cun c´ırculo de cor ver- mello indicando o centro do mesmo. Isto faise para indicar que ese ser ´a o punto para seguir polo robot cando se realicen os exemplos de seguimento de caras ou obxectos con diferentes partes do seu corpo, tal e como se mostra de novo na figura 6.2.2.4, onde se pode ver xa aplicado no propio robot. Polo tanto, este ser ´a o punto crave ´a hora de realizar aplicaci ´ons conxuntas entre as librer´ıas de detecci ´on de imaxe e de movemento, o obter o punto central (referencia) do obxecto ou cara que se pretenda seguir.

En resumo, foi posible tanto o reco ˜necemento de obxectos de cor como o de caras. No caso do reco ˜necemento de obxectos dese ˜nouse e implementouse unha etapa previa de re- co ˜necemento de cor, tendo en conta as posibilidades de cambios na luminosidade ambiente.

Figura 6.2.2.4 –Exemplo de detecci ´on cando se ven varias caras na imaxe

Xunto con isto, e para facer a detecci ´on m ´ais robusta, optouse por dese ˜nar un reco ˜necedor que, a parte de usar a cor do obxecto desexado, verificase tam ´en a s ´ua forma (neste caso circular) para poder evitar fallos de detecci ´on no caso de que alg ´un obxecto da mesma cor se atopase cerca. Obtiv ´eronse mellores resultados e m ´ais precisos que os que proporciona a API NAOqi dedicada ao seguimento de obxectos de cor, que tan s ´o permite a posibilidade de seguir pelotas de cor vermello, pero non distingue a s ´ua forma circular.

En canto ao reco ˜necemento de caras, dese ˜nouse e implementouse un reco ˜necedor facial que puidera operar en ROS, xa que non se dispo ˜n´ıa del. Neste caso f´ıxose coa axuda das funci ´ons da librer´ıa OpenCV dedicadas a tal fin, as cales foi necesario axustar e combinar de forma que se permitira realizar o reco ˜necemento en tempo real. Por outra parte, hai que co- mentar que o m ´odulo realizado tan s ´o distingue caras, e non persoas, polo que no caso de que existan diversas caras na imaxe, este optar ´a por seguir a de maior tama ˜no, por considerarse a principal e m ´ais pr ´oxima ao robot.

Por ´ultimo, tanto o m ´odulo de reco ˜necemento de obxectos de cor, como o m ´odulo de re- co ˜necemento de caras, se deixaron preparados para o seu uso inmediato en ROS e docu- mentados xuntos con diversos exemplos de aplicaci ´on, todos dispo ˜nibles no enlace https: //github.com/naoTFM/Nao-Documentation-TFM.

E.P.S. M ´ASTER EN ENXE ˜NAR´IA INDUSTRIAL TFM Nº: 10

Documento similar