Cainvas
Model Files
obj_class.h5
keras
Model
deepSea Compiled Models
obj_class.exe
deepSea
Ubuntu

Object Classifier Using CNN

Credit: AITS Cainvas Community

Photo by Cabify Design on Dribbble

In [1]:
!wget -N "https://cainvas-static.s3.amazonaws.com/media/user_data/cainvas-admin/obj.zip"
!unzip -qo obj.zip 
!rm obj.zip
--2021-07-14 16:18:59--  https://cainvas-static.s3.amazonaws.com/media/user_data/cainvas-admin/obj.zip
Resolving cainvas-static.s3.amazonaws.com (cainvas-static.s3.amazonaws.com)... 52.219.156.51
Connecting to cainvas-static.s3.amazonaws.com (cainvas-static.s3.amazonaws.com)|52.219.156.51|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 42553971 (41M) [application/x-zip-compressed]
Saving to: ‘obj.zip’

obj.zip             100%[===================>]  40.58M  95.8MB/s    in 0.4s    

2021-07-14 16:18:59 (95.8 MB/s) - ‘obj.zip’ saved [42553971/42553971]

Importing Libraries
In [2]:
import tensorflow as tf
from tensorflow import keras 
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as img
%matplotlib inline
import tensorflow.keras.backend as K
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.preprocessing import image
from pylab import imread,subplot,imshow,show
import cv2
import os
Rescaling
In [3]:
train = ImageDataGenerator(rescale=1./255)
test =  ImageDataGenerator(rescale=1./255)
val =  ImageDataGenerator(rescale=1./255)
In [4]:
train='Obclass/train/'
In [5]:
train_data = tf.keras.preprocessing.image_dataset_from_directory(
    train,
    validation_split=0.2,
    image_size=(224,224),
    batch_size=30,
    subset='training',
    seed=500 )
Found 1486 files belonging to 2 classes.
Using 1189 files for training.
In [6]:
val='Obclass/train/'
In [7]:
val_data = tf.keras.preprocessing.image_dataset_from_directory(
    val,
    validation_split=0.2,
    image_size=(224,224),
    batch_size=30,
    subset='validation',
    seed=500
    )
Found 1486 files belonging to 2 classes.
Using 297 files for validation.
In [8]:
test='Obclass/test/'
In [9]:
test_data=tf.keras.preprocessing.image_dataset_from_directory(
    test,
    image_size=(224,224),
    batch_size=30,
    seed=500
    )
Found 382 files belonging to 2 classes.
In [10]:
print(val_data)
print(train_data)
print(test_data)
<BatchDataset shapes: ((None, 224, 224, 3), (None,)), types: (tf.float32, tf.int32)>
<BatchDataset shapes: ((None, 224, 224, 3), (None,)), types: (tf.float32, tf.int32)>
<BatchDataset shapes: ((None, 224, 224, 3), (None,)), types: (tf.float32, tf.int32)>
In [11]:
class_names = ['ELectric Bus', 'Electric Car']
In [12]:
train_data.class_names = class_names
val_data.class_names = class_names
In [13]:
plt.figure(figsize=(14, 14))
for images, labels in train_data.take(1):
    for i in range(9):
        ax = plt.subplot(3, 3, i + 1)
        plt.imshow(images[i].numpy().astype("uint8"))
        plt.title(train_data.class_names[labels[i]])
        plt.axis("off")