notifications Notificaciones

Marcar todas como leídas

Ver más

lightbulb_outline

1115 veces ha sido leído este artículo

Cómo detectar caras usando PHP

Lo lees en 2 Min.

Me crucé con una pregunta muy interesante en un foro de PHP:

¿Cómo detectar caras en imágenes?

Me intrigó el tema, así que me puse a investigar un poco y llegué a un paquete que prometía: mauricesvay/php-facedetection.

Sin perder mucho tiempo, armé mi proyecto (¡vía mi amigo composer, obvio!): composer require mauricesvay/php-facedetection

Y ahí me fui a ver la documentación... algo pobre por cierto... así que decidí escribir estas líneas a ver si puedo ayudar a algún colega :).

Ansioso por probar mi nuevo juguete hice lo que cualquiera haría... copié el archivo index.php a mi proyecto, hice algunas adaptaciones hasta llegar a:

    <?php
    require_once 'vendor/autoload.php';
    $detector = new svay\FaceDetector('detection.dat');
    $detector->faceDetect($argv[1]);
    $detector->toJpeg();

Y... ¡a ver qué tal funciona esto!

Hice la ejecución correspondiente: php index.php ~/Pictures/Mauro\ 2011.jpg

Foto que contiene una cara

Y obtuve unas tres pantallas de símbolos ilegibles... no exactamente lo que esperaba :(

Lo que pasaba en realidad era simple: el método toJpeg() escupe la imagen directo a la salida... nada muy problemático en realidad.

Versión 2 de la llamada: php index.php ~/Pictures/Mauro\ 2011.jpg > cara.jpg

Ahora sí :)

Foto con una cara enmarcada

Otro método que puede resultar interesante es cropFaceToJpeg. Este método genera una nueva imagen que sólo contiene la cara en cuestión:

Foto que contiene sólo la cara

Y tiene una pequeña ventaja: se le puede pasar un parámetro para especificar la salida... No me preguntes por qué no tiene lo mismo el anterior... así era cuando llegué. Aunque siendo una librería de código abierto, en una de esas me inspiro y le agrego el parámetro :).

Todo va a funcionar bien siempre que tengas instalada la librería GD.

Y luego, si queremos levantar un poco la apuesta... ¿se podrá pedir a esta librería comparar dos caras? (Como para hacer un login vía webcam o algo así).

Me temo que no pero... ¡a no desperar! Existe otro recurso que vale la pena explorar: FaceRD.

Esta librería es mucho más elaborada (lástima que la documentación no acompañe :p) y utiliza el poder de cómputo de terceros (Microsoft Face por ejemplo).

No he llegado a probarla aún, dicen que va muy bien, sólo que tiene un límite al uso gratuito.

¿Conoces alguna otra librería interesante para detectar caras?

Recomendaciones

Los cursos más populares de 2018

Lo lees en 4 Min.

Continuando con el recuento del año en CódigoFacilito, y luego de haber escrito de los cursos gra...

 

Lenguajes de programación que debes aprender este 2019.

Lo lees en 5 Min.

Lenguajes de programación que deberías aprender este 2019. En esta ocasión estaremos listando 5 ...

 

Criptografia de llave publica y llave privada con Python

Lo lees en 3 Min.

La criptografía asimétrica, tambíen conocida como criptografia de clave pública, es un método cri...

 

Resumen de la semana. FNews 47

Lo lees en 2 Min.

Resumen de la Semana. FNews 47 Hola, Codiers. Como es costumbre, todas semanas tenemos un resum...

 

Comunidad