Instalación de OpenCV

Artículo nº 1 de la serie de 8 artículos sobre Visión Artificial

    opencv_logoOpenCV es una biblioteca libre de visión artificial originalmente desarrollada por Intel. Desde que apareció su primera versión alfa en el mes de enero de 1999, se ha utilizado en infinidad de aplicaciones: desde sistemas de seguridad con detección de movimiento, hasta aplicaciones de control de procesos en los que se requiere reconocimiento de objetos. Esto se debe a que su publicación se da bajo licencia BSD, que permite que sea usada libremente para propósitos comerciales y de investigación con las condiciones en ella expresadas. Leer el resto de este artículo »

    Reconocimiento básico de objetos con OpenCV

    Artículo nº 2 de la serie de 8 artículos sobre Visión Artificial

      Uno de los aspectos más importantes de la visión artificial es sin duda el reconocimiento de objetos, de patrones, o identificación de figuras y formas. Este reconocimiento puede ir desde ejemplos muy simples (reconocer en una imagen el único objeto de color rojo), hasta posibilidades muy complejas y útiles que aún hoy son prácticamente imposibles (como cámaras de aeropuerto que detecten terroristas automáticamente reconociendo su cara). Este problema plantea un gran reto, pero son infinitas sus posibilidades y aplicaciones. En un futuro se plantea que los robots humanoides tengan un sistema avanzado de reconocimiento de objetos, siendo capaz como los humanos de reconocer a las personas por sus caras, y los demás objetos de su entorno. Leer el resto de este artículo »

      Segmentación básica en OpenCV

      Artículo nº 3 de la serie de 8 artículos sobre Visión Artificial

        Robot_CamaraYa hemos visto un artículo sobre reconocimiento básico de objetos con OpenCV, esta vez queremos ir un paso más allá, siendo capaces de diferenciar dos objetos del mismo color. Leer el resto de este artículo »

        Navegación esquivando obstáculos: RobotC

        Artículo nº 4 de la serie de 8 artículos sobre Visión Artificial

          DistanciaEn artículos anteriores como el artículo sobre reconocimiento básico de objetos con OpenCV y el artículo sobre segmentación básica en OpenCV hemos visto como detectar distintos objetos de color determinado en una imagen, e incluso calcular sus puntos medios y distancias entre ellos. En el artículo de hoy vamos a aplicar todos estos conocimientos para realizar un ejemplo práctico en el que gracias a dos imágenes tomadas por la cámara sabremos dónde se encuentran dos bolas rojas respecto al Robot, y lograremos esquivarlas con el robot mientras se mueve en línea recta. Leer el resto de este artículo »

          Distancias entre colores de LEGO

          Artículo nº 5 de la serie de 8 artículos sobre Visión Artificial

          RGBEn artículos anteriores hemos visto cómo diferenciar colores en una imagen. Por ejemplo, cuando en una imagen teníamos una pelota azul y una roja las podíamos distinguir por sus valores RGB sin mucho problema; en este caso nos valía con que tuviera un valor de rojo o azul alto y bajos los demás para saber si era roja o azul. Sin embargo, cuando tenemos muchos más colores el problema se complica. Por ejemplo, si hay dos tonos de rojo, ¿cómo sabemos si el píxel que acabamos de detectar pertenece a uno o a otro?. El problema se agrava teniendo en cuenta que tenemos que dejar un margen en los valores RGB del color que buscamos, ya que las condiciones de iluminación o la calidad de la foto pueden variar bastante estos valores. Leer el resto de este artículo »

          Reconocimiento de piezas de distintos colores (I)

          Artículo nº 6 de la serie de 8 artículos sobre Visión Artificial

          2010 LEGO color paletteEn el artículo anterior vimos como, teniendo un conjunto de colores, hallar la distancia mínima entre ellos, lo que nos sirve para calcular posteriormente un umbral aceptable que nos sirve para distinguir distintos colores por su RGB. En este artículo vamos a aplicar estos conocimientos a un programa que sea capaz de detectar varias piezas de diferentes colores, algunos de ellos muy parecidos. Si fueramos capaces de distinguir una pieza de determinado color entre piezas de más de diez colores distintos sería una gran hazaña, pues significaría que el programa tendría muchas aplicaciones. Leer el resto de este artículo »

          Manejo de imagenes y shift register en LabVIEW

          Artículo nº 7 de la serie de 8 artículos sobre Visión Artificial

          Shift Register 5En el artículo del Lunes vimos como recorrer imágenes con LabVIEW. Para ello necesitábamos un bucle anidado que podíamos recorrer gracias a que teníamos la información de la altura, la anchura y el color de la imagen. A la hora de manejar bucles muchas veces nos interesa saber los resultados de operaciones en iteraciones anteriores para poder manejarlos y operar con ellos, aquí es donde entran los Shift Register, que guardan la información que queramos de una iteración anterior para que podamos usarla cuando queramos. En el artículo de hoy vamos a crear una nueva imagen a partir de la información que saquemos de una que ya tengamos. Leer el resto de este artículo »

          Sigue líneas con visión, usando cámara iPhone

          Artículo nº 8 de la serie de 8 artículos sobre Visión Artificial

          iphone3gTras una buena cantidad de artículos sobre visión artificial llega por fin el esperado sigue líneas con visión. Las dificultades que implica el manejo de imágenes en tiempo real son muchas, sobre todo el retardo entre que la cámara capta la imagen y nosotros la procesamos y enviamos los datos por bluetooth. Estamos utilizando la cámara de un iPhone 3G conectada mediante wifi al ordenador, enviado imágenes gracias al programa Pocket Cam. Capturamos imágenes periódicamente gracias al programa Yawcam, y las procesamos con LabVIEW, que finalmente enviará las ordenes necesarias al NXT mediante Bluetooth. Leer el resto de este artículo »