Skip to content

kevinxaviour/Aerial_Object_Classification_and_Detection

Repository files navigation

Bird vs Drone Detection and Classification

Aim : To develop a deep learning-based solution that can classify aerial images into two categories Bird or Drone and optionally perform object detection (YOLO) to locate and label these objects in real-world scenes.

Project Takeaways:

  • Deep Learning
  • Computer Vision
  • Image Classification & Object Detection
  • Python
  • TensorFlow/Keras
  • Data Preprocessing & Augmentation
  • YOLOv8
  • Model Evaluation
  • Streamlit Deployment

WorkFlow

- Image Classification Training (Custom and Transfer Learning Model) Aerial_Object_Detection.ipynb

  • Used cv2 to show an example on Data augmentation

  • Used ImageDataGenerator library to create augmented data in training_data

    • Resize, rotation, zoom, horizontal view, vertical view
  • Data Preprocessing

    • Resize images to (224,224) pixels
  • Custom Training from Scratch

  • Introducing Transfer Learning with 3 different pre-trained applications from tensorflow.keras.applications

  • Model Evaluation

  • Chose the best model among the 4 and saved the model for future use.

    image

- Image Detection Training (YOLO Model) YoloModel.ipynb

  • Data Preperation
    • Yolo requires the training images to be in an particular folder dir with train,validation and test data split in labels and images folders seperately.
  • Creating data.yaml file for model training data.yaml
  • Model Training
  • Model Evaluation
image
  • Saving Model

- Streamlit Application streamlit.py

  • Side bar to upload data and select a model to view result.
  • In main content the left side shows original image and right side with the predicted output.
  • Created an download button to download YOLO detected image

- Image Classification

image

- Image detection

image