Problemas y soluciones

Encontrarnos con dificultades y plantear salidas es el día a día en cualquier proyecto.

A continuación os hago participe del principal problema que hemos detectado en FotoID (descrito aquí) tras varios meses de uso; circunstancia que nos lleva a explorar mejoras potenciales en su continuación:FotoID2.

El problema:

hemos basado la fotoidentificación en el uso de un algoritmo de matching que calcula índices de similitud entre un patrón (porción de una fotografía) y un repositorio de imágenes. Los valores de este cálculo nos permitirán detectar si el individuo del que se extrajo dicho patrón está o no en el repositorio. A pesar de que las imágenes se han tomado evitando variaciones en luminosidad, orientación y escala, en ocasiones existen diferencias suficientes para hacer fallar los análisis. Estos fallos, aunque  no frecuentes comprometen la eficacia del método. Si queremos que este software sea una alternativa real frente a otros métodos de identificación debemos enfrentar el problema hasta conseguir la eficacia requerida.

Una posible solución sería aislar el patrón de la imagen:

se puede evitar que distorsiones propias de la imagen afecten al análisis comparando patrones dibujados a partir de ellas. El reto en este caso sería conseguir dibujar estos patrones automáticamente recurriendo a métodos de detección de bordes, intersecciones, etc… y que estos no se vean afectados por esas mismas distorsiones.

Otra, realizar análisis multipatrón:

hasta ahora únicamente utilizábamos un patrón característico del pectoral del animal para comparar con todo el repositorio. Si incluimos en el análisis más patrones o caracteres adicionales (p.ej. sexo del individuos) la incidencia de errores debiera disminuir.

En los próximos meses os podré contar a dónde nos llevan estos caminos. Probablemente nos enfrentarán con otros problemas y, sin duda, nos habrán acercado más a la solución.

Share

3 comments to Problemas y soluciones

  • avatar Pau Carré

    Yo estoy trabajando con Restricted Botltzmann Machines que dan buenos resultados en la detección de patrones en imágenes.
    Por lo que hace a la detección de bordes, creo que es algo bastante difícil dado que las transformaciones idoneas serán distintas según qué imagen se trate. Es decir, si por ejemplo se usa un Laplacian of Gaussians, sus parámetros diferirán entre imágenes.
    Creo que lo suyo sería hacer una red neuronal “Deep” que está muy en boga últimamente, que vaya detectando rasgos concretos de la imágen y pueda clasificarlas jerárquicamente.

  • avatar omoya

    Efectivamente Pau, al tratar la detección de bordes por medios tradicionales necesitamos usar distintos ajustes según la imagen. Lo complicado es encontrar un método eficaz para todas, especialmente porque las condiciones de luz en que se toman varían de un muestreo a otro.
    Nos hemos planteado utilizar métodos de machine learning, concretamente pensábamos en el de Support Vector Machines, ya fuera para detectar bordes o intersecciones entre ellos. Esta segunda opción pudiera ser muy útil ya que existen métodos de fotoidentificación muy robustos que utilizan un set de puntos como patrón característico (ver I3S). Una detección de intersecciones pudiera automatizar trabajos que actualmente se realizan manualmente.

    Las alternativas que propones parecen interesantes. Estaré encantado de saber más de tu experiencia en materia de reconocimiento de patrones.

    Gracias por tus útiles comentarios.

  • [...] esa premisa, nos hemos lanzado a una nueva aventura en FotoID2: modificar el código de I3S (licenciado GNU-GPL), un programa concebido para facilitar la [...]