CUDA Programming Applications

کاربردهای برنامه نویسی کودا

CUDA Programming Applications

کاربردهای برنامه نویسی کودا

بخش بندی تصاویر با یادگیری عمیق

بخش بندی معنایی تصاویر ؟

در تصاویر کامپیوتری، واژه ” بخش بندی تصویر ” یا ” بخش بندی” به تقسیم تصویر به گروهی از پیکسل براساس برخی معیارها اشاره داردیک الگوریتم بخش‌بندی تصویر به عنوان ورودی و خروجی مجموعه‌ای از مناطق ( یا بخش‌ها ) را می‌گیرد.ناحیه‌بندی موثر اشیاء در تصویر رنگی یک مسئله مهم عملگرهای پردازش تصویر است. با ناحیه بندی مؤثر، عنصر مورد نظر را جدا می‌کنیم. برتری یک روش ناحیه بندی بر دیگر روش‌ها به مشخصات خاص مسئله‌ای که بررسی می‌شود، بستگی دارد. ناحیه‌بندی تصاویر رنگی در بسیاری از کارهای پردازشی بر روی تصاویر، چون تصاویر درمانی، بینایی ماشین، فشرده سازی تصویر، شئ شناسی، نیازی ضروری و مهم برای شروع پردازش بر روی شی یا بافت مورد نظر می باشد. برای مثال در تصاویر درمانی، یک پزشک با استفاده از دانش و تجربه ی خود به ناحیه بندی بافت مورد نظر در تصویر می‌پردازد. اما زمانی که تعداد تصاویر زیاد باشند و یا اینکه کانتراست و تغییر شدت روشنایی اشیاء نسبت به یکدیگر کم باشد و تصویر از لحاظ دید انسان نامناسب باشد، ناحیه بندی بسیار هزینه بر بوده (هم از نظر مالی و هم از نظر زمانی) و با خطا روبرو می گردد. بنابرین نیاز به خودکار کردن فرایند ناحیه بندی تصویر، امری لازم و ضروری می باشد. ناحیه بندی تصویر به روش های مختلفی صورت می پذیرد که به طور کلی می‌توان آنرا به دو دسته ی کلاسیک و شکل شناسی تقسیم بندی نمود. بخش بندی معنایی تصاویر یعنی تخمین کلاس برای هر پیکسل تصویر.

نحوه ناحیه بندی تصاویر ؟

ﺑﺨﺶﺑﻨﺪی ﺗﺼﻮﯾﺮ اوﻟﯿﻦ ﻣﺮﺣﻠﻪ و ﺑﺤﺮاﻧﯽﺗﺮﯾﻦ ﻣﺮﺣﻠﻪ از آﻧﺎﻟﯿﺰ ﺗﺼﻮﯾﺮ ﻣﯽﺑﺎﺷﺪ ﮐﻪ ﻫﺪﻓﺶ اﺳﺘﺨﺮاج اﻃﻼﻋﺎت داﺧﻞ ﺗﺼﻮﯾﺮﻣﺎﻧﻨﺪ (ﻟﺒﻪﻫﺎ ، ﻧﻤﺎﻫﺎ و ﻫﻮﯾﺖ ﻫﺮ ﯾﮏ از ﻧﻮاﺣﯽ) ﻣﯽﺑﺎﺷﺪﮐﻪ از ﻃﺮﯾﻖ ﺗﻮﺻﯿﻒ، ﻧﺎﺣﯿﻪﻫﺎی ﺑﺪﺳﺖ آﻣﺪه را ﺑﺮای ﮐﺎﻫﺶ آﻧﻬﺎ ﺑﻪ ﺷﮑﻞ ﻣﻨﺎﺳﺐ ﺑﺮای ﭘﺮدازش ﮐﺎﻣﭙﯿﻮﺗﺮ و ﺗﺸﺨﯿﺺ ﻫﺮ ﯾﮏ از ﻧﻮاﺣﯽ آﻣﺎده ﻣﯽﮐﻨﺪ.نتیجه بخش بندی ﺗﺎﺛﯿﺮ ﻗﺎﺑﻞ ملاحظه ای ﺑﺮ دﻗﺖ ارزﯾﺎﺑﯽ وﯾﮋﮔﯽﻫﺎﺧﻮاﻫﺪ داﺷﺖ ..ﺑﺨﺶﺑﻨﺪی اﻏﻠﺐ ﺷﺮح ﻓﺮآﯾﻨﺪ ﺗﻘﺴﯿﻢ ﺗﺼﻮﯾﺮ ﺑﻪ  اﺟﺰاء اﺻﻠﯽ و اﺳﺘﺨﺮاج ﻗﺴﻤﺘﻬﺎی ﻣﻮرد ﻋﻼﻗﻪ  اﺷﯿﺎء ﻣﯽﺑﺎﺷﺪ. بخش بندی یکی از مشکل ترین مباحث در پردازش تصویراست که در موفقیت عمل تحلیل تصویر بسیار موثر است. برای بخش بندی تصویر روشهای مختلفی وجود دارد که می توان انهارا به دو دسته روشهای مبتنی بر هیستوگرام(based -Histogram ) و روشهای مبتنی بر خوشه بندی(Clustering-Based) تقسیم کرد. که البته هر کدام از این دو روش دارای زیر مجموعه هایی نیز می باشند. در روشهای مبتنی بر هیستوگرام، بخش بندی تصاویر براساس توزیع پیکسلها صورت می گیرد. قدم اصلی در این روشها یافتن سطح استانه ای مناسب برای اعمال به تصویر میباشد. در روشهای مبتنی بر خوشه بندی برای گروه بندی کردن داده ها از شباهتها و روابط موجود بین آنها استفاده می شود. در این روشها داده ها به نحوی گروه بندی می شوند تا انهایی که در داخل یک بخش قرار می گیرند دارای بیشترین شباهت به هم باشند. کاربردهای زیرا می توان برای ناحیه بندی ذکر کرد:

 

ادامه مطلب ...

شناسایی چهره با استفاده از الگوی دودوئی محلی ترکیبی برپایه پردازنده گرافیکی جهت تسریع امر شناسایی افراد در پایگاه‌های نظامی

با‌‌توجه به محبوبیت و استفاده روز‌‌‌افزون از وسایل دیجیتال در زندگی روزمره بشر و همچنین گسترش به اشتراک‌گذاری تصاویر در شبکه‌های اجتماعی همچون فیس‌بوک، فلیکر، اینستاگرام و غیره و همچنین بارگذاری فیلم‌های مختلف در این شبکه‌ها، استفاده از تصاویر دیجیتال مخصوصا در دهه اخیر رشد قابل توجهی داشته‌است که در میان این تصاویر، درصد بالایی مربوط به تصاویر چهره انسان است و در مواردی از قبیل پایش تصویر برخط، تعامل انسان و ماشین، ردیابی شخص در ویدئو، بازیابی تصویر چهره افراد مجرم، کنترل تردد کارکنان سازمان و تفکیک دوست از دشمن در پایگاههای نظامی(از قبیل نیروی دریایی و ...)کاربردهای فراوانی دارد. بنابراین دقت و سرعت بازیابی در این مسئله حائز اهمیت است. در این مقاله دو روش برپایه الگوی دودوئی محلی ارائه شده است که در نهایت با تشخیص لبه ترکیب می‌شود. برای افزایش سرعت روش ترکیبی پیشنهادی بصورت موازی در محیط C++ CUDA اجرا شده است. در این مقاله میزان دقت و سرعت بر روی مجموعه داده‌های مختلف ارزیابی شد و بطور متوسط زمان پردازش در GPU تا‌حدود ۱۹ برابر در مجموعه دادهی با ۱۰۲۴ عکس در مقایسه با CPU کاهش یافت. نتیجه حاکی از این تحقیق بدین صورت بود که هرچه حجم مجموعه داده بزرگتر شود تاثیر موازی‌سازی بهتر است. بنابراین متغیرهایی که برای این مسئله ذکر می‌شود عبارتند از:۱- دقت کار ۲- زمان اجرا ۳-مقیاس پذیر بودن سیستم  

ادامه مطلب ...

Pytorch VS Tensorflow

در این مقاله قصد برآن است که فرض گرفته شود شما کار یادگیری عمیق را شروع کرده اید و یا در فکر شروع کردن آن هستید و بر سر دوراهی قرار گرفته اید که از کدام کتابخانه برای انجام پروژه هایتان استفاده کنید،  تنسورفلو و پایتورچ هردو کتابخانه های مشهور یادگیری عمیق هستند و شما صراحتا نمی توانید به تفاوت آن دو پی ببرید، بنابراین در اینجا 5 نکته در مورد این دو کتابخانه بیان شده است:

1- هر دوی اینها کتابخانه های open source هستند تنسورفلو توسط گوگل و پایتورچ توسط فیس بوک توسعه داده شده اند.

2- مهمترین اختلاف میان این دو فریم ورک تعیین گراف محاسباتی است، وقتی تنسورفلو یک گراف ایستا را ساخت پایتورچ معتقد به ساخت گراف محاسباتی پویا بودولی این به چه معنا هست؟ در تنسورفلو در ابتدا باید کل گراف محاسباتی ترسیم شود اما در پایتورچ در حین پیمودن مسیر(مخصوصا در زمانی که در شبکه های RNN ورودی های متغیر وجود دارند خیلی مفید است.)

3- پایتورچ نسبت به تنسورفلو خیلی پایتونیک تر است به عبارت دیگر برای استفاده از تنسورفلو شما باید یک کم بیشتر در مورد نحوه کار آن بیاموزید که نسبت به پایتورچ سخت تر است.

4- انجمن بزرگتری در پشت تنسورفلو نسبت به پایتورچ(بعلت نو بودن پایتورچ)قرار دارد، از این رو یافتن منابع آموزشی برای تنسورفلو نسبت به پایتورچ ساده تر است.

5-مقایسه های ذکر شده بدون ذکر TensorBoard ناقص خواهند بود، TensorBoard یک ابزار درخشان برای ایجاد امکان مجسم سازی مدل یادگیری ماشین شما هست که پایتورچ چنین ابزاری را ندارد، اگرچه شما می توانید از ابزاری مانند Matplotlib استفاده کنید و همچنین به شما این اجازه را خواهد داد که از TensorBoardدر پایتورچ استفاده کنید اما ذاتا از آن پشتیبانی نمی کند.


منبع:اینجا را کلیک کنید.

پردازش تصویر فازی

در این پایان نامه تحت عنوان پردازش تصویر فازی که متعلق به آقای معین نبی می باشد ابتدا به توضیح نظریه فازی پرداخته شده، سپس در فصل دوم پردازش تصویر شامل تشخیص لبه، بهبود تصویر، بخش بندی و حوزه فرکانس توضیح داده شده و در فصل سوم پردازش تصویر با منطق فازی توضیح داده شده و در نهایت کدهای متلب در پیوست ارائه شده است، این پایان نامه برای کسانی که قصد آشنایی با مفاهیم تئوری فازی و یادگیری پردازش تصویر با کمک منطق فازی هستند بسیار مفید است.