Skip to main content

DATDA — Hybrid Defense & Image Classification Model

Overview

DATDA (Dynamic Adversarial Training & Defense Architecture) is a cutting-edge hybrid model designed to simultaneously defend and classify images. It moves beyond standard single-model solutions by combining adaptive adversarial defenses with a dynamic model routing mechanism, ensuring high classification accuracy even when facing sophisticated adversarial attacks.

Key Features

  • Hybrid Defense & Classification: Functions as both a robust protection mechanism and a high-accuracy classification engine within a unified framework.

  • Smart Model Routing with DATDA Index: Computes a unique DATDA Index (pre- and post-defense) to intelligently gauge attack severity. This index dynamically selects the optimal CNN model for the image:

    • Robust Legacy Models (e.g., VGG16) for highly corrupted images.
    • Advanced Hybrid CNNs for clean or partially defended images.
  • Adaptive Purification Paths: A multi-strategy defense that actively removes adversarial noise using a variety of complementary techniques:

    • Spectral Suppression & DCT Low-Pass Filtering
    • Bilateral/Median Smoothing & Total Variation Denoising
    • Gradient Shielding & Random Augmentation
  • Secondary Ultra-Defense (SDATDA): An optional, intensified defense layer that automatically activates for images with a high post-defense index. It combines momentum, gradient, and reverse techniques to neutralize deep-seated perturbations.

  • Gradio & Hugging Face Ready: Designed for seamless integration into interactive web demos or research pipelines for immediate testing and deployment.

Installation

Clone the repository and install as a Python package.

git clone https://github.com/yourusername/DATDA.git
cd DATDA
pip install .

Install using PIP

pip install datda

Quick Usage

Defend and classify an image in four simple steps.

from DATDA import DATDA, SDATDA, DATDAIndex
from PIL import Image

# 1. Load Image and Compute Pre-defense Index
img = Image.open("example.png")
index_calc = DATDAIndex()
pre_index = index_calc.compute_index(img)
print(f"Pre-defense DATDA Index: {pre_index}")

# 2. Apply Primary Hybrid Defense & Classification
datda = DATDA()
defended_img, predicted_label = datda(img)

# 3. Compute Post-defense Index
post_index = index_calc.compute_index(defended_img)
print(f"Post-defense DATDA Index: {post_index}")

# 4. Optional: Invoke Secondary Ultra-Defense (SDATDA)
# Use a threshold to decide if extra defense is needed
if post_index > 0.5:
    print("Activation SDATDA...")
    sdatda = SDATDA()
    cleaned_img = sdatda(defended_img)
    _, predicted_label = datda(cleaned_img) # Re-classify the ultra-cleaned image

print(f"Final Predicted Label: {predicted_label}")

Project Structure

DATDA/
├── __init__.py
├── datda_defense.py      # Core Primary Hybrid Defense + Classification Logic
├── sdatda_defense.py     # Secondary Ultra-Defense Implementation
├── datda_index.py        # DATDA Index Calculator for Smart Routing
├── app.py                # Example Gradio Web UI
├── setup.py
└── README.md

Citation & Academic Use

This library is intended for academic and research purposes only. If you use DATDA in a publication, please cite the author:

@misc{akbar2025datda,
  author = {Qamar Muneer Akbar},
  title = {DATDA: Hybrid Defense & Image Classification},
  year = {2025},
  url = {https://www.ftiuae.com}
}

Fun Fact

The name DATDA was inspired by the Defense Against the Dark Arts at Hogwarts.


Made by Qamar Muneer Akbar and pinch of magic by Gemini2.5-Pro

Metadata

Release files for datda 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for datda 0.1.0
File Size Uploaded
datda-0.1.0.tar.gz 3.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for datda 0.1.0
File Interpreter ABI Platform
datda-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 6.3 kB

Release files / datda-0.1.0.tar.gz

Download URL datda-0.1.0.tar.gz
Size 3.3 kB
Tags Source
SHA-256 checksum
How to use checksums
8d25af33a7dcba8d99253e36f45ee94515e645a77f54f04df4043caeaf836d5e
BLAKE2b-256 checksum
How to use checksums
bd2648333cc01ec376bfd47bbf3d0f9142240fd7a03c565c80f2cafa213d86fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release files / datda-0.1.0-py3-none-any.whl

Download URL datda-0.1.0-py3-none-any.whl
Size 3.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2f03067228688b18ee6abfebf1a7b3fc2e46096aedc4dff95c3bcde29abf8fee
BLAKE2b-256 checksum
How to use checksums
3c7d3ad632690583f975e0e1c51c17a760ba1fafb8e59b1784b563bd87f6866c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page