Skip to content

elitekbtu/indrive-hack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš— Car Condition Analysis - AI-Powered Vehicle Assessment System

🎯 Multi-Model Computer Vision Solution

Comprehensive car condition assessment using specialized PyTorch models for damage detection, cleanliness analysis, window condition evaluation, and tire classification.

Project Banner Status Models


🧠 Machine Learning Architecture

Specialized Model Pipeline

Our solution employs 7 specialized PyTorch models for comprehensive vehicle assessment:

  1. πŸ” Binary Damage Detection (damage_binary.pt)

    • Architecture: EfficientNet-B0 with ImageNet transfer learning
    • Task: Binary classification (damaged/intact)
    • Training: Cross-entropy loss with AdamW optimizer
    • Data Augmentation: Random flips, color jitter, normalization
  2. 🎯 Damage Parts Localization (damage_parts.pt)

    • Architecture: Multi-class EfficientNet-B0
    • Task: Specific car part damage identification
    • Classes: Bumpers, doors, fenders, body panels
  3. 🧽 Vehicle Cleanliness Assessment (dirty_binary.pt)

    • Architecture: EfficientNet-B0 with surface texture analysis
    • Task: Binary classification (clean/dirty)
    • Optimization: Specialized for various lighting conditions
  4. πŸͺŸ Window Damage Detection (damaged_windows.pt)

    • Architecture: CNN optimized for glass surface analysis
    • Task: Window integrity assessment
    • Features: Crack, chip, and breakage detection
  5. πŸ”„ Unified Window Analysis (unified_windows.pt)

    • Architecture: Enhanced window condition classifier
    • Task: Comprehensive window state evaluation
    • Dataset: Combined window damage datasets
  6. ⚑ Scratch & Dent Classification (scratch_dent.pt)

    • Architecture: Multi-class CNN for surface damage types
    • Task: Damage type categorization (scratch, dent, rust)
    • Training: Specialized loss functions for imbalanced classes
  7. πŸ›ž Tire Condition Analysis (tire_classification.pt)

    • Architecture: ResNet/EfficientNet hybrid
    • Task: Tire condition assessment (full/flat/worn)
    • Augmentation: Advanced geometric transformations

πŸ€– LLM Integration

Azure OpenAI GPT-4 provides:

  • Technical Report Generation: Human-readable analysis summaries
  • Stakeholder-Specific Insights: Driver, passenger, and business perspectives
  • Condition Scoring: Automated 0-100 rating system
  • Maintenance Recommendations: Actionable improvement suggestions

πŸ”¬ Training Methodology

Transfer Learning Approach

All models utilize ImageNet pre-trained weights for optimal performance:

# EfficientNet-B0 with transfer learning
weights = models.EfficientNet_B0_Weights.IMAGENET1K_V1
model = models.efficientnet_b0(weights=weights)
# Fine-tune classifier head
model.classifier[-1] = nn.Linear(in_features, num_classes)

Training Configuration

  • Optimizer: AdamW with weight decay (1e-4)
  • Learning Rate: 3e-4 with Cosine Annealing scheduler
  • Batch Size: 32 (optimized for GPU memory)
  • Image Size: 224x224 (ImageNet standard)
  • Loss Function: CrossEntropyLoss for classification tasks

Data Augmentation Pipeline

train_transforms = transforms.Compose([
    transforms.Resize((224, 224)),
    transforms.RandomHorizontalFlip(p=0.5),
    transforms.RandomRotation(degrees=20),
    transforms.ColorJitter(brightness=0.2, contrast=0.2),
    transforms.RandomPerspective(distortion_scale=0.2),
    transforms.GaussianBlur(kernel_size=3),
    transforms.Normalize(mean=IMAGENET_MEAN, std=IMAGENET_STD)
])

πŸš€ API Architecture

Backend Stack

FastAPI + PyTorch + Azure OpenAI
β”œβ”€β”€ πŸ”§ Core API (app.py)
β”‚   β”œβ”€β”€ Model inference endpoints
β”‚   β”œβ”€β”€ Comprehensive analysis pipeline
β”‚   └── LLM report generation
β”œβ”€β”€ 🧠 Inference Modules (/inference/)
β”‚   β”œβ”€β”€ Individual model predictors
β”‚   └── Preprocessing pipelines
└── 🐳 Docker containerization

Frontend Stack

React + TypeScript + TailwindCSS
β”œβ”€β”€ 🎨 Modern UI with Radix components
β”œβ”€β”€ πŸ“± Responsive design
β”œβ”€β”€ πŸ”„ Multi-tab result display
└── πŸ“Š Real-time condition scoring

API Endpoints

🎯 Comprehensive Analysis

POST /analyze-comprehensive
Content-Type: multipart/form-data

Response:
{
  "condition_score": 85,
  "technical_analysis": {
    "is_damaged": false,
    "damage_parts_local": null,
    "dirty": {"prediction": "clean", "confidence": 0.89}
  },
  "reports": {
    "driver": "...",
    "passenger": "...", 
    "business": "..."
  },
  "recommendations": [...]
}

πŸ”§ Individual Model Endpoints

  • POST /damage_local - Binary damage detection
  • POST /damage_parts_local - Damaged parts identification
  • POST /damaged_windows_local - Window condition analysis
  • POST /unified_windows_local - Enhanced window assessment
  • POST /dirty_local - Vehicle cleanliness evaluation
  • POST /scratch_dent_local - Surface damage classification
  • POST /tire_classification_local - Tire condition analysis
  • GET /health - System health check

πŸ”§ Quick Start

Prerequisites

  • Docker & Docker Compose
  • Python 3.8+ with PyTorch
  • Azure OpenAI API access (optional for LLM features)

Environment Setup

# 1. Clone repository
git clone https://github.com/elitekbtu/indrive-hack.git
cd indrive-hack

# 2. Configure environment
cd backend
cp example.env .env
# Add your Azure OpenAI credentials to .env

# 3. Launch with Docker
docker-compose up --build

# 4. Access application
# Frontend: http://localhost
# Backend API: http://localhost:8000
# API Documentation: http://localhost:8000/docs

Local Development

# Backend setup
cd backend
pip install -r requirements.txt
python app.py

# Frontend setup  
cd frontend
npm install
npm run dev

Environment Variables

AZURE_OPENAI_API_KEY=your_api_key_here
AZURE_OPENAI_ENDPOINT=https://your-instance.openai.azure.com/
AZURE_OPENAI_GPT4O_DEPLOYMENT_NAME=gpt-4o

πŸ“Š Dataset & Training Details

Datasets Used

Model Dataset Source Classes Training Images
Damage Detection Custom binary dataset 2 (damaged/intact) ~7,000
Damage Parts Multi-class car parts 8 part categories ~13,000
Window Analysis Combined window datasets 3 window states ~3,500
Cleanliness Custom clean/dirty 2 (clean/dirty) ~1,800
Scratch & Dent Roboflow Dataset 3 damage types ~3,500
Tire Classification Roboflow Dataset 2 tire states ~1,200

Training Performance

  • Training Time: 2-10 epochs per model (early stopping)
  • Hardware: GPU-accelerated training (CUDA/MPS support)
  • Validation Split: 80/20 train/validation
  • Model Size: ~20-50MB per model (EfficientNet-B0 base)

Model Deployment

  • Inference Speed: ~100-500ms per image
  • Memory Usage: ~2GB GPU memory for all models
  • Batch Processing: Supported for multiple images
  • Device Support: CPU/CUDA/MPS (Apple Silicon)

🎯 Project Structure

Backend Organization

backend/
β”œβ”€β”€ app.py                 # FastAPI main application
β”œβ”€β”€ models/               # Trained PyTorch models (.pt files)
β”œβ”€β”€ inference/            # Model inference modules
β”œβ”€β”€ trains/              # Training scripts for each model
β”œβ”€β”€ services/            # LLM service integration
β”œβ”€β”€ datasets/            # Training datasets
└── requirements.txt     # Python dependencies

Model Training Scripts

Each model has dedicated training pipeline:

  • train_damage.py - Binary damage detection
  • train_damage_parts.py - Parts localization
  • train_damaged_windows.py - Window analysis
  • train_unified_windows.py - Enhanced window detection
  • train_dirty.py - Cleanliness assessment
  • train_scratch_dent.py - Surface damage classification
  • train_tire_classification.py - Tire condition analysis

Inference Pipeline

# Example: Damage detection inference
from inference.inference_damage import load_checkpoint, predict_image_bytes

model, transforms, class_to_idx, damage_idx = load_checkpoint("models/damage_binary.pt")
result = predict_image_bytes(model, transforms, image_bytes, damage_idx)

πŸ”§ Technical Implementation Details

Model Architecture Choices

  • EfficientNet-B0: Optimal balance of accuracy and inference speed
  • Transfer Learning: Leverages ImageNet pre-trained features
  • Fine-tuning Strategy: Only classifier head modified for domain adaptation
  • Multi-GPU Support: Distributed training capabilities

Production Considerations

  • Model Versioning: Checkpoint-based model management
  • Error Handling: Graceful degradation when models unavailable
  • Resource Management: Memory-efficient inference pipeline
  • Scalability: Containerized deployment with Docker

Performance Optimization

  • Image Preprocessing: Efficient tensor operations
  • Batch Inference: Multiple image processing
  • Memory Management: CUDA/MPS device optimization
  • Response Caching: Reduced redundant computations

πŸ“Š Dataset Attribution

Roboflow Datasets

Custom Datasets

  • Damage Detection: Binary classification dataset (damaged/intact)
  • Cleanliness: Clean vs dirty vehicle classification
  • Parts Localization: Multi-class car part damage identification

πŸ› οΈ Development & Deployment

Local Development

# Train individual models
cd backend
python trains/train_damage.py --epochs 10
python trains/train_tire_classification.py --epochs 5

# Run inference server
python app.py

# Frontend development
cd frontend
npm run dev

Docker Deployment

# Build and run all services
docker-compose up --build

# Individual service builds
docker build -t car-analysis-backend ./backend
docker build -t car-analysis-frontend ./frontend

Model Management

  • Training Checkpoints: Automatic best model saving
  • Model Registry: Version-controlled model storage
  • A/B Testing: Compare model performance
  • Hot Swapping: Update models without service restart

πŸ“ž Project Information

Technical Stack

  • Backend: FastAPI, PyTorch, Azure OpenAI
  • Frontend: React, TypeScript, TailwindCSS
  • Infrastructure: Docker, Docker Compose
  • ML Framework: PyTorch with torchvision
  • Deployment: Containerized microservices

Development Team

Team BUTAQ - Multi-disciplinary AI/ML specialists

  • Computer Vision model development
  • Full-stack web application architecture
  • Cloud deployment and DevOps
  • Business analysis and market research

Comprehensive car condition analysis through specialized computer vision models and intelligent reporting

About

Decentrathon Hackathon 2025 Butaq Team

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •