زمان تخمینی مطالعه: 17 دقیقه
بینایی کامپیوتر چیست و چگونه کار میکند؟ این مقاله راهنمای کاملی برای Computer Vision، یکی از زمینههای کلیدی هوش مصنوعی (AI) ارائه میدهد. در ادامه، هر آنچه را که باید در مورد فناوری هوش مصنوعی بصری و چشم انداز آن باید بدانید را پوشش خواهیم داد. مطالب ارائه شده در این مقاله به شرح زیر است:
- بینایی کامپیوتر چیست؟
- کامپیوتر ویژن چگونه کار میکند؟
- تاریخچه بینایی کامپیوتر
- روندهای فعلی در بینایی کامپیوتر
مفهوم بینایی کامپیوتر
بینایی کامپیوتر(Computer Vision) رشتهای از هوش مصنوعی (AI) است که با روشهای محاسباتی برای کمک به رایانهها در درک و تفسیر محتوای تصاویر و ویدیوهای دیجیتال سروکار دارد. از این رو، هدف بینایی کامپیوتر این است که رایانهها ورودی دادههای بصری را از دوربینها یا حسگرها ببینند و درک کنند. اگر هوش مصنوعی رایانهها را قادر میسازد فکر کنند، بینایی کامپیوتری آنها را قادر میسازد که ببینند، مشاهده کنند و بفهمند.
بر اساس تعریفی دیگر بینایی کامپیوتر حوزهای از علم هوش مصنوعی است که از یادگیری ماشین و شبکههای عصبی استفاده میکند تا به رایانهها و سیستمها بیاموزد تا اطلاعات معنیداری را از تصاویر دیجیتال، ویدئوها و سایر ورودیهای بصری استخراج کنند – و در صورت مشاهده نقص یا مشکل، توصیهها یا اقداماتی را انجام دهند.
وظیفه اصلی بینایی کامپیوتری این است که سیستمهای رایانهای را قادر سازد تا به طور خودکار جهان بصری را مشاهده کرده، شناسایی و درک کنند و بینایی انسان را با استفاده از روشهای محاسباتی شبیهسازی کنند. در واقع هدف بینایی کامپیوتری تقلید مصنوعی بینایی انسان بوسیله قادر ساختن کامپیوترها به درک معنادار محرکهای بصری است. بنابراین به آن ادراک ماشین یا بینایی ماشین نیز میگویند. در حالی که مشکل “بینایی” به طور پیش پا افتاده توسط انسانها (حتی توسط کودکان) انجام میگیرد، بینایی محاسباتی همچنان یکی از چالش برانگیزترین زمینهها در علوم کامپیوتر است، که این موضوع به دلیل پیچیدگی عظیم دنیای فیزیکی و متفاوت بودن ساختار جهان پیرامون ما است.
بینایی انسان مبتنی بر یک عمر یادگیری با زمینه(Context) برای آموزش نحوه شناسایی اشیاء خاص یا تشخیص چهره یا انسان در صحنههای بصری است. از این رو، فناوری بینایی مصنوعی مدرن از یادگیری ماشینی و روشهای یادگیری عمیق برای آموزش ماشینها در مورد نحوه تشخیص اشیا، چهرهها یا افراد در صحنههای بصری استفاده میکند. در نتیجه، سیستمهای بینایی کامپیوتری از الگوریتمهای پردازش تصویر استفاده میکنند تا کامپیوترها بتوانند اشیاء و محیط اطرافشان را از دادههای ارائهشده توسط دوربین بیابد، طبقهبندی کند و تجزیه و تحلیل انجام دهد.
سیستمهای بینایی کامپیوتری برای بازرسی محصولات، زیرساختهای نظارت یا داراییهای تولیدی، آموزش داده میشوند تا هزاران محصول یا فرآیند را در زمان واقعی تجزیه و تحلیل کنند و متوجه نقص یا مشکل شوند. این تکنولوژی به دلیل سرعت، عینیت، تداوم، دقت و مقیاسپذیری میتواند به سرعت از تواناییهای انسان در بینایی پیشی بگیرد. آخرین مدلهای یادگیری عمیق در کارهای تشخیص تصویر در دنیای واقعی مانند تشخیص چهره، تشخیص اشیا و طبقهبندی تصویر به دقت و عملکرد بالاتر از سطح انسانی دست مییابند. برنامههای کاربردی بینایی کامپیوتر در طیف گستردهای از صنایع، از تصویربرداری امنیتی و پزشکی گرفته تا تولید، خودروسازی، کشاورزی، ساخت و ساز، شهر هوشمند، حمل و نقل و بسیاری دیگر از زمینهها استفاده میشود. همانطور که فناوری هوش مصنوعی پیشرفت میکند و انعطاف پذیرتر و مقیاس پذیرتر میشود، موارد استفاده به میزان قابل توجهی امکانپذیر و از نظر اقتصادی مقرون به صرفه میشود.
بر اساس تجزیه و تحلیل بازار بینایی هوش مصنوعی توسط Verified Market Research (نوامبر 2022)، ارزش هوش مصنوعی در بازار بینایی کامپیوتر در سال 2021 به 12 میلیارد دلار رسید و پیشبینی میشود تا سال 2030 به 205 میلیارد دلار برسد. بر این اساس، بازار بینایی رایانه به سرعت در حال رشد است.
کامپیوتر ویژن چگونه کار میکند؟
به طور کلی، بینایی کامپیوتر در سه مرحله اساسی کار میکند:
- مرحله شماره 1: دریافت تصویر/فیلم از دوربین،
- مرحله شماره 2: پردازش تصویر،
- مرحله شماره 3: درک تصویر
یادگیری ماشین در بینایی کامپیوتری برای آموزش یک الگوریتم یادگیری عمیق که بتواند تصاویر را به دقت تشخیص دهد، به مقدار زیادی داده نیاز دارد. به عنوان مثال، برای آموزش یک کامپیوتر برای تشخیص کلاه ایمنی، باید مقادیر زیادی از تصاویر کلاه ایمنی با افرادی که در صحنههای مختلف کلاه ایمنی به سر دارند، به آن داده میشود تا ویژگیهای کلاه ایمنی را یاد بگیرد. در مرحله بعد، الگوریتم آموزش دیده را میتوان برای تصاویری که به تازگی تولید شده است، به عنوان مثال، فیلمهای دوربینهای نظارتی، برای تشخیص کلاه ایمنی اعمال کرد. به عنوان مثال، این مورد در برنامههای بینایی کامپیوتری برای بازرسی تجهیزات برای کاهش حوادث در ساخت و ساز یا تولید استفاده میشود.
برای آموزش یک الگوریتم برای بینایی کامپیوتری، فناوریهای پیشرفته از یادگیری عمیق، زیرمجموعهای از یادگیری ماشینی استفاده میشود. بسیاری از روشهای با کارایی بالا در نرمافزارهای بینایی کامپیوتری مدرن مبتنی بر شبکه عصبی کانولوشنال (CNN) هستند. چنین شبکههای عصبی لایهای برای قادر ساختن رایانه به یادگیری زمینه(Context) دادههای بصری از تصاویر استفاده میشوند. اگر دادههای کافی در دسترس باشد، کامپیوتر یاد میگیرد که چگونه یک تصویر را از تصویر دیگر تشخیص دهد. همانطور که دادههای تصویر از طریق مدل تغذیه میشوند، کامپیوتر از CNN برای “نگاه” به دادهها استفاده میکند. CNN به یک مدل یادگیری ماشینی/یادگیری عمیق کمک میکند تا تصاویر را با شکستن آنها به پیکسلهایی که برچسبهایی برای آموزش ویژگیهای خاص، به اصطلاح حاشیهنویسی تصویر، داده شدهاند، درک کند. مدل هوش مصنوعی از برچسبها برای انجام پیچیدگیها و پیشبینیهایی در مورد آنچه که «میبیند» استفاده میکند و صحت پیشبینیها را به طور مکرر بررسی میکند تا زمانی که پیشبینیها به انتظارات نزدیک شوند و به آنها برسند.
در بینایی کامپیوتر، شبکههای عصبی اساساً تصمیمگیری انسان را شبیهسازی میکنند و یادگیری عمیق ماشین را آموزش میدهد تا کاری را که مغز انسان به طور طبیعی انجام میدهد انجام دهد. ساختار لایهای مشخصه شبکههای عصبی عمیق، پایه و اساس شبکههای عصبی مصنوعی (ANN) است. هر لایه به دانش لایه قبلی میافزاید.
وظایف یادگیری عمیق از نظر محاسباتی سنگین و پرهزینه هستند، بسته به منابع محاسباتی قابل توجه، و برای آموزش مدلها به مجموعه داده هایعظیمی نیاز دارند. در مقایسه با پردازش تصویر سنتی، الگوریتمهای یادگیری عمیق، ماشینها را قادر میسازند تا خودشان یاد بگیرند، بدون اینکه توسعهدهنده آن را برنامهریزی کند تا تصویری را بر اساس ویژگیهای از پیش تعیینشده تشخیص دهد. در نتیجه، روشهای یادگیری عمیق به دقت بسیار بالایی دست مییابند. امروزه، یادگیری عمیق ماشینها را قادر میسازد تا به عملکردی در سطح انسانی در وظایف تشخیص تصویر دست یابند. به عنوان مثال، در تشخیص چهره عمیق، مدلهای هوش مصنوعی به دقت تشخیصی بالایی(به عنوان مثال، Google FaceNet با دقت 99.63٪) دست مییابند که بالاتر از دقتی است که انسان میتواند به آن دست یابد که در حدود 97.53٪ است. بینایی محاسباتی(Computational vision) با یادگیری عمیق همچنین به عملکرد انسان در طبقهبندی سرطان پوست با سطح شایستگی قابل مقایسه با متخصصان پوست دست یافته است.
سیستم بینایی کامپیوتری چیست؟
سیستمهای بینایی کامپیوتری مدرن پردازش تصویر را با تکنیکهای یادگیری ماشینی و یادگیری عمیق ترکیب میکنند. از این رو، توسعه دهندگان نرم افزارهای مختلف (OpenCV یا OpenVINO و غیره) و الگوریتمهای هوش مصنوعی را برای ایجاد یک فرآیند چند مرحلهای، یک خط لوله بینایی کامپیوتر با هم ترکیب میکنند. سازماندهی و راه اندازی یک سیستم بینایی کامپیوتری بر اساس کاربرد و مورد استفاده متفاوت است. با این حال، تمام سیستمهای بینایی کامپیوتری دارای عملکردهای معمولی یکسانی هستند:
- ثبت تصویر Image acquisition: تصویر دیجیتال یک دوربین یا حسگر تصویر دادههای تصویر یا فیلم را ارائه میدهد. از نظر فنی، از هر دوربین یا سنسور دو بعدی یا سه بعدی میتوان برای ارائه فریمهای تصویر استفاده کرد.
- پیش پردازش: ورودی تصویر خام دوربینها برای بهینهسازی عملکرد وظایف بعدی بینایی کامپیوتری باید از قبل پردازش شود. پیش پردازش شامل کاهش نویز، افزایش کنتراست، مقیاسبندی مجدد یا برش تصویر است.
- الگوریتم بینایی کامپیوتری: الگوریتم پردازش تصویر، که رایجترین مدل یادگیری عمیق (مدل DL) است، تشخیص تصویر، تشخیص شی، تقسیمبندی تصویر و طبقهبندی را بر روی هر تصویر یا فریم ویدیو انجام میدهد.
- منطق اتوماسیون: اطلاعات خروجی الگوریتم هوش مصنوعی باید با قوانین شرطی بر اساس موارد استفاده پردازش شود. این بخش بر اساس اطلاعات به دست آمده از کار بینایی کامپیوتر، اتوماسیون را انجام میدهد. به عنوان مثال، برای برنامههای بازرسی خودکار، مطابقت یا عدم تطابق در سیستمهای شناسایی، علامتگذاری برای بازبینی انسانی در برنامههای بیمه، نظارت و امنیت، نظامی یا پزشکی.
بهترین مدلهای یادگیری عمیق بینایی کامپیوتر امروزی
در بینایی کامپیوتر، به طور خاص، تشخیص اشیا در زمان واقعی، خانواده الگوریتمهای تک مرحلهای و چند مرحلهای وجود دارد.
- الگوریتمهای تک مرحلهای: هدف الگوریتمهای تک مرحلهای پردازش بلادرنگ و بالاترین بازده محاسباتی است. از جمله محبوبترین الگوریتمهای این حوزه می توان به SSD، RetinaNet، YOLOv3، YOLOv4، YOLOR، YOLOv5 یا YOLOv7 اشاره کرد.
- الگوریتمهای چند مرحلهای: الگوریتمهای چند مرحلهای چندین مرحله را انجام میدهند و به بالاترین دقت دست مییابند، اما نسبتاً سنگین و نیازمند منابع زیادی هستند. الگوریتمهای چند مرحلهای پرکاربرد شامل شبکههای عصبی کانولوشن مکرر (R-CNN) مانند Mask-RCNN، Fast RCNN و Faster RCNN هستند.
تاریخچه فناوری بینایی کامپیوتر
در سالهای اخیر، فناوریهای یادگیری عمیق جدید به پیشرفتهای بزرگی به ویژه در تشخیص تصویر و تشخیص اشیا دست یافتهاند.
- 1960 – سرآغاز: بینایی کامپیوتری در دهه 1960 زمانی که دانشمندان کامپیوتر سعی کردند بینایی انسان را با استفاده از مکانیک محاسباتی تقلید کنند، آشکار شد. اگرچه تحقیقات بینایی کامپیوتری چندین دهه صرف آموزش دیدن ماشینها شده است، اما پیشرفتهترین ماشین در آن زمان فقط میتوانست اجسام معمولی را درک کند و برای تشخیص چندین جسم طبیعی با تغییرات شکل بینهایت تلاش میکرد.
- 2014 – عصر یادگیری عمیق: محققان با آموزش کامپیوترها با 15 میلیون تصویر از بزرگترین مجموعه داده طبقهبندی تصویر معروف به ImageNet با استفاده از فناوری یادگیری عمیق، به پیشرفتهای بزرگی دست یافتند. در چالشها و معیارهای بینایی رایانه، یادگیری عمیق برتری چشمگیری را نسبت به الگوریتمهای بینایی رایانهای سنتی نشان داد که اشیا را به عنوان مجموعهای از ویژگیهای شکل و رنگ در نظر میگیرد.
- 2016 – یادگیری عمیق تقریباً بلادرنگ: یادگیری عمیق، کلاس خاصی از الگوریتمهای یادگیری ماشین، فرآیند استخراج و توصیف ویژگی را از طریق یک شبکه عصبی کانولوشنال چند لایه (CNN) ساده میکند. شبکههای عصبی عمیق با استفاده از دادههای عظیم ImageNet، واحدهای پردازش مرکزی مدرن (CPU) و واحدهای پردازش گرافیکی (GPU)، توسعه بیسابقهای از بینایی رایانه را به ارمغان میآورند و به عملکردی پیشرفته دست مییابند. به خصوص، توسعه آشکارسازهای شی تک مرحلهای باعث شد تا بینایی هوش مصنوعی یادگیری عمیق بسیار سریعتر و کارآمدتر شود.
- 2020 – استقرار یادگیری عمیق و هوش مصنوعی Edge: امروزه CNN به چارچوب محاسباتی استاندارد در بینایی کامپیوتر تبدیل شده است. تعدادی از شبکههای عمیقتر و پیچیدهتر توسعه داده شد تا CNNها دقت نزدیک به انسان را در بسیاری از برنامههای بینایی رایانه ارائه دهند. مدلهای بهینهشده و سبکوزن هوش مصنوعی، انجام دید رایانهای را روی سختافزارهای ارزان قیمت و دستگاههای تلفن همراه ممکن میسازد. سختافزار Edge AI، مانند شتابدهندههای سختافزار یادگیری عمیق، استنتاج Edge بسیار کارآمد را امکانپذیر میکند.
روندهای فعلی در بینایی کامپیوتر و تکنولوژی روز
آخرین روندها، محاسبات لبه را با یادگیری ماشین روی دستگاه ترکیب میکنند، روشی که Edge AI نیز نامیده میشود. انتقال پردازش هوش مصنوعی از کلاد به دستگاههای لبه امکان اجرای یادگیری ماشین بینایی کامپیوتری را در همه جا ممکن کرده و ساخت برنامههای کاربردی مقیاسپذیر را تسهیل میکند. ما شاهد روندی در کاهش هزینههای بینایی رایانهای هستیم که ناشی از راندمان محاسباتی بالاتر، کاهش هزینههای سختافزاری و فناوریهای جدید (فشردهسازی مدل، کمکد/بدون کد، اتوماسیون) است. در نتیجه، برنامههای کاربردی بینایی کامپیوتری بیشتر و بیشتر ممکن و از نظر اقتصادی امکانپذیر شدهاند.
مهمترین ترندهای کامپیوتر ویژن در حال حاضر عبارتند از:
- تجزیه و تحلیل ویدیو بلادرنگ(Real-time) : سیستمهای بینایی ماشین سنتی معمولاً به دوربینهای خاص و تنظیمات بسیار استاندارد بستگی دارند. در مقابل، الگوریتمهای یادگیری عمیق مدرن بسیار قویتر بوده دارای قابلیت استفاده مجدد و آموزش مجدد آسانتر هستند و امکان توسعه برنامههای کاربردی در سراسر صنایع را فراهم میکنند. روشهای مدرن بینایی کامپیوتری یادگیری عمیق میتوانند جریانهای ویدیویی دوربینهای نظارتی معمولی و ارزان قیمت یا وبکمها را برای انجام تجزیه و تحلیل ویدیویی هوش مصنوعی پیشرفته تجزیه و تحلیل کنند.
- بهینهسازی و استقرار مدل هوش مصنوعی: پس از یک دهه آموزش یادگیری عمیق، با هدف بهبود دقت و عملکرد الگوریتمها، اکنون وارد عصر استقرار یادگیری عمیق میشویم. بهینهسازی مدل هوش مصنوعی و معماریهای جدید این امکان را فراهم میکند که اندازه مدلهای یادگیری ماشین را به شدت کاهش دهد و در عین حال کارایی محاسباتی را افزایش دهد. این امر امکان اجرای بینایی کامپیوتری با یادگیری عمیق را بدون وابستگی به سختافزار و پردازندههای گرافیکی هوش مصنوعی گرانقیمت در مراکز داده ممکن میسازد.
- شتاب دهندههای هوش مصنوعی سخت افزاری: در سالهای اخیر با رونق تراشههای یادگیری عمیق با کارایی بالا مواجه هستیم که به طور فزایندهای از نظر انرژی کارآمد هستند و روی دستگاههای کوچک و رایانههای لبهای اجرا میشوند. سختافزار رایج هوش مصنوعی یادگیری عمیق فعلی شامل دستگاههای محاسباتی لبهای مانند رایانههای جاسازی شده و دستگاههای SoC، از جمله Nvidia Jetson Tx2، Intel NUC یا Google Coral است. شتاب دهندههای هوش مصنوعی برای شبکههای عصبی را میتوان به سیستمهای محاسباتی تعبیه شده متصل کرد. محبوبترین شتابدهندههای هوش مصنوعی شبکه عصبی سخت افزاری عبارتند از Intel Myriad X VPU، Google Coral یا Nvidia NVDLA.
- بینایی کامپیوتر Edge: هوش مصنوعی Edge که Edge Intelligence یا ML روی دستگاه نیز نامیده میشود، از محاسبات لبه و اینترنت اشیا (IoT) برای انتقال یادگیری ماشین از کلاود به دستگاههای لبه در نزدیکی منبع داده مانند دوربینها استفاده میکند. با حجم عظیم و هنوز هم به طور تصاعدی در حال رشد حجم دادههای تولید شده در لبه، هوش مصنوعی نیاز به تجزیه و تحلیل و درک دادهها به صورت بلادرنگ و بدون به خطر انداختن حریم خصوصی و امنیت دادههای بصری دارد.
- برنامههای کاربردی بینایی کامپیوتری در دنیای واقعی: بینایی کامپیوتر در لبه از مزایای ابر و لبه استفاده میکند تا فناوری بینایی کامپیوتر مبتنی بر هوش مصنوعی را مقیاسپذیر و انعطافپذیر کند. این مفهوم از اجرای برنامههای کاربردی در دنیای واقعی پشتیبانی میکند. بینایی کامپیوتر روی دستگاه به بارگذاری دادهها و پردازش متمرکز تصویر ناکارآمد در فضای ابری بستگی ندارد. همچنین، Edge CV به طور کامل به اتصال بستگی ندارد و به پهنای باند بسیار کمتر و تاخیر کمتری نیاز دارد، به ویژه در تجزیه و تحلیل ویدئو. بنابراین، Edge CV امکان توسعه برنامههای کاربردی خصوصی، قوی، امن و حیاتی در دنیای واقعی را فراهم میکند. از آنجایی که هوش مصنوعی Edge شامل اینترنت اشیا (AIoT) برای مدیریت دستگاههای توزیع شده است، عملکرد برتر Edge CV به قیمت افزایش پیچیدگی فنی تمام میشود.
کاربردهای بینایی کامپیوتر
شرکتها به سرعت در حال معرفی فناوری بینایی کامپیوتری در سراسر صنایع هستند تا مشکلات اتوماسیون را با رایانههایی که میتوانند ببینند حل کنند. فناوری هوش مصنوعی بصری به سرعت در حال پیشرفت است و امکان نوآوری و اجرای ایدهها، پروژهها و برنامههای جدید از جمله موارد زیر را دارا هستند:
- ساخت: بینایی کامپیوتر صنعتی در صنایع تولیدی در خط تولید برای بازرسی خودکار محصول، شمارش اشیا، اتوماسیون فرآیند و افزایش ایمنی نیروی کار با تشخیص PPE و تشخیص ماسک استفاده میشود.
- مراقبتهای بهداشتی: در میان کاربردهای بینایی کامپیوتر در مراقبتهای بهداشتی، یک مثال برجسته، تشخیص خودکار سقوط انسان برای ایجاد امتیاز خطر سقوط و ایجاد هشدار است.
- امنیت: در نظارت تصویری و امنیتی، تشخیص شخص برای نظارت هوشمند محیطی انجام میشود. یکی دیگر از موارد استفاده محبوب، تشخیص چهره عمیق و تشخیص چهره با دقت بالاتر از سطح انسانی است.
- کشاورزی: موارد استفاده از دید محاسباتی در کشاورزی شامل نظارت خودکار حیوانات برای تشخیص رفتار حیوانات و تشخیص زودهنگام بیماریها و ناهنجاریها است.
- شهرهای هوشمند: به عنوان یک استراتژی کلیدی در شهرهای هوشمند برای تجزیه و تحلیل جمعیت، تشخیص سلاح، تجزیه و تحلیل ترافیک، شمارش وسایل نقلیه، خودروهای خودران و بازرسی زیرساخت استفاده میشود.
- خردهفروشی: به عنوان مثال، ویدئوی دوربینهای نظارتی در خردهفروشیها میتواند برای ردیابی الگوهای حرکتی مشتریان و انجام شمارش افراد یا تجزیه و تحلیل قدمها برای شناسایی تنگناها، توجه مشتری و زمان انتظار استفاده شود.
- بیمه: بینایی کامپیوتری در بیمه از چشم انداز هوش مصنوعی برای مدیریت و ارزیابی خودکار ریسک، مدیریت خسارت، بازرسی بصری و تحلیلهای آینده نگر استفاده میکند.
- لجستیک(حمل و نقل): چشم انداز هوش مصنوعی در لجستیک از یادگیری عمیق برای پیادهسازی اتوماسیون با هوش مصنوعی و صرفهجویی در هزینهها با کاهش خطاهای انسانی، تعمیر و نگهداری پیشبینی شده و تسریع عملیات در سراسر زنجیره تامین استفاده میکند.
- داروسازی: بینایی کامپیوتری در صنایع داروسازی برای بستهبندی، تشخیص کپسول و بازرسی بصری برای تمیز کردن تجهیزات استفاده میشود.
- واقعیت افزوده: بینایی کامپیوتری برای واقعیت افزوده و مجازی با ادغام درک دنیای واقعی یا محیط مجازی، تجربیات همهجانبهای ایجاد میکند، بنابراین به کاربران اجازه میدهد تا با محیط مجازی در زمان واقعی تعامل داشته باشند.