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

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. Seguir leyendo →

Manejo de imágenes con LabVIEW

Cono_HSVEn artículos anteriores de Visión Artificial hemos visto cómo manejar y procesar imágenes con OpenCV. También hemos visto la dificultad de pasar de los cálculos en OpenCV a acciones del robot, ya que teníamos que guardar los datos en un fichero, descargarlos al NXT, y procesarlos con RobotC u otro entorno. Sin embargo es posible procesar imágenes con LabVIEW, lo que es de gran utilidad ya que desde LabVIEW podemos además manejar al NXT directamente. Esto nos puede servir para procesar las imágenes que tome una cámara en tiempo real, lo que tiene muchas aplicaciones prácticas. Seguir leyendo →

Reconocimiento de piezas de distintos colores (I)

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. Seguir leyendo →

Distancias entre colores de LEGO

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. Seguir leyendo →

Deteccion y esquiva de obstáculos: RobotC

DistanciaDeteccion y navegación esquivando objetos

En 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 cómo realizar una deteccion de objetos de un determinado color 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. Seguir leyendo →

Reconocer objetos con OpenCV

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. Seguir leyendo →

Instalando OpenCV

Instalando 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. Seguir leyendo →