Skip to main content

Visual Brain AI - Multi-task brain MRI analysis library

Project description

Vbai - Visual Brain AI

Python 3.8+ PyTorch License: MIT

A PyTorch-based deep learning library for multi-task brain MRI analysis. Train models for simultaneous dementia classification and brain tumor detection with just a few lines of code.

Features

  • ๐Ÿง  Multi-Task Learning: Simultaneous dementia and tumor classification
  • โšก Easy to Use: Keras-like API for quick training
  • ๐ŸŽฏ Dual Attention: Task-specific attention mechanisms
  • ๐Ÿ“Š Visualization: Built-in attention heatmap visualization
  • ๐Ÿ”ง Configurable: YAML/JSON configuration support
  • ๐Ÿ“ฆ Production Ready: Export and deploy trained models

Supported Classifications

Dementia (6 classes):

  • AD Alzheimer's Disease
  • AD Mild Demented
  • AD Moderate Demented
  • AD Very Mild Demented
  • CN Non-Demented (Cognitively Normal)
  • PD Parkinson's Disease

Brain Tumor (4 classes):

  • Glioma
  • Meningioma
  • No Tumor
  • Pituitary

Installation

# Basic installation
pip install vbai

# With all optional dependencies
pip install vbai[full]

# Development installation
git clone https://github.com/Neurazum-AI-Department/vbai.git
cd vbai
pip install -e .[dev]

Quick Start

Training a Model

import vbai

# Create model
model = vbai.MultiTaskBrainModel(variant='q')  # 'q' for quality, 'f' for fast

# Prepare dataset
dataset = vbai.UnifiedMRIDataset(
    dementia_path='./data/dementia/train',
    tumor_path='./data/tumor/train',
    is_training=True
)

# Create trainer
trainer = vbai.Trainer(
    model=model,
    lr=0.0005,
    device='cuda'
)

# Train
history = trainer.fit(
    train_data=dataset,
    epochs=10,
    batch_size=32
)

# Save model
trainer.save('brain_model.pt')

Making Predictions

import vbai

# Load trained model
model = vbai.load('brain_model.pt', device='cuda')

# Single image prediction
result = model.predict('brain_scan.jpg')
print(f"Dementia: {result.dementia_class} ({result.dementia_confidence:.1%})")
print(f"Tumor: {result.tumor_class} ({result.tumor_confidence:.1%})")

# With attention visualization
result = model.predict('brain_scan.jpg', return_attention=True)
vis = vbai.VisualizationManager()
vis.visualize('brain_scan.jpg', result, save=True)

Using Callbacks

import vbai

model = vbai.MultiTaskBrainModel(variant='q')

# Setup callbacks
callbacks = [
    vbai.EarlyStopping(monitor='val_loss', patience=5),
    vbai.ModelCheckpoint(
        filepath='checkpoints/model_{epoch:02d}.pt',
        monitor='val_loss',
        save_best_only=True
    )
]

trainer = vbai.Trainer(model=model, callbacks=callbacks)
trainer.fit(train_data, val_data, epochs=50)

Configuration

import vbai

# Use preset configurations
config = vbai.get_default_config('quality')  # 'default', 'fast', 'quality', 'debug'

# Or customize
model_config = vbai.ModelConfig(
    variant='q',
    dropout=0.3,
    use_edge_branch=True
)

training_config = vbai.TrainingConfig(
    epochs=20,
    batch_size=16,
    lr=0.0001,
    scheduler='cosine'
)

# Save/Load configs
model_config.save('model_config.yaml')
loaded_config = vbai.ModelConfig.load('model_config.yaml')

Model Variants

Variant Layers Channels Speed Accuracy
f (fast) 3 32โ†’64โ†’128 โšกโšกโšก โญโญ
q (quality) 4 64โ†’128โ†’256โ†’512 โšก โญโญโญ

Dataset Structure

Your dataset should be organized as follows:

data/
โ”œโ”€โ”€ dementia/
โ”‚   โ”œโ”€โ”€ train/
โ”‚   โ”‚   โ”œโ”€โ”€ AD_Alzheimer/
โ”‚   โ”‚   โ”œโ”€โ”€ AD_Mild_Demented/
โ”‚   โ”‚   โ”œโ”€โ”€ AD_Moderate_Demented/
โ”‚   โ”‚   โ”œโ”€โ”€ AD_Very_Mild_Demented/
โ”‚   โ”‚   โ”œโ”€โ”€ CN_Non_Demented/
โ”‚   โ”‚   โ””โ”€โ”€ PD_Parkinson/
โ”‚   โ””โ”€โ”€ val/
โ”‚       โ””โ”€โ”€ ...
โ””โ”€โ”€ tumor/
    โ”œโ”€โ”€ train/
    โ”‚   โ”œโ”€โ”€ Glioma/
    โ”‚   โ”œโ”€โ”€ Meningioma/
    โ”‚   โ”œโ”€โ”€ No_Tumor/
    โ”‚   โ””โ”€โ”€ Pituitary/
    โ””โ”€โ”€ val/
        โ””โ”€โ”€ ...

API Reference

Core Classes

  • MultiTaskBrainModel - Main model class
  • UnifiedMRIDataset - Dataset for multi-task training
  • Trainer - Training loop manager
  • VisualizationManager - Attention heatmap visualization

Configuration

  • ModelConfig - Model architecture settings
  • TrainingConfig - Training hyperparameters
  • get_default_config() - Preset configurations

Callbacks

  • EarlyStopping - Stop when no improvement
  • ModelCheckpoint - Save best/all checkpoints
  • TensorBoardLogger - Log to TensorBoard

Examples

See the examples/ directory for complete examples:

  • train_basic.py - Basic training example
  • train_advanced.py - Advanced training with callbacks
  • inference.py - Model inference
  • visualize.py - Attention visualization

Citation

If you use Vbai in your research, please cite:

@software{vbai,
  title = {Vbai: Visual Brain AI Library},
  author = {Neurazum},
  year = {2025},
  url = {https://github.com/Neurazum-AI-Department/vbai}
}

License

MIT License - see LICENSE for details.

Contributing

Is being planned...

Support


Neurazum AI Department

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vbai-0.1.3.tar.gz (36.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vbai-0.1.3-py3-none-any.whl (35.8 kB view details)

Uploaded Python 3

File details

Details for the file vbai-0.1.3.tar.gz.

File metadata

  • Download URL: vbai-0.1.3.tar.gz
  • Upload date:
  • Size: 36.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for vbai-0.1.3.tar.gz
Algorithm Hash digest
SHA256 c8315da441caab4d6f7ba6d32a77a6684f4ce19a79b30f958e2dad27effd6237
MD5 3860ad4f39891290a60e353b633dbc48
BLAKE2b-256 55eb64c8742e5211713bb947fd0059424c989a66760594ebe0bfa7bbe15dc92b

See more details on using hashes here.

File details

Details for the file vbai-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: vbai-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 35.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for vbai-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b8b5bab0e33ccbac3a0af06d79c5822417783d07cf9ae15657e1999064fa7226
MD5 e9a0083f21c1784e55c7674695bc6623
BLAKE2b-256 57229aa9fd541407ada5e469a09c3bb9dc1a8a012398e855359a210becb57893

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page