Procesamiento de imágenes antes de la detección de funciones

9

He implementado un detector de características basado en las esquinas de Harris . Funciona bien la mayoría de las veces, pero hay casos en los que funciona mal. Necesito hacer que funcione en muchas imágenes diferentes sin configurarlo individualmente.

El problema es con el valor umbral del detector. Si se configura demasiado bajo, el detector se dispara demasiadas veces, lo que resulta en una gran cantidad de características. Si se configura demasiado alto, hay menos funciones.

ANMS ( Supresión adaptativa no máxima) lo he resuelto parcialmente para reducir el número de características antes de asignarles un vector descriptor.

Sin embargo, imágenes como esta son el problema:

ingrese la descripción de la imagen aquí

Tienen bajo contraste y no puedo "permitirme" establecer un umbral demasiado bajo para todas las imágenes. Causaría que el detector funcionara en estas imágenes, pero otras imágenes contendrían cientos de miles de características, que serán lentas para filtrar con ANMS y esto dañará el rendimiento general.

Estaba pensando en ajustar la imagen antes de la detección de características. Tal vez la ecualización de histograma haría el trabajo. Esta puede ser una operación válida ya que el cambio global de contraste no tiene efecto en los descriptores de características (son invariables al cambio de brillo y contraste).

Quizás trabajar con un umbral adaptativo o alguna heurística funcionaría mejor.

¿Cualquier otra sugerencia?

Libor
fuente
@Seyhmus Güngören: Oh. He aceptado las respuestas que obtuve hasta ahora desde que encontré soluciones suficientemente satisfactorias, pero aún espero respuestas mejores o más elaboradas.
Libor
@Libor Es bueno para sus nuevas preguntas porque podría ser más atractivo resolver sus preguntas en el caso actual.
Seyhmus Güngören
@Libor, ¿consideró la coincidencia de histograma al elegir un histograma gaussiano que tiene una media de alrededor de 128?
Seyhmus Güngören
@ SeyhmusGüngören Sí, estaba pensando en esto. Probablemente lo intentaré con algunas otras ideas.
Libor
@Libro ¿Puede decir cómo planea usar las funciones detectadas? Mis únicas ideas son la recuperación o coincidencia de imágenes basadas en contenido (por ejemplo, para la estimación de la homografía), pero dado que eso es lo único que he hecho con ellas, podría estar equivocado :) Si, por otro lado, eso es lo que planeas usar para ellos, podría ser capaz de contribuir.
penelope

Respuestas:

1

Una posibilidad sería hacer una detección de borde simple (como Laplace) y utilizar la intensidad media del resultado como base para el umbral de las esquinas de Harris. Cuando tiene bajo contraste, obtendrá menos bordes y con menor intensidad, con alto contraste obtendrá más bordes y con mayores intensidades.

No eres el único que lucha con este problema. Si tiene acceso a bases de datos en papel, esto podría ser interesante:

Puede valer la pena buscar más (auto) detección de esquina de harris adaptativa.

Geerten
fuente
Eso no es una contradicción. El detector tiene dos etapas: 1) detectar características, 2) describir características. La ecualización del histograma debería tener efecto en la etapa 1 (más características detectadas), no en la etapa 2. Necesito detectar una cantidad moderada de características, por lo que no es necesario filtrarlas mucho.
Libor
Ok, pensé en esto, pero no estaba completamente claro por tu pregunta. No pretendo usar la imagen de borde como entrada para el detector de características, sino como su propia medida de cuál debería ser el valor para el umbral.
Geerten
Gracias, ese es un pensamiento interesante. El detector de esquinas de Harris utiliza imágenes derivadas (dx, dy, dxy) para construir la medida de las esquinas en cada punto. Como esto ya se basa en medidas de borde, ahora estoy pensando en tomar el histograma de la función de respuesta de esquina y calcular el umbral de ese histograma. Me inspiraste, gracias :)
Libor
Me alegro de poder inspirarte;) Se agregó un documento que podría ser útil.
Geerten
2

¿Realmente tienes que usar las esquinas de Harris? Hay muchas características desarrolladas después de las esquinas de Harris, con mejores propiedades. Una buena descripción se puede encontrar en este artículo:

Basado en ese artículo, así como en mi experiencia personal, sugeriría cambiar a MSER (Regiones externas máximamente estables) , o incluso combinarlas con DoG (Diferencia de gaussianos) , las características presentadas por primera vez como parte de la tubería SIFT.

Si el problema realmente está en bajo contraste , entonces las características de MSER realmente lo harán feliz: son (bastante) invariables a los cambios en la iluminación. En resumen, son regiones conectadas de la imagen estables a través de una serie de binarizaciones de umbral diferentes.

El proceso de extracción de características es independiente del cálculo de los descriptores, por lo que no debería ser demasiado difícil integrar nuevas formas de extracción de características en su proceso.

Además, he oído hablar (pero nunca trabajé con) sobre las esquinas de Harris a múltiples escalas como una extensión de las esquinas de Harris. No sé mucho sobre ellos y personalmente no puedo recomendar ningún material de lectura sobre este tema, así que les dejo la búsqueda de artículos y la selección de los materiales más interesantes para usted.


Además, podría sugerir que la imagen que publicó puede tener otros problemas además del bajo contraste . En mi experiencia personal, la vegetación como arbustos o posiblemente el campo que tiene, así como las hermosas nubes burbujeantes tienden a producir "características genéricas" , características que tienden a tener descriptores igualmente similares (o diferentes) que muchas otras características.

En la práctica, esto significa que cuando se hacen coincidencias de características en dos imágenes desde una perspectiva diferente, las características extraídas de este tipo de superficies tienden a coincidir falsamente. He realizado una tesis de maestría que, en gran parte, se ocupa de la extracción de características para usar en la coincidencia de características que se usa para calcular una transformación de homografía entre dos imágenes cuando me encontré con este problema. No encontré ningún otro artículo que describiera este problema en ese momento, pero mi tesis podría ser útil para su enfoque general.

Por último, como ha establecido, los umbrales y las técnicas que funcionan bien en la mayoría de las imágenes extraen pequeñas características en este tipo de imágenes, debido a sus áreas en su mayoría homogéneas. Este tipo de imágenes presentan problemas en la coincidencia de funciones (que puede extenderse a la unión de imágenes), la recuperación de imágenes basada en contenido, y supongo que el seguimiento, así como aplicaciones similares. Ningún método funciona actualmente bastante bien en ellos.

Los métodos que funcionan bien en este tipo de imágenes, así como los casos típicos, se están explorando e investigando actualmente, como un enfoque en el que comencé a trabajar, que se describe brevemente en esta respuesta .

penelope
fuente
Gracias por la respuesta detallada, revisaré los documentos cuando tenga algo de tiempo libre. Estaba implementando un detector de características que enfrentaba dos problemas: la complejidad de la implementación y los problemas de patentes. Mi aplicación es una biblioteca comercial de alineación y unión de imágenes y, por lo tanto, tengo recursos y tiempo limitados para la implementación y no puedo pagar SIFT o SURF. Probablemente cambiaré a MSER u otro detector / descriptor avanzado, pero hasta ahora las esquinas de Harris funcionan bien con la excepción de imágenes con poca iluminación.
Libor
@Libor Eso es lo bueno: no tienes que cambiar. Simplemente puede agregar las nuevas características a su canal de detección-> descripción existente. No importa cómo se extraigan las características, siempre puede calcular sus descriptores con una misma táctica. De todas las cosas que he escrito, tal vez el primer artículo mencionado que compara varias opciones de detección / descripción podría ser el más útil.
Penélope
Solía ​​reunir grandes descriptores y luego usaba PCA para mejorar la velocidad y el poder discriminativo de los descriptores. Sin embargo, el PCA es bastante costoso para grandes conjuntos de datos. Este trabajo me atrajo debido a la mejora genérica de los descriptores. Hasta el momento, todo lo que uso es el "Rechazo de valores atípicos del espacio de características", que simplemente limita las coincidencias de características en función de la distancia de 1 nn / 2 nn. Esto es descrito por D. Lowe en sus documentos y tiene un poder discriminativo muy bueno, ya que explota la propiedad de concha de las distancias en espacios muy oscuros.
Libor
En cuanto a los detectores, los grandes cambios de punto de vista y la invariancia de escala no son un problema, ya que con el mosaico de imágenes (panoramas, microscopios) el zoom generalmente se mantiene sin cambios y las deformaciones afines o proyectivas son bastante pequeñas entre las imágenes coincidentes. El problema principal es realmente menos o demasiadas características detectadas y descriptores pobres.
Libor
Personalmente, no sé mucho sobre la elección del descriptor, he trabajado solo con SIFT. Pero el enlace que proporcionó mencionó que son similares a los descriptores DAISY, lo que también recuerdo haber sido evaluado como muy bueno. Con suerte, combinar más extractores de funciones debería proporcionarle más funciones, y la invariancia de escala solo puede ser una ventaja, incluso si no la necesita. Leí algunos trabajos que mencionan que trabajar con extractores de funciones múltiples aumenta los poderes discriminativos (puedo buscar los enlaces si lo desea).
Penélope