Algunas tareas clave en la fabricación de productos requieren el uso de técnicas visuales. En términos de versatilidad, es difícil superar las características de la visión humana, pero existen otros puntos débiles como la lentitud, el cansancio y la distracción que limitan su productividad.
En una primera serie de artículos dedicados a la visión artificial empezaré por presentar las ventajas que ésta técnica puede aportar a la producción y las claves para resolver con eficacia una tarea de inspección visual. Espero, a través de vuestros comentarios, conocer los temas que más os interesen. Os animo a que planteéis vuestras dudas y sugerencias, a las que contestaré con interés.
Los sistemas de visión y sus beneficios
Los sistemas de visión artificial efectúan tareas repetitivas con precisión y rapidez y permiten trabajar fuera del espectro visible distinguiendo detalles no visibles por el ojo humano y aportando numerosos beneficios, siendo los más inmediatos el incremento de la calidad y del rendimiento de la producción y la reducción de costes de mano de obra.
Integrados en etapas intermedias de la producción, la reducción de costes es doble: la extracción de la pieza antes de que esté acabada supone un ahorro en materiales y consumo energético y además permite detectar problemas en los dispositivos que originaron el defecto evitando fabricar más piezas defectuosas.
Diferentes sistemas en el mercado actual
La tecnología de visión es una disciplina relativamente reciente que tuvo su introducción en la industria en la década de los 80. Aplicada en sistemas basados en la tecnología de los PC, se beneficia de los rápidos avances informáticos y de redes.
Desde la década de los 90, aparecen en el mercado multitud de sistemas orientados a usuario de bajo nivel. Conocidos bajo el nombre de «smart camera» o cámara inteligente integran en la misma cámara un procesador dedicado al procesamiento de imágenes, un anillo de luz alrededor de la óptica y un programa de visión de propósito general.
Los sistemas construidos a medida mediante arquitectura PC:
- Suelen adaptarse mejor a los requerimientos.
- Tienen un coste más elevado, efecto que desaparece a medida que aumentamos el número de cámaras que la inspección requiere.
- Son más versátiles, adaptándose mejor a los cambios y a la integración de nuevas tareas y cámaras.
- Tienen un interfaz dedicado que facilita el mantenimiento.
Las cámaras inteligentes:
- Ofrecen un ahorro en coste de componentes en caso de que sea necesaria una sola cámara.
- Conllevan un ahorro en tiempo de diseño y programación.
- Requieren un especial cuidado para evitar el riesgo de no adaptarse correctamente a la tarea de inspección.
La elección de uno u otro sistema depende de los requerimientos de la aplicación. Un experto deberá analizar las características de los elementos ópticos (cámara, lente y iluminación) y deberá asegurar que el programa utilizado se adapte a las necesidades del proceso, dos puntos que trataré en la segunda parte de este artículo…
Saludos.
Buen aporte. Yo actualemente estoy haciendo un proyecto
acerca de deteccion de componentes fallas en tarjetas de
circuitos impresos.
Y tengo muchas dudas acerca de cual es la resolucion
que se debe de tener para las imagenes.
Espero me puedas mandar un poco de informacion de esto.
Gracias y hasta pronto.
Hola Juan Carlos,
La resolución necesaria para la cámara debes calcularla conociendo el tamaño del área que deseas inspeccionar y el tamaño mínimo del componente a detectar.
Si lo que deseas es sólo detectar la presencia de componentes y no medirlos, te recomiendo que utililices para un cálculo teórico un mínimo de 4 píxeles por componente (luego hay que probar con la iluminación y otros aspectos finales de la imagen que consigas).
A modo de ejemplo: Si deseas detectar componentes de 0.5×0.5 mm. sobre una placa de 20×10cm.:
* 0.5mm = 4pix
* Resolución Horizontal = 200mm. × 4pix / 0.5mm. = 1600 pix.
* Resolución Vertical = 100mm.× 4pix / 0.5mm. = 800 pix.
Deberás escoger una cámara con resolución igual o superior a la que hayas calculado.
Ten en cuenta que te he presentado un cálculo «básico» de la resolución, aspectos como la iluminación o el algoritmo de proceso afectarán directamente al éxito de tu tarea.
Espero que te sea de ayuda.
Gracias por tu ayuda y aprovechandome un poco de tu amabilidad.
Me podrias decir cual es la forma en que pudeo hacer una mejor deteccion de componentes en una tarjeta de circuito impreso, porque el proyecto que estoy haciendo es implementado en un FPGA y lo que hemos planteado es que hay dos formas en la que podemos hacer la detección: Por zonas o con uso de vectores. Y me gustaria saber si existen mas formas de deteccion de fallas y en donde puedo encontrar mas información?.
Y otra duda donde puedo encontrar algoritmos que se usan en este tipo de procesos para detección de posibles fallas en PCBs.
Tengon información que baje de la pagina de Keyence, pero me gustaria ver otras fuentes de información.
Gracias y espero me puedas ayudar.
Hasta pronto.
Hola Juan Carlos, ¿que deseas detectar exactamente? La presencia de componentes o también los posibles errores en las pistas. ¿cuál es el tamaño mínimo del componente o del error que necesitas ver?. Te pregunto para hacerme una idea más próxima a tu proyecto, y ver si te puedo aconsejar en el tema de los algoritmos.
Por el momento estoy solo interesado en la detección de componentes, pero me gustaria tambien detectar errores en pistas y comprobar que el compoente sea el indicado por medio de la identificación de su leyenda. Los componentes mas pequeños que voy a detectar son de 1mm x 0.5 mm.
Gracias y espero me puedas ayudar.
Juan Carlos, no me queda muy claro a qué tipo de algoritmos te refieres cuando hablas de usar zonas o vectores. Si quieres, cuéntanoslo..
Lo que te puedo decir es que generalmente la elevada densidad de componentes y la pequeña distancia entre ellos que se da en las PCB dan lugar a muchos niveles de gris cercanos y dificultan el uso de las técnicas típicas de filtrado de imagen, detección de bordes y análisis de blobs, que suelen ser inadecuadas a no ser que tu aplicación sea muy sencilla (pocos tipos de componentes sobre un fondo bien definido). El fondo bien definido no suele darse, puesto que en caso de faltar un componente la imagen suele presentar en su lugar pistas, bolas de soldadura o agujeros.
Sin embargo, el uso de técnicas de reconocimiento de patrones suele resolver con éxito la tarea. En una primera fase se almacenan imágenes «patrón» de cada componente y se extraen sus características para luego efectuar una búsqueda (por dichas características) de componentes en la imagen. Estos algoritmos permiten encontrar componentes y detectar si su alineación es correcta respecto a su posición teórica y en caso necesario, detectar cuando se han colocado demasiado torcidos. Encontrarás información bajo los títulos de «pattern matching» «feature extraction» y correlación normalizada.
Para agilizar los algoritmos, es mejor buscar cada componente en una pequeña área local basada en la posición dónde el componente debe estar. Buscar por toda la imagen, es lento y se justifica sólo en caso que realmente debas encontrar componentes que se han colocado en zonas erróneas imprevisibles.
Ya nos contarás qué tal te va, y sólo si no te parece mal, nos podrías contar desde dónde nos escribes.
Un saludo.
ok, gracia.
Yo soy estudiante de maestria y les escribo de Puebla, Mexico.
En lo que respecta al uso de algoritmos, no estoy seguro si hacer el procesamiento de la imagen por zona, es decir, segmentar el PCB y cada sección que se hizo compararla con una sección patron que contenga cierto numero de componentes. O hacer el procesamiento por vectores, es decir, indicar por coordenadas la posición de cada componentes y posterioemente comparar cada componente localizado con un patron establecido.
Los avances que llevo por el momento es la resolución necesaria de la imagen, y la iluminación adecuada. Y e estado haciendo algunas pruebas con imagenes en Matlab.
Gracias y hasta pronto.
Excelente información. Los sistemas de visión artificial avanzan a pasos agigantados, y cada vez tienen más usos fuera de las industrias, como en automóviles o seguridad. Un saludo
Laura