GPU-accelerated medical image registration using generalized entropy metrics (Shannon, Tsallis, Rényi) as similarity measures for mutual information (MI) optimization.
This project implements and benchmarks generalized entropy formulations as similarity metrics for multi-modal 3D medical image registration. The core idea: instead of standard Shannon entropy, use parameterized entropy family members (Tsallis with parameter q, Rényi with parameter q) to capture different statistical properties of the joint intensity distribution between a fixed and moving image.
├── QtMI/ # Qt6 GUI application — interactive registration front-end
│ # VTK/ITK 3D visualization, CUDA-accelerated MI optimization,
│ # step-search optimizer, Monte Carlo analysis
├── MI/ # Core C++ library — MI metric implementations
│ # Shannon, Tsallis, Rényi entropy + joint/conditional/mutual variants
│ # 2D and 3D registration (Registra*, RIRE2DCM)
├── veximage/ # GPU-accelerated image processing library (VexCL/OpenCL/CUDA)
│ # Entropy computation, image transforms, XZ compression
├── benchmark/ # Performance benchmarks
│ # Metrics speed, entropy, transforms — CUDA vs CPU
├── t1/ # Sample T1-weighted brain DICOM images (181 slices)
├── paraview/ # ParaView streaming scripts
├── micudapv/ # CUDA + ParaView integration
├── Notebooks/ # Jupyter notebooks — Monte Carlo stats, Tsallis plotting
├── docs/ # Research documentation (Portuguese thesis/report)
│ # Relatorio.pdf / Relatorio.tex
│ # Wolfram Mathematica results (Resultados*.nb, Resultados*.png)
└── MI/ # Standalone MI executables (MI, MI3D, info, etc.)
| Dependency | Role |
|---|---|
| ITK | Medical image I/O, resampling, transforms |
| VTK | 3D rendering (VTK OpenGL interactor) |
| Qt5 | GUI framework (Widgets, Charts) |
| CUDA / VexCL | GPU-accelerated entropy computation |
| Eigen3 | Linear algebra |
| Boost | Program options, serialization, containers |
# QtMI (main GUI application)
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ../QtMI
make -j$(nproc)Requires ITK 5, VTK 9, Qt6 (Widgets + Charts), CUDA 12, and Eigen3.
-
QtMI — Full interactive GUI: load fixed + moving DICOM volumes, select entropy metric (Shannon/Tsallis/Rényi), adjust parameter q, run step-search optimization, visualize in 2D slices + 3D volume, log Monte Carlo runs. See QtMI/README.md for details.
-
MI/ — Standalone registration executables (
Registra,MI,MI3D,RIRE2DCM). The core entropy metric classes (Shannon.h,Tsallis.h,Renyi.h,TsallisMetric.h,RenyiMetric.h) live here. -
veximage/ — GPU entropy computation engine. Wraps VexCL for OpenCL/CUDA backends. Used as a static library (
MICUDA) by QtMI. -
benchmark/ — Micro-benchmarks for entropy, transform, and compression operations. Outputs to CSV/SQLite.
t1/— 181 T1-weighted brain DICOM slices (sample subject, IDst10001.dcmthrought10181.dcm).MI/brain.dcm— Single brain DICOM reference image.
This code accompanies my Ph.D. thesis at the University of São Paulo (USP), FFCLRP — Applied Physics to Medicine and Biology — defended on 26 Oct 2021.
Doctoral thesis
Vianna, Vinicius Pavanelli. Generalized entropy for medical image registration. Ribeirão Preto: USP, 2021. DOI: https://doi.org/10.11604/t.59.2021.tde-17122021-175100
Published paper
Vianna V.P., Murta L.O. "Generalized entropy for medical image registration." Physics in Medicine & Biology 67 (2022). DOI: https://doi.org/10.1088/1361-6560/ac5298
BibTeX (thesis):
@phdthesis{vianna2021generalized,
title = {Generalized entropy for medical image registration},
author = {Vianna, Vinicius Pavanelli},
school = {Universidade de S{ã}o Paulo},
year = {2021},
doi = {10.11604/t.59.2021.tde-17122021-175100},
address = {Ribeir{ão} Preto, FFCLRP},
month = {oct},
date = {2021-10-26},
advisor = {Murta Junior, Luiz Otavio},
committee = {
Murta Junior, Luiz Otavio (President),
Furuie, Sérgio Shiguemi,
Leoni, Renata Ferranti,
Tsallis, Constantino
}
}BibTeX (paper):
@article{vianna2022generalized,
title = {Generalized entropy for medical image registration},
author = {Vianna, Vinicius Pavanelli and Murta, Luiz Otavio},
journal = {Physics in Medicine & Biology},
volume = {67},
year = {2022},
doi = {10.1088/1361-6560/ac5298},
url = {https://doi.org/10.1088/1361-6560/ac5298}
}Full documentation (in Portuguese): docs/Relatorio.pdf / docs/Relatorio.tex.
Mathematica notebooks and result figures: docs/*.nb, docs/*.png.