توصیه شده, Raspberry Pi, هوش مصنوعی, AI - هوش مصنوعی, OpenCV - پردازش تصویر

بینایی کامپیوتر در هوش مصنوعی و یادگیری عمیق

بینایی ماشین

همه چیز درباره بینایی کامپیوتر

 

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

در این مقاله قرار هست بدانیم که بینایی کامپیوتر چیست؟ و چگونه کار می کند؟

اگر دنبال پاسخ این سوالات هستید پس لطفا با ما همراه باشید.

شاید قبلا اصطلاح بینایی ماشین نیز به گوش تان خورده باشد و هنگام مطالعه این مقاله این سوال برای تان پیش بیاید که خب بینایی ماشین یعنی چه؟

و چه تفاوتی با بینایی کامپیوتر دارد؟

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

توصیه می کنم در این حوزه نیز مطالعه و تحقیق داشته باشید تا دید باز تری به موضوع پیدا کنید.

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

افزایش داده های تولید شده توسط انسان یکی دیگر از عوامل موثر در پیشرفت بینایی کامپیوتر است که این داده ها برای آموزش و هرچه بهتر شدن سیستم های بینایی کامپیوتر استفاده می شود.

همراه با افزایش فوق العاده داده های بصری(روزانه بیشتر از 3 میلیارد عکس بصورت آنلاین در فضای اینترنت به اشتراک گذاشته می شود.) قدرت سخت افزاری برای پردازش و آنالیز این داده ها در حال حاضر در دسترس می باشد. با رشد قدرت پردازش سخت افزاری و الگوریتم ها، بینایی کامپیوتر نیز رشد کرده و همچنین قدرت و دقت شناسایی نیز افزایش پیدا کرده است. همانطور که در بالا نیز اشاره شد در کمتر از یک دهه سیستم های امروزی از دقت 50 درصد به دقت 99 درصد رسیده اند که البته باعث پیشی گرفتن در سرعت عکس العمل به تصاویر ورودی نسبت به انسان شده است.

 

بینایی کامپیوتر چگونه کار می کند؟

یکی از سوالاتی که هم در علم عصب شناسی و هم در علوم هوش مصنوعی وجود دارد این است که: مغز ما دقیقا چگونه کار می کند و ما چگونه می توانیم نحوه عملکرد آن را با الگوریتم های خود تخمین بزنیم و یا به عبارتی شبیه سازی بکنیم؟

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

خب با این مقدمه خیلی کوتاه از چگونگی تخمین و تقلید شبکه های عصبی از عملکرد مغز میتوانیم به نحوه کار کردن بینایی کامپیوتر بپردازیم. 

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

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

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

1. استفاده از الگوریتم هایی که مشخص کردن و تعریف کردن ویژگی های یک تصویر حاوی یک یا چند شیء توسط افرادی که کارشان در واقع همین است و در انگلیسی از آن با نام Feature engineering یاد می شود. و سیستم از این طریق متناسب با برچسب تصاویر ویژگی ها را یاد می گیرد.

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

اما یادگیری عمیق چیست؟

 

انقلاب یادگیری عمیق

 

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

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

امروزه مدل های از پیش آموزش داده شده بسیاری از شبکه های عصبی پیچشی وجود دارد که با استفاده از میلیون ها تصویر آموزش داده شده اند مانند مدل AlexNet که در سال 2012 با استفاده از دیتاست محبوب ImageNet آموزش داده شده و البته ده ها مدل دیگر که هر یک دارای معماری و کاربرد خاص خود هستند که می توانند صد ها نوع شیء مختلف را در تصاویر تشخیص دهند.

کاربرد های بینایی کامپیوتر

 

بسیاری از کاربرد های محبوب بینایی کامپیوتر سعی در تشخیص اشیاء موجود در تصاویر را دارند.

مانند:

  • دسته بندی اشیاء: جسمی که در تصویر وجود دارد چیست؟
  • شناسایی نوع جسم: جسمی که در تصویر است از کدام نوع آن است؟
  • تائید وجود اجسام: آیا هیچ جسمی در تصویر وجود دارد؟
  • شناسایی اشیا: شناسایی چند شی در تصویر و مشخص کردن موقعیت قرار گیری آن ها.
  • آنالیز تحرکات ویدئو: استفاده از بینایی کامپیوتر برای تخمین سرعت و موقعیت اشیاء در ویدئو.

 

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

در نگارش این مقاله از مقاله های موجود در سایت های انگلیسی زبان استفاده شده و در اکثر موارد به ترجمه موارد مورد بحث در آن ها اکتفا گردیده. دلیل این کار تشویق علاقه مندان برای استفاده از منابع انگلیسی زبان(منابع ذکر خواهد شد.) برای یادگیری در کنار پلتفرم های آموزشی فارسی زبان است.

 

 

منابع:

https://towardsdatascience.com/everything-you-ever-wanted-to-know-about-computer-vision-heres-a-look-why-it-s-so-awesome-e8a58dfb641e

https://www.pcmag.com/news/what-is-computer-vision

https://towardsdatascience.com/what-is-deep-learning-and-how-does-it-work-2ce44bb692ac

 

 

 

 

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

2 دیدگاه در “بینایی کامپیوتر در هوش مصنوعی و یادگیری عمیق

  1. محمد فاطمیه گفت:

    ممنونم از مطالب خوبتون چند وقت پیش فیلمی در ted دیدم از خانم fei fei li که یکی از متخصصین در حوزه بینایی ماشین حتما ویدئو ایشون رو ببینید بسیار جالبه …قدم بعدی بینایی ماشین تفصیر چیزی که دیدنه…یعنی مثلا اگر چند نفر داخل عکس هستن و یک کیک و گل و.. متوجه بشه مشغول چه کاری هستن …و یه جمله معروف داره که میگه ما به ماشین ها یاد میدیم که چطور ببینند . که بعد اونا به ما یاد بدن بهتر ببینیم…

    1. ممنون از حسن نظرتون دوست عزیز
      بله این ویدئو را دیده بودم و بنظر من هم ارزش دیدنش رو داره.
      برای علاقمندان لینک ویدئو رو قرار میدم https://www.youtube.com/watch?v=40riCqvRoMs
      این کاربرد با نام “عنوان بندی تصویر به انگلیسی image captioning” چند سالی هست که داره روش کار میشه.
      ممنون میشم اگر راجع به این کاربرد یا کاربرد های دیگه بینایی کامپیوتر تجربه یا سوالی دارید با مخاطبان سایت از طریق همین درگاه درمیان بگذارید.
      خانم fei fei li در پروژه های بزرگی همکاری داشتند که فکر می کنم یکی از مهمترین هاش دیتاست محبوب ImageNet هستش که توی همین مقاله ازش نام برده شده.