دوره آموزشی: دوره پردازش تصویر با OpenCV و Python
Image Processing with OpenCV and Python
حوزه های تحت پوشش: Computer Science
برگزار کننده: دانشگاه صنعتی سجاد, مرکز آموزش های آزاد
اطلاعات دوره پردازش تصویر با OpenCV و Python
اوپنسیوی (OpenCV) یا همان Open Computer Vision Library مجموعه ای از کتابخانههای برنامهنویسی پردازش تصویر و یادگیری ماشین است. این مجموعه بیشتر بر پردازش تصویر بی درنگ (Real Time) تمرکز دارد. در ابتدا توسط اینتل ساخته و پشتیبانی میشد و هم اکنون توسط Willow Garage و Itseez پشتیبانی میگردد. استفاده از آن با پروانه فری بیاسدی آزاد است.
اوپن سی وی کتابخانهای چندسکویی است و توسط سیستم عامل های ویندوز، لینوکس، مک اواس، آی او اِس و اندروید پشتیبانی میشود. همچنین دارای رابط برنامهنویسی به زبانهای سی، سی++، پایتون، جاوا و متلب میباشد. یکی از اهداف OpenCV فراهم کردن یک زیربنای بینایی کامپیوتر با کاربرد ساده است؛ به طوری که افراد بتوانند برنامههای بینایی نسبتاً پیچیده خود را به سرعت بسازند. کتابخانه OpenCV شامل بیش از ۵۰۰ تابع پیرامون موضوعات مختلف بینایی، از بررسی محصول کارخانه گرفته تا تصویربرداری پزشکی، امنیت، واسط کاربر، تنظیم دوربین، رباتیک و بینایی دوچشمی (استریو) است.
از آنجا که همواره قرابت زیادی بین بینایی کامپیوتر و یادگیری ماشین وجود داشته است، OpenCV شامل یک کتابخانه یادگیری ماشین همهمنظوره (۳MLL) نیز هست. این زیر کتابخانه، روی مباحث تشخیص الگوی آماری و دستهبندی تمرکز دارد.
هدف دوره:
آشنایی با زبان پایتون، آشنایی با OpenCV و توابع مختلف آن، انجام پروژه و مثالهای مختلف و کاربردی مانند کار با وبکم، تشخیص انسان، تشخیص اجزای چهره، ردیابی (Tracking) یک شی رنگی، پردازش ویدئوها و . . .
عناوین فصلها و موضوعات:
آشنایی با محیط نرم افزار پایتون، کد نویسی در پایتون، نصب و بررسی ماژولهای مختلف، آشنایی با OpenCV و مقدمات پردازش تصویر، ایجاد اشکال هندسی مختلف و متن روی تصاویر، کار با ویدئو و پردازش آن، کار با وبکم و پردازش real time، آشنایی و کار با کلاسیفایر HaarCascade ،یادگیری مفاهیم پیشرفته در پردازش تصویر، کدنویسی مثال ها و پروژههای پیشرفتهتر
جزئیات سرفصل ها:
1- آشنایی با محیط نرم افزار پایتون:
تاریخچه زبان پایتون، نصب نرم افزار پایتون، آشنایی با بخشهای مختلف نرم افزار، تغییر رنگ کدها در محیط کدنویسی، استفاده از ماژول math، بررسی متدهای موجود در ماژول math، آموزش نصب ماژولهای جدید، بررسی چند مثال ساده
2- کد نویسی در پایتون:
آشنایی با حلقههای تکرار، دستورات شرطی و . . .، کدنویسی مثالهای مختلف
3- نصب و بررسی ماژولهای مختلف:
کار با ماژولهای numpy، matplotlib، PIL و . . . ، کدنویسی مثالهای مختلف و استفاده از این ماژولها
4- آشنایی با OpenCV و مقدمات پردازش تصویر:
آشنایی با نصب OpenCV روی پایتون، فراخوانی و نمایش یک تصویر، ذخیره یک تصویر، تغییر فضای رنگی، چرخش یک تصویر و تلفیق دو تصویر، انتخاب بخشی از تصویر و …
5- ایجاد اشکال هندسی مختلف و متن روی تصاویر:
ایجاد خط، مستطیل، مربع، دایره، بیضی روی تصویر با رنگ دلخواه، نوشتن متن روی یک تصویر و انتخاب فونت و سایز برای متن نوشته شده
6- آزمون از جلسات قبل + کار با ویدئو و پردازش آن:
انجام یک پروژه در کلاس در قالب امتحان برای مرور مباحث جلسه قبلی، شروع کار با ویدئوها و پردازش آنها، ذخیره یک فایل ویدئویی
7- کار با وبکم و پردازش real time:
دریافت تصویر از وبکم، پردازش تصاویر به صورت real time از طریق وبکم، اعمال فیلترهای مختلف بر روی تصاویر، کدنویسی چند مثال
8- آشنایی و کار با کلاسیفایر HaarCascade:
بررسی HaarCascade، تشخیص انسان در یک تصویر و ویدئو، تشخیص اعضای چهره انسان مثل چشم، گوش، بینی، دهان، کدنویسی پروژه جالب تغییر چهره
9- یادگیری مفاهیم پیشرفته در پردازش تصویر:
تغییرات Morphologic، آشنایی با لبهیابی، آشنایی با گرادیان تصویر، آشنایی با الگوریتم HOG، تشخیص انسان در یک تصویر با استفاده از HOG
10- کدنویسی مثالها و پروژههای پیشرفتهتر:
کدنویسی ردیابی (Tracking) مکان یک جسم رنگی در ویدئو، کدنویسی تطبیق الگو و یافتن مکان یک شی خاص در تصویر، تشخیص شکل دایره در یک تصویر با استفاده از HoughCircles، شمارش تعداد یک شی در تصویر، تشخیص مکان شکل های دایره، مثلث و مستطیل در یک تصویر و . . .
***
مدرس: محمد حسن علیائی، کارشناسی ارشد برق کنترل، دانشگاه صنعتی سجاد