polymer-aging-ml / README.md
devjas1
fix: Correct filename casing for App.py in Dockerfile and README
358c4d9
|
raw
history blame
4.28 kB
metadata
title: AI Polymer Classification (Raman & FTIR)
emoji: πŸ”¬
colorFrom: indigo
colorTo: yellow
sdk: streamlit
app_file: App.py
pinned: false
license: apache-2.0

AI-Driven Polymer Aging Prediction and Classification (v0.1)

This web application classifies the degradation state of polymers using Raman and FTIR spectroscopy and deep learning. It is a prototype pipeline for evaluating multiple convolutional neural networks (CNNs) on spectral data.


πŸ§ͺ Current Scope

  • πŸ”¬ Modalities: Raman & FTIR spectroscopy
  • πŸ’Ύ Input Formats: .txt, .csv, .json (with auto-detection)
  • 🧠 Models: Figure2CNN (baseline), ResNet1D, ResNet18Vision
  • πŸ“Š Task: Binary classification β€” Stable vs Weathered polymers
  • πŸš€ Features: Multi-model comparison, performance tracking dashboard
  • πŸ› οΈ Architecture: PyTorch + Streamlit

🚧 Roadmap

  • Inference from Raman .txt files
  • Model selection (Figure2CNN, ResNet1D)
  • FTIR support (modular integration complete)
  • Multi-model comparison dashboard
  • Performance tracking dashboard
  • Add more trained CNNs for comparison
  • Image-based inference (future modality)
  • RESTful API for programmatic access

🧭 How to Use

The application provides three main analysis modes in a tabbed interface:

  1. Standard Analysis:

    • Upload a single spectrum file (.txt, .csv, .json) or a batch of files.
    • Choose a model from the sidebar.
    • Run analysis and view the prediction, confidence, and technical details.
  2. Model Comparison:

    • Upload a single spectrum file.
    • The app runs inference with all available models.
    • View a side-by-side comparison of the models' predictions and performance.
  3. Performance Tracking:

    • Explore a dashboard with visualizations of historical performance data.
    • Compare model performance across different metrics.
    • Export performance data in CSV or JSON format.

Supported Input

  • Plaintext .txt, .csv, or .json files.
  • Data can be space-, comma-, or tab-separated.
  • Comment lines (#, %) are ignored.
  • The app automatically detects the file format and resamples the data to a standard length.

Contributors

Dr. Sanmukh Kuppannagari (Mentor) Dr. Metin Karailyan (Mentor) Jaser Hasan (Author/Developer)

Model Credit

Baseline model inspired by:

Neo, E.R.K., Low, J.S.C., Goodship, V., Debattista, K. (2023). Deep learning for chemometric analysis of plastic spectral data from infrared and Raman databases. Resources, Conservation & Recycling, 188, 106718. https://doi.org/10.1016/j.resconrec.2022.106718


πŸ”— Links

πŸš€ Technical Architecture

The system is built on a modular, production-ready architecture designed for scalability and maintainability.

  • Frontend: A Streamlit-based web application (app.py) provides an interactive, multi-tab user interface.
  • Backend: PyTorch handles all deep learning operations, including model loading and inference.
  • Model Management: A registry pattern (models/registry.py) allows for dynamic model loading and easy integration of new architectures.
  • Data Processing: A robust, modality-aware preprocessing pipeline (utils/preprocessing.py) ensures data integrity and standardization for both Raman and FTIR data.
  • Multi-Format Parsing: The utils/multifile.py module handles parsing of .txt, .csv, and .json files.
  • Results Management: The utils/results_manager.py module manages session and persistent results, with support for multi-model comparison and data export.
  • Performance Tracking: The utils/performance_tracker.py module logs performance metrics to a SQLite database and provides a dashboard for visualization.
  • Deployment: The application is containerized using Docker (Dockerfile) for reproducible, cross-platform execution.