رایگان: همین الان رتبه‌ ارشدت رو تخمین بزن! کافیه عضو این بات تلگرامی رایگان بشین و دقیق‌ترین تخمین از رتبه‌تون رو دریافت کنین.
عضویت در بات تخمین رتبه
کنکور کامپیوتر
0
ورود | ثبت نام
نظرات
اشتراک
بالا
علاقه‌مندی

اشتراک
 

بینایی کامیپوتر چیست - ارائه نقشه راه بینایی ماشین

کامپیوتر ویژن یا بینائی کامپیوتر، در ارتباط با مدلسازی و تقلید از حس بینایی انسانی از طریق استفاده از نرم‌افزار یا سخت‌افزار دیجیتالی می‌باشد.

هم‌اکنون که در سال 2023 به مسیر زندگی ادامه می‌دهیم، تکنولوژی همچون موشکی با سوختی پایان‌ناپذیر در حال پرش در مداری بی‌انتهاست. جای تعجب ندارد اگر بگوییم تا به حال تمامی حواس پنجگانه‌ی انسانی در ابعاد مختلف و البته با محدودیت‌هایی برای ماشین‌های دیجیتال نیز ساخته و پرداخته شده است. ادراک ماشین (machine perception) قابلیتی است در سیستم‌های کامپیوتری برای تفسیر داده‌های درون محیط به صورتی که شبیه به حواس پنجگانه انسان پیاده‌سازی شده و عمل کند. بینایی ماشین نیز، جزئی از این مولفه‌های ادراکی ماشین است که صد البته بحث جدیدی نیست و بیش از 70 سال است که این تئوری پای در عرصه‌ی عمل گذاشته و امروزه با گسترده شدن فناوری و دنیای دیجیتال، به جزئی جدایی‌ناپذیر از زندگی ما بدل گشته است.

حس بینایی چیست؟

حدود 70 درصد از کل گیرنده‌های حسی بدن شما، در چشمان شما قرار دارد!

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

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

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

فرکانس در صوت، تعیین کننده‌ی زیر یا بمی صداست و دامنه‌ی آن، تعیین‌کننده‌ی ضعیف یا قوی بودن بلندی صداست. اما فرکانس در نور، تعیین‌کننده‌ی رنگ یا چرده (hue) و دامنه‌ی آن، تعیین‌کننده‌ی روشنایی آن است.

مقایسه طول موج (فرکانس) رنگ‌های مختلف 

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

تشکیل تصویر برگ بر روی شبکیه‌ی چشم

 

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

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

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

  1. لایه‌ی رنگدانه‌ی چشم (Pigment Epithelium): که وظیفه‌ی غذارسانی به سلولهای عصبی بینایی در لایه‌های داخلی‌تر را بر عهده دارد.
  2. لایه‌ی ادراک نور که شامل سلولهای مخروطی (Cone) و سلولهای استوانه‌ای (Rod) می‌شود.
  3. لایه‌ی نورونهای دوقطبی (Bipolar Neurons)
  4. لایه‌ی یاخته‌های گانگلیون (Ganglion Cells)

ساختار شبکیه‌ی چشم

 

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

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

یاخته‌های مخروطی (Cone Cells)

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

یاخته‌های استوانه‌ای (Rod Cells)

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

ساختار سلولهای گیرنده‌ی نوری چشم

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

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

بینایی کامپیوتر چیست؟

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

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

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

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

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

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

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

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

تفاوت بینایی کامپیوتر با پردازش تصویر

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

مثالی از پردازش تصویر توسط کامپیوتر

بینایی کامپیوتر به عنوان شاخه‌ای از علم کامپیوتر

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

چند مساله بسیار رایج در بینایی کامپیوتر چنین است:

1- مساله دسته بندی اشیا

کلاس‌بندی اشیاء (object classification)، امری است که الگوریتم ما بتواند به اشیاء داخل تصویر ورودی تا حدی که به آن آموزش داده‌ایم، برچسب درستی منتسب کند. مانند تصویر زیر که در آن سگ‌ها و گربه‌ها دسته‌بندی شده‌اند.

دسته بندی تصویر سگ‌ها و گربه‌ها توسط کامپیوتر

2- مساله شناسایی اشیا

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

3- ردیابی اشیا

در این نوع مساله، شیء یا اشیاء مد نظر در ویدیوی ورودی پیدا شده و حرکت آنها ردیابی (tracking) می‌شود.

4- قطعه‌بندی معنایی

در مساله‌ی قطعه‌بندی معنایی (semantic segmentation)، کل تصویر در دسته‌های پیکسلی مختلفی قرار می‌گیرد که هر گروه از این پیکسلها، نمایانگر قطعه‌ها یا اشیاء متفاوتی هستند.

قطعه‌بندی معنایی تصویر توسط کامپیوتر

5- قطعه‌بندی نمونه‌ای

این مساله (instance segmentation) شباهت بسیاری به قطعه‌بندی معنایی دارد با این تفاوت که در قطعه‌بندی معنایی، تمام نمونه‌ها از یک کلاس، با هم در یک گروه قرار می‌گیرند اما در دیگری، تمام نمونه‌ها به صورت مجزا دسته‌بندی می‌شوند.

قطعه‌بندی نمونه ای تصویر توسط کامپیوتر 

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

قطعه بندی نمونه ای در برابر قطعه بندی معنایی

چالش های بینایی کامپیوتر

اکنون که در سال 2023 به سر می‌بریم، با وجود پیشرفتهای چشم‌گیری در حوزه‌ی هوش مصنوعی (به عنوان مثال ChatGPT که با مدل‌های پردازش زبانهای طبیعی آموزش داده شده است)، هنوز هم چالش‌هایی وجود دارد که می‌تواند سد این توسعه‌ی سریع باشد!

در این بخش به 4 چالش مهمتر می‌پردازیم:

1- ناکافی بودن سخت افزار

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

توصیه‌ها:

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

استفاده‌ی نامناسب از سخت افزار در مراکز خرید Walmart برای اسکن کردن قفسه‌ها بوده است

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

یک مثال دیگر از چالش‌های سخت‌افزاری، پروژه‌ی Noisy Student است که یک رویکرد آموزش شبه‌نظارتی می‌باشد و توسط گوگل توسعه یافته است. این مدل محاسباتی که بر پایه‌ی شبکه‌های عصبی کانولوشِنال است، دارای 480 میلیون پارامتر می‌باشد. چنین مدلی با این تعداد پارامتر عظیم، نیازمند سخت افزاری بسیار قدرتمند است!

2- کیفیت پایین داده‌ها یا کمبود داده‌ها

در گستره‌ی پروژه‌های مرتبط با یادگیری ماشینیادگیری ماشین چیست و چرا مهم است؟ - Machine learning (ML)یادگیری ماشین چیست و چرا مهم است؟ - Machine learning (ML)تعریف یادگیری ماشین : ماشین لرنینگ (Machine Learning یا به اختصار ML) باعث می‌شود که خود ماشین‌ها با آنالیز داده ها امکان یادگیری و پیشرفت داشته باشند به صورت نظارتی یا شبه‌نظارتی، نیازمند مجموعه‌داده‌هایی هستیم که به خوبی نشانه گذاری شده و برچسب خورده باشند؛ در غیر این صورت، خروجی مورد نظر حاصل نخواهد شد و یا دقت و صحت مناسبی نخواهد داشت. در صنایعی مانند صنعت مراقبت از سلامت که بینایی ماشین به وفور استفاده می‌شود، اگر دیتا به درستی برچسب‌گذاری نشود، می‌تواند به شدت خطرناک باشد. به عنوان مثال، خیلی از برنامه‌ها و ابزار ساخته شده برای تشخیص بیماری کویید-19 به علت عدم وجود داده‌های مناسب و ناکافی، منجر به شکست شدند!

توصیه‌ها:

می‌توانید برخی از ابزارهای مناسب برای نشانه‌گذاری داده‌های پزشکی را در سایت AIMultiple  بیابید.

3- برنامه‌ریزی ضعیف برای توسعه‌ی مدل

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

توصیه‌ها:

4- کمبود زمان

مدیران کسب‌وکار، تمایل دارند تا در حین فاز برنامه‌ریزی، بیشتر به مرحله‌ی توسعه توجه کنند و در نتیجه به زمان اضافی مورد نیاز در موارد زیر، کم‌توجهی می‌کنند:

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

یک مطالعه‌ی دیگر بر روی شرکتها نشان می‌دهد که 99% تیم‌هایی که در پروژه‌های بینایی کامپیوتر کار می‌کنند، با یک تاخیر قابل توجهی رو به رو می‌شوند که دلایل متعددی دارد:

 شرح مشکلات یک تیم در ارتباط با مدل های آموزشی

توصیه‌ها:

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

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

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

پیش نیاز ‌های ریاضیاتی

ریاضیات بخشی جداناپذیر از رشته کامپیوتر است. چند درس مرتبط با کامپیوتر ویژن که در دانشگاه‌ها نیز تدریس می‌شود، در ادامه آماده است:

پیش نیاز های برنامه نویسی

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

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

لیست مفاهیم مورد نیاز در مبانی بینایی کامپیوتر

  1. نحوه نمایش تصاویر، نمونه برداری، طیف نوری، رنگ
  2. عملیات پیکسلی، روشنایی، کانتراست و وضوح عکس، هیستوگرام
  3. نویز، نویز گاوسی، انواع نویزها
  4. فیلتر خطی، کانولوشن، بلور
  5. تبدیل فوریه دو بعدی، تبدیل فوریه دیجیتال
  6. همبستگی نرمال شده، فیلتر میانه‌ای، فیلتر دوطرفه
  7. گرادیان تصویر، آشکارسازی لبه، عملگرهای لبه‌ای دو بعدی
  8. لاپلاسیَن گُوسی، لبه‌یاب Canny
  9. تصاویر باینری، مولفه‌های متصل
  10. مورفولوژی یا ریخت‌شناسی
  11. تبدیلات Hough
  12. یافتن خصیصه‌ها، تطبیق خصیصه‌ها
  13. یافتن گوشه‌ها، گوشه‌یاب Harris
  14. الگوریتم‌های Image Pyramid
  15. الگوریتم SIFT
  16. تبدیلات هندسی و پروجکشن
  17. الگوریتم RANSAC
  18. الگوریتم‌های تشخیص تصویر، دسته‌بندی بیزین
  19. الگوریتم نزدیک‌ترین همسایه
  20. الگوریتم‌های support vector machine
  21. خصیصه‌های Haar، خصیصه‌های HoG
  22. الگوهای باینری محلی
  23. شبکه‌های عصبی، شبکه‌های عصبی پیچشی دو بعدی

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

تاریخچه‌ی هوش مصنوعی در یک نگاه (Nvidia)

 

منابع و کتاب‌های زیادی در این عرصه وجود دارند که یکی از بهترین آنها کتاب زیر است که نسخه الکترونیک آن را نیز می‌توانید از سایت نویسنده دانلود کنید:

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

پیشرفت سریع تکنولوژی و فراهم آمدن منابع سیستمی فراوان، شاخه‌ی جدیدی از هوش مصنوعی را برای ما ایجاد کرده است که «یادگیری عمیق» (deep learning) نام دارد. این مفهوم، بر پایه‌ی مفاهیم یادگیری ماشین و شبکه‌های عصبی است. شبکه‌ی عصبی مصنوعی (artificial neural network) رویه یا الگوریتمی است که از شبکه‌ی عصبی مغز انسان الهام گرفته شده است به طوری که در آن، مفاهیم «نورون»، «شاخه عصبی»، «سیناپس» و ... تعریف می‌شود.

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

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

machine learning vs deep learning

 

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

کاربردهای ذکر شده به همینجا ختم نمی‌شوند و عملا خیلی از مسائلی که در روزمره با آن سر و کار داریم، به طور مستقیم یا غیر مستقیم امکان ارتباط با بینایی کامپیوتر را دارا هستند!

مقدمه‌ای بر برنامه نویسی در حوزه‌ی بینایی کامپیوتر

در این بخش، به مقدمه ای بر بینایی کامیپوتر برای آشنایی اولیه با نحوه برنامه سازی در حوزه‌ی کامپیوتر ویژن می‌پردازیم.

  1. در صورتی که پایتون را بر روی سیستم خود ندارید، آنرا نصب کنید؛
  2. سپس پکیج‌منجر pip را نصب کنید. با آن قادر خواهید بود تا کتابخانه‌های مورد نیاز را به راحتی نصب کنید.
  3. برای کار با تصویر و انجام عملیات بینایی کامپیوتر، نیازمند کتابخانه‌ی open-cv خواهیم بود پس آن را با استفاده از pip نصب می‌کنیم؛
    • یک پنجره‌ی جدید از ترمینال، کامندلاین یا cmd یا powershell را باز کنید.
    • دستور زیر را وارد کنید (pip باید نصب باشد):
      pip install opencv-python
    • پس از اتمام نصب، حال برنامه‌ی پایتون را با دستور زیر اجرا کنید:
      python

      یا

      python3
  4. داخل همین ترمینال، دستورات پایتون را وارد خواهیم کرد. حال، برای شروع، یک عکس رنگی را با استفاده از این کتابخانه از ورودی خوانده، نمایش داده و تغییر ابعاد می‌دهیم. نام فایلِ این عکس را image.png در نظر بگیرید:
    import cv2
    image = cv2.imread(‘image.png’)
    new_image = cv2.resize(image, (200, 200))

خط اول، کتابخانه‌ی opencv را فراخوانی می‌کند. خط دوم، عکس مد نظر را به صورت رنگی و RGB از فایل می‌خواند. خط سوم نیز، سایز عکس را به 200 در 200 تغییر می‌دهد و در متغیر جدیدی می‌ریزد.

نکته: کتابخانه‌ی opencv، کانال‌های رنگیِ RGB را به صورت BGR در متغیرها استفاده می‌کند بدین معنا که کانال اول، بُعدِ آبی، کانال دوم، بُعدِ سبز و کانال آخر، بُعدِ قرمز رنگ عکس است.

در خط زیر، کانالِ اول (در واقع اندیس صفر) از عکس را خوانده و در متغیر جدیدی میریزیم و نمایش می‌دهیم. در براکت، پارامتر اول، بُعدِ x، پارامتر دوم، بُعدِ y از عکس و پارامتر آخر، بُعد کانالها را مشخص می‌کند. کانالِ صفر به معنای کانال آبی رنگ است.

blue_image = image[:, :, 0]
cv2.imshow(blue_image)

عکس سمت راست، عکس اصلی و عکس سمت راست، عکسی است که فقط کانال آبی رنگِ عکس اصلی را به نمایش می‌گذارد:

Computer Vision Blue Image

 

به همین ترتیب برای کانال سبز:

green_image = image[:, :, 1]
cv2.imshow(green_image)

و البته به همین ترتیب برای کانال قرمز:

red_image = image[:, :, 2]
cv2.imshow(red_image)

Computer Vision Red Image

 

عکس سمت راست، عکس با کانال سبز و عکس چپ، عکس با کانال قرمز را نشان می‌دهد.

دانلود کتاب های مرجع درس بینایی کامیپوتر

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

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

تفاوت بینایی کامپیوتر و پردازش تصویر در چیست؟

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

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

آی دی تلگرام تیم پشتیبانی:     konkurcomputer_admin@

شماره ثابت موسسه:   09378555200

امتیازدهی4.3571428571429 1 1 1 1 1 1 1 1 1 14.36 امتیاز (7 رای)
اشتراک
بارگذاری نظرات
تلگرام اینستاگرام تماس با پشتیبانی: 09378555200 تماس با پشتیبانی: 09378555200