Machine vision به عنوان یک ابزار مهندسی در ابزارهای دیجیتال و در شبکههای کامپیوتری، برای کنترل ابزارهای صنعتی دیگر از قبیل کنترل بازوهای رباتیک و یا خارج کردن تجهیزات معیوب به کار می رود. در حقیقت Machine vision شاخه ای از علم مهندسی است که به رشتههای علوم کامپیوتری (Computer science) و علم نورشناسی و مهندسی مکانیک و اتوماسیون صنعتی ارتباط دارد. یکی از مهمترین و پر استفادهترین کاربردهای آن در بازبینی و بررسی کالاهای صنعتی از جمله نیمه هادی ها، اتومبیل ها، مواد خوراکی و دارو می باشد
همانند نیروی انسانی که با چشم غیرمسلح در خط تولید کالاها را برای تعیین کیفیت و نوع ساخت آنها بازبینی می کنند، Machine vision از دوربینهای دیجیتال و دوربینهای هوشمند و نرمافزارهای image processing (پردازش تصویر) برای این کار استفاده می کند. دستگاههای مربوطه (Machine vision) برای انجام دادن وظایفی خاص از جمله شمردن اشیا در بالابرها، خواندن شماره سریالها (Serial numbers)، جستجوی سطحهای معیوب به کار می روند.
در حال حاضر در صنعت استفاده زیادی از سیستم بینایی ماشین برای بازبینی تصویری اشیاء (Visual inspection) که نیاز به سرعت بالا و دقت بالا و کار ۲۴ ساعته و تکرار محاسبات بالا دارد، وجود دارد. اگرچه انسان عملکرد بهتر و قابلیت تطبیق دهی بیشتری برای خطاهای تازه در زمان کوتاه دارد ولی با توجه به ویژگیهای ذکر شده این دستگاهها به مرور جای نیروی انسانی را که به دلیل انحراف و شرایط بد دارای خطا می باشند، در صنعت پر می کنند. کامپیوترها به همان صورتی که انسان قادر به دیدن است، نمی توانند ببینند.
دوربینها همانند سیستم بینایی انسان نیستند و در حالی که انسان می تواند بر استنباط و فرضیات اتکا کند، تجهیزات کامپیوتری باید به وسیله آزمودن و تجزیه و تحلیل کردن جداگانه پیکسلها و تلاش کردن برای انجام نتیجه گیری با توجه به پشتوانه اطلاعاتی و روش هایی مانند شناسایی الگو مشاهده کنند. علی رغم اینکه بعضی الگوریتمهای machine vision برای تقلید کردن از سیستم بینایی انسان توسعه یافته اند، تعداد معدودی روش برای تحلیل و شناسایی ویژگیهای مرتبط تصاویر به صورت مؤثر و ثابت توسعه یافته اند.
بینایی ماشین
بینایی ماشین و تضاد آن با بینایی کامپیوتر در چگونگی ایجاد تصویر و پردازش آن است. بینایی کامپیوتر هر روزه در فیلمبرداری و عکسبرداری دنیای واقعی انجام می شود اما بینایی ماشین در حالت های بسیار ساده انجام می شود. قابلیت اعتماد افزایش می یابد، در حالی که هزینه ی تجهیزات و پیچیدگی الگوریتم کاهش می یابد.
در نتیجه در کارخانه ها از بینایی ماشین برای کنترل ربات ها استفاده می شود، در حالی که بینایی کامپیوتر بیشتر برای ربات هایی که در محیط های انسانی عمل می کنند، مناسب است. بینایی ماشین ابتدایی تر است ولی کاربردی تر است
بینایی کامپیوتر
بینایی کامپیوتر گرایشی از رباتیک است که در آن، با شناسایی اشیا موجود در تصاویر دیجیتالی بدست آمده از دوربین های فیلم برداری، امکان "دیدن" را برای ربات ها فراهم می سازد. تا کنون کارهای زیادی بر روی دید دوگانه (استریو ویژن) جهت کمک به شناسایی و مکان جسم در سه بعد انجام شده است. جهت شناسایی اشیا به صورت بلادرنگ که ربات ها در محیط های پیچیده بدان نیازمندند، معمولا احتیاج به قدرت محاسباتی فراتر از تکنولوژی روز داریم
اجزای یک سیستم بینایی ماشین:
معمولاً یک Machine vision از اجزای زیر تشکیل می شود :
1- یک و یا چند دوربین دیجیتال یا آنالوگ (سیاه-سفید یا رنگی) با اپتیک مناسب برای گرفتن عکس
2- واسطه ای که عکسها را برای پردازش آماده می سازد. برای دوربینهای آنالوگ این واسطه شامل یک دیجیتال کننده عکس است. هنگامی که این واسطه یک سختافزار جدا باشد، به آن Frame grabber ( کارتی که برای دریافت سیگنال تصویری و فرستادن آن به کامپیوتر استفاده می شود) می گویند.
3- یک پردازشگر - گاهی یک PC یا پردازنده تعبیه شده (Embedded Processor) مانندDSP
4- نرمافزار Machine vision : این نرمافزار امکاناتی برای توسعه یک برنامه نرمافزاری که برای کاربردی مشخص است را فراهم می کند.
5- سختافزار ورودی / خروجی ( مثلا I/O دیجیتال ) یا حلقههای ارتباطی ( مثلا ارتباط شبکه ای یا RS-232 ) برای گزارش نتایج.
6- یک دوربین هوشمند : یک وسیله ساده که همه موارد فوق را داراست.
7- لنزهایی که بتواند به مقدار مطلوبی روی سنسور تصویر زوم کند.
8- منابع نوری مناسب و گاهی خیلی مخصوص (مثلا چراغهای LED، فلورسنت، لامپهای هالوژن)
9- یک برنامه مشخص که بتواند تصاویر را پردازش کرده و مشخصههای مربوط و مناسب را شناسایی کند.
10- یک سنسور همزمان ساز برای شناسایی اجزا (گاهی یک سنسور نوری و یا یک سنسور مغناطیسی) : این سنسور برای راه اندازی سیستم استخراج و پردازش تصویر می باشد.
سنسور همزمان ساز تعیین میکند که چه زمانی یک بخش (که معمولاً روی یک حمل کننده حرکت می کند) در موقعیتی قرار گرفته است که باید مورد بررسی واقع شود. این سنسور هنگامیکه از زیر دوربین می گذرد و یک پالس نوری برای ثابت نگهداشتن تصویر ایجاد میکند، دوربین را برای گرفتن عکس فعال می کند.
نوری که برای روشن کردن آن بخش به کار می رود در واقع برای آن است که مشخصههای مطلوب را برجسته و مشخصات نامطلوب (مثل سایهها و یا انعکاس ها) را به حداقل برساند. معمولاً پنلهای LED با اندازه و طراحی مناسب برای این هدف مورد استفاده قرار می گیرند.
تصویر دوربین یا توسط یک frame grabber و یا توسط یک حافظه کامپیوتری (که در آن از frame grabber استفاده نشده است) گرفته می شود. frame grabber یک وسیله دیجیتال کننده است ( یا در داخل دوربین هوشمند و یا بطور جداگانه) که خروجی دوربین را به فرمت دیجیتال تبدیل کرده ( معمولاً این فرمت از یک آرایه دو بعدی از اعداد تشکیل شده که هر عدد متناظر شدت روشنایی نقطه متناظر در آن تصویر می باشد. به این نقاط پیکسل می گویند.) و سپس تصویر را به منظور پردازش توسط نرمافزارٍ Machine vision در حافظه کامپیوتر ذخیره می کند.
به طور معمول نرمافزار، اقدامات متفاوتی را برای پردازش تصویر انجام می دهد. گاهی در ابتدا تصویر برای کاهش نویز و یا تبدیل سایههای خاکستری به ترکیب ساده ای از رنگهای سیاه و سفید دستکاری میشود ( Binarization ). در قدم بعدی نرمافزار عمل شمردن، اندازه گیری و شناسایی اجسام، ابعاد، کاستیها و مشخصات دیگر تصویر را انجام می دهد.
در نهایت با توجه به ضوابط و معیارهای برنامه ریزی شده ممکن است بخشی را بپذیرد و یا رد کند. اگر یک بخش رد شد، نرمافزار به یک دستگاه مکانیکی فرمان می دهد تا آن بخش را خارج کند و همچنین سیستم خط تولید را قطع کرده و به کارگر هشدار می دهد تا مشکلی که باعث ایجاد خطا شده را رفع نماید. اگرچه اکثر Machine visionها بر مبنای دوربینهای سیاه–سفید بنا نهاده شده اند، استفاده از دوربینهای رنگی در حال رایج شدن است.
همچنین امروزه شاهد گسترش استفاده از تجهیزات دوربینهای دیجیتال به جای یک دوربین و یک frame grabber جداگانه در Machine vision هستیم. استفاده از یک دوربین دیجیتال به منظور برقراری ارتباط مستقیم، باعث صرفه جویی در هزینه و نیز سادگی سیستم خواهد شد. دوربینهای هوشمند که در داخل آنها embedded processor ها تعبیه شده اند، در حال تسخیر سهم بالایی از بازار Machine visionها هستند.
استفاده از یک embedded processor (و یا یک پردازنده بهینه) نیاز ما به frame grabber و یک کامپیوتر خارجی را از بین می برد. به همین خاطر این پردازندهها باعث کاهش هزینه، کاهش پیچیدگی سیستم و همچنین اختصاص توان پردازشی مشخص به هر دوربین می شود. دوربینهای هوشمند معمولاً ارزان تر از سیستمهای شامل یک دوربین و یک برد و یک کامپیوتر خارجی هستند. همچنین توان بالای embedded processor و DSPها منجر به بالا رفتن عملکرد و توانایی آنها نسبت به سیستمهای مرسوم (که بر مبنای PC هستند) شده است.
روشهای پردازش :
شمارش پیکسل :
شمردن تعداد پیکسلهای روشن و تاریک.
تعیین آستانه :
تبدیل یک عکس با قسمتهای خاکستری به یک عکس سیاه و سفید به این طریق که با قرار دادن آستانه ای پیکسلهای روشن تر از آن را سفید و پیکسلهای تیره تر از آن را سیاه در نظر می گیریم.
بخش بندی کردن (Segmentation) :
تبدیل تصویر ورودی به بخشهای مختلف برای موقعیت یابی و شمارش پیکسل ها.
تشخیص و شناسایی لکهها و دستکاری :
بررسی یک عکس برای یافتن گسسته از بین تمامی پیکسل ها.(به عنوان مثال یک حفره سیاه رنگ در درون یک جسم خاکستری) این لکهها به عنوان نشان اختصاصی عکس خواهند بود.
تشخیص و شناسایی توسط اجزاء موجود :
استخراج اجزای خاص از یک تصویر ورودی مثلا عکس.
تشخیص و شناسایی الگو به طور دقیق در برابر تغییرات رایج:
به این معنا که موقعیت جسمی که ممکن است چرخانده شود یا اندازه اش تغییر کند یا قسمتی از این جسم توسط جسم دیگر پوشانده شود، را به طور دقیق شناسایی کند.
خواندن بارکد :
شناسایی و تعیین کدهای یک بعدی(D1) و دو بعدی(D2) اسکن شده توسط ماشینها طراحی شده است.
تشخیص و شناسایی کاراکتر نوری :
خواندن خودکار یک متن (مثال : یک رشته اعداد پشت سر هم)
اندازه گیری :
اندازه گیری ابعاد یک جسم (بر حسب میلی متر یا اینچ).
تشخیص و شناسایی لبه ها :
پیدا کردن لبههای یک جسم در یک تصویر.
تشخیص و شناسایی از طریق تطبیق الگو :
پیدا کردن، مطابقت دادن و شمارش اشکال خاص در یک تصویر.
در اکثرموارد یک سیستم Machine vision به منظور بررسی کامل یک تصویر، از زنجیره مرکبی از این تکنیکهای پردازش استفاده می کند. به عنوان مثال می توان به سیستمی اشاره کرد که بارکد را می خواند و هم سطح جسم را برای خراش احتمالی مورد بررسی قرار می دهد و هم ممکن است طول و عرض آن وسیله را اندازه گیری کند.
کاربردهای ماشین بینایی :
دستگاهای ماشین بینایی دارای کاربردهای متنوعی هستند که از آن جمله به طور خلاصه می توان به موارد زیر اشاره نمود :
1- تولید صنعتی در مقیاس بزرگ
2- ساخت اجزایی که نیاز به زمان تولید مشخصی دارند.
3- سیستمهای ایمنی موجود در محیطهای صنعتی.
4- بررسی مواد اولیه تولید ( مثلا کنترل کیفیت و بررسی وقوع خطا )
5- کنترل موجودی انبار و سیستمهای مدیریتی ( شمارش، بارکد خواندن و ذخیره اطلاعات در سیستمهای دیجیتال )
6- کنترل رباتهای تعقیب خطی که برای حمل بار در کارخانههای صنعتی استفاده می شوند.
7- کنترل کیفیت و بهبود محصولات غذایی.
8- ماشینی کردن اجزای کوچک صنعتی.
سیستمهای ماشین بینایی به طور گسترده در صنعت تولید نیمه هادی ها کاربرد دارند. به راستی بدون وجود این سیستمها تولید قطعات کامپیوتری کاهش می یابد. این دستگاهها برای بازبینی دقیق ویفرهای سیلیکونی و بردازشگرها به کار می روند. در صنعت خودروسازی، Machine vision برای هدایت روباتهای صنعتی، سنجیدن مناسب بودن کالاهای مشخص شده برای اهدافی خاص و بازبینی سطحهای رنگ شده ماشین جهت یافتن عیب. اگرچه تکنیکهای مربوط به سیستمهای ماشین بینایی برای طیفهای مرئی از اشیاء گسترش یافته اند ولی ممکن است مشابه با روشها برای طیفهای نامرئی نور مانند اشعه مادون قرمز یا اشعه به کار برده شوند.
زمینههای مربوط به ماشین بینایی :
ماشین بینایی به مهندسی سیستمهای تصویر در صنعت و تولید و همچنین به گستره وسیعی از علوم کامپیوتر شامل computer vision،کنترل تجهیزات، شبکههای کامپیوتری، مدارهای واسط و فراگیری ماشین مربوط می شود. لازم به ذکر است که دو مفهوم Machine vision و Computer vision نباید با یکدیگر اشتباه گرفته شوند. Computer vision مفهوم گسترده تری در حل مسائل تصویری دارد درحالیکه Machine vision یک روش مهندسی است که عموما در مسائل مهندسی کاربرد دارد.