زمان تخمینی مطالعه: 10 دقیقه

OpenCV که در ابتدا توسط اینتل توسعه یافت، یک کتابخانه بینایی کامپیوتری بین پلتفرمی رایگان برای پردازش تصویر در زمان واقعی است. نرم افزار OpenCV که مخفف Open Source Computer Vision است تبدیل به یک ابزار استاندارد واقعی برای همه موارد مربوط به بینایی ماشین شده است. امروزه این نرم افزار همچنان محبوبیت بالایی دارد و هر هفته بیش از 29000 بار دانلود می‌شود. کتابخانه اوپن سی وی به زبان C و ++C نوشته شده است. این نرم افزار قابلیت اجرا در محبوب‌ترین سیستم عامل‌ها مانند گنو/لینوکس، OS X، ویندوز، اندروید، iOS و غیره را دارد. این نرم افزار تحت مجوز Apache 2 به صورت رایگان در دسترس است. همچنین دارای توسعه فعال در اینترفیس‌های پایتون، روبی، متلب و سایر زبان‌ها دارا است که به راحتی از طریق دستوراتی مانند «pip install opencv» برای کاربران پایتون و «git opencv» برای کنترل نسخه قابل دسترسی است. کتابخانه OpenCV شامل بیش از 2500 الگوریتم، مستندات گسترده، کد منبع و کد نمونه برای بینایی کامپیوتری در زمان واقعی(Real-time) است. توسعه دهندگانی که از پکیج پایتون استفاده می‌کنند، همراه با سایر کتابخانه‌های پایتون، می‌توانند با استفاده از دستوراتی مانند “python opencv” به طور یکپارچه OpenCV را با پروژه‌های خود ادغام کنند.

از زمان انتشار اولیه در سال 2000 تحت مجوز BSD و بعداً تحت مجوز Apache 2، این کتابخانه منبع باز در برنامه‌های کاربردی، محصولات و پروژه‌های تحقیقاتی متعددی مورد استفاده قرار گرفته است. این برنامه‌ها شامل اتصال(stitching) تصاویر دوربین در نقشه‌های ماهواره‌ای یا وب، تراز اسکن تصویر، کاهش نویز تصاویر پزشکی، تجزیه و تحلیل اشیا، سیستم‌های امنیتی، نظارت و تشخیص نفوذ، نظارت خودکار و سیستم‌های ایمنی، ساخت بازرسی هوش مصنوعی، کالیبراسیون دوربین، صنایع دفاعی و نظامی، برنامه‌های کاربردی و وسایل نقلیه هوایی بدون سرنشین است.

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

تشخیص چهره با OpenCV.

کاربرد OpenCV

OpenCV برای به حداکثر رساندن کارایی و عملکرد وظایف بینایی ساخته شده است. بنابراین، تمرکز زیادی بر کاربردهای بلادرنگ بینایی هوش مصنوعی دارد. هدف OpenCV ارائه یک زیرساخت بینایی کامپیوتری با استفاده آسان است که به افراد کمک می‌کند تا با ارائه بیش از 500 عملکرد به سرعت برنامه‌های پیچیده بینایی بسازند. کتابخانه اوپن سی وی اغلب در بازرسی محصولات کارخانه، تصویربرداری پزشکی، تجزیه و تحلیل امنیتی، رابط انسان و ماشین، کالیبراسیون دوربین، دید استریو (دید سه بعدی) و دید رباتیک استفاده می‌شود. مجهز بودن به قابلیت‌های جامع پردازش تصویراین کتابخانه را قادر می‌کند تا بتواند پردازش جریان ویدئو، دوخت تصویر (ترکیب چندین دوربین)، کالیبراسیون دوربین و کارهای مختلف پیش‌پردازش تصویر را انجام دهند. از آنجایی که یادگیری ماشین در بینایی کامپیوتر ضروری است، OpenCV شامل یک کتابخانه ML کامل و همه منظوره است که بر تشخیص الگوی آماری و خوشه‌بندی متمرکز است. برای افزایش کارایی، OpenCV از NVIDIA CUDA و شتاب GPU از سال 2011 پشتیبانی کرده است و عملکردی را برای مدیریت بسته‌های نصب شده، بسته‌های سایت و باینری‌های OpenCV، همراه با کنترل صریح بر حرکت داده‌ها بین حافظه CPU و GPU از طریق ماژول OpenCV GPU ارائه می‌دهد.

کاربردهای OpenCV.

چه کسانی از OpenCV استفاده می‌کنند؟

OpenCV توسط شرکت‌های بزرگ و موسسات دولتی، به عنوان مثال، گوگل، تویوتا، آی بی ام، مایکروسافت، SONY، زیمنس و فیس بوک استفاده می‌شود. همچنین، استارت‌آپ‌های معروف بینایی کامپیوتر از OpenCV برای ساخت محصولات قدرتمند بینایی کامپیوتری و راه‌حل‌های هوش مصنوعی از استفاده می‌کنند. کتابخانه OpenCV توسط بسیاری از مراکز تحقیقاتی مانند Stanford، MIT، INRIA، Cambridge و CMU استفاده می‌شود. موارد استفاده از بینایی کامپیوتر بسیار زیاد است. در حالی که بیشتر افراد از موارد استفاده نسبتاً محبوب در امنیت و نظارت تصویری یا اتومبیل‌های خودران آگاه هستند، افراد محدودی می‌توانند موارد استفاده را در صنایع خاصی مانند تولید صنعتی، رستوران‌ها یا تجزیه و تحلیل خرده فروشی ببینند. پیشرفت‌های سریع در بینایی کامپیوتر در سال‌های گذشته این امکان را برای شرکت‌ها در سراسر صنایع ایجاد کرده است تا برنامه‌های کاربردی بینایی رایانه‌ای را توسعه دهند که مشکلات بسیار خاص را حل می‌کند (مانند:تشخیص مشکلات محصول، شمارش اشیا، تجزیه و تحلیل رفتار و غیره).

قابلیت‌های بینایی در OpenCV

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

  1. تشخیص اشیاء در زمان واقعی: فناوری تشخیص اشیا برای اعمال تشخیص تصویر و مکان‌یابی اشیاء خاص در داده‌ها یا تصاویر ویدئویی مانند اتومبیل، انسان، حیوانات، قطعات خاص یا تجهیزات در تولید صنعتی استفاده می‌شود.
  1. تقسیم‌بندی تصویر Image Segmentation: تقسیم‌بندی تصویر از الگوریتم‌های پردازش تصویر برای تقسیم یک تصویر به بخش‌های مختلف استفاده می‌کند. تقسیم‌بندی معمولاً برای ساده کردن، تغییر یا بهبود تصویر اعمال می‌شود که اغلب با کارهای بعدی بینایی رایانه ترکیب می‌شود. یک مثال از این کاربرد رانندگی خودکاراست که در آن از تقسیم‌بندی تصویر برای تعیین جاده استفاده می‌شود.
  2. تشخیص حرکت و ژست: حالات فیزیکی انسان و تشخیص ژست برای تفسیر و درک ژست‌های انسان از طریق تجزیه و تحلیل ویدئویی استفاده می‌شود. حرکات بدن، دست یا صورت را می‌توان تشخیص داد و دسته‌بندی کرد. تجزیه و تحلیل حرکت اغلب بخشی از تخمین وضعیت برای تجزیه و تحلیل حرکات بدن با نقاط کلیدی مرجع (مفاصل، اندام‌ها) است. محاسبه ژست شی، روشی را برای درک نحوه قرارگیری شی در یک فضای سه بعدی فراهم می‌کند، به عنوان مثال، نحوه چرخش اشیاء.
تحلیل حرکت با استفاده از تخمین حالات بدن با استفاده از نقاط کلیدی.
  1. تشخیص چهره: تشخیص خودکار چهره برای شناسایی انسان از طریق تشخیص چهره انسان و تطبیق آن با پایگاه داده بر اساس ویژگی‌های چهره شناسایی شده استفاده می‌شود. تشخیص صورت OpenCV مجموعه‌ای از الگوریتم‌های تشخیص چهره محبوب را برای استفاده در برنامه‌های واقعی ارائه می‌دهد.
  2. واقعیت افزوده: واقعیت افزوده (AR) امکان تعامل در زمان واقعی بین دنیای واقعی و دنیای مجازی را فراهم می‌کند. بنابراین، واقعیت افزوده قصد دارد دنیای فیزیکی اطراف ما را با اطلاعات ادراکی تولید شده توسط رایانه تقویت کند.

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

OpenCV همچنین تکنیک‌های پیچیده‌تری را ارائه می‌دهد که فراتر از قابلیت‌های اساسی است.

– تشخیص و توصیف ویژگی‌های کلیدی

– تکنیک‌های تشخیص اشیا

OpenCV مدل‌های از پیش آموزش دیده‌ای را برای تشخیص اشیا ارائه می‌دهد. این مدل‌های از پیش ساخته شده، اجرای مدل را ساده می‌کنند، که به کاربران اجازه می‌دهد بدون نیاز به پیکربندی دستی گسترده شروع به کار کنند که عبارتند از:

– تقسیم‌بندی تصویر و تحلیل حرکت

– مورفولوژی و بهبود تصویر

– کالیبراسیون دوربین و دید محیطی

– تفریق پس زمینه و دوخت تصویر

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

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