آموزش پردازش تصویر و بینایی ماشین صنعتی

پردازش تصویر و بینایی ماشین چیست؟

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

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

تصویر دیجیتال چیست؟

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

در یک تصویر خاکستری هر پیکسل معمولاً فقط یک مقدار روشنایی دارد. در تصویر رنگی، هر پیکسل از چند مؤلفه رنگی تشکیل می‌شود. در مدل RGB این مؤلفه‌ها قرمز، سبز و آبی هستند؛ با این حال OpenCV در بسیاری از عملیات، کانال‌ها را با ترتیب BGR نگهداری می‌کند.

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

انواع تصویر دیجیتال، رزولوشن و عمق بیت

تصویر باینری

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

تصویر خاکستری

در تصویر خاکستری هر پیکسل مقدار شدت روشنایی را نگهداری می‌کند. در تصاویر هشت‌بیتی معمولاً ۲۵۶ سطح روشنایی از صفر تا ۲۵۵ قابل نمایش است. برای اندازه‌گیری، تشخیص لبه و بررسی شکل همیشه به اطلاعات رنگی نیاز نیست و تصویر خاکستری می‌تواند کافی باشد.

تصویر رنگی

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

رزولوشن تصویر

رزولوشن با تعداد پیکسل‌های عرض و ارتفاع بیان می‌شود. تصویر ۱۹۲۰×۱۰۸۰ دارای ۱۹۲۰ پیکسل در هر ردیف و ۱۰۸۰ پیکسل در هر ستون است. رزولوشن بالاتر جزئیات بیشتری ثبت می‌کند، اما به‌تنهایی تضمین‌کننده کیفیت بهتر سیستم بینایی ماشین نیست.

لنز، فاصله دوربین، نورپردازی، فوکوس، سرعت شاتر، لرزش و اندازه واقعی عیب، همگی بر کیفیت نهایی اثر دارند. رزولوشن بیش از حد نیز زمان پردازش و مصرف حافظه را افزایش می‌دهد.

عمق رنگ یا Bit Depth

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

فرمت ویژگی اصلی کاربرد مناسب
JPEG حجم کم با فشرده‌سازی همراه افت عکس‌های عمومی و پیش‌نمایش
PNG فشرده‌سازی بدون افت و پشتیبانی از شفافیت دیاگرام، اسکرین‌شات و تصویر آموزشی
BMP ساختار ساده و حجم بالا کاربردهای آزمایشگاهی و نرم‌افزارهای قدیمی
TIFF حفظ کیفیت و جزئیات بالا آرشیو و کاربردهای حرفه‌ای

پردازش تصویر چیست؟

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

پردازش تصویر همیشه به هوش مصنوعی نیاز ندارد. بسیاری از پروژه‌های صنعتی با الگوریتم‌های کلاسیک OpenCV، نورپردازی مناسب و تنظیم صحیح دوربین با دقت و سرعت بالا قابل اجرا هستند.

تفاوت پردازش تصویر و بینایی ماشین

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

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

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

یادگیری ماشین چیست؟

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

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

یادگیری نظارت‌شده

داده‌های آموزشی پاسخ یا برچسب مشخص دارند. برای مثال، تصاویر محصولات به دو گروه سالم و معیوب تقسیم می‌شوند تا مدل ویژگی‌های هر گروه را یاد بگیرد.

یادگیری بدون نظارت

داده‌ها برچسب مشخص ندارند و مدل تلاش می‌کند شباهت‌ها، گروه‌ها یا رفتارهای غیرعادی را پیدا کند.

یادگیری تقویتی

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

یادگیری عمیق چیست؟

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

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

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

چه زمانی یادگیری عمیق مناسب‌تر است؟

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

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

کاربرد پردازش تصویر در صنایع

صنایع فولاد

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

صنایع غذایی

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

صنایع دارویی

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

صنایع بسته‌بندی

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

ماشین‌آلات صنعتی

تعیین موقعیت قطعه، هدایت ربات، کنترل مونتاژ، شمارش، اندازه‌گیری و ارسال نتیجه به PLC در ماشین‌آلات صنعتی قابل اجرا است.

ارتباط بینایی ماشین با PLC

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

این ارتباط می‌تواند با ورودی و خروجی دیجیتال، Modbus TCP، Ethernet/IP، Profinet یا پروتکل‌های دیگر انجام شود. PLC بر اساس نتیجه می‌تواند محصول را رد کند، خط را متوقف کند، آلارم نمایش دهد یا آمار کنترل کیفیت را در HMI و SCADA ثبت کند.

برای آشنایی بیشتر با اجرای صنعتی این بخش، صفحه خدمات پردازش تصویر و بینایی ماشین و صفحه پروژه‌ها و حوزه‌های اجرایی را ببینید.

مراحل اجرای یک پروژه بینایی ماشین

  1. مشخص‌کردن دقیق عیب یا ویژگی موردنظر
  2. تهیه تصاویر واقعی از شرایط مختلف تولید
  3. انتخاب دوربین، لنز و نورپردازی
  4. تعیین فاصله و زاویه نصب
  5. انتخاب روش کلاسیک یا هوش مصنوعی
  6. توسعه و آزمایش الگوریتم
  7. اتصال سیستم به PLC و HMI
  8. تست در سرعت واقعی خط
  9. ثبت خطاها و بهبود مدل
  10. آموزش اپراتور و مستندسازی
اشتباه رایج شروع مستقیم با مدل هوش مصنوعی بدون بررسی نورپردازی، کیفیت تصویر و شرایط واقعی خط، معمولاً باعث افزایش خطای تشخیص و ناپایداری نتیجه می‌شود.

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

آیا پردازش تصویر همان هوش مصنوعی است؟

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

OpenCV چیست؟

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

برای بینایی ماشین حتماً دوربین صنعتی لازم است؟

برای آموزش و آزمایش می‌توان از دوربین معمولی استفاده کرد، اما در محیط صنعتی دوربین صنعتی، لنز مناسب و نور کنترل‌شده نتیجه پایدارتر و مطمئن‌تری ایجاد می‌کنند.

تفاوت یادگیری ماشین و یادگیری عمیق چیست؟

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

آیا بینایی ماشین به PLC متصل می‌شود؟

بله. نتیجه پردازش می‌تواند از طریق سیگنال دیجیتال یا شبکه صنعتی برای PLC ارسال شود و PLC بر اساس آن فرمان مناسب را اجرا کند.

جمع‌بندی

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

در مسائل ساده و کنترل‌شده، الگوریتم‌های کلاسیک OpenCV سریع و دقیق‌اند. برای عیوب پیچیده، تنوع زیاد محصول یا تغییرات ظاهری، یادگیری ماشین و یادگیری عمیق انتخاب مناسب‌تری هستند. روش نهایی باید بر اساس نوع عیب، سرعت خط، شرایط محیط و دقت موردنیاز انتخاب شود.