/ / Visión por computadora moderna. Problemas y tecnologías de la visión artificial. Programación de visión artificial en Python

Visión por computadora moderna. Problemas y tecnologías de la visión artificial. Programación de visión artificial en Python

Cómo enseñarle a una computadora a comprender lo que se representa enimagen o fotografía? Nos parece simple, pero para una computadora es solo una matriz de ceros y unos, de la cual necesitas extraer información importante.

visión por computador

¿Qué es la visión por computadora? Esta es la capacidad de la computadora para "ver"

La visión es una fuente importante de información parapersona, con su ayuda recibimos, según diversas fuentes, del 70 al 90% de toda la información. Y, por supuesto, si queremos crear un automóvil inteligente, debemos implementar las mismas habilidades en una computadora.

La tarea de la visión por computadora puede serestá formulado de forma bastante vaga. ¿Qué es "ver"? Es entender qué es dónde, con solo mirar. Ésta es la diferencia entre la visión por computadora y la visión humana. Para nosotros, la visión es una fuente de conocimiento sobre el mundo, así como una fuente de información métrica, es decir, la capacidad de comprender distancias y tamaños.

Núcleo semántico de la imagen

Mirando la imagen, podemos caracterizarla según una serie de características, por así decirlo, extraer información semántica.

pitón de visión por computadora

Por ejemplo, mirando esta foto, podemosdecir que está al aire libre. Que esto es una ciudad, tráfico. Que hay carros aqui. Por la configuración del edificio y por los jeroglíficos, podemos adivinar que se trata del sudeste asiático. Por el retrato de Mao Zedong, entendemos que esto es Beijing, y si alguien ha visto las transmisiones de video o ha estado allí, podrá adivinar que esta es la famosa Plaza de Tiananmen.

¿Qué más podemos decir sobre la imagen mirando¿su? Podemos resaltar objetos en la imagen, digamos, hay personas allí, aquí más cerca, una cerca. Aquí están los paraguas, aquí está el edificio, aquí están los carteles. Estos son ejemplos de clases de objetos muy importantes que se están buscando actualmente.

También podemos extraer algunos signos o atributos de objetos. Por ejemplo, aquí podemos determinar que este no es un retrato de algunos chinos comunes, a saber, Mao Zedong.

Por el coche puedes determinar de qué se trata.un objeto en movimiento, y es rígido, es decir, no se deforma durante el movimiento. De las banderas podemos decir que estos son objetos, también se mueven, pero no son rígidos, se deforman constantemente. Y también hay viento en la escena, esto puede ser determinado por la bandera ondeando, e incluso puedes determinar la dirección del viento, por ejemplo, sopla de izquierda a derecha.

El valor de las distancias y longitudes en la visión por computadora

La información métrica es muy importante en la ciencia de la visión por computadora. Son distancias de todo tipo.Por ejemplo, para un rover, esto es especialmente importante, porque los comandos de la Tierra tardan unos 20 minutos y la respuesta es la misma. En consecuencia, la conexión de ida y vuelta es de 40 minutos. Y si elaboramos un plan de movimiento de acuerdo con los comandos de la Tierra, entonces debemos tener esto en cuenta.

 pdf de visión por computadora

Tecnología de visión por computadora exitosaintegrado en videojuegos. A partir del video, puede crear modelos tridimensionales de objetos, personas y, a partir de las fotos de los usuarios, puede restaurar modelos tridimensionales de ciudades. Y luego camina junto a ellos.

Visión por computador Es un área bastante amplia. Está estrechamente entrelazado con varias otras ciencias. Visión parcial por computadora captura el área de procesamiento de imágenes y, a veces, resalta el área de visión artificial, históricamente sucedió.

Análisis, reconocimiento de patrones: la forma de crear una mente superior

Analicemos estos conceptos por separado.

métodos de visión por computadora

El procesamiento de imágenes es el área de los algoritmos donde la entrada y la salida es una imagen, y ya estamos haciendo algo con ella.

El análisis de imágenes es un área de la visión por computadora que se enfoca en trabajar con una imagen bidimensional y saca conclusiones de ella.

El reconocimiento de patrones es abstractouna disciplina matemática que reconoce los datos como vectores. Es decir, hay un vector en la entrada y debemos hacer algo con él. De dónde proviene este vector, no es tan importante para nosotros saberlo.

La visión por computadora fue originalmentereconstrucción de la estructura a partir de imágenes bidimensionales. Ahora esta área se ha vuelto más amplia y se puede interpretar en general como una toma de decisiones sobre objetos físicos basados ​​en la imagen. Es decir, esta es la tarea de la inteligencia artificial.

Paralelamente a la visión por computadora, en un campo completamente diferente, en la geodesia, se desarrolló la fotogrametría: esta es la medición de distancias entre objetos utilizando imágenes bidimensionales.

Los robots pueden "ver"

Y el último es la visión artificial. La visión artificial se refiere a la visión de los robots. Es decir, la solución de algunos problemas de producción. Podemos decir que la visión por computadora - esta es una gran ciencia. Combina algunas otras ciencias en parte. Y cuando la visión artificial recibe una aplicación específica, se convierte en visión artificial.

tareas para sistemas de visión artificial

El campo de la visión por computadora tiene una masaaplicaciones prácticas. Está asociado a la automatización de la producción. En las empresas, se está volviendo más eficiente reemplazar el trabajo manual por trabajo mecánico. La máquina no se cansa, no duerme, tiene un horario de trabajo irregular, está lista para trabajar los 365 días del año. Entonces, utilizando mano de obra mecánica, podemos obtener un resultado garantizado en un momento determinado, y esto es bastante interesante. Todas las tareas para los sistemas de visión por computadora tienen una aplicación visual. Y no hay nada mejor que ver el resultado directamente desde la imagen, solo en la etapa de cálculos.

A las puertas del mundo de la inteligencia artificial

Además, ¡la zona es difícil!Una parte importante del cerebro es responsable de la visión, y se cree que si le enseñas a una computadora a "ver", es decir, a aplicar completamente la visión por computadora, entonces esta es una de las tareas completas de la inteligencia artificial. Si podemos resolver el problema a nivel humano, lo más probable es que resolvamos el problema de la IA al mismo tiempo. ¡Que es muy bueno! O no muy bien si ves Terminator 2.

¿Por qué es difícil la visión? Porque la imagen de los mismos objetos puede variar mucho en función de factores externos. Los objetos se ven diferentes según los puntos de observación.

Por ejemplo, una misma figura tomada de diferentesanglos. Y lo más interesante es que una figura puede tener un ojo, dos ojos o uno y medio. Y dependiendo del contexto (si se trata de una foto de una persona con una camiseta con los ojos dibujados), entonces puede haber más de dos ojos.

La computadora aún no comprende, pero ya "ve"

Otro factor que crea dificultades esEncendiendo. La misma escena con diferente iluminación se verá diferente. El tamaño de los objetos puede variar. Además, objetos de cualquier clase. Bueno, ¿cómo se puede decir de una persona que mide 2 metros? De ninguna manera. La altura de una persona puede ser de 2,3 my 80 cm, pero al igual que los objetos de otro tipo, son objetos de la misma clase.

ejemplos de visión por computadora

Especialmente los objetos vivos son los que másvarias deformaciones. Cabello de personas, deportistas, animales. Mire imágenes de caballos corriendo, es simplemente imposible determinar qué está sucediendo con su crin y cola. ¿Qué pasa con la superposición de objetos en la imagen? Si desliza una imagen de este tipo en una computadora, incluso la máquina más poderosa tendrá dificultades para dar la solución correcta.

programa de visión por computadora

El siguiente tipo es el disfraz.Algunos objetos, animales, se disfrazan del medio ambiente, y con bastante habilidad. Y las manchas son iguales y los colores. Sin embargo, los vemos, aunque no siempre de lejos.

Otro problema es el movimiento. Los objetos en movimiento sufren deformaciones inimaginables.

Muchos objetos son muy variables. Aquí, por ejemplo, en las dos fotos siguientes hay objetos del tipo "sillón".

programación de visión por computadora en python

Y puedes sentarte en esto.Pero es muy difícil enseñarle a un automóvil que cosas tan diferentes en forma, color, material son todos objetos de la "silla". Ésta es la tarea. Integrar métodos de visión artificial es enseñar a una máquina a comprender, analizar, asumir.

 diferencias entre la visión por computadora y la visión humana

Integración de visión artificial en varias plataformas.

La visión por computadora comenzó a penetrar en las masas inclusoen 2001, cuando se crearon los primeros detectores de rostros. Esto fue hecho por dos autores: Viola, Jones. Fue el primer algoritmo rápido y razonablemente robusto que demostró el poder del aprendizaje automático.

Ahora la visión por computadora tiene una aplicación práctica bastante nueva: el reconocimiento facial.

campos de visión de la computadora

Pero reconocer a una persona, como se muestra enpelículas, en ángulos arbitrarios, con diferentes condiciones de iluminación, es imposible. Pero para resolver el problema, ya sea una o diferentes personas con diferente iluminación o en diferentes posiciones, similares, como en la fotografía del pasaporte, puede hacerlo con un alto grado de confianza.

Los requisitos para las fotografías de pasaporte se deben en gran medida a la peculiaridad de los algoritmos de reconocimiento facial.

Por ejemplo, si tiene un pasaporte biométrico, en algunos aeropuertos modernos puede usar el sistema de control automático de pasaportes.

El problema no resuelto de la visión por computadora es la capacidad de reconocer texto arbitrario.

Alguien pudo haber usado el sistemaLOC. Uno de ellos es Fine Reader, que es un sistema muy popular en Runet. Hay muchos formularios donde hay que rellenar datos, están perfectamente escaneados, la información es reconocida por el sistema muy bien. Pero con texto libre en la imagen, la situación es mucho peor. Esta tarea sigue sin resolverse.

Juegos que involucran visión por computadora, captura de movimiento

Se crea un área grande separadaModelos 3D y captura de movimiento (que se implementa con bastante éxito en los juegos de computadora). El primer programa que utiliza la visión por computadora es un sistema para interactuar con una computadora mediante gestos. Durante su creación, se descubrieron muchas cosas.

El algoritmo en sí es bastante simple, pero para élSe requiere personalización para crear un generador de imágenes artificiales de personas para obtener un millón de imágenes. La supercomputadora los usó para seleccionar los parámetros del algoritmo, según el cual ahora funciona de la mejor manera.

Eso es un millón de imágenes y una semana contandoEl tiempo de supercomputadora permitió crear un algoritmo que consume el 12% de la potencia de un procesador y le permite percibir la postura de una persona en tiempo real. Este es el sistema Microsoft Kinect (2010).

programa de computadora para la visión

La búsqueda de imágenes por contenido le permite cargar una foto en el sistema y, como resultado, devolverá todas las imágenes con el mismo contenido y tomadas desde el mismo ángulo.

Ejemplos de visión por computadora: ahora se están haciendo mapas en 3D y 2D con él. Los mapas para navegadores de automóviles se actualizan periódicamente de acuerdo con los datos de los DVR.

Existe una base de datos con miles de millones de fotos degeoetiquetas. Al cargar una imagen en esta base de datos, puede determinar dónde se tomó e incluso desde qué ángulo. Naturalmente, siempre que el lugar sea lo suficientemente popular como para que en algún momento los turistas lo hayan visitado y tomado varias fotografías de la zona.

Los robots están en todas partes

La robótica está en todas partes hoy, sin ellade ninguna manera. Ahora hay autos en los que hay cámaras especiales que reconocen a los peatones y señales de tránsito para enviar comandos al conductor (en cierto sentido, un programa de computadora para la visión que ayuda al entusiasta de los autos). Y hay autos robóticos totalmente automatizados, pero no pueden confiar solo en un sistema de cámara de video sin usar mucha información adicional.

Una cámara moderna es análoga a una cámara estenopeica

Hablemos de imágenes digitales.Las cámaras digitales modernas están diseñadas como una cámara estenopeica. Solo que en lugar de un orificio a través del cual penetra un rayo de luz y proyecta el contorno de un objeto en la pared posterior de la cámara, tenemos un sistema óptico especial llamado lente. Su tarea es recolectar un gran haz de luz y transformarlo de tal manera que todos los rayos pasen por un punto virtual para obtener una proyección y formar una imagen en una película o matriz.

visión por computador

Cámaras digitales modernas (matriz)constan de elementos individuales: píxeles. Cada píxel le permite medir la energía de la luz que cae sobre este píxel en total y generar un número en la salida. Por lo tanto, en una cámara digital, en lugar de una imagen, recibimos un conjunto de medidas del brillo de la luz que ha caído en un píxel separado: los campos de visión de la computadora. Por lo tanto, cuando se amplía la imagen, no vemos líneas suaves y contornos claros, sino una cuadrícula de cuadrados pintados en diferentes tonos: píxeles.

A continuación se muestra la primera imagen digital del mundo.

visión por computador

Pero, ¿qué le falta a esta imagen? Color. ¿Qué es el color?

Percepción psicológica del color

El color es lo que vemos.El color de un objeto, el mismo objeto para una persona y un gato será diferente. Dado que nosotros (los humanos) y los animales tenemos un sistema óptico diferente: la visión. Por tanto, el color es una propiedad psicológica de nuestra visión que se produce al observar objetos y luz. No es una propiedad física de un objeto y una luz. El color es el resultado de la interacción de los componentes de la luz, la escena y nuestro sistema visual.

tecnología de visión por computadora

Programación de visión artificial en Python con bibliotecas

Si decides estudiar seriamentevisión por computadora, vale la pena prepararse de inmediato para una serie de dificultades, esta ciencia no es la más fácil y esconde una serie de escollos. Pero Computer Vision Programming in Python de Jan Erik Solem es un libro que pone todo de la manera más simple posible. Aquí se familiarizará con los métodos para reconocer varios objetos en 3D, aprenderá a trabajar con imágenes estéreo, realidad virtual y muchas otras aplicaciones de visión por computadora. Hay suficientes ejemplos en Python en el libro. Pero las explicaciones se presentan, por así decirlo, de forma generalizada, para no sobrecargar información demasiado científica y difícil. El trabajo es adecuado para estudiantes, solo aficionados y entusiastas. Puede descargar este libro y otros sobre visión por computadora (formato pdf) en la red.

Por el momento hay una biblioteca abiertaalgoritmos de visión artificial, así como procesamiento de imágenes y algoritmos numéricos OpenCV. Está implementado en la mayoría de los lenguajes de programación modernos y es de código abierto. Si hablamos de visión por computadora, utilizando Python como lenguaje de programación, entonces también cuenta con el soporte de esta biblioteca, además, está en constante evolución y cuenta con una gran comunidad.

Microsoft proporciona suServicios de API que pueden entrenar redes neuronales para trabajar con imágenes faciales. También es posible utilizar la visión por computadora, utilizando Python como lenguaje de programación..