بخش بندی تصویر چیست؟ – توضیح Image Segmentation به زبان ساده
در حوزه بینایی ماشین با کمک بخش بندی تصاویر، هر تصویر را به اجزای تشکیل دهنده آن تقسیم کرده و تلاش داریم که حداکثر اطلاعات را از تصویر یا ویدئو مورد نظر استخراج کنیم. برای اینکه بدانیم بخش بندی تصویر چیست باید به روند رو به تکامل بینایی ماشین توجه کنیم. بینایی ماشین نه تنها برای تشخیص اشیای در محدوده دید و برچسبگذاری آنها تکامل یافته است، بلکه حتی برای شرح دادن شکل کلی آن اشیا به صورت دقیق تقویت شده است. این کار را با استفاده از تکنیک «بخش بندی تصویر» (Image Segmentation) و بدون در نظر گرفتن شکل فعلی آن شیء در تصویر انجام میدهد. مهم نیست که در کجا باشیم. هزاران شیء مختلف ما را محاصره کردهاند و در صورت قابل مشاهده بودن آنها بلافاصله با کمک چشمهایمان میتوانیم همه را شناسایی کنیم. اما مسئله مهم دنیای هوش مصنوعی، آموزش شناخت اشیا در محدوده دید به کامپیوتر است.
با کمک بخش بندی تصویر میتوانیم دامنه دقت و صحت تشخیص تصاویر را به طور چشمگیری ارتقا دهیم. این افزایش کیفیت عملکرد، به طور خاص در وظایف مربوط به «حاشیهنویسی تصویر» (Image Annotation) نیز مشاهده میشود. افزایش کیفیت عملکرد در حوزه بخشبندی تصویر، کمک زیادی به پیشرفتهای نوآورانه در حوزه فنآوری میکند. به عنوان نمونه میتوان از تصویربرداری پزشکی، کشاورزی، تصاویر ماهوارهای، هوش مصنوعی برای وسایل نقلیه خودران و سایر چنین مواردی نامبرد. در این مطلب از مجله فرادرس در ابتدا میبینیم که بخش بندی تصویر چیست سپس با انواع بخش بندی تصویر آشنا میشویم. در نهایت هم متوجه میشویم که کاربردهای بخش بندی تصویر چیست.
بخش بندی تصویر چیست؟
بخش بندی تصویر یکی از وظایف بسیار مهم و حیاتی در «بینایی کامپیوتر» (Computer Vision) است که باعث پیشرفت خوبی در رشته تشخیص اشیا شده است. همینطور که از نام این روش مشخص است، شامل تقسیم کردن تصویر به بخشهای کوچکتر و اختصاص برچسبی به هر کدام از بخشها میشود. انجام این فرایند در سطح پیکسلها باعث ایجاد طرح کلی و دقیقی از هر شیء در درون قالب و کلاس خودش میشود. این طرحهای کلی - که به عنوان خروجی هم شناخته میشوند - معمولا بسته به نوع بخشی که متعلق به آن هستند، با یک یا چند رنگ «نشانهگذاری» (Highlight) میشوند.
در ادامه این مطلب، شباهتها و تفاوتهای قابل توجه بین بخش بندی تصویر را با سایر وظایف مربوط به بینایی ماشین، مانند تشخیص اشیا و غیره به صورت بیشتری توضیح دادهایم. اما در ابتدا باید به صورت دقیق متوجه شویم که بخش بندی تصویر چیست.
برای اثرگذارتر کردن بخش بندی تصویر در «یادگیری ماشین» (Machine Learning)، سیستم را با مجموعههای داده از قبل بخش بندی شده آموزش میدهند. این مجموعهها یا به صورت دستی بخش بندی شدهاند یا از مجموعه دادههای اوپن سورس استفاده میشود. در بخشهای بعدی مطلب، چند مورد از بهترین مجموع دادههای اوپن سورس را برای آموزش بخش بندی تصویر، معرفی کردهایم. با کمک این روش، سیستم میآموزد که چگونه تصاویر را با دقت بالا بخش بندی کند. همچنین بر روی تصاویری که از قبل هم دیده نشدند عملیات بخشبندی را انجام دهد.
انواع روش های پردازش تصویر و ویدئو
قبل از اینکه بدانیم بخش بندی تصویر چیست در ابتدا بهتر است که نسبت به پردازش تصویر، اطلاعاتی داشته باشیم. زیرا بخش بندی تصویر یکی از زیر مجموعههای حوزه کلی پردازش تصویر و ویدئو توسط هوش مصنوعی است. امروزه هوش مصنوعی تقریبا در همه حوزههای زندگی بشر نفوذ کرده است. برای دادن مسئولیتهای بیشتری به سامانههای خودکار و هوشمند، نیاز است که آن سامانهها توانایی جمع آوری اطلاعات بهتر و بیشتری هم داشته باشند. یکی از بهترین روشهای جمعآوری اطلاعات استفاده از دوربینها و مشاهده اطراف است.
سامانههای مجهز به هوش مصنوعی با استفاده از توانایی بینایی ماشین - که توسط انسان توسعه داده شده است - به محیط اطراف خود اشراف دارند. این صنعت یکی از پر رونقترین و روبهرشدترین صنایع حال حاضر دنیای تکنولوژی است. به همین دلیل در فرادرس تصمیم گرفته شده که فیلمهای آموزشی بسیار مناسبی در این بابت برای دانشجویان و علاقهمندان به این حوزه تولید شود. در پایین میتوانید چند مورد از این فیلمهای آموزشی را مشاهده کنید. در صورت تمایل با کلیک بر روی تصویر بالا وارد صفحه اصلی این مجموعه آموزشی شده و از فیلمهای بیشتری نیز دیدن کنید.
- فیلم آموزش پردازش تصویر در متلب با فرادرس
- فیلم آموزش مقدماتی پردازش تصویر با اپن سی وی OpenCV در پایتون با فرادرس
- فیلم آموزش پردازش و طبقه بندی تصاویر پزشکی با Python در فرادرس
- فیلم آموزش تشخیص و شناسایی اشیا با شبکه های عصبی در متلب با فرادرس
انواع بخش بندی تصویر چیست؟
بخش بندی تصویر کاربردها و در نتیجه روشهای پیادهسازی متفاوتی نیز دارد. بنابراین، حوزه بخش بندی تصویر را به طور کلی، میتوان به سه زیر شاخه مجزای زیر تقسیم کرد.
- «بخش بندی نمونه» (Instance Segmentation)
- «بخش بندی معنایی» (Semantic Segmentation)
- «بخش بندی همه جانبه» (Panoptic Segmentation)
بخش بندی همه جانبه اشاره به زیربناییترین تعریف از بخش بندی تصویر دارد. این شاخه اشاره به شناسایی پیکسلها، دستهبندی آنها و تخصیص برچسب به هر دسته در تصویری دارد که یک شیء کامل را تشکیل میدهند. در طول انجام این کارها بر روی تصویر داده شده، ماسک بخش بندی ایجاد میشود. این ماسک به همه پیکسلهای تصویر برچسب میزند.
بخش بندی نمونه
«بخش بندی نمونه» (Instance Segmentation) شبیه به بخش بندی همه جانبه است. همه اشیاء همراه با مرزشان باید در تصویر تشخیص داده شوند. اگرچه هر شیء جدیدی به عنوان نمونه متفاوتی برچسب خواهد خورد. حتی اگر در یک دستهبندی باشند. برای مثال در کره زمین میلیاردها انسان وجود دارند، اما هیچ دو نفری به صورت الزامی شبیه به یکدیگر نیستند. بخاطر سادهسازی مطلب به عکس زیر توجه کنید.
این عکس شامل چهار شخص مختلف است. هر چهار نفر انسان هستند، اما اشخاص مختلفی که میتوانند در صفاتی مانند نژاد، قد، سن، جنسیت و غیره با هم تفاوت داشته باشند. در طول انجام وظایف مربوط به بخش بندی نمونه، همه آنها به صورت کلی باید به عنوان انسان - اما به عنوان نمونههای مختلفی از کلاس انسان - شناسایی شوند. در طول فرایند آموزش «شبکه عصبی» (Neural Network)، میتوان هر بخش برچسبگذاری شده در دستهبندی انسان را به عنوان نمونهای جداگانه از سایر انسانها انتخاب کرد.
تصویر زیر، نشان میدهد که عملیات بخش بندی نمونه بر روی عکس اصلی چگونه کار میکند. تمام اشخاص حاضر در این تصویر با برچسبهای رنگی متفاوتی نمایش داده شدهاند. این تفاوت را حتی در برچسبهای رنگی لیوانها یا جامها نیز میتوان دید.
بخش بندی معنایی
بعد از اجرای عملیات «بخش بندی معنایی» (Semantic Segmentation)، ماسکهای بخش بندی، تصاویر کاملا برچسبگذاری شدهای را نشان میدهند. یعنی هر پیکسل به دستهبندی خاصی تخصیص داده شده است. به این معنا که هر پیکسل در تصویر، فارق از اینکه عضو نمونه یکسانی هستند یا نه، باید به دستهبندی خاصی تعلق پیدا کند. اگرچه در تصویر زیر همه پیکسلهای متعلق به دستهبندی یکسان به عنوان بخشی مجزا نمایش داده شدهاند. اگر دو پیکسل در دستهبندی انسان قرار بگیرند، پس مقادیر پیکسل مربوط به ماسک بخش بندی برای هر دوی آنها، مقدار یکسانی خواهد بود.
همان عکسی که برای نمایش بخش بندی نمونه مورد استفاده قرار گرفته بود، در پایین به عنوان ماسک بخش بندی معنایی نیز بهکار رفته است. اکنون میبینید که همه اشخاص حاضر در تصویر از برچسب رنگی یکسانی - نارنجی - برخوردار شدهاند. به همین ترتیب، تمام لیوانها یا جامها نیز با برچسب رنگی یکسانی - سبز - علامتگذاری شدهاند. اما در این عکس رنگ اضافی خاکستری هم دیده میشود. این رنگ با عنوان برچسب «پسزمینه» تعریف شده است.
تکنیکهای بخش بندی معنایی و بخش بندی نمونه با اهداف جداگانهای بهکار برده میشوند. به عنوان مثال از بخش بندی معنایی تصاویر برای تمییز دادن پسزمینه و دستهبندیهای موجود در تصویر استفاده میشود. تکنیکهای بخش بندی نمونه برای شناسایی شکل دقیق مربوط به هر نمونه از دستهها در تصویر بهکار برده میشوند.
بخش بندی نمونه، تنوع اشیا موجود در تصویر را تشخیص داده و در زمان انجام بخش بندی مورد توجه قرار میدهد. این قسمت تفاوت اصلی بین بخش بندیهای نمونه و معنایی است. مسئله اصلی در بخش بندی معنایی این است که در زمان نیاز به برچسبگذاری دقیق، این روش مناسب نیست. به عنوان مثال وقتی که باید بین گونههای مختلف حیوانات یا گیاهان تمایز قائل شویم، هوش مصنوعی باید بتواند برچسبگذاری دقیقی با حداقل خطا انجام دهد.
بخش بندی همه جانبه
«بخش بندی همه جانبه» (Panoptic Segmentation) ترکیبی از بخش بندیهای نمونه و معنایی است. در زمان بخش بندی همهجانبه، کل تصویر باید برچسبگذاری شود. یعنی پیکسلهای بین همه نمونهها باید از مقدارهای متفاوتی برای برچسبگذاری استفاده کنند، حتی اگر بعضی از نمونهها در یک دستهبندی جای بگیرند. بر روی تصویری یکسان با نمونههای بالا در این روش، ماسک بخش بندی به صورت نمایش داده شده در پایین برچسبگذاری میشود.
بخش بندی همه جانبه، وظیفه پیچیدهای در بینایی کامپیوتر است که مسائل مربوط به بخش بندیهای معنایی و نمونه را به صورت همزمان حل میکند. این روش به عنوان مثال به صورت گسترده در وسایل نقلیه خودران استفاده میشود. جایی که دوربین این وسیله باید اطلاعات بسیار دقیق و جزئی را از محیط اطراف خودرو فراهم کند.
بخش بندی تصویر در مقایسه با تشخیص اشیا
اغلب اوقات بخش بندی تصویر با سایر تکینکهای حاشیهنویسی تصویر مانند «دستهبندی تصویر» (Image Classification)، «تعیین موقعیت» (Localization) و «تشخیص اشیا» (Object Detection) ادغام میشود. در حالی که ظاهرا شبیه به یکدیگر هستند اما در واقع این موارد با یکدیگر تفاوتهای اساسی دارند. الان که به صورت دقیق فهمیدیم بخش بندی تصویر چیست، بهتر است به صورت خلاصه ویژگیهای هر کدام از تکنیکهای نامبرده شده را نیز تعریف کنیم.
- Image Classification: کلاس مجزایی به هر تصویر اختصاص داده میشود. این کلاس عمدتا به شیء اصلی که در عکس به تصویر کشیده شده مربوط است. اگر تصویری شامل شیء گربه شود، به عنوان «گربه» دستهبندی میشود. اگرچه با کمک دستهبندی تصاویر نه مکان دقیق گربه در تصویر مشخص میشود و نه میتوانیم حدود آن را مشخص کنیم، کاری که با کمک تکنیکهایی مانند تعیین موقعیت، تشخیص اشیا یا بخش بندی تصویر ممکن میشود.
- Object Detection: اشیائی تشخیص داده شده درون عکس یا فیلم با کمک «کادر محصور کننده» (Bounding Box) علامتگذاری و سپس برچسبگذاری میشوند. تفاوت اصلی بین تشخیص اشیا و بخش بندی تصویر در خروجی نهایی تولید شده آنها است. در تشخیص اشیا، ویژگی اصلی کادر محدودکنندهای است که به دور مرزهای هر شی به صورت مربع یا مستطیلی رسم میشود. در عوض بخش بندی تصویر، تمام طرح کلی شیء را در نظر میگیرد. بدون اینکه حاوی هیچ بخشی از تصویر پسزمینه باشد.
- Localization: با کمک تکنیک تعیین موقعیت تصویر یا شیء، میتوانیم موقعیت دقیق سوژه اصلی تصویر را تشخیص دهیم. اگرچه تکنیک تعیین موقعیت هیچ کلاسی را به سوژه اصلی شناخته شده در تصویر اختصاص نمیدهد. فقط بر روی شیء اصلی شناخته شده و تعیین موقعیت آن نسبت به سایر اشیا موجود در تصویر تمرکز میکند.
انواع روش های بخش بندی تصویر چیست؟
روشهای زیادی برای بخش بندی تصاویر تعریف شدهاند. بعضی از این روشها کلاسیک هستند و بعضی دیگر مدرن. هر کدام از این روشها، از رویکردهای خاصی برای تولید خروجی نهایی به ازای تصویر یا ویدئوی داده شده استفاده میکنند. در فهرست زیر چند مورد از رایجترین تکینیکهای بخش بندی تصویر را نامبردهایم. این موارد فقط بخشی از تکنیکهای متنوع انجام عملیات بخش بندی هستند.
- «بخش بندی بر اساس ناحیه» (Region-Based Segmentation)
- «بخش بندی تشخیص لبه» (Edge Detection Segmentation)
- «آستانهگذاری» (Thresholding) - آستانهگذاری به ندرت به عنوان راه حل کاملی برای فرایند بخش بندی تصاویر استفاده میشود. معمولا استفاده اصلی این تکنیک در مرحله پیشپردازش است. آستانهگذاری را میتوان بر اساس منطقه خاصی در عکس نیز انجام داد.
- «خوشه بندی» (Clustering)
در ادامه مطلب نگاه نزدیکتری به روش اجرای عملکرد بعضی از این تکنیکها خواهیم داشت.
بخش بندی بر اساس ناحیه
در اولین تکنیک به دنبال شباهتهای موجود در پیکسلهای بخشهایی میگردیم که در مجاورت مستقیم یکدیگر هستند. پیکسلهای مجاورت هم احتمال بیشتری دارد که به شیء یکسانی نیز تعلق داشته باشند. این تکنیک شباهتها و تفاوتهای پیکسلهای کنار هم را تجزیه و تحلیل میکند و بر اساس دادههای بدست آمده مرزهای اشیا را در تصاویر تشخیص میدهد. یکی از نقاط ضعف این روش در زمانی است که در داخل تصویر، مقدار وضوح و نور کم و زیاد میشود. این کار میتواند باعث شود که مرزهای شیء به درستی تشخیص داده نشوند.
تشخیص لبه
با هدف برطرف کردن نقاط ضعف روش بخش بندی بر اساس ناحیه، روش بخش بندی بر اساس تشخیص لبه طراحی شده است. الگوریتمهای این روش، برای اینکه بتوانند نتایج قابل اتکاتری تولید کنند، بر روی لبههای شیء تمرکز میکنند. این کار با کمک شناسایی و دستهبندی پیکسلهای مشخصی به عنوان پیکسلهای لبه - به عنوان اولین کار در این روش - انجام میشود. روش تشخیص لبه بهترین کارایی خود را در مواردی دارد که اشیا موجود در تصویر، خطوط مرزی مشخصی دارند. علاوه بر این، پیادهسازی روش تشخیص لبه برای وظایف روزمره در مقایسه با سایر تکنیکها سادهتر است. پیادهسازی سایر تکنیکها میتواند شامل صرف زمان خیلی بیشتری شود.
ماسک مخصوص تشخیص لبه، معمولا ماسکی باینری به شکل {۰، ۱} است. در این ماسک عدد ۱ نشاندهنده پیکسلهای لبه است. تصویر نمایش داده شده در پایین، ماسک لبهای را برای تصویر ورودی نشان میدهد. پرطرفدارترین الگوریتمهای تشخیص لبه در حوزه «پردازش تصویر» (Image Processing) شامل موارد فهرست زیر هستند.
- تشخص لبه Canny: این تکنیک برای صاف کردن تصویر از فیلترها استفاده میکند. بعد از آن به محاسبه مقدار گرادیان و جهت تغییرات گرادیان در تمام پیکسلها میپردازد. سپس با بهکار بردن تکنیک «Non-Max Suppression» و تعریف مقدار آستانه برای لبههای ضعیف، فقط قویترین لبهها را نگهمیدارد. در نهایت، الگوریتم آماده است که تغییرات را در تصویر پیدا کرده و نمونه اشیاء شناسایی شده را از تصویر پسزمینه جدا کند.
- تشخیص لبه Sobel: این تکنیک هم در تصویر ورودی مقدار گرادیان را محاسبه و جهت تغییر گرادیان را به ازای هر پیکسل مشخص میکند. اما برای محاسبه این اطلاعات از عملگر Sobel استفاده میکند. تصویر زیر، کانولوشنهای افقی و عمودی و مقدار بزرگی گرادیان را به ازای هر پیکسل نمایش میدهد. برای مثال، مقدار بزرگی گرادیان هر پیکسل را از جذر مجموع مربعات گرادیانهای افقی و عمودی بدست میآورد.
که در نهایت خواهیم داشت:
به طور کلی، عملگر Sobel، عملگر کانولوشنی است که برای بدست آوردن اطلاعات مورد نیاز الگوریتمهای تشخیص لبه، تصویر را به صورت عمودی و افقی پیمایش میکند.
آستانه گذاری
شاید آستانهگذاری، سادهترین روش برای هر کدام از تکنیکهای بخش بندی تصویر باشد. این روش شامل تبدیل کردن تصویر اصلی به تصویری سیاه و سفید است. در واقع تصویر باینری یا نقشه باینری از عکس اصلی بدست میآید. یعنی اینکه به پیکسلها مقادیر ۰ و ۱ اختصاص داده میشود. در این صورت مقدار ۰ نماینده تصویر پس زمینه و به هر چیزی با مقدار بیشتر از آستانه پیشزمینه تصویر عدد ۱ اختصاص داده میشود. همانند روش تشخیص لبه، تکنیک آستانهگذاری هم تمام تصویر را اسکن میکند، البته در مقیاس خاکستری. سپس باید مقدار شدت هر پیکسل را محاسبه کرد. بعد از محاسبه شدت رنگ پیکسلها، بر اساس آستانههای از پیش تعیین شده به پیکسلها مقدار متناظری اختصاص داده میشود. برای مثال، اگر شدت پیکسلی بزرگتر از ۰٫۵ باشد، این پیکسل، جزو پیشزمینه تصویر است و در غیر این صورت، به عنوان بخشی از پسزمینه در نظر گرفته میشود.
اگرچه، به دلیل استفاده از تکنیکهای «آستانهگذاری تطبیقی محلی» (Local Adaptive Thresholding)، شاید همه قسمتهای تصویر از مقدار آستانه یکسانی برخوردار نباشند. این تکنیک، مقدار آستانه بهینه را به ازای هر بخش از تصویر کشف میکند. تکنیک آستانه گذاری، گزینه مناسبی برای تصاویری است که در آنها پسزمینه و پیشزمینه، دارای کنتراست قابل توجهی هستند و باید با کمک هایلایت از یکدیگر تشخیص داده شوند.
تکنیک های خوشه بندی
تکنیکهای خوشهبندی هم از نوع دیگر روشهای بخش بندی تصویر هستند که برای حاشیهنویسی تصاویر بهکار برده میشوند. «تحلیل خوشهبندی» (Cluster Analysis) یا به طور خلاصه خوشهبندی، فرآیندی است که به کمک آن میتوان مجموعهای از اشیاء را در گروههای مجزا دستهبندی کرد. هر دسته تشکیل شده از پیکسلها به عنوان خوشهای در نظر گرفته میشود.
نکته بسیار مهم این است که در خوشهبندی کاربر از قبل نمیداند که دادهها در چند و چه خوشههایی دستهبندی خواهند شد. این کار بر عهده الگورتیمهای مختص به خوشهبندی است. برای آشنایی به صورت مختصر ومفید با خوشهبندی میتوانید مطلب آشنایی با خوشهبندی (Clustering) و شیوههای مختلف آن را از مجله فرادرس مطالعه کنید.
با این حال، در این مورد میتوان از مقادیر پیکسلها به عنوان نقاط داده برای الگوریتمهای خوشهبندی استفاده کرد. یکی از مثالهای الگوریتم خوشهبندی، تکنیک «K-means» است. این الگوریتم، کار خود را با انتخاب مراکزی به صورت تصادفی از میان نقاط داده آموزشی شروع میکند. سپس شروع به محاسبه شباهتهای هر پیکسل میکند. مدل بخش بندی بر اساس خوشهبندی تا زمان رسیدن به مقادیر پایدار به پیمایش دادهها میپردازد. در آخرین دستهبندی پیکسلها، نمونههای موجود در تصویر به عنوان خروجی به بیرون برگشت داده میشوند.
روش استفاده از یادگیری عمیق در بخش بندی تصویر چیست؟
یادگیری عمیق یکی از مهمترین بخشهای در حال پیشرفت و محرک برای باقی حوزههای هوش مصنوعی است. خود یادگیری عمیق به زیر مجموعههای مختلفی تقسیم میشود. معماریهای متفاوتی در این حوزه برای شبکههای عصبی مصنوعی طراحی شدهاند که هر کدام تواناییهای مختلفی دارند. یکی از خاصترین این معماریها شبکههای GAN هستند. از شبکههای GAN برای تولید دادههای جدید استفاده میشود. با کمک فیلم آموزش یادگیری عمیق، حوزه شبکه های GAN با پایتون از فرادس میتوانید بر روی کار با این معماری جالب تا حد زیادی مسلط شوید.
همینطور که یادگیری عمیق، کیفیت عملکرد پردازشهای سطح بالا را با افزایش دقت و سرعت ارتقا میدهد، میتواند روشهای بخش بندی تصویر را نیز به همین صورت تقویت کند. استفاده از یادگیری عمیق در حوزه پردازش تصویر باعث شده که تقریبا به بالاترین دقت در چندسال اخیر برای انجام وظایف مربوط به بخش بندی تصویر برسیم. اگر به دنبال اجرای بخش بندی تصویر برای یادگیری عمیق هستید، چندان ضروری نیست که به صورت بسیار دقیق به معماریهای پیچیده یادگیری عمیق برای بخش بندی تصویر بپردازید. بهجای آن بهتر است درک پایهای درباره روش انجام اینکار با استفاده از یادگیری عمیق بدست بیاورید.
عناصر کلیدی در معماری بخش بندی تصویر شامل «Encoder» و «Decoder» میشوند. با کمک این ابزارها و فیلترهای درون لایههای Pooling، بخشهای مختلف تصویر استخراج میشوند. بعد از آن خروجی نهایی توسط ماسک بخش بندی بدست میآید. Encoder با استفاده از فیلترهای درون لایه Pooling مسئولیت استخراج بخشهای مختلف تصویر را بر عهده دارد و Decoder مسئولیت پردازش اطلاعات استخراج شده را برای تولید خورجی نهایی - که در واقع ماسک بخش بندی است - بر عهده دارد. این معماری، مشهور به معماری کانولوشنی «Encoder-Decoder» شده است.
شبکه U-net
یکی دیگر از مدلهای قابل اشاره، معماری U-net است. عبارت U در نام این مدل اشاره به نوع معماری مدل دارد. زمانی که معماری مدل را به تصویر بکشیم، حالتی شبیه به شکل U ایجاد میشود. این مدل از دو بخش اصلی تشکیل شده است.
- «نمونه برداری افزایشی» (Upsampling): که به عنوان «مسیر انبساطی» (Expanding Path) نیز شناخته میشود.
- «نمونه برداری کاهشی» (Downsampling): که به عنوان «مسیر انقباضی» (Contracting Path) نیز شناخته میشود.
اهمیت مدل U-net در دقت و سرعتی است که به وظایف مربوط به بخش بندی تصویر میدهد. این تاثیرات با استفاده دوباره از «نگاشتهای ویژگی» (Feature Maps) بدست میآید که در ابتدا برای فرایند «نمونهبرداری کاهشی» استفاده شده است. به این صورت که از همین نگاشتهای ویژگی دوباره برای بازسازی و گسترش بردار یک بعدی دادهها به تصویر خروجی بخش بندی شده استفاده میشود. برجستهترین استفاده معماری U-net در بخش بندی تصاویر، مربوط به حوزه تهیه و پردازش تصاویر پزشکی است.
ماسک R-CNN
ماسک R-CNN، مدل ساده و کارآمدی برای تولید ماسک بخش بندی بر روی نمونهها است. در مدل، تصویر خروجی، به ازای هر نمونه شیء موجود در عکس، شامل کادرهای محصور کننده نیز میشود. این کار باعث شده که مدل برای استفاده در اپلیکیشنهای مختلف، از انعطافپذیری بسیار زیادی برخودار باشد. ماسک R-CNN شبکه عصبی کانولوشنی دو مرحلهای است.
- اولین مرحله: «شبکه پیشنهاد ناحیه» (Region Proposal Network | RPN) که ناحیههای جاذب توجه خاصی را در تصویر شناسایی کرده و پیشنهاد میدهد.
- مرحله دوم: این مرحله شامل پردازشهای موازی بر اساس ناحیه میشود. در این پردازشها است که کادرهای محدود کننده نمونهها شناسایی میشوند، عملیات دستهبندی انجام شده و ماسکهای باینری نیز تولید میشوند.
معماری DeepLab در بخش بندی تصویر چیست؟
DeepLab معماری برای بخش بندی معنایی است. در ابتدا عکس اصلی با استفاده از کانولوشنهای بسط یافته وارد شبکه میشود. با این کار، دادههای بیشتری از تصویر بدون از دست رفتن وضوح تصویر بدست میآیند. سپس خروجی شبکه، برای تنظیم کردن وضوح تصویر به صورت دوخطی، درونیابی میشود. بعد از آن برای تنظیم دقیق جزئیات، تصویر از درون ساختار «ویژگی تصادفی و شرطی» (Conditional Random Field | CRF) کاملا متصل به هم عبور میکند. با کمک این فرایند میتوان پیشبینیهای مربوط به بخش بندی نهایی را بدست آورد.
خود DeepLab دارای چهار نسخه مهم است که هر کدام را در پایین توضیح دادهایم.
- DeepLabV1: این مدل از «شبکه عصبی عمیق کانولوشنی» (Deep Convolutional Neural Network | DCNN) همراه با ساختار «ویژگی تصادفی و شرطی» (Conditional Random Field) کاملا متصل به هم استفاده میکند. درون DCNN، معماری Atrous Convolution یا Dilated Convolution برای کنترل وضوح پاسخهای ویژگی به کار برده میشود. این کار به مدل کمک میکند که بدون از دستدادن وضوح تصویر، اطلاعات را با جزئیات بیشتری بدست بیاورد.
- DeepLabV2: مدل «فشردهسازی هرم فضایی Atrous» یا (Atrous Spatial Pyramid Pooling | ASPP) برای بخش بندی اشیاء با اندازههای مختلف توسعه داده شده است. در این مورد خاص، مدل CRF ورودی خود را از ASPP گرفته است. در نتیجه بخش بندی و لبهیابی تصویر به صورت کارآمدی ارتقا پیدا کردهاند.
- DeepLabV3: در این نسخه از معماری، CRF-ها حذف شده و مدل ASPP بهروزرسانی شده است. با این تغییرات، مدل میتواند ویژگیهای تصویر را در ورودی دریافت کند. علاوهبر این، برای اینکه کارایی و پایداری مدل افزایش پیدا کند از تکنیک «نرمالسازی دستهای» (Batch Normalization) نیز استفاده شده است.
- +DeepLabV3: معماری شبکه در این نسخه به ساختار «Encoder-Decoder» تغییر یافته است. «شبکه رمزگذاری» (The Encoder Network) شبیه به نسخه قبلی این معماری است و «شبکه رمزگشایی» (The Decoder Network) عملیات سادهای برای نمونه برداری افزایشی است که باعث بازیابی مرزهای اصلی اشیا بخش بندی شده میشود. در نتیجه باز هم دقت خروجی نهایی افزایش پیدا میکند.
بخش بندی تعاملی
بخش بندی تعاملی یکی دیگر از تکنیکهای بخش بندی با استفاده از یادگیری عمیق است. در استفاده از چنین مدلهایی برای شروع عملیات بخش بندی، کاربر باید پیکسلهایی را مشخص کند. سپس مدل بر اساس تصویر داده شده و نقاط مشخص شده توسط کاربر، نمونه بخش بندی را در خروجی تولید میکند. اگر کاربر نقاطی را در نواحی مختلف مشخص کند، مدل میتواند هر ناحیه را به صورت جداگانه بر اساس نقاط ورودی بخش بندی کند. با کمک این تکنیک میتوان کنترل دقیقتری بر روی نتایج بخش بندی داشت.
- f-BRS: «ویژگی طرح پالایش پسانتشار» (The feature Backpropagating Refinement Scheme) که به صورت مختصر با عبارت «f-BRS» هم نامیده میشود، مثالی از مدل بخش بندی تعاملی است. در این مدل کلیکها میتوانند برای نمونهها به صورت فراگیر یا انحصاری عمل کنند. در واقع کاربر، دادههای ورودی اضافی را با کمک کلیک کردن به مدل ارسال میکند. مدل با کمک این کلیکها میتواند بخش خاصی را شامل ناحیه بخش بندی شده کرده یا از آن جدا کند. در عوض بهروزرسانی کل شبکه در زمان آموزش، f-BRS فقط از طریق اصلاح و ارتقا بخشهای خاصی از شبکه پسانتشار مدل را بهینهسازی میکند. این بروزرسانی به صورت دقت در انتخاب گزینههای بروزرسانی شده انجام میشود. در زمانی که هنوز در حال ارتقای دقت بخش بندی بر اساس دادههای ورودی کاربر هستیم، با انجام این کار، فرایند به صورت بسیار کارآمدتری اجرا میشود.
- DEXTR: مدل برش شدید و عمیق DEXTR، چهار نقطه حساس و خاص چپترین، راستترین، بالاترین و در نهایت پایینترین پیکسل را به عنوان ورودی میپذیرد. سپس برای هر نقطه «توزیع گاوسی» (Gaussian Distribution) را محاسبه میکند. مجموع توزیعهای گوسی به تصویر ورودی به عنوان کانال اضافی افزوده میشوند.
مدل SAM
«مدل بخش بندی همه چیز» (Segment Anything Model | SAM) که توسط کمپانی META معرفی شده، ابزار بسیار قدرتمندی برای بخش بندی تصاویر است. این مدل به کاربران - حتی آنهایی که تجربه کار در حوزه یادگیری ماشین ندارند - کمک میکند که وظایف بخش بندی را به صورت بسیار دقیقی انجام دهند. از آنجا که مدل SAM بر روی بیش از ۱ میلیارد ماسک آموزش دیده است به صورت متمایز و مستقلی کار میکند. زیرا اکنون بدون نیاز به آموزش بیشتر میتواند پیشبینیهای بسیار دقیقی بر روی مجموعه دادههای جدید، انجام دهد. همچنین از مدل SAM میتوان برای بخش بندیهای معنایی پیچیدهای مانند تصاویر پزشکی یا ماهوارهای نیز استفاده کرد.
ارزیابی و مجموع دادههای در دسترس
بسته به وظایف بخش بندی که نیاز به اجرا دارند میتوان از همه تکنیکهای نامبرده شده در بالا استفاده کرد. اگرچه هنوز چند عنصر مهم دیگر هستند که میتوانند نقش بسیار مهمی در بخش بندی تصویر یا به طور کلی، هر وظیفه مربوط به آموزش مدلهای هوش مصنوعی ایفا کنند.
- اولین و مهمترین مورد بین همه آنها داشتن دادههای با کیفیت برای آموزش مدلها است. البته بعضی مجموعه دادههای عمومی مانند MS COCO و Pascal VOC در دسترسی هستند. این مجموعه دادهها را میتوان برای انجام وظایف مربوط به بخش بندی تصویر بهکار برد.
- دومین مورد مهم، داشتن توصیف عدد شفاف از مدل بینایی ماشین است. این مورد برای درک کیفیت کارایی هر مدل و گرفتن تصمیم صحیح بر اساس دادههای بدست آمده، ضروری است.
مجموعه داده Pascal VOC
این مجموعه داده شامل تصاویر حاشیهنویسی شدهای از ۲۰ دستهبندی مختلف است. دادهها شامل کادرهای محصور کننده و ماسک بخش بندی معنایی هستند. به عنوان مجموعه داده اوپن سورس و معیاری برای سنجش کیفیت مدلها، Pascal VOC به صورت پیشفرض به بخشهای آموزش، اعتبارسنجی و آزمایش تقسیم شده است. به همینترتیب به صورت گستردهای در چالشهای مربوط به بینایی کامپیوتر هم بهکار برده میشود.
مجموع داده MS COCO
مجموعه داده MS COCO یکی از بزرگترین مجموعه دادههای اوپن سورس است. این مجموعه داده شامل حدود ۳۳۰۰۰۰ قطعه عکس در ۸۰ دسته مختلف میشود. مجموعه داده در تمام تصاویر، به ازای هر نمونه، شامل کادر محصور کننده، نمونه بخش بندی به صورت چند ضلعی و بخش بندی چندجانبه میشود. اکثریت قریب به اتفاق پژوهشگران از این مجموعه داده برای محک زدن الگوریتمهای بینایی کامپیوتر خود استفاده میکنند.
اشتراک بین مجموعه ها
چه اینکه مدل طراحی شده برای تشخیص اشیا باشد یا به منظور بخش بندی تصاویر استفاده شود، یکی از رایجترین متدهای ارزیابی در بینایی ماشین، منبع «اشتراک روی اجتماع» ( Intersection Over Union | IOU) است. این مقدار برای اندازهگیری مقدار شباهت بین مقادیر پیشبینی شده با حقیقت عینی بهکار برده میشود. مقدار IOU از ۰ تا ۱ متفاوت است. در این مقیاس عدد ۱ به معنی پیشبینی دقیقا همسان با مقدار حقیقی و ۰ به معنایی چیزی کاملا متفاوت است. این امتیاز، تحت تاثیر عدم تعادل دادهها قرار نمیگیرد و هر دو دسته خطاهای صحیح مثبت و غلط مثبت را در نظر میگیرد.
همچنین باید به این نکته توجه کنیم که در بخش بندی تصویر، میتوان اشتراک و اتحاد را بر اساس تعداد پیکسلها موجود در نسخه پیشبینی شده و نسخه صحیح جواب، محاسبه کرد. اما فقط به شرطی که هردو آنها به یک کلاس تعلق داشته باشند.
یادگیری عمیق در فرادرس
یکی از حوزههای بسیار مهم و پرکاربرد در دنیای هوش مصنوعی، حوزه یادگیری عمیق است. حتی اگر بخواهیم بدانیم که بهترین ابزارها برای بخش بندی تصویر چیست هم باید در شبکههای عصبی و یادگیری عمیق کندوکاو کنیم. یادگیری عمیق بر اساس شبکههای عصبی پیچیده بنیان گذاری شده و لازم است که با طرز کار این شبکهها نیز آشنا شویم.
آموزش یادگیری عمیق و کار با شبکههای عصبی از مهمترین آموزشها مربوط به هوش مصنوعی است که در تمام دنیا به یکی از داغترین مباحث آموزشی تبدیل شده است. فرادرس برای اینکه علاقهمندان به این حوزه در داخل کشور یا سایر نقاط جهان که آشنایی با زبان فارسی دارند نیز از این کاروان سریع و هیجان انگیز تکنولوژی بهرهمند شوند، آموزشهای بسیار مناسبی را در حوزههای زیر طراحی، تولید و منتشر کرده است.
- هوش مصنوعی
- یادگیری ماشین
- یادگیری عمیق
- داده کاوی
- بینایی ماشین
- و غیره
در فهرست زیر چند مورد از فیلمهای جذاب تولید شده توسط فرادرس معرفی شدهاند اما برای استفاده از گزینههای بیشتر و شاید جالبتر میتوانید بر روی تصویر بالا کلیک کرده، وارد صفحه اصلی این مجموعه آموزشی شده و با فیلمهای تولید شده بیشتری نیز آشنا شوید.
- فیلم آموزش یادگیری عمیق درباره شبکه های GAN با پایتون از فرادرس
- فیلم آموزش یادگیری عمیق در پزشکی با فرادرس
- فیلم آموزش رایگان کتابخانه های پایتون برای یادگیری ماشین و یادگیری عمیق با فرادرس
- فیلم آموزش یادگیری عمیق در پایتون با TensorFlow و Keras در فرادرس
- فیلم آموزش تشخیص و طبقه بندی اعداد با یادگیری عمیق و پردازش تصویر در متلب با فرادرس
کاربردهای بخش بندی تصویر چیست؟
بخش بندی معنایی تصاویر، یکی از کارهایی است که در بینایی کامپیوتر انجام میشود. هدف از انجام این کار طبقهبندی هر پیکسل در یک تصویر به یک کلاس یا شی است. یکی از بهترین روشهای انجام این کار هم استفاده از معماری U-Net است. به منظور آشنایی و کسب مهارت در این زمینه پیشنهاد میکنیم که فیلم آموزش بخش بندی معنایی تصاویر با معماری U-Net در Spyder را از فرادرس مشاهده کنید. برای کمک به مخاطبان مجله لینک مربوط به این فیلم را در ادامه قرار دادهایم.
با پیشرفتهای جاری در تکنولوژی، تواناییهای تجزیه و تحلیل تصاویر و استخراج اطلاعات مفید از آنها انبوهی از فرصتهای گوناگون را در صنایع مختلف در مقابل مهندسان هوش مصنوعی باز کرده است. کاربردهای بخش بندی تصویر شامل فیلدهای متنوعی میشود. این فیلدهای از تصویربرداری پزشکی و استفاده در وسایل نقلیه خودران گرفته تا مد و حتی خردهفروشی را پوشش میدهند. در این بخش از مطلب چند مورد از رایجترین کاربردهای بخش بندی تصویر را بررسی میکنیم.
تصویر بردای پزشکی
از آنجا که با کمک بخش بندی تصویر به تجزیه و تحلیل تصاویر پزشکی نیز میپردازیم و سلامتی برای بشر جزو بالاترین اولویتها است، میتوان گفت که یکی از مهمترین بخشها برای استفاده از این تکنولوژی، در حوزه پزشکی است. بخش بندی تصویر بر روی تصاویری مانند MRI و CT scan و X-ray برای کشف ساختارهای خاص یا اختلالات استفاده میشود. پزشکان با کمک این تکنیک در تشخیص مشکل و برنامهریزی برای درمان صحیح اقدام میکنند. همچنین از بخش بندی تصویر به صورت گسترده در تحقیقات مربوط به زیست پزشکی برای شمارش سلولها، تحلیل بافتهای زیستی و مطالعات ساختار آناتومی بدن نیز استفاده میشود.
دوربین های مدار بسته
برای کشف و ردیابی اشیاء مورد نظر، شامل افراد یا وسایل نقلیه به صورت بلادرنگ، استفاده از بخش بندی تصویر در ابزارهایی مانند دوربینهای مداربسته به میزان بسیار زیادی مفید است. با بهکار بردن تکنیکهای مربوط به بخش بندی تصویر، دوربینهای مداربسته میتوانند به سادگی و با دقت، اشیاء مورد نظر را شناسایی کرده و تحت نظر بگیرند. این کار باعث میشود که فرایند نظارت با دقت بسیار بالاتری صورت بگیرد. با کمک چنین امکاناتی نیروهای امنیتی میتوانند به سرعت به خطرات احتمالی یا فعالیتهای مشکوک واکنش نشان بدهند. در نتیجه کارایی سیستمها نظارتی به صورت کلی افزایش پیدا کرده و به فراهم آوردن محیط امنتری برای مردم منتج میشود.
وسایل نقلیه خودران
بخش بندی تصاویر به وسایل نقلیه خودران کمک میکند که محیط پیرامون خود را به صورت کامل درک کرده و با دقت بسیار بالایی نسبت به اتفاقات محیط عکس العمل نشان دهند. این محیط پیرامون میتواند شامل عابرین پیاده، تابلوهای راهنمایی و رانندگی و حتی سایر خودروهای خودران نیز شود. این تکنولوژی حتی برای انجام وظایف کمکی مانند تحلیل رفتار، تشخیص اشیا و شناسایی اتفاقات غیر متعارف نیز بسیار مفید است.
کشاورزی
یکی از فوائد ادغام بخش بندی تصاویر با کشاورزی کسب اطلاعات برای دستهبندی زمینها است. این کار به محققان و کشاورزها کمک میکند که انواع زمینها را بر اساس کاربردشان شناسایی کرده و در دستههای مختلف مرتب کنند. اطلاعات بدست آمده در برنامهریزیهای مربوط به مدیریت حومه شهرها از اهمیت زیادی برخوردار هستند. این اطلاعات درباره توزیع فضایی زیرساختهای مختلف مربوط به نواحی مسکونی و مناظر طبیعی، بینش مفیدی را برای مهندسین شهرسازی فراهم میکنند.
تصاویر ماهواره ای
بخش بندی تصویر در زمینه تحلیل تصاویر ماهوارهای با اهداف گوناگون شامل دستهبندی پوششهای زمینشناختی، نقشههای شهرسازی و نظارت محیطی بهکار برده میشود.
رباتیک
بخش بندی تصویر، نقش محوری در مجهز کردن رباتها به توانایی تشخیص دقیق و تعامل با محیط اطراف خود بازی میکند. با کمک این تکنیک، رباتها میتوانند با دقت زیادی اشیا درون محدوده دید خود را شناسایی کرده و از یکدیگر تشخیص دهند. این مسئله به آنها کمک میکند که تصمیمات بهتری بگیرند و وظایف مربوط به تشخیص اشیا و تعامل با محیط را با مهارت قابل توجهی انجام دهند.
هنر و طراحی
در قلمرو هنر و طراحی، بخش بندی تصویر کاربرد خود را در استخراج و کار بر روی نواحی خواصی از تصویر نمایش داده است. با کمک این فرایند، هنرمندان و طراحان میتوانند تغییرات خلاقانهتری را خلق کرده و جلوههای بصری بیشتری تولید کنند.
بازی سازی
ادغام بخش بندی تصویر در اپلیکشنهای بازیهای الکترونیک، به پیدا کردن و جدا کردن اشیا درون محیط بازی کمک میکند. در نتیجه کاراکترهای مجازی میتوانند با محیط بازی به تعامل بپردازند و تجربه گیمپلی بسیار غنیتری داشته باشند.
مد و خورده فروشی
بخش بندی تصویر، ابزار بسیار با ارزشی را مانند تشخیص اشیا ارائه میدهند. با کمک این ابزار میتوانیم محصولات بسیار زیاد حوزه مد را تشخیص داده و دستهبندی کنیم. علاوه بر این، بخش بندی تصویر در مرتبسازی محصولات به صورت کارآمدی کمک میکند. این کار باعث میشود که مشتریان بتوانند راحتتر در میان انبارهای بزرگ کالا مسیر خود را پیدا کنند. همچنین، بخش بندی تصویر برای فراهم کردن تجربه پِرو مجازی لباس توسط مشتریان ضروری است. این کار به مشتریها کمک میکند بدون اینکه مجبور به پوشیدن فیزیکی لباسهای مختلف شوند، آنها را امتحان کرده و در تن خود ورانداز کنند.
جمعبندی
در متن بالا آموختیم که بخش بندی تصویر چیست. به لطف بخش بندی تصویر، اکنون میتوانیم موقعیت، کلاس و مرزهای دقیق هر شیء را درون تصویر و ویدئو تشخیص دهیم. دو نوع اصلی از بخش بندی تصویر وجود دارد، بخش بندی معنایی و بخش بندی نمونه. بخش بندی نمونه به طور خاص برای بخش بندی انواع مختلف اشیا موجود درون تصاویر به صورت دقیق و با تمام جزئیات بهکار برده میشود. در نتیجه برای استفاده در کاربردهای روزانهای مانند تصاویر ماهوارهای و اتوماسیون کشاورزی بسیار با ارزش است. کاری که انسانها بدون زحمت با چشمهایشان انجام میدهند، بعد از کاربردی شدن در دنیای هوش مصنوعی میتواند به توسعه انقلابی در تکنولوژی تبدیل شود.
در این مطلب از مجله فرادرس درباره بخش بندی تصویر صحبت کردیم. در ابتدا به صورت کلی گفتیم که بخش بندی تصویر چیست و سپس انواع بخش بندی تصویر را همراه با روشهای مختلف انجام این کار معرفی کردیم، آموختیم که روش استفاده از یادگیری عمیق در بخش بندی تصویر چیست و در نهایت با چند مجموع داده رایگان و انواع کاربردهای بخش بندی تصویر نیز آشنا شدیم.
خیلی مفید و جامع بود. مرسی