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

شاید تا به حال عبارت بینایی کامپیوتری یا computer vision به گوشتان خورده باشد و برای شما سوال پیش آمده باشد که این عبارت یعنی چه؟ آیا می‌شود که یک کامپیوتر بتواند ببیند؟ اگر تجربه چنین چیزی را داشته اید، در ادامه با ما همراه باشید تا مفهوم این عبارت را درک کنید و ببینید که یک کامپیوتر چگونه می‌تواند ببیند.

بینایی کامپیوتری یا Computer Vision یعنی چه؟

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

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

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

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

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

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

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

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

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

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

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

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

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

برای رفع مشکل گفته شده از رویکرد پایین به بالا (یا Bottom-Up Approaches) استفاده می‌شود. این رویکرد فرآیند سیستم بینایی انسان را به خوبی برای کامپیوتر همانند سازی می‌کنند. در روش‌های استفاده از این رویکرد یک کامپیوتر مجموعه‌ای از متغیرها را روی تصاویر اعمال می‌کند و از این طریق لبه‌ها، اشیاء محصور در لبه‌ها، چشم‌انداز و حرکت حاصل از چندین تصویر را شناسایی می‌کند. از طریق این روش‌ها کامپیوتر قادر خواهد بود تا اشیا و شکل‌های موجود در تصویر ورودی را با اشیاء و شکا‌هایی که بر اساس آن آموزش دیدند تطبیق دهد و محتوای موجود در تصویر را تشخیص دهد.

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

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

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

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

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

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

برخی از حوزه‌های سطح بالای هوش مصنوعی که توانسته است به کمک بینایی کامپیوتر پیشرفت‌های خوبی داشته باشند عبارتند از:

  • بازشناسی نوری کاراکترها (یا همان نویسه خوان نوری یاOptical Character Recognition)
  • «بازرسی ماشینی» (Machine Inspection)
  • خرده فروشی (نظیر وارسی خودکار خرید در فروشگاه‌ها)
  • ساخت مدل‌های سه‌بعدی (که به آن «فتوگرامتری» (Photogrammetry) نیز گفته می‌شود)
  • «تصویربرداری پزشکی» (Medical Imaging)
  • «امنیت خودرو» (Automotive Safety)
  • «تصویرسازی کامپیوتری» (Computer-generated Imagery) نظیر ادغام کردن تصاویر تولید شده به وسیله کامپیوتر با تصاویر زنده بازیگران در فیلم‌های سینمایی
  • سیستم‌های «ضبط حرکتی» (Motion Capture)
  • «سیستم‌های نظارتی» (Surveillance)
  • «بازشناسی اثر انگشت و بیومتریک» (Fingerprint Recognition and Biometrics)

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

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

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

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

برای مطالعه بیشتر در زمینه هوش مصنوعی و کاربردهای آن می‌توانید به وبسایت عامر اندیش مراجعه کنید.