Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

Visión artificial

467 Respuestas
43 Usuarios
0 Reactions
1.1 M Visitas
mif
Respuestas: 1095
 Mif
Topic starter
(@mif)
Noble Member
Registrado: hace 20 años

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


Responder
466 respuestas
furri
Respuestas: 2708
(@furri)
Ardero
Registrado: hace 20 años

Aqui todos nos hemos enganchado al C++ Builder gracias al amigo eventronic que dió los primeros apuntes y a partir de ahí todo fué mucho mas rapido.

Yo sigo igual que al principio... traspasando mi sistema de VA que usé en Eurobot2006 a Borland C++ pero lo de siempre, falta de tiempo... 😀 😀

Según creo recordar tenia relativamente avanzado la localización de objetos de un determinado color y el cálculo del centroide... a partir de ahí intentaré mejorar el sistema para para averiguar no solo la posición de un objeto sino tambien la orientación del mismo.

...lo digo por si te parece interesante... 🙄

furri.


Responder
TumBos
Respuestas: 158
(@tumbos)
Estimable Member
Registrado: hace 20 años

Y tanto que parece interesante. Precisamente lo del centroide es un algoritmo que tenia que implementar aunque antes estoy con la rutina del cambio de RGB a HLS por ser más "humano" ver los colores aunque esto aun lo tengo que probar. furri, ¿como atacaste al problema del centroide? sé que hay varios algoritmos pero si ya te has peleado... no quiero el fuente sino la idea. 😉
Por cierto, lo del centroide es para un tracking de vision aunque eso aún lo tengo muy verde.Pero bueno aqui pasa lo de Forrest Gump; aquello de "ya que he llegado aqui... ¿por que no seguir?" 😆

Todos tenemos el problema del tiempo. Tambien mis dos churumbeles no me dejan mucho tiempo libre. ¿que pasaria si tuvieramos todo el tiempo disponible para poder cacharrear 😯 ?

Un saludo


Responder
furri
Respuestas: 2708
(@furri)
Ardero
Registrado: hace 20 años

...¿como atacaste al problema del centroide? sé que hay varios algoritmos pero si ya te has peleado... no quiero el fuente sino la idea. :wink:.

El fuente está inacabado y es mas... tendria que gastar bastante tiempo en averiguar donde esta... 😀 😀 😀

Pero si he buscado por aqui un gráfico que hice hace unos meses para documentar el proyecto cuando lo publique (si es que esa fecha llega algún dia...).

centroide
Título: Localización y calculo de centroide en tres pasos.
Fig.1) Rastreo de imagen hasta localizar el color buscado (gris), ya tenemos localizado el objeto.
Fig.2) Desde el punto de localización vamos trazando cuatro lineas (en verde) hasta localizar el perímetro de la figura, una vez trazadas (de forma imaginaria) calculamos el centro de cada una de esas lineas (puntos en rojo).
Fig.3) Ahora solo hay que añadir o restar las diferencias entre las coordenadas entre los puntos rojos y el azul para obtener el centro de la figura, otra forma de hacerlo mucho mas gráfica aunque mucho mas complicada es trazar otras lineas imaginarias que pasen sobre esos puntos, la intersección entre ellas es el centro de la figura.

Ya tienes trabajo.... que te aproveche.

furri.

PD: Otros dos churumbeles... como yo tendrás el cielo ganado... jajaja


Responder
TumBos
Respuestas: 158
(@tumbos)
Estimable Member
Registrado: hace 20 años

jajaja furri.como lo sabes... gracias por la info, que siempre es bienvenida.

Lo que os decia de la velocidad. La captura es de 352x288 a 30 fps.El retardo en la imagen calculada casi no se aprecia.
La camara: una Trust de 9 euros.
La iluminación una halógena de mesa de 50W más amarilla que otra cosa.
La rutina es:
Captura imagen
Calcula la media en cuadrados de 8 en 8 pixeles.
Filtro los RGB que esten dentro de la ventana RGB que tengo seleccionada
Si estan dentro de la ventana de color visualizo la imagen si no, negro.

Los resultados: (perdon por la calidad pero a estas horas...)
http://www.youtube.com/watch?v=Agz_LtRgO1k

A implementar:
HLS en vez de RGB.
Segmentacion de la imagen
Bordes
Filtros antiruido.
Ajuste automático de color.
Mandar a los servos pan tilt, (que por cierto algún dia me tengo que meter)
tracking ,
discriminador de movimientos,
ordenes por vision en tiempo real,
, para!! para!!, será por ideas...

esto de la vision es un "visio" sin fondo.
Saludos


Responder
jorcoval
Respuestas: 418
(@jorcoval)
Reputable Member
Registrado: hace 19 años

¿Con que lenguaje/bibliotecas estas trabajando, Tumbos?

Porque las OpenCV ya llevan implementadas bastantes de las funciones que te quedan por implementar


Responder
Página 73 / 94
Compartir: