studio rostros reconocimiento reconoce personas para identificador google fuente fotos facial codigo caras buscar app android opencv camera face-recognition

reconocimiento - Detección de rostros en Android?



reconocimiento facial google api (3)

  1. Pruebe FaceDetector en el SDK de Android. Devuelve posiciones de caras y ángulos en BMP. Pero no es muy rápido.

    Aquí hay una muestra de detección de rostros en tiempo real usando FaceDetector y OpenGL (dibuja rectángulos) que funciona en Android 2.2.

  2. OpenCV en Android

    Será mejor que intentes esto en Linux (lo probé en Windows, pero falló).

  3. JavaCV (muy recomendado)

    Hay un código de muestra de detección de rostros en tiempo real usando la cámara. Consulte "javacv-src - *. Zip" en la página de descarga.

Actualmente estoy trabajando en una aplicación de cámara experimental. Estoy buscando implementar la detección de rostros en este momento y actualmente estoy evaluando mis opciones.

He considerado el puerto OpenCV disponible para Android y el uso de sus funciones de detección de rostros, pero a partir de las demostraciones que he visto de implementaciones anteriores, la cámara parece estar muy retrasada.

Teniendo en cuenta que la cámara del HTC Desire tiene soporte para detección de rostros, sé que debe ser posible tener instalado al menos un sistema de detección de rostros semi-decente. Me preguntaba si alguien tenía una opinión sobre cómo podría obtener los mejores resultados ... ¿Usando una biblioteca disponible? Implementando un algoritmo particular yo mismo?


El Android SDK viene con un FaceDetector que se puede usar para encontrar rostros en un Bitmap dado.

No lo he usado, pero los desarrolladores de aplicaciones de distorsión facial dicen que no es muy preciso en comparación con OpenCV. Aunque puede que se ajuste a tus necesidades, es probablemente lo que usa la aplicación de cámara de HTC Desire.


Este es un ejemplo básico usando la clase FaceDetector

public myView(Context context) { super(context); BitmapFactory.Options BitmapFactoryOptionsbfo = new BitmapFactory.Options(); BitmapFactoryOptionsbfo.inPreferredConfig = Bitmap.Config.RGB_565; myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.threepoint_shooters_1990, BitmapFactoryOptionsbfo); imageWidth = myBitmap.getWidth(); imageHeight = myBitmap.getHeight(); myFace = new FaceDetector.Face[numberOfFace]; myFaceDetect = new FaceDetector(imageWidth, imageHeight, numberOfFace); numberOfFaceDetected = myFaceDetect.findFaces(myBitmap, myFace); } @Override protected void onDraw(Canvas canvas) { canvas.drawBitmap(myBitmap, 0, 0, null); Paint myPaint = new Paint(); myPaint.setColor(Color.GREEN); myPaint.setStyle(Paint.Style.STROKE); myPaint.setStrokeWidth(3); for (int i = 0; i < numberOfFaceDetected; i++) { Face face = myFace[i]; PointF myMidPoint = new PointF(); face.getMidPoint(myMidPoint); myEyesDistance = face.eyesDistance(); canvas.drawRect((int) (myMidPoint.x - myEyesDistance * 2), (int) (myMidPoint.y - myEyesDistance * 2), (int) (myMidPoint.x + myEyesDistance * 2), (int) (myMidPoint.y + myEyesDistance * 2), myPaint); } }

Descargue el código fuente completo aquí: https://github.com/Jorgesys/Android_Face_Detection