La visión por ordenador es actualmente uno de los enfoques de procesamiento digital que más rápidamente se está desarrollando en el mundo. Utiliza diferentes métodos para resolver miles de tareas específicas relacionadas con el reconocimiento de patrones, el análisis de imágenes y el procesamiento de imágenes. Con esta tecnología, las máquinas pueden encontrar, rastrear, clasificar e identificar objetos. Además, junto con la búsqueda de regularidades y patrones, también permite la extracción de datos de imágenes y vídeos mediante el análisis de un número X de determinadas imágenes con diversos sistemas y algoritmos de visión por ordenador.
Como ya sabrá, el equipo de Redwerk siempre se mantiene atento a las innovaciones tecnológicas y está dispuesto a explorar nuevas áreas en el desarrollo de software. ¡Así que ahora es el momento de la visión por ordenador! Hemos decidido investigar más a fondo este tema, probarlo por nuestra cuenta y averiguar qué pueden hacer las buenas empresas gracias a la “herramienta” de visión por ordenador.
Casos de uso de la visión por ordenador
Las modernas tecnologías de visión por ordenador se utilizan en diversas empresas a nivel de consumidor para simplificar la rutina de trabajo, hacerla más eficaz o simplemente por diversión. Todos los días nos topamos con la visión por ordenador cuando, por ejemplo, vemos carteles digitales con marcadores infrarrojos para el mapeo dinámico de proyecciones, o, utilizamos aplicaciones y cámaras de realidad aumentada, o cuando los sistemas de luz y temperatura se encienden y se adaptan en respuesta a nuestros movimientos. Y esta lista es mucho más amplia.
En la industria del automóvil, la tecnología de visión por ordenador se utiliza para el reconocimiento de matrículas con fines policiales, el cobro de peajes y multas electrónicas y el seguimiento de vehículos no matriculados. Las matrículas de los vehículos se leen mediante el reconocimiento óptico de caracteres en las imágenes proporcionadas por las cámaras de las normas de circulación u otros medios de observación. Esta tecnología funciona en cualquier momento del día y ofrece un control total del tráfico. Además, la visión por ordenador se utiliza para el control remoto inteligente de coches, aviones, drones y otras máquinas. Grandes empresas como Tesla, Volvo, Audi, BMW y Mercedes-Benz la utilizan como una de las tecnologías centrales de los coches semiautónomos y totalmente autónomos. Sus sistemas perciben el entorno del coche, las marcas del carril, los vehículos, utilizan el reconocimiento facial del conductor, la lectura de los labios, el seguimiento de la mirada y el lenguaje natural para mejorar la conducción asistida y ayudar a evitar colisiones y situaciones difíciles.
La visión por ordenador también se utiliza ampliamente para el entretenimiento, en aplicaciones de consumo, por ejemplo. Ahora hay muchas soluciones de software que utilizan la detección de rostros, el emparejamiento de caras, la forma del cuerpo humano y el análisis de las emociones con fines de seguridad y entretenimiento. Por ejemplo, la detección de rostros se utiliza en muchas aplicaciones móviles populares, en particular, en las historias de Instagram, o en Snapchat para embellecer los selfies o hacer avatares temáticos. La aplicación reconoce e identifica partes faciales específicas como los ojos, las cejas, el iris, las fosas nasales y las comisuras de la boca, y luego les impone un determinado patrón o realiza ciertas acciones. Si necesita reconocer a la persona que aparece en la foto, la tecnología de comparación de rostros puede hacerlo fácilmente. En primer lugar, verifica la existencia de los diferentes rasgos faciales, luego mide la simetría del rostro y hace coincidir los resultados con los rostros propios. Se trata de la misma tecnología utilizada para la función Face ID en los dispositivos iPhone X. Utiliza una cuadrícula de puntos infrarrojos que se proyecta sobre el rostro del usuario y crea un mapa facial en 3D del usuario que luego se coteja con el patrón existente en el sistema.
Hablando del análisis de las emociones, ahora se utiliza ampliamente en diferentes ámbitos: robótica, medicina, seguridad, industrias de vídeo y juegos, etc. Ayuda a predecir las acciones de las personas (por ejemplo, la TSA autoescanea a los pasajeros de las aerolíneas en busca de signos de terrorismo), las empresas pueden juzgar las respuestas emocionales de la audiencia en el marketing y la investigación científica, las organizaciones gubernamentales pueden detectar las emociones de culpa, miedo e incertidumbre para influir en la gente. Por cierto, el Animoji del iPhone X analiza las emociones para imitar sus expresiones faciales en los personajes Emoji.
La industria más significativa para el uso de la visión por ordenador es la medicina. El reconocimiento de los datos de las imágenes médicas proporciona un mejor diagnóstico, tratamiento y predice las enfermedades. Con esta tecnología, un ordenador puede determinar la textura, la forma y el contorno en la imagen, y proporcionar información en 3D y 4D para comprender mejor el cuerpo humano. Los sistemas de seguimiento ocular permiten a las personas discapacitadas navegar y controlar los ordenadores con los ojos, así como, realizar las llamadas telefónicas habituales, escribir mensajes, jugar y utilizar las redes sociales.
De hecho, la visión por ordenador se puede utilizar en todas partes y puede detectar y reconocer casi cualquier objeto y operar con él, por lo que cada año, está apareciendo una gran cantidad de startups, aplicaciones y soluciones que utilizan esta tecnología para sus proyectos. Nuestro equipo tiene su propia experiencia en el desarrollo de proyectos de visión por ordenador, y tenemos algo que compartir con usted.
La experiencia de Redwerk en visión por ordenador
Pero no es más que una teoría hasta que la pruebe. Así pues, esto es lo que hemos descubierto, mientras investigábamos y practicábamos en el área de la visión por ordenador:
- reconocimiento de edificios;
- definición de contornos de contraste;
- colocación de efectos visuales sobre objetos;
- creación de efectos con reproducción de vídeo;
Aquí describimos algunos de ellos y compartimos los resultados que recibimos.
Reconocimiento de edificios
En el caso del reconocimiento de edificios, necesitábamos encontrar un rectángulo que describiera e identificara el edificio y un polígono en los bordes de su superficie, luego transferimos las coordenadas correspondientes a Unity para la creación de efectos posteriores. En esta tarea, utilizamos varios algoritmos clave para: eliminar el ruido de una foto, aumentar el contraste, eliminar las ranuras de un mapa de bits, encontrar el horizonte y los lados del edificio, detectar el rectángulo del edificio, analizar los límites y construir líneas basadas en los vértices de un polígono. Como resultado, llegamos a la conclusión de que los edificios individuales de gran altura sobre un fondo monofónico se definen mejor. Si las condiciones atmosféricas de la foto son malas, o el edificio tiene una forma o una estructura inusual, el reconocimiento puede verse significativamente deteriorado. Para mejorar los resultados, se puede aplicar la definición de la iluminación en la foto y, en función de ella, elegir el contraste deseado.
Definición del contorno del contraste
Estudiando las capacidades de la visión por ordenador, tuvimos la tarea de identificar los contornos de los objetos situados en el fondo de contraste. Como muestra el ejemplo, tomamos la imagen de un teclado sobre la superficie de la mesa y utilizamos la tecnología de desenfoque para eliminar el fondo. En este caso, lo ideal era aplicar el desenfoque gaussiano, con un núcleo simple y la indicación del radio que corresponde a las dimensiones de la imagen original. Utilizamos el desenfoque gaussiano porque es más complicado que otras funciones de desenfoque, pero proporciona el mejor resultado y elimina el ruido sin destruir significativamente los contornos del objeto.
Colocación de efectos visuales sobre los objetos
Para llevar a cabo esta tarea, primero utilizamos la tecnología de definición de contornos por contraste para recibir la máscara binaria del objeto necesario en un vídeo, que luego se transfirió a Unity para utilizarla en los sombreadores. Para crear efectos visuales, escribimos algunos sombreadores con diferentes conjuntos de parámetros y creamos 3 capas. La primera capa posterior se mantuvo sin cambios para reproducir el vídeo de una cámara a través de ella, la segunda capa contenía efectos y objetos, la tercera, duplicaba parcialmente las imágenes de la cámara, recortando así el objeto. Preparamos varios efectos 2D sencillos, como corazones y sonrisas, para probar su subida por detrás de la imagen del teclado en el vídeo. Compruebe el resultado
Creación de efectos con reproducción de vídeo
Basándonos en el algoritmo de definición de contornos, teníamos la tarea de crear dos tipos de efectos: cuando el fondo bajo el objeto es sustituido por el vídeo, y cuando el vídeo se reproduce sobre el propio objeto. Inicialmente, planeamos reconocer la zona mediante el análisis del color.
Encontramos el color real en la pantalla y sustituimos esta zona por un flujo de vídeo. Pero bajo una iluminación diferente, la imagen podía cambiar su saturación de color, por lo que era difícil mantener el color real en el foco. Por ello, intentamos mejorar ligeramente el algoritmo reduciendo la gama de colores de una imagen mediante el algoritmo de cuantificación del color. Como los resultados no eran satisfactorios, decidimos crear un marcador que permitiera a los usuarios elegir por sí mismos el área necesaria y, a continuación, utilizar un rastreador y controlar el movimiento del área seleccionada. ¡Veamos cómo funciona!
Conclusión
Estudiar las tecnologías de visión por ordenador y su uso para diferentes negocios fue una experiencia interesante para nosotros. Marcamos que esta innovación puede aplicarse en casi cualquier industria para resolver diversas tareas, pero requiere un enfoque específico de la arquitectura de construcción y del desarrollo del producto. Redwerk cuenta con especialistas talentosos y calificados en el equipo que siempre explora nuevas tecnologías para utilizarlas en proyectos de clientes e internos. Así que, si está interesado en la visión por ordenador, ¡podemos dar vida a sus ideas!
Acerca de Redwerk
Redwerk es un equipo de expertos certificados que pone a disposición de las empresas un servicio de externalización informática de alta calidad que busca un producto robusto, estable e impresionante. Redwerk es una empresa de desarrollo de software a medida, que contrata a maestros de su oficio con un enfoque proactivo para ofrecer exactamente lo que el cliente requiere. Apreciamos a los que confían en nosotros, ¡así que sea usted quien lo haga!