فیلترها در پردازش تصویر و بینایی ماشین استفاده های زیادی دارند. با استفاده از فیلترها میتوانیم نویز تصویر را کاهش دهیم و کیفیت تصویر را بهبود ببخشیم. همچنین فیلترها می توانند در برجستگی عیوب ، اصلاح روشنایی ، کاهش سایز تصویر و ده ها مورد دیگر استفاده شوند. در پیاده سازی یک سیستم بینایی ماشین می توان از انواع مختلف این فیلترها برای کنترل کیفیت محصولات مختلف به کمک دوربین استفاده کرد. در این مقاله 10 کاربرد مهم فیلترهای پردازش تصویر در انجام پروژه های بینایی ماشین معرفی شده است.
دانلود برنامه ی پیاده سازی 10 فیلتر در نرم افزار پردازش تصویر Halcon
عکس های این مقاله مربوط به تعدادی از مثال های پیاده سازی شده در دوره ی آموزشی بینایی ماشین با نرم افزار قدرتمند Halcon است. برای دانلود کدهای مربوط به پیاده سازی این فیلتر های کافی است اطلاعات خود را در فرم زیر وارد کنید تا لینک دانلود کدها برای شما ارسال شود. توضیحات مربوط به این برنامه را در ویدیو ببینید.
برای اجرای کدها باید نرم افزار Halocn را دانلود و نصب نمایید.
1- لبه یابی با فیلترهای پردازش تصویر
در پردازش تصویر تغییرات روشنایی پیکسل ها باعث ایجاد لبه ها می شوند. لبه یابی یکی از فیلترهای پرکاربرد در پردازش تصویر است که در بسیاری از الگوریتم های بینایی ماشین مثل شناسایی اشیا ، اندازه گیری و … مورد استفاده قرار می گیرد. به عنوان نمونه در تصویر زیر به کمک لبه یابی (با الگوریتم شناسایی اشیا) محصولات در تصویر شناسایی شده اند.
2- برجستگی عیوب
برای برجسته کردن عیوب در تصویر می توان از فیلترهای پردازش تصویر استفاده کرد. به عنوان نمونه در تصویر زیر استفاده از فیلتر میانه باعث شده است تا عیب تصویر برجسته شود .
در ادامه با آستانه گذاری ، روی تصویر فیلتر شده به راحتی می توان عیب تصویر را مطابق شکل زیر شناسایی کرد.
3- بخش بندی
بخش بندی تصویر یا segmentation به مفهوم تقسیم تصویر به چند ناحیه است. استفاده از فیلترها می تواند به بخش بندی تصویر کمک کند. به عنوان نمونه فرض کنید هدف خواندن حروف و اعداد در تصویر زیر باشد. برای این کار ابتدا باید ناحیه حروف و اعداد را در تصویر پیدا کنیم (تصویر را بخش بندی کنیم ). برای این کار ابتدا می توانیم با استفاده از فیلتر میانه ، تصویر را به صورت زیر فیلتر کنیم.
حال در تصویر فیلتر شده می توانیم با آستانه گذاری روی تصویر به راحتی ناحیه اعداد را پیدا کرد.
4- حذف ساختار تصویر
وجود برخی ساختارها در عکس موجب می شود نتوانیم برنامه مورد نظر خود را بنویسیم. به کمک فیلترهای پردازش تصویر می توان این ساختارها را از تصویر حذف کرد. به عنوان نمونه در تصویر زیر با یک فیلتر میانه می توانیم ساختار را حذف کنیم و تصویر را به شکل نشان داده شده در بیاوریم.
5- کاهش نویز
نویز روی تصویر باعث می شود که برخی الگوریتم های پردازش تصویر عملکرد خوبی نداشته باشند. برای کاهش نویز در پردازش تصویر عموما از فیلترهای میانه و میانگین استفاده می شود. دقت داشته باشید در بینایی ماشین در بسیاری از مواقع می توانیم نویز تصویر را با استفاده از نورپردازی برطرف کنیم. در شکل زیر کاهش نویز به کمک فیلتر کردن تصویر نشان داده شده است.
6- اصلاح روشنایی
اصلاح روشنایی تصویر می تواند به ما کمک کند تا قبل از اینکه بخواهیم روی تصویر خود الگوریتم مورد نظر را پیاده سازی کنیم، روشنایی تصویر را بهبود ببخشیم. به عنوان نمونه در تصویر زیر روشنایی به کمک فیلتر اصلاح شده است.
7- تبدیل عکس رنگی
تعداد زیادی از الگوریتم های پردازش تصویر و بینایی ماشین با عکس سیاه و سفید کار می کنند؛ به همین دلیل در بسیاری از مواقع نیاز داریم تا قبل از استفاده از این الگوریتم ها عکس رنگی را به سیاه و سفید تبدیل کنیم. برای مثال در تصویر زیر میخواهیم موقعیت بسته ی پنیر را پیدا کنیم تا بتوانیم کامل بودن تعداد آن را بررسی کنیم. در ابتدا عکس رنگی را به سیاه و سفید تبدیل می کنیم.
در عکس سیاه سفید می توانیم موقعیت پنیر را پیدا کنیم.
و در نهایت با الگوریتم شناسایی اشیا تعداد طعم های مختلف پنیر را بررسی می کنیم و نمایش را روی عکس رنگی انجام می دهیم.
8- بهبود کیفیت تصویر
فیلترهای پردازش تصویر می توانند کیفیت تصویر ما را بهبود ببخشند. مثلا در عکس زیر با اعمال آستانه گذاری ، کیفیت تصویر بهبود پیدا کرده و رنگ های آن اصلاح شده اند.
9- تغییر مقادیر خاکستری
در برخی مواقع نیاز داریم که مقادیر خاکستری را به نحوی تغییر دهیم که قسمت های سفید عکس سیاه شوند و به طور مشابه قسمت های سیاه نیز سفید گردد. به عنوان نمونه در تصویر زیر قبل از پیاده سازی الگوریتم شناسایی حروف و اعداد، این کار را انجام می دهیم.
10- کاهش سایز تصویر
سرعت عملکرد کدهای پردازش تصویر معمولا به سایز تصویر بستگی دارد. یعنی هر چه سایز تصویر بزرگتر باشد سرعت هم کمتر می شود. ما می توانیم بسته به نیاز خود با کاهش سایز تصویر سرعت عملکرد را افزایش دهیم البته باید دقت داشته باشیم که کاهش سایز تصویر موجب کاهش دقت برنامه ما نشود. مثلا در تشخیص عیوب پوشک برای شناسایی بود یا نبود پد آبگیر (مستطیل سبز رنگ در وسط پوشک) سایز تصویر کاهش یافته است.
جمع بندی
در این مقاله 10 کاربرد مهم فیلترهای پردازش تصویر معرفی شد که از آنها می توان در انجام پروژه های بینایی ماشین کمک گرفت در دوره ی آموزشی بینایی ماشین نحوه ی پیاده سازی این فیلترها در نرم افزار Halcon برای حل پروژه های مختلف در بینایی ماشین آموزش داده شده است.