Tuve una discusión interesante sobre la base de un proyecto en el que estábamos trabajando: ¿por qué usar un sistema de inspección visual CNN sobre un algoritmo de coincidencia de plantillas?
Antecedentes: había mostrado una demostración de un sistema simple de visión CNN (cámara web + computadora portátil) que detectaba si un tipo particular de objeto estaba "roto" / defectuoso o no, en este caso, una placa de circuito impreso de PCB. Mi modelo CNN mostró ejemplos de las placas de circuito apropiadas y rotas (aproximadamente 100 imágenes de cada una) en un fondo estático. Nuestro modelo utilizó las primeras capas conv / maxpool de VGG16 pre-entrenado (en imagenet), y luego agregamos algunas conv / pools más entrenables, con algunas densidades, lo que condujo a una salida vectorial codificada en caliente dim-3 one para la clasificación : (is_empty, has_good_product, has_defective_product).
El modelo se entrenó con bastante facilidad y alcanzó el 99% de validación sin problemas; También nos capacitamos con varios aumentos de datos, ya que sabemos que nuestro conjunto de datos era pequeño. En la práctica, funcionó aproximadamente 9 de cada 10 veces, pero algunas traducciones / rotaciones aleatorias de la misma placa de circuito ocasionalmente lo colocarían en la clase opuesta. Quizás un aumento de datos más agresivo habría ayudado. De todos modos, para un prototipo de proyecto conceptual estuvimos contentos.
Ahora estábamos presentando a otro ingeniero y su colega, y él planteó el argumento de que las NN son excesivas para esto, solo debería usar la coincidencia de plantillas, ¿por qué querría hacer CNN?
No teníamos una gran respuesta de por qué nuestro enfoque podría ser mejor en ciertas aplicaciones (por ejemplo, otras partes para inspeccionar). Algunos puntos que mencionamos:
1) Más robusto a las variaciones (por ejemplo, aumento de datos)
2) Puede aprender en línea para mejorar el sistema (por ejemplo, los humanos pueden decirle al software qué ejemplos se equivocaron)
3) No es necesario establecer umbrales como en los algoritmos de visión por computadora clásicos ¿Qué piensan ustedes, hay más ventajas para un sistema CNN para este tipo de tarea de inspección? ¿En qué casos sería mejor que la coincidencia de plantillas?
Algunas ideas aleatorias más sobre cuándo los NN profundos podrían ser la tecnología para el trabajo: para sistemas que requieren detección de profundidad 3D como parte de la entrada, o cualquier tipo de objeto que se pueda deformar / estirar / aplastar pero que aún sea "bueno" y no defectuoso (p. ej., un animal de peluche, cables, etc.) Curioso por escuchar tus pensamientos :)