|
|
--- |
|
|
license: apache-2.0 |
|
|
pipeline_tag: image-classification |
|
|
--- |
|
|
# Brain tumor Detection by CT Scan |
|
|
|
|
|
Brain Tumor Detection Model 🧠 |
|
|
This Brain Tumor Detection Model is a Convolutional Neural Network (CNN) trained to classify brain CT scan images into two categories: |
|
|
|
|
|
Healthy (No Tumor) |
|
|
Tumor Detected |
|
|
The model is designed to assist healthcare professionals by providing an automated solution for detecting brain tumors in CT scans. With high accuracy and balanced metrics, it is a reliable tool for preliminary screening and decision support. |
|
|
|
|
|
Model Performance |
|
|
|
|
|
Precision- 97% |
|
|
Recall - 97% |
|
|
F1-Score - 97% |
|
|
Accuracy - 97% |
|
|
|
|
|
False Positives (Healthy misclassified as Tumor): 17 |
|
|
False Negatives (Tumor misclassified as Healthy): 15 |
|
|
|
|
|
Model Strengths |
|
|
High Accuracy: Achieves a test accuracy of 97%, making it reliable for tumor detection. |
|
|
Balanced Metrics: Precision and recall are well-balanced across both classes. |
|
|
Low False Negatives: The model minimizes missed tumor cases, crucial for medical applications. |
|
|
Efficient Architecture: Lightweight CNN architecture ensures quick inference times, suitable for real-time applications. |
|
|
|
|
|
Model Limitations |
|
|
|
|
|
No Multi-Class Support: The model supports binary classification (Healthy/Tumor); it cannot classify tumor subtypes. |
|
|
|
|
|
|
|
|
```python |
|
|
# Example Code: Want To Quick try our model?just copy paste this code on colab |
|
|
|
|
|
# Step 1: Install Required Libraries |
|
|
!pip install huggingface_hub |
|
|
|
|
|
# Step 2: Import Necessary Libraries |
|
|
import tensorflow as tf |
|
|
from tensorflow.keras.preprocessing.image import load_img, img_to_array |
|
|
from huggingface_hub import hf_hub_download |
|
|
import numpy as np |
|
|
from google.colab import files |
|
|
import os |
|
|
|
|
|
# Step 3: Download Model from Hugging Face |
|
|
model_path = hf_hub_download(repo_id="krishnamishra8848/Brain_Tumor_Detection_Model", filename="brain_tumor_model.h5") |
|
|
|
|
|
# Step 4: Load the Model |
|
|
model = tf.keras.models.load_model(model_path) |
|
|
|
|
|
# Step 5: Upload an Image |
|
|
print("Please upload an image to test:") |
|
|
uploaded = files.upload() |
|
|
|
|
|
# Step 6: Process the Uploaded Image |
|
|
for file_name in uploaded.keys(): |
|
|
# Load and preprocess the image |
|
|
img_path = file_name |
|
|
IMG_HEIGHT, IMG_WIDTH = 128, 128 # Ensure this matches your model's input size |
|
|
img = load_img(img_path, target_size=(IMG_HEIGHT, IMG_WIDTH)) # Resize image |
|
|
img_array = img_to_array(img) # Convert image to array |
|
|
img_array = np.expand_dims(img_array, axis=0) # Add batch dimension |
|
|
img_array = img_array / 255.0 # Normalize pixel values to [0, 1] |
|
|
|
|
|
# Step 7: Make Prediction |
|
|
prediction = model.predict(img_array)[0][0] |
|
|
confidence = prediction if prediction > 0.5 else 1 - prediction |
|
|
|
|
|
# Step 8: Display Result |
|
|
if prediction > 0.5: |
|
|
print(f"Prediction: Tumor Detected with {confidence:.2f} confidence.") |
|
|
else: |
|
|
print(f"Prediction: Healthy with {confidence:.2f} confidence.") |
|
|
|
|
|
|
|
|
|