FindPet: identificación de mascotas perdidas con inteligencia artificial
FindPet combina clasificación de razas, detección facial e identificación de perros para explorar cómo la IA puede ayudar a reunir a las mascotas con sus familias.
Proyecto de aprendizaje compartido por la comunidad. El artículo documenta el equipo, el método y los resultados; no acredita que el prototipo esté listo para su uso fuera del entorno de aprendizaje.

La Paz. Deep Learning. 2021
En este artículo utilizaremos técnicas de Inteligencia Artificial para encontrar mascotas perdidas. Aquellas personas que han perdido a una mascota por diferentes motivos saben que aunque muchas regresan a sus dueños un gran porcentaje no logra el reencuentro. Unas 420,000 mascotas, entre perros y gatos principalmente, se pierden anualmente en el Perú y son muy pocas las que son encontradas o devueltas a sus dueños, debido a que es muy difícil identificarlas.
La identificación de mascotas por lo general se hace a través de plaquitas metálicas colgadas en su cuello, con su nombre y el teléfono del propietario. Otros optan por insertarles un chip bajo la piel y algunos pocos, por lo costoso, prefieren los GPS e, incluso, tatuarlas. Ante la pérdida de sus mascotas, las personas optan por buscarlas mediante carteles pegados en postes, a través de redes sociales, anuncios en medios de comunicación u ofreciendo recompensas en dinero o con entradas a conciertos o partidos de fútbol. Es por ello, que el objetivo de este proyecto es poder ayudar a las personas a encontrar a sus mascotas perdidas mediante Inteligencia Artificial y Deep Learning para la identificación de sus mascotas de manera rápida, precisa y económica.
Problemática
Diariamente, se calcula que se extravían aproximadamente entre 30 y 40 animales domésticos, entre perros y gatos, solamente en Lima. Sin embargo, se estima que esta cifra puede ser mayor, no solo al contabilizar el resto de las ciudades de Perú, sino también porque muchas personas no saben cómo o dónde pueden reportar la pérdida o extravío de su mascota. Muy pocas mascotas son encontradas o retornadas con sus dueños, debido a que es difícil poder identificarlas y hacer el rastreo correcto. Como consecuencia de ello, muchas de las mascotas terminan como animales callejeros causando sobrepoblación que terminan contaminando la ciudad con sus heces y los parásitos que son expulsados a través de estas.
Objetivo
Desarrollar una aplicación que ayude a las personas a reportar y encontrar mascotas perdidas de manera rápida usando Inteligencia Artificial con técnicas de Deep Learning.
Datasets
Utilizamos conjuntos de datos de acceso libre. Para clasificar las razas, empleamos el de Stanford que contiene imágenes de 120 razas de perros de todo el mundo y Thudogs , con 130 razas y cajas delimitadoras del cuerpo y la cabeza en cada imagen. Para identificar perros individuales utilizamos un conjunto de imágenes de Flickr , formado por rostros de perros de las razas pug y husky, agrupados por el nombre de cada animal.

Proceso de Identificación de Mascotas
El proceso de identificación de mascotas perdidas mediante Inteligencia Artificial consta de cuatro fases como se muestra en la siguiente figura, a continuación se detalla cada una de ellas.

- Fase inicial: clasificación de razas
Primero, el clasificador recibe la foto del perro perdido o encontrado y devuelve las N razas más probables. Esas predicciones permiten seleccionar, entre las imágenes almacenadas, los candidatos que pasarán a la siguiente fase.
- FASE MEDIA: Detección de Rostro
Después, YOLOv5 procesa la imagen del perro y las de los candidatos seleccionados. El modelo devuelve las cajas delimitadoras de los rostros, que permiten recortar esa región en cada imagen.
- FASE FINA: Identificación de la mascota
La fase de identificación utiliza los recortes de los rostros del perro buscado y de los candidatos. Con estas imágenes se entrena y utiliza el modelo que distingue entre los animales del conjunto de datos.
- DECISIÓN SUPERVISADA
Finalmente, incorporamos datos como la edad y el sexo del perro para acotar las posibles coincidencias y apoyar la revisión de los resultados.
Modelos
Para clasificar las razas e identificar perros individuales utilizamos redes neuronales convolucionales, concretamente Inception v3 y Xception. Cada tarea tiene N posibles salidas: 120 razas en Stanford, 130 en Thudogs y 42 perros en Flickr. Para detectar los rostros utilizamos YOLOv5.
- Inception v3
Inception-v3 es una arquitectura de red neuronal convolucional de la familia Inception que realiza varias mejoras, incluido el uso de Label Smoothing, convoluciones factorizadas 7 x 7 y el uso de un clasificador auxiliar para propagar información de etiquetas en la parte inferior de la red, junto con el uso de batch normalización para capas en la cabecera lateral.
A continuación, se muestra el diagrama de arquitectura de Inception v3:

- Xception
Xception significa “xtreme inception”. Esta arquitectura replantea la forma en que vemos las redes neuronales, en particular las redes convolucionales. Y, como sugiere el nombre, lleva los principios de Inception al extremo.
Las convoluciones convencionales combinan el aprendizaje de patrones espaciales y de relaciones entre canales. Inception separa parcialmente estas operaciones mediante distintas ramas. Xception lleva la idea más lejos con convoluciones separables en profundidad: una operación espacial por canal, seguida de una convolución puntual de 1×1 que combina la información entre canales.
A continuación, se presenta el diagrama de arquitectura de Xception, donde los datos pasan primero por el flujo de entrada, luego por el flujo medio que se repite ocho veces y finalmente por el flujo de salida. Tenga en cuenta que todas las capas de convolución y convolución separable van seguidas de la normalización por lotes.

- Yolo v5
Yolo v5 es un modelo de detección de objetos, y su primera versión oficial fue lanzada por Ultralytics. Como YOLO v5 es un detector de objetos de una sola etapa, tiene tres partes importantes como cualquier otro detector de objetos de una sola etapa.
- Columna vertebral del modelo: se utiliza principalmente para extraer características importantes de la imagen de entrada dada. En YOLO v5, las CSP — Cross Stage Partial Networks se utilizan como backbone para extraer una gran cantidad de características informativas de una imagen de entrada.
- Model Neck: genera pirámides de características para detectar objetos a distintas escalas. Este tipo de estructura ayuda a reconocer objetos de diferentes tamaños; otras arquitecturas utilizan variantes como FPN, BiFPN o PANet.
- Model Head: realiza la detección final a partir de las características extraídas y de cajas de referencia. Produce probabilidades de clase, puntuaciones de presencia de objetos y cajas delimitadoras.
A continuación se muestra el diagrama de arquitectura de Yolo v5:

Resultados
- Fase inicial: clasificación de razas

- FASE MEDIA: Detección de Rostro

- FASE FINA: Identificación de la mascota

Conclusiones y Recomendaciones
- En la fase gruesa de clasificación de razas, se concluye que el modelo más óptimo es Inception v3 con un accuracy de 83.35% usando el dataset de Stanford y 78.28% para el de Thudogs.
- En la fase media de detección de rostros, se probó únicamente el modelo Yolo v5 obteniendo un MAP de 98.5%.
- En la fase fina de identificación de rostros, se concluye que el modelo más óptimo es Xception con un accuracy de 67.5% para el dataset de Flickr una vez realizado el data augmentation.
- El equipo propone que esta combinación de modelos podría ayudar a identificar mascotas perdidas. Comprobar si reduce el tiempo de reencuentro requeriría una evaluación con casos reales.
- En la fase fina se recomienda probar GAN’s para data augmentation.
- En la fase gruesa, se sugiere combinar los datasets de Stanford y Thudogs, y probar los modelos desarrollados.
- En la fase gruesa, se recomienda crear un dataset propio para identificación.
- En la fase media, se sugiere probar nuevos modelos adicionales a yolo v5.
Referencias
- Identificación de perros mediante biometría y redes neuronales
https://arxiv.org/pdf/2007.11986v1.pdf
- Identificación de razas de perros mediante aprendizaje profundo
https://www.researchgate.net/publication/328834665_Dog_Breed_Identification_Using_Deep_Learning
- Yolo v5
Presentación del proyecto: DemoDay
¡Más inteligencia artificial!
Saturdays.AI acerca la IA a más personas a través del aprendizaje en comunidad y de proyectos con impacto social. Nuestro lema es AI4ALL IS AI4GOOD.
Explora los cursos disponibles
Conoce la comunidad de Saturdays.AI
Autoría
Mishel Carrión López
Saturdays.AI
Saturdays.AI es una comunidad abierta donde aprendemos inteligencia artificial, colaboramos y creamos proyectos con impacto social.
Una historia de la comunidad Saturdays.AI. Publicada originalmente el 21 nov 2021.
← Más historias de la comunidad



