Skip to content

khalilou123/GoS_AI_Project

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoS_AI_Project

🧠 Overview

GoS_AI_Project is a deep learning system combining image classification and object detection. Designed for smart educational or security applications, this project uses powerful neural networks to recognize and detect objects in images, with a focus on deployment efficiency and accuracy.


✨ Features

  • ✅ Image classification using pretrained CNN models (ResNet, VGG16, MobileNet)
  • 🎯 Object detection with YOLOv5 and custom datasets
  • 🔄 Real-time data augmentation
  • 📊 Performance metrics visualization (Accuracy, F1-Score, etc.)
  • 🚀 Deployment-ready formats (ONNX, TFLite)
  • 🧠 Future-ready with support for self-supervised learning and edge deployment

🛠️ Tech Stack

🔹 Frontend

  • Angular (for future real-time monitoring dashboard or visual results display)

🔹 Backend

  • Django (REST API for serving predictions and managing models)

🔹 Deep Learning Frameworks

  • TensorFlow / Keras
  • PyTorch (for YOLOv5)

🔹 Other Tools

  • OpenCV – Image manipulation
  • Matplotlib, Seaborn – Visualization
  • Pandas, NumPy – Data manipulation
  • Scikit-learn – Evaluation metrics
  • Flask / FastAPI / Streamlit – Lightweight deployment (optional)

🚀 Getting Started

1️⃣ Set Up the Environment

# Create and activate virtual environment (recommended)
python -m venv gos_ai_env
source gos_ai_env/bin/activate  # Windows: gos_ai_env\Scripts\activate

# Install dependencies
pip install tensorflow keras torch torchvision opencv-python matplotlib numpy pandas scikit-learn

2️⃣ Collect & Organize Data

Organize your images like this:

/dataset
   /train
       /class_1
       /class_2
   /test
       /class_1
       /class_2

3️⃣ Preprocess Data

from tensorflow.keras.preprocessing.image import ImageDataGenerator

datagen = ImageDataGenerator(rescale=1./255, rotation_range=30, horizontal_flip=True)
train_data = datagen.flow_from_directory("dataset/train", target_size=(224, 224), batch_size=32)

🧪 Model Development

🔍 Image Classification (CNN-based)

from tensorflow.keras.applications import ResNet50
model = ResNet50(weights="imagenet", include_top=False, input_shape=(224, 224, 3))

🧭 Object Detection (YOLOv5)

git clone https://github.com/ultralytics/yolov5.git
cd yolov5
pip install -r requirements.txt

🎓 Training & Evaluation

📈 Train the Model

model.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["accuracy"])
model.fit(train_data, epochs=10, validation_data=test_data)

🚀 Train YOLOv5

python train.py --data custom_dataset.yaml --weights yolov5s.pt --epochs 50

📊 Evaluate Results

import matplotlib.pyplot as plt
plt.plot(history.history['accuracy'], label='accuracy')
plt.legend()
plt.show()

🌐 Deployment

🧩 Export Model for Inference

python export.py --weights best.pt --include onnx

🧪 Deploy via:

  • Flask / FastAPI (API interface)
  • Streamlit (interactive frontend)
  • TensorFlow Lite / ONNX for mobile or embedded devices

🚧 Future Improvements

  • 📚 Self-supervised learning for semi-labeled datasets
  • ⚡ Real-time optimization (quantization, pruning)
  • 🧠 Edge deployment on ESP32, Raspberry Pi
  • 🔋 Energy-efficient architectures

🙌 Acknowledgments

  • Inspired by YOLOv5 & TensorFlow Hub & Personal Experiences
  • Dataset sources: ImageNet

👥 Authors

About

This project, was developed as part of the coursework for 3AI's AI Project- AI solutions ESPRIT school of engineering university.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Jupyter Notebook 100.0%