Detecção de Rosto com APIs do Android - Developer

Embed Size (px)

Citation preview

  • 21/3/2014 Deteco de Rosto com APIs do Android - Developer.com

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

    39Curtir Tweet 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

    Seja magra. Seja gil. Trabalhar em conjunto. Download Now

    Publicar um comentrio

    Email artigo

    Imprimir artigo

    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 AndroidAtravs 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.

    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.

    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 .

    O mtodo mais importante implementado em setFace () . 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.

    18 de abril de 2012

    Por Chunyen Liu

    Bio

    Enviar e-mail

    Mais artigos

    Tweet 27

    Histrias Desenvolvedor Mais Populares

    Mais comentados

    Recursos para parceiros recomendados

    1 Usando JDBC com o MySQL, Introduo

    2 Criao de Casos de Uso Diagramas

    3 Uma Introduo Anotaes Java

    4 Hibernate Basics

    5 Usando ASP.NET Para Enviar E-mail

    1 10 experimentais projetos PHP Empurrando o envelope

    2 Dia 1: Aprender os princpios de PL / SQL

    3 C # Dica: Colocar seu aplicativo C # na bandeja do sistema

    4 Lgico Versus Modelagem Fsica Banco de Dados

    5 o Ubuntu contribuindo tanto quanto deveria para Projetos de Software Livre?

    Compartilhe artigos

    Hoje Esta semana Todos os tempos

    Esta semana Este Ms Todos os tempos

  • 21/3/2014 Deteco de Rosto com APIs do Android - Developer.com

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

    TutorialOnFaceDetect1 public class Activity { MyImageView MIV privado; privado Bitmap mFaceBitmap; private int mFaceWidth = 200; private int mFaceHeight = 200; MAX_FACES private static final int = 1; TAG private static string = "TutorialOnFaceDetect";@ Override public void onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState);

    MIV = new MyImageView (this); setContentView (MIV, novas LayoutParams (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

    / / Carregar a foto Bitmap b = BitmapFactory.decodeResource (getResources (), R.drawable.face3); mFaceBitmap = b.copy (Bitmap.Config.RGB_565, true); b.recycle ();

    mFaceWidth mFaceBitmap.getWidth = (); mFaceHeight mFaceBitmap.getHeight = (); mIV.setImageBitmap (mFaceBitmap);

    / / Realiza a deteco de rosto e definir o setFace pontos caractersticos ();

    mIV.invalidate (); }

    setFace public void () { fd FaceDetector; FaceDetector.Face [] = new rostos FaceDetector.Face [MAX_FACES]; PointF ponto mdio = new PointF (); int [] fpx = null; int [] FPY = null; int count = 0 ;

    try { fd = new FaceDetector (mFaceWidth, mFaceHeight, MAX_FACES); count = fd.findFaces (mFaceBitmap, enfrenta); } catch (Exception e) { Log.e (TAG, "setFace ():" + e.toString () ); retorno; }

    / / Verifica se detectar quaisquer rostos if (count> 0) { fpx = new int [count]; FPY = new int [count];

    for (int i = 0; i

  • 21/3/2014 Deteco de Rosto com APIs do Android - Developer.com

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

    / / Configurar recursos de rosto detectadas para exibio setDisplayPoints public void (int [] xx, int [] aa, int total int estilo) { mDisplayStyle = estilo; MPX = NULL; mpy = NULL;if (xx = null && aa = null && total> 0!) { MPX = new int [total]; mpy = new int [total];

    for (int i = 0; i

  • 21/3/2014 Deteco de Rosto com APIs do Android - Developer.com

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

    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.

    TutorialOnFaceDetect public class Activity { MyImageView privado MIV; mFaceBitmap Bitmap privado; private int mFaceWidth = 200; private int mFaceHeight = 200; MAX_FACES static final int privados = 10; TAG private static string = "TutorialOnFaceDetect"; DEBUG private static boolean = false;protegido esttica GUIUPDATE_SETFACE int final = 999; protegido Handler mhandler = new Handler () { / / @ Override public void handleMessage (msg Mensagem) { mIV.invalidate ();

    super.handleMessage (msg); } };

    @ Override public void onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState);

    MIV = new MyImageView (this); setContentView (MIV, novas LayoutParams (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

    / / Carregar a foto Bitmap b = BitmapFactory.decodeResource (getResources (), R.drawable.face3); mFaceBitmap = b.copy (Bitmap.Config.RGB_565, true); b.recycle ();

    mFaceWidth mFaceBitmap.getWidth = (); mFaceHeight mFaceBitmap.getHeight = (); mIV.setImageBitmap (mFaceBitmap); mIV.invalidate ();

  • 21/3/2014 Deteco de Rosto com APIs do Android - Developer.com

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

    mIV.invalidate ();

    / / Executar a deteco de rosto em setFace () em uma discusso de fundo doLengthyCalc (); }

    setFace public void () { fd FaceDetector; FaceDetector.Face [] = new rostos FaceDetector.Face [MAX_FACES]; PointF eyescenter = new PointF (); flutuador eyesdist = 0.0f; int [] fpx = null; int [] = FPY null; int count = 0;

    try { fd = new FaceDetector (mFaceWidth, mFaceHeight, MAX_FACES); count = fd.findFaces (mFaceBitmap, enfrenta); } catch (Exception e) { Log.e (TAG, "setFace ():" + e.toString () ); retorno; }

    / / Verifica se detectar quaisquer rostos if (count> 0) { fpx = new int [count * 2]; FPY = new int [count * 2];

    for (int i = 0; i

  • 21/3/2014 Deteco de Rosto com APIs do Android - Developer.com

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

    1 2

    Figura 3: Olhos Detectado em Android

    Palavras-chave: desenvolvimento Android App

    Pgina 1 de 2

    0 Comentrios (clique para adicionar seu comentrio)

    Comentrios e contribuir

    Seu nome / apelido

    Seu e-mail

    Assunto

    (Mximo de caracteres: 1200). Voc tem 1200 caracteres esquerda.

    Envie seu comentrio

    Digite o texto

  • 21/3/2014 Deteco de Rosto com APIs do Android - Developer.com

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

    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.