آموزش پردازش تصویر با اپن سی وی OpenCV

کتابخانه OpenCV (بینایی ماشین متن باز) یک کتابخانه متن باز شامل بیش از صدها الگوریتم بهینه سازی شده به زبان C و C++‎ برای تحلیل تصویر و ویدیو است، که از زمان معرفی آن در سال 1999، به میزان زیادی از سوی جامعه محققین و توسعه دهندگان بینایی ماشین به عنوان ابزار توسعه پایه پذیرفته شده است. OpenCV در ابتدا در اینتل به منظور توسعه تحقیقات در زمینه بینایی ماشین و ارتقای کاربردهایی که شدیدا از پردازنده استفاده می کنند، توسعه داده شد.توضیحات تکمیلیلایبری OpenCV (بینایی ماشین متن باز) یک کتابخانه متن باز شامل بیش از صدها الگوریتم بهینه سازی شده به زبان C و C++‎ برای تحلیل تصویر و ویدیو است، که از زمان معرفی آن در سال 1999، به میزان زیادی از سوی جامعه محققین و توسعه دهندگان بینایی ماشین به عنوان ابزار توسعه پایه پذیرفته شده است. OpenCV در ابتدا در اینتل به منظور توسعه تحقیقات در زمینه بینایی ماشین و ارتقای کاربردهایی که شدیدا از پردازنده استفاده می کنند، توسعه داده شد. مزیت اصلی OpenCV، در سرعت اجرای آن به خصوص در کاربردهای بی درنگ و البته متن باز بودن و رایگان بودن آن است. این مجموعه آموزشی، تلاشی است برای آشنایی هر چه بیشتر جامعه محققین بینایی ماشین با این کتابخانه ارزشمند، که به صورت گام به گام و عملی همراه با مجموعه متنوعی از مثال ها، شما را برای توسعه برنامه های کاربردی خود آماده خواهد ساخت.این دوره به شما فرصت خواهد داد تا با پردازش تصویر و ویدیو آشنا شوید. اما این تنها ابتدای راه است. خبر خوش اینکه OpenCV به پیشرفت و توسعه ادامه خواهد داد. برای اطلاع از خبرهای جدید در مورد این کتابخانه، به مستندات آنلاین OpenCV مراجعه کنید. https://class.vision/product/opencv/ فهرست سرفصل‌ها و رئوس مطالب دوره OpenCV مطرح شده در اين مجموعه آموزشی، در ادامه آمده است:ماژول 1: شروع کار با OpenCV در پایتونمقدمه ای بر بینایی کامپیوتربینایی کامپیوتر و تفاوت آن با پردازش تصویر و بینایی ماشینتاریخچه‌ی بینایی کامپیوترکاربردهای بینایی کامپیوترمباحث و سرفصلهای دورهمقدمه ای بر تصاویرخواندن، ذخیره کردن و نمایش ویدیوتصاویر خاکستری (Gray Scale)بریدن یک ناحیه از تصویرمقدمه ای بر فضاهای رنگیفضاهای رنگی – بخش 1 (جداکردن و ادغام کانالهای رنگی)فضاهای رنگی – بخش 2 (تغییر مقادیر هر کانال)فضاهای رنگی – بخش 3 (فضای رنگی HSV)عملیات پایه روی تصاویر و درک تصاویر Transparentدرک کانال آلفا و ترنسپرنتسی (Transparent)عملیات بیتی، ماسک کردن تصویر و ایجاد یک تصویر PNGحاشیه نویسی تصویر (Image Annotation)رسم اشکال روی تصویرنوشتن متون فارسی و انگلیسی روی تصویرعملیات ریاضی (Arithmetic Operations)تنظیم روشنایی و تضاد تصویرتنظیم روشنایی و کنتراست(با توابع خطی)تحلیل هیستوگرام تصویر و مشکل روش خطی تنظیم روشنایی و کنتراستتنظیم روشنایی و کنتراست(با تصحیح گاما)ماژول 2: خواندن و نوشتن ویدئو و ایجاد رابط کاربری گرافیکیرابط کاربری گرافیکی و کالبک در OpenCVرویداد کلیک ماوسسایر رویدادهای ماوس و رویدادهای صفحه کلیدایجاد یک برنامه‌ی ساده رسم نظیر قلم در paintایجاد یک برنامه برای annotate کردن اشیاء تصویراستفاده از Trackbar برای دریافت یک مقدار پیوسته از کاربرخواندن و ذخیره کردن ویدیو و کار با انواع ورودی های ویدیویی نظیر دوربین مداربسته و وبکماستفاده از وبکمخواندن فایل ویدیوییذخیره کردن یک ویدیو در فایلکار با پروتکل RTSP و دوربینهای مداربسته (CCTV)اسکرین صفحه به عنوان ویدیوی ورودی OpenCVخواندن ویدیو از یوتیوب و کار با گوگل‌کولبماژول 3: پردازش تصاویر باینریآستانه گذاریکاربردهاحد آستانه گذاری یا Thresholding و باینری کردن تصویرروش Otsu برای پیدا کردن خودکار حد آستانه – تئوریپیاده سازی روش Otsu در پایتونآستانه‌گذاری تطبیقیعملیات مورفولوژیمفاهیم dilation و erosionگسترش یا انبساط (Dilation)فرسایش (Erosion)عملیات Openingعملیات Closingپیاده سازی عملیات مورفولوژی در پایتونhit-or-missمثال حذف خطوط افقی با علیات مورفولوژیتحلیل مولفه‌های متصلمفاهیم تحلیل مولفه‌های متصلپیاده سازی تحلیل مولفه‌های متصلتحلیل کانتور (Contour)یافتن contourتخمین contourپوشش محدب (Convex hull)به دست آوردن دایره و مستطیل دربرگیرنده‌ی کانتورهامحاسبه مساحت، moment و مرکز کانتور و سورت کردن اشکالالگوریتم Douglas-Peucker و تشخیص اشکال هندسیمثال تشخیص نواحی کلماتمثال شمارش سکهتشخیص Blob و جمع بندی تصاویر باینریتشخیص blobسایر کاربردهای مورفولوژیماژول 4: بهبود تصویر و فیلترگذاری روی تصاویرفضاهای رنگی و مقدمات خوشه بندیفیلترگذاری روی تصویر با رنگدستور inrange در opencv برای فیلتر کردن رنگمثال فیلتر کردن رنگ آبی در ویدیوبررسی سایر فضاهای رنگیمثال تکنیک حذف پرده سبزمثال حذف پرده سبز با روشی دیگر و بررسی روی ویدیومثال pop-effectخوشه بندی یا clusteringپیدا کردن رنگ‌های غالب با خوشه‌بندیبهبود نمایش رنگهای غالبتبدیلات رنگ و هیستوگرامهیستوگرام تصویرپیدا کردن رنگ‌های غالب با هیستوگرامیکنواخت‌سازی هیستوگرام و بهبود کنتراست تصویرالگوریتم CLAHE: روش پیشرفته یکنواخت‌سازی هیستوگراممقایسه هیستوگرام‌ها و نرمال‌کردن هیستوگرامفیلترگذاری روی تصویر و کانولوشنتصویر به عنوان یک تابعحذف نویز تصویر با میانگین‌ متحرک (moving average)تفاوت کانولوشن و کرولیشن و مات کردن تصویرفیلتر غیر خطی میانه (median)پیاده سازی حذف نویز و مات کردن تصویر در پایتونفیلتر sharpeningپیاده سازی فیلتر sharpening در پایتونگرادیان تصویر و لبه‌یابی (edge detection)لبه در تصویر چیست؟!مفهوم گرادیان تصویریک فیلتر لبه‌یابی (edge detection)پیاده‌سازی لبه یابی در پایتونفیلتر Sobelفیلتر لاپلاس یا filter Laplacianالگوریتم لبه‌یابی Cannyپیاده سازی لبه‌یابی Cannyتشخیص میزان مات بودن تصویر (فوکوس خودکار)ماژول 5: پردازش تصویر پیشرفته و عکاسی محاسباتیتبدیلات هاف (Hough Transforms)کاربردهای تبدیل Houghتئوری تشخیص خط با استفاده از تبدیل هافپیاده سازی تشخیص خط با استفاده از تبدیل هافمثال تشخیص عقربه های یک ساعت با تبدیل هافتئوری تشخیص دایره با استفاده از تبدیل هافپیاده‌سازی تشخیص دایره با استفاده از تبدیل هافتصویربرداری دامنه دینامیکی بالامفاهیم و پیاده سازی دامنه داینایکی بالا (HDR)روش ویرایش تصویر پواسون یا seamless cloningروش seamless cloningترمیم تصویر (image inpainting)پیاده سازی image inpainting و مثال‌های ترمیم تصویر قدیمی، حذف واترمارک روی تصویر و حذف جوشرفع مشکل نور زیاد در یک ناحیهماژول 6: تبدیل های هندسی و ویژگی های تصویرتبدیل های هندسیتبدیلات هندسی خطی (چرخش، تغییر سایز و کج‌کردن)تبدیلات افاین (Affine Transformation)جابه‌جایی و چرخواندن تصاویر با تبدیلات هندسیچرخواندن تصویر با مرکزیتی متفاوتتغییر اندازه تصاویرتبدیل projectiveمحاسبه ماتریس تبدیل Affine با داشتن 3 نقطههموگرافی و محاسبه ماتریس تبدیل Perspective با 4 نقطهویژگی های تصویرپبدا کردن گوشه‌ها به روش Harrisپیدا کردن گوشه‌ها با روش Shi-Tomasiنقاط کلیدی مورد علاقه (interest point) و الگوریتم SIFTادامه الگوریتم SIFT و مفهوم Scale-Spaceپیاده سازی الگوریتم SIFTالگوریتم ORBتطبیق ویژگی‌هامثال تشخیص اسکناس با داشتن اسکناس نمونهایجاد تصاویر پاناروماماژول 7: بخش‌بندی و بازشناسی تصویربخش‌بندی تصویر با استفاده از GrabCutبخش‌بندی تصویر با استفاده از GrabCutمقدمه‌ای بر هوش‌مصنوعیمقدمه‌ای بر یادگیری ماشینیادگیری نظارت‌شده – طبقه‌بندیطبقه‌بندی تصاویرمثال طبقه‌بندی ارقام دست‌نویس فارسیمثالهای طبقه‌بندی ارقام دستنویس انگلیسی و حروف انگلیسیطبقه‌بند SVMالگوریتم HOGپیاده‌سازی HOG در پایتونتشخیص اشیاءتشخیص عابر پیاده با HOGروش تشخیص اشیاء voila jones به همراه مثال تشخیص چهره و چشم‌هاماژول 8: تحلیل ویدئوالگوریتم جریان نوری (Optical flow)Sparse Optical FlowDense Optical Flowتفریق پس زمینه و شناسایی اشیا متحرکتفریق پس زمینه و شناسایی اشیا متحرکرديابي اشياء(Object Tracking)ردیابی با الگوریتمهای Meanshift و Camshiftردیابی اشیاء در OpenCVردیابی چند شئ‌ای (Multi-object tracking)طبقه‌بندی تصویر (Image Classification)طبقه‌بندی تصویر (Image Classification)یادگیری‌عمیق و تفاوت آن با یادگیری ماشین و هوش مصنوعیمعرفی چالش Image-net و Caffe model zooلود کردن مدل قبلاً آموزش داده شده از Caffeلود کردن مدل قبلاً آموزش داده شده از TensorFlowشناسایی اشیاء (Object Detection)لود کرن مدل تشخیص اشیاء از فریم‌ورک TensorFlowشناسایی و بازشناسی چهره (Face detection and recognition)شناسایی چهره با YuNetبازشناسی چهره عمیقتخمین حالت بدن (Human Pose Estimation)مدل OpenPoseبخش‌بندی تصویر (Image Segmentation)مدل Mask R-CNN برای تشخیص اشیاء و بخش‌بندی تصویربخش پایانیمینی‌پروژه Cam-Scannerمینی‌پروژه اسکن اسناد و تراز کردن خودکار آنسخن پایانیسخن پایانی