بینایی کامپیوتر یا بینایی ماشین و یا کامپیوتر ویژن (Computer vision) یکی از شاخههای علوم کامپیوتر است که شامل روشهای مربوط به دستیابی تصاویر، پردازش، آنالیز و درک محتوای آنها است. اصطلاح بینایی ماشین به حوزهای از مطالعات مرتبط با مبحث هوش مصنوعی و یادگیری ماشین اطلاق میشود که با هدف ایجاد چارچوبهای لازم برای پیادهسازی قابلیت بینایی (Vision) در کامپیوترها و سیستمهای کامپیوتری شکل گرفته است.
دانشمندان فعال در حوزه بینایی ماشین، سعی در تولید تکنیکها و روشهایی دارند که مفهوم دیدن (Seeing) را برای یک کامپیوتر تعریف میکنند. از این طریق، کامپیوترها توانایی شناسایی و درک محتوای موجود در تصاویر دیجیتال (Digital Image) و ویدئوها را پیدا میکنند. بینایی کامپیوتر را میتوان یکی از مصادیق و نمونههای بارز زمینهٔ مادر و اصلیتر کاوشهای ماشینی دادهها بهحساب آورد که در آن دادهها تصاویر دوبعدی یا سهبعدی هستند، که آنها را با استفاده از هوش مصنوعی آنالیز میکنند.
مفهوم دیدن در بینایی ماشین
یکی از حوزههایی که بیشترین موفقیت را در سالهای اخیر داشته است، حوزهای است که به بازسازی مفهوم چشم برای کامپیوتر پرداخته است. در چند دهه اخیر حسگرها و پردازندههای تصویری تولید شدهاند که نه تنها قابلیتهایی همانند چشم انسان دارند بلکه در برخی موارد از آن پیشی میگیرند. این پیشرفتهایی که در توسعه لنزها و حسگرها ایجاد شده باعث شده است که دقت و حساسیت دوربینهای امروزی بسیار فوقالعاده باشند.
دوربینهای امروزی میتوانند هزاران تصویر را در ثانیه ضبط کنند و حتی عمق و فاصله را با دقت باورنکردنی اندازهگیری کنند. با این همه در تولید خروجیهای بسیار با کیفیت تفاوتی با اولین دوربینهایی که در قرن ۱۹ تولید شدند ندارند، زیرا که همچنان توانایی ضبط توزیع فوتونهای صادر شده از یک جهت خاص را دارند. به عبارتی قابلیتهای دوربینهای امروزی به توانایی نرم افزارهای آنها باز میگردد نه سخت افزاراشان. این مسئله یکی از چیزهایی است که برای همانند سازی سیستم بینایی انسان برای کامپیوتر باید بر آن غلبه کرد.
مفهوم توصیف کردن در بینایی ماشین
شاید این مطلب جای مناسبی برای بحث در رابطه با مفاهیم نوروآناتومی (Neuro anatomy) سیستم بینایی نباشد، اما ذکر این نکته بسیار مهم است که مغز انسان، از پایه، برای قابلیت بینایی شکل گرفته است. به عبارت دیگر، اکثر قابلیتهای مغز انسان، برای انجام فعالیتهای مربوط به سیستم بینایی انسان در نظر گرفته شدهاند. میلیاردها سلول عصبی موجود در مغز انسان، برای استخراج الگوها از سیگنالهای نویزی (Noisy) و نامنظم صادر شده از شبکیه چشم، در کنار یکدیگر به فعالیت میپردازند.
مجموعهای از نرونها، وقتی که الگوی کنتراستی (Contrast Pattern) دیده شده در راستای یک خط و یا یک حرکت سریع در یک جهت خاص را شناسایی کنند، یکدیگر را برانگیخته میکنند. شبکههای عصبی مرتبه بالاتر، الگوهای شناسایی شده را در قالب یک فرا الگو (Meta pattern) نظیر دایره و یا جهت حرکتی تجمیع میکنند. شبکههای عصبی دیگر نیز فعال شده و تشخیص میدهند که مثلا دایره شناسایی شده سفید رنگ است و خطوط قرمز دارد. یک شبکه عصبی دیگر، افزایش سایز الگوی شناسایی شده در یک جهت خاص (حرکت اشیاء) را شناسایی میکند. در نتیجه چنین فعالیتهایی و شناسایی الگوهای خام ولی مکمل یکدیگر، یک تصویر خاص در مغز انسان و به طور خاص، سیستم بینایی انسان شکل میگیرد.
مفهوم درک کردن در بینایی ماشین
در حال حاضر، سیستمهای بینایی کامپیوتر قادر به شناسایی انواع اشیاء، در جهتگیریهای (Orientation) مختلف و در شرایط متفاوت (ایستاده و در حال حرکت) هستند. تنها کافی است دادههای کافی برای آموزش در اختیار چنین سیستمهایی قرار بگیرند و مدلهای یادگیری قدرتمندی طراحی شوند. اما نکته جالب در این زمینه این است که محققان قادر هستند سیستمهای بینایی کامپیوتر پیچیدهای برای شناسایی انواع سیب آموزش دهند؛ ولی این سیستمها قادر نخواهند بود تا مثلا پرتقال را شناسایی کنند.
این سیستمها حتی قادر نخواهند بود اندازه سیب، خوردنی بودن آن (مصنوعی یا طبیعی) و یا موارد مصرف آن را برای کاربران توصیف کنند. به بیان سادهتر، مسأله اصلی در حوزه بینایی کامپیوتر این است که یک سختافزار و نرمافزار خوب و قوی، در غیاب سیستم عامل (Operating System)، قادر به ارائه عملکرد مناسب نخواهند بود.
کاربردهای بینایی کامپیوتر
هرچند پیشرفت تحقیقات در حوزه بینایی کامپیوتر آنچنان ایدهآل نیست، اما در برخی از زمینههای به مرحله توسعه و کاربرد رسیده است. به عنوان مثال سیستمهای بازشناسایی نوری کاراکترها و تشخیص چهره از جمله کاربردهای بسیار موفق این فناوری میباشد. تحقیقات درحوزه بینایی کامپوتر از دهه ۶۰ میلادی آغاز شد اما در طی یک دهه اخیر پیشرفتهای بسیار خوبی در زمینه پیاده سازی سیستمهای کامپیوتری بر پایه مفاهیم بینایی کامپیوتری داشته است.
برخی از حوزههای سطح بالای هوش مصنوعی که توانسته است به کمک بینایی کامپیوتر پیشرفتهای خوبی داشته باشند عبارتند از:
بازشناسی اثر انگشت و بیومتریک (Fingerprint Recognition and Biometrics)
تصویربرداری پزشکی (Medical Imaging)
خرده فروشی (نظیر وارسی خودکار خرید در فروشگاهها)
سیستمهای ضبط حرکتی (Motion Capture)
بازشناسی نوری کاراکترها (Optical Character Recognition)
ساخت مدلهای سهبعدی (Photogrammetry)
امنیت خودرو (Automotive Safety)
بازرسی ماشینی (Machine Inspection)
سیستمهای نظارتی (Surveillance)
تصویرسازی کامپیوتری (Computer-generated Imagery) نظیر ادغام کردن تصاویر تولید شده به وسیله کامپیوتر با تصاویر زنده بازیگران در فیلمهای سینمایی
بینایی و تفسیر تصاویر در انسانها
lز آنجایی که هدف نهایی computer vision ساخت مفسر قدرتمند اجسام ۳D , رنگها و عمق تصاویر هست. دانستن این موضوع که چگونه مغز موجودات، بینایی و دیدن را تفسیر میکند و اینکه چند درصد نورونهای کل مغز در گیر این پروسه هستند نسبتاً اهمیت پیدا میکند. در اینجا یک نگاه کلی به این روند پیچیده می اندازیم.
حل مسئله تفسیر نور به ایدهها از جهان، درک بصری ویژگیها و اشیا، عملی خیلی پیچیده و به مراتب فراتر از تواناییهای قدرتمندترین ابرکامپیوترهای جهان است. بینایی نیازمند جدا کردن پیش زمینه از پس زمینه هست. تشخیص اشیا قرار گرفته در طیف گسترده ای از جهتها، تفسیر نشانههای فضایی با دقت بالا. مکانیزمهای نورونی در شبکههای عصبی ادراک بصری نگاه کلی از چگونگی محاسبه مغز در وضعیتهای پیچیده برای تفسیر بینایی را به ما میدهد.
ادراک بینایی زمانی آغاز میشوند که چشم نور را بر روی شبکیه چشم یا (retina) متمرکز میکند، که در آن جا توسط یک لایه از سلولهای گیرنده نوری جذب میشود. این سلولها نور را به سیگنالهای الکتروشیمیایی تبدیل میکنند و به دو نوع، میله ای و مخروطی تقسیم میشوند (بر اساس شکل هایشان). سلولهای میله ای مسئول دید ما در شب هستند و به نور کم پاسخ خیلی خوبی میدهند. سلولهای میله ای (Rod cells) عمدتاً در مناطق پیرامونی از شبکیه چشم (حول یا اطراف شبکیه) یافت میشوند و بنابراین اکثر مردم این موضوع را فهمیده اند که اگر نگاه خود را در شب متمرکز کنند میتوانند منطقه مورد تمرکز را بهتر ببینند.
سلول های مخروطی (Cone cells) در یک منطقه مرکزی شبکیه متمرکز به نام گودال متمرکز شدهاند که فرورفتگی (یا fovea) هم نام دارد. آنها مسئول وظایف سنگین و دقیقی مثل خواندن هستند. سلولهای Cone بسته به اینکه به نور آبی، قرمز، سبز چگونه واکنش میدهند به سه دسته تقسیم میشوند، و در مجموع این سه نوع از Cone ما را قادر به درک رنگها میکنند. سیگنالها از سلولهای گیرنده نوری (photoreceptor cells) از طریق شبکه ای از interneuronsها در لایه دوم شبکیه چشم به سلولهای ganglion در لایه سوم منتقل میشوند. نورونهای موجود در این دو لایه از شبکیه زمینه پذیرای پیچیده ای که آنها را قادر به تشخیص تضادهای تغییراتی در یک تصویر میکند را ارائه میدهند.
این تغییرات ممکن است لبهها یا سایهها را نشان دهند. سلولهای Ganglion این اطلاعات را به همراه دیگر اطلاعات در مورد رنگ جمعآوری میکنند و خروجی خود را به مغز از طریق عصب بینایی ارسال میکنند. عصب یا Nerve بینایی در درجه اول اطلاعات را از طریق thalamus به قشاء مغزی (cerebral cortex) ارسال میکند. پس از ارسال اطلاعات در قسمت cerebral cortex ادراک بصری انسان به وقوع میپیوندد. اما در عین حال این عصب (Nerve) حامل اطلاعات مورد نیاز برای مکانیک دید نیز هست که به دو قسمت از ساقه مغز (brainstem) این اطلاعات را منتقل میکند.
اولین قسمت از brainstem گروهی از سلولهای هسته هستند که pretectum نام دارند که کنترل غیرارادی اندازه مردمک در پاسخ به شدت نور را بر عهده دارند. اطلاعات مربوط به اهداف متحرک و اطلاعات ساکن اسکن شده توسط چشم نیز به قسمت دوم در brainstem منتقل میشود، یک هسته که با نام superior colliculus شناخته میشود مسئول حرکات چشم در پرشهای کوتاه هست. بخش دیگر از این دو قسمت saccades هست که به مغز اجازه درک یک اسکن هموار را با کمک چسباندن یک سری از تصاویر نسبتاً ثابت میدهد. Saccadic eye movement مشکل تاری شدید- که میتواند برای تصویر پیش بیاید – را حل میکند. چشم میتواند به صورت یکنواخت در سراسر چشمانداز بصری حرکت کند؛ saccadesها در بعضی از وضعیتها تجربه بصری را ممکن و آسان میکنند مانند مشاهده چشم فرد دیگری برای شما، در حالی که آن فرد در تلاش برای نگاه کردن سرتاسر اتاق هست.
بسیاری از تصاویر از شبکیه چشم (retina) از طریق عصب بینایی به بخشی از thalamus که به نام (lateral geniculate nucleus) شناخته شدهاست و در اختصار (LGN) هم کفته میشود منتقل میشوند، thalamus در عمق مرکز مغز قرار گرفته. LGN ورودی شبکیه (retinal) را به جریانهای موازی ای مورد جداسازی قرار میدهد که یکی حاوی رنگ و ساختار ثابت و دیگری حاوی تضادها (contrast) و حرکات هست. سلولهایی که پردازش رنگ و ساختار را انجام میدهند چهار لایه بالایی از شش لایه LGN را تشکیل میدهند. این چهار لایه به علت کوچکی سلولها، parvocellular نامیده میشوند. سلولهایی که پردازش حرکات و تضادهای تصویر را انجام میدهند دو لایه پایینی LGN رو تشکیل میدهند و به علت بزرگی سلولهای این قسمت، لایه magnocellular نامیده میشوند.
سلولهای لایههای magnocellular و parvocellular همه راهها را به بخشهای پشت مغز و به سمت قشر بینایی اولیه (Visual cortex _ V1) طرحریزی میکنند. سلولها در V1 در چندین مسیر مرتب شدهاند که این مسئله اجازه میدهد سیستم بینایی محل اشیاء را در فضا محاسبه کند. در ابتدا سلولهای V1 به صورت retinotopically یا موضعی سازمان یافتهاند، که به معنای این است که نقطه به نقطه روی نقشه بین شبکیه و قشر بینایی اولیه وجود دارد و مناطق همجوار در شبکیه چشم با مناطق همجوار در V1 مطابقت دارد؛ که این به V1 اجازه میدهد که موقعیت اشیا را در دو بعد از جهان بصری که افقی و عمودی (مختصات (x , y)) تعیین کند. بعد سوم و عمق نیز با مقایسه سیگنالهای دو چشم توسط V1 نقشهبرداری و تعیین میشود. این سیگنالها در پشته سلول ها که ستون ocular dominance نامیده میشوند پردازش میشوند، که یک الگوی شطرنجی اتصالات متناوب بین سمت چپ و چشم راست است. اختلافی جزئی در موقعیت یک شی نسبت به هر چشم وجود دارد که اجازه میدهد تا عمق توسط مثلث محاسبه شود.
در نهایت، V1 به ستونهای جهت گیری سازمان یافتهاست، پشته از سلولها که به شدت توسط خطوط یک جهت گیری داده شده، فعال میشوند. ستونهای جهت امکان تشخیص لبههای اشیاء در جهان بصری را برایV1 را فراهم میسازند، و به طوری که آنها کار پیچیده ای از تشخیص بصری را شروع میکنند. سازمان ستونی از قشر بینایی اولیه برای اولین بار توسط David Hubel و Torsten Wiesel توصیف شدهاست، که در نتیجه بخاطر این موضوع جایزه نوبل ۱۹۸۱ را دریافت کردهاند.
جالب توجه است که این الگوی شطرنجی، سازمان ستونی V1 در هنگام تولد بسیار مبهم است. قشر بینایی یک نوزاد تازه متولد شده رشد بیش از حد (hypertrophy) , یا اتصالات اتفاقی دارد که باید به دقت و بر اساس تجربه بصری در بلند مدت هرس شوند، و در نهایت به ستونهای جداگانه تعریف شده تبدیل شوند- این در واقع یک کاهش در تعداد اتصالات و نه افزایش اتصالات خواهد بود -که در نهایت توانایی نوزاد برای دیدن جزئیات ریز و به رسمیت شناختن اشکال و الگوها را بهبود میبخشد.
این نوع از پالایش وابسته، به فعالیت به V1 محدود نمیشود و در بسیاری از مناطق سراسر قشر مغز (cerebral cortex) رخ میدهد. در همان زمان که توانایی تبعیض خطوط و لبه در قشر بینایی اولیه بهبود مییابد، سلولها را در قشر بینایی ثانویه (secondary visual cortex V2) , توانایی خود را برای تفسیر رنگ پالایش میکنند. V2 تا حد زیادی مسئول پدیده ثبات رنگ است؛ و این حقیقت را توضیح میدهد که واقعیت یک گل سرخ تحت تأثیر بسیاری از رنگهای مختلف نور توسط ما هنوز هم به رنگ سرخ به نظر میرسد. این طور گمان میشود که ثبات رنگ وقتی رخ میدهد که V2 میتواند یک شیء و نور محیط را مقایسه کند و میتواند برآورد رنگ روشنایی را کاهش دهد. با اینحال این پروسه با توجه به اینکه بیننده انتظار دارد که شیء بهخصوص به چه رنگی داشته باشد، به شدت تحت تأثیر قرار میگیرد.
مجله هوش مصنوعی پارس اینفوتک
در حقیقت، تقریباً تمام ویژگیهای مرتبه بالاتر از بینایی و منظره توسط انتظارات بر اساس تجربه گذشته تحت تأثیر قرار میگیرد. این ویژگی به گسترش رنگ و درک فرم موجود در V3 و V4، به چهره و تشخیص شیء در لوب temporal (جایی که تصویر ذهنی سه بعدی از آنچه که میبینیم در نهایت تشکیل میشود) و به حرکت و آگاهی از فضای موجود در لوب parietal میانجامد. هرچند چنین روش و تأثیراتی گاهی اجازه میدهد مغز تحت تأثیر تصورات نادرست فریب بخورد، برای مثال در مواقع خطای دید در برخی از تصاویر، ولی این روش پردازش به ما توانایی دیدن و پاسخ سریع به جهان بصری را داده است. از تشخیص روشنایی و تاریکی در شبکیه چشم (retina) تا خطوط انتزاعی در V1 تا تفسیر اشیا و روابط فضاییشان در ناحیههای بصری بالاتر، هر وظیفه ای در ادراک بصری کارایی و قدرت سیستم بینایی انسان را نشان میدهد.
منبع : how brain interprets vision
من از مدل یولو استفاده کردم
یعنی یه بار پیاده سازی کردم
معرکه است
بله جناب سالاری عزیز
شبکه یا مدل یولو برای object detection هست و دقت فوق العاده بالایی داره مخصوصا ورزن های اخیرش که تعداد کلاس ها رو هم افزایش داده