SlideShare una empresa de Scribd logo
1 de 17
Juan
Cynthia
Everardo
Practica 3
   El tema que elegí para esta asignación fue el
    de redes neuronales artificiales.
Con la ayuda de un biblioteca de codigo
abierto lograr desarrollar una aplicación que
mediante el uso de redes neuronales
artificiales logré detectar rostros humanos.
   Básicamente seleccione este tema por que es
    parte de mi proyecto de clase, el cual consiste
    en un detector de mentiras de tiempo real.
    Mientras tanto en esta practica he decidido
    poder iniciarme en el uso de redes neuronales
    artificiales para el procesamiento de datos, ya
    que la deteccion facial no es nadamas que
    simple agrupamiento y clasificacion a niveles
    un poco más complejos
   Para iniciar con el desarrollo de esta practica
    requeri descargar la libreria que me ayudaria
    a realizar el procesamiento de imagenes,
    video y por fortuna también a utilizar las
    redes neuronales artificiales. Decidí usar esta
    libreria por que esta bajo la licencia BSD que
    me permite usarla libremente para
    propósitos comerciales y de investigación tal
    es este caso.

    Lo primero que hice fue descargar los binarios
    necesarios de la pagina de openCV para poderlos
    utilizar en el sistema android, esto es un poco
    complicado ya que el codigo de openCV esta hecho en
    C/C++ entonces hay dos opciones utilizar el NDK de
    android para poder utilizar codigo nativo en las
    aplicaciones y poder usar openCV tranquilamente. O
    usar javaCV el cual se podría decir que es la tradución
    de openCV pero en java.
Despues de configuraciones simples en el IDE
eclipse ( agregar librerias externas a un
proyecto de android 2.2 ) y agregar el codigo
de ejemplo que viene para crear vistas
simples con javaCV fui creando la aplicación.
Para el entrenamiento me di cuenta que para
lograr resultados decentes o considerables
necesitaba una buena base de conocimiento,
por fortuna openCV contiene ya una base
entrenada por haartraining con una cantidad de
3000 samples positivos y 1500 negativos la cual
no pude quedarme con la tentación de ver que
tan acertada era con una cantidad tan grande
samples.
   /*En esta seccion de codigo podemos ver como
    *se hace el procesamiento de
    *cada frame, primero se hace una
    *copia a color y una en escala de grises
    *despues se verifica si mCascade no esta
    *vacia, este objeto es el clasificador
    *despues se toman los datos para iniciar
    *con la comparacion y se utiliza el
    *metodo detectMultiScale del clasificador
    *para comparar dicho imagen
    *Despues por cada rostro que se detecte se
    *crea un rectangulo para enmarcarlo.
    *Por ultimo se crea un mapa de bits con los
    *datos de la matriz de colores.
    */

   @Override
   protected Bitmap
  processFrame(VideoCapture capture) {
    capture.retrieve(mRgba,
  Highgui.CV_CAP_ANDROID_COLOR_FRAME_R
  GBA);
    capture.retrieve(mGray,
  Highgui.CV_CAP_ANDROID_GREY_FRAME);



    if (mCascade != null) {
       int height = mGray.rows();
       int faceSize = Math.round(height *
  FdActivity.minFaceSize);
       List<Rect> faces = new LinkedList<Rect>();
       mCascade.detectMultiScale(mGray, faces, 1.1, 2, 2 ,
  new Size(faceSize, faceSize));

       for (Rect r : faces)
          Core.rectangle(mRgba, r.tl(), r.br(), new Scalar(0,
  255, 0, 255), 3);
     }

       Bitmap bmp =
    Bitmap.createBitmap(mRgba.cols(),
    mRgba.rows(), Bitmap.Config.ARGB_8888);

        if (Utils.matToBitmap(mRgba, bmp))
           return bmp;

        bmp.recycle();
        return null;
    }
   Este segmento de codigo esta inmediato
    despues de proporcionarle a la aplicacion la base
    del entrenamiento previo. Por ultimo otras
    generalidades del proyecto fueron que solo lo
    pude permitir usar como landscape para tener
    una uso solido y poder seleccionar el tamaño del
    rostro en comparación del tamaño de resolución
    del celular. Esto es para poder ver el
    comportamiento dandole diferentes rangos al
    procesamiento.
    Código completo AQUI
La aplicación es capaz de detectar rostros,
utilizando un tamaño de rostro pequeño en
comparacion de la resolución de la camara.
Son buenos resultados tomando en cuenta
que el entrenamiento de la red fue tomando
desde los ejemplos que proporciona openCV.
   Pués los resultados resultaron bastantes
    satisfactorios, sin embargo no son 100%
    perfectos. Esto lo digo por que cuando esta
    detectando los rostros a veces confunde
    otras cosas con rostros, ademas parece ser
    que es más practico utilizar un tamaño de
    rostro pequeño con respecto a la resolución
    de la camara, pero esto produce más
    procesamiento y por ende le pide mas
    recursos al telefono lo cual no es muy bueno.
   http://www.youtube.com/watch?feature=pla
    yer_embedded&v=CQchuE2ArP8

Más contenido relacionado

Destacado

Comercio electrónico. Análisis de cómo el diseño web influye en los factores ...
Comercio electrónico. Análisis de cómo el diseño web influye en los factores ...Comercio electrónico. Análisis de cómo el diseño web influye en los factores ...
Comercio electrónico. Análisis de cómo el diseño web influye en los factores ...Patricia Presmanes González
 
La sociedad moderna está arruinando a los niños
La sociedad moderna está arruinando a los niñosLa sociedad moderna está arruinando a los niños
La sociedad moderna está arruinando a los niñosBeaDiaz23
 
Como se relaciona la tecnologia con el desarrollo economico social
Como se relaciona la tecnologia con el desarrollo economico socialComo se relaciona la tecnologia con el desarrollo economico social
Como se relaciona la tecnologia con el desarrollo economico socialJonathan Bastidas
 
rede sociales
rede socialesrede sociales
rede socialesalexande_
 
Presentación1
Presentación1Presentación1
Presentación1alexande_
 
Lucha contra la corrupcion
Lucha contra la corrupcionLucha contra la corrupcion
Lucha contra la corrupciondiabernal
 
Colegio nacional tecnico yaruqui 02
Colegio nacional tecnico yaruqui 02Colegio nacional tecnico yaruqui 02
Colegio nacional tecnico yaruqui 02monialexa
 
Derecho al trabajo para discapacitados
Derecho al trabajo para discapacitados Derecho al trabajo para discapacitados
Derecho al trabajo para discapacitados proyectosolidarionv
 
Catedra sociedad del conocimiento
Catedra sociedad del conocimientoCatedra sociedad del conocimiento
Catedra sociedad del conocimientoagua0410
 
Trabajos de aplicaciones
Trabajos de aplicacionesTrabajos de aplicaciones
Trabajos de aplicacionesVeronicaCepeda
 
Debate en las naciones unidas sobre la brecha digital
Debate en las naciones unidas sobre la brecha digitalDebate en las naciones unidas sobre la brecha digital
Debate en las naciones unidas sobre la brecha digitalBeaDiaz23
 
Colegio nacional tecnico yaruqui
Colegio nacional tecnico yaruquiColegio nacional tecnico yaruqui
Colegio nacional tecnico yaruquimonialexa
 
Herbicides in Estuarine Waters
Herbicides in Estuarine WatersHerbicides in Estuarine Waters
Herbicides in Estuarine WatersAlvia Gaskill, Jr.
 

Destacado (20)

Oso pardo
Oso pardoOso pardo
Oso pardo
 
Defensa tfm3
Defensa tfm3Defensa tfm3
Defensa tfm3
 
Comercio electrónico. Análisis de cómo el diseño web influye en los factores ...
Comercio electrónico. Análisis de cómo el diseño web influye en los factores ...Comercio electrónico. Análisis de cómo el diseño web influye en los factores ...
Comercio electrónico. Análisis de cómo el diseño web influye en los factores ...
 
La sociedad moderna está arruinando a los niños
La sociedad moderna está arruinando a los niñosLa sociedad moderna está arruinando a los niños
La sociedad moderna está arruinando a los niños
 
Como se relaciona la tecnologia con el desarrollo economico social
Como se relaciona la tecnologia con el desarrollo economico socialComo se relaciona la tecnologia con el desarrollo economico social
Como se relaciona la tecnologia con el desarrollo economico social
 
rede sociales
rede socialesrede sociales
rede sociales
 
Presentación1
Presentación1Presentación1
Presentación1
 
Lucha contra la corrupcion
Lucha contra la corrupcionLucha contra la corrupcion
Lucha contra la corrupcion
 
Colegio nacional tecnico yaruqui 02
Colegio nacional tecnico yaruqui 02Colegio nacional tecnico yaruqui 02
Colegio nacional tecnico yaruqui 02
 
Experiencias exitosas 2014 (francisco conde)
Experiencias exitosas 2014 (francisco conde)Experiencias exitosas 2014 (francisco conde)
Experiencias exitosas 2014 (francisco conde)
 
Derecho al trabajo para discapacitados
Derecho al trabajo para discapacitados Derecho al trabajo para discapacitados
Derecho al trabajo para discapacitados
 
El teclado
El tecladoEl teclado
El teclado
 
Secret
SecretSecret
Secret
 
Catedra sociedad del conocimiento
Catedra sociedad del conocimientoCatedra sociedad del conocimiento
Catedra sociedad del conocimiento
 
Trabajos de aplicaciones
Trabajos de aplicacionesTrabajos de aplicaciones
Trabajos de aplicaciones
 
La discapacidad
La discapacidadLa discapacidad
La discapacidad
 
Debate en las naciones unidas sobre la brecha digital
Debate en las naciones unidas sobre la brecha digitalDebate en las naciones unidas sobre la brecha digital
Debate en las naciones unidas sobre la brecha digital
 
Colegio nacional tecnico yaruqui
Colegio nacional tecnico yaruquiColegio nacional tecnico yaruqui
Colegio nacional tecnico yaruqui
 
Herbicides in Estuarine Waters
Herbicides in Estuarine WatersHerbicides in Estuarine Waters
Herbicides in Estuarine Waters
 
Herrera genesis
Herrera genesisHerrera genesis
Herrera genesis
 

Similar a Entregable3

MOOC de Realidad aumentada (Coursera)
MOOC de Realidad aumentada (Coursera)MOOC de Realidad aumentada (Coursera)
MOOC de Realidad aumentada (Coursera)C Xyon PalaXy
 
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptxGabriela Soto
 
IOF Labs Weekend - Android (27082011)
IOF Labs Weekend - Android (27082011)IOF Labs Weekend - Android (27082011)
IOF Labs Weekend - Android (27082011)repcax
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.jsINSIGNIA4U
 
DAM_18520450_Trabajando con React Native.pdf
DAM_18520450_Trabajando con React Native.pdfDAM_18520450_Trabajando con React Native.pdf
DAM_18520450_Trabajando con React Native.pdfKevinRicardoBustaman
 
Meterpreter en android el desembarco en tu smartphone
Meterpreter en android   el desembarco en tu smartphoneMeterpreter en android   el desembarco en tu smartphone
Meterpreter en android el desembarco en tu smartphoneJASENT
 
Lizbeth Anahi zambrano Santos 402
Lizbeth Anahi zambrano Santos 402Lizbeth Anahi zambrano Santos 402
Lizbeth Anahi zambrano Santos 402lizbethanahi15
 
Descripción del detector de rostros - Sistemas Adaptativos FIME
Descripción del detector de rostros - Sistemas Adaptativos FIMEDescripción del detector de rostros - Sistemas Adaptativos FIME
Descripción del detector de rostros - Sistemas Adaptativos FIMEMarianaZamarripa34
 
Aprender a programar aplicaciones moviles
Aprender a programar aplicaciones movilesAprender a programar aplicaciones moviles
Aprender a programar aplicaciones movilesRobert Moreira
 
Cesnavarra 2009-boletín 2
Cesnavarra 2009-boletín 2Cesnavarra 2009-boletín 2
Cesnavarra 2009-boletín 2Cein
 
Proyecto final visual c engargolado
Proyecto final visual c engargoladoProyecto final visual c engargolado
Proyecto final visual c engargoladoJorge Escoto
 
Proyecto final visual c engargolado
Proyecto final visual c engargoladoProyecto final visual c engargolado
Proyecto final visual c engargoladoJorge Escoto
 

Similar a Entregable3 (20)

MOOC de Realidad aumentada (Coursera)
MOOC de Realidad aumentada (Coursera)MOOC de Realidad aumentada (Coursera)
MOOC de Realidad aumentada (Coursera)
 
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
 
Proyecto. vision artificial
Proyecto. vision artificialProyecto. vision artificial
Proyecto. vision artificial
 
IOF Labs Weekend - Android (27082011)
IOF Labs Weekend - Android (27082011)IOF Labs Weekend - Android (27082011)
IOF Labs Weekend - Android (27082011)
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.js
 
Parpadear un LED
Parpadear un LEDParpadear un LED
Parpadear un LED
 
DAM_18520450_Trabajando con React Native.pdf
DAM_18520450_Trabajando con React Native.pdfDAM_18520450_Trabajando con React Native.pdf
DAM_18520450_Trabajando con React Native.pdf
 
Meterpreter en android el desembarco en tu smartphone
Meterpreter en android   el desembarco en tu smartphoneMeterpreter en android   el desembarco en tu smartphone
Meterpreter en android el desembarco en tu smartphone
 
Lizbeth Anahi zambrano Santos 402
Lizbeth Anahi zambrano Santos 402Lizbeth Anahi zambrano Santos 402
Lizbeth Anahi zambrano Santos 402
 
Descripción del detector de rostros - Sistemas Adaptativos FIME
Descripción del detector de rostros - Sistemas Adaptativos FIMEDescripción del detector de rostros - Sistemas Adaptativos FIME
Descripción del detector de rostros - Sistemas Adaptativos FIME
 
Aprender a programar aplicaciones moviles
Aprender a programar aplicaciones movilesAprender a programar aplicaciones moviles
Aprender a programar aplicaciones moviles
 
Cv dennys-jose-marquez-reyes-desarrollador-web
Cv dennys-jose-marquez-reyes-desarrollador-webCv dennys-jose-marquez-reyes-desarrollador-web
Cv dennys-jose-marquez-reyes-desarrollador-web
 
Cetis 109(2)
Cetis 109(2)Cetis 109(2)
Cetis 109(2)
 
Cetis 109
Cetis 109Cetis 109
Cetis 109
 
Cesnavarra 2009-boletín 2
Cesnavarra 2009-boletín 2Cesnavarra 2009-boletín 2
Cesnavarra 2009-boletín 2
 
Proyecto final visual c engargolado
Proyecto final visual c engargoladoProyecto final visual c engargolado
Proyecto final visual c engargolado
 
Proyecto final visual c engargolado
Proyecto final visual c engargoladoProyecto final visual c engargolado
Proyecto final visual c engargolado
 
Workshop calabash appium
Workshop calabash appiumWorkshop calabash appium
Workshop calabash appium
 
Processing
ProcessingProcessing
Processing
 
Api 3 d
Api 3 dApi 3 d
Api 3 d
 

Entregable3

  • 2. El tema que elegí para esta asignación fue el de redes neuronales artificiales.
  • 3. Con la ayuda de un biblioteca de codigo abierto lograr desarrollar una aplicación que mediante el uso de redes neuronales artificiales logré detectar rostros humanos.
  • 4. Básicamente seleccione este tema por que es parte de mi proyecto de clase, el cual consiste en un detector de mentiras de tiempo real. Mientras tanto en esta practica he decidido poder iniciarme en el uso de redes neuronales artificiales para el procesamiento de datos, ya que la deteccion facial no es nadamas que simple agrupamiento y clasificacion a niveles un poco más complejos
  • 5.
  • 6. Para iniciar con el desarrollo de esta practica requeri descargar la libreria que me ayudaria a realizar el procesamiento de imagenes, video y por fortuna también a utilizar las redes neuronales artificiales. Decidí usar esta libreria por que esta bajo la licencia BSD que me permite usarla libremente para propósitos comerciales y de investigación tal es este caso.
  • 7. Lo primero que hice fue descargar los binarios necesarios de la pagina de openCV para poderlos utilizar en el sistema android, esto es un poco complicado ya que el codigo de openCV esta hecho en C/C++ entonces hay dos opciones utilizar el NDK de android para poder utilizar codigo nativo en las aplicaciones y poder usar openCV tranquilamente. O usar javaCV el cual se podría decir que es la tradución de openCV pero en java.
  • 8. Despues de configuraciones simples en el IDE eclipse ( agregar librerias externas a un proyecto de android 2.2 ) y agregar el codigo de ejemplo que viene para crear vistas simples con javaCV fui creando la aplicación.
  • 9. Para el entrenamiento me di cuenta que para lograr resultados decentes o considerables necesitaba una buena base de conocimiento, por fortuna openCV contiene ya una base entrenada por haartraining con una cantidad de 3000 samples positivos y 1500 negativos la cual no pude quedarme con la tentación de ver que tan acertada era con una cantidad tan grande samples.
  • 10. /*En esta seccion de codigo podemos ver como  *se hace el procesamiento de  *cada frame, primero se hace una  *copia a color y una en escala de grises  *despues se verifica si mCascade no esta  *vacia, este objeto es el clasificador  *despues se toman los datos para iniciar  *con la comparacion y se utiliza el  *metodo detectMultiScale del clasificador  *para comparar dicho imagen  *Despues por cada rostro que se detecte se  *crea un rectangulo para enmarcarlo.  *Por ultimo se crea un mapa de bits con los  *datos de la matriz de colores.  */
  • 11.   @Override  protected Bitmap processFrame(VideoCapture capture) {  capture.retrieve(mRgba, Highgui.CV_CAP_ANDROID_COLOR_FRAME_R GBA);  capture.retrieve(mGray, Highgui.CV_CAP_ANDROID_GREY_FRAME);  
  • 12.   if (mCascade != null) {  int height = mGray.rows();  int faceSize = Math.round(height * FdActivity.minFaceSize);  List<Rect> faces = new LinkedList<Rect>();  mCascade.detectMultiScale(mGray, faces, 1.1, 2, 2 , new Size(faceSize, faceSize));   for (Rect r : faces)  Core.rectangle(mRgba, r.tl(), r.br(), new Scalar(0, 255, 0, 255), 3);  } 
  • 13. Bitmap bmp = Bitmap.createBitmap(mRgba.cols(), mRgba.rows(), Bitmap.Config.ARGB_8888);   if (Utils.matToBitmap(mRgba, bmp))  return bmp;   bmp.recycle();  return null;  }
  • 14. Este segmento de codigo esta inmediato despues de proporcionarle a la aplicacion la base del entrenamiento previo. Por ultimo otras generalidades del proyecto fueron que solo lo pude permitir usar como landscape para tener una uso solido y poder seleccionar el tamaño del rostro en comparación del tamaño de resolución del celular. Esto es para poder ver el comportamiento dandole diferentes rangos al procesamiento. Código completo AQUI
  • 15. La aplicación es capaz de detectar rostros, utilizando un tamaño de rostro pequeño en comparacion de la resolución de la camara. Son buenos resultados tomando en cuenta que el entrenamiento de la red fue tomando desde los ejemplos que proporciona openCV.
  • 16. Pués los resultados resultaron bastantes satisfactorios, sin embargo no son 100% perfectos. Esto lo digo por que cuando esta detectando los rostros a veces confunde otras cosas con rostros, ademas parece ser que es más practico utilizar un tamaño de rostro pequeño con respecto a la resolución de la camara, pero esto produce más procesamiento y por ende le pide mas recursos al telefono lo cual no es muy bueno.
  • 17. http://www.youtube.com/watch?feature=pla yer_embedded&v=CQchuE2ArP8