Función de reconocimiento de imágenes. Caja de herramientas de procesamiento de imágenes. Un curso breve sobre teoría del procesamiento de imágenes. I.M. Zhuravel. Google busca especialistas en el campo de la inteligencia artificial y el reconocimiento de imágenes

Según las estadísticas, en Rusia se roban varios coches cada minuto. vehículos. Teniendo esto en cuenta, los automovilistas se ven obligados a cuidar la seguridad de sus coches en nivel superior. La mejor solución Los beneficios se disfrutarán aquí. tecnologías modernas, que iba mucho más allá de las simples sirenas.

Hoy en día, uno de los métodos de protección más progresivos es un rastreador: un dispositivo de seguimiento que permite controlar la ubicación de un vehículo en tiempo real. Por supuesto, esto no te salvará del robo, pero en caso de que suceda, puedes localizar y devolver el coche con GLONASS. rastreador GPS Hacerlo usted mismo, incluso sin la participación de la policía, es cuestión de unos minutos. Sin él, a su vez, las posibilidades son escasas y tienden a cero.

¿Por qué surge la idea de hacer un rastreador GPS GLONASS con tus propias manos?

Surge una pregunta razonable: ¿por qué, si esta protección es tan eficaz, no todos los coches están equipados con ella? La respuesta quizás sea obvia: todo depende únicamente del precio del dispositivo. Sin embargo, la compra está lejos de ser el único inconveniente de este tipo de dispositivos:

  • Además del precio inicial, debes pagar mensualmente. una cierta cantidad para el mantenimiento del rastreador como tarifa de suscripción al “proveedor” (y también al vendedor). Esta cantidad no es tan grande como para llamarla “inasequible”, pero aún así es notable.
  • La mayoría de los modelos necesitan estar conectados a una batería, lo que hace que no sólo el rastreador, sino también todo el interior del coche, por no hablar del propio coche, quede indefenso en manos de un ladrón experto. Basta con apagar la fuente de alimentación de dichos rastreadores y la señal de ellos desaparecerá, abriendo el camino para que el criminal escape con el botín.
  • Dado que los rastreadores no están tan extendidos, la mayoría de los automovilistas, acostumbrados a confiar en las opiniones de sus amigos, miran el dispositivo con desconfianza. Al mismo tiempo, conociendo la situación del mercado, algunos fabricantes falsifican marcas de calidad, lo que al final crea una impresión negativa entre quienes intentan ahorrar dinero.

Todo esto, combinado con algunos otros matices, pareció enterrar el concepto de seguimiento de los espacios abiertos rusos. Pero, afortunadamente, en nuestro país abundan los ingenieros de radio, por lo que ahondar en diagramas de circuito, muchos comenzaron a crear rastreadores con sus propias manos.

Ventajas de un rastreador GPS GLONASS de bricolaje

Como dicen, si quieres algo bueno, hazlo tú mismo. De hecho, la lista de ventajas de un rastreador casero es lo suficientemente impresionante como para al menos causar confusión entre quienes compraron este dispositivo en una tienda:

  • En primer lugar, el coste del dispositivo es un orden de magnitud inferior al precio de mercado. En algunos casos, puede resultar completamente gratuito, por ejemplo, si en el taller se desechan las piezas de repuesto adecuadas para el rastreador.
  • Un rastreador GPS DIY GLONASS satisfará exactamente las necesidades del usuario y también se puede modificar fácilmente cuando cambien las circunstancias.
  • El producto casero probablemente no contendrá defectos de fabricación ocultos que aparezcan en el momento más inoportuno.

Desventajas de los rastreadores GPS GLONASS hechos por usted mismo

Por desgracia, como todo, este método tiene sus inconvenientes:

  • La calidad del dispositivo depende directamente del nivel de soldadura maestra; si no ha trabajado directamente en la producción de rastreadores, es posible que no conozca algunas de las sutilezas y, por lo tanto, "falle" en el trabajo, independientemente de cuánto trabajo y habilidad se invierta en él.
  • Por razones obvias, no existe garantía para los productos caseros. Pero no es este hecho lo importante, sino el hecho de que, en caso de cualquier mal funcionamiento o incluso un "fallo de encendido" en el trabajo, solo puede presentar una reclamación con su propio kit de soldadura.
  • Finalmente, solo los profesionales más experimentados pueden entender cómo hacer un rastreador GPS GLONASS con sus propias manos sin esquema listo para usar. Soluciones listas para usar, lamentablemente no se encuentra en acceso abierto, y ¿y si de repente? dispositivos principales reunirse - sin habilidades programación básica no hay manera de evitarlo.

Una solución que elimina la necesidad de fabricar usted mismo un rastreador GPS GLONASS

Hay una salida que le permitirá evitar todos los problemas descritos anteriormente: comprar un dispositivo de un modelo innovador en el que se hayan eliminado las deficiencias de sus predecesores.

Este navegador destaca no solo por su precio asequible, sino también por muchas otras ventajas de las que la mayoría de dispositivos de seguimiento no pueden presumir:

  • Los rastreadores GPS DIY GLONASS suelen ser bastante voluminosos y de apariencia incómoda. Pero nuestro dispositivo está alojado en una elegante carcasa en miniatura del tamaño de un poco más que una tarjeta bancaria de plástico.
  • Como es el caso de dispositivos caseros, el dispositivo no requiere ninguna tarifa de suscripción; solo necesita tener una tarjeta SIM, que debe insertarse en el dispositivo antes de comenzar a trabajar. Con una tarifa favorable, los gastos pueden volverse completamente simbólicos, hasta llegar a una seguridad completamente gratuita.
  • Baterías – factor importante cualquier modelo de dispositivo de seguimiento; Nadie podrá fabricar con sus propias manos un rastreador GPS GLONASS que consuma mucha energía, aunque solo sea porque se necesita equipo de laboratorio para cambiarlo con baterías adecuadas. Pero también conéctate como obsoleto. modelos pagados, A batería de coche este dispositivo no es necesario. La batería incorporada funciona a niveles récord por mucho tiempo– hasta nueve meses con una sola carga.

Oportunidades que un rastreador GPS GLONASS casero no brindará

Teniendo en cuenta el tamaño pequeño, alto grado autonomía y otras ventajas del dispositivo, se puede utilizar no sólo como "antirrobo", sino también para fines completamente abstractos:

  • En primer lugar, la movilidad y las pequeñas dimensiones permiten controlar la máquina de forma totalmente desapercibida y sin necesidad de trabajos de instalación previos. Esto es fácilmente utilizado por varios empresas de transporte con el fin de rastrear las rutas de las unidades subordinadas, y al mismo tiempo verificar a los conductores los gastos de combustible y lubricantes.
  • Un rastreador GPS GLONASS hecho por usted mismo es un pasatiempo, pero cuando se trata de cuestiones profesionales como el espionaje industrial, los experimentos son inapropiados. Mientras tanto, la vigilancia secreta de cualquier persona, desde individuos hasta corporaciones enteras, es una de las formas más comunes de utilizar una baliza. Basta con esconderlo en el coche, ropa o bolso del sujeto en estudio, y recibirás información completa sobre todos sus movimientos.
  • Con la ayuda de rastreadores, también puedes controlar a tus seres queridos. Este modelo presenta una función que es casi imposible de implementar con sus propias manos, a saber, un "botón de pánico" ubicado directamente en el cuerpo del dispositivo. Sólo un clic y tu el teléfono vendrá“Notificación SOS” con coordenadas geográficas vinculadas.
  • Finalmente, con la ayuda de una baliza puedes incluso seguir el movimiento de cosas, por ejemplo, paquetes en empresas postales o equipaje en los aeropuertos. En este último caso, por cierto, pueden surgir muchas preguntas sobre qué es un rastreador GPS DIY GLONASS. Para evitar meterse en problemas, es mejor utilizar dispositivos de marca.

Solicite un rastreador GPS GLONASS en lugar de soldarlo usted mismo ahora mismo

Todo lo que necesita hacer para recibir este dispositivo en miniatura es dejar un formulario de solicitud en línea completo en nuestro sitio web. Después de confirmar el pedido, el rastreador le será enviado inmediatamente y llegará directamente a la puerta de su apartamento por mensajería. Sin pago por adelantado ni ningún condiciones adicionales no es necesario, simplemente ordene y pague al mensajero en efectivo.

Si planeas soldar un rastreador GPS GLONASS con tus propias manos por diversión, pruébalo, pero cuando se trata de seguridad, no te arriesgues. Actúa sabiamente y elige sólo lo mejor para ti.

Rastreador GPS DIY GLONASS: truco de vida para la élite

  • Tutorial

Hace tiempo que quería escribir un artículo general que contuviera los conceptos básicos del reconocimiento de imágenes, una especie de guía sobre metodos basicos, diciéndote cuándo usarlos, qué problemas resuelven, qué se puede hacer por la noche de rodillas y en qué es mejor no pensar sin tener un equipo de 20 personas.

Llevo mucho tiempo escribiendo algunos artículos sobre reconocimiento óptico, por eso la gente me escribe un par de veces al mes. varias personas con preguntas sobre este tema. A veces tienes la sensación de que vives con ellos. mundos diferentes. Por un lado, entiendes que lo más probable es que la persona sea un profesional en un tema relacionado, pero en métodos reconocimiento óptico sabe muy poco. Y lo más molesto es que está intentando aplicar un método de un campo de conocimiento cercano, lo cual es lógico, pero no funciona del todo en Reconocimiento de Imágenes, pero no entiende esto y se ofende mucho si empiezas a decirle algo. desde lo más básico. Y teniendo en cuenta que contar desde lo básico requiere mucho tiempo, que a menudo no está disponible, se vuelve aún más triste.

Este artículo está destinado a que una persona que nunca haya trabajado con métodos de reconocimiento de imágenes pueda, en 10 a 15 minutos, crear en su cabeza una determinada imagen básica del mundo que corresponda al tema y comprender en qué dirección excavar. Muchas de las técnicas descritas aquí son aplicables al procesamiento de radar y audio.
Empezaré con un par de principios que siempre empezamos a contarle a un cliente potencial, o a una persona que quiere empezar a hacer Reconocimiento Óptico:

  • A la hora de resolver un problema, parta siempre de lo más simple. Es mucho más fácil ponerle una etiqueta a una persona. color naranja que seguir a una persona, destacándola en cascadas. Es mucho más fácil llevar una cámara con una resolución más alta que desarrollar un algoritmo de superresolución.
  • Una formulación estricta del problema en los métodos de reconocimiento óptico es mucho más importante que en los problemas. programación del sistema: uno palabra extra Se puede añadir el 50% del trabajo a las especificaciones técnicas.
  • No hay reconocimiento en las tareas. soluciones universales. No se puede crear un algoritmo que simplemente "reconozca cualquier inscripción". Un cartel en la calle y una hoja de texto son objetos fundamentalmente diferentes. Probablemente sea posible crear un algoritmo general (aquí hay un buen ejemplo de Google), pero requerirá mucho trabajo de un equipo grande y constará de docenas de subrutinas diferentes.
  • OpenCV es una biblia que tiene muchos métodos y puede resolver el 50% de casi cualquier problema, pero OpenCV es sólo una pequeña parte de lo que realmente se puede hacer. En un estudio, las conclusiones fueron escritas: "El problema no se puede resolver utilizando métodos OpenCV, por lo tanto, no tiene solución". Intente evitar esto, no sea perezoso y evalúe con seriedad la tarea actual desde cero cada vez, sin utilizar plantillas OpenCV.
Es muy difícil dar un consejo universal o decir cómo crear algún tipo de estructura alrededor de la cual se pueda construir una solución a problemas arbitrarios. visión por computadora. El propósito de este artículo es estructurar lo que se puede utilizar. intentaré romperlo métodos existentes en tres grupos. El primer grupo es el filtrado preliminar y la preparación de imágenes. El segundo grupo es el procesamiento lógico de los resultados del filtrado. El tercer grupo son los algoritmos de toma de decisiones basados ​​​​en procesamiento lógico. Los límites entre grupos son muy arbitrarios. Para resolver un problema, no siempre es necesario utilizar métodos de todos los grupos; a veces son suficientes dos y, a veces, incluso uno.

La lista de métodos proporcionada aquí no está completa. Sugiero agregar métodos críticos en los comentarios que no escribí y atribuir 2-3 palabras adjuntas a cada uno.

Parte 1. Filtración

En este grupo coloqué métodos que te permiten seleccionar áreas de interés en imágenes sin analizarlas. Mayoría de estos métodos aplica algún tipo de transformación única a todos los puntos de la imagen. A nivel de filtrado no se realiza ningún análisis de la imagen, pero los puntos que pasan el filtrado pueden considerarse como zonas con características especiales.
Binarización por umbral, selección del área del histograma.
La transformación más simple es la binarización de la imagen por umbral. Para Imágenes RGB e imágenes en escala de grises, el umbral es el valor del color. Hay problemas ideales en los que tal transformación es suficiente. Supongamos que desea seleccionar objetos automáticamente en una hoja de papel blanca:




La elección del umbral en el que se produce la binarización determina en gran medida el proceso de binarización en sí. EN en este caso, la imagen fue binarizada por el color promedio. Normalmente, la binarización se lleva a cabo mediante un algoritmo que selecciona de forma adaptativa un umbral. Dicho algoritmo puede ser la elección de expectativa o modo. O puede seleccionar el pico más grande del histograma.

La binarización puede proporcionar muy resultados interesantes cuando se trabaja con histogramas, incluso en la situación en la que consideramos una imagen no en RGB, sino en HSV. Por ejemplo, segmente los colores de interés. Según este principio, se pueden construir tanto un detector de etiquetas como un detector de piel humana.
Filtrado clásico: Fourier, filtro de paso bajo, filtro de paso alto
Los métodos clásicos de filtrado de radar y procesamiento de señales se pueden aplicar con éxito a una variedad de tareas de reconocimiento de patrones. método tradicional en radar, que casi nunca se utiliza en imágenes en forma pura, es la transformada de Fourier (más específicamente, la FFT). Una de las pocas excepciones en las que se utiliza la transformada unidimensional de Fourier es la compresión de imágenes. Para el análisis de imágenes, una transformación unidimensional generalmente no es suficiente; es necesario utilizar una transformación bidimensional que requiere muchos más recursos.

Pocas personas realmente lo calculan; por lo general, es mucho más rápido y más fácil usar la convolución del área de interés con un filtro ya preparado, sintonizado para frecuencias altas (HPF) o bajas (LPF). Este método, por supuesto, no permite el análisis del espectro, pero en tarea específica El procesamiento de vídeo normalmente no requiere análisis, sino resultados.


lo mas ejemplos simples filtros que implementan subrayado bajas frecuencias(filtro gaussiano) y altas frecuencias(Filtro Gabor).
Para cada punto de la imagen, se selecciona una ventana y se multiplica con un filtro del mismo tamaño. El resultado de tal convolución es un nuevo valor en puntos. Al implementar filtros de paso bajo y filtros de paso alto se obtienen imágenes del siguiente tipo:



Ondas
Pero ¿qué pasa si utilizamos alguna función característica arbitraria para la convolución con la señal? Entonces se llamará "transformación Wavelet". Esta definición de wavelets no es correcta, pero tradicionalmente, en muchos equipos, el análisis de wavelets es la búsqueda de un patrón arbitrario en una imagen mediante convolución con un modelo de este patrón. Existe un conjunto de funciones clásicas que se utilizan en el análisis de wavelets. Estos incluyen la onda de Haar, la onda de Morlet, la onda del sombrero mexicano, etc. Las primitivas de Haar, sobre las cuales hubo varios de mis artículos anteriores (,), se relacionan con funciones similares para el espacio bidimensional.


Arriba hay 4 ejemplos de wavelets clásicas. Onda de Haar tridimensional, Onda de Meyer bidimensional, Onda de Sombrero mexicano, Onda de Daubechies. un buen ejemplo Usando una interpretación ampliada de las ondículas está el problema de encontrar un resplandor en el ojo, para el cual la ondícula es el resplandor mismo:

Las wavelets clásicas se utilizan generalmente para la compresión de imágenes o para la clasificación de imágenes (que se describirá a continuación).
Correlación
Después de una interpretación tan libre de las wavelets por mi parte, vale la pena mencionar la correlación real que subyace a ellas. Al filtrar imágenes esto herramienta indispensable. Una aplicación clásica es correlacionar una transmisión de video para encontrar cambios o flujos ópticos. El detector de desplazamiento más simple es también, en cierto sentido, un correlador de diferencias. Donde las imágenes no se correlacionaban, había movimiento.

Funciones de filtrado
Una clase interesante de filtros es el filtrado de funciones. Estos son filtros puramente matemáticos que le permiten detectar simples función matemática en la imagen (recta, parábola, círculo). Se construye una imagen acumulativa en la que para cada punto imagen original Se dibujan muchas funciones que lo generan. La transformación más clásica es la transformada de Hough para líneas. En esta transformación, para cada punto (x;y), se traza un conjunto de puntos (a;b) de la recta y=ax+b para los cuales la igualdad es verdadera. Obtienes hermosas imágenes:


(el primer plus es para el primero en encontrar un truco en la imagen y esta definición y explicarlo, el segundo plus es para el primero en decir lo que se muestra aquí)
La transformada de Hough le permite encontrar funciones parametrizables. Por ejemplo círculos. Hay una transformación modificada que le permite buscar cualquier forma. A los matemáticos les gusta muchísimo esta transformación. Pero, lamentablemente, al procesar imágenes no siempre funciona. Velocidad de funcionamiento muy lenta, muy alta sensibilidad a la calidad de la binarización. Incluso en situaciones ideales, prefería conformarme con otros métodos.
Un análogo de la transformada de Hough para líneas rectas es la transformada de radón. Se calcula mediante FFT, lo que proporciona una ganancia de rendimiento en una situación en la que hay muchos puntos. Además, se puede aplicar a una imagen no binarizada.
Filtrado de contorno
Una clase separada de filtros es el filtrado de bordes y contornos. Los contornos son muy útiles cuando queremos pasar de trabajar con una imagen a trabajar con los objetos de esa imagen. Cuando un objeto es bastante complejo, pero bien distinguido, a menudo la única forma de trabajar con él es seleccionar sus contornos. Hay una serie de algoritmos. resolviendo el problema circuitos de filtrado:

La mayoría de las veces se utiliza Canny, que funciona bien y cuya implementación está en OpenCV (Sobel también está allí, pero luciendo peor contornos).



Otros filtros
Arriba están los filtros cuyas modificaciones ayudan a resolver el 80-90% de los problemas. Pero además de ellos, hay filtros más raros que se utilizan en tareas locales. Hay docenas de filtros de este tipo, no los enumeraré todos. Son interesantes los filtros iterativos (por ejemplo, un modelo de apariencia activo), así como las transformaciones de crestas y curvas, que son una fusión del filtrado de ondas clásicas y el análisis en el campo de la transformada de radón. La transformada beamlet funciona maravillosamente en el límite de la transformada wavelet y análisis lógico, permitiéndole seleccionar contornos:

Pero estas transformaciones son muy específicas y están diseñadas para tareas poco comunes.

Parte 2. Procesamiento lógico de los resultados del filtrado.

El filtrado proporciona un conjunto de datos adecuados para su procesamiento. Pero a menudo no es posible simplemente tomar y utilizar estos datos sin procesarlos. En esta sección habrá varios métodos clásicos que te permitirán pasar de una imagen a las propiedades de los objetos, o a los objetos mismos.
Morfología
La transición del filtrado a la lógica, en mi opinión, son los métodos de la morfología matemática (, ,). En esencia, estas son las operaciones más simples para hacer crecer y erosionar imágenes binarias. Estos métodos le permiten eliminar el ruido de una imagen binaria aumentando o disminuyendo los elementos existentes. Existen algoritmos de contorneado basados ​​en la morfología matemática, pero normalmente se utilizan algún tipo de algoritmos híbridos o algoritmos combinados.
Análisis de contorno
Los algoritmos para obtener límites ya se mencionaron en la sección de filtrado. Los límites resultantes se convierten simplemente en contornos. Para el algoritmo Canny esto sucede automáticamente; para otros algoritmos se requiere binarización adicional. Puede obtener un contorno para un algoritmo binario, por ejemplo, utilizando el algoritmo del escarabajo.
Un contorno es una característica única de un objeto. Esto a menudo le permite identificar un objeto por su contorno. Existe un poderoso aparato matemático que le permite hacer esto. El dispositivo se llama análisis de contorno (,).

Para ser honesto, nunca he podido aplicar el análisis de contorno en problemas reales. Se requieren condiciones demasiado ideales. O no hay límites o hay demasiado ruido. Pero, si necesitas reconocer algo en condiciones ideales- entonces el análisis de contornos es una opción maravillosa. Funciona muy rápido, hermosas matemáticas y lógica clara.
Puntos especiales
Los puntos singulares son características únicas de un objeto que permiten compararlo consigo mismo o con clases similares de objetos. Hay varias docenas de formas de identificar estos puntos. Algunos métodos identifican puntos especiales en cuadros adyacentes, algunos después de un largo período de tiempo y cuando cambia la iluminación, otros le permiten encontrar puntos especiales que permanecen así incluso cuando se gira el objeto. Empecemos con métodos que nos permiten encontrar puntos especiales, que no son tan estables, pero que se calculan rápidamente, y luego iremos en complejidad creciente:
Clase primera. Puntos especiales que se mantienen estables durante un período de segundos. Estos puntos se utilizan para guiar un objeto entre fotogramas de vídeo adyacentes o para combinar imágenes de cámaras vecinas. Dichos puntos incluyen máximos locales de la imagen, esquinas de la imagen (el mejor de los detectores es, quizás, el detector Charis), puntos en los que se logra la máxima dispersión, ciertos gradientes, etc.
Segunda clase. Puntos especiales que se mantienen estables ante cambios de iluminación y pequeños movimientos del objeto. Estos puntos sirven principalmente para el entrenamiento y posterior clasificación de tipos de objetos. Por ejemplo, un clasificador de peatones o un clasificador de rostros es el producto de un sistema construido precisamente sobre dichos puntos. Algunas de las ondas mencionadas anteriormente pueden ser la base de tales puntos. Por ejemplo, primitivas de Haar, búsqueda de aspectos destacados, búsqueda de otras funciones específicas. Estos puntos incluyen los encontrados mediante el método del histograma de gradientes direccionales (HOG).
Tercer grado. Puntos estables. Sólo conozco dos métodos que proporcionan estabilidad total y sus modificaciones. Estos son SURF y SIFT. Te permiten encontrar puntos especiales incluso cuando giras la imagen. El cálculo de dichos puntos lleva más tiempo en comparación con otros métodos, pero es suficiente. tiempo limitado. Desafortunadamente, estos métodos están patentados. Aunque en Rusia es imposible patentar algoritmos, se utiliza para el mercado interno.

Parte 3. Entrenamiento

La tercera parte de la historia estará dedicada a métodos que no trabajan directamente con la imagen, pero que permiten tomar decisiones. Básicamente es varios metodos aprendizaje automático y toma de decisiones. Recientemente Yandyx publicó un curso sobre este tema en Habr, es muy buena seleccion. Aquí está en la versión de texto. Para un estudio serio del tema, recomiendo verlos. Aquí intentaré describir varios métodos principales utilizados específicamente en el reconocimiento de patrones.
En el 80% de las situaciones, la esencia del aprendizaje en la tarea de reconocimiento es la siguiente:
Hay una muestra de prueba que contiene varias clases de objetos. Que sea la presencia/ausencia de una persona en la foto. Para cada imagen hay un conjunto de características que han sido resaltadas por alguna característica, ya sea Haar, HOG, SURF o alguna wavelet. El algoritmo de aprendizaje debe construir un modelo según el cual podrá analizar una nueva imagen y decidir qué objeto está en la imagen.
¿Cómo se hace esto? Cada una de las imágenes de prueba es un punto en el espacio de características. Sus coordenadas son el peso de cada una de las características de la imagen. Sean nuestras señales: “Presencia de ojos”, “Presencia de una nariz”, “Presencia de dos manos”, “Presencia de oídos”, etc... Destacaremos todas estas señales utilizando nuestros detectores existentes, que están entrenados en partes del cuerpo similares a las humanas Para una persona en un espacio así, el punto correcto sería. Para el mono, pon un punto para el caballo. El clasificador se entrena utilizando una muestra de ejemplos. Pero no en todas las fotografías mostraban manos, otras no tenían ojos y en la tercera, el mono tenía nariz humana por un error del clasificador. Un clasificador humano capacitado divide automáticamente el espacio de características de tal manera que diga: si la primera característica se encuentra en el rango 0,5 Esencialmente, el objetivo del clasificador es dibujar áreas en el espacio de características que sean características de los objetos de clasificación. Así es como se verá una aproximación secuencial a la respuesta para uno de los clasificadores (AdaBoost) en un espacio bidimensional:


Hay muchos clasificadores. Cada uno de ellos funciona mejor en alguna tarea en particular. La tarea de seleccionar un clasificador para una tarea específica es en gran medida un arte. Aquí hay algunas bellas imágenes sobre el tema.
Caso simple, separación unidimensional.
Veamos un ejemplo del caso más simple de clasificación, cuando el espacio de características es unidimensional y necesitamos separar 2 clases. Esta situación ocurre con más frecuencia de lo que piensas: por ejemplo, cuando necesitas distinguir dos señales o comparar un patrón con una muestra. Tengamos una muestra de entrenamiento. Esto produce una imagen donde el eje X es la medida de similitud y el eje Y es el número de eventos con dicha medida. Cuando el objeto deseado es similar a sí mismo, se obtiene una gaussiana izquierda. Cuando no lo parece, es el indicado. El valor de X=0,4 separa las muestras de modo que una decisión equivocada minimiza la probabilidad de tomar una decisión equivocada. La búsqueda de tal separador es tarea de clasificación.


Una pequeña nota. El criterio que minimice el error no siempre será el óptimo. El siguiente gráfico es un gráfico de un sistema de reconocimiento de iris real. Para tal sistema, el criterio se elige para minimizar la probabilidad de admisión falsa de una persona no autorizada a la instalación. Esta probabilidad se denomina “error tipo I”, “probabilidad de falsa alarma”, “falso positivo”. En la literatura en lengua inglesa “False Access Rate”.
) AdaBusta es uno de los clasificadores más comunes. Sobre él se construye, por ejemplo, la cascada Haar. Suele utilizarse cuando se necesita clasificación binaria, pero nada impide entrenar para un mayor número de clases.
SVM ( , , , ) Uno de los clasificadores más potentes, que tiene muchas implementaciones. Básicamente, en las tareas de aprendizaje que encontré, funcionó de manera similar a Adabusta. Se considera bastante rápido, pero su entrenamiento es más difícil que el de Adabusta y requiere elegir el core adecuado.

También hay redes neuronales y regresión. Pero para clasificarlos brevemente y mostrar en qué se diferencian, necesitamos un artículo mucho más extenso que este.
________________________________________________
Espero haber podido ofrecer una descripción general rápida de los métodos utilizados sin sumergirme en las matemáticas y la descripción. Quizás esto ayude a alguien. Aunque, por supuesto, el artículo está incompleto y no dice una palabra sobre cómo trabajar con imágenes estéreo, ni sobre LSM con filtro de Kalman, ni sobre el enfoque adaptativo de Bayes.
Si te gusta el artículo, intentaré hacer una segunda parte con una selección de ejemplos de cómo se resuelven los problemas existentes de ImageRecognition.

Y finalmente

¿Qué leer?
1) Una vez me gustó mucho el libro "Procesamiento de imágenes digitales" de B. Yane, que está escrito de forma sencilla y clara, pero al mismo tiempo se dan casi todas las matemáticas. Bueno para familiarizarse con los métodos existentes.
2) Un clásico del género es R. González, R. Woods “Digital Image Processing”. Por alguna razón fue más difícil para mí que el primero. Mucho menos matemáticas, pero más métodos e imágenes.
3) “Procesamiento y análisis de imágenes en problemas de visión por computadora”, escrito sobre la base de un curso impartido en uno de los departamentos de Física y Tecnología. Hay muchos métodos y sus descripciones detalladas. Pero en mi opinión, el libro tiene dos grandes desventajas: se centra fuertemente en el paquete de software que lo acompaña, con demasiada frecuencia la descripción de un método simple se convierte en una jungla matemática de la que es difícil salir; derivar el diagrama estructural del método. Pero los autores han creado un sitio web conveniente donde se presenta casi todo el contenido: wiki.technicalvision.ru Agregar etiquetas
¿Qué es la tecnología de reconocimiento de imágenes? Esto es exactamente lo que hace el robot en el ejemplo anterior: percibe la imagen al capturarla, comprende lo que está haciendo la persona y reacciona realizando un movimiento contrario. Por supuesto, los desarrolladores de software estamos más interesados ​​en la parte del programa de reconocimiento de patrones. Entonces, ¿cómo funciona realmente la parte sensora? La respuesta es bastante simple: "matemáticas". Gracias por todas estas explicaciones. Ahora hablemos del Caso A, ¿quieres saber cómo aplicar el reconocimiento de imágenes en la práctica? Por supuesto, no le sorprenderá que el reconocimiento de imágenes tenga el potencial de revolucionar el mundo. En el campo de la salud, por ejemplo, IBM ha comenzado a utilizar tecnología de reconocimiento de imágenes para procesar grandes cantidades de datos médicos. Esto podría ayudar a los médicos a diagnosticar enfermedades más rápido y con mayor precisión. Baidu ha desarrollado un prototipo de DuLight: un producto de reconocimiento de objetos que ayudará a las personas ciegas a “ver” tomando fotografías de su entorno y transmitiendo los datos procesados ​​a través de un auricular. Sin embargo, los productos del campo de la inteligencia artificial suelen estar sujetos a restricciones éticas y legales. Tomemos, por ejemplo, la industria del automóvil y los coches autónomos de Google. La tecnología está lista, pero todavía queda un largo proceso por delante antes de que estas máquinas lleguen al mercado. Su aplicación podrá proporcionar algo más tangible que creará una fuerte conexión emocional. Y como las emociones están estrechamente relacionadas con la memoria, usted tiene la oportunidad de crear una impresión inolvidable de su negocio.

Como tema de investigación en inteligencia artificial, el reconocimiento de imágenes tiene una larga historia y una gran importancia práctica. Se utilizó por primera vez para leer números escritos a mano. Actualmente, el alcance de su aplicación se ha ampliado significativamente: desde la medición, control, clasificación y montaje en procesos de fabricación hasta el análisis de imágenes leídas a distancia, diagnóstico a partir de imágenes médicas, evaluación cuantitativa de datos experimentales, identificación humana, diseño automático, comprensión. imágenes como función visión técnica de robots, etc. El proceso de reconocimiento de imágenes humanas no es un simple procesamiento de información visual, sino un proceso complejo en el que los factores psicológicos juegan un papel importante. En particular, el proceso de comprensión de una imagen implica inferencia semántica, pero su implementación requiere la recopilación de amplios conocimientos y decisiones intuitivas que van más allá de la lógica, por lo que es extremadamente difícil simular tal proceso en una computadora.

Las herramientas de reconocimiento de imágenes existentes utilizan diferentes métodos dependiendo de si el objeto de reconocimiento es artificial o natural. En el primer caso, suelen tratar objetos individuales de forma clara, por lo que un gran número de estudios

Se ocupa de la coincidencia de patrones detectando bordes y aristas o infiriendo formas tridimensionales utilizando reglas geométricas. Entre los objetos naturales, hay muchos objetos de forma irregular con claroscuro, por lo que generalmente, mediante el análisis de conglomerados, se dividen en áreas homogéneas y luego, en función de las características de las formas de estas áreas, se llega a una conclusión sobre el objeto. Además, recientemente se han llevado a cabo muchas investigaciones sobre la reproducción de formas bidimensionales y tridimensionales de objetos basándose en el procesamiento de una gran cantidad de imágenes. En robótica existe la necesidad de procesar imágenes en movimiento en tiempo real, es decir, la velocidad de reconocimiento adquiere gran importancia.

En general, el proceso de reconocimiento de imágenes mediante una computadora es el siguiente.

1. Obtener información de la imagen mediante una cámara u otros medios y convertirla en información digital: como resultado, los fotogramas se dividen en una gran cantidad de elementos y a cada elemento se le asigna color y contraste.

2. Pretratamiento. Eliminación de ruido, normalización para comparación con un estándar, segmentación (seleccionando información local necesaria para el reconocimiento), etc.

3. Extracción de características. Las características de la imagen pueden tener diferentes niveles. Estrictamente hablando, la segmentación también forma parte de la extracción de características. Los métodos de extracción de características pueden ser locales o globales. Un ejemplo de método local es el método de detección de bordes, agrupación global y expansión de regiones. La detección de bordes utiliza discontinuidades entre regiones, mientras que la agrupación es una segmentación basada en la detección de regiones homogéneas. Dado que en cualquier caso la información de la imagen contiene ruido que no se elimina en la etapa de preprocesamiento, la segmentación requiere el procesamiento de información difusa. La extracción de características globales se lleva a cabo en relación con la forma, propiedades, posición relativa y otras características de las áreas seleccionadas. Este procedimiento es de gran importancia para la posterior fase de evaluación.

4. Comprensión y evaluación. El proceso de comprensión de una imagen.

se denominan clasificación e identificación comparando los grupos resultantes con modelos conocidos o construyendo una imagen tridimensional del objeto original mediante inferencias. El resultado de este proceso es el objetivo final del reconocimiento de imágenes.

Actualmente se han realizado numerosos estudios sobre el proceso de reconocimiento de imágenes, pero los resultados siguen siendo extremadamente insatisfactorios. Por ejemplo, prácticamente no se abordaron cuestiones como la comprensión de imágenes complejas, la transformación mutua de información verbal y de video, el reconocimiento de objetos de formas curvilíneas e irregulares, el reconocimiento de imágenes borrosas, la extracción altamente eficiente de características, la inferencia semántica y la imaginación, etc.

Los principales enfoques metodológicos actualmente aceptados en el reconocimiento son la estadística, el análisis de conglomerados, la deducción en lógica bivaliva y muchos otros, pero todos ellos están muy lejos del proceso de reconocimiento característico de los humanos. La extracción de características es el paso más importante en el reconocimiento de imágenes, pero también es extremadamente compleja. De hecho, ¿qué es un atributo de imagen? ¿Por qué una caricatura se parece más a una persona que una fotografía suya? Aparentemente, un papel importante en el proceso de reconocimiento humano lo desempeña la información que parece no ser más que ruido para una computadora, pero que de alguna manera se extrae y presenta. Los signos de este tipo pueden identificarse por los sentimientos de una persona y no por la lógica. Además, a la hora de reconocer imágenes borrosas, no funcionan las capacidades analíticas, sino las capacidades de generalización, es decir, También es un proceso intuitivo. Para simular tales procesos, es necesaria la investigación de métodos para procesar información subjetiva y técnicas para manejar macroinformación. La investigación sobre el reconocimiento de imágenes borrosas apenas está comenzando, pero ya se espera el desarrollo de una nueva metodología que cumpla con los requisitos descritos anteriormente.

Consideremos brevemente el estado del reconocimiento de imágenes borrosas. Dado que la información de vídeo incluso de un objeto bastante claro puede verse alterada por el ruido, la lógica difusa se utiliza con mayor frecuencia para detectar contornos. Un ejemplo típico es la clasificación

elementos de imagen utilizando agrupamiento difuso. Sin embargo, dado que los elementos absolutamente idénticos son raros, es necesaria una agrupación "difusa". Se utilizan métodos similares al clasificar imágenes que tienen una extensión relativa a la imagen de referencia (reconocimiento de caracteres escritos a mano, voz, etc.).

Al detectar contornos directamente surge un problema de ruido que no se puede solucionar completamente con la ayuda de filtros. Además, se necesitan hallazgos para reponer las áreas perdidas. Para ello se utilizan reglas heurísticas que, sin embargo, tienen un carácter cualitativo confuso. Al pasar a la etapa de comprensión de imágenes, surge el problema de una correspondencia difusa más efectiva de imágenes, lo que requiere una comparación no solo en la forma, sino también en la semántica para resolverla. En particular, esta situación se presenta en el campo del diagnóstico por rayos X, donde la formación de reglas es imposible.

A continuación se muestran algunos ejemplos típicos de investigación de reconocimiento de imágenes utilizando lógica difusa.

  • Tutorial

Hace tiempo que quería escribir un artículo general que contenga los conceptos básicos del reconocimiento de imágenes, una especie de guía sobre los métodos básicos, que indique cuándo usarlos, qué problemas resuelven, qué se puede hacer de rodillas por la noche y qué es. mejor no pensar en sin tener un equipo de personas a los 20.

Llevo mucho tiempo escribiendo algunos artículos sobre Reconocimiento Óptico, por lo que un par de veces al mes me escriben varias personas con preguntas sobre este tema. A veces tienes la sensación de que vives con ellos en mundos diferentes. Por un lado, comprende que lo más probable es que la persona sea un profesional en un tema relacionado, pero sabe muy poco sobre los métodos de reconocimiento óptico. Y lo más molesto es que está intentando aplicar un método de un campo de conocimiento cercano, lo cual es lógico, pero no funciona del todo en Reconocimiento de Imágenes, pero no entiende esto y se ofende mucho si empiezas a decirle algo. desde lo más básico. Y teniendo en cuenta que contar desde lo básico requiere mucho tiempo, que a menudo no está disponible, se vuelve aún más triste.

Este artículo está destinado a que una persona que nunca haya trabajado con métodos de reconocimiento de imágenes pueda, en 10 a 15 minutos, crear en su cabeza una determinada imagen básica del mundo que corresponda al tema y comprender en qué dirección excavar. Muchas de las técnicas descritas aquí son aplicables al procesamiento de radar y audio.
Empezaré con un par de principios que siempre empezamos a contarle a un cliente potencial, o a una persona que quiere empezar a hacer Reconocimiento Óptico:

  • A la hora de resolver un problema, parta siempre de lo más simple. Es mucho más fácil ponerle una etiqueta naranja a una persona que seguirla, resaltándola en cascadas. Es mucho más fácil llevar una cámara con una resolución más alta que desarrollar un algoritmo de superresolución.
  • Una formulación estricta del problema en los métodos de reconocimiento óptico es mucho más importante que en los problemas de programación de sistemas: una palabra extra en la especificación técnica puede sumar el 50% del trabajo.
  • No existen soluciones universales a los problemas de reconocimiento. No se puede crear un algoritmo que simplemente "reconozca cualquier inscripción". Un cartel en la calle y una hoja de texto son objetos fundamentalmente diferentes. Probablemente sea posible crear un algoritmo general (un buen ejemplo de Google), pero requerirá mucho trabajo de un equipo grande y constará de docenas de subrutinas diferentes.
  • OpenCV es una biblia que tiene muchos métodos y puede resolver el 50% de casi cualquier problema, pero OpenCV es sólo una pequeña parte de lo que realmente se puede hacer. En un estudio, las conclusiones fueron escritas: "El problema no se puede resolver utilizando métodos OpenCV, por lo tanto, no tiene solución". Intente evitar esto, no sea perezoso y evalúe con seriedad la tarea actual desde cero cada vez, sin utilizar plantillas OpenCV.
Es muy difícil dar un consejo universal o decir cómo crear algún tipo de estructura alrededor de la cual se pueda construir una solución a problemas arbitrarios de visión por computadora. El propósito de este artículo es estructurar lo que se puede utilizar. Intentaré dividir los métodos existentes en tres grupos. El primer grupo es el filtrado preliminar y la preparación de imágenes. El segundo grupo es el procesamiento lógico de los resultados del filtrado. El tercer grupo son los algoritmos de toma de decisiones basados ​​​​en procesamiento lógico. Los límites entre grupos son muy arbitrarios. Para resolver un problema, no siempre es necesario utilizar métodos de todos los grupos; a veces son suficientes dos y, a veces, incluso uno.

La lista de métodos proporcionada aquí no está completa. Sugiero agregar métodos críticos en los comentarios que no escribí y atribuir 2-3 palabras adjuntas a cada uno.

Parte 1. Filtración

En este grupo coloqué métodos que te permiten seleccionar áreas de interés en imágenes sin analizarlas. La mayoría de estos métodos aplican algún tipo de transformación única a todos los puntos de la imagen. A nivel de filtrado no se realiza ningún análisis de la imagen, pero los puntos que pasan el filtrado pueden considerarse como zonas con características especiales.
Binarización por umbral, selección del área del histograma.
La transformación más simple es la binarización de la imagen por umbral. Para imágenes RGB y en escala de grises, el umbral es el valor del color. Hay problemas ideales en los que tal transformación es suficiente. Supongamos que desea seleccionar objetos automáticamente en una hoja de papel blanca:




La elección del umbral en el que se produce la binarización determina en gran medida el proceso de binarización en sí. En este caso, la imagen fue binarizada por el color promedio. Normalmente, la binarización se lleva a cabo mediante un algoritmo que selecciona de forma adaptativa un umbral. Dicho algoritmo puede ser la elección de expectativa o modo. O puede seleccionar el pico más grande del histograma.

La binarización puede dar resultados muy interesantes cuando se trabaja con histogramas, incluso en la situación en la que consideramos una imagen no en RGB, sino en HSV. Por ejemplo, segmente los colores de interés. Según este principio, se pueden construir tanto un detector de etiquetas como un detector de piel humana.
Filtrado clásico: Fourier, filtro de paso bajo, filtro de paso alto
Los métodos clásicos de filtrado de radar y procesamiento de señales se pueden aplicar con éxito a una variedad de tareas de reconocimiento de patrones. Un método tradicional en radar, que casi nunca se utiliza en imágenes en forma pura, es la transformada de Fourier (más específicamente, la FFT). Una de las pocas excepciones en las que se utiliza la transformada unidimensional de Fourier es la compresión de imágenes. Para el análisis de imágenes, una transformación unidimensional generalmente no es suficiente; es necesario utilizar una transformación bidimensional que requiere muchos más recursos.

Pocas personas realmente lo calculan; por lo general, es mucho más rápido y más fácil usar la convolución del área de interés con un filtro ya preparado, sintonizado para frecuencias altas (HPF) o bajas (LPF). Este método, por supuesto, no permite el análisis del espectro, pero en una tarea específica de procesamiento de vídeo, lo que normalmente se necesita no es el análisis, sino el resultado.


Los ejemplos más simples de filtros que enfatizan las bajas frecuencias (filtro gaussiano) y las altas frecuencias (filtro Gabor).
Para cada punto de la imagen, se selecciona una ventana y se multiplica con un filtro del mismo tamaño. El resultado de tal convolución es un nuevo valor en puntos. Al implementar filtros de paso bajo y filtros de paso alto se obtienen imágenes del siguiente tipo:



Ondas
Pero ¿qué pasa si utilizamos alguna función característica arbitraria para la convolución con la señal? Entonces se llamará "transformación Wavelet". Esta definición de wavelets no es correcta, pero tradicionalmente, en muchos equipos, el análisis de wavelets es la búsqueda de un patrón arbitrario en una imagen mediante convolución con un modelo de este patrón. Existe un conjunto de funciones clásicas que se utilizan en el análisis de wavelets. Estos incluyen la onda de Haar, la onda de Morlet, la onda del sombrero mexicano, etc. Las primitivas de Haar, sobre las cuales hubo varios de mis artículos anteriores (,), se relacionan con funciones similares para el espacio bidimensional.


Arriba hay 4 ejemplos de wavelets clásicas. Onda de Haar tridimensional, Onda de Meyer bidimensional, Onda de Sombrero mexicano, Onda de Daubechies. Un buen ejemplo del uso de la interpretación ampliada de las ondas es el problema de encontrar un resplandor en el ojo, para el cual la ondícula es el resplandor mismo:

Las wavelets clásicas se suelen utilizar para su clasificación (que se describirá a continuación).
Correlación
Después de una interpretación tan libre de las wavelets por mi parte, vale la pena mencionar la correlación real que subyace a ellas. Esta es una herramienta indispensable a la hora de filtrar imágenes. Una aplicación clásica es correlacionar una transmisión de video para encontrar cambios o flujos ópticos. El detector de desplazamiento más simple es también, en cierto sentido, un correlador de diferencias. Donde las imágenes no se correlacionaban, había movimiento.

Funciones de filtrado
Una clase interesante de filtros es el filtrado de funciones. Se trata de filtros puramente matemáticos que permiten detectar una función matemática simple en una imagen (línea, parábola, círculo). Se construye una imagen acumulativa, en la que para cada punto de la imagen original se dibujan un conjunto de funciones que la generan. La transformación más clásica es la transformada de Hough para líneas. En esta transformación, para cada punto (x;y), se traza un conjunto de puntos (a;b) de la recta y=ax+b para los cuales la igualdad es verdadera. Obtienes hermosas imágenes:


(el primer plus es para el primero en encontrar un truco en la imagen y esta definición y explicarlo, el segundo plus es para el primero en decir lo que se muestra aquí)
La transformada de Hough le permite encontrar funciones parametrizables. Por ejemplo círculos. Hay una transformación modificada que le permite buscar cualquier archivo . A los matemáticos les gusta muchísimo esta transformación. Pero, lamentablemente, al procesar imágenes no siempre funciona. Velocidad de funcionamiento muy lenta, muy alta sensibilidad a la calidad de la binarización. Incluso en situaciones ideales, prefería conformarme con otros métodos.
Un análogo de la transformada de Hough para líneas rectas es la transformada de radón. Se calcula mediante FFT, lo que proporciona una ganancia de rendimiento en una situación en la que hay muchos puntos. Además, se puede aplicar a una imagen no binarizada.
Filtrado de contorno
Una clase separada de filtros es el filtrado de bordes y contornos. Los contornos son muy útiles cuando queremos pasar de trabajar con una imagen a trabajar con los objetos de esa imagen. Cuando un objeto es bastante complejo, pero bien distinguido, a menudo la única forma de trabajar con él es seleccionar sus contornos. Existen varios algoritmos que resuelven el problema de filtrar contornos:

La mayoría de las veces se utiliza Canny, que funciona bien y cuya implementación está en OpenCV (Sobel también está ahí, pero busca peor los contornos).



Otros filtros
Arriba están los filtros cuyas modificaciones ayudan a resolver el 80-90% de los problemas. Pero además de ellos, hay filtros más raros que se utilizan en tareas locales. Hay docenas de filtros de este tipo, no los enumeraré todos. Son interesantes los filtros iterativos (por ejemplo), así como las transformaciones ridgelet y curvlet, que son una fusión del filtrado y análisis de wavelets clásicos en el campo de la transformada del radón. La transformada beamlet funciona maravillosamente en el límite de la transformada wavelet y el análisis lógico, lo que le permite resaltar contornos:

Pero estas transformaciones son muy específicas y están diseñadas para tareas poco comunes.

Parte 2. Procesamiento lógico de los resultados del filtrado.

El filtrado proporciona un conjunto de datos adecuados para su procesamiento. Pero a menudo no es posible simplemente tomar y utilizar estos datos sin procesarlos. En esta sección habrá varios métodos clásicos que te permitirán pasar de una imagen a las propiedades de los objetos, o a los objetos mismos.
Morfología
La transición del filtrado a la lógica, en mi opinión, son los métodos de la morfología matemática (,). En esencia, estas son las operaciones más simples para hacer crecer y erosionar imágenes binarias. Estos métodos le permiten eliminar el ruido de una imagen binaria aumentando o disminuyendo los elementos existentes. Existen algoritmos de contorneado basados ​​en la morfología matemática, pero normalmente se utilizan algún tipo de algoritmos híbridos o algoritmos combinados.
Análisis de contorno
Los algoritmos para obtener límites ya se mencionaron en la sección de filtrado. Los límites resultantes se convierten simplemente en contornos. Para el algoritmo Canny esto sucede automáticamente; para otros algoritmos se requiere binarización adicional. Puede obtener un contorno para un algoritmo binario, por ejemplo, utilizando el algoritmo del escarabajo.
Un contorno es una característica única de un objeto. Esto a menudo le permite identificar un objeto por su contorno. Existe un poderoso aparato matemático que le permite hacer esto. El dispositivo se llama análisis de contorno (,).

Para ser honesto, nunca he podido aplicar el análisis de contornos en problemas reales. Se requieren condiciones demasiado ideales. O no hay límites o hay demasiado ruido. Pero, si necesita reconocer algo en condiciones ideales, entonces el análisis de contornos es una excelente opción. Funciona muy rápido, hermosas matemáticas y lógica clara.
Puntos especiales
Los puntos singulares son características únicas de un objeto que permiten compararlo consigo mismo o con clases similares de objetos. Hay varias docenas de formas de identificar estos puntos. Algunos métodos identifican puntos especiales en cuadros adyacentes, algunos después de un largo período de tiempo y cuando cambia la iluminación, otros le permiten encontrar puntos especiales que permanecen así incluso cuando se gira el objeto. Empecemos con métodos que nos permiten encontrar puntos especiales, que no son tan estables, pero que se calculan rápidamente, y luego iremos en complejidad creciente:
Clase primera. Puntos especiales que se mantienen estables durante un período de segundos. Estos puntos se utilizan para guiar un objeto entre fotogramas de vídeo adyacentes o para combinar imágenes de cámaras vecinas. Dichos puntos incluyen máximos locales de la imagen, esquinas de la imagen (el mejor de los detectores es, quizás, el detector Charis), puntos en los que se logra la máxima dispersión, ciertos gradientes, etc.
Segunda clase. Puntos especiales que se mantienen estables ante cambios de iluminación y pequeños movimientos del objeto. Estos puntos sirven principalmente para el entrenamiento y posterior clasificación de tipos de objetos. Por ejemplo, un clasificador de peatones o un clasificador de rostros es el producto de un sistema construido precisamente sobre dichos puntos. Algunas de las ondas mencionadas anteriormente pueden ser la base de tales puntos. Por ejemplo, primitivas de Haar, búsqueda de aspectos destacados, búsqueda de otras funciones específicas. Estos puntos incluyen los encontrados mediante el método del histograma de gradientes direccionales (HOG).
Tercer grado. Puntos estables. Sólo conozco dos métodos que proporcionan estabilidad total y sus modificaciones. Esto y. Te permiten encontrar puntos especiales incluso cuando giras la imagen. El cálculo de dichos puntos lleva más tiempo en comparación con otros métodos, pero el tiempo es bastante limitado. Desafortunadamente, estos métodos están patentados. Aunque en Rusia es imposible patentar algoritmos, se utiliza para el mercado interno.

Parte 3. Entrenamiento

La tercera parte de la historia estará dedicada a métodos que no trabajan directamente con la imagen, pero que permiten tomar decisiones. Básicamente se trata de varios métodos de aprendizaje automático y toma de decisiones. Yandyx publicó recientemente en Habr sobre este tema, hay una muy buena selección allí. Aquí está en la versión de texto. Para un estudio serio del tema, recomiendo verlos. Aquí intentaré describir varios métodos principales utilizados específicamente en el reconocimiento de patrones.
En el 80% de las situaciones, la esencia del aprendizaje en la tarea de reconocimiento es la siguiente:
Hay una muestra de prueba que contiene varias clases de objetos. Que sea la presencia/ausencia de una persona en la foto. Para cada imagen hay un conjunto de características que han sido resaltadas por alguna característica, ya sea Haar, HOG, SURF o alguna wavelet. El algoritmo de aprendizaje debe construir un modelo según el cual podrá analizar una nueva imagen y decidir qué objeto está en la imagen.
¿Cómo se hace esto? Cada una de las imágenes de prueba es un punto en el espacio de características. Sus coordenadas son el peso de cada una de las características de la imagen. Sean nuestras señales: “Presencia de ojos”, “Presencia de una nariz”, “Presencia de dos manos”, “Presencia de oídos”, etc... Destacaremos todas estas señales utilizando nuestros detectores existentes, que están entrenados en partes del cuerpo similares a las humanas Para una persona en un espacio así, el punto correcto sería. Para el mono, pon un punto para el caballo. El clasificador se entrena utilizando una muestra de ejemplos. Pero no en todas las fotografías mostraban manos, otras no tenían ojos y en la tercera, el mono tenía nariz humana por un error del clasificador. Un clasificador humano capacitado divide automáticamente el espacio de características de tal manera que diga: si la primera característica se encuentra en el rango 0,5 Esencialmente, el objetivo del clasificador es dibujar áreas en el espacio de características que sean características de los objetos de clasificación. Así es como se verá una aproximación secuencial a la respuesta para uno de los clasificadores (AdaBoost) en un espacio bidimensional:


Hay muchos clasificadores. Cada uno de ellos funciona mejor en alguna tarea en particular. La tarea de seleccionar un clasificador para una tarea específica es en gran medida un arte. Aquí hay algunas bellas imágenes sobre el tema.
Caso simple, separación unidimensional.
Veamos un ejemplo del caso más simple de clasificación, cuando el espacio de características es unidimensional y necesitamos separar 2 clases. Esta situación ocurre con más frecuencia de lo que piensas: por ejemplo, cuando necesitas distinguir dos señales o comparar un patrón con una muestra. Tengamos una muestra de entrenamiento. Esto produce una imagen donde el eje X es la medida de similitud y el eje Y es el número de eventos con dicha medida. Cuando el objeto deseado es similar a sí mismo, se obtiene una gaussiana izquierda. Cuando no lo parece, es el indicado. El valor de X=0,4 separa las muestras de modo que una decisión equivocada minimiza la probabilidad de tomar una decisión equivocada. La búsqueda de tal separador es tarea de clasificación.


Una pequeña nota. El criterio que minimice el error no siempre será el óptimo. El siguiente gráfico es un gráfico de un sistema de reconocimiento de iris real. Para tal sistema, el criterio se elige para minimizar la probabilidad de admisión falsa de una persona no autorizada a la instalación. Esta probabilidad se denomina “error tipo I”, “probabilidad de falsa alarma”, “falso positivo”. En la literatura en lengua inglesa “False Access Rate”.
) AdaBusta es uno de los clasificadores más comunes. Sobre él se construye, por ejemplo, la cascada Haar. Suele utilizarse cuando se necesita clasificación binaria, pero nada impide entrenar para un mayor número de clases.
SVM ( , , , ) Uno de los clasificadores más potentes, que tiene muchas implementaciones. Básicamente, en las tareas de aprendizaje que encontré, funcionó de manera similar a Adabusta. Se considera bastante rápido, pero su entrenamiento es más difícil que el de Adabusta y requiere elegir el core adecuado.

También hay redes neuronales y regresión. Pero para clasificarlos brevemente y mostrar en qué se diferencian, necesitamos un artículo mucho más extenso que este.
________________________________________________
Espero haber podido ofrecer una descripción general rápida de los métodos utilizados sin sumergirme en las matemáticas y la descripción. Quizás esto ayude a alguien. Aunque, por supuesto, el artículo está incompleto y no dice una palabra sobre cómo trabajar con imágenes estéreo, ni sobre LSM con filtro de Kalman, ni sobre el enfoque adaptativo de Bayes.
Si te gusta el artículo, intentaré hacer una segunda parte con una selección de ejemplos de cómo se resuelven los problemas existentes de ImageRecognition.

Y finalmente

¿Qué leer?
1) Una vez me gustó mucho el libro "Procesamiento de imágenes digitales" de B. Yane, que está escrito de forma sencilla y clara, pero al mismo tiempo se dan casi todas las matemáticas. Bueno para familiarizarse con los métodos existentes.
2) Un clásico del género es R. González, R. Woods “Digital Image Processing”. Por alguna razón fue más difícil para mí que el primero. Mucho menos matemáticas, pero más métodos e imágenes.
3) “Procesamiento y análisis de imágenes en problemas de visión por computadora”, escrito sobre la base de un curso impartido en uno de los departamentos de Física y Tecnología. Hay muchos métodos y sus descripciones detalladas. Pero en mi opinión, el libro tiene dos grandes desventajas: está muy centrado en el paquete de software que lo acompaña, y con demasiada frecuencia la descripción de un método simple se convierte en una jungla matemática de la que es difícil salir; derivar el diagrama estructural del método. Pero los autores han creado un sitio web conveniente donde se presenta casi todo el contenido: wiki.technicalvision.ru Agregar etiquetas


Arriba