ویروس کرونا 2019 (COVID-19) ناشی از سندرم تنفسی حاد کرونا ویروس 2 (SARS-CoV-2) همچنان تأثیر فوقالعادهای بر روی بیماران و دستگاههای مراقبتهای بهداشتی در سراسر جهان دارد. در مبارزه با این بیماری جدید، برای اطمینان از قرنطینه بهموقع و درمان، نیاز جدی به ابزار غربالگری سریع و مؤثر برای شناسایی بیماران آلوده به COVID-19 وجود دارد. در حال حاضر، آزمایش RT-PCR روش اصلی غربالگری COVID-19 است، زیرا میتواند اسید ریبونوکلئیک SARS-CoV-2 (RNA) را در نمونههای خلط جمع شده از دستگاه تنفسی فوقانی تشخیص دهد. آزمایش RT-PCR یک فرایند زمانبر است که در حال حاضر تقاضای زیادی برای آن وجود دارد. این امر منجر به تأخیرهای احتمالی در دستیابی به نتایج آزمون میشود.
تصویربرداری توموگرافی از قفسه سینه (CT) به دلیل حساسیت بالای آن، بهعنوان یک ابزار غربالگری جایگزین برای عفونت COVID-19 پیشنهاد شده است و ممکن است در صورت استفاده بهعنوان مکمل آزمایش RT-PCR، مؤثر باشد. تصویربرداری CT در مراحل اولیه بیماری همهگیر COVID-19، بهویژه در آسیا، استفاده گستردهای را به دنبال داشت. [1]
توموگرافی رایانهای (CT) از پرتوهای اشعه ایکس برای به دست آوردن شدت پیکسلهای سهبعدی در بدن انسان استفاده میکند. کاتد گرم شده پرتوهای پرانرژی (الکترون) آزاد میکند که این خود باعث آزاد شدن انرژی به شکل تابش اشعه X میشود. اشعه ایکس از بافتهای بدن انسان عبور کرده و به یک ردیاب در طرف دیگر برخورد میکند. یک بافت متراکم (استخوانها) نسبت به بافتهای نرم (بهعنوان مثال چربی) اشعه بیشتری جذب میکند. وقتی اشعه ایکس در بدن جذب نمیشود (از ناحیه هوا در داخل ریهها عبور میکند) و به آشکارساز میرسد، آنها را سیاه میبینیم. در مقابل، بافتهای متراکم به رنگ سفید نشان دادهشدهاند. بهاینترتیب، تصویربرداری CT میتواند تفاوتهای تراکم را تشخیص داده و یک تصویر سهبعدی از بدن ایجاد کند. [2]
تصاویر CT-scan که در بیمارستانها گرفته میشود دارای فرمت DICOM هستند که مخفف Digital Imaging and Communications in Medicine است. این فرمت یک فرمت استاندارد جهانی است. فایلهای DICOM علاوه بر تصویر دارای اطلاعات دیگری هستند که به آنها header گفته میشود که در آنها اطلاعات مربوط به بیمار، پروتکلهای تصویربرداری و ... آمده است.
ریه یک اندام سهبعدی است. دستگاه CT-scan از بالای شانهها شروع به تصویربرداری از مقطعهای دوبعدی میکند و به سمت انتهای ریه (نزدیک شکم) حرکت میکند. پس در تصویربرداری از ریهی هر شخص تعدادی فایل DICOM بهدست میآید که مجموع آنها ریهی فرد را نشان میدهد.
با توجه به پروتکلهای محل تصویربرداری، مقاطع تصویربرداری ممکن کم و زیاد شود. هر چه مقاطع بیشتر باشد، تعداد تصاویر بیشتری برای یک شخص ایجاد میشود. همانطور که گفته شد، در قسمت header، اطلاعات تکمیلی وجود دارد که یکی از آنها شماره slice هر تصویر از بین تصاویر یک شخص است. در فرآیندهای آموزش، اگر نیاز باشد ترتیب تصاویر رعایت شود بهترین کار مرتب کردن دادهها بر اساس شماره slice است.
فایلهای DICOM با پسوند .dcm ذخیره میشوند. در python کتابخانههایی برای خواندن تصاویر DICOM وجود دارد که چگونگی کار با برخی از آنها را میتوانید در زیر مشاهده کنید.
کتابخانه pydicom
import pydicom ds = pydicom.dcmread(/path/to/dcm/file) image_2d = ds.pixel_array.astype(float)
کتابخانه medpy
from medpy.io import load image_2d, image_header = load(/path/to/dcm/file)
میزان جذب اشعه X در تصاویر CT-scan در مقیاس Hounsfield اندازهگیری میشود. در این مقیاس، شدت اشعه ثبتشده برای هوا به ۱۰۰۰- و این مقدار برای آب مقطر به صفر نسبت داده میشود. مقادیر برای برخی از بافتها بهصورت زیر است:
استخوانها از تراکم بالایی برخوردارند، به همین دلیل مقدار اشعهی ثبتشده برای آنها بسیار زیاد است. بیشترین مقادیر متعلق به فلزات است. این اعداد به دلیل وجود نویز ممکن است برای تصاویر واقعی کمی متفاوت باشد.
چشم انسان قادر به دیدن ۲۵۶ سطح خاکستری قابلتفکیک است، به همین دلیل نمایش تمامی سطوح در مقیاس Hounsfield منطقی نیست. برای حل این مشکل بهصورت استاندارد محدوده خاصی را با توجه به کاربرد در نظر میگیرند. بهصورت قرارداد، در تصاویر پزشکی برای کاهش دامنه Husenfield یک شدت مرکزی، به نام level و یک پنجره، با نام window تعریف میشود. همانطور که در شکل زیر مشاهده میکنید، برای این کار تنها دادههایی که به اندازه window / 2 از level فاصله دارند را مورد بررسی قرار میدهند.
در تصویربرداری از ریه بهصورت استاندارد دو پنجره، متعلق به بافت نرم و بافت ریه در نظر گرفته میشود: [2]
Chest:
lungs W:1500 L:-600
mediastinum W:350 L:50
همانطور که گفته شد، بازه تصاویر CT-scan از ۱۰۰۰- تا ۲۰۰۰+ است. کتابخانه pydicom همه این مقادیر را shift میدهد، بهطوری که مقدار کمینه برابر صفر میشود. همچنین تصاویر را به اندازه ۹۰ درجه در جهت ساعتگرد میچرخاند.
کتابخانه medpy مقادیر را در مقیاس Husenfield حفظ میکند. برای این که تصاویر CT-scan به فرم موجود در مجموعهدادهها دربیاید باید با ترانهاده کردن تصویر خواندهشده، چرخش را ایجاد نماییم. در کد زیر نحوه اعمال پنجره مورد نظر و نگاشت و ذخیره سازی آن را به صورت تصویر png میبینیم.
import numpy as np import png from medpy.io import load image_2d, image_header = load(/path/to/dcm/file) # Selecting the lung window level = -600 window = 1200 max = level + window/2 min = level - window/2 image_2d[image_2d < min] = min image_2d[image_2d > max] = max image_2d = image_2d.astype("float32") # Mapping to [0, 255] maxx = image_2d.max() minn = image_2d.min() image_2d_scaled = ((image_2d - minn) / (maxx - minn)) * 255.0 # Converting to uint8 image_2d_scaled = np.uint8(image_2d_scaled) image_2d_scaled = np.squeeze(image_2d_scaled) image_2d_scaled = np.transpose(image_2d_scaled) # Writing png with open(/path/to/png/file, 'wb') as png_file: w = png.Writer(512, 512, greyscale=True) w.write(png_file, file2w)
پنجرههای مختلف از یک تصویر در شکل زیر آمده است:
بهطورکلی ضایعات ریه به انواع مختلفی تقسیم میشوند که برخی از آنها عبارتند از:
شایعترین یافته غیرعادی ground glass opacities است. ریه در حالت طبیعی باید سیاه و دارای رگههای سفید واضحی باشد که نشاندهنده رگهای خونی در ریه هستند. در صورت درگیری ریه با این نوع ضایعه، بعضی از قسمتهای ریه دارای بخشهای سایهمانند خاکستری میشوند. در عفونتهای شدیدتر، مایعات بیشتری در لوبهای ریه جمع شده، بنابراین بخشهای سایهمانند خاکستری به solid white consolidation تبدیل میشوند. سرانجام، یافتهای به نام crazy paving pattern به دلیل تورم فضای بین بافتی در امتداد دیوارههای ریه به وجود میآید. [3]
یافتهها نشان میدهد که CT قفسه سینه به ضایعات COVID-19 بسیار حساس است؛ اما solid white consolidation و crazy paving pattern، در بقیه علل ذاتالریه ویروسی مثل آنفولانزا و آدنو ویروس هم دیده میشوند. این ضایعات حتی در انواع مختلف بیماریهای غیرعفونی هم دیده میشوند. [3]
پس از آشنایی با تصاویر CT-Scan میخواهیم به بررسی این مساله در دنیای واقعی بپردازیم. در پروژه واقعی نیاز است که با توجه به سری تصاویر برای هر شخص، تعیین شود که فرد مبتلا به COVID است یا خیر. همچنین مسالههای دیگری از جمله تشخیص میزان پیشرفت بیماری و قطعهبندی ضایعه نیز قابل تعریف است. در ادامه، برخی از مواردی که دانستن آنها به حل مساله کمک میکند را بررسی میکنیم.
واژه NifTi مخفف Neuroimaging Informatics Technology Initiative است که نوعی قالب پرونده برای تصویربرداری عصبی است. پروندههای NifTi بهطورمعمول در انفورماتیک تصویربرداری برای تحقیقات علوم اعصاب و حتی نورورادیولوژی مورد استفاده قرار میگیرند. همانطور که گفته شد فرمت استاندارد مراقبتهای بالینی، پروندههای DICOM هستند. با این حال، برخی از ابزارهای انفورماتیک تصویربرداری میتوانند پروندههای DICOM را بهصورت خودکار به قالب NifTi تبدیل کنند. فایلهای NifTi با پسوند .nii ذخیره میشوند. [4]
همه ما با تصاویر png آشنا هستیم. هر دو فرمت dcm و nii قابل تبدیل به png هستند. برای این کار کافی است که به بازه ۰ تا ۲۵۵ نگاشته شوند. با ترفندهایی میتوان png را نیز به DICOM و NifTi تبدیل کرد ولی این کار با از دست رفتن اطلاعات همراه است که ممکن است جزئیات حائز اهمیتی باشند. همچنین این کار باعث از دست رفتن اطلاعات header نیز میشود.
مجموعه دادههای بسیاری از هر سه فرمت گفته شده در این زمینه وجود دارند که در ادامه به چالشهای کار با هر کدام از آنها میپردازیم:
در این مطلب با تعریف مساله تشخیص بیماری کرونا از روی تصاویر سیتیاسکن با استفاده از هوش مصنوعی آشنا شدیم. همچنین انواع دادههای موجود برای حل این مساله را بررسی کردیم؛ اما باید توجه داشت که در مسیر حل این مساله چالشهای متفاوتی وجود دارد، مانند این که در مجموعه دادههای عمومی، طبقهبندی با توجه به هر slice صورت میگیرد؛ در صورتی که در دنیای واقعی نیاز است نتیجه برای دنبالهای از تصاویر که به یک شخص تعلق دارند تعیین شود. همچنین تعداد slice هایی که درگیری با کرونا را نشان میدهند، با توجه به مقدار پیشرفت بیماری متفاوت است و تعیین حد آستانه مناسب نیازمند آزمایشهای متعدد است. imbalanced بودن مجموعه دادههای موجود نیز بر پیچیدگیهای مساله اضافه میکند. همچنین باید این نکته را نیز در نظر داشت که در واقعیت طبقهبندی case های دارای ضایعهی خفیف با case های سالم بسیار دشوار است.
نویسنده: فاطمه جباری، بهار برادران افتخاری
[1] Jin, C., Chen, W., Cao, Y., Xu, Z., Tan, Z., Zhang, X., ... & Feng, J. (2020). Development and evaluation of an artificial intelligence system for COVID-19 diagnosis. Nature communications, 11(1), 1-14.
[2] https://theaisummer.com/medical-image-python/
[3] https://www.osmosis.org/learn/Imaging_features_of_COVID19_(LifeBridge_Health)
[4] https://radiopaedia.org/articles/nifti-file-format
[5] https://www.medrxiv.org/content/10.1101/2020.05.20.20100362v1