Upload
marcio-ferreira
View
170
Download
0
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.