فیلترگذاری تصویر در بینایی ماشین: راهنمایی برای مبتدیان

نویسنده:
شرکت بینا پردازان هوشمند سپاهان
تاریخ انتشار:
25 اردیبهشت 1404
دیدگاه ها:
فیلترگذاری تصویر در بینایی ماشین

مقدمه در دنیای به‌سرعت در حال پیشرفت تولید و اتوماسیون، بینایی ماشین به عنوان یکی از تکنولوژی‌های بنیادین مطرح شده است که به ماشین‌ها امکان “دیدن” و تفسیر داده‌های بصری را می‌دهد. در قلب بینایی…

مقدمه

در دنیای به‌سرعت در حال پیشرفت تولید و اتوماسیون، بینایی ماشین به عنوان یکی از تکنولوژی‌های بنیادین مطرح شده است که به ماشین‌ها امکان “دیدن” و تفسیر داده‌های بصری را می‌دهد. در قلب بینایی ماشین، تکنیکی اساسی به نام فیلترگذاری تصویر قرار دارد که نقش مهمی در بهبود کیفیت تصویر، کاهش نویز و استخراج ویژگی‌های مفید ایفا می‌کند.

چه در حال توسعه یک سیستم بینایی برای بازرسی کیفیت روی خط تولید باشید و چه تازه قصد دارید وارد دنیای پردازش تصویر شوید، آشنایی با فیلترگذاری تصویر ضروری است. این پست به معرفی مفاهیم اصلی فیلترگذاری تصویر، مرور انواع متداول فیلترها، و نشان دادن نحوه پیاده‌سازی آنها با استفاده از OpenCV در پایتون می‌پردازد، با تأکید ویژه بر کاربرد در کنترل کیفیت.

فیلترگذاری تصویر چیست؟

فیلترگذاری تصویر فرایندی است برای دستکاری یا بهبود تصاویر از طریق تغییر مقادیر پیکسل‌ها بر اساس عملیات ریاضی. فیلترها معمولاً برای حذف نویز، برجسته‌سازی ویژگی‌ها، تشخیص لبه، یا انجام عملیات تاری و شارپ کردن به کار می‌روند.

عملیات فیلترگذاری غالباً با استفاده از یک هسته (Kernel) یا ماسک انجام می‌شود؛ ماتریسی کوچک که روی تصویر “می‌خزد” و مقادیر پیکسل‌های خروجی را بر اساس محاسبات محلی تعیین می‌کند.

اهمیت فیلترگذاری در بینایی ماشین

در سیستم‌های بینایی ماشین، به‌ویژه آنهایی که برای کنترل کیفیت کاربرد دارند، وضوح تصویر و قابلیت تشخیص ویژگی‌ها بسیار مهم است. دلایل اصلی ضرورت فیلترگذاری عبارت‌اند از:

  • کاهش نویز: تصاویر خام اغلب شامل نویز الکتریکی یا محیطی هستند. فیلترها کمک می‌کنند این نویز سرکوب شود تا از تشخیص‌های نادرست جلوگیری شود.
  • تشخیص لبه: استخراج لبه‌ها امکان شناسایی خراش‌ها، شکستگی‌ها یا عدم انطباق را فراهم می‌کند.
  • تقویت ویژگی: برخی فیلترها با برجسته‌سازی بافت‌ها یا اشکال خاص، در تشخیص اشیا مؤثرند.
  • تاری و هموارسازی: آماده‌سازی تصویر برای مرحله‌های بعدی مانند بخش‌بندی یا آستانه‌گذاری.

دسته‌بندی فیلترها

فیلترهای تصویر را می‌توان به دو دسته کلی تقسیم کرد:

۱. فیلترهای خطی

این فیلترها مقدار پیکسل خروجی را به صورت ترکیب خطی از پیکسل‌های مجاور محاسبه می‌کنند.

الف. فیلتر میانگین (Averaging)

  • هدف: تارکردن تصویر و کاهش نویز.
  • مثال هسته: 19[111111111]\frac{1}{9} \begin{bmatrix} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{bmatrix}
  • تأثیر: هموارسازی تغییرات، مفید قبل از تشخیص لبه.

ب. فیلتر گاوسی (Gaussian)

  • هدف: شبیه به فیلتر میانگین اما با وزن‌دهی به پیکسل‌های مرکزی.
  • تأثیر: حفظ بهتر لبه‌ها در حین کاهش نویز.

ج. فیلتر لاپلاسیان (Laplacian)

  • هدف: تشخیص لبه با برجسته‌سازی نواحی تغییرات شدید شدت.
  • تأثیر: اغلب پس از تاری گاوسی برای تقویت لبه‌ها کاربرد دارد.

۲. فیلترهای غیرخطی

این فیلترها از عملیات غیرخطی استفاده می‌کنند و معمولاً در سرکوب نویز بدون تار کردن لبه‌ها مؤثرترند.

الف. فیلتر میانه (Median)

  • هدف: جایگزینی هر پیکسل با میانه‌ی مقادیر همسایگانش.
  • تأثیر: حذف نویز نمک-فلفل به‌خوبی.

ب. فیلتر دوجانبه (Bilateral)

  • هدف: هموارسازی همراه با حفظ لبه‌ها.
  • تأثیر: ایدئال برای حفظ بافت و جزئیات در سیستم‌های بازرسی.

کاربرد در کنترل کیفیت

در محیط‌های صنعتی، بینایی ماشین برای موارد زیر استفاده می‌شود:

  • کشف عیوب سطحی (خراش‌ها، ترک‌ها)
  • بررسی برچسب و تشخیص بارکد
  • اندازه‌گیری ابعاد و بررسی تراز

در این فرآیندها، فیلترگذاری باعث افزایش دیدپذیری عیوب یا حذف نویزهای غیرمرتبط می‌شود تا بازرسی دقیق‌تر انجام گیرد.

سناریوی نمونه:
دوربینی روی نوار نقاله بطری‌های شیشه‌ای را ضبط می‌کند. برای تشخیص خراش‌های سطحی، ابتدا تصویر را هموار می‌کنیم، سپس لبه‌ها را استخراج و الگوهای غیرعادی را جدا می‌کنیم.

شروع با OpenCV

OpenCV کتابخانه‌ای متن‌باز و قدرتمند برای پردازش تصویر است. در ادامه نحوه اعمال فیلترها با استفاده از OpenCV در پایتون را می‌آموزیم.

نصب

pip install opencv-python

مثال‌های عملی با OpenCV

۱. بارگذاری و نمایش تصویر

import cv2
import matplotlib.pyplot as plt

# بارگذاری تصویر به صورت خاکستری
image = cv2.imread('sample_part.jpg', cv2.IMREAD_GRAYSCALE)

# نمایش با matplotlib
plt.imshow(image, cmap='gray')
plt.title('تصویر اصلی')
plt.axis('off')
plt.show()

۲. فیلتر میانگین (Mean Filter)

# فیلتر ۵×۵ میانگین
blurred = cv2.blur(image, (5, 5))

plt.imshow(blurred, cmap='gray')
plt.title('تصویر با فیلتر میانگین')
plt.axis('off')
plt.show()

۳. فیلتر گاوسی (Gaussian Filter)

# تاری گاوسی با هسته ۵×۵
gaussian = cv2.GaussianBlur(image, (5, 5), 0)

plt.imshow(gaussian, cmap='gray')
plt.title('تصویر با فیلتر گاوسی')
plt.axis('off')
plt.show()

۴. فیلتر میانه (Median Filter)

# فیلتر میانه با اندازه ۵
median = cv2.medianBlur(image, 5)

plt.imshow(median, cmap='gray')
plt.title('تصویر با فیلتر میانه')
plt.axis('off')
plt.show()

۵. فیلتر دوجانبه (Bilateral Filter)

# پارامترها: قطر هسته، sigmaColor، sigmaSpace
bilateral = cv2.bilateralFilter(image, 9, 75, 75)

plt.imshow(bilateral, cmap='gray')
plt.title('تصویر با فیلتر دوجانبه')
plt.axis('off')
plt.show()

۶. تشخیص لبه با لاپلاسیان (Laplacian)

# اعمال لاپلاسیان
laplacian = cv2.Laplacian(image, cv2.CV_64F)

plt.imshow(laplacian, cmap='gray')
plt.title('تشخیص لبه با لاپلاسیان')
plt.axis('off')
plt.show()

کاربرد هر فیلتر در کنترل کیفیت

مزایا کاربرد در کنترل کیفیت نوع فیلتر
ساده و سریع کاهش نویز عمومی فیلتر میانگین
کاهش نویز با فرکانس بالا پیش‌پردازش قبل از تشخیص لبه فیلتر گاوسی
حفظ لبه‌ها حذف نویز نمک-فلفل روی سطوح محصولات فیلتر میانه
ایده‌آل برای بازرسی چشمی برجسته‌سازی عیوب بدون از دست دادن بافت فیلتر دوجانبه
حساسیت بالا به تغییرات ناگهانی تشخیص لبه‌های شدید برای شناسایی خراش یا ترک لاپلاسیان

نکات کلیدی و بهترین روش‌ها

  • اندازه هسته مهم است: هسته‌های بزرگ‌تر تاری قوی‌تری ایجاد می‌کنند اما ممکن است جزئیات مهم را نیز از بین ببرند.
  • حفظ وضوح: مگر در صورت ضرورت، از کاهش رزولوشن خودداری کنید تا جزئیات ظریف حفظ شوند.
  • توازن بین لبه و جزئیات: وقتی حفظ لبه‌ها مهم است، از فیلترهای میانه یا دوجانبه استفاده کنید.
  • ترکیب فیلترها: اغلب فیلتر گاوسی قبل از تشخیص لبه برای پایداری نتایج به کار می‌رود.

مطالعه موردی واقعی: تشخیص خراش بر روی قطعات فلزی

مسئله: کارخانه‌ای نیاز دارد خراش‌های سطحی روی صفحه‌های فلزی را به‌صورت خودکار تشخیص دهد.

راه‌حل:

  1. ثبت تصویر: تصاویر با وضوح بالا و خاکستری به‌صورت بلادرنگ ضبط می‌شوند.
  2. فیلتر میانه: نویز حذف شده ولی خطوط خراش حفظ می‌شود.
  3. لاپلاسیان: خراش‌ها به عنوان تغییرات ناگهانی شدت برجسته می‌شوند.
  4. آستانه‌گذاری و بخش‌بندی: تبدیل به تصویر باینری و یافتن کانتور.
  5. تصمیم‌گیری: اگر طول کانتور از آستانه تعیین‌شده بیشتر باشد، قطعه حذف می‌شود.

قطعه کد نمونه:

# فیلتر میانه برای کاهش نویز
median = cv2.medianBlur(image, 5)

# تشخیص لبه با لاپلاسیان
edges = cv2.Laplacian(median, cv2.CV_64F)
edges = cv2.convertScaleAbs(edges)

# آستانه‌گذاری باینری
_, thresh = cv2.threshold(edges, 30, 255, cv2.THRESH_BINARY)

# یافتن کانتور (خراش‌ها)
contours, _ = cv2.findContours(
    thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE
)

# بررسی هر کانتور
for cnt in contours:
    if cv2.arcLength(cnt, True) > 100:  # آستانه نمونه
        print("عیب شناسایی شد!")

جمع‌بندی

فیلترگذاری تصویر در بینایی ماشین یکی از گام‌های اساسی در سیستم‌های بازرسی صنعتی است. از تاری ساده تا تشخیص لبه‌ی پیشرفته، انتخاب صحیح فیلتر می‌تواند دقت بازرسی را به‌طور چشمگیری افزایش دهد و از تشخیص‌های نادرست جلوگیری کند.

با درک انواع فیلترها، مکانیسم عملکرد آنها و نحوه پیاده‌سازی در OpenCV، حتی مبتدیان می‌توانند به‌سرعت سیستم‌های عملی و قابل اعتمادی برای کنترل کیفیت بسازند.

منابع بیشتر

  • مستندات OpenCV: https://docs.opencv.org
  • کتاب “Digital Image Processing” نوشته Gonzalez & Woods
  • پروژه‌های پردازش تصویر در Kaggle
  • دوره‌های Udemy و Coursera در حوزه بینایی ماشین

فیلترگذاری تصویر در بینایی ماشین نقش حیاتی در خودکارسازی بازرسی و افزایش کیفیت محصولات دارد. با تسلط بر این تکنیک‌ها، می‌توانید گام‌های نخست را در ساخت سیستم‌های بینایی دقیق و هوشمند بردارید.

پرسش‌های متداول (FAQs)

1 فیلترگذاری تصویر چیست و چه کاربردی در بینایی ماشین دارد؟

فیلترگذاری تصویر به فرایند دستکاری پیکسل‌ها با استفاده از هسته‌های ریاضی گفته می‌شود که برای کاهش نویز، تشخیص لبه و برجسته‌سازی ویژگی‌ها در سیستم‌های بینایی ماشین کاربرد دارد.

2 تفاوت فیلترهای خطی و غیرخطی در چیست؟

در فیلترهای خطی خروجی هر پیکسل ترکیب خطی از همسایگان است (مثلاً میانگین)، اما در فیلترهای غیرخطی مانند میانه یا دوجانبه، از عملیات مرتب‌سازی یا وزن‌دهی ویژه برای حفظ لبه‌ها استفاده می‌شود.

3 چرا از OpenCV برای فیلترگذاری تصویر استفاده می‌کنیم؟

OpenCV یک کتابخانه متن‌باز با توابع بهینه و مستندات گسترده است که انواع فیلترها را با کارایی بالا در پایتون و C++ پیاده‌سازی کرده و برای کاربردهای صنعتی مناسب است.

4 چگونه یک فیلتر میانگین ساده را با OpenCV اعمال کنیم؟

با دستور cv2.blur(image, (k, k)) می‌توانیم یک فیلتر k×k میانگین به تصویر اعمال کنیم که باعث تاری و کاهش نویز می‌شود.

5 چه زمانی بهتر است از فیلتر میانه استفاده کنیم؟

وقتی نویز نمک-فلفل (salt-and-pepper) زیاد باشد یا حفظ لبه‌ها مهم باشد، فیلتر میانه با دستور cv2.medianBlur بهترین گزینه است.

6 فیلتر دوجانبه (Bilateral) چه مزیتی دارد؟

فیلتر دوجانبه با حفظ لبه‌ها و همزمان کاهش نویز، برای نگهداری جزئیات سطح و بافت در کاربردهای کنترل کیفیت بسیار مناسب است.

7 چگونه از فیلتر لاپلاسیان برای تشخیص لبه استفاده کنیم؟

ابتدا تصویر را با Gaussian Blur هموار کنید، سپس با cv2.Laplacian لبه‌ها را استخراج کرده و با آستانه‌گذاری، خطوط تیز و خراش‌ها را مشخص کنید.

8 انتخاب اندازه هسته فیلتر چه تأثیری دارد؟

هسته‌های بزرگ‌تر تاری و هموارسازی قوی‌تری ایجاد می‌کنند اما ممکن است جزئیات مهم را از بین ببرند. باید براساس نیاز کنترل کیفیت و سطح نویز، اندازه مناسبی انتخاب شود.

9 توصیه‌های عملی برای ترکیب فیلترها چیست؟

معمولاً ابتدا از Gaussian Blur برای کاهش نویز تصادفی استفاده شده و سپس برای تشخیص لبه از Laplacian یا Canny بهره می‌برند. فیلتر میانه یا دوجانبه هم قبل از پردازش نهایی مفید است.

10 چگونه فیلترگذاری تصویر می‌تواند کیفیت کنترل را بهبود دهد؟

با کاهش نویز و برجسته‌سازی عیوب سطحی (خراش، ترک)، الگوریتم‌های بازرسی قابلیت تشخیص دقیق‌تر و کمتر خطاپذیر خواهند داشت که منجر به کاهش محصولات معیوب می‌شود.

برای خرید دوربین ها و انواع محصولات هایک ربات با ما تماس بگیرید

مشتاقانه منتظر دریافت نظرات شما دوستان عزیز هستیم





مطالب مرتبط

راهکارهای اتوماسیون صنعتی HIKROBOT سیستم بینایی ماشین HIKROBOT دوربین صنعتی هوشمند HIKROBOT ربات متحرک خودگردان صنعتی کاربرد AMR در صنعت اتوماسیون لجستیک داخلی کارخانه سیستم کنترل ناوگان رباتیک بازرسی خودکار کیفیت محصولات پردازش تصویر در صنعت هوش مصنوعی در تولید یادگیری عمیق بینایی ماشین دوربین سه‌بعدی بینایی ماشین پروفایلومتر لیزری کنترل کیفیت دوربین صنعتی اسکن خطی راهکارهای هوشمندسازی خطوط تولید مدیریت هوشمند انبار صنعتی رباتیک لجستیک در کارخانه کنترل کیفیت قطعات خودرو بازرسی بردهای الکترونیکی صنعتی یکپارچه‌سازی AMR و WMS

ارزیابی جامع راهکارهای HIKROBOT برای نیازهای اتوماسیون و بینایی ماشین در صنایع مختلف

پیاده‌سازی سیستم کنترل کیفیت خودرو با بینایی ماشین سیستم بازرسی خودکار قطعات خودرو با HIKROBOT کنترل کیفیت قطعات خودرو با دوربین صنعتی استفاده از PC-Based HIKROBOT در صنعت خودرو تشخیص عیوب سطحی قطعات آلومینیومی خودرو بازرسی سرسیلندر خودرو با بینایی ماشین صنعتی بازرسی بلوک سیلندر با سیستم ویژن صنعتی کاهش نرخ فرار عیب در خط تولید خودرو طراحی سیستم کنترل کیفیت مبتنی بر هوش مصنوعی یکپارچه‌سازی سیستم بینایی ماشین با PLC و MES انتخاب دوربین صنعتی برای کنترل کیفیت خودرو بازرسی سه‌بعدی قطعات خودرو با اسکنر صنعتی تشخیص ترک و تخلخل در قطعات ریخته‌گری خودرو سیستم اندازه‌گیری میکرومتری قطعات خودرو در خط تولید کاربرد یادگیری عمیق در کنترل کیفیت صنعتی خودرو طراحی ایستگاه بازرسی خودکار برای قطعات موتور خودرو پیاده‌سازی Vision Master HIKROBOT در کنترل کیفیت مقایسه Smart Camera و PC-Based Vision در خودروسازی بهبود OEE خط تولید خودرو با بینایی ماشین ردیابی قطعات خودرو با OCR و Data Matrix Code

مطالعه موردی: پیاده‌سازی یک سیستم کنترل کیفیت پیچیده در صنعت خودرو با استفاده از PC-Based HIKROBOT

خرید لنز صنعتی HIKROBOT برای سیستم بینایی ماشین قیمت لنز تله‌سنتریک HIKROBOT در ایران خرید نور صنعتی ماشین ویژن HIKROBOT مشاوره انتخاب دوربین لنز و نور بینایی ماشین تأمین تجهیزات بینایی ماشین HIKROBOT طراحی سیستم بینایی ماشین برای کنترل کیفیت فروش دوربین و لنز صنعتی HIKROBOT انتخاب تجهیزات مناسب برای پروژه ماشین ویژن صنعتی اجرای پروژه بینایی ماشین با محصولات HIKROBOT راه‌اندازی سیستم کنترل کیفیت با دوربین صنعتی

انتخاب صحیح لنز و نورپردازی در سیستم‌های بینایی ماشین

اتوماسیون صنعتی هوشمند بینایی ماشین راهکارهای Vision ماشین ویژن صنعتی کاهش خطا در تولید افزایش بهره‌وری صنعتی کنترل کیفیت خودکار بازرسی خودکار کیفیت پردازش تصویر صنعتی هوش مصنوعی در صنعت Deep Learning در بینایی ماشین Edge AI صنعتی دوربین صنعتی سیستم Vision صنعتی بازرسی قطعات صنعتی تشخیص عیوب سطحی هدایت ربات با بینایی ماشین ردیابی قطعات در تولید Industry 4.0 کارخانه هوشمند

اتوماسیون صنعتی هوشمند با راهکارهای Vision: کاهش خطا و افزایش بهره‌وری

بارکدخوان صنعتی بارکدخوان HIKROBOT بهینه‌سازی لجستیک لجستیک هوشمند مدیریت انبار زنجیره تأمین اتوماسیون انبار بینایی ماشین هوش مصنوعی در لجستیک اسکن بارکد صنعتی سیستم مدیریت انبار WMS سورتینگ خودکار ردیابی کالا کاهش خطای انسانی افزایش بهره‌وری انبار بارکدخوان هوشمند لجستیک معکوس پردازش تصویر صنعتی Edge AI AMR در انبار

بهینه‌سازی فرآیندهای لجستیک با بارکدخوان‌های صنعتی HIKROBOT: از انبار تا توزیع

بارکدخوان هوشمند HIKROBOT زنجیره تأمین لجستیک بینایی ماشین هوش مصنوعی لبه اتوماسیون صنعتی بارکد دو‌بعدی بهره‌وری انبار سورتینگ هوشمند

انقلابی در بینایی ماشین لجستیک: چرا و چگونه بارکدخوان‌های هوشمند HIKROBOT زنجیره تأمین را دگرگون می‌کنند؟