To classify the image of concrete wheteher it is crack or not link: https://data.mendeley.com/datasets/5y9wdsg2zt/2
- To make classify the image of concrete
- to predict the new image of concrete
- deal with a large dataset
- the deep learning model is used and trained
- The model use Transfer Learning from mobilenetV2
- The project built with Spyder as the main IDE
- use Tensorflow, Keras, Numpy, Mathplot
- The folder contain 2 type of image which is positive(the concrete is crack) and negative ( the concrete is not crack).
- There are 40 000 images, 20 000 in positive folder and 20 000 in negative folder.
- The we classify the images into training and validation dataset. 70% of total images used for training and 30% of images for validation test. 12 000 use for validation and 28 000 for training
- we create a pipeline for data augmentation including random flip and random rotation, to increate data's varities and prevent verfit in data training.
- use base model from mobilenetV2, uninclude the top layer ( generally for classification task) and freeze the trainable layer
- Set the base model layer below 100 layer into false, so that the model will not update its weight / paramter during training;
- Create a classification layer as top layer of the base model. Use global Average Pooling 2D, activation function of 'softmax' and number of class is 2 because we want to classify the image of concrete into 2; positive or negative.
- Use Functional APi in creating Transfer Learning model:
- Now, we need to train the model to update the trainable parameters.
-The model is compile with optimizer of 'adam' with learning rate = 0.001, loss= Sparse Crossentropy', metrics of accuracy, batch_size of 32 and epochs of 200
Predicting a new image