J'ai eu une discussion intéressante sur la base d'un projet sur lequel nous travaillions: pourquoi utiliser un système d'inspection visuelle CNN sur un algorithme de correspondance de modèles?
Contexte: j'avais montré une démonstration d'un simple système de vision CNN (webcam + ordinateur portable) qui détectait si un type particulier d'objet était "cassé" / défectueux ou non - dans ce cas, une carte de circuit imprimé PCB. Mon modèle CNN a montré des exemples de circuits imprimés appropriés et cassés (environ 100 images de chacun) sur un fond statique. Notre modèle a utilisé les premières couches conv / maxpool de VGG16 pré-formé (sur imagenet), puis nous avons ajouté quelques convs / pools plus entraînables, avec quelques densités, conduisant à une sortie vectorielle codée à chaud dim-3 one pour la classification : (is_empty, has_good_product, has_defective_product).
Le modèle s'est entraîné assez facilement et a atteint 99% de validation sans problème; nous nous sommes également entraînés à diverses augmentations de données, car nous savons que notre ensemble de données était petit. En pratique, cela a fonctionné environ 9 fois sur 10, mais quelques traductions / rotations aléatoires de la même carte de circuit imprimé le mettaient parfois dans la classe opposée. Une augmentation plus agressive des données aurait peut-être aidé. Quoi qu'il en soit, pour un projet de concept prototype, nous étions heureux.
Maintenant, nous présentions à un autre ingénieur et à son collègue, et il a soulevé l'argument selon lequel les NN sont exagérés pour cela, devrait simplement utiliser la correspondance de modèles, pourquoi voudrait-on faire des CNN?
Nous n'avions pas une bonne réponse pour expliquer pourquoi notre approche pourrait être meilleure dans certaines applications (par exemple, d'autres pièces à inspecter). Quelques points que nous avons soulevés:
1) Plus robuste aux invariances (grâce, par exemple, à l'augmentation des données)
2) Peut faire un apprentissage en ligne pour améliorer le système (par exemple, l'homme peut dire au logiciel quels exemples il s'est trompé)
3) Pas besoin de fixer des seuils comme dans les algorithmes classiques de vision par ordinateur Que pensez-vous, y a-t-il plus d'avantages pour un système CNN pour ce type de tâche d'inspection? Dans quels cas serait-ce mieux que la correspondance de modèles?
Quelques idées plus aléatoires pour savoir quand les NN profonds pourraient être la technologie pour le travail: pour les systèmes qui nécessitent une détection de profondeur 3D dans le cadre de l'entrée, ou tout type d'objet qui peut être déformé / étiré / écrasé mais toujours "bon" et pas défectueux (par exemple un animal en peluche, des fils, etc.). Curieux d'entendre vos pensées :)