“بینایی ماشین” چیست؟

بینایی ماشین
ابوالفضل محمدی جو

ابوالفضل محمدی جو

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

اولین تکنولوژی ها برای بینایی کامپیوتر در اوایل دهه ۲۰۰۰ ظهور پیدا کرد. OpenCV تقریبا اولین ابزار مشهور برای بینایی کامپیوتر بود که توسط کمپانی اینتل در سال ۲۰۰۰ معرفی گردید. از اولین الگوریتم ها برای تشخیص اشیاء، “الگوریتم وایولا جونز” بود که در سال ۲۰۰۱ توسط پل وایولا و مایکل جونز ارائه گردید. این الگوریتم بر مبنای “فیچرهای شبیه هار” است و این الگوریتم هر فیچر مهم یک شیء را با یک شکل شبیه هار، تخمین می زند و اگر یک شیء در یک تصویر یا ویدئو، تمامی فیچرهای هار را داشت، پس آن شیء مدنظر ماست. یک پنجره متحرک با ابعاد مشخص (که توسط برنامه نویس تعیین می گردد)، از گوشه ی سمت چپ بالای تصویر شروع به حرکت می کند و پس از هر مرحله، به سمت راست حرکت کرده و پس از رسیدن به انتهای ردیف، یک ردیف به پائین آمده و حرکت را از چپ به راست ادامه می دهد. هر پنجره ای از پنجره های فوق که دارای شیء مدنظر ما باشد، توسط یک مستطیل رنگی در تصویر یا ویدئو نمایش داده می شود. “فیچرهای شبیه هار” و “پنجره متحرک” در شکل زیر نمایش داده شده اند.

Haar like Shape

الگوریتم فوق برای فیچرهای و اشیاء ساده مانند تشخیص چهره یا تشخیص ماشین در تصاویر یا ویدئوها، به خوبی کار می کند. اما زمانیکه شما تعداد زیادی فیچر در یک تصویر یا ویدئو دارید و می خواهید تمامی اشیاء را تشخیص دهید، سپس شما نیاز به ابزار پیشرفته تری برای این هدف دارید (برای مثال در یک تصویر یا ویدئو، شما می خواهید تمامی انسان ها، تمامی حیوانات با نوع آن ها و یا بسیاری از اشیاء مانند ماشین، موتور، میز، صندلی، پنجره، درخت و … را تشخیص دهید). بعد از سال ۲۰۰۶-۲۰۰۷ و با معرفی یادگیری عمیق و توسعه شبکه های عصبی پیچشی (CNN) و همچنین با پیشرفت در سرعت پردازش CPU ها و GPU ها در کامپیوترها، روش های یادگیری عمیق برای حل مسائل پیچیده بینایی کامپیوتر، وارد عمل شدند.

در همین زمان، تعدادی فریمورک قدرتمند برای یادگیری عمیق به زبان های پایتون و سی پلاس پلاس اختراع شد (کراس، تنسورفلو و پای ترچ برای پایتون و کفه برای سی پلاس پلاس). این فریمورک ها کمک زیادی به پژوهشگران یادگیری ماشین برای حل مسائل بینایی کامپیوتر و … کرد. برخی مسابقات پیشرفته مانند “ImageNet Large Scale Visual Recognition Challenge (ILSVRC)” نیز در سال های اخیر برگزار گردید تا پژوهشگران یادگیری ماشین بتوانند مدل های پربازده تری که بتواند اشیاء را در تصاویر و ویدئوها تشخیص دهد، ابداع کنند. آموزش یک مدل برای حل مسائلی مانند ImageNet، توسط سریع ترین کامپیوترها و GPU ها، در حدود چندین روز و بعضی اوقات چند هفته، به طول می انجامد. خوشبختانه به واسطه وجود “جامعه نرم افزار سورس آزاد”، تعداد زیادی از محققان، سورس کدهای خود و مدل های آموزش دیده خود را در گیت هاب و جاهای دیگر منتشر می کنند و هر کسی می تواند آن ها را دانلود کند و بر روی آن ها کار کند برای آگاهی بیشتر یا استفاده از مدل ها یا برای سعی در بهبود آن مدل ها.

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

این مقاله را در شبکه های اجتماعی خود به اشتراک بگذارید.

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

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

اشتراک در خبرنامه