Además, también se encuentran disponibles bibliotecas de
código abierto como OpenCV, SimpleCV, Visualization
toolkit (VTK), Darwin, y ROVIS [6].
En cuanto a plataformas de implementación de sistemas
industriales, se destacan los microcontroladores, los DSPs y
los FPGAs. Estos últimos son propicios en estos ambientes
por su alta velocidad, flexibilidad, paralelismo inherente y la
gran variedad de recursos lógicos especializados disponibles
[7]. Con el advenimiento de herramientas más avanzadas
para FPGA, como Vivado HLS y su integración con
OpenCV (a través de la biblioteca xfOpenCV), los
desarrolladores de software pueden generar sistemas de
visión por computadora de tiempo real con más facilidad
[8].
En la literatura se encuentran numerosos trabajos
publicados de soluciones para la inspección visual
automática de baldosas cerámicas. En [9] se presenta un
análisis de la literatura al respecto, describiendo y
comparando los resultados de más de 200 trabajos
relevantes. En el reporte indica que existen una gran
cantidad de trabajos basados en observaciones estadísticas y
métodos basados en filtros, como los presentados en [3].
Este trabajo presenta el desarrollo y evaluación de
algoritmos de: detección de defectos por goteo de pintura,
detección de defectos de material (pinholes), e inspección de
defectos en bordes, esquinas y dimensiones. Los algoritmos
son aptos para la industria de fabricación de baldosas
cerámicas con texturas aleatorias, migrando las soluciones
presentadas en [3] (basado en PC) a soluciones íntegramente
basadas en SoC FPGA. Se pretende que sean implementadas
en la línea de producción de TandilCeram (ex Loimar). Los
algoritmos se describieron utilizando Vivado HLS, y se
validaron sobre un kit de desarrollo Zybo Z7-20 de Digilent,
que posee un SoC FPGA de Xilinx Zynq
XC7Z020-1CLG400C. La captura de las imágenes se
realizó mediante una Pcam 5C de Digilent, que cuenta con
un sensor OV5640 e interfaz de conexión MIPI CSI-2,
configurada con una resolución de 1920x1080 (1080p).
En la sección II del trabajo se presenta la descripción del
entorno. En la sección III se describe el algoritmo de
detección de gotas. En la sección IV se presenta el algoritmo
de detección de defectos de material. En la sección V se
expone el algoritmo de inspección de bordes, esquinas y
dimensiones. En la sección VI se presentan los resultados
experimentales obtenidos de la simulación e
implementación, y finalmente en la sección VII se describen
las conclusiones y trabajos futuros.
II. P
LATAFORMA BASE DE DESARROLLO
Se utilizó la plataforma y metodología presentada en
[
10] incorporando
los algoritmos de detección de defectos e
inspección (módulo abstracto VisualInspection) dentro de la
configuración, y siguiendo las recomendaciones de su uso,
tal como se presenta en el diagrama de bloques de la Figura
1. El módulo IP VisualInspection se realizó utilizando
Vivado HLS 2019.1, y Vivado 2019.1 para la integración
con el resto de la plataforma.
En el sistema propuesto, el procesador (PS, por sus
siglas en inglés) ejecuta el programa que permite la
configuración del formato de imágenes del módulo IP que
interactúa con la Pcam 5C, el factor de corrección Gamma,
y la resolución y frecuencia de salida de imágenes. Además
interpreta los resultados generados por el módulo
VisualInspection.
Fig. 1. Diagrama en bloques de la configuración del sistema dentro
de la
plataforma presentada en [10].
Por otra parte, la lógica programable (PL, por sus siglas
en inglés) se configura con los IPs provistos por la
plataforma, incorporando el IP de inspección visual en el
flujo de procesamiento de video.
Para la detección de defectos de gotas de pintura y
defectos de material, el módulo IP desarrollado en HLS, si
bien permite detectar y localizar los defectos, la lógica de
marcado en imágenes resultantes se excluye de la
implementación final, debido a que implica un consumo
excesivo en requerimientos de memoria, ya que se realiza
luego de la ejecución del algoritmo. En cambio, el marcado
en el algoritmo para determinar los defectos morfológicos se
puede realizar concurrentemente con el procesamiento. Por
tanto, los resultados sólo son transmitidos al procesador
(localización de defecto y ubicación). La lógica de salida
presenta una etapa previa del algoritmo. Sin embargo la
lógica de marcado de resultados es utilizada para la
simulación y verificación del algoritmo. Si bien el módulo
actualmente funciona como un bypass de imagen hacia la
presentación en pantalla (AXI2VDMA), la conexión se
mantiene para preservar el pipeline de procesamiento de
imagen y con capacidad futura de incorporar lógica de
marcado de resultados.
En el caso de los defectos morfológicos (bordes o
esquinas rotas), los resultados sí son marcados en la imagen
resultante.
III. ALGORITMO DE DETECCIÓN DE GOTAS
Las gotas (blobs)
son un tipo de defecto que se originan
por el goteo de material de tonalizado. Debido a la
naturaleza de su formación, estas imperfecciones se
presentan con forma circular en la superficie de la baldosa.
Además, denotan un color más oscuro, como se presenta en
el ejemplo de la Figura 2.
El algoritmo propuesto para la detección de presencia de
gotas se compone de cuatro etapas:
● Preprocesamiento y segmentación: la imagen es
leída y procesada con el objetivo de marcar los
blobs candidatos. En primer lugar, se delimita la
imagen según su región de interés (ROI, por sus
siglas en inglés), el cuál es el interior de la baldosa.
A continuación, debido a que su color es oscuro y
presentan gran tamaño, se aplican las funciones de