Side projects Side project

X-ray Diagnosis CNN

A compact TensorFlow vision model that detects COVID-19 and viral pneumonia from chest x-rays, sized to run on resource-constrained hardware.

Language
Python
Stack
TensorFlow, AWS
Source
View on GitHub

Overview

CVV_15M_SARS-CoV-2 is a high-performance convolutional neural network designed for efficient deployment on mobile hardware. Optimized for Apple M-series silicon, the model leverages mixed precision training to classify chest X-rays into COVID-19, viral pneumonia, or normal categories with over 95% accuracy.

Key Features

  • High-Fidelity Classification: Distinguishes between COVID-19, normal, and viral pneumonia with clinical-grade precision.
  • Mobile Optimization: Finely tuned for Apple M-series architecture using TensorFlow Metal.
  • Efficiency: Implements mixed precision training for accelerated inference and reduced memory footprint.

Background & Methodology

The architecture integrates ReLU activation, Local Response Normalization (LRN), overlapping pooling, and dropout layers to extract complex patterns while maintaining computational efficiency.

ReLU Activation

We employ Rectified Linear Units (ReLU) to accelerate convergence and induce sparsity, mitigating the vanishing gradient problem:

\[ f(x) = \max(0, x) \]

Local Response Normalization (LRN)

LRN enhances feature selectivity by modeling lateral inhibition, encouraging competition among neurons to reduce redundancy:

\[ b_{i,x,y} = \frac{a_{i,x,y}}{\left(k + \alpha \sum_{j=\max(0,i-\frac{n}{2})}^{\min(N-1,i+\frac{n}{2})} (a_{j,x,y})^2 \right)^{\beta}} \]

Overlapping Pooling

By using overlapping pooling regions (\( s < z \)), the model captures spatial invariances more effectively than non-overlapping counterparts, preserving critical texture details in X-rays.

Dropout Regularization

To prevent overfitting, a dropout rate of 0.5 is applied to the fully connected layers, forcing the network to learn robust features:

\[ P(h_j \mid x) = \sum_i P(h_j \mid i) P(i \mid x) \]

Mixed Precision Training

We utilize TensorFlow's mixed precision policy to optimize performance on Apple Silicon. This combines 16-bit computation for throughput with 32-bit master weights for numerical stability, effectively doubling training speed while halving memory usage.

Implementation Details

Data Pipeline

The model was trained on a balanced dataset of 17,000 chest X-ray images, preprocessed for normalization and augmentation to ensure generalization across diverse clinical inputs.

Model Architecture

The 15-million parameter network features a streamlined design:

  • Convolutional Core: Four blocks with increasing filter depths (64 to 512), each followed by max-pooling.
  • Classifier: Two fully connected layers (1024 neurons each) with dropout, terminating in a softmax layer.

Performance & Results

The model demonstrates robust diagnostic capabilities, achieving a test accuracy of 94.03%.

Training Metrics

Dataset: 17,000 images | Input Size: 224x224 | Batch Size: 16 | Epochs: 30

Confusion Matrix

Covid Normal Pneumonia
Covid 708 10 6
Normal 70 922 8
Pneumonia 11 14 244

Analysis

  • COVID-19 Sensitivity: 97.8% recall (708/724), ensuring reliable detection of positive cases.
  • Specificity: High distinction between viral pneumonia and COVID-19, with minimal cross-class confusion.
  • Normal Cases: 92.2% recall, with the majority of errors being false positives for COVID-19 rather than pneumonia.

Technology Stack

  • Core Libraries: TensorFlow 2.10, Keras, NumPy, OpenCV
  • Data Processing: Pandas, scikit-learn, tqdm
  • Visualization: Matplotlib, TensorBoard
  • Hardware Acceleration: TensorFlow Metal, Mixed Precision Training
  • Development Environment: Python 3.9, macOS Monterey, Jupyter Notebook
  • Hardware: Apple M1 Pro (16GB Unified Memory)

Gallery

Next side project Physics Simulation