Sunteți pe pagina 1din 7

21/3/2014

Deteco de Rosto com APIs do Android - Developer.com

Curtir

39

Tw eet

1,880

12

Java

Microsoft e. NET

Mvel

Andride

Open Source

Nuvem

Banco de dados

Arquitetura

Outro

Nuvem Galeria

NOVO: Cloud Center

21 de maro de 2014

Tpicos quentes

Newsletters gratuitas: Atualizao de Desenvolvimento Empresarial RSS

Developer.com

Mvel

Andride

Programao

Leia mais em Programao

HTML5 o novo padro que est prevista para a web. Saiba porque o HTML5 importante e descobrir como comear a us-lo hoje!

Deteco de Rosto com APIs Android


18 de abril de 2012 Por Chunyen Liu Bio Enviar e-m ail Mais artigos Tw eet 27

Atravs de duas APIs principais, Android fornece uma maneira simples para voc identificar os rostos das pessoas em uma imagem bitmap, com cada rosto que contm todas as informaes bsicas localizao. Este tutorial se concentra em utilizar essas APIs para realizar a tarefa de deteco de rosto, que pode ser estendido para muitas outras aplicaes interessantes. Como ns trabalhamos com essas APIs, vamos desenvolver um projeto de trabalho simples. O pacote de origem inteiro disponvel para download como uma referncia.

Uma coisa a se notar a deteco de rosto uma tecnologia de computador que determina os locais e tamanhos em imagens arbitrrias. No confundir com reconhecimento de face. Um sistema de reconhecimento facial uma aplicao informtica para a identificao ou verificao de uma pessoa a partir de uma imagem digital automaticamente. Uma das maneiras de fazer isso por meio da comparao caractersticas faciais selecionados a partir da imagem e um banco de dados facial. Simplificando, deteco de face extrai os rostos das pessoas em imagens, mas de reconhecimento de rosto tenta descobrir quem eles so.

Histrias Desenvolvedor Mais Populares


Hoje
Esta semana Todos os tempos

1 2 3 4 5

Usando JDBC com o MySQL, Introduo Criao de Casos de Uso Diagramas Uma Introduo Anotaes Java Hibernate Basics Usando ASP.NET Para Enviar E-mail

Como instalar o Android Face Detection APIs


Como mencionado anteriormente, existem duas principais APIs introduzidas neste tutorial: android.media.FaceDetector : Identifica os rostos das pessoas em um objeto grfico Bitmap. android.media.FaceDetector.Face : Contm todas as informaes que identifica a localizao de um rosto em um bitmap.
Seja magra. Seja gil. Trabalhar em conjunto. Download Now

No h nenhuma instalao necessria, uma vez que eles vm com as APIs do Android de base, no de pacotes opcionais.

Construindo Uma Atividade Android para Deteco de Rosto


Voc pode construir uma atividade Android genrico. Ns estendemos a classe base ImageView para MyImageView , que usamos como nosso principal objectivo de exibir a imagem, bem como marcadores de recurso rosto. No momento, o bitmap contendo rostos devem estar no formato 565 para as APIs para funcionar corretamente. Um rosto detectado precisa ter uma medida de confiana acima do limiar definido no android.media.FaceDetector.Face.CONFIDENCE_THRESHOLD .

Publicar um com entrio Em ail artigo Im prim ir artigo Com partilhe artigos

Mais comentados
Esta sem ana
Este Ms Todos os tempos

O mtodo mais importante implementado em s e t F a c e( ). Ele instancia o FaceDetector objeto e chama findFaces . O resultado , em seguida, armazenado em caras . Pontos mdios da cara so transferidos para MyImageView para exibio.

1 2 3 4 5

10 experimentais projetos PHP Empurrando o envelope Dia 1: Aprender os princpios de PL / SQL C # Dica: Colocar seu aplicativo C # na bandeja do sistema Lgico Versus Modelagem Fsica Banco de Dados o Ubuntu contribuindo tanto quanto deveria para Projetos de Software Livre?

Recursos para parceiros recomendados

http://www.developer.com/ws/android/programming/face-detection-with-android-apis.html

1/7

21/3/2014

Deteco de Rosto com APIs do Android - Developer.com


Cloud Computing Showcase para desenvolvedores Celular Centro de Desenvolvimento HTML 5 Centro de Desenvolvimento

T u t o r i a l O n F a c e D e t e c t 1p u b l i cc l a s sA c t i v i t y{ M y I m a g e V i e wM I Vp r i v a d o ; p r i v a d oB i t m a pm F a c e B i t m a p ; p r i v a t ei n tm F a c e W i d t h=2 0 0 ; p r i v a t ei n tm F a c e H e i g h t=2 0 0 ; M A X _ F A C E Sp r i v a t es t a t i cf i n a li n t=1 ; T A Gp r i v a t es t a t i cs t r i n g=" T u t o r i a l O n F a c e D e t e c t " ; @O v e r r i d e p u b l i cv o i do n C r e a t e( B u n d l es a v e d I n s t a n c e S t a t e ){ s u p e r . o n C r e a t e( s a v e d I n s t a n c e S t a t e ) ;

Top White Papers e Webcasts


Os desafios e as recompensas de Big Data
Como todos os tipos de dados torna-se disponvel para armazenamento, anlise e recuperao - assim chamado 'Big Data' - no so potencialmente enormes benefcios, mas igualmente grandes desafios ...

M I V=n e wM y I m a g e V i e w( t h i s ) ; s e t C o n t e n t V i e w( M I V ,n o v a sL a y o u t P a r a m s( L a y o u t P a r a m s . W R A P _ C O N T E N T ,L a y o u t P a r a m s . W R A P _ C O N T E N T ) ) ;

//C a r r e g a raf o t o B i t m a pb=B i t m a p F a c t o r y . d e c o d e R e s o u r c e( g e t R e s o u r c e s( ) ,R . d r a w a b l e . f a c e 3 ) ; m F a c e B i t m a p=b . c o p y( B i t m a p . C o n f i g . R G B _ 5 6 5 ,t r u e ) ; b . r e c y c l e( ) ;

m F a c e W i d t hm F a c e B i t m a p . g e t W i d t h=( ) ; m F a c e H e i g h tm F a c e B i t m a p . g e t H e i g h t=( ) ; m I V . s e t I m a g e B i t m a p( m F a c e B i t m a p ) ;

Voltando Big Data em informaes teis


A organizao gil precisa de conhecimento para atuar em, de forma rpida e eficaz. Embora muitas organizaes esto clamando por "Big Data", no to muitos sabem o que fazer com ele ...

//R e a l i z aad e t e c od er o s t oed e f i n i ros e t F a c ep o n t o sc a r a c t e r s t i c o s( ) ;

m I V . i n v a l i d a t e( ) ; }

s e t F a c ep u b l i cv o i d( ){ f dF a c e D e t e c t o r ; F a c e D e t e c t o r . F a c e[ ]=n e wr o s t o sF a c e D e t e c t o r . F a c e[ M A X _ F A C E S ] ; P o i n t Fp o n t om d i o=n e wP o i n t F( ) ; i n t[ ]f p x=n u l l ; i n t[ ]F P Y=n u l l ; i n tc o u n t=0;

Os Desafios da Integrao Nuvem


Solues de integrao baseados em nuvem pode ser confuso. Para aumentar a confuso so as vrias maneiras os departamentos de TI podem oferecer tal integrao ...

t r y{ f d=n e wF a c e D e t e c t o r( m F a c e W i d t h ,m F a c e H e i g h t ,M A X _ F A C E S ) ; c o u n t=f d . f i n d F a c e s( m F a c e B i t m a p ,e n f r e n t a ) ; }c a t c h( E x c e p t i o ne ){ L o g . e( T A G ," s e t F a c e( ) : "+e . t o S t r i n g( )) ; r e t o r n o ; }

//V e r i f i c as ed e t e c t a rq u a i s q u e rr o s t o s i f( c o u n t >0 ){ f p x=n e wi n t[ c o u n t ] ; F P Y=n e wi n t[ c o u n t ] ;

f o r( i n ti=0 ;i< c o u n t ;i++ ){ t r y{ r o s t o s[ i ]g e t M i d P o i n t( p o n t om d i o ) . ;

f p x[ i ]=( i n t )m i d p o i n t . x ; F P Y[ i ]=( i n t )m i d p o i n t . y ; }c a t c h( E x c e p t i o ne ){ L o g . e( T A G ," s e t F a c e( ) :c a r a "+i+" : "+e . t o S t r i n g( ) ) ; } } }

m I V . s e t D i s p l a y P o i n t s( F P X ,F P Y ,c o n t a g e m ,0 ) ; } }

No cdigo a seguir, adicionamos s e t D i s p l a y P o i n t s( )ao nosso MyImageView para tornar os marcadores para as caractersticas de rosto detectadas. A Figura 1 mostra um marcador centrado no ponto mdio da face detectada.

http://www.developer.com/ws/android/programming/face-detection-with-android-apis.html

2/7

21/3/2014

Deteco de Rosto com APIs do Android - Developer.com

//C o n f i g u r a rr e c u r s o sd er o s t od e t e c t a d a sp a r ae x i b i o s e t D i s p l a y P o i n t sp u b l i cv o i d( i n t[ ]x x ,i n t[ ]a a ,i n tt o t a li n te s t i l o ){ m D i s p l a y S t y l e=e s t i l o ; M P X=N U L L ; m p y=N U L L ; i f( x x=n u l l& &a a=n u l l& &t o t a l >0 ! ){ M P X=n e wi n t[ t o t a l ] ; m p y=n e wi n t[ t o t a l ] ;

f o r( i n ti=0 ;i< t o t a l ;i++ ){ M P X[ i ]=x x[ i ] ; m p y[ i ]=a a[ i ] ; } } }

Figura 1: Rosto nico detectado em Android

Android Deteco de Cara: Detectar Mltiplas Faces


Voc pode especificar o nmero mximo de faces a serem detectadas usando FaceDetector . Voc pode modificar a seguinte varivel para este fim, por exemplo. Na documentao da API, ele no especifica se existe um limite superior, para que possa tentar detectar tantas faces quanto possvel. M A X _ F A C E Sp r i v a t es t a t i cf i n a li n t=1 0 ;

Ento voc pode usar contagem voltou de findFaces obter todos os resultados da lista. A Figura 2 um exemplo que mostra mltiplos marcadores centradas nos respectivos pontos mdios das faces detectadas.

http://www.developer.com/ws/android/programming/face-detection-with-android-apis.html

3/7

21/3/2014

Deteco de Rosto com APIs do Android - Developer.com

Figura 2: Mltiplas Faces detectado no Android

Android Deteco de Rosto: aproximar Eye Center Locais


Detector rosto Android retorna outras informaes, bem como para nos ajustar os resultados um pouco. Por exemplo, ele tambm retorna eyesDistance , representar , e confiana . Podemos usar eyesDistance para estimar onde os locais de centro de olho so. Desta vez, tambm colocou setFace () em uma discusso de fundo dentro de doLengthyCalc () , porque o clculo de deteco de rosto pode, potencialmente, levar muito tempo e fazer com que o "aplicativo no est respondendo" erro ao lidar com grandes imagens ou imagens com muitos rostos para detectar . A Figura 3 um exemplo que mostra mltiplos marcadores centradas sobre os respectivos olhos das faces detectadas. T u t o r i a l O n F a c e D e t e c tp u b l i cc l a s sA c t i v i t y{ M y I m a g e V i e wp r i v a d oM I V ; m F a c e B i t m a pB i t m a pp r i v a d o ; p r i v a t ei n tm F a c e W i d t h=2 0 0 ; p r i v a t ei n tm F a c e H e i g h t=2 0 0 ; M A X _ F A C E Ss t a t i cf i n a li n tp r i v a d o s=1 0 ; T A Gp r i v a t es t a t i cs t r i n g=" T u t o r i a l O n F a c e D e t e c t " ; D E B U Gp r i v a t es t a t i cb o o l e a n=f a l s e ; p r o t e g i d oe s t t i c aG U I U P D A T E _ S E T F A C Ei n tf i n a l=9 9 9 ; p r o t e g i d oH a n d l e rm h a n d l e r=n e wH a n d l e r( ){ //@O v e r r i d e p u b l i cv o i dh a n d l e M e s s a g e( m s gM e n s a g e m ){ m I V . i n v a l i d a t e( ) ;

s u p e r . h a n d l e M e s s a g e( m s g ) ; } } ;

@O v e r r i d e p u b l i cv o i do n C r e a t e( B u n d l es a v e d I n s t a n c e S t a t e ){ s u p e r . o n C r e a t e( s a v e d I n s t a n c e S t a t e ) ;

M I V=n e wM y I m a g e V i e w( t h i s ) ; s e t C o n t e n t V i e w( M I V ,n o v a sL a y o u t P a r a m s( L a y o u t P a r a m s . W R A P _ C O N T E N T ,L a y o u t P a r a m s . W R A P _ C O N T E N T ) ) ;

//C a r r e g a raf o t o B i t m a pb=B i t m a p F a c t o r y . d e c o d e R e s o u r c e( g e t R e s o u r c e s( ) ,R . d r a w a b l e . f a c e 3 ) ; m F a c e B i t m a p=b . c o p y( B i t m a p . C o n f i g . R G B _ 5 6 5 ,t r u e ) ; b . r e c y c l e( ) ;

m F a c e W i d t hm F a c e B i t m a p . g e t W i d t h=( ) ; m F a c e H e i g h tm F a c e B i t m a p . g e t H e i g h t=( ) ; m I V . s e t I m a g e B i t m a p( m F a c e B i t m a p ) ; m I V . i n v a l i d a t e( ) ;

http://www.developer.com/ws/android/programming/face-detection-with-android-apis.html

4/7

21/3/2014

m I V . i n v a l i d a t e( ) ;

Deteco de Rosto com APIs do Android - Developer.com

//E x e c u t a rad e t e c od er o s t oe ms e t F a c e( )e mu m ad i s c u s s od ef u n d o d o L e n g t h y C a l c( ) ; }

s e t F a c ep u b l i cv o i d( ){ f dF a c e D e t e c t o r ; F a c e D e t e c t o r . F a c e[ ]=n e wr o s t o sF a c e D e t e c t o r . F a c e[ M A X _ F A C E S ] ; P o i n t Fe y e s c e n t e r=n e wP o i n t F( ) ; f l u t u a d o re y e s d i s t=0 . 0 f ; i n t[ ]f p x=n u l l ; i n t[ ]=F P Yn u l l ; i n tc o u n t=0 ;

t r y{ f d=n e wF a c e D e t e c t o r( m F a c e W i d t h ,m F a c e H e i g h t ,M A X _ F A C E S ) ; c o u n t=f d . f i n d F a c e s( m F a c e B i t m a p ,e n f r e n t a ) ; }c a t c h( E x c e p t i o ne ){ L o g . e( T A G ," s e t F a c e( ) : "+e . t o S t r i n g( )) ; r e t o r n o ; }

//V e r i f i c as ed e t e c t a rq u a i s q u e rr o s t o s i f( c o u n t >0 ){ f p x=n e wi n t[ c o u n t*2 ] ; F P Y=n e wi n t[ c o u n t*2 ] ;

f o r( i n ti=0 ;i< c o u n t ;i++ ){ t r y{ r o s t o s[ i ]g e t M i d P o i n t( e y e s c e n t e r ) ; . e y e s d i s t .=r o s t o s[ i ]e y e s D i s t a n c e( ) ;

//D e f i n eal o c a l i z a oe s q u e r d ao l h o f p x[ 2*i ]=( i n t )( e y e s c e n t e r . x-e y e s d i s t/2 ) ; F P Y[ 2*i ]=( i n t )e y e s c e n t e r . y ;//c o n f i g u r a rl o c a l i z a oo l h od i r e i t of p x[2*i+1 ]=( i n t )( e y e s c e n t e r . xe y e s d i s t+/2

i f( D E B U G ){ L o g . e( T A G ," s e t F a c e( ) :c a r a "+i+" :c o n f i a n a= "+c a r a s[ i ]d ec o n f i a n a( ) . +" ,o so l h o sd i s t n c i a= "+c a r a s[ i ]e y e s D i s t a n c e( .) +" ,r e p r e s e n t a m=( "+c a r a s[ i ] .r e p r e s e n t a m( F a c e D e t e c t o r . F a c e . E U L E R _ X )+" , " +r o s t o s[ i ] .r e p r e s e n t a m( F a c e D e t e c t o r . F a c e . E U L E R _ Y )+" , " +r o s t o s[ i ] .r e p r e s e n t a r( F a c e D e t e c t o r . F a c e . E U L E R _ Z )+" ) " +" ,o so l h o sp o n t om d i o=( "+e y e s c e n t e r . x+" , "+e y e s c e n t e r . y+" ) " ) ; } }c a t c h( E x c e p t i o ne ){ L o g . e(T A G" ,s e t F a c e( ) :c a r a "+i+" : "+e . t o S t r i n g( ) ) ; } } }

m I V . s e t D i s p l a y P o i n t s( F P X ,F P Y ,c o n t e*2 ,1 ) ; }

p r i v a t ev o i dd o L e n g t h y C a l c( ){ T p i c ot=n e wT h r e a d( ){ m e n s a g e mm=n e wM e n s a g e m( ) ;

p u b l i cv o i dr u n( ){ t r y{ s e t F a c e( ) ; m . w h a t=T u t o r i a l O n F a c e D e t e c t . G U I U P D A T E _ S E T F A C E ; T u t o r i a l O n F a c e D e t e c t . t h i s . m H a n d l e r . s e n d M e s s a g e( m ) ; }c a t c h( E x c e p t i o ne ){ L o g . e( T A G ," d o L e n g t h y C a l c( ) : "+e . t o S t r i n g( ) ) ; } } } ;

t . s t a r t( ) ; } }

http://www.developer.com/ws/android/programming/face-detection-with-android-apis.html

5/7

21/3/2014

Deteco de Rosto com APIs do Android - Developer.com

Figura 3: Olhos Detectado em Android

Palavras-chave: desenvolvimento Android App

Pgina 1 de 2

0 Comentrios (clique para adicionar seu com entrio)

Comentrios e contribuir

Seu nome / apelido Seu e-mail Assunto

(Mximo de caracteres: 1200). Voc tem 1200

caracteres esquerda.

Digite o texto

Envie seu comentrio

http://www.developer.com/ws/android/programming/face-detection-with-android-apis.html

6/7

21/3/2014

Deteco de Rosto com APIs do Android - Developer.com

Mapa do Site | Fale Conosco

Propriedade da empresa QuinStreet. Termos de Servio | Licenciamento e reprodues | Quem Somos | Poltica de Privacidade | Anuncie Direitos de autor 2014 QuinStreet Inc. Todos os direitos reservados.

http://www.developer.com/ws/android/programming/face-detection-with-android-apis.html

7/7

S-ar putea să vă placă și