بخشی از مقاله

بررسی تسریع ثبت تصاویر پزشکی با استفاده از پردازش موازی روی GPU

چکیده
ثبت تصویر و یا image registration یک بخش کلیدی در تحلیل تصاویر پزشکی می باشد. در فرایند ثبت تصویر ، دو تصویر به گونه ای هم تراز می شوند که نقاطی روی تصویر اول به نقاط متناظری با مختصات آناتومی یکسان روی تصویر دوم تطبیق داده می شوند. اغلب تصاویر پزشکی در قاب (frame) های مختلفی از قسمت های یکسان بدن تهیه می شوند.
اولین چالش در مبحث ثبت تصاویر پزشکی، تفاوت شرایط کیفی تصاویراست که وابسته به نوع تجهیزات عکس برداری از بدن می باشد. چالش دیگر اندازه ی تصاویر پزشکی است که عموما به دلیل حجم بالا ی آنها پیچیدگی زمانی و محاسباتی بالایی نیاز دارند. در این مقاله به منظور کاهش زمان محاسباتی عملیات ثبت تصاویر از پردازشگرهای گرافیکی همه منظوره (GPGPU) استفاده شده است. با توجه به امکانات پردازش موازی که این پردازشگرها در اختیار قرار می دهند سرعت انجام محاسبات در مقایسه با پردازش توسط CPU تسریع می یابد. GPGPU واحد پردازش گرافیکی به منظور انجام پردازش های علمی عمومی است که به طور قابل ملاحظه ای دارای واحدهای پردازشی موازی بیشتری نسبت به CPU می باشد. استفاده مناسب از امکانات پردازش موازی این نوع پردازنده ها می تواند باعث تسریع انجام محاسبات گردد.

واژههای کلیدی:ثبت تصویر، GPU، پردازش موازی، تصاویر پزشکی، پردازنده
-1مقدمه
در این بررسی تکنیک های پردازش موازی قابل اجرا توسط واحد پردازش گرافیکی GPU و استفاده از آن برای تسریع در محاسبات ثبت تصاویر پزشکی مورد بررسی و مطالعه قرار می گیرد. ثبت تصویر یک فرایند به منظور هم تراز کردن دو تصویر است که هر نقطه روی یک تصویر را به نقطه ای با مختصات آناتومی یکسان در تصویر دوم مرتبط می سازد.
اغلب تصاویر پزشکی در شرایط زمانی و مکانی متفاوتی تهیه می شوند که نتیجه حاصل از آنها قاب های متفاوتی از اعضای بدن در تصاویر می باشد. اولین چالش در ثبت تصاویر پزشکی ماهیت مختلف روش های تهیه تصاویر می باشد. منظور از ماهیت روش ها نوع تجهیزاتی است که برای تهیه تصاویر اعضای بدن استفاده شده اند. به عنوان مثال در تصویر مغز انسان روش اشعه X( 2CT( به تشخیص شکستگی در امتداد کانتور جمجمه مغز کمک می کند در حالیکه روش MRI3 برای فراهم کردن کنتراست بیشتر بین بافت های نرم مختلف داخل جمجمه مفید است. گاهی اوقات استفاده از روش های یکسان اما با پارامترهای مختلف نیز می تواند منجر به تصاویری با مدل های متفاوت شود.
چالش دیگر درثبت تصاویر، اندازه تصاویر پزشکی است که معمولا بزرگ هستند و در نتیجه پیچیدگی زمانی و محاسباتی برای ثبت تصاویر بالاست. این موضوع زمانی پیچیده تر می شود که تصاویر متوالی سه بعدی متعددی از اندام یک بیمار تولید شده و لازم باشد که در یک فاصله زمانی بسیار کوتاهی ثبت شوند. به عنوان مثال در عمل جراحی مغز که در آن جراح به پیگیری مداوم مغز بیمار در یک شیوه بلادرنگ نیاز دارد و اندازه تصاویر سه بعدی بسیار بزرگ است. در یک تصویر سه بعدی با رزولوشن 256x256x64 بیش از 4میلیون وکسل وجود دارد . اگر محاسبات فرایند ثبت به صورت ترتیبی برای تمام وکسلها در یک واحد محاسباتی انجام شود مقدار قابل توجهی زمان نیاز دارد.به منظور کاهش زمان محاسباتی در ثبت تصاویر تلاش شده است که محاسبات به صورت موازی و توسط واحد پردازشگر گرافیکی همه منظوره (GPGPU) انجام شود. GPGPU واحد پردازش گرافیکی است که برای انجام محاسبات علمی عمومی مورد استفاده قرار می گیرد و دارای تعداد قابل ملاحظه ای واحدهای پردازشگر نسبت به CPU می باشد.یک واحد پردازشگر GPGPU قادر به انجام پردازشهای موازی و همزمان توسط واحدهای کاری متعددی می باشد. بنابراین بسیاری از محاسبات ثبت تصاویر را می توان به صورت موازی توسط GPUانجام داد.
در بخش دوم این مقاله به توضیح ثبت تصاویر پزشکی و عناصر روشهای آن خواهیم پرداخت . در بخش سوم به پردازش موازی توسط GPU و بسترهای نرم افزاری برای برنامه نویسی روی آن اشاره خواهیم کرد. در بخش چهارم نتایج عددی حاصل از چند آزمایش به منظور ثبت تصاویر پزشکی را بررسی می کنیم و در پایان نیز نتیجه حاصل از این مطالعه آورده شده است.
-2ثبت تصویر
ثبت تصویر یک بخش اصلی در تحلیل تصاویر پزشکی است. ثبت تصویر در واقع فرایند هم تراز کردن تصاویر بر اساس تطابق بین ویژگی های آنهاست. با هم تراز کردن دو عکس، پزشک به راحتی می تواند اطلاعات موجود در تصاویر پزشکی افراد را ترکیب کند و در نتیجه باعث سهولت در تشخیص بیماری می شود. در بسیاری از موارد فرایند ثبت برروی تصاویری که با استفاده از حسگرها و روش های متفاوتی مانند CT و MRI تهیه شده اند، انجام می شود.ثبت تصاویری که دارای کیفیت و ویژگی های مختلفی هستند مشکل تر از تصاویر یک کیفیته است زیرا بخش های یکسان از تصویر ممکن است دارای مقادیر شدت متفاوتی برای ویژگی های مختلف باشند و جمع ساده ی مجذور تفاوت ها قابل دستیابی نباشد. روش های ثبت تصویر متعددی تاکنون ارائه شده اند که از جمله انها می توان روش ثبت تصویر مبتنی بر قاب استریوتاکتیکL. Lemieux and R. Jagoe( 4 ، 1994و[6](1928-1915، ثبت بر اساس نقطه عطف آناتومیک 5 ،(A. C. Evans, S. Marrett، 1991 و [1](78-69، ثبت بر اساس سطحY. Ge, C . R. Maurer, and J. ) 6 M. Fitzpatrick، 1996 و [12]( 367-358 ، و ثبت بر اساس شدتXiaolu Sun) 7 ،2010 و [11] (13-10، را نام برد. روش استریوتاکتیک دقیق اما برای پیاده سازی بسیار سنگین و پرزحمت است. روش نقطه عطف آناتومیک دارای پیچیده گی محاسباتی زیادی می باشد اما اگر نشانه ها توسط افراد خبره و کارشناس مشخص شوند پیچیدگی محاسبات کمتر می شود. روش ثبت بر اساس سطح برای تصاویر چند کیفیته مناسب نیست در مقابل روش بر اساس شدت برای تصاویر چند کیفیته دقیق و مناسب است. عناصر اصلی یک الگوریتم ثبت تصویر عمومی شامل یک تبدیل کننده، یک محاسبه گر فاصله تصاویر و یک بهینه ساز می باشد. ثبت یک فرایند تکراری است که یک تصویر را به یک فضا با پارامترهای از پیش تعیین شده تبدیل کرده و با تصویر دیگری مقایسه می کند. تصویر قبلی را متحرک و تصویر بعدی را ثابت می نامیم. اندازه شباهت یا فاصله میان تصاویر در هر گام محاسبه شده و برای تعیین اینکه تصاویر هم تراز شده اند استفاده می شود. این فرایند توسط یک بهینه ساز کنترل می شود. در ادامه به توضیح این عناصر می پردازیم.

تبدیل کننده (Transformer)

تبدیل کننده نقاط تصویر متحرک را به محل های جدید در تصویر تبدیل یافته نگاشت می کند. بر اساس مسئله ثبت یک تبدیل کننده می تواند خطی یا دگردیس کننده باشد. تبدیلات خطی خطوط را حفظ می کنند یعنی خطوط مستقیم را به خطوط مستقیم نگاشت می کنند. روش های تبدیل دگردیس کننده می تواننند به صورت پارامتری و غیرپارامتری دسته بندی شوند.
تبدیل کننده شدت نقاط در تصویر تبدیل یافته را با استفاده از درون یابی مقادیر شدت نقاط مرتبط در تصویر متحرک تعیین می کند. ساده ترین و سریعترین روش درون یابی روش نزدیکترین همسایه است اما در عمل هرگز از آن استفاده نمی شود. یک تبدیل کننده قسمت عمده زمان اجرای خود را صرف درون یابی می کند. C. R. Castro-Pareja) ، 2003و [3](434-426

محاسبه گر فاصله((Measure
یک روش اندازه گیری تشابه یا فاصله میان تصاویر برای ثبت خودکار مورد نیاز است. در حالت ایده آل وقتی که تصاویر به طور کامل هم تراز شده باشند اندازه شباهت به حداکثر مقدار خود می رسد و زمانی کاهش می یابد که تصاویر از هم دور شوند. از طرف دیگر زمانی اندازه فاصله به کمترین مقدار خود می رسد که تصاویر هم تراز شده باشند.
بهینه ساز (Optimizer)
بهینه ساز مسئول یک استراتژی کار آمد و اغلب ناکامل برای دستیابی به پارامترهای فضای تبدیل به منظور بهترین تطابق میان تصاویر است. بهینه سازها می توانند به طور گسترده به صورت براساس گرادیان یا غیر گرادیان، سراسری یا محلی و سریال یا موازی دسته بندی شوند. کارایی کلی یک الگوریتم ثبت تصویر وابسته به تاثیر استراتژی بهینه ساز است. این به نوبه ی خود بستگی به تکرارهای مورد نیاز برای همگرایی الگوریتم دارد. سرعت همگرایی یک بهینه ساز به فاکتورهای زیادی وابسته است به عنوان مثال اندازه پارامترهای فضا، تنظیمات بهینه ساز و به هم ریختگی میان تصاویر.
تنگنای محاسباتی ثبت تصاویر در قسمت بهینه ساز نمی باشد اما در مقابل محاسبات تبدیل و محاسبه گر اندازه تصاویر، تنگنا هستند به همین دلیل بیشتر محققان روی موازی سازی این عناصر تمرکز کرده اند. مقیاس های تک کیفیته مانند جمع مجذور تفاوت ها 8 (SSD)و ضریب همبستگی 9 (CC ) از شدت محاسبات کمتری نسبت به مقیاس های چند کیفیته مانند اطلاعات مشترک (MI) 10و نرخ همبستگی 11 (CR)برخوردارند. محاسبات MI به یک تخمین از چگالی احتمال شدت تصویر نیاز دارد و این به طور معمول مستلزم یک هیستوگرام ادغامی از شدت تصویر است.

-3 پردازش موازی توسط GPU و بسترهای نرم افزاری برای برنامه نویسی روی آن
بسترهای نرم افزاری GPU محبوبیت زیادی در انجام محاسبات و فشرده سازی آنها دارند و برای انجام محاسبات کاربردی به صورت موازی بسیار مناسب هستند.GPU دارای واحدهای پردازشی زیادی برای انجام عملیات ریاضی بصورت موازی می باشد . زمان دسترسی به حافظه نیز می تواند بدون نیاز به حافظه نهان بزرگ نادیده گرفته شود. بسیاری از برنامه های کاربردی مانند پردازش تصویر، پردازش سیگنال های عمومی، شبیه سازی های فیزیکی یا محاسبات مالی می توانند با پردازش موازی روی GPU تسریع یابند . معمولا GPU دارای پهنای باند حافظه بزرگتر و واحدهای پردازشی بیشتری نسبت به CPU است و همچنین دارای برتری در انجام عملیات ممیز شناور نیز می باشد. ما روی آخرین تکنولوژی های پردازش عمومی روی GPU بحث خواهیم کرد . اخیرا بسترهای نرم افزاری جدیدی برای برنامه نویسی عمومی روی GPUاز قبیل NVIDIA’s CUDA[4]و AMD/ATI’s Brook+ [2] (Jagoe, 1994)ارائه شده اند . در اکثر کارهای تحقیقاتی از بستر CUDA استفاده شده است که به نظر می رسد جامعه تحقیقاتی تقریبا به طور انحصاری بستر CUDA را به عنوان فرم مورد نظر خود به تصویب رسانده است واین با احتمال بسیار زیاد با حمایت گسترده OpenCl در معماری های غیر GPU مانند IBM’s Cell/BEو Intel’s Larrabee تغییر خواهد کرد.CUDAتوسعه یافته به وسیله NVIDIA یک مدل برنامه نویسی موازی و محیط نرم افزاری است که به منظور مدیریت وظایف پردازشی موازی طراحی شده است. همچنین به توسعه دهندگان این امکان را می دهد که از زبان برنامه نویسی C به عنوان یک زبان سطح بالا استفاده کنند. انتزاع عمده آن عبارت است از یک سلسله مراتب از نخ های گروهی، حافظه اشتراکی و یک سد هماهنگ کننده. این ساختار شبیه مدل موازی دستورالعمل واحد و داده های متعدد 12 (SIMD) است.CUDA را می توان به این صورت توصیف کرد:

· یک برنامه به بلوک هایی که می توانند به صورت موازی اجرا شوند تقسیم می شود. هر بلوک گروهی از نخ هاست که به یک واحد دارای چند پردازشگر به وسیله برنامه نویس با استفاده از حافظه اشتراکی نگاشت می شود.
· همه نخ ها به تارهایی سازماندهی می شوند. هر تار یک عامل هسته را در هر واحد زمان اجرا می کند. مجموعه تارها روی چندپردازشگر اجرا می شوند و از قسمتی از حافظه محلی استفاده می کنند. بنابراین برنامه نویس آزادانه می تواند تعدادی نخ برای اجراشدن طراحی کند.
· GPU نخهای زیادی را به صورت موازی با استفاده از هسته روی هریک از آنها پردازش می کند. هسته یک کد واقعی به منظور اجرا به وسیله نخ ها می باشد.
GPU های جدید الگوی دستورالعمل واحد و داده های متعدد (SIMD) را به معماری دستورالعمل واحد و چند نخی (SIMT) 13گسترش داده اند.SIMT با موازی سازی برای اغلب نخ های مستقل به مانند کد داده های موازی انعطاف بیشتری را فراهم می کند. GPU ها با اختصاص ترانزیستورهای بیشتر به واحدهای محاسبه و منطق خود (ALU)برای پردازش داده ها به سطح بالایی از کارایی با هزینه کمتر در کنترل جریان و ذخیره داده ها دست یافته اند. آنها همچنین راحتی و سهولت سطوح موازی نخها را با معرفی دو لایه اضافی موازی سازی در قالب گروههایی شبیه دسته ای از نخها که به هم تابانده شده اند و به عنوان تار شناخته می شوند افزایش می دهند. گروهی از این تارها به عنوان بلوک نخ یا بلوک های ساده شناخته می شوند. تارها واحد کنترل جریان در یک GPU را تعریف می کنند و لذا دارای اهمیت هستند. نخ های موجود در یک تار محدود به اجرای دستورالعمل یکسانی هستند( روی داده های مختلف). مسیرهای اجرایی واگرای نخ ها در یک تار اجرای سریال همه مسیرها را نتیجه می دهد. بنابراین یک ملاحظه بسیار مهم در تطابق کد موازی روی معماری GPUحداقل کردن واگرایی در تارهاست. این هدف می تواند با طراحی الگوریتم های تار آگاه و سازماندهی محدود داده ها به منظور بهینه سازی کنترل جریان بدست آید. یک نمونه از چنین رویکردی در(R. Shams، [7](2005 ارائه شده است. یکی دیگر از ویژگی های فنی قابل توجه در نسل جدید GPU ها دسترسی به پهنای باند بسیار زیاد روی RAM است. پهنای باند حافظه GPU ها بیش از40GB/S و کارت هایی تا 4GB حافظه در دسترس هستند. این مخصوصا برای برنامه های کاربردی آنالیز تصاویر پزشکی که با مجموعه داده های بزرگ سه بعدی سر و کار دارند بسیار مهم است. با وجود پهنای باند بسیار بالا، حافظه اصلی GPUتا حد زیادی غیر پنهان می باشد و از تاخیر نسبتا بالایی رنج می برد. از این رو استفاده کامل از پهنای باند و دستیابی به یک عملکرد بهینه نیاز به درک معماری سخت افزار و حافظه های مختلف آن دارد.استفاده بهینه از حافظه مانند انتقال های توام ممکن است یک برنامه کاربردی را تسریع بخشد. این سطح از انعطاف معمولا با API های سطح پایین تر و SDKهای در زمان اجرا مانند CUDA(NVIDIA) و CAL(ATI/AMD) قابل دستیابی است. برنامه های توسعه یافته با یک API سطح پایین تر قابل حمل نیستند و با تکامل سخت افزار نیازمند نگهداری و حمایت هستند. لایه های انتزاعی مانند OpenCl و Brook+ با پنهان کردن جزئیات مدیریت حافظه از این مسائل جلوگیری می کنند اگرچه قابلیت حمل بهتر ممکن است باعث کاهش عملکرد بهینه شود به دست آید R. Shams)، 2010و[8]. (52-51GPU ها برای تسریع تبدیلات هندسی بسیار مناسب هستند. تبدیلات هندسی بدون در نظر گرفتن نوع آنها نیازمند نوعی درون یابی هستند که شامل خواندن محتوای وکسل های مجاور در یک ناحیه مکعب حافظه هستند. معماری های

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید