Image Classification
Transformers
PyTorch
English
computer-vision
medical-imaging
multiclass-classification
diagnostic-imaging
anatomy-classification
xray
Instructions to use InfoBayAI/restnet50-Xray-Anatomy-Classifier with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use InfoBayAI/restnet50-Xray-Anatomy-Classifier with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-classification", model="InfoBayAI/restnet50-Xray-Anatomy-Classifier") pipe("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/hub/parrots.png")# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("InfoBayAI/restnet50-Xray-Anatomy-Classifier", dtype="auto") - Notebooks
- Google Colab
- Kaggle
| license: cc-by-4.0 | |
| datasets: | |
| - InfoBayAI/xray_clinical_reports_without_findings_medical_nlp | |
| - InfoBayAI/xray_clinical_reports_with_findings_medical_nlp | |
| language: | |
| - en | |
| metrics: | |
| - accuracy | |
| - confusion_matrix | |
| base_model: | |
| - microsoft/resnet-50 | |
| library_name: transformers | |
| tags: | |
| - computer-vision | |
| - medical-imaging | |
| - multiclass-classification | |
| - diagnostic-imaging | |
| - anatomy-classification | |
| - xray | |
| - pytorch | |
| pipeline_tag: image-classification | |
| **Model Description** | |
| MedXray-ResNet50-BodyPart-Classifier is a deep learning–based medical imaging model designed for automated X-ray anatomy classification using a fine-tuned ResNet-50 architecture. | |
| The model was trained on a curated Medical X-Ray imaging dataset provided by [InfoBay.AI](https://huggingface.co/datasets/InfoBayAI/xray_clinical_reports_with_findings_medical_nlp), containing X-ray scans from several anatomical body regions including chest, skull, spine, pelvis, joints, hands, and foot images. Using transfer learning and fine-tuning techniques, the pretrained ResNet-50 backbone was adapted for medical radiology classification tasks, enabling efficient anatomical X-ray recognition and healthcare-focused computer vision analysis. | |
| This project demonstrates how fine-tuning ImageNet-pretrained computer vision models can be effectively leveraged for healthcare AI, radiology automation, medical image understanding, and diagnostic support systems. | |
|  | |
| --- | |
| **Medical X-ray Anatomy Classification** | |
| The model classifies radiographic scans into the following body regions: | |
| Chest X-ray | |
| Skull X-ray | |
| Spine X-ray | |
| Pelvis X-ray | |
| Knee and Joint X-ray | |
| Hand X-ray | |
| Foot X-ray | |
| The system is designed for medical imaging research, radiology AI experimentation, healthcare computer vision workflows, and automated dataset structuring applications. | |
| --- | |
| **X-ray Classification Pipeline** | |
| The complete deep learning workflow used for training is as follows: | |
| Raw X-ray Images → Image Preprocessing → Image Normalization → Dataset Labeling → ResNet50 Fine-Tuning → Multi-Class Classification | |
| Data Processing Steps | |
| Medical X-ray image ingestion | |
| Grayscale to 3-channel RGB conversion | |
| Tensor transformation using PyTorch | |
| Pixel normalization using mean/std normalization | |
| Multi-class anatomical labeling | |
| Fine-tuning of pretrained ResNet50 CNN backbone | |
| --- | |
| **Deep Learning Architecture** | |
| Architecture: ResNet50 | |
| Framework: PyTorch | |
| Backbone: ImageNet-pretrained ResNet50 | |
| Training Strategy: Transfer Learning + Fine-Tuning | |
| Task Type: Multi-Class Image Classification | |
| Domain: Medical Imaging / Radiology AI | |
| The model uses a fine-tuned ResNet50 convolutional neural network where the final fully connected classification layer was modified to support seven anatomical X-ray categories. | |
| --- | |
| **Key Features** | |
| Automated X-ray body-part classification | |
| Fine-tuned ResNet50 medical imaging model | |
| Radiology-focused computer vision pipeline | |
| Multi-class anatomical recognition | |
| Transfer learning for healthcare AI | |
| PyTorch-based medical AI workflow | |
| Medical image preprocessing and normalization | |
| Deep learning–based radiographic analysis | |
| --- | |
| **Dataset Split** | |
| Training Set: 70% | |
| Validation Set: 15% | |
| Test Set: 15% | |
| Split Strategy: Random sampling | |
| Number of Classes: 7 | |
| --- | |
| **Training Hyperparameters** | |
| Number of Epochs: 5 | |
| Batch Size: 16 | |
| Learning Rate: 0.0001 | |
| Optimizer: Adam | |
| Loss Function: Cross-Entropy Loss | |
| Input Image Size: 224 × 224 | |
| Device Support: CPU / GPU (CUDA) | |
| --- | |
| **Model Performance** | |
| The fine-tuned ResNet50 model achieved strong performance on validation and unseen test datasets for anatomical X-ray classification tasks. | |
| Before fine-tuning, the ImageNet-pretrained baseline model achieved only: | |
| Validation Accuracy: 12.2% | |
| Test Accuracy: 10.1% | |
| After transfer learning and fine-tuning on the multi-region X-ray anatomy dataset, the model achieved: | |
| Validation Accuracy: 97.0% | |
| Test Accuracy: 94.0% | |
| Performance may vary depending on: | |
| image quality | |
| dataset diversity | |
| class balance | |
| preprocessing consistency | |
| domain distribution | |
| --- | |
| **Classification Labels** | |
| | Class ID | Label | | |
| | -------- | ------ | | |
| | 0 | Chest | | |
| | 1 | Skull | | |
| | 2 | Spine | | |
| | 3 | Pelvis | | |
| | 4 | Joints | | |
| | 5 | Hands | | |
| | 6 | Foot | | |
| ___ | |
| **Usage** | |
| **Install Dependencies** | |
| ```bash | |
| pip install torch torchvision pillow numpy | |
| ``` | |
| **Load Trained Model** | |
| ```python | |
| import torch | |
| import torch.nn as nn | |
| from torchvision import models, transforms | |
| from huggingface_hub import hf_hub_download | |
| from PIL import Image | |
| import json | |
| # ============================== | |
| # DEVICE | |
| # ============================== | |
| device = torch.device("cuda" if torch.cuda.is_available() else "cpu") | |
| # ============================== | |
| # DOWNLOAD MODEL FILES | |
| # ============================== | |
| model_path = hf_hub_download( | |
| repo_id="InfoBayAI/ResNet50-Xray-Anatomy-Classifier", | |
| filename="xray_resnet50.pth" | |
| ) | |
| labels_path = hf_hub_download( | |
| repo_id="InfoBayAI/ResNet50-Xray-Anatomy-Classifier", | |
| filename="labels.json" | |
| ) | |
| # ============================== | |
| # LOAD LABELS | |
| # ============================== | |
| with open(labels_path, "r") as f: | |
| idx_to_class = json.load(f) | |
| # ============================== | |
| # CREATE MODEL | |
| # ============================== | |
| model = models.resnet50(pretrained=False) | |
| model.fc = nn.Linear( | |
| model.fc.in_features, | |
| len(idx_to_class) | |
| ) | |
| # ============================== | |
| # LOAD TRAINED WEIGHTS | |
| # ============================== | |
| model.load_state_dict( | |
| torch.load(model_path, map_location=device) | |
| ) | |
| model.to(device) | |
| model.eval() | |
| print("Model loaded successfully!") | |
| # ============================== | |
| # IMAGE TRANSFORM | |
| # ============================== | |
| transform = transforms.Compose([ | |
| transforms.Resize((224, 224)), | |
| transforms.Grayscale(num_output_channels=3), | |
| transforms.ToTensor(), | |
| transforms.Normalize( | |
| [0.5, 0.5, 0.5], | |
| [0.5, 0.5, 0.5] | |
| ) | |
| ]) | |
| # ============================== | |
| # PREDICTION FUNCTION | |
| # ============================== | |
| def predict_xray(image_path): | |
| img = Image.open(image_path).convert("RGB") | |
| img = transform(img).unsqueeze(0).to(device) | |
| with torch.no_grad(): | |
| outputs = model(img) | |
| probs = torch.softmax(outputs, dim=1) | |
| confidence, pred = torch.max(probs, 1) | |
| predicted_label = idx_to_class[str(pred.item())] | |
| print(f"Prediction: {predicted_label}") | |
| print(f"Confidence: {confidence.item()*100:.2f}%") | |
| # ============================== | |
| # EXAMPLE | |
| # ============================== | |
| predict_xray("test_xray.png") | |
| ``` | |
| --- | |
| ### Considerations | |
| This model is trained on a X-Ray image dataset of InfoBay.AI and is intended for research and evaluation purposes only. | |
| For access to the full dataset or enterprise licensing inquiries, please contact [InfoBay.AI](https://infobay.ai/). | |
| Ph: +91 8303174762 | |
| Email: datareq@infobay.ai |