بینایی ربات ها”ماشین”

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

 

کنترل کیفیت خط تولید

شکل ۱- نمای ساده شده‌ای از یک سیستم بینایی کنترل کیفیت خط تولید غیرواقعی
یکی از کاربردهای بینایی ماشین در کنترل کیفیت خروجی کارخانه‌ها می‌باشد. شکل ۱ مثالی بسیار ساده از چنین سیستمی است. اجناس تولید‌شده در کارخانه که برروی یک نوار نقاله قرار گرفته‌اند و توسط یک دوربین CCD برای آزمایش دیده می‌شوند و محصولات با کیفیتِ مناسب اجازه عبور پیدا خواهندکرد. چنانچه محصولی دارای استانداردهای مناسب نباشد از ادامه مسیر حذف می‌شود. معیار این استانداردها می‌تواند لبه‌های زائد، خراشیدگی و بادکردگی و تورم روی فلزات و بسیاری چیزهای دیگر باشد. در این مثال ما در پی یافتن مکانیزم خط تولید نیستیم و فقط می‌خواهیم ببینیم که یک شی تولیدشده چگونه استاندارد تشخیص داده شده و اجازه عبور می‌یابد و برعکس چگونه به بعضی از اشیاء اجازه عبور و ادامه دادن داده نمی‌شود.

عکس‌برداری
در این مثال ما سعی در مکانیزه کردن فرآیندی یکنواخت داریم که به‌صورت معمول و تکراری توسط انسان انجام می‌شود. اولین مسأله و مشکل ما این است که چگونه عکس‌های تهیه شده از اشیایی که در حال حرکت بر روی نوار نقاله هستند را تبدیل به داده‌های قابل فهم و تفسیر برای سیستم نماییم، که این مشکل توسط دوربین CCD حل می‌شود. عملکرد این دوربین را می‌توان به عملکرد چشم انسان که قادر است سطوح مختلف نور را تشخیص دهد تشبیه نمود.
چشم انسان
چشم انسان که در شکل ۲ نشان داده شده است، تقریباً یک عدسی کروی با قطر ۵/۲ سانتی‌متر می‌باشد که از چندین لایه مختلف که درونی‌ترین آن‌ها شبکیه نام دارد تشکیل شده است. ماهیچه‌های اطراف چشم اندازه لنز را تنظیم می‌کنند که این‌کار چشم را قادر به زوم (zoom) کردن روی اشیاء می‌کند.

شکل ۲- نمای داخلی چشم انسان
وظیفه عدسی چشم، فرم و شکل دادن به تصویری است که توسط میلیون‌ها سلول گیرنده مخروطی (Cone) و میله‌ای (rod) گرفته شده و برروی پرده شبکیه افتاده است، می‌باشد. سلول‌های میله‌ای به یک عصب معمولی که از انتها به شبکیه ختم می‌شود و فقط در سطح نور پایین فعال است متصلند و سلول‌های مخروطی هر کدام به یک عصب اتصال دارند. آن‌ها در نورهای شدیدتر، بیشتر فعالند و میزان درک ما از رنگ‌ها را نوع فعالیت این‌ مخروط‌ها مشخص می‌کند.
در میان شبکیه ناحیه‌ای به‌نام نقطه کور وجود دارد که در آن هیچ‌ گیرنده‌ای موجود نیست. در این ناحیه اعصاب به‌صورت جداگانه به عصب بینایی که سیگنال‌های دریافت شده را به قشر بینایی مخ انتقال می‌دهند، وصل می‌شود.

دوربین CCD
CCD از جهت عملکرد تقریباً مانند چشم انسان کار می‌کند. نور از طریق یک عدسی وارد دوربین و برروی یک پرده مخصوص تصویر می‌شود که تحت عنوان تراشه CCD شناخته می‌شود. تراشه Charge Coupled Device) CCD) که تصاویر با استفاده از آن گرفته می‌شوند از تعداد زیادی سلول تشکیل شده که همگی در یک تراشه با الگوی خاصی مرتب شده‌اند و تحت عنوان پیکسل (pixels) شناخته می‌شوند.

شکل۳- تصویر وسط یک نمای نزدیک از چشم ماهی را نمایش می دهد و نشان می دهد که هر قسمت از یک تصویر چگونه با تعدادی مقادیر عددی ذخیره می شود. به تعداد داده های عددی مورد نیاز برای ذخیره یک فضای کوچک از تصویر توجه کنید.

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

با هر تصویر، چه با دوربین گرفته شود و چه با چشم انسان، مقداری تحریف و تغییر شکل و
به عبارتی “نویز (noise) ” وجود دارد. البته در مورد مثال ما در سیستم خط تولید این مسأله چندان اهمیت ندارد اما در موقعیت‌هایی که نیاز به دقت بالا وجود دارد باید از نورپردازی خاصی برای تصویربرداری استفاده شود.

شکل ۴- ترسیم لبه. شکل اول تصویر اصلی می‌باشد. در شکل وسط نویزها با فیلترنمودن ا‌ز بین رفته است. در نهایت شکل ۳، تصویر حاصل از به‌کار بردن الگوریتم ترسیم لبه می‌باشد.
انسان‌ برای درک تصاویری که می‌بیند نیازی ندارد هیچ کاری در مورد فیلتر کردن و از بین بردن نویزهای یک تصویر انجام دهد. مثلاً در یک روز ابری که مه همه جا را فرا گرفته، دید ما به شدت ضعیف و دچار مشکل می‌شود. اما هر آنچه را که قادر به دیدنش باشیم درک می‌کنیم. یعنی برای درک اشیاء نیازی به حذف نویزهای تصویر نیست. مثلاً اگر در این روز در حال رانندگی در یک جاده باشید و تصویر مبهمی از یک ماشین را مقابل خود ببینید، بالطبع عکس‌العمل نشان می‌دهید و به عبارتی سرعت خود را کم می‌کنید.

 

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

خوشبختانه در حال حاضر تکنیک‌هایی برای انجام این کار وجود دارد. از بین بردن نویزها به‌صورت نرمال توسط تعدادی از توابع ریاضی یا الگوریتم‌هایی که تحت عنوان ‘treshholding’ یا ‘quantizing’ نامیده می‌شود انجام می‌گردد. این فرآیند بسیار حرفه‌ای و پیچیده‌ای است و نیاز به دانش و پشتوانه بالای ریاضی دارد. زمانی که خرابی‌ها از بین رفت، می‌توانیم پردازش عکس‌ها را ادامه دهیم که این کار با استخراج صورت‌ها و حالت‌ها از یک تصویر انجام می‌شود. یک شیوه معمول که غالباً مورد استفاده قرار می‌گیرد استخراج لبه‌ها که در شکل ۴ دیده می‌شود، می‌باشد.

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

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

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

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

یعنی در این مثال، یک صحنه فرضی شامل ده‌ها یا حتی صدها شی مختلف در معرض دید است. این اشیاء در اندازه‌ها و تحت زوایای مختلف که متأثر از نوع نورپردازی هم هستند به نمایش درمی‌آیند و به همین دلیل برای تشخیص این اشیاء نیاز به تکنیک‌های هوش‌مصنوعی (Ai) می‌باشد.
پردازش اطلاعات در مغز

شکل ۵ – تصویر به نظر دو مثلث می‌آید که در جهت عکس هم و برروی هم قرار داده شده‌اند، ولی از نظر ریاضی هیچ مثلثی رسم نشده است و فقط سه دسته از خطوط وجود دارند.
در مورد بینایی انسان متذکر شدیم که شاید یکی از قسمت‌هایی از مغز که بیشتر فعالیت درک تصویر را انجام می‌دهد ناحیه visual Cortex باشد. همان‌طور که دیده‌ایم، این‌جا ناحیه‌ای است که اطلاعات منتقل شده در طول عصب بینایی در آن پردازش می‌شود. البته این را هم مدنظر داشته باشید که قسمتی از فعالیت پردازش اطلاعات در ناحیه شبکیه چشم قبل از این‌که اطلاعات به مغز برسند، انجام می‌شود.