بینایی ماشین چیست؟
بینایی ماشین شاخه ای از دانش است که سعی دارد از طریق پردازش تصاویر دوبعدی، جهان سه بعدی پیرامون را بازسازی و تفسیر کند. به بیان ساده، بینایی ماشین یعنی اینکه کامپیوترها بتوانند جهان را به کمک دوربینها ببینند، بفهمند و حتی از بینایی انسان پیشی بگیرند.
تا چند دهه پیش بسیاری از مردم، حوزه بینایی ماشین را متناظر با داستانهای «علمی-تخیلی» (Science Fiction) تصور میکردند. ولی در یک دهه گذشته، بینایی ماشین تبدیل به یکی از حوزههای تحقیقاتی بالغ در علوم کامپیوتر، هوش مصنوعی و زیر شاخههای مرتبط آن تبدیل شده است. تحقیقات بنیادی و اساسی که توسط محققان و دانشمندان پیشین در حوزه بینایی ماشین انجام شده است، بنیان مستحکمی را برای تحقیقات بدیع و مدرن در این زمینه فراهم آورده است. در این مطلب، مرور جامعی بر رویکردهای پیشین و رویکردهای مدرن در حوزه بینایی ماشین ارائه خواهد شد. همچنین، ساختار مورد انتظار برای تحقیقات، جهتگیریهای پژوهشی و تکنیکهایی که ممکن است در آینده، در این حوزه توسعه داده شوند، ارائه خواهد شد.
تاریخچهی جذاب بینایی ماشین
درست در زمان مرگ والت دیزنی و تولد مخترع ویکیپدیا، مردم در تلاش بودند نعمت بینایی را به کامپیوتر هدیه کنند. متن زیر برنامهریزی برای ساخت یک سیستم بصری را نشان میدهد. براساس این متن ساخت هر بخش از این سیستم بر عهدهی گروههای مختلف است و این پروژه به یک نقطهی شاخص در توسعهی تشخیص الگو تبدیل میشود.
در این متن اشاره شده است که هدف اصلی این پروژه، ساخت سیستمی برای طبقهبندی اشیا و پسزمینه در یک تصویر است. پیشرفتهای قرن بیستویک در زمینهی محاسبات، ریاضی و زمینههای مرتبط، زمینهای را برای این پیشرفتها فراهم کرده است.
تفاوت بینایی ماشین و بینایی کامپیوتر
بسیاری از افراد گمان میکنند که بینایی ماشین و «بینایی کامپیوتر» (Computer Vision) دو اصطلاح معادل یکدیگر هستند. در حالی که بینایی ماشین و بینایی کامپیوتر اصطلاحات متفاوتی هستند که برای توصیف فناوریهای همپوشان مورد استفاده قرار میگیرند. به صورت کلی، بینایی کامپیوتر به فرایند خودکارسازی «دریافت» (Capture) و «تحلیل تصاویر» (Image Analysis) گفته میشود. در دامنه وسیع کاربردهای عملی و تئوری حوزه بینایی کامپیوتر، تأکید سیستمهای بینایی کامپیوتر بیشتر روی قابلیتهای تحلیل تصاویر، استخراج اطلاعات مفید از آنها و درک و فهم اشیاء یا موجودیتهای موجود در آنها است.
در نقطه مقابل، بینایی ماشین اصطلاحی است که برای توصیف سیستمهایی به کار گرفته میشود که از تکنیکهای بینایی کامپیوتر در کاربردهای صنعتی و عملی استفاده میکنند. همچنین، در صورتی که از تکنیکهای بینایی کامپیوتر در سیستمها یا فرایندهایی استفاده شود که جهت تضمین عملکرد بهینه آنها، اجرای یک تابع تحلیل تصویر یا دستیابی به یک خروجی خاص (مبتنی بر تحلیل تصویر) ضروری باشد، عملا یک سیستم بینایی ماشین پیادهسازی شده است.
معمولا، مؤلفههای ابتدایی لازم برای توسعه سیستمهای بینایی کامپیوتر و بینایی ماشین مشابه یکدیگر هستند:
- یک دستگاه تصویربرداری یا دریافت تصویر (معمولا یک دوربین که از یک سنسور تصویر و یک لنز تشکیل شده است)
- وجود شرایط نوری مناسب برای تعامل با محیط عملیاتی، دریافت تصویر از محیط، تحلیل تصاویر دریافت شده و تولید خروجیهای متناسب با تحلیل انجام شده
- یک سیستم کامپیوتری (البته در سیستمهای تصویربرداری امروز نظیر «دوربینهای هوشمند» (Smart Cameras)، به دلیل وجود پردازندههای اختصاصی، بسیاری از فرایندهای پردازش و تحلیل تصویر درون دستگاه تصویربرداری انجام میشود)
- برنامه پردازش تصویر (برنامه کاربردی کد نویسی شده در زبانهای برنامهنویسی نظیر پایتون، متلب و سایر موارد جهت پردازش و تحلیل تصاویر)
در طی چند سال اخیر، مرز میان سیستمهای بینایی کامپیوتر و بینایی ماشین باریک شده است و در حال از بین رفتن است. با این حال، امروزه از اصطلاح بینایی ماشین، علاوه بر اینکه در محیطهای صنعتی استفاده میشود، در محیطهای غیر صنعتی نظیر «نظارت پیشرفته و دست بالا» (High-end Surveillance)، «بیوپزشکی» (Biomedical) و یا کاربردهای «علوم حیاتی» (Life Science) نیز مورد استفاده قرار میگیرد. همچنین، برای توصیف تکنیکهایی که با هدف بهبود قابلیتهای متور های جستوجو و ارائه سرویسهای «بازشناسی مبتنی بر تصویر» (Image-based Recognition) در جستجو ارائه شدهاند، از اصطلاح بینایی ماشین استفاده میشود.
مطابقت دو سویی در بینایی ماشین
در فرایند مطابقت دو سویی، ورودی (تصویر دیجیتال یا فریمهای ویدئویی) از دو دوربین دریافت میشود و «ویژگیهای مشترک» (Shared Features) میان آنها شناسایی میشود. خروجی فرایند مطابقت دو سویی (Stereo Correspondence)، یک «نقشه ناهمخوانی» (Disparity Map) از تصویر است. نقشه ناهمخوانی، با نامهای دیگری نظیر نقشه نابرابری یا نقشه تمایز نیز شناخته میشود. نقشه ناهمخوانی یک تصویر، در اصل، یک «نقشه عمق معکوس» (Inverse Depth Map) از آن تصویر به حساب میآید که فاصله (دور بودن) هر کدام از پیکسلهای موجود در تصویر، از «صفحه دوربینها» (Plane of Cameras) را نشان میدهد.
برای این که محاسبات سیستمهای بینایی ماشین و عملکرد آنها به شکل بهینهای انجام شود، دوربینها باید فاصله ثابتی با یکدیگر داشته باشند و جهت آنها نسبت به یکدیگر مشخص باشد. محققان معمولا با انجام آزمایشات «کالیبره کردن» (Calibration)، فاصله و زاویه دوربینها از یکدیگر را به طور خودکار مشخص میکنند. ورودی فرایند مطابقت دو سویی، معمولا دادههای خام دریافت شده توسط دوربینها است که باید فرایندهای پردازشی خاصی به نام «اصلاح تصویر» (Image Rectification) روی آنها انجام شود.
اصلاح تصویر فرایندی است که در آن یک تصویر ورودی، روی یک «سطح معمولی» (Common Surface) «نگاشت» (Map) یا «تبدیل» (Transform) میشود تا تصاویری که شکل طبیعی خود را از دست دادهاند، «نرمالسازی» (Normalize) شوند. چنین امری بیشتر در مورد تصاویری که توسط «دوربینهای چشم ماهی» (Fish-Eye Cameras) ضبط شدهاند و یا تصاویری که توسط دوربینهای با ارتفاع نابرابر گرفته شدهاند، صدق میکند. نتیجه خروجی فرایند اصلاح تصویر، یک تصویر نرمالسازی شده از هر دوربین است. پس از اتمام فرایندهای پردازشی اصلاح تصویر، تصاویر حاصل شده را میتوان به عنوان ورودی، به یک الگوریتم مطابقت دو سویی (Stereo Correspondence) داد تا اشتراکات موجود میان آنها شناسایی شود.
جمعبندی
سیستمهای بینایی ماشین، از طریق اصلاح و بهینهسازی تکنیکهای موجود و یا ترکیب روشهای موجود با تکنیکهای دیگر در حوزههای مرتبط (نظیر بینایی کامپیوتر)، به سرعت در حال پیشرفت هستند. همچنین، زیر شاخههای تحقیقاتی دیگری نیز در حوزه بینایی ماشین وجود دارند که محققان میتوانند آنها را با تکنیکهای معرفی شده در این مطلب ترکیب کنند و عملکرد آنها را بهبود بخشند؛ زیر شاخههایی نظیر بینایی فعال، ساختار به وسیله حرکت (Structure from Motion | SFM) و بازسازی صحنه به وسیله تصاویر گرفته شده توسط دوربینهای کالیبره نشده.
تحقیق در مورد استفاده از تعداد زیادی دوربین کم کیفیت جهت مطابقت تصاویر و مقایسه عملکرد آنها با سیستمهایی که از دو دوربین با کیفیت بالا استفاده میکنند، از جمله حوزههای تحقیقاتی است که میتواند مورد بررسی قرار بگیرد. در مورد نمایش حافظهای مبتنی بر پیکسل سهبُعدی (Voxel-based Memory Representation) از صحنهها و ذخیرهسازی ویژگیهای مهم موجود در صحنهها نظیر گوشهها و لبهها، تحقیقات بسیار کمی انجام شده است. در مبحث بازسازی صحنه نیز، جای خالی تحقیقات مرتبط با تکنیکهای خوشهبندی جهت شکل دادن به اشیاء، بر اساس ویژگیهای همسایگی و رنگبندی مشاهده میشود.
علاوه بر این، با روی آوردن هر چه بیشتر محققان به استفاده از واحدهای پردازش گرافیکی (GPU) جهت انجام فرایندهای مرتبط با بینایی ماشین (مطابقت دو سویی، بازسازی صحنه و بازشناسی اشیاء)، انتظار میرود موقعیت پیکسلهای سهبُعدی با دقت بیشتری مشخص شود و جزئیات بیشتری جهت بازشناسی اشیاء در تصویر، در اختیار سیستمهای بینایی ماشین قرار بگیرد.