ImageImageImageImage
Hazte Socio (El Foro siempre Gratis)
Paga con Tarjetas+ Info www.arde.cc/socios

Visión artificial

Foro donde postear temas generales de programación

Moderator: Junta Directiva

Post Reply
User avatar
Mif
Usuario Desarrollador
Usuario Desarrollador
Posts: 1094
Joined: Thu Mar 23, 2006 6:24 pm
Nombre: Ángel
Location: Madrid
Contact:

Visión artificial

Post by Mif » Wed Jun 07, 2006 1:13 am

Como ya estoy de medio vacaciones, pero a la vez no tengo demasiados medios técnicos, me dedico a recopilar datos y a procesarlos como puedo en mi cabecilla, para poder hacer cosas en verano.

Como sabeis estoy con el tema del Bluetooth... a falta de hacer algunas pruebas con otro ordenador, el tema del TouchPad... necesito más medios que mi portatil... y... ahora viene el proyecto guapi guapi... Visión artificial con una simple webcam, entonces aqui vienen mis preguntas y aclaraciones:
·Sé que es posible, porque si no me equivoco Golfus Hispanicus lo emplea, asi como otros proyectos como los de esta chiquita tan maja: Mavis
·¿Cómo se empieza en este mundito?
·¿Qué librerías usais para obtener imágenes de la webcam?
·¿Qué librerías usais para procesar la imagen?
·¿Es imprescindible programar el sistema en C?
·¿Tenemos algun proyecto de ejemplo?

Yo estoy comenzando con la librería WebCam.dll, pero me temo que es muy incompleta, y además consume demasiados recursos comparándolo con el proyecto de Mavis. Aun así, tengo un programa hecho que lo único que tiene es un botón, con el que al pulsarlo, se copia la imágen de la webcam en un control PictureBox... me imagino que es un primer paso en este mundo, y que me quedan miles de caminos que recorrer, pero esta librería no sé si da mucho más de si, de modo que me gustaría que alguno que haya trabajado con esto me eche un cablecillo.

Seguiré informando. Muchas gracias por la ayuda.
Ángel
www.TupperBot.es

Mi sitio en YouTube

User avatar
L0rd_D4rk
Visitador del Foro
Visitador del Foro
Posts: 99
Joined: Mon May 22, 2006 3:48 am

Re: Visión artificial

Post by L0rd_D4rk » Wed Jun 07, 2006 1:41 am

Yo casi todo lo que he visto de procesamiento de imagen es con matlab, así que no sé si es lo que buscas, pero te dejo un enlace a lo más parecido a lo que he estudiado yo, http://www.eissq.com/DialADC.html , se trata de cómo pasar a valor digital, a través de una webcam, el valor que indica un manómetro de los de saeta de toda la vida. Se trata de detectar bordes y aplicar ajuste robusto, es decir encontrar líneas rectas... aunque también se podrían buscar círculos, elipses...

por cierto este proyecto lo encontré gracias a http://www.hackaday.com/ seguro que a muchos de vosotros os gusta esta web, recopila proyectos personales muy interesantes

User avatar
Mif
Usuario Desarrollador
Usuario Desarrollador
Posts: 1094
Joined: Thu Mar 23, 2006 6:24 pm
Nombre: Ángel
Location: Madrid
Contact:

Re: Visión artificial

Post by Mif » Wed Jun 07, 2006 12:07 pm

Mut chulo el link L0rd_D4rk, supongo MatLab es lo mejor para desarrollar las funciones matematicas que te permiten tratar las imagenes trigonometricamente hablando, claro, pero hay librerias ya hechas que tiene implementadas ese trato de imagenes, lo que me gustaria saber es cuales, donde encontrarlas, que experiencia hay con ellas... supongo que si no encuentro nada me tendre que poner con el MatLab, pero no me apetece demasiado...
www.TupperBot.es

Mi sitio en YouTube

User avatar
furri
Usuario Desarrollador
Usuario Desarrollador
Posts: 2707
Joined: Mon Aug 22, 2005 8:16 pm
Nombre: Francisco Reinoso
Location: Marbella
Contact:

Re: Visión artificial

Post by furri » Wed Jun 07, 2006 12:17 pm

Hola Mif.

El sistema de visión articifical de Golfus Hispanicus lo desarrollé directamente sin usar ningún tipo de librerias ni comerciales ni "open source", esto de programar así a pelo un sistema de visión no es muy aconsejable que se diga pero yo es que soy así, me gustan los retos.

Hace tiempo que se de la existencia de una libreria llamada OpenCV, desarrollada por Intel y de codigo abierto publicada en sourceforge... yo pensaba echarle un vistazo a ver si me convence, si quieres ir adelantando y despues te pregunto... jajajajaja

Aqui tienes el link... ya te digo que la miraré pero igual no empiezo hasta dentro de unos meses ya que ademas me gustaria hacerlo sobre Linux... (es que soy la leche... jajaja)

http://sourceforge.net/projects/opencvlibrary/

Venga, animate... si tu te metes voy yo detrás seguro...
furri.
xBotPinguBotTarriBot

"Gracias a la LPI estoy mejorando mi nivel de ingles..."

User avatar
Mif
Usuario Desarrollador
Usuario Desarrollador
Posts: 1094
Joined: Thu Mar 23, 2006 6:24 pm
Nombre: Ángel
Location: Madrid
Contact:

Re: Visión artificial

Post by Mif » Wed Jun 07, 2006 12:38 pm

Vaya curro no? que guapi que te lo hicieses todo tu... muy meritorio, si señor... pero yo casi prefiero usar librerias en codigo abierto, todo lo que hay hecho es tiempo que ahorras y puedes aprovechar en mejorar lo que tienes...
Voy a echarle un vistazo ahora mismo, esta tarde sabre algo mas del tema, que ahora estoy en el curro y esta feo...
Aun asi... como obtenias las imagenes de la webcam? tb te montaste tu el control?
Es que estoy un poco peridod, de momento lo que he entendido es que el proceso es este mas o menos:
-Tu programa conecta la web cam en un control.
-de la webcam capturas un frame.
-Pasas el frame como Bitmap.
-Tratas la imagen binaria con librerias especificas.
-Duevuelves los datos necesarios, y/o una imagen tratada.

Voy bien?
www.TupperBot.es

Mi sitio en YouTube

User avatar
furri
Usuario Desarrollador
Usuario Desarrollador
Posts: 2707
Joined: Mon Aug 22, 2005 8:16 pm
Nombre: Francisco Reinoso
Location: Marbella
Contact:

Re: Visión artificial

Post by furri » Wed Jun 07, 2006 1:13 pm

Mif wrote: -Tu programa conecta la web cam en un control.
-de la webcam capturas un frame.
-Pasas el frame como Bitmap.
-Tratas la imagen binaria con librerias especificas.
-Duevuelves los datos necesarios, y/o una imagen tratada.

Voy bien?
Yo no se hacerlo de otra forma.... este procedimiento es el mismo que yo he usado pero claro... ahora llega el punto 4... "Tratar la imagen"... ahí es donde te vas a hartar de reir... jajaja

Si vas a usar librerias opensource me parece genial ya que imaginate yo... tengo que buscar un color, por ejemplo... blanco... bien, coge un fondo oscuro, pon una pelota de ping-pong y captura la imagen, ahora pasala a blanco y negro, esto es, una imagen totalmente negra donde la silueta de la pelota se vea claramente.... despues de un ratito verás que en toda la imagen apenas hay un solo punto blanco puro por lo que ahora empiezas con el tema de las "tolerancias de color", esto es... que el "gris claro" lo lea como blanco, pero... ¿hasta que tonalidad de gris?...
Bueno, pones un valor "ajustable" para ir graduando hasta conseguir el objetivo y podrás comprobar que por mas que te esfuerzas obtienes un ovalo... ¿por que?... pues por que la parte baja de la pelota está en sombra (de la misma pelota) y no hay forma de leer eso que a tus ojos es evidentemente blanco como tal...
Por fin... lo conseguí... jajajaja, ahora aumenta un poco la luz de la habitación... ¡¡¡ hasta el fondo oscuro lo captura como blanco !!!... a bajar el ajuste de color... ¡¡¡ ¿pero esa segunda bola blanca de donde sale? !!!... no hay pelota en ese sitio... pero justamente es donde da el reflejo de la bombilla del techo... jajajaja

Aplica esto para que funcione con blanco, negro, amarillo, rojo, azul y verde y ademas diferenciando siluetas.... esta fué mi lucha para el sistema de Golfus Hispanicus, ademas de tener que darle las ordenes pertinentes por USB a los motores y actuadores varios... Es volverse loco... literalmente...

Lo dicho con las librerias openCV... tu tira que yo te sigo...

furri.
xBotPinguBotTarriBot

"Gracias a la LPI estoy mejorando mi nivel de ingles..."

User avatar
Mif
Usuario Desarrollador
Usuario Desarrollador
Posts: 1094
Joined: Thu Mar 23, 2006 6:24 pm
Nombre: Ángel
Location: Madrid
Contact:

Re: Visión artificial

Post by Mif » Wed Jun 07, 2006 1:24 pm

furri, Eres un crack macho... vaya currote debio tener aquello.
Me alegra saber que al menos tengo las ideas claras... pero es que ayer intente hacer una especie de buscador de parecidos entre dos imagenes, y ademas de que se tiraba casi 8 segundos para procesar, no obtenia ningun resultad valido... me las detectaba como iguales amas, y el proceso era btte sencillo:
-Pillas dos imagenes
-Recorres los pixeles uno a uno comparando los tonos de rojo
-Si el tono es igual, es decir, diferencia entre -5 y 5, pone un punto rojo en la primera imagen...
-Resultado: Una imagen roja entera, lo que quiere decir que... o las dos imagenes eran exactamente iguales... cosa imposible, o soy un gañan.

Para esto no hace falta ninguna camara, aunque yo la estaba usando en un control para tomar las muestras.
www.TupperBot.es

Mi sitio en YouTube

User avatar
furri
Usuario Desarrollador
Usuario Desarrollador
Posts: 2707
Joined: Mon Aug 22, 2005 8:16 pm
Nombre: Francisco Reinoso
Location: Marbella
Contact:

Re: Visión artificial

Post by furri » Wed Jun 07, 2006 1:51 pm

¿como "extraes" el valor del rojo?... yo me hice una función hace años para transformar del valor único de color a RGB, pero vamos que en internet las hay a millares...

yo que tu miraba ese proceso a ver si siempre estas obteniendo 0 y por eso te detecta todos los colores iguales...

¿En que lenguaje lo estás haciendo?

furri.
xBotPinguBotTarriBot

"Gracias a la LPI estoy mejorando mi nivel de ingles..."

User avatar
Mif
Usuario Desarrollador
Usuario Desarrollador
Posts: 1094
Joined: Thu Mar 23, 2006 6:24 pm
Nombre: Ángel
Location: Madrid
Contact:

Re: Visión artificial

Post by Mif » Wed Jun 07, 2006 2:46 pm

Lo hago creando un objeto img como Bitmap, pasandole la imagen, y usando la propiedad
img.GetPixel(x, y).R()
La R selecciona el canal Rojo, igualmente, puedes seleccionar G y B.
he intentado hacer un programilla en un mom, epor no me sale nada claro, esta tared en casa continuare con ello.
www.TupperBot.es

Mi sitio en YouTube

User avatar
furri
Usuario Desarrollador
Usuario Desarrollador
Posts: 2707
Joined: Mon Aug 22, 2005 8:16 pm
Nombre: Francisco Reinoso
Location: Marbella
Contact:

Re: Visión artificial

Post by furri » Wed Jun 07, 2006 2:57 pm

Estas usando .NET ¿me equivoco?... ¿VB, C++, C#?
xBotPinguBotTarriBot

"Gracias a la LPI estoy mejorando mi nivel de ingles..."

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest