|Rosella Machine Intelligence & Data Mining|
Convolutional Neural Network for Image Classification
Convolutional Neural Network (CNN) is a very powerful image classification modeling techniques. It can classify objects in images. As in the following figure, a CMSR CNN model consists of a number of streams and final fully connected layers. The number of streams is normally one. Advanced models can have multiple streams. A stream is a sequence of convolutional layers and pooling layers, normally pairs of convolutional and pooling layers. Final fully connected layers are made up with three layers: a merge layer, a fully connected ANN (Artificial Neural Network) layer and an output layer which is another ANN layer. Input is an image data. Give an image data, CNN network classify into class labels.
Accuracy of models are mainly determined by the following factors;
The first step of CNN modeling is configuring network and creation of a network based on configuration. Next step is training of the created network. Network training is an iterative process that involves verification using test datasets. You can train network using various compatible datasets and verify.
Network Creation and Configuration
The first step of CNN is to configure network and create a network based on configuration. Once created configuration cannot be changed. Only training will be possible. Configuration will differ based on layer types such as convolution, pooling, merge, fully connected and output layers.
Network training is an iterative process. You can train a network model using various datasets and verify. After training, you can save models. And later reopen it and start training again, using the same or different compatible datasets. Compatible datasets are having same width, height, color system and classification labels. All training dataset classification label names must exist in model's configuration datasets, thus, models classification label names.
Applying Model to Datasets
Models can be applied to a dataset to classify images in the dataset. This classification can be viewed from image dataset browser. Select image size of 128 or bigger, then you will be able to see original label as well as predicted label. In addition, place the cursor to an image, then hover will appear showing classification information.
To apply a model to a dataset, open both of them. Make the model as the front. Then press the "Apply model to Dataset" button. Select the dataset and model version. Once applied, resulting classification can be viewed from image dataset browser. Note that maximum one classification is applicable to each dataset. When a model is applied again, previous classification will be replaced new classification.
Exporting Network for Embedded Applications
Once fully trained, you can generate program source codes in Java and C/C++. It's fully independent program codes that do not require additional libraries. It only uses standard math libraries which is always included in target systems. This feature is designed for embedded application developers. Just copy it and paste into your applications.
Note that Java codes may include a bunch of class definitions. This is because Java limits the number of literal values for each class. So CMSR generates a bunch of classes. From your main program, just call "modelname.execute(, , , )".
Convolutional Neural Network for Object Detection
Object Detection Convolutional Neural Network is a special deep learning modeling designed to detect objects in images. The following figure shows Object Detection CNN in action. Red boxes are ground objects. Green boxes are detected objects by a CMSR OD-CNN model. Numbers in green shows object class indices. The model shows high accuracy!