|
from transformers import Pipeline |
|
import numpy as np |
|
import tensorflow as tf |
|
from PIL import Image |
|
|
|
class BrainTumorDetectionPipeline(Pipeline): |
|
def __init__(self, model_path: str, *args, **kwargs): |
|
super().__init__(*args, **kwargs) |
|
self.model = tf.keras.models.load_model(model_path) |
|
|
|
def preprocess(self, images: list): |
|
processed_images = [] |
|
for image in images: |
|
image = Image.open(image).resize((128, 128)) |
|
image = np.array(image) / 255.0 |
|
processed_images.append(np.expand_dims(image, axis=0)) |
|
return np.vstack(processed_images) |
|
|
|
def forward(self, images: list): |
|
preprocessed_images = self.preprocess(images) |
|
predictions = self.model.predict(preprocessed_images) |
|
return predictions |
|
|