طبی ڈیٹا کا استعمال پیشگی پروسیسنگ چیلنجوں کو پیش کرتا ہے جو ان سے آگے بڑھتے ہیں جو ساختی ڈیٹا کے ساتھ پیدا ہوسکتے ہیں۔ اگرچہ کچھ مانوس تکنیکیں اب بھی لاگو ہوتی ہیں، جب ڈیٹا طبی تصاویر بن جاتا ہے تو دیگر بہت مختلف نظر آتی ہیں۔
اس آرٹیکل میں، آپ سیکھیں گے کہ مشین لرننگ کے لیے حقیقی دنیا کے میڈیکل امیجنگ ڈیٹاسیٹ کیسے تیار کیے جائیں، ابتدائی ڈیٹا کی توثیق سے لے کر مکمل پری پروسیسنگ پائپ لائن تک۔
اگرچہ ہم سینہ استعمال کرتے ہیں۔
آپ اس مضمون میں کیا سیکھیں گے۔
اس مضمون کے اختتام تک، آپ کو معلوم ہو جائے گا کہ کیسے:
-
ہم میڈیکل ڈیٹا پری پروسیسنگ سے مختلف طریقے سے سٹرکچرڈ ڈیٹا پری پروسیسنگ سے رجوع کرتے ہیں اور پہچانتے ہیں کہ معیاری تکنیکوں کی کمی کہاں ہے۔
-
خراب فائلوں، غلط لیبلز، اور ٹریننگ اور ٹیسٹنگ کے درمیان ڈیٹا کے رساو کو پکڑنے کے لیے تربیت سے پہلے میڈیکل امیجنگ ڈیٹاسیٹس کی توثیق کریں۔
-
6 کور میڈیکل امیج پری پروسیسنگ ٹیکنالوجیز کا اطلاق
-
OpenCV کے ساتھ Python کا استعمال کرتے ہوئے سینے کے ایکس رے کے لیے ایک مکمل پری پروسیسنگ پائپ لائن بنانا۔
ہم کیا احاطہ کریں گے:
صحت کی دیکھ بھال میں ڈیٹا پری پروسیسنگ کیوں زیادہ اہم ہے۔
ایک چھوٹے بچے کو گمشدہ ٹکڑوں، بگڑے ہوئے کونوں، اور تین مختلف پہیلی کے ٹکڑوں کے مرکب کے ساتھ ایک جیگس پزل دینے کا تصور کریں۔ بچہ اسے حل نہیں کر سکتا، لیکن یہ واقعی اس کی غلطی نہیں ہے۔
ایسا ہی ہوتا ہے جب گندا خام ڈیٹا مشین لرننگ ماڈل میں فیڈ کیا جاتا ہے۔ طبی امیجز پر غلط پیشین گوئیوں کا مطلب غلط تشخیص ہو سکتا ہے۔
صحت کی دیکھ بھال کا ڈیٹا اس سے زیادہ پیچیدہ ہوتا ہے جو زیادہ تر ML پریکٹیشنرز استعمال کرتے ہیں:
-
تصاویر مختلف قسم کی مشینوں، ہسپتالوں اور حصول کے پروٹوکول سے آتی ہیں۔
-
لیبلز متضاد، کبھی غائب، یا کبھی کبھی غلط ہوتے ہیں۔
-
مریض کا ڈیٹا نامکمل ہے۔
-
تصویر کا سائز، کنٹراسٹ لیول، اور واقفیت ماخذ کے لحاظ سے مختلف ہوتی ہے۔
مناسب پری پروسیسنگ کے بغیر، ماڈلز اکثر بینچ مارک ڈیٹاسیٹس پر اچھی کارکردگی کا مظاہرہ کرتے ہیں لیکن انہیں دوسرے ہسپتالوں یا امیجنگ ڈیوائسز سے جمع کیے گئے ڈیٹا کو عام کرنے میں دشواری ہوتی ہے۔
ڈیٹا سیٹ
اس گائیڈ میں سینے کا ایکس رے نمونیا ڈیٹاسیٹ کاگل سے پال موونی نے لکھا۔ مندرجہ ذیل وجوہات کی بنا پر تربیت سے پہلے پروسیسنگ کے لیے یہ ایک مضبوط انتخاب ہے:
-
اس میں تقریباً 5,800 بچوں کے سینے کے ایکسرے ہوتے ہیں۔
-
دو الگ الگ درجات ہیں: نارمل اور نمونیا۔
-
یہ پہلے سے ہی تربیت، توثیق، اور ٹیسٹ فولڈرز میں منظم ہے۔
-
پیشہ ورانہ طبی تربیت کے بغیر تصویر کی پہچان ممکن ہے۔
-
یہ سیکھنے کے قابل تقریباً ہر پری پروسیسنگ کام کو دکھاتا ہے۔
ڈیٹاسیٹ Kaggle: Chest X-ray Pneumonia پر پایا جا سکتا ہے۔
فولڈر کی ساخت
ڈاؤن لوڈ کرنے کے بعد، ڈیٹاسیٹ پر مشتمل ہوتا ہے:
chest_xray/
├── train/
│ ├── NORMAL/
│ └── PNEUMONIA/
├── val/
│ ├── NORMAL/
│ └── PNEUMONIA/
└── test/
├── NORMAL/
└── PNEUMONIA/
پہلو بہ پہلو موازنہ — نارمل بمقابلہ نیومونک چیسٹ ایکس رے:

تصاویر میں سے ایک پر ایک سرسری نظر ڈالیں۔
import os
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
import cv2
DATA_DIR = "chest_xray"
TRAIN_DIR = os.path.join(DATA_DIR, "train")
# Peek at a sample image
sample_path = os.path.join(TRAIN_DIR, "NORMAL", os.listdir(os.path.join(TRAIN_DIR, "NORMAL"))[0])
sample_image = cv2.imread(sample_path, cv2.IMREAD_GRAYSCALE)
print(f"Image shape: {sample_image.shape}")
print(f"Pixel range: {sample_image.min()} to {sample_image.max()}")
print(f"Data type: {sample_image.dtype}")
آؤٹ پٹ کچھ مفید معلومات فوراً دکھاتا ہے۔ زیادہ تر تصاویر بڑی ہوتی ہیں (اکثر تقریباً 1500×2000 پکسلز) اور پکسل ویلیو 0 سے 255 تک ہوتی ہے، ڈیٹا سیٹ کے لحاظ سے تصویر کا سائز مختلف ہوتا ہے۔ ان مشاہدات میں سے ہر ایک پری پروسیسنگ کے مراحل سے آگاہ کرتا ہے۔
پری پروسیسنگ سے پہلے: ڈیٹا سیٹ کی توثیق
تبدیلی کو لاگو کرنے سے پہلے یہ یقینی بنانا ایک اچھا خیال ہے کہ ڈیٹا خود خراب نہیں ہوا ہے۔ اکیلے یہ قدم ایسے مسائل کو پکڑ سکتا ہے جو تربیت کو خود بخود ناکام یا غلط نتائج پیدا کرنے کا سبب بنتا ہے۔
سادہ تصدیقی فنکشن:
def validate_dataset(data_dir):
"""Scan a dataset folder and flag common data quality issues."""
corrupted = []
too_small = []
nearly_black = []
total = 0
for class_name in os.listdir(data_dir):
class_path = os.path.join(data_dir, class_name)
if not os.path.isdir(class_path):
continue
for fname in os.listdir(class_path):
fpath = os.path.join(class_path, fname)
total += 1
try:
img = cv2.imread(fpath, cv2.IMREAD_GRAYSCALE)
if img is None:
corrupted.append(fpath)
continue
if img.shape[0] < 100 or img.shape[1] < 100:
too_small.append(fpath)
if img.mean() < 5:
nearly_black.append(fpath)
except Exception:
corrupted.append(fpath)
print(f"Total files scanned: {total}")
print(f"Corrupted: {len(corrupted)}")
print(f"Too small: {len(too_small)}")
print(f"Nearly black: {len(nearly_black)}")
return corrupted, too_small, nearly_black
validate_dataset(TRAIN_DIR)
اس کی وجہ سے عام مسائل:
-
خراب فائل - وہ فائلیں جو بالکل نہیں کھلیں گی۔
-
خالی یا تقریباً سیاہ تصاویر - حصول ناکام ہو گیا یا فائلیں خالی کے طور پر محفوظ ہو گئیں۔
-
غلط طول و عرض - تھمب نیلز یا جزوی ڈاؤن لوڈز کا مرکب
-
ڈپلیکیٹ تصویر — ٹرین اور ٹیسٹ دونوں پر ایک ہی اسکین ظاہر ہوتا ہے (جس سے ڈیٹا لیک ہوتا ہے)۔
-
غلط لیبل والی تصویر - نمونیا کے فولڈر میں سادہ ایکسرے
یہ مرحلہ اہم ہے۔ایک خراب فائل آپ کے ٹریننگ لوپ کو وقت پر چلنے سے روک سکتی ہے۔ تربیت اور جانچ کے درمیان اوورلیپ درستگی کے اسکور کو کئی فیصد پوائنٹس تک بڑھا سکتا ہے بغیر کسی کی توجہ کیے
میڈیکل امیج پری پروسیسنگ کے چھ اصول
طبی امیجز کی پری پروسیسنگ چھ اہم خدشات پر مشتمل ہو سکتی ہے: ان میں سے دو براہ راست سٹرکچرڈ ڈیٹا پری پروسیسنگ سے آتے ہیں۔ جب ان پٹ ایک تصویر ہوتا ہے تو میکانزم بدل جاتا ہے، لہذا ہمیں دو چیزوں کو ایڈجسٹ کرنے کی ضرورت ہے۔ اور دو بالکل نئے ہیں۔ یہ ڈیٹا انسانی جسم کی تصویر بننے کے بعد ہی موجود ہے۔
اصول 1: پیمانہ - نمبروں کو مساوی طور پر استعمال کریں۔
تصور کریں کہ دو بچے اپنے مجموعوں کا موازنہ کر رہے ہیں۔ ایک کے پاس تین سیپ ہیں۔ دوسرے کے پاس 3000 اسٹیکرز ہیں۔ اگر آپ پوچھیں کہ کس کے پاس زیادہ ہے، تو جواب واضح لگتا ہے، لیکن پیمانہ یہ بالکل مختلف ہے۔ معنی خیز موازنہ کرنے کا مطلب ہے دونوں مجموعوں کو ایک ہی پیمائش کے نظام پر رکھنا۔
میڈیکل امیجز میں، پکسلز عام طور پر 8 بٹ امیجز میں 0 سے 255 تک اور کچھ 16 بٹ میڈیکل DICOM امیجز میں 0 سے 65,535 تک ہوتے ہیں۔ اعصابی نیٹ ورک اس وقت تیزی سے اور زیادہ قابل اعتماد طریقے سے تربیت دیتے ہیں جب ان کے ان پٹ صفر کے قریب ہوتے ہیں۔

اصلاحات: ہر پکسل کو زیادہ سے زیادہ ممکنہ قدر سے تقسیم کریں تاکہ ہر چیز 0 سے 1 کی حد میں ہو۔
image = cv2.imread(sample_path, cv2.IMREAD_GRAYSCALE)
# Scale to [0, 1]
image_scaled = image.astype(np.float32) / 255.0
print(f"Before scaling: {image.min()} to {image.max()}")
print(f"After scaling: {image_scaled.min():.3f} to {image_scaled.max():.3f}")
ٹیک وے: پکسل اسکیلنگ انہی اصولوں کی پیروی کرتی ہے جو عددی افعال کو اسکیلنگ کرتی ہے۔ اقدار کو کالم کے بجائے تصویر کے لحاظ سے ترتیب دیا جاتا ہے۔
اصول 2: نارملائزیشن - ڈیٹا سینٹرک
تصور کریں کہ ایک استاد کلاس سے فلم کو 1 سے 10 کی درجہ بندی کرنے کو کہتا ہے۔ ایک بچہ ہمیشہ 9 اور 10 دیتا ہے۔ ایک اور طریقہ درجہ بندی کو 1 سے 10 تک یکساں طور پر تقسیم کرتا ہے۔ آراء کا منصفانہ موازنہ کرنے کے لیے، ہر بچے کے اسکور کو اس کی اوسط کے مطابق کیا جانا چاہیے۔
میڈیکل امیجنگ میں، تصویر کی مجموعی چمک 0 سے 1 تک سکیل کرنے کے بعد بھی مختلف ہو سکتی ہے۔ کچھ ایکس رے دوسروں کے مقابلے میں زیادہ مضبوط نمائش کے ساتھ لیے جاتے ہیں۔ نارملائزیشن ہر تصویر (یا ہر چینل) کو تبدیل اور ری سکیل کرتی ہے تاکہ اقدار 1 کے معیاری انحراف کے ساتھ 0 کے ارد گرد مرکوز ہوں۔
اصلاحات: اوسط کو گھٹائیں اور معیاری انحراف سے تقسیم کریں۔
# Compute mean and std from the TRAINING set only — never from validation or test
def compute_train_stats(train_dir, sample_limit=1000):
"""Compute pixel mean and std across the training set."""
pixel_values = []
count = 0
for class_name in os.listdir(train_dir):
class_path = os.path.join(train_dir, class_name)
for fname in os.listdir(class_path):
if count >= sample_limit:
break
img = cv2.imread(os.path.join(class_path, fname), cv2.IMREAD_GRAYSCALE)
if img is not None:
pixel_values.append(img.astype(np.float32).flatten() / 255.0)
count += 1
pixels = np.concatenate(pixel_values)
return pixels.mean(), pixels.std()
train_mean, train_std = compute_train_stats(TRAIN_DIR)
image_normalized = (image_scaled - train_mean) / train_std
ان عام غلطیوں سے بچیں: نارملائزیشن کے اعدادوشمار کو صرف تربیتی سیٹ پر شمار کیا جانا چاہیے، نہ کہ تصدیق یا جانچ پر۔ اس کو حساب میں شامل کرنے سے ماڈل میں تشخیصی ڈیٹا سے معلومات لیک ہو جاتی ہیں۔ اس کے بعد انفرنس کے لیے توثیق، جانچ، اور تمام نئے ڈیٹا پر یکساں اعداد و شمار کو لاگو کرنے کی ضرورت ہوتی ہے۔
ٹیک وے: ڈیٹاسیٹ کے اعداد و شمار کے ارد گرد ہر تصویر کو سینٹرنگ اور اس کا سائز تبدیل کرنا فیچر کالمز کو معمول پر لانے کے مترادف ہے۔ اب آپ اپنی تمام تصاویر میں پکسلز کا موازنہ کر سکتے ہیں، قطع نظر اس کے کہ ہر اسکین کتنا ہلکا یا گہرا تھا۔
ستون 3: ماڈل کی توجہ مبذول کرو
تصور کریں کہ ایک بچہ بھیڑ بھرے پالتو جانوروں کی دکان میں داخل ہو رہا ہے۔ اپنے ہر جانور کو بیان کرنے کے بجائے، والدین اہم خصوصیات کی نشاندہی کرتے ہیں۔ "نرم کھال، تیز دم اور شاندار چھوٹے سائز کو دیکھیں۔" بچے سیکھتے ہیں کہ اپنی توجہ کہاں مرکوز کرنی ہے۔
میڈیکل امیج پری پروسیسنگ اسی طرح کا کام انجام دیتی ہے۔ تشخیصی کاموں سے متعلقہ علاقوں اور خصوصیات کو نمایاں کرتا ہے۔
-
دلچسپی کا علاقہ کاٹنا (ROI) - پھیپھڑوں کے علاقے پر توجہ مرکوز کریں اور مریض کے بازو، مشین کی سرحدیں، اور کندہ شدہ متن کو ضائع کریں۔
-
متضاد اضافہ - پھیپھڑوں کی لطیف ساخت کو مزید مرئی بنانے کے لیے CLAHE (کنٹراسٹ لمیٹڈ اڈاپٹیو ہسٹوگرام ایکولائزیشن) جیسی تکنیکوں کا استعمال کرتا ہے۔
-
چینل کا انتخاب — آر جی بی کے طور پر محفوظ کردہ لیکن گرے اسکیل معلومات پر مشتمل تصاویر کے لیے، شور کو کم کرنے کے لیے سنگل چینل ان پٹ میں تبدیل کریں۔

ایکس رے پر CLAHE کا اطلاق:
# CLAHE enhances local contrast — useful for X-rays
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
image_enhanced = clahe.apply(image)
# Visualize the difference
fig, axes = plt.subplots(1, 2, figsize=(12, 6))
axes[0].imshow(image, cmap='gray')
axes[0].set_title('Original')
axes[1].imshow(image_enhanced, cmap='gray')
axes[1].set_title('After CLAHE')
plt.show()
ٹیک وے: ماڈل کو یہ سکھانے کا مقصد تبدیل نہیں ہوا ہے کہ کیا دیکھنا ہے۔ سٹرکچرڈ ڈیٹا کے لیے، جواب نئے کالموں میں ہے۔ امیجز کے لیے، جواب ان علاقوں کو تراشنا، بڑھانا اور نمایاں کرنا ہے جو تشخیصی سگنلز رکھتے ہیں۔
اصول 4: گمشدہ ڈیٹا کو ہینڈل کرنا
بچوں کی کتاب پڑھنے کا تصور کریں جس کے کئی صفحات خراب ہیں۔ پوری کتاب کو پھینکنے کے بجائے، فیصلہ کریں کہ آیا صفحات کو چھوڑنا ہے، اندازہ لگائیں کہ کیا غائب ہے، یا اس پر نظرثانی کے لیے نشان زد کریں۔
میڈیکل امیجنگ میں ڈیٹا غائب ہونے کا مطلب صرف خالی اسپریڈشیٹ سیلز ہی نہیں بلکہ کرپٹ فائلز، گمشدہ لیبلز یا نامکمل اسٹڈیز ہو سکتے ہیں۔
وہی تین حکمت عملی - حذف کرنا، الزام لگانا، اور جھنڈا - اب بھی لاگو ہیں، لیکن طریقہ کار مختلف ہیں۔
# Strategy 1: Drop — remove unreadable or empty images
def is_valid_image(path):
try:
img = cv2.imread(path, cv2.IMREAD_GRAYSCALE)
if img is None:
return False
if img.mean() < 5: # nearly black
return False
if img.shape[0] < 50 or img.shape[1] < 50: # too small
return False
return True
except Exception:
return False
# Strategy 2: Impute — rare for images, but possible (e.g., in painting to fill in missing patches). Generally avoided for diagnostic data.
# Strategy 3: Flag — track which patients are missing which modalities,
# and let the model condition on availability. Common in multi-modal healthcare ML.
ٹیک وے: "گمشدہ" امیجنگ ڈیٹا شاذ و نادر ہی صرف ایک NaN ہوتا ہے۔ یہ ٹوٹی ہوئی فائلیں، بغیر لیبل والے اسکینز، گمشدہ فارمز، یا تصویر کے اندر سیاہ کونے ہو سکتے ہیں۔ وہی تین حکمت عملی اب بھی لاگو ہوتی ہے۔
اصول 5: سائز تبدیل کرنا اور دوبارہ نمونہ بنانا - ہر چیز کو ایک ہی فریم میں فٹ کریں۔
اپنے کلاس روم کی دیواروں پر بچوں کی ڈرائنگ ڈسپلے کرنے کا تصور کریں۔ اگر آپ کی تمام ڈرائنگ مختلف سائز کی ہیں، تو وہ آپ کے ڈسپلے پر صاف طور پر فٹ نہیں ہوں گی۔ تناسب کو برقرار رکھتے ہوئے سائز تبدیل کریں۔
طبی امیجز کو عام ان پٹ سائز میں فٹ ہونے کے لیے اکثر اسکیل کرنے کی ضرورت ہوتی ہے، لیکن جسمانی ساخت کو اپنی اصل شکل برقرار رکھنی چاہیے۔

اصلاحات: تمام امیجز کا سائز ایک عام شکل میں تبدیل کریں۔ طبی اعداد و شمار کے معاملے میں، کس طرح سائز کرنا اہم ہو جاتا ہے۔
TARGET_SIZE = (224, 224)
# Simple resize (may distort aspect ratio)
image_resized = cv2.resize(image, TARGET_SIZE)
# Better: preserve aspect ratio with padding
def resize_with_padding(image, target_size):
h, w = image.shape[:2]
target_h, target_w = target_size
scale = min(target_h / h, target_w / w)
new_h, new_w = int(h * scale), int(w * scale)
resized = cv2.resize(image, (new_w, new_h))
pad_h = target_h - new_h
pad_w = target_w - new_w
top, bottom = pad_h // 2, pad_h - pad_h // 2
left, right = pad_w // 2, pad_w - pad_w // 2
padded = cv2.copyMakeBorder(resized, top, bottom, left, right,
cv2.BORDER_CONSTANT, value=0)
return padded
image_clean_resize = resize_with_padding(image, TARGET_SIZE)
صحت کی دیکھ بھال میں پہلو کا تناسب کیوں اہم ہے: اگر سینے کا ایکسرے افقی طور پر مسخ کیا جائے تو پھیپھڑے غیر فطری نظر آئیں گے۔ مسخ شدہ اناٹومی پر تربیت یافتہ ماڈلز اکثر حقیقی اسکینوں پر خراب کارکردگی کا مظاہرہ کرتے ہیں۔ پہلو کے تناسب کو برقرار رکھنا عام طور پر ایک محفوظ انتخاب ہوتا ہے۔
ٹیک وے: ماڈل کو مسلسل ان پٹ سائز کی ضرورت ہوتی ہے، لیکن اناٹومی کو محفوظ کیا جانا چاہیے۔ سائز کو ایڈجسٹ کریں، لیکن ایسا احتیاط سے کریں۔
اصول 6: شور ہٹانا اور آرٹفیکٹ ہینڈلنگ - کھڑکی کی صفائی
شیشے پر دھول اور داغوں والی کھڑکی سے دیکھنے کا تصور کریں۔ اپنی کھڑکیوں کو صاف کرنے سے آپ کو ایک صاف منظر ملے گا، لیکن زیادہ زور سے رگڑنا شیشے کو کھرچ سکتا ہے۔
اسی طرح، طبی تصاویر میں اکثر شور اور حصول کے نمونے ہوتے ہیں جنہیں طبی لحاظ سے اہم تفصیلات کو ہٹائے بغیر احتیاط سے کم کیا جانا چاہیے۔
سینے کی ایکس رے کے لیے، سب سے زیادہ عام مسائل ہلکے شور اور جلے ہوئے متن یا مارکر ہیں۔ ایک ہموار میڈین یا دو رخا فلٹر پہلے کے ساتھ مدد کرتا ہے، اور دوسرے کے ساتھ کٹائی یا ماسکنگ مدد کرتا ہے۔
# Gentle denoising — careful not to blur away clinical detail
image_denoised = cv2.medianBlur(image, ksize=3)
# Bilateral filter preserves edges better than a median filter
image_bilateral = cv2.bilateralFilter(image, d=5, sigmaColor=50, sigmaSpace=50)
براہ کرم نوٹ کریں: جارحانہ denoising ان خصوصیات کو مٹا سکتا ہے جو ایک ماڈل کو بیماری کا پتہ لگانے کے لیے درکار ہوتی ہیں۔ تشخیصی ایم ایل کے لیے، ہموار فلٹرنگ کو عام طور پر ترجیح دی جاتی ہے۔ انگوٹھے کا ایک مفید اصول: اگر ریڈیولوجسٹ اصل تصویر اور اصل تصویر میں فرق نہیں کر سکتا، تو فلٹرنگ بہت آگے نکل گئی ہے۔
ٹیک وے: امیجنگ ڈیٹا میں شور ہوتا ہے جو کہ سٹرکچرڈ ڈیٹا میں نہیں ہوتا ہے۔ آپ اپنی کھڑکیوں کو صاف کر سکتے ہیں، لیکن اتنا سخت نہیں کہ داغ آپ کے نظارے کو دھندلا دیں۔
یہ سب ایک ساتھ باندھنا: ایک مکمل پائپ لائن

یہاں یہ ہے کہ چھ ستونوں کو سینے کی ایکس رے امیجز کے لیے ایک ہی پری پروسیسنگ فنکشن میں کیسے جوڑا جاتا ہے:
def preprocess_xray(image_path, target_size=(224, 224),
train_mean=0.482, train_std=0.236):
"""
Full preprocessing pipeline for chest X-ray images.
Applies all six pillars in order.
"""
# Pillar 4: Validate first — skip corrupted files
if not is_valid_image(image_path):
return None
image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)
# Pillar 5: Resize with aspect ratio preserved
image = resize_with_padding(image, target_size)
# Pillar 6: Gentle denoising
image = cv2.medianBlur(image, 3)
# Pillar 3: Enhance contrast to highlight lung texture
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
image = clahe.apply(image)
# Pillar 1: Scale to [0, 1]
image = image.astype(np.float32) / 255.0
# Pillar 2: Normalize using training set statistics
image = (image - train_mean) / train_std
return image
خود ہی آزمائیں۔
اس مضمون میں تمام کوڈ کے ٹکڑوں کو ایک قابل عمل کیگل نوٹ بک میں بنڈل کیا گیا ہے: چیسٹ ایکس رے پری پروسیسنگ — کاگل نوٹ بک۔ اسے فورک کریں، اپنے ڈیٹا سیٹ کو جوڑیں، اور تمام سیلز کو چلائیں تاکہ ہر پری پروسیسنگ ستون کو حقیقی سینے کے ایکسرے پر عمل میں دیکھا جا سکے۔
نتیجہ
اس مضمون میں ہم نے جو بات کی ہے اس کا خلاصہ کرنے کے لیے:
| ڈاکٹر | مقصد | ہاں |
|---|---|---|
| پیمانہ کاری | پکسل رینج نارملائزیشن | 0-255 → 0-1 |
| معیاری کاری | مرکزی چمک کی تقسیم | زیڈ اسکور نارملائزیشن |
| احتیاطی معلومات | تشخیصی علاقے کو نمایاں کریں۔ | کلہے۔ |
| گمشدہ ڈیٹا کو ہینڈل کرنا | ناقابل استعمال اسکینز کو ہٹا دیں۔ | خراب فائل |
| سائز تبدیل کریں | مسلسل ان پٹ سائز | 224×224 |
| شور ہٹانا | حصول شور کی کمی | درمیانی فلٹر |
ساختی ڈیٹا کو پہلے سے پروسیس کرنا نمبروں کو منصفانہ بنانے کے بارے میں ہے تاکہ ماڈل انہیں واضح طور پر دیکھ سکے۔
طبی امیجز کی پری پروسیسنگ اس پیچیدہ حقیقت کا احترام کرتی ہے کہ میڈیکل ڈیٹا کو کیسے پکڑا جاتا ہے، اسٹور کیا جاتا ہے اور لیبل لگایا جاتا ہے۔ کچھ معیاری تکنیکیں براہ راست پیروی کرتی ہیں: کچھ چیزوں کو اپنانا پڑتا ہے۔ اور ڈیٹا انسانی جسم کی تصویر بننے کے بعد ہی کچھ پری پروسیسنگ مسائل ظاہر ہوتے ہیں۔
ایک قدم پیچھے ہٹنا، چاہے بچہ کھلونوں کے ڈبے کو ترتیب دینا سیکھ رہا ہو یا نمونہ سیکھ رہا ہو کہ سینے کے ایکسرے پر نمونیا کو کیسے دیکھا جائے، سیکھنے کا معیار ڈیٹا کی تیاری کے معیار پر منحصر ہے۔ ڈیٹا درست طریقے سے درآمد کیا گیا ہے۔
اگر آپ کو یہ کارآمد معلوم ہوتا ہے، تو آپ کو مشین لرننگ کے لیے ڈیٹا پری پروسیسنگ میں پری پروسیسنگ کا ایک زیادہ وسیع تصوراتی تعارف مل سکتا ہے۔