The CNNClassIndex step uses a convolutional neural network (CNN) to classify images. This is often done to perform a boolean type of validation; that is, to determine whether or not an image is acceptable. You can also perform a type of image identification; that is, you have multiple classes, and you want to determine the one to which an image belongs.
A CNN classification is typically performed on images in which it is difficult to define classic processing features to extract, such as models and blobs. For example, consider a production facility that produces the following types of pasta: conchiglie, macaroni, fusilli, penne, and lasagne. Within its production line, a camera continuously grabs images of the pasta that are currently running through on a conveyor belt.
Each image is filled with numerous pasta pieces, one on top of the other and pointing in every direction. Your problem is to properly classify the pasta in such cases, where the exact features to use for the classification are problematic to establish. Despite the complex and variable images, you need to identify one class (type) of pasta from another.
To solve this problem, a CNN is constructed and trained using a large number of images, each of which is labeled as the class of pasta it represents (labeled training images are a requirement when using a CNN). This allows the CNN to learn how to differentiate and recognize the classes of pasta. When the training is done, the CNN is ready to properly classify the pasta in your images.
Currently, Matrox must create and train the CNN, using the images you provide. Once this process is completed, Matrox provides you with a pretrained CNN file (*.mclass), which you can import into the CNNClassIndex step, and use to classify images in your Matrox Design Assistant project. For more information about acquiring a trained CNN from Matrox, contact customer support.