Sistema de recuento de productos

Cómo configuramos el conteo y reconocimiento de pan en la cinta transportadora con una cámara de video

Resumen

Cliente. Fabricante de pan. La empresa produce 14 tipos populares de pan: baguettes, 8 granos, pan finlandés, pan rústico y otros.

Tarea. Contar y reconocer los productos liberados en la cinta transportadora. Al final del día, mostrar una tabla con los resultados.

Resultado. CamContador reconoce y cuenta todos los tipos de pan, incluidos los defectuosos, con una precisión del 99.8%. Se genera un informe sobre la producción en tiempo real y se envía al departamento de contabilidad al final del turno.

Situación

Una panadería trabaja 24 horas al día sin fines de semana. Cada día, la empresa envía 14 tipos de pan a los mostradores de puntos de venta y cadenas minoristas.

Con volúmenes de producción tan altos, son inevitables las discrepancias en el conteo de productos. Por ejemplo, se utilizaron materias primas para producir 1000 unidades de pan, pero el empaque mostró 980 piezas. Para entender la cantidad exacta de productos producidos, los gerentes de la panadería decidieron instalar un contador de productos por video.

Anteriormente, la tecnología no permitía contar productos en la cinta transportadora con la ayuda de una cámara de video. Las soluciones tradicionales: contadores láser, infrarrojos y de impulsos requieren un presupuesto adicional para la compra de equipos, su instalación y configuración. Por lo tanto, el cliente contaba los productos liberados en la etapa de empaquetado.

Hoy, la tecnología de visión por computadora permite contar productos en movimiento directamente en la cinta transportadora. No importa si el pan sale del horno en filas sobre palés o esparcido de manera caótica en la cinta. CamContador cuenta y reconoce productos en cualquier forma.

Javi Martínez, Gerente de Proyecto

El desafío

La empresa tiene dos líneas de producción. La primera produce 11 tipos de pan, la segunda tres. Los productos en la cinta cambian constantemente: primero pasa un tipo de pan por la cinta transportadora, unos minutos después otro, luego un tercero.

El cliente estableció la tarea de reconocer y contar todos los productos liberados. El contador debe determinar qué tipo de pan pasa por la cinta transportadora, contar su cantidad y, al final del día, generar una tabla con los resultados.

Solución

El cliente envió videos para cada tipo de pan. Al principio había 9, pero gradualmente el número creció a 14 tipos. Seleccionamos 30 capturas de pantalla para cada producto, las marcamos para el conteo y entrenamos el algoritmo para reconocer los productos.

Tomó 3 días preparar y entrenar la red neuronal. Cuando todo estuvo listo, lanzamos el contador de video en modo de prueba y, junto con el cliente, comenzamos a detectar errores.

Errores debido al color del pan

Debido a las condiciones de horneado, el pan a veces cambia de color. Un lote puede salir pálido, mientras que el siguiente es dorado. Un algoritmo entrenado con productos pálidos puede cometer errores con los dorados. Tienen la misma forma pero diferentes colores de corteza.

El cliente registró estos errores y nos envió el video. Reetiquetamos los fotogramas y reentrenamos el modelo. Después de eso, los errores desaparecieron.

Panes similares en el fotograma

Cuando el cliente envió un video del 14º tipo de pan, resultó ser similar a otros dos tipos, solo que ligeramente más claro. Si hay varias unidades de pan en la línea, las diferencias son inmediatamente visibles. Pero cuando una sola pieza estaba en el fotograma, el algoritmo se confundía.

Un entrenamiento adicional de la red neuronal no resolvió el problema. Por lo tanto, implementamos una mejora a nivel de conteo.

Pasan varios minutos entre diferentes lotes de pan. Esto significa que si, por ejemplo, se ven 24 productos en el fotograma, todos son iguales. No puede haber panes diferentes en la cinta transportadora al mismo tiempo. Si el sistema encontraba un pan en un lote que era diferente a los demás, eliminábamos este error mediante programación.

Gracias a esta modificación, CamContador ha aprendido una lógica cercana a la humana. El contador ha memorizado que no puede haber productos diferentes en una masa homogénea de pan. Si el algoritmo encuentra varios panes diferentes, el contador los contará junto con la masa principal de pan.

Montón de pan en la cinta

A veces, el pan pasa por la línea apilado en un montón. Los panes se superponen: uno más abajo, otro más arriba, y un tercero se esconde debajo. Estos montones de pan deben ser eliminados. La cámara no puede ver los elementos debajo.

Afortunadamente, este problema se resuelve rápidamente instalando una barra sobre la cinta transportadora. Esto es exactamente lo que hizo el cliente. Ahora, cuando los panes se superponen, la barra baja el pan superior a la cinta. El resultado es una sola capa de pan que es fácil de contar y reconocer.

Dificultades técnicas

Calidad de captura. Por lo general, cuando hay muchas cámaras en una instalación de producción, CamContador simplemente cuenta los productos, sin reconocerlos. Por ejemplo, este es el caso al contar huevos o carcasas de aves. Pero en este proyecto, la situación fue más complicada.

Aunque solo había dos cámaras, tuvimos que no solo contar, sino también reconocer 14 tipos de productos. Primero, para evitar sobrecargar la red y el procesador, reducimos drásticamente la calidad del flujo de video. Cortamos el bitrate y la frecuencia de cuadros de las cámaras. Sin embargo, más tarde, junto con el representante del cliente, decidimos mejorar la calidad de la imagen. Aumentaron el bitrate a 4000 kbps y el FPS a 20 cuadros. Gracias a esto, las imágenes se volvieron más claras y la precisión del conteo aumentó.

Ángulo de grabación. Inicialmente, una cámara estaba colgada demasiado lejos de la línea de producción. Este ángulo dificultaba el reconocimiento de los productos. Había tres tipos de pan en la cinta: blanco, negro y gris. El algoritmo cometía errores con el pan gris: el contador lo asignaba al pan negro y luego al blanco.

El cliente bajó la cámara para que los panes se vieran mejor. Reentrenamos la red neuronal con los fotogramas del nuevo ángulo y reiniciamos el contador. Después de eso, los errores de reconocimiento del pan gris desaparecieron y la precisión del conteo superó el 99%.

Problemas con Windows 11. Normalmente, los clientes usan los sistemas operativos Windows 10 y Ubuntu. CamContador es completamente compatible con estos sistemas. La panadería fue el primer cliente que vino con Windows 11. Pensamos que técnicamente la versión 11 no era muy diferente de la versión 10, pero resultó ser diferente.

Hubo un problema imprevisto con los controladores para la tarjeta gráfica NVIDIA y la biblioteca CUDA. Por alguna razón desconocida, la carga de la tarjeta gráfica saltaba constantemente de 30 a 100%. En los momentos de carga máxima, no tenía tiempo de procesar el flujo. Esto causaba errores de conteo.

Durante un mes cambiamos configuraciones y reinstalamos controladores. El problema no desapareció. Luego, tras consultar con el cliente, decidimos cambiar al sistema operativo gratuito Ubuntu.

La transición fue rápida y sencilla. Después de instalar Ubuntu y reiniciar el contador, los errores de la tarjeta gráfica desaparecieron. Hasta hoy, el programa ha estado funcionando de manera estable y confiable durante seis meses.

El resultado

Hoy CamContador reconoce y cuenta con éxito 14 tipos de pan. Técnicamente, el algoritmo incluso cuenta 15 tipos de productos, incluyendo los defectuosos.

Las cámaras están instaladas en dos líneas de producción y cuentan ambos flujos de productos. La precisión del conteo es del 99.8%.

Al final del turno, el cliente recibe un informe sobre la producción por tipo de producto. Estos informes ayudan a controlar la cantidad de pan producido. Esta información luego pasa al departamento de contabilidad del cliente:

Desde la primera comunicación con el cliente hasta el lanzamiento del contador en la línea de producción tomó un mes. Esto es más largo que los proyectos habituales para contar productos en la cinta transportadora, que se lanzan en pocos días. Sin embargo, en este caso no solo contamos los mismos productos, sino que reconocimos 14 tipos diferentes de pan y defectos.

El pan es un producto bastante específico cuya apariencia cambia debido a las condiciones de horneado. Después del lanzamiento, reentrenamos la red neuronal 12 veces para reducir la tasa de error, y como resultado, la precisión del conteo fue del 99.8%. Es decir, solo hay 1-2 errores por cada mil unidades de pan. Este es un porcentaje de precisión muy alto en comparación con los equipos de conteo convencionales. Sin embargo, para el contador CamContador, una precisión del 99.7-99.9% es una cifra habitual que mostramos en cada proyecto y garantizamos en el contrato.

Javi Martínez, Gerente de Proyecto

Ejemplo en video de cómo funciona el contador:

Leer más