U-Net ConvLSTM دو جهته با شبکه کانولوشن با اتصال متراکم
شبکه عمیق خود رمزگذار- رمزگشا[1] برای تقسیم بندی تصاویر پزشکی با آخرین نتایج در زمینه تقسیم بندی ضایعات پوستی، تقسیم بندی ریه و تقسیم بندی عروق خونی شبکیه است. این روش لایه های LSTM کانولوشن دو طرفه در ساختار U-net را برای رمزگذاری غیر خطی اطلاعات معنایی و وضوح بالا با تکنیک غیر خطی اعمال می کند. علاوه بر این، از لایه های کانولوشن با اتصال متراکم استفاده می کند تا دانش جمعی را در نمایش و افزایش نرخ همگرایی با لایه های نرمال سازی شده به صورت دسته ای افزایش دهد.
مقالات بیس برای این کد پایتون:
- Azad, M. Asadi, Mahmood Fathy and Sergio Escalera “Bi-Directional ConvLSTM U-Net with Densely Connected Convolutions “, ICCV, 2019.
- Asadi, R. Azad, Mahmood Fathy and Sergio Escalera “Multi-level Context Gating of Embedded Collective Knowledge for Medical Image Segmentation”, The first two authors contributed equally. arXiv:2003.05056, 2020.
پیش نیازها و اجرا
این کد در زبان پایتون با استفاده از کتابخانه Keras با پشتیبان tensorflow اجرا شده است و در سیستم عامل اوبونتو آزمایش شده است، اگرچه باید با محیط مربوطه سازگار باشد. محیط و کتابخانه زیر برای اجرای کد مورد نیاز هستند:
- Python 3
- Keras – tensorflow backend
اجرای دمو
برای آموزش مدل عمیق برای هر کار، به پوشه مربوطه بروید و مراحل زیر را دنبال کنید:
تقسیم بندی ضایعات پوستی
- دیتاست ISIC 2018 train را در این پروژه دانلود کرده و هر دو مجموعه داده آموزشی و پوشه های حقیقت اصلی را در dataset_isic18 اکسترکت کنید.
- py را برای آماده سازی داده ها و تقسیم داده ها برای آموزش، اعتبار سنجی و مجموعه های آزمایشی اجرا کنید.
- برای آموزش مدل BCDU-Net با استفاده از دیتاست های trainng و validation ، py را اجرا کنید. این مدل برای 100 epoch آموزش داده می شود و بهترین وزن ها را برای مجموعه ارزشیابی ذخیره می کند. شما همچنین می توانید مدل U-net را برای این مجموعه داده با تغییر مدل به unet آموزش دهید، اما عملکرد آن در مقایسه با BCDU-Net پایین خواهد بود.
- برای محاسبه عملکرد و تولید نتیجه تقسیم بندی، py را اجرا کنید. این نشان دهنده اندازه گیری عملکرد است و شکل ها و نتایج مربوطه را در پوشه خروجی ذخیره می کند.
تقسیم بندی عروق خونی شبکیه چشم
- مجموعه داده Drive را از این پروژه دانلود کرده و پوشه های آموزشی و آزمایشی را در یک پوشه با نام DRIVE اکسترکت کنید (یک پوشه جدید با نام DRIVE بسازید)
- py را برای خواندن کل داده ها اجرا کنید. این کد تمام نمونه های آموزش و آزمایش را می خواند و آنها را به صورت یک فایل hdf5 در پوشه DRIVE_datasets_training_testing ذخیره می کند.
- مرحله بعدی استخراج patcheهای تصادفی از مجموعه آموزشی برای آموزش مدل است، برای انجام این کار، py را اجرا کنید، patcheهای تصادفی با اندازه 64*64 استخراج شده و به صورت فایل numpy ذخیره می شود. این کد از توابع help_functions.py ، spre_processing.py و extract_patches.py برای نرمال سازی داده ها و استخراج پچ استفاده می کند.
- برای آموزش مدل، py را اجرا کنید، داده های آموزشی بارگیری می شود و از 20٪ نمونه های آموزشی به عنوان مجموعه اعتبار سنجی استفاده می کند. این مدل برای 50 دوره آموزش داده می شود و بهترین وزن ها را برای مجموعه ارزشیابی ذخیره می کند.
- برای محاسبه عملکرد و تولید نتیجه تقسیم بندی، py را اجرا کنید. این معیار عملکرد را نشان می دهد و شکل ها و نتایج مربوطه را در پوشه تست ذخیره می کند.
توجه: برای پیش پردازش تصویر و استخراج patch از کد retina-unet-master استفاده شده است.
تقسیم بندی ریه
- مجموعه داده Leng Segmentation را از لینک Kaggle دانلود کرده و آن را اکسترکت کنید.
- py را برای آماده سازی داده ها، آموزش/جداسازی آزمایش و ایجاد ماسک های جدید در اطراف بافت های ریه اجرا کنید.
- برای آموزش مدل BCDU-Net با استفاده از مجموعه های trainng و اعتبار سنجی (20 درصد از مجموعه آموزش)py را اجرا کنید. این مدل برای 50 دوره آموزش داده می شود و بهترین وزن ها را برای مجموعه ارزشیابی ذخیره می کند. شما می توانید مدل BCDU-net را با 1 یا 3 کانولوشن با اتصال متراکم آموزش دهید.
- برای محاسبه عملکرد و تولید نتیجه تقسیم بندی، py را اجرا کنید. این نشان دهنده اندازه گیری عملکرد است و شکل ها و نتایج مربوطه را ذخیره می کند.
مرور کلی
ساختار LSTM دو طرفه کانولوشن که در شبکه ما استفاده شده است
ساختار BConvLSTM+SE که در شبکه ما استفاده شده است (MCGU-Net)
نتایج
برای ارزیابی عملکرد روش پیشنهادی، دو کار چالش برانگیز در بخش بندی تصویر پزشکی در نظر گرفته شده است. در زیر، نتایج روش پیشنهادی نشان داده شده است.
وظیفه 1: تقسیم بندی عروق خونی شبکیه
مقایسه عملکرد تقسیم بندی عروق خونی شبکیه چشم
به منظور مقایسه روش پیشنهادی با ارزیابی های پیشرفته در تقسیم بندی رگ های خونی شبکیه، ما مجموعه داده Drive را در نظر گرفتیم.
روش ها | سال | F1-scores | حساسیت | تشخیص پذیری | دقت | AUC |
Chen etc. all Hybrid Features | 2014 | – | 0.7252 | 0.9798 | 0.9474 | 0.9648 |
Azzopardi et. all Trainable COSFIRE filters | 2015 | – | 0.7655 | 0.9704 | 0.9442 | 0.9614 |
Roychowdhury and et. all Three Stage Filtering | 2016 | – | 0.7250 | 0.9830 | 0.9520 | 0.9620 |
Liskowsk etc. allDeep Model | 2016 | – | 0.7763 | 0.9768 | 0.9495 | 0.9720 |
Qiaoliang et. all Cross-Modality Learning Approach | 2016 | – | 0.7569 | 0.9816 | 0.9527 | 0.9738 |
Ronneberger and et. all U-net | 2015 | 0.8142 | 0.7537 | 0.9820 | 0.9531 | 0.9755 |
Alom etc. all Recurrent Residual U-net | 2018 | 0.8149 | 0.7726 | 0.9820 | 0.9553 | 0.9779 |
Oktay et. all Attention U-net | 2018 | 0.8155 | 0.7751 | 0.9816 | 0.9556 | 0.9782 |
Alom et. all R2U-Net | 2018 | 0.8171 | 0.7792 | 0.9813 | 0.9556 | 0.9784 |
Azad et. all Proposed BCDU-Net | 2019 | 0.8222 | 0.8012 | 0.9784 | 0.9559 | 0.9788 |
نتیجه تقسیم بندی عروق خونی شبکیه بر روی داده های آزمایش
تقسیم بندی ضایعات پوستی
ارزیابی عملکرد در بخش تقسیم بندی ضایعات پوستی
روش ها | سال | F1-scores | حساسیت | تشخیص پذیری | دقت | PC | JS |
Ronneberger and etc. all U-net | 2015 | 0.647 | 0.708 | 0.964 | 0.890 | 0.779 | 0.549 |
Alom et. all Recurrent Residual U-net | 2018 | 0.679 | 0.792 | 0.928 | 0.880 | 0.741 | 0.581 |
Oktay et. all Attention U-net | 2018 | 0.665 | 0.717 | 0.967 | 0.897 | 0.787 | 0.566 |
Alom et. all R2U-Net | 2018 | 0.691 | 0.726 | 0.971 | 0.904 | 0.822 | 0.592 |
Azad et. all Proposed BCDU-Net | 2019 | 0.847 | 0.783 | 0.980 | 0.936 | 0.922 | 0.936 |
Azad et. all MCGU-Net | 2020 | 0.895 | 0.848 | 0.986 | 0.955 | 0.947 | 0.955 |
نتایج تقسیم بندی ضایعات پوستی
تقسیم بندی ریه
ارزیابی عملکرد در بخش تقسیم بندی ریه
روش ها | سال | F1-scores | حساسیت | تشخیص پذیری | دقت | AUC | JS |
Ronneberger and etc. all U-net | 2015 | 0.9658 | 0.9696 | 0.9872 | 0.9872 | 0.9784 | 0.9858 |
Alom et. all Recurrent Residual U-net | 2018 | 0.9638 | 0.9734 | 0.9866 | 0.9836 | 0.9800 | 0.9836 |
Alom et. all R2U-Net | 2018 | 0.9832 | 0.9944 | 0.9832 | 0.9918 | 0.9889 | 0.9918 |
Azad et. all Proposed BCDU-Net | 2019 | 0.9904 | 0.9910 | 0.9982 | 0.9972 | 0.9946 | 0.9972 |
نتایج تقسیم بندی ریه
تقسیم بندی هسته های سلولی
نتایج تقسیم بندی هسته های سلولی
وزن مدل
می توانید وزن های آموخته شده برای هر وظیفه را در این پروژه دانلود کنید.
وظایف | دیتاست | وزن های آموخته شده |
Retina Blood Vessel Segmentation | Drive | BCDU_net_D3 |
Skin Lesion Segmentation | ISIC2018 | BCDU_net_D3 |
Lung Segmentation | Lung kaggle | BCDU_net_D3 |
شما می توانید فایل دیتاست تصاویر CT ریه را از پایگاه داده kaggle دانلود کنید.
کلیه فایلهای شبیه سازی پایتون، دیتاست و مقالات بیس را می توانید از این پروژه دانلود کنید.
سفارش پروژه مشابه دارید؟ به این صفحه مراجعه کنید.
[1] auto-encoder-decoder
پروژه مشابه دارید؟
برای ثبت سفارش در سیمیا می توانید از طریق اپلیکیشن سیمیا، یا فرم ثبت سفارش در سایت اقدام کرده و یا از طریق ایمیل، واتساپ، تلگرام و اینستاگرام اقدام نمایید.
اپلیکیشن سیمیا را از بازار و مایکت دانلود کنید.
سریع ترین راه پاسخگویی سیمیا، واتساپ می باشد. لینک واتساپ، اینستاگرام و تلگرام در پایین سایت وجود دارد.
نشانی ایمیل سیمیا simiya_ht@yahoo.com می باشد.
از برقراری تماس برای هماهنگی پروژه خودداری کنید، حجم بالای سفارشات به ما اجازه نمی دهد تا از طریق تلفن پاسخگوی شما عزیزان باشیم، حتما درخواست خود را به صورت مکتوب و از طریق یکی از راه های ذکر شده فوق ارسال نمایید، درخواست خود را به طور کامل و با تمام فایل ها و توضیحات لازم ارسال نمایید تا مدت زمان بررسی آن به حداقل برسد. پس از تعیین کارشناس، در اسرع وقت به شما پاسخ می دهیم.
نقد و بررسیها
هیچ دیدگاهی برای این محصول نوشته نشده است.