Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aswintechguy
GitHub Repository: aswintechguy/Deep-Learning-Projects
Path: blob/main/Face Mask Detection - Object Detection/Face Mask Detection - Object Detection.ipynb
578 views
Kernel: Python 3

Install Modules

# !pip3 install torch==1.9.0+cu102 torchvision==0.10.0+cu102 torchaudio===0.9.0 -f https://download.pytorch.org/whl/torch_stable.html # !pip3 install detecto # !pip3 install labelImg

Import Modules

from PIL import Image import os import matplotlib.pyplot as plt from detecto import core, utils, visualize

Format the Images

def format_images(directory, size): for i, img in enumerate(os.listdir(directory)): im = Image.open(directory+img) im_resize = im.resize(size, Image.ANTIALIAS) im_resize.save(directory+str(i)+'.jpg') os.remove(directory+img)
format_images('images/', (800, 600))

Label the Images

# annotate the images !labelImg
Image:C:\Users\Aswin\notebooks\Data Science Projects\Deep Learning\Face Mask Detection - Object Detection\images\12.jpg -> Annotation:C:/Users/Aswin/notebooks/detecto/images\12.xml Image:C:\Users\Aswin\notebooks\Data Science Projects\Deep Learning\Face Mask Detection - Object Detection\images\0.jpg -> Annotation:C:/Users/Aswin/notebooks/Data Science Projects/Deep Learning/Face Mask Detection - Object Detection/images\0.xml Image:C:\Users\Aswin\notebooks\Data Science Projects\Deep Learning\Face Mask Detection - Object Detection\images\1.jpg -> Annotation:C:/Users/Aswin/notebooks/Data Science Projects/Deep Learning/Face Mask Detection - Object Detection/images\1.xml

Train the Model

dataset = core.Dataset('images/') model = core.Model(['mask']) model.fit(dataset)
(Output Hidden)

Test the Model

image = utils.read_image('test/test.jpg') labels, boxes, scores = model.predict_top(image) print(labels) print(scores) visualize.show_labeled_image(image, boxes, labels)
['mask'] tensor([0.9837])
Image in a Jupyter notebook

Adding Augmentations

from torchvision import transforms augmentations = transforms.Compose([ transforms.ToPILImage(), transforms.RandomHorizontalFlip(0.5), transforms.ToTensor(), utils.normalize_transform() ]) dataset = core.Dataset('images/', transform=augmentations) loader = core.DataLoader(dataset, batch_size=2, shuffle=True) model = core.Model(['mask'])
losses = model.fit(loader, epochs=10, learning_rate=0.001, lr_step_size=5, verbose=True)
(Output Hidden)
image = utils.read_image('test/test.jpg') labels, boxes, scores = model.predict_top(image) print(labels) print(scores) visualize.show_labeled_image(image, boxes, labels)
['mask'] tensor([0.8742])
Image in a Jupyter notebook
image = utils.read_image('test/test2.jpg') labels, boxes, scores = model.predict_top(image) print(labels) print(scores) visualize.show_labeled_image(image, boxes, labels)
['mask'] tensor([0.9276])
Image in a Jupyter notebook