Detección de caras: Deepstack en Home Assistant
Continuando con el artículo anterior, Deepstack Object, hoy vamos a ver Deespstack Face. Se trata de un componente dentro de Home Assistant para la detección y reconocimiento de rostros de Deepstack.
La documentación sobre el tema la podéis encontrar en el repositorio del creador pulsando aquí. Como siempre recomiendo leer toda la documentación oficial para resolver cualquier tipo de duda o problema. El vídeo sobre este articulo os lo dejo aquí y también lo podéis encontrar en mi canal que os invito a visitar y, si os gusta el contenido, aprovechad y suscribiros.
Instalación y configuración
Si ya instalasteis Deepstack Object en vuestro Home Assistant, lo primero que tendremos que hacer será detener el contenedor. Para ello, listamos los contenedores y paramos el correspondiente a deepstack:
docker container ls
docker stop CONTAINER_ID
Ahora tenemos que actualizar deepstack. Para ello ejecutamos el siguiente comando:
docker run -e VISION-FACE=True -e VISION-DETECTION=True -v localstorage:/datastore -p 83:5000 deepquestai/deepstack
Si solo quisiéramos instalar Deepstack Face, el comando a utilizar sería el siguiente:
docker run -e VISION-FACE=True -v localstorage:/datastore -p 83:5000 --name deepstack deepquestai/deepstack
El siguiente paso sería instalar el repositorio Deepstack Face en HACS. Pulsamos sobre HACS en el menu de nuestro Home Assistant, elegimos integraciones, EXPLORE & ADD REPOSITORIES y buscamos deepstack face. Una vez instalado, reiniciamos nuestro sistema.
Una vez reiniciado tendremos que incluir el siguiente código en el configuration.yaml
image_processing:
- platform: deepstack_face
ip_address: IP_DEL_CONTENEDOR
port: 83
# custom_model: mask
# confidence: 80
timeout: 10
save_file_folder: /config/www/deepstack
save_timestamped_file: True
detect_only: False
show_boxes: True
source:
- entity_id: camera.VUESTRA_CAMARA
Lo más importante es configurar correctamente la IP_DEL_CONTENEDOR. Esto ya lo expliqué en el artículo sobre Doods y que, si no has leido, puedes consultar aquí.
Detect_only debe estar en False si lo que queréis es que detecte el rostro de la persona y pueda identificar quien es cuando enseñemos a Deepstack como hacerlo y que vas a aprender a realizarlo ahora mismo.
Una vez realizada la configuración, reiniciamos el sistema nuevamente.
Eliminar contenedor antiguo e iniciar Deepstack con el sistema
Para que nuestra instalación sea lo más limpia posible, es importante eliminar el contenedor antiguo que teníamos a la hora de instalar Deepstack Object. Para ello listamos los contenedores, nos fijamos en el contenedor que paramos previamente (CONTAINER ID) y lo borramos:
docker container ls
docer container rm CONTAINER_ID
Para iniciar Deepstack con el sistema:
docker update --restart unless-stopped container_name_or_id
Captura de imágenes y comprobación del sistema
En la pestaña estados de nuestro Home Assistant vamos a seleccionar como entidad image_procesing.deepstack_face_VUESTRA_CAMARA. Abriremos una nueva pestaña en el navegador y abrimos Home Assistant pero seleccionamos Servicios. Como servicio elegimos image_processing.scan. Como entidad deepstack_face.VUESTRA_CAMARA.
Pulsamos sobre llamar servicio y en la pestaña estados nos reconocerá el rostro de las personas que se muestren en nuestra cámara.
Reconocimiento de rostros. Aprendizaje
En una carpeta dentro de nuestro Home Assistant pondríamos varias fotos con el rostro de la persona que queremos que nuestra cámara reconozca. Es importante que se tomen fotos en diferentes posturas para que el reconocimiento sea lo más fiable posible.
Una vez hecho esto tenemos que hacer que Deepstack aprenda el rostro de la persona. Para ello seleccionamos Servicios dentro de herramientas para desarrolladores. En el servicio elegimos image_processing.deepstack_teach_face. Seleccionamos el modo yaml y pegamos lo siguiente (el código tiene que quedar como sigue):
service: image_processing.deepstack_teach_face
data:
name: el_nombre_de_la_persona
file_patc: "/config/www/deepstack/nombre_1.jpeg" (directorio de vuestra imagen a aprender)
Seguidamente pulsamos sobre LLAMAR SERVICIO. Esto lo tenemos que repetir con todas las imágenes que tengamos. Cuantas más fotos aprenda deepstack más fiable será el reconocimiento de la persona.
Recomiendo reiniciar el sistema una vez realizado este proceso.
A partir de ahora nuestra cámara será capaz de reconocer a la persona cuando sea detectada.
Espero que os haya resultado útil.
Nos vemos en el siguiente artículo, nos vemos en Tecnosanvaras.
Un saludo a todos y …