بینایی ماشین

بینایی ماشین

بینایی ماشین در هوش مصنوعی

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

کنترل کیفیت و بینایی ماشین

بینایی ماشین

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

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

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

چشم انسان و ساختار آن

ساختار چشم انسان

چشم انسان

چشم انسان که در شکل ۱۳ نشان داده شده است، تقریباً یک عدسی کروی با قطر ۵/۲ سانتی‌متر   می‌باشد که از چندین لایه مختلف که درونی‌ترین آن‌ها شبکیه نام دارد تشکیل شده است. ماهیچه‌های اطراف چشم اندازه لنز را تنظیم می‌کنند که این‌کار چشم را قادر به زوم (Zoom) کردن روی اشیاء می‌کند.

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

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

 دوربین CCD 

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

سیگنال دیجیتال

سیگنال دیجیتال

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

درک تصویر

درک تصویر

 درک تصویر

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

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

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

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

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

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

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

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

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

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

هوش مصنوعی چیست؟

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

هوش مصنوعی چیست؟

هوش مصنوعی چیست؟

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

اهداف هوش مصنوعی

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

هنوز تعریف دقیقی که مورد قبول همهٔ دانشمندان این علم باشد برای هوش مصنوعی ارائه نشده‌است، و این امر، به هیچ وجه مایهٔ تعجّب نیست. چرا که مقولهٔ مادر و اساسی‌تر از آن، یعنی خود هوش هم هنوز بطور همه‌جانبه و فراگیر تن به تعریف نداده‌است. در واقع، می‌توان نسل‌هایی از دانشمندان را سراغ گرفت که تمام دوران زندگی خود را صرف مطالعه و تلاش در راه یافتن جوابی به این سؤال عمده نموده‌اند که: هوش چیست؟

اما اکثر تعریف‌هایی که در این زمینه ارایه شده‌اند بر پایه یکی از چهار باور زیر قرار می‌گیرند:

  • سیستم‌هایی که به طور منطقی فکر می‌کنند
  • سیستم‌هایی که به طور منطقی عمل می‌کنند
  • سیستم‌هایی که مانند انسان فکر می‌کنند
  • سیستم‌هایی که مانند انسان عمل می‌کنند

شاید بتوان هوش مصنوعی را این گونه توصیف کرد:«هوش مصنوعی عبارت است از مطالعه این که چگونه کامپیوترها را می‌توان وادار به کارهایی کرد که در حال حاضر انسان‌ها آنها رابهتر انجام می‌دهند»

       تعریف دیگری که از هوش مصنوعی می‌توان ارائه داد به قرار زیر است:

« هوش مصنوعی، شاخه‌ایست از علم کامپیوتر که ملزومات محاسباتی اعمالی همچون ادراک (Perception) ، استدلال (Reasoning) و یادگیری (Learning) را بررسی کرده و سیستمی جهت انجام چنین اعمالی ارائه می‌دهد.»

و در نهایت تعریف سوم هوش مصنوعی از قرار زیر است:

«هوش مصنوعی، مطالعه روش‌هایی است برای تبدیل کامپیوتر به ماشینی که بتواند اعمال انجام شده توسط انسان را انجام دهد.»

ماهیت هوش مصنوعی

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

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

روش شناسی در هوش مصنوعی

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

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

دانشمندان هوش مصنوعی و به طور کلی دانشمندان رشته های مختلف ، اکنون مایلند با مدل هائی کار کنند که آنها را ” مدل مؤلف ” می نامند.

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

پیچیدگی های موجود در هوش مصنوعی

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

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

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

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

هوش مصنوعی در کنار علوم رایانه

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

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

در این پست به بررسی شاخه های علم هوش مصنوعی پرداخته ایم ،شما می توانید یا انواع شاخه های این علم آشنا شوید.