بینایی ماشین
بینایی ماشین (به انگلیسی: Machine vision) استفاده از حس گرها برای دریافت سیگنالهایی که تشکیل دهنده تصویر یک شی هستند که توسط کامپیوتر یا سایر وسایل پردازش سیگنال برای تفسیر و تحلیل سیگنالهای دریافت شده از قطعه مورد استفاده قرار میگیرد. Machine vision به عنوان یک ابزار مهندسی در ابزارهای دیجیتال و در شبکههای کامپیوتری، برای کنترل ابزارهای صنعتی دیگر از قبیل کنترل بازوهای روبات یا خارج کردن تجهیزات معیوب به کار میرود.
اجزای یک سیستم بینایی ماشین
اگرچه “بینایی ماشینی” بیشتر به عنوان یک فرآیند در کاربردهای صنعتی شناخته شده است، برای فهرست کردن اجزای سختافزاری و نرمافزاری به کار برده شده نیز مفید میباشد. معمولاً یک بینایی ماشینی از اجزای زیر ساخته شده است:
- ۱. یک یا چند دوربین دیجیتال یا آنالوگ (سیاه-سفید یا رنگی) با اپتیک مناسب برای گرفتن عکس.
- ۲. واسطهای که عکسها را برای پردازش آماده میسازد. برای دوربینهای آنالوگ این واسطه شامل یک دیجیتال کننده عکس است. هنگامی که این واسطه یک سختافزارٍ جدا باشد، به آن Frame grabber (کارتی که برای دریافت سیگنال تصویری و فرستادن آن به کامپیوتر استفاده میشود) می گویند.
- ۳. یک پردازشگر (گاهی یک PC یا پردازنده تعبیه شده (Embedded Processor) مانند DSP
- ۴. نرمافزار Machine vision: این نرمافزار امکاناتی برای توسعه یک برنامه نرمافزاری که برای کاربردی مشخص است را فراهم میکند.
- ۵. سختافزار ورودی / خروجی (مثلاً I/O دیجیتال) یا حلقههای ارتباطی (مثلاً ارتباط شبکه ای یا RS-232) برای گزارش نتایج.
- ۶. یک دوربین هوشمند: یک وسیله ساده که همه موارد فوق را داراست.
- ۷. لنزهایی که بتواند به مقدار مطلوبی روی سنسور تصویر زوم کند.
- ۸. منابع نوری مناسب و گاهی خیلی مخصوص (مثلاً چراغهای LED، فلورسنت، لامپهای هالوژن و . . .)
- ۹. یک برنامهٔ مشخص که بتواند تصاویر را پردازش کرده و مشخصههای مربوط و مناسب را شناسایی کند.
- ۱۰. یک سنسور همزمان ساز برای شناسایی اجزا (گاهی یک سنسور نوری یا یک سنسور مغناطیسی): این سنسور برای راهاندازی سیستمٍ استخراج و پردازش تصویر میباشد.
سنسور همزمان ساز تعیین میکند که چه زمانی یک بخش (که معمولاً روی یک حمل کننده حرکت میکند) در موقعیتی قرار گرفته است که باید مورد بررسی واقع شود. این سنسور هنگامیکه از زیر دوربین میگذرد و یک پالس نوری برای ثابت نگهداشتن تصویر ایجاد میکند، دوربین را برای گرفتن عکس فعال میکند. نوری که برای روشن کردن آن بخش به کار میرود در واقع برای آن است که مشخصههای مطلوب را برجسته و مشخصات نامطلوب (مثل سایهها یا انعکاسها) را به حداقل برساند.
معمولاً پنلهای 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)
تبدیل تصویر ورودی به بخشهای مختلف برای موقعیت یابی و شمارش پیکسلها.
تشخیص و شناسایی لکهها و دستکاری
بررسی یک عکس برای یافتن گسسته از بین تمامی پیکسلها.(به عنوان مثال یک حفره سیاه رنگ در درون یک جسم خاکستری) این لکهها به عنوان نشان اختصاصی عکس خواهند بود.
تشخیص و شناسایی توسط اجزاء موجود
استخراج اجزاءی خاص از یک تصویر ورودی مثلاً عکس.
تشخیص و شناسایی الگو به طور مقاوم در برابر تغییرات
به این معنا که موقعیت جسمی که ممکن است چرخانده شود یا اندازه اش تغییر کند یا قسمتی از این جسم توسط جسم دیگر پوشانده شود، را به طور دقیق شناسایی کند.
خواندن بارکد
شناسایی و تعیین کدهای یک بعدی (1D) و دو بعدی (2D) اسکن شده توسط ماشینها طراحی شده است.
تشخیص و شناسایی کاراکتر نوری
خواندن خودکار یک متن (مثال: یک رشته اعداد پشت سر هم).
اندازهگیری
اندازهگیری ابعاد یک جسم (بر حسب میلیمتر یا اینچ).
تشخیص و شناسایی لبهها
پیدا کردن لبههای یک جسم در یک تصویر.
تشخیص و شناسایی از طریق تطبیق الگو
پیدا کردن، مطابقت دادن و شمارش اشکال خاص در یک تصویر.
در اکثرموارد یک سیستم Machine vision به منظور بررسی کامل یک تصویر، از زنجیره مرکبی از این تکنیکهای پردازش استفاده میکند. به عنوان مثال میتوان به سیستمی اشاره کرد که بارکد را میخواند و هم سطح جسم را برای خراش احتمالی مورد بررسی قرار میدهد و هم ممکن است طول و عرض آن وسیله را اندازهگیری کند.
کاربردهای ماشین بینایی
همانطور که در بین حسهای انسان بینایی از همه کاربرد وسیع تری دارد؛ بینایی ماشین نیز در زمینههای گوناگون کاربردهای متنوع و فراوانی دارد.
اتوماسیون صنعتی
دستگاهای ماشین بینایی دارای کاربردهای متنوعی هستند که از آن جمله به طور خلاصه میتوان به موارد زیر اشاره نمود:
- تولید صنعتی در مقیاس بزرگ.
- ساخت اجزایی که نیاز به زمان تولید مشخصی دارند.
- سیستمهای ایمنی موجود در محیطهای صنعتی.
- بررسی مواد اولیه تولید (مثلاً کنترل کیفیت و بررسی وقوع خطا)
- کنترل موجودی انبار و سیستمهای مدیریتی (شمارش، بارکد خواندن و ذخیره اطلاعات در سیستمهای دیجیتال)
- کنترل رباتهای تعقیب خطی که برای حمل بار در کارخانههای صنعتی استفاده میشوند.
- کنترل کیفیت و بهبود محصولات غذایی.
- ماشینی کردن اجزای کوچک صنعتی.
سیستمهای ماشین بینایی به طور گسترده در صنعت تولید نیمه هادیها کاربرد دارند. به راستی بدون وجود این سیستمها تولید قطعات کامپیوتری کاهش مییابد. این دستگاهها برای بازبینی دقیق ویفرهای سیلیکونی و پردازش گرها به کار میروند. در صنعت خودروسازی، Machine vision برای هدایت روباتهای صنعتی، سنجیدن مناسب بودن کالاهای مشخص شده برای اهدافی خاص و بازبینی سطحهای رنگ شده ماشین جهت یافتن عیب. اگرچه تکنیکهای مربوط به سیستمهای ماشین بینایی برای طیفهای مرئی از اشیاء گسترش یافتهاند ولی ممکن است مشابه با روشها برای طیفهای نامرئی نور مانند اشعه مادون قرمز یا اشعه به کار برده شوند.
حمل و نقل
پلاک خوان
تشخیص کاراکترهای پلاک از جمله کاربردهای فراگیر ماشین بینایی میباشد. با شناساندن کاراکترهای پلاک هر کشور به سیستم پردازشی و جستجوی شباهت میان آنها و تصاویر ورودی دوربین میتوان پلاک موجود در تصویر را خواند. این سیستمها در پارکینگهای هوشمند؛ ورودی و خروجی سازمانها و مجتمعهای بزرگ جهت کنترل تردد مورد استفاده قرار میگیرد. علاوه بر اینها در صورت پلاک خوانی یک خودرو در ابتدا و انتهای یک مسیر میتوان سرعت میانگین آن را محاسبه و متخلفین را اعمال قانون کرد.
سرعت سنج
با استفاده از تصویر دو دوربین میتوان عمق تصویر را بدست آورد و از این طریق تغییرات عمق را میتوان بدست آورد که به معنی سرعت است. در نوعی از سرعت سنجهای بزرگراهی از بینایی ماشین جهت استخراج سرعت استفاده میشود. مزیت این سیستمها بر نمونههای مشابهی که از رادار یا لیزر برای سرعت سنجی بهره میبرند؛ پسیو بودن آنها است. پسیو بودن به این معنی است که امواجی از خود صادر نمیکنند و به همین علت استفاده از jammer یا detector به منظور جلوگیری از ثبت تخلف کارایی ندارد. این سیستمها در نوع ثابت و متحرک طراحی میشوند. سیستمهای ثابت در کنار خیابان، جاده یا بزرگراه نصب شده و سیستمهای متحرک بر روی خودرویهای پلیس نصب میشوند. از این سیستمها میتوان به عنوان تردد شمار و سیستم کنترل ترافیک نیز بهره برد.
ثبت تخلف چراغ راهنمایی و رانندگی
با پردازش تصاویر دوربینهای نصب شده در تقاطعها میتوان زمان، سرعت، جهت حرکت و پلاک خودروها را بدست آورد و بدین ترتیب تخلفات متنوعی از جمله عبور از چراغ قرمز، توقف روی خط عابر پیاده، گردش به چپ و راست و تخطی از سرعت مجاز هنگام عبور از تقاطع را ثبت کرد.
ایمنی رانندگی
برای افزایش سطح ایمنی در رانندگی؛ ماشینهای جدید مجهز به سیستمهای بینایی ماشینی شدهاند که به راننده در حفظ هوشیاری و دقت کمک میکنند. از جمله این سیستمها میتوان به سیستمهای تشخیص مانع؛ آینهٔ کنار هشدار دهنده؛ هشدار دهنده تابلوهای راهنمایی و رانندگی و هشدار دهنده خارج شدن از خطوط جاده اشاره کرد.
تشخیص حجم
با توجه به اینکه سیستمهای ماشین بینایی قادرند مشخصات مکانی نقاط تصاویر را استخراج کنند، میتوان از آنها به عنوان سیستمهای تشخیص حجم بهره برد. به عنوان نمونه میتوان به سیستم تشخیص حجم بار خودروهای سنگین اشاره کرد. این سیستمها در محلهای دفن زباله پسماند یا نخاله ساختمانی، معادن و کارخانجات تولید مصالح ساختمانی کاربرد دارد.
زمینههای مربوط به ماشین بینایی
ماشین بینایی به مهندسی سیستمهای تصویر در صنعت و تولید و همچنین به گستره وسیعی از علوم کامپیوتر شامل computer vision، کنترل تجهیزات، شبکههای کامپیوتری، مدارهای واسط و فراگیری ماشین مربوط میشود. لازم به ذکر است که دو مفهوم Machine vision و Computer vision نباید با یکدیگر اشتباه گرفته شوند. Computer vision مفهوم گسترده تری در حل مسائل تصویری دارد درحالیکه Machine vision یک روش مهندسی است که عموماً در مسائل مهندسی کاربرد دارد.
بینایی ماشین چیست؟
بینایی ماشین شاخه ای از دانش است که سعی دارد از طریق پردازش تصاویر دوبعدی، جهان سه بعدی پیرامون را بازسازی و تفسیر کند. به بیان ساده، بینایی ماشین یعنی اینکه کامپیوترها بتوانند جهان را به کمک دوربینها ببینند، بفهمند و حتی از بینایی انسان پیشی بگیرند. بینایی ماشین میتواند در هر جایی که نیاز است تا ماشین به جای انسان ببیند، مورد استفاده قرار گیرد.
بینایی ماشین را از دو منظر علمی و تکنولوژیکی میتوان بررسی کرد. به عنوان یک رشته علمی، بینایی ماشین به توسعه تئوری سیستمهای هوشمندی میپردازد که اطلاعات را از تصاویر استخراج میکنند و به عنوان یک رشته تکنولوژیکی (فناورانه) تلاش دارد که از تئوریها و مدلهای توسعه داده شده برای ساخت سیستمهای بینایی ماشین بهره برداری کند. به عنوان مثال تولیدکنندگان صنایع مختلف سیستمهای بینایی ماشین را برای بازرسی چشمی که نیاز به سرعت بالا، بزرگ نمایی، عملکرد ۲۴ ساعته و تکرارپذیری دارد استفاده میکنند.
مفاهیم اولیه بینایی ماشین
وقتی سراغ مفاهیم اولیه پردازش تصویر و بینایی ماشین میرویم با این کلمات Computer Vision ، Machine Vision و Image Processing مواجه میشویم.
پردازش تصویر(Image Processing) مفهومی جامع است. با این تعریف که یکی از شاخههای مدرن و متنوع هوش مصنوعی است که با ترکیب روشهای خاص و الگوریتمهای خاص بر روی یک تصویر، شما میتوانید پروژههای مختلفی را با کاربردهای خاص انجام دهید.
وقتی شما میخواهید از این الگوریتمهای پردازشی استفاده کنید باید به سراغ یک پردازنده مانند کامپیوتر بروید و همچنین باید از یک دوربین برای گرفتن تصویر و فرستادن آن به کامپیوتر استفاده کنید. بعد از اینکه تصاویر از دوربین به کامپیوتر ارسال شد؛ شما باید از نرمافزارهای مربوط به این رشته استفاده کنید. در این صورت وقتی شما پروژهای را توسط این روش انجام دادید؛ در حقیقت از سیستم بینایی کامپیوتری (Computer Vision) استفاده کردهاید.
در صنایع مختلف شما برای تعیین کیفیت و نوع ساخت و همچنین برای بازبینی و بررسی کالاهای صنعتی و کنترل آنها ازجمله نیمههادیها، اتومبیلها، مواد خوراکی و دارو از نیروی انسانی که با چشم کالاها را بازبینی کند نیاز دارید. در این صورت اگر شما از کامپیوتر، دوربینهای صنعتی، لنز و لایتینگ و دیگر تجهیزات مورد نیاز یک پروژه استفاده کردید و توسط این تجهیزات و با نوشتن برنامههای کامپیوتری توانستید در صنایع مختلف یکی از کارهایی را که نیروی انسانی توسط چشمانجام میدهد را انجام دهید شما در حقیقت یک سیستم بینایی ماشین (Machine Vision) ساختهاید.