آموزش اوپن سی وی (OpenCV)

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

آموزش OpenCV

آنچه در این صفحه میخوانید:

OpenCV چیست؟

OpenCV کتابخانه بینایی رایانه ای اوپن سورس و کتابخانه نرم افزاری یادگیری ماشینی است. OpenCV برای ارائه یک زیرساخت مشترک برای برنامه های کاربردی Computer Vision و سرعت بخشیدن به استفاده از ادراک ماشین در محصولات تجاری ساخته شده است. به عنوان یک محصول با مجوز BSD، کسب و کار را برای استفاده و اصلاح کد آسان می کند. OpenCV برای پردازش تصویر و Computer Vision است که در ابتدا توسط Intel ساخته شد و اکنون توسط Willow Garage پشتیبانی می شود که برای استفاده تجاری و غیر تجاری رایگان است. OpenCV یک کتابخانه از توابع inbuilt است که عمدتا برای پردازش تصویر در real-time است. در حال حاضر دارای صدها پردازش تصویر و الگوریتم های Computer Vision است که باعث می شود برنامه های کاربردی پیشرفته رایانه ای را آسان و کارآمد کنند.

تاریخچه OpenCV

به طور رسمی در سال 1999 راه اندازی شد، پروژه OpenCV در ابتدا ابتکار تحقیقات Intel برای پیشبرد برنامه های فشرده پردازنده، بخشی از یک سری پروژه ها از جمله ردیابی اشعه در real-time و دیواره نمایشگر سه بعدی بود. مشارکت کنندگان اصلی این پروژه شامل تعدادی از کارشناسان بهینه سازی در اینتل روسیه و همچنین تیم کتابخانه عملکرد اینتل بودند. در ابتدا، اهداف این پروژه به شرح زیر بود:

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

اولین نسخه آلفا از OpenCV در سال 2000 در کنفرانس IEEE در مورد بینایی رایانه‌ای و تشخیص الگو در دسترس عموم قرار گرفت. اولین نسخه 1.0 در سال 2006 منتشر شد. نسخه 1.1 اکتبر 2008 منتشر شد. دومین نسخه بزرگ OpenCV در اکتبر 2009 بود. OpenCV 2 شامل تغییرات اساسی در رابط ++C است که هدف آن ساده تر بودن، الگوهای ایمن تر، عملکردهای جدید و اجرای بهتر برای موجود از نظر عملکرد است. انتشار رسمی اکنون هر شش ماه رخ می دهد و اکنون توسعه توسط تیم مستقل روسی با حمایت شرکت های تجاری انجام می شود. در آگوست 2012، پشتیبانی از OpenCV توسط بنیاد غیرانتفاعی OpenCV.org که سایت توسعه دهنده و کاربر را حفظ می کند، به دست آمد. در ماه مه سال 2016، اینتل توافق نامه ای برای به دست آوردن Itseez، توسعه دهنده برجسته OpenCV امضا کرد.

ویژگی های OpenCV

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

کاربرد OpenCV

OpenCV برای تأسیس زیرساخت های مشترک برای برنامه های بینایی کامپیوتر و تسریع در استفاده از ادراک دستگاه در محصولات تجاری ساخته شده است. این کتابخانه دارای بیش از 2500 الگوریتم بهینه سازی شده است، که شامل مجموعه ای کامل از الگوریتم های رایانه ای کلاسیک و پیشرفته و یادگیری ماشین است. از این الگوریتم ها می توان برای تشخیص و شناسایی چهره ها، شناسایی اشیاء، طبقه بندی اقدامات انسانی در فیلم ها، ردیابی حرکات دوربین، ردیابی اجسام در حال حرکت، استخراج مدل های سه بعدی اشیاء، تولید ابرهای سه بعدی از دوربین های استریو، تصاویر را در کنار هم برای تولید وضوح بالا استفاده کرد. تصویر صحنه کامل، یافتن تصاویر مشابه از پایگاه داده تصویر، حذف چشم قرمز از تصاویر گرفته شده با استفاده از فلاش، دنبال کردن حرکات چشم، تشخیص مناظر و ایجاد نشانگر برای پوشش آن با واقعیت افزوده و غیره. OpenCV بیش از 47 هزار نفر، جامعه کاربر دارد و تعداد تخمینی دانلود ها بیش از 18 میلیون نفر است. این کتابخانه به طور گسترده در شرکت ها، گروه های تحقیقاتی و نهادهای دولتی استفاده می شود.

در کنار شرکت های مستقر مانند گوگل، یاهو، مایکروسافت، اینتل، IBM، سونی، هوندا، تویوتا که این کتابخانه را به کار می گیرند، بسیاری از استارتاپ ها مانند Appled Minds ،VideoSurf و Zeitera وجود دارند که از OpenCV استفاده گسترده می کنند. استقرار OpenCV طیف وسیعی از بخیه دادن تصاویر Streetview به هم، نظارت بر تجهیزات معدن در چین، کمک به روبات ها برای پیمایش و برداشتن اشیاء در گاراژ Willow، کشف استخرهای غرق در حوادث در اروپا، اجرای هنرهای تعاملی در اسپانیا و نیویورک، در حال بررسی باند فرودگاه برای زباله در ترکیه، برچسب های موجود در کارخانه ها در سراسر جهان برای شناسایی سریع صورت در ژاپن هستند.

زبان برنامه نویسی OpenCV

OpenCV به زبان C نوشته شده است و رابط اصلی آن در C است، اما هنوز هم یک رابط C قدیمی اما جامع است. ارتباطات در پایتون، جاوا و MATLAB / OCTAVE وجود دارد. API برای این واسط ها را می توان در مستندات آنلاین یافت. همچنین به زبان های دیگر مانند سی شارپ ،پرل ،هاسکل و روبی برای تشویق مخاطبان گسترده تر ساخته شده اند.

هم اکنون همه پیشرفت ها و الگوریتم های جدید OpenCV در رابط C توسعه یافته اند. دارای رابط های C++ ،Python ،Java و متلب است و از Windows ،Linux ،Android و Mac OS پشتیبانی می کند. OpenCV بیشتر متمایل به برنامه های بینایی در real-time است و در صورت وجود از دستورالعمل های MMX و SSE استفاده می کند. رابط های کاملاً برجسته CUDA و OpenCL هم اکنون فعالانه در حال توسعه هستند. بیش از 500 الگوریتم و حدود 10 برابر بیشتر عملکرد وجود دارد که آن الگوریتم ها را تشکیل یا پشتیبانی می کند. OpenCV بصورت محلی با زبان ++C نوشته شده است و دارای رابط کارآمد است که یکپارچه با ظروف STL کار می کند.

OpenCV با پایتون

OpenCV-Python کتابخانه ای از اتصالات پایتون است که برای حل مشکلات بینایی رایانه طراحی شده است. پایتون زبان برنامه نویسی همه منظوره است که توسط Guido van Rossum آغاز شده است و خیلی سریع، به دلیل سادگی و خوانایی کد، بسیار محبوب شد. این قابلیت برنامه نویس را قادر می سازد ایده های خود را در خط کد کمتر بدون کاهش خوانایی بیان کند. در مقایسه با زبان هایی مانند C++ / C، پایتون کندتر است. گفته می شود، پایتون را می توان به راحتی با ++C / C، که به ما امکان نوشتن کد فشرده محاسبه شده در ++C / C و ایجاد بسته های پایتون را می دهد که می تواند به عنوان ماژول های پایتون ایجاد شود، فراهم کرد. این دو مزیت به ما می دهد: اول، کد به همان سرعت کد اصلی ++C / C است و دوم، کدگذاری در Python از C++ / C آسان تر است. OpenCV-Python بسته بندی Python برای اجرای اصلی ++OpenCV C است.

OpenCV-Python از Numpy استفاده می کند، که کتابخانه بسیار بهینه برای عملیات عددی با نحوی به سبک MATLAB است. تمام ساختارهای آرایه OpenCV به آرایه های Numpy تبدیل می شوند. این امر همچنین باعث می شود ادغام با كتابخانه های دیگر كه از Numpy مانند SciPy و Matplotlib استفاده می كنند، آسانتر شود. OpenCV مجموعه جدیدی از آموزش را ارائه می دهد که شما را از طریق عملکردهای مختلف موجود در OpenCV-Python راهنمایی می کند. این راهنما عمدتاً بر روی نسخه OpenCV 3.x متمرکز شده است.

دانش قبلی درباره Python و Numpy توصیه می شود. مهارت با Numpy به منظور نوشتن کد بهینه شده با استفاده از OpenCV-Python ضروری است. این آموزش ابتدا توسط Abid Rahman K. به عنوان بخشی از برنامه Google Summer of Code 2013 تحت هدایت الكساندر موردوینتسف آغاز شد.

مثال های OpenCV

مثال برای خواندن، نمایش و ذخیره تصویر در Open CV

مراحل:

  • بارگیری تصویر با استفاده از ()Imread.
  • نمایش تصویر با استفاده از ()namesWindow و ()imshow.
  • با استفاده از imwrite، تصویر را ذخیره کنید.
  • منتظر فشار دادن دکمه صفحه کلید با استفاده از ()waitKey باشید.
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;

int main( ) {

Mat image;

// LOAD image image = imread("image1.jpg", CV_LOAD_IMAGE_COLOR); // Read the file "image.jpg". //This file "image.jpg" should be in the project folder. //Else provide full address : "D:/images/image.jpg"

if(! image.data ) // Check for invalid input { cout << "Could not open or find the image" << std::endl ; return -1; }

//DISPLAY image namedWindow( "window", CV_WINDOW_AUTOSIZE ); // Create a window for display. imshow( "window", image ); // Show our image inside it.

//SAVE image imwrite("result.jpg",image);// it will store the image in name "result.jpg"

waitKey(0); // Wait for a keystroke in the window return 0; }

آیا این نوشته را دوست داشتید؟
linkedin-introduction-to-deep-learning-with-opencv

مقدمه ای بر یادگیری عمیق با OpenCV


در این دوره، مدرس Jonathan Fernandes، با استفاده از ماژول dnn) OpenCV Deep Neural Networks)، شما را از طریق استنباط با دنیای یادگیری عمیق آشنا می کند....

1399/05/07 1725 بازدید
packtpub-opencv-computer-vision-examples-with-python-a-complete-guide-for-dummies

آموزش OpenCV - مثال های بینایی کامپیوتری با پایتون - راهنمای کامل


آموزش بینایی کامپیوتری با پایتون و OpenCV - این یک دوره کامل است که در آن می توانید فناوری مبتنی بر کامپیوتر ویژوال، تشخیص چهره مبتنی بر یادگیری عمیق،...

1398/08/13 5604 بازدید
packtpub-opencv-4-computer-vision-with-python-recipes

بینایی کامپیوتری OpenCV 4 با دستورالعمل های پایتون


در این دوره با مبانی OpenCV 4 و پیشرفت های این نسخه آن آشنا می شوید. همچنین به شما می آموزیم، تا تصاویر را مدیریت کنید و آنها را بهبود بخشید و تغییر د...

1398/07/14 8380 بازدید
packtpub-hands-on-machine-learning-with-opencv-4

آموزش یادگیری ماشینی با OpenCV 4


در این دوره با بینایی کامپیوتر، استفاده از تکنیک های یادگیری ماشینی و یادگیری عمیق آشنا می شوید. استفاده از یادگیری ماشینی و یادگیری عمیق به سرعت در ب...

1398/05/29 2707 بازدید
packtpub-hands-on-opencv-4-with-python-video

آموزش OpenCV 4 با پایتون (Python)


این دوره نه تنها به شما در استفاده از برنامه OpenCV 4 کمک می کند، بلکه کمک میکند تا مهارت های بینایی ماشین و هوش مصنوعی خود را به پروژه های خود اعمال ...

1397/12/27 7022 بازدید
packtpub-machine-learning-for-opencv-supervised-learning-video

آموزش یادگیری ماشینی با OpenCV


بینایی رایانه ای یکی از زمینه های اپلیکیشن یادگیری ماشینی است که از اتومبیل های بدون سرنشین گرفته تا تشخیص پزشکی و به طور گسترده ای در زمینه های مختلف...

1397/05/25 2546 بازدید
packtpub-object-detection-and-recognition-using-deep-learning-in-opencv-video

آموزش تشخیص و شناسایی آبجکت با یادگیری عمیق در OpenCV


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

1397/02/24 4204 بازدید
packtpub-an-introduction-into-machine-learning-c-libraries-video

آشنایی با کتابخانه های سی پلاس پلاس در یادگیری ماشینی


توانایی در اجرای یادگیری ماشینی در++ C، شرایط مطلوبی جهت استخدام برای شما فراهم خواهد کرد. این به این معنا نیست که دانستن زبان های دیگر مفید نیست، اما...

1397/02/19 3317 بازدید
packtpub-building-advanced-opencv3-projects-with-python-video

آموزش حرفه ای ساخت پروژه های OpenCV3 با پایتون 


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

1397/01/14 3190 بازدید
pluralsight-getting-started-with-opencv-in-net-2

کار با OpenCV در دات نت


این دوره آموزشی شما را با کتابخانه متن باز OpenCV و نحوه کار با آن در دات نت آشنا می کند. این دوره محصول موسسه آموزشی Pluralsight است. لیست سرفصل ...

1394/12/27 3331 بازدید
pluralsight-getting-started-with-opencv-in-net

آموزش کار با OpenCV در دات نت


در این آموزش تصویری با نحوه کار با OpenCV در دات نت آشنا می شوید. این دوره آموزشی محصول موسسه Pluralsight است. سرفصل های دوره: کار با OpenCV با ...

1394/12/27 3115 بازدید