Welcome to EasyNodule – a powerful desktop application designed to help medical professionals classify pulmonary nodules detected in CT scans efficiently and accurately. EasyNodule leverages state-of-the-art deep learning models to streamline lung cancer diagnostics, ensuring early detection and providing specialists with advanced tools for patient management.
- About EasyNodule
- Features
- Installation
- Usage Guide
- Deep Learning Models
- Application Workflow
- Contributing
EasyNodule is a desktop application aimed at supporting clinicians and specialists in the early detection of lung cancer. It uses an advanced capsule network model NoduleCaps32 developed by us from scratch based on the original article. EasyNodule leverages a dataset of segmented CT scans available on Kaggle to train and validate the model. By analyzing these segmented CT scan, EasyNodule offers a streamlined workflow for diagnostic decision-making, empowering medical professionals to diagnose lung cancer in its earliest stages and improve patient outcomes.
Authors:
- LABCHRI Amayas SpeedKillsx
- KOULAL Yidhir Aghiles Y1D1R
Developed as part of a Master's thesis project at the University of Science and Technology Houari Boumediene, EasyNodule combines artificial intelligence techniques with medical imaging to provide an easy-to-use and comprehensive solution for pulmonary nodule management.
- Personal Account System: Users can create secure personal accounts to store and access data safely.
- Patient Management and Database Storage: Manage patient information and store data securely for easy access.
- Nodule Classification Using Deep Learning: Utilize NoduleCaps32, a CapsNet model developed for pulmonary nodule classification.
- Semi-3D Nodule Classification: Extract insights from 3D segmented CT images for enhanced analysis and diagnosis.
- Medical Report Generation: Generate and store detailed medical reports in PDF format.
- Statistics Dashboard: Visualize key patient and diagnostic data to aid in analysis and decision-making.
- Clone the repository:
git clone https://github.com/Y1D1R/EasyNodule_Fork.git cd EasyNodule_Fork
- Create a virtual environment and activate it:
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
- Install the dependencies:
pip install -r requirements.txt # Ensure cairo is included as a dependency for PDF rendering and install gtk3-runtime
- Launch the application:
python main.py
To get started with EasyNodule, follow these steps:
- Sign Up / Login: Create an account or login with your existing credentials to access the application features.
- Add a Patient: Register patient information (name, age, gender, etc.) for future reference and classification.
- Select Patient & Upload segmented CT Scan: Select the patient and upload a segmented CT scan for nodule classification.
- Classify Nodules: Use the integrated deep learning model to classify nodules as benign or malignant. You may select different classification methods (strict, majority, or threshold-based) depending on the analysis needed.
- Generate Reports: Generate a PDF report including classification results, assessments, and recommendations.
- View Statistics: Visualize trends and patient data, including the prevalence of malignant nodules by region and risk factors such as smoking and family history.
For more details, please refer to the comprehensive user guide included in the repository or access the EasyNodule User Guide.
EasyNodule employs NoduleCaps32, a customized Capsule Network model inspired by Hinton's capsule network concept. This model is specifically designed for handling the complexity of 3D medical imaging data, extracting features from CT scans, and improving the accuracy of pulmonary nodule classification.
The final classification decision is made by:
- Strict Classification: Requires agreement among all models.
- Majority Classification: Takes the most frequent prediction among models.
- Threshold Classification: Applies a set confidence threshold for classification.
In cases of disagreement, Game Theory is applied to determine the most probable outcome, enhancing classification robustness.
EasyNodule is structured around the following workflow:
- Data Preprocessing: CT scans are pre-segmented, and 2D slices are extracted from 3D images in multiple views (x, y, z).
- Feature Extraction: Capsule networks analyze the extracted slices, leveraging Gabor filters for enhanced edge detection.
- Classification: The NoduleCaps32 model classifies nodules with transparency, and disagreements are handled using game-theoretic approaches.
- User Interaction: Through an intuitive GUI built with PyQt and PySide, users can add patients, classify nodules, generate reports, and visualize statistics seamlessly.
We welcome contributions from the community. If you wish to contribute, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature-branch
). - Open a Pull Request.
We hope EasyNodule helps improve the diagnosis and treatment of lung conditions. If you have any questions or need support, feel free to reach us at [email protected] or [email protected].
YouTube Presentation: Watch Our Youtube Video
Happy diagnosing!
"AI-powered nodule classification is a game-changer in the fight against lung diseases, bringing us closer to a future where early detection saves lives." - Dr. Lisa Sanders