Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (4.4%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: JuanHoKKeR
  • License: apache-2.0
  • Language: Python
  • Default Branch: main
  • Size: 4.4 MB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created 8 months ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

README.md

EDSR for Histopathology Super-Resolution

Python 3.9 PyTorch 1.13 BasicSR License

Una implementacin especializada de Enhanced Deep Super-Resolution Network (EDSR) optimizada para imgenes de histopatologa de cncer de mama. Este proyecto forma parte de un Trabajo de Grado enfocado en super-resolucin para aplicaciones mdicas mediante arquitecturas CNN residuales.

Objetivo del Proyecto

Adaptar y evaluar EDSR, una arquitectura CNN residual consolidada y estable, para super-resolucin de imgenes de microscopia histopatolgica, aprovechando su simplicidad arquitectural y robustez en el entrenamiento.

Caractersticas Principales

  • ** Especializado en Histopatologa**: Optimizado para imgenes de cncer de mama
  • ** Arquitectura CNN Residual**: Utiliza bloques residuales profundos para mejor reconstruccin
  • ** Estabilidad Excepcional**: Entrenamiento robusto sin mode collapse o inestabilidades
  • ** Simplicidad Efectiva**: Arquitectura limpia y bien documentada
  • ** Referencia Confiable**: Excelente baseline para comparaciones experimentales
  • ** Sistema de Evaluacin Comprehensive**: Mtricas especializadas para imgenes mdicas

Diferencias con el Proyecto Original

Este repositorio est basado en BasicSR pero incluye adaptaciones especficas:

| Aspecto | BasicSR Original | Esta Implementacin | |---------|------------------|-------------------| | Dominio | Imgenes naturales (DIV2K) | Histopatologa especfica | | Dataset | Datasets estndar | Dataset histopatolgico especializado | | Configuracin | Configuraciones generales | Optimizadas para imgenes mdicas | | Evaluacin | Mtricas bsicas | Sistema comprehensive mdico | | Entrenamiento | Multi-escala estndar | Enfoque en factores especficos | | Aplicacin | Uso general | Diagnstico mdico asistido |

Inicio Rpido

Prerequisitos

  • Python 3.9+
  • PyTorch 1.13+
  • CUDA 11.2+ (recomendado)
  • GPU con 8GB+ VRAM para entrenamiento

1. Clonar el Repositorio

bash git clone https://github.com/JuanHoKKeR/EDSR_BasicSR.git cd EDSR_BasicSR

2. Instalacin de Dependencias

```bash

Instalar BasicSR y dependencias

pip install basicsr pip install -r requirements.txt

Instalar en modo desarrollo (recomendado)

python setup.py develop ```

3. Preparar el Dataset

Organiza tu dataset con la siguiente estructura: datasets/ histopatologia/ train/ hr/ # Imgenes de alta resolucin lr/ # Imgenes de baja resolucin val/ hr/ lr/ test/ hr/ lr/

4. Configurar el Entrenamiento

Edita el archivo de configuracin YAML en options/train/EDSR/:

```yaml

Configuracin general

name: EDSRhistopatologiax2f256b32 modeltype: SRModel scale: 2 numgpu: 1 manual_seed: 0

Dataset configuration

datasets: train: name: histopatologiatrain type: PairedImageDataset datarootgt: datasets/histopatologia/train/hr datarootlq: datasets/histopatologia/train/lr filenametmpl: '{}' io_backend: type: disk

gt_size: 256
use_hflip: true
use_rot: true

# Data loader
use_shuffle: true
num_worker_per_gpu: 8
batch_size_per_gpu: 4
dataset_enlarge_ratio: 1
prefetch_mode: ~

val: name: histopatologiaval type: PairedImageDataset datarootgt: datasets/histopatologia/val/hr datarootlq: datasets/histopatologia/val/lr iobackend: type: disk

Network structures

networkg: type: EDSR numinch: 3 numoutch: 3 numfeat: 256 # Nmero de caractersticas numblock: 32 # Nmero de bloques residuales upscale: 2 resscale: 0.1 imgrange: 255. rgbmean: [0.4488, 0.4371, 0.4040]

Training settings

train: emadecay: 0.999 optimg: type: Adam lr: !!float 1e-4 weight_decay: 0 betas: [0.9, 0.99]

scheduler: type: MultiStepLR milestones: [200000, 400000, 600000, 800000] gamma: 0.5

totaliter: 1000000 warmupiter: -1 # Sin warmup

# Losses pixelopt: type: L1Loss lossweight: 1.0 reduction: mean ```

5. Ejecutar Entrenamiento

```bash

Entrenamiento bsico

python basicsr/train.py -opt options/train/EDSR/trainEDSRhistopatologia_x2.yml

Con logging detallado

python basicsr/train.py -opt options/train/EDSR/trainEDSRhistopatologia_x2.yml --debug ```

Estructura del Proyecto

EDSR_BasicSR/ basicsr/ # Framework BasicSR archs/ # Arquitecturas de redes edsr_arch.py # Implementacin EDSR arch_util.py # Utilidades de arquitectura data/ # Manejo de datasets paired_image_dataset.py # Dataset pareado LR-HR transforms.py # Transformaciones de datos models/ # Modelos de entrenamiento sr_model.py # Modelo base de super-resolucin base_model.py # Modelo base losses/ # Funciones de prdida basic_loss.py # L1, L2, etc. perceptual_loss.py # Prdida perceptual train.py # Script principal de entrenamiento options/ # Archivos de configuracin train/EDSR/ # Configuraciones de entrenamiento train_EDSR_histopatologia_x2.yml train_EDSR_histopatologia_x4.yml train_EDSR_custom.yml test/EDSR/ # Configuraciones de testing experiments/ # Resultados experimentales [experiment_name]/ models/ # Checkpoints del modelo training_states/ # Estados del optimizador visualization/ # Imgenes de validacin train_[timestamp].log # Logs de entrenamiento datasets/ # Datasets organizados results/ # Resultados de testing requirements.txt # Dependencias

Arquitectura EDSR

Enhanced Deep Super-Resolution Network

EDSR elimina las capas de normalizacin batch de ResNet original y utiliza:

```python

Arquitectura base en basicsr/archs/edsr_arch.py

class EDSR(nn.Module): def init(self, numinch=3, numoutch=3, numfeat=256, numblock=32, upscale=2, resscale=0.1, imgrange=255.):

    # Extraccin de caractersticas inicial
    self.conv_first = nn.Conv2d(num_in_ch, num_feat, 3, 1, 1)

    # Bloques residuales principales
    self.body = make_layer(ResidualBlockNoBN, num_block, 
                          num_feat=num_feat, res_scale=res_scale)

    # Convolucin antes del upsampling
    self.conv_after_body = nn.Conv2d(num_feat, num_feat, 3, 1, 1)

    # Upsampling
    self.upsample = Upsample(upscale, num_feat)

    # Reconstruccin final
    self.conv_last = nn.Conv2d(num_feat, num_out_ch, 3, 1, 1)

```

Configuraciones por Resolucin

128256 (2) - Configuracin Estndar

```yaml networkg: type: EDSR numfeat: 256 numblock: 32 upscale: 2 resscale: 0.1

train: totaliter: 300000 batchsizepergpu: 16 ```

256512 (2) - Configuracin Intermedia

```yaml networkg: type: EDSR numfeat: 256 numblock: 32 upscale: 2 resscale: 0.1

train: totaliter: 500000 batchsizepergpu: 8 ```

5121024 (2) - Alta Resolucin

```yaml networkg: type: EDSR numfeat: 256 numblock: 32 upscale: 2 resscale: 0.1

train: totaliter: 800000 batchsizepergpu: 4 ```

Scripts Principales

1. Entrenamiento

Entrenamiento Bsico

bash python basicsr/train.py -opt options/train/EDSR/train_EDSR_histopatologia_x2.yml

Entrenamiento con Validacin Automtica

bash python basicsr/train.py \ -opt options/train/EDSR/train_EDSR_histopatologia_x2.yml \ --auto_resume \ --debug

Reanudar Entrenamiento

bash python basicsr/train.py \ -opt options/train/EDSR/train_EDSR_histopatologia_x2.yml \ --auto_resume

2. Testing y Evaluacin

Testing Bsico

bash python basicsr/test.py -opt options/test/EDSR/test_EDSR_histopatologia_x2.yml

Configuracin de Testing

```yaml

testEDSRhistopatologia_x2.yml

name: EDSRhistopatologiax2test modeltype: SRModel scale: 2 num_gpu: 1

datasets: test1: name: histopatologiatest type: PairedImageDataset datarootgt: datasets/histopatologia/test/hr datarootlq: datasets/histopatologia/test/lr io_backend: type: disk

networkg: type: EDSR numinch: 3 numoutch: 3 numfeat: 256 numblock: 32 upscale: 2 resscale: 0.1 img_range: 255.

path: pretrainnetworkg: experiments/EDSRhistopatologiax2/models/netglatest.pth strictloadg: true

val: save_img: true suffix: ~ # Sin sufijo en nombre de archivo

metrics: psnr: # Peak signal-to-noise ratio type: calculatepsnr cropborder: 2 testychannel: false

ssim: # Structural similarity
  type: calculate_ssim
  crop_border: 2
  test_y_channel: false

```

Configuracin Avanzada

Optimizacin de Memoria

Para GPUs con memoria limitada:

```yaml

Reducir batch size

train: batchsizeper_gpu: 2 # En lugar de 4 o ms

Usar gradient checkpointing (si est disponible)

networkg: type: EDSR usecheckpoint: true # Para ahorrar memoria

Ajustar workers

datasets: train: numworkerper_gpu: 4 # Reducir si hay problemas de memoria ```

Aceleracin de Entrenamiento

```yaml

Usar precisin mixta (AMP)

train: use_amp: true

Optimizar DataLoader

datasets: train: prefetchmode: cuda # Precarga en GPU pinmemory: true

Scheduler optimizado

train: scheduler: type: CosineAnnealingRestartLR periods: [250000, 250000, 250000, 250000] restartweights: [1, 0.5, 0.5, 0.5] etamin: !!float 1e-7 ```

Data Augmentation para Histopatologa

```yaml datasets: train: # Augmentaciones bsicas usehflip: true # Flip horizontal userot: true # Rotaciones 90

# Augmentaciones de color (cuidadoso en histopatologa)
color_jitter_prob: 0.1
color_jitter_shift: 20

# Cropping inteligente
gt_size: 256
crop_type: center    # center, random

# Normalizacin especfica para histopatologa
mean: [0.485, 0.456, 0.406]  # Valores tpicos
std: [0.229, 0.224, 0.225]

```

Resultados y Rendimiento

Modelos Implementados

| Modelo | Resolucin | Parmetros | Tiempo Entrenamiento* | Estabilidad | |--------|------------|------------|----------------------|-------------| | 128256 | 128128 256256 | ~43M | ~2 das | Excelente | | 256512 | 256256 512512 | ~43M | ~3 das | Excelente | | 5121024 | 512512 10241024 | ~43M | ~4 das | Excelente |

*Tiempo estimado en RTX 4090

Caractersticas Tcnicas

Ventajas de EDSR:

Arquitectura probada: CNN residual consolidada y estable
Entrenamiento robusto: Sin problemas de convergencia
Implementacin limpia: Cdigo bien estructurado y mantenible
Reproducibilidad: Resultados consistentes entre ejecuciones
Escalabilidad: Mantiene arquitectura constante entre resoluciones
Simplicidad: Sin componentes adversariales complejos

Caractersticas Tcnicas:

Funcin de prdida: L1 Loss nicamente
Optimizador: Adam con learning rate scheduling
Normalizacin: Sin Batch Normalization (clave del diseo)
Activacin: ReLU en bloques residuales
Upsampling: Sub-pixel convolution (PixelShuffle)

Comparacin de Estabilidad

| Aspecto | EDSR | ESRGAN | SwinIR | |---------|------|--------|--------| | Convergencia | Montona | Oscilante | Estable | | Tiempo entrenamiento | Largo | Moderado | Largo | | Reproducibilidad | Excelente | Variable | Buena | | Simplicidad | Mxima | Compleja | Compleja |

Herramientas y Utilidades

Monitoreo de Entrenamiento

```bash

Visualizar logs

tensorboard --logdir experiments/EDSRhistopatologiax2/tb_logger

Mtricas automticas disponibles:

- l_pix: Prdida L1

- psnr: PSNR en validacin

- ssim: SSIM en validacin

- lr: Learning rate actual

```

Gestin de Experimentos

```yaml

Configuracin de logging

logger: printfreq: 100 # Frecuencia de logs en consola savecheckpointfreq: 5000 # Guardar modelo cada 5k iter usetblogger: true # TensorBoard logging wandb: # Weights & Biases (opcional) project: EDSRhistopatologia resume_id: ~ ```

Validacin Automtica

```yaml

Validacin durante entrenamiento

val: valfreq: !!float 5e3 # Validar cada 5k iteraciones saveimg: false # No guardar imgenes (ahorra espacio)

metrics: psnr: type: calculatepsnr cropborder: 2 testychannel: false ssim: type: calculatessim cropborder: 2 testychannel: false ```

Personalizacin y Extensiones

Modificar Arquitectura

```python

En basicsr/archs/edsr_arch.py

class CustomEDSR(nn.Module): def init(self, numinch=3, numoutch=3, numfeat=256, numblock=32, upscale=2, res_scale=0.1):

    # Modificar nmero de caractersticas
    self.conv_first = nn.Conv2d(num_in_ch, num_feat, 3, 1, 1)

    # Ajustar nmero de bloques residuales
    self.body = make_layer(ResidualBlockNoBN, num_block, 
                          num_feat=num_feat, res_scale=res_scale)

```

Funciones de Prdida Personalizadas

```python

En basicsr/losses/custom_loss.py

class HistopathologyLoss(nn.Module): def init(self, lossweight=1.0): super().init() self.lossweight = lossweight self.l1loss = nn.L1Loss()

def forward(self, pred, target):
    # Prdida L1 base
    l1_loss = self.l1_loss(pred, target)

    # Agregar prdidas especficas para histopatologa
    # (preservacin de bordes, texturas, etc.)

    return l1_loss * self.loss_weight

```

Casos de Uso y Aplicaciones

Diagnstico Mdico Asistido

  • Mejora de imgenes histopatolgicas de baja calidad
  • Preparacin de imgenes para anlisis automatizado
  • Standardizacin de calidad en diferentes equipos de microscopa

Investigacin Cientfica

  • Baseline confiable para comparaciones experimentales
  • Arquitectura de referencia para nuevos mtodos
  • Validacin de tcnicas de evaluacin

Anlisis de Estructuras Celulares

  • Preservacin fiel de morfologa tisular
  • Reconstruccin estable de patrones histolgicos
  • Anlisis detallado de arquitectura glandular

Contribucin

Este proyecto es parte de un Trabajo de Grado enfocado en super-resolucin mdica. Las contribuciones son bienvenidas siguiendo las mejores prcticas de BasicSR.

Licencia

Este proyecto est licenciado bajo la Licencia MIT - ver el archivo LICENSE para detalles.

Reconocimientos

  • Framework Original: BasicSR por XPixel Group
  • EDSR Paper: Lim, Bee, et al. "Enhanced deep residual networks for single image super-resolution." CVPRW 2017.
  • ResNet: He, Kaiming, et al. "Deep residual learning for image recognition." CVPR 2016.
  • BasicSR Team: Por el excelente framework de super-resolucin

Contacto

  • Autor: Juan David Cruz Useche
  • Proyecto: Trabajo de Grado - Super-Resolucin para Histopatologa
  • GitHub: @JuanHoKKeR
  • Repositorio: EDSR_BasicSR

Referencias

```bibtex @inproceedings{lim2017enhanced, title={Enhanced deep residual networks for single image super-resolution}, author={Lim, Bee and Son, Sanghyun and Kim, Heewon and Nah, Seungjun and Mu Lee, Kyoung}, booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition workshops}, pages={136--144}, year={2017} }

@misc{wang2020basicsr, title={BasicSR: Open Source Image and Video Restoration Toolbox}, author={Xintao Wang and Liangbin Xie and Chao Dong and Ying Shan}, howpublished={\url{https://github.com/XPixelGroup/BasicSR}}, year={2020} }

@inproceedings{he2016deep, title={Deep residual learning for image recognition}, author={He, Kaiming and Zhang, Xiangyu and Ren, Shaoqing and Sun, Jian}, booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition}, pages={770--778}, year={2016} } ```


** Si este proyecto te resulta til para tu investigacin en super-resolucin mdica, considera darle una estrella!**

Owner

  • Name: Juan Cruz
  • Login: JuanHoKKeR
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this project, please cite it as below."
title: "BasicSR: Open Source Image and Video Restoration Toolbox"
version: 1.3.5
date-released: 2022-02-16
url: "https://github.com/XPixelGroup/BasicSR"
license: Apache-2.0
authors:
  - family-names: Wang
    given-names: Xintao
  - family-names: Xie
    given-names: Liangbin
  - family-names: Yu
    given-names: Ke
  - family-names: Chan
    given-names: Kelvin C.K.
  - family-names: Loy
    given-names: Chen Change
  - family-names: Dong
    given-names: Chao

GitHub Events

Total
  • Watch event: 1
  • Member event: 1
  • Push event: 6
  • Create event: 1
Last Year
  • Watch event: 1
  • Member event: 1
  • Push event: 6
  • Create event: 1

Dependencies

docs/requirements.txt pypi
  • Pillow *
  • addict *
  • future *
  • lmdb *
  • numpy *
  • opencv-python *
  • pyyaml *
  • recommonmark *
  • requests *
  • scikit-image *
  • scipy *
  • sphinx *
  • sphinx_intl *
  • sphinx_markdown_tables *
  • sphinx_rtd_theme *
  • tb-nightly *
  • torch >=1.7
  • torchvision *
  • tqdm *
  • yapf *
requirements.txt pypi
  • Pillow *
  • addict *
  • future *
  • lmdb *
  • numpy >=1.17
  • opencv-python *
  • pytorch-msssim *
  • pyyaml *
  • requests *
  • scikit-image *
  • scipy *
  • tb-nightly *
  • torch >=1.7
  • torchvision *
  • tqdm *
  • yapf *
setup.py pypi