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.0.tar.gz (35.6 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.0-py3-none-any.whl (35.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: vbai-0.1.0.tar.gz
  • Upload date:
  • Size: 35.6 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.0.tar.gz
Algorithm Hash digest
SHA256 cde04b36226822520d278fd741bb31404a2fe72eca1f114977664d0670590383
MD5 f0be36c84235471b1edbbbd25f76f362
BLAKE2b-256 a0bd292a688b2ee87a37bc4927d788372dfe20bab657ddaa18a8d5dbdd747460

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vbai-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 35.5 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b23a5bc3b0ff89092a913d64517370ee21d7d6811762f652f151780f55f79bef
MD5 0705a25589d460fa133f0691470aa6c2
BLAKE2b-256 dd9c083dff548cd5448e950ab1fde37a800b604140d6ee6e55070357bfe51ea8

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