Upload
faradars
View
190
Download
12
Embed Size (px)
Citation preview
باتصویر پردازش
faradars.org/fvimg9405
الهام شعبانی نیا:مدرسدانشجوی دکترای هوش مصنوعی
دانشگاه اصفهان
:جلسه اول
فرادرسOpenCVآشنایی با
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
OpenCVچیست؟
•OpenCV(بازمتنماشینبینایی)وتصویرحلیلتبرایشدهسازیبهینهالگوریتمصدهاازبیششاملبازمتنکتابخانهیک
.استویدیو
ابزارعنوانبهماشینبیناییدهندگانتوسعهومحقیقجامعهسویاززیادیمیزانبه،1999سالدرآنمعرفیزماناز•
.استشدهپذیرفتهپایهتوسعه
•OpenCVشددادهتوسعهبردسکیگریسرپرستیبهتیمیکوسیلهبهاینتلدرابتدادر.
کنند،میفادهاستپردازندهازشدیداًکهبیناییکاربردهایتوسعهارتقاءوبیناییزمینهدرتحقیقتوسعهمنظوربهکاراین•
.شدانجام
اتفاقOpenCV2کاربهشروعبا2009دربعدیمهمنسخه.شدمعرفی2006سالدر1.0نسخهبتا،نسخهسرییکازبعد•
.داشتهمراهبه++Cواسطدرخصوصبهرازیادیتغییراتکه.افتاد
.(2015ژانویه)استبتا3.0نسخهآخرینآموزشی،مجموعهاینتهیهزماندراکنون•2
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
چیست؟بینایی ماشین
.استتصاویردرکوتحلیلقدرتبهرایانهوماشینسازیتوانمندماشین،بیناییازهدف•
.شودمیفراهماوچشمانتوسطانساندرالعادهفوقتواناییاین•
.شودمیفراهمدیجیتالهایدوربینطریقازبصریاطالعاترباتیاوماشیندر•
.استاعدادازماتریسیبیند،میماشینآنچه•
وفردوجودونهمچ.نمایددرکمیتواندانسانکهاستباالییسطحمفاهیمبهاعدادماتریساینتبدیلماشینبیناییوظیفه•
.غیرهوصحنهدرونهایانسانواشیاارتباطاتتشخیصصحنه،درخاصشیئییا
.استرتصاویتحلیلبرایباالسطحهایمدلساختسپسوتصاویردرپایینسطحهایویژگیباکارمستلزمکاراین•
.استماشینبیناییدرعمومیمشکالتازگیرد،قرارپردازشموردبایستیمعموالکهاطالعاتزیادحجم•
3
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
OpenCV یاMatlab
4
OpenCV متلب
استفادهسهولت
سرعت اجرا
هزینه
درخصوصبهآناجرایسرعتدرOpenCVاصلیمزیت•
آنبودنرایگانوبودنبازمتنالبتهودرنگبیکاربردهای
.است
هایمالگوریتبرخیکردنامتحاندنبالبهتنهاکهصورتیدر•
کوچکدادههایپایگاهرویبرخصوصبهماشینبینایی
.باشدبهتریگزینهمتلبشایدهستید،
ایندهدهتوسعهیاوماشینبیناییمتخصصیکعنوانبهاما•
باآشناییدارد،راکاربردیهایبرنامهتوسعهقصدکه
OpenCVاستالزامی.
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
اهداف دوره آموزشی
نیازموردعناصرارائهعوض،دراما.نیستOpenCVهایکالسوتوابعدرشدهارائههایگزینهوجزئیاتتمامپوششماهدف•
.استپایهازخودهایبرنامهساختبرای
دنبالراماشینبیناییدرمهمهایالگوریتمازبرخیتوصیفوتصاویرتحلیلدراساسیمفاهیممامجموعهایندرهمچنین•
.کنیممی
.شویدآشناویدیووتصویرتحلیلدنیایباتادادخواهدفرصتشمابهمجموعهاین•
مراجعهOpenCVآنالینمستنداتبهدهد،انجامشمابرایتواندمیکتابخانهکهآنچهمورددرجدیدخبرهایازاطالعبرای•
:کنید
http://opencv.org/documentation.html
5
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
مراجع درس
6
ابتصویرپردازشوماشینبیناییکاربردیهایبرنامه"کتاب-1
OpenCV2"-یانکدانشگاهیانتشارات-سخندانونیاشعبانی:مترجمان
93-رایان
-نصیریمحمدیونیاشعبانی:مترجمان"OpenCVآموزش"کتاب-2
90–رایانکیاندانشگاهیانتشارات
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
پیش نیاز درس
++Cبامقدماتیآشنایی1.
رتصویپردازشاولیهمفاهیمباآشنایی2.
سگونزالتصویرپردازشکتاب
7
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
دیدخواهید دوره آنچه در این
باراایسادههایبرنامهچگونهکهدهدمینشانشمابهوکردهمعرفیراOpenCVکتابخانه،تصاویربابازی.1جلسه•
.کنیدایجاد++Cویژوالماکروسافتتوسعههایمحیطازاستفاده
.دهدیمارائههاپیکسلتمامرویعملیکانجامبرایراتصویرپویشمختلفهایروشجلسهاین،تصاویرباکار.2جلسه•
.کنیدتعریفتصویریکدرراعالقهموردناحیهچگونهکهگرفتخواهیدیادهمچنین
-مینشانماشبهجلسهاین.آموزدمیراتصویرکردنفیاتروفرکانستحلیلاصولشمابه،تصاویرفیلترکردن.3جلسه•
ارائهتصویرقمشتعملگردوجلسهایندر.شونداعمالتصاویررویبرتوانندمیگذرباالوگذرپایینفیلترهایچگونهکهدهد
.الپالسینوگرادیان:شودمی
8
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
دیدخواهید دوره آنچه در این
ازتوانمیچگونهوکردهمحاسبهراتصویرهایهیستوگرامچگونهکهدهدمینشانشمابه،هاهیستوگرامباهاپیکسلشمارش.4جلسه•
انجامراتصویریبازیابوتشخیصبندی،ناحیهکهاندشدهارائههاهیستوگرامبراساسمختلفیکاربردهای.کرداستفادهتصاویرویرایشبرایهاآن
.دهندمی
لسهجایندر.دهدمیقراربررسیموردراریاضیشناسیریختمفهوم،شناسیریختعملگرهایباتصویرتبدیالت.5جلسه•
.شودمیاستفادهتصویرنواحیوهاگوشهها،لبهتشخیصبرایهاآنازکهشوندمیارائهمختلفیعملگرهای
ه چگونه دهد ککند و توضیح میهای هندسی تصویر تمرکز می، بر روی تشخیص ویژگیاستخراج خطوط، کانتورها و اجزا. 6جلسه •
.کانتورها، خطوط و اجزاء متصل تصویر را استخراج کنید
9
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
دیدخواهید دوره آنچه در این
کهدهدمیحتوضیهمچنین.کندمیتوصیفرامتفاوتیویژگینقاطگرهایتشخیص،عالقهموردنقاطانطباقوتشخیص.7جلسه•.دادقراراستفادهموردتصویردوبیننقاطانطباقبرایومحاسبهتوانمیراویژگینقاطگرهایتوصیفچگونه
.کندمیفراهمراآنهایقابپردازشوویدیویدنبالهیکنوشتنوخواندنبرایچارچوبی،ویدیوییهایدنبالهپردازش.8جلسه•برابردرکمتحرزمینهپیشاشیاءوکردهردیابیبعدقاببهقابیازراویژگینقاطتوانمیچگونهکهدهدمینشانشمابههمچنین
.کرداستخراجرادوربین
10
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
برای چه کسانی مناسب است؟دوره این
هایبرنامهساختبرایراOpenCVکتابخانهازاستفادهچگونگیداردقصدکههستید++Cکارتازهنویسبرنامهاگریک•
.استمناسبشمابرایمجموعهاینبیاموزد،ماشینبیناییکاربردی
مفیدنیز،شوندآشناماشینبینایینویسیبرنامهمفاهیمبادارندقصدکهایحرفهافزارنرمدهندگانتوسعهبرایهمچنین•
.بودخواهد
.کرداستفادهنیزدانشگاهسطحدرماشینبیناییهایدرسدرتوانمیمجموعهایناز•
البته.وردآمیفراهمماشینبنیاییوتصویرپردازشمحققانوتکمیلیتحصیالتدانشجویانبرایخوبیمرجعمجموعهاین•
.استنیازمورد++Cازپایهدانشیک
11
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
OpenCVنصب کتابخانه
12
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
OpenCVنصب کتابخانه
آنالینمستنداتکتابخانه،نسخهآخرینتوانیدمیhttp://opencv.orgآدرسبهOpenCVرسمیسایتوببهمراجعهبا•.کنیدپیداراOpenCVبهراجعدیگرمفیدمنابعبسیاریو
-میآنجااز.بروید(ویندوزیاLinux/Unix/Mac)خودنظرموردپلتفرمبهمربوطدانلودصفحهبهOpenCVسایتوباز•
.کنیددانلودراOpenCVبستهتوانید
راخودویندوزIDEنصباجراییبستهکهداریدهمراانتخاباینکنید،میکاراستودیوویژوالباوویندوزتحتشمااگر•برایکهشدهکامپایلقبلاز(binaries)هایدودوییهمهبلکهمنبع،کتابخانهتنهانهنصب،برنامهایناجرای.کنیددانلود
.کنیداستفادهOpenCVازتاایدآمادهشماحالت،ایندر.کندمینصبهمراداریدنیازخودهایبرنامهساخت
13
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
OpenCVنصب کتابخانه
.کنیدپیداراهاپوشهازایمجموعهتوانیدمینصبپوشهایندر•:قبیلازهاییپوشه•
،OpenCVمستنداتشاملdocپوشه–،includeهایفایلهمهشاملincludeپوشه–(استبازمتنکتابخانهایناست،درستبله)منبعهایفایلهمهشاملmodulesپوشه–.کنیدآغازراخودکارتاکنندمیکمکشمابهکهزیادیهایمثالشاملsamplesپوشهو–
14
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
OpenCVبخش های مختلف کتابخانه
:استشدهتقسیمبخشچندبهOpenCVکتابخانه،2.2نسخهزماناز•پایهمحاسباتیابعتووساختارهادادهخصوصبهکتابخانههستهتوابعشاملopencv_coreماژول•اصلیتصویرپردازشتوابعشاملopencv_imgprocماژول•کاربرواسطتوابعباتصویرهمراهوویدیونوشتنوخواندنبرایتوابعیشاملopencv_highguiماژول•.اینقطهویژگیانطباقچارچوبواینقطهویژگیگرهایتوصیفودهندهاتشخیصشاملopencv_features2dماژول•.استریوتوابعونماییدوهندسهتخمیندوربین،کالیبراسیونشاملopencv_calib3dماژول•زمینهپیشاستخراجهایکالسوتوابعوویژگیردیابیحرکت،تخمینشاملopencv_videoماژول•انسانوصورتهایدهندهتشخیصقبیلازشیئدهندهتشخیصتوابعشاملopencv_objdetectماژول•هندسیمحاسباتیهایالگوریتم،(opencv_ml)ماشینیادگیریتوابعشاملدیگریکمکیهایماژولهمچنین•
(opencv_flann)دارندوجودکتابخانهدرغیرهو.
15
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
OpenCVبخش های مختلف کتابخانه
OpenCVکدهایمعموالبنابراین.(داردقرارincludeپوشهدرکه)دارندخودباهمراهسرآیندفایلیکهاماژولاینهمه•
C++باincludeمثالبرای.شودمیآغازنیازموردهایماژولکردن:
•#include <opencv2/core/core.hpp>
•#include <opencv2/imgproc/imgproc.hpp>
•#include <opencv2/highgui/highgui.hpp>
•
:بودشدهآغاززیرصورتبهکهشدیدروبروOpenCVازکدیبااحتماالاگر•
•#include "cv.h"
.کندمیاستفادههاماژولشکلبهآنساماندهیازپیشOpenCVقدیمیسبکازکهاستدلیلاینبه•
16
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
با ماکروسافتOpenCVایجاد یک پروژه ++Cویژوال
17
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
؟++Cچرا ماکروسافت ویژوال
پلتفرمجاایندرما.داریدنیازمناسب(IDE)توسعهمحیطیکبهOpenCVکتابخانهکمکبهخودهایبرنامهتوسعهبرای•پروژهیکدتوانیمیچگونهکهدادخواهیمنشانشمابهادامهدر.کنیممیپیشنهادرااستودیوویژوالیعنیماکروسافتمشهور
.کنیدایجادابزاراینبارا
ارائهایگونهبهچیزهمهمجموعهایندرحقیقتدر.کنیداستفادههم++cبهمربوطهایIDEدیگرازتوانیدمیالبته•حالایناب.هستیدآزادانتخابدرکامالشمابنابراین.باشدخاصیعاملسیستمیاوخاصمحیطهرازمستقلکهشدخواهد
استفادهشماست،عاملسیستموکامپایلرمناسبکهOpenCVکتابخانهشدهکامپایلنسخهازبایدکهباشیدداشتهخاطربه.کنید
توانیدمی.کنیدایجادویندوزبرایراOpenCVکاربردیهایبرنامهبراحتیتوانیدمی++Cویژوالماکروسافتازاستفادهبا•.کنیدایجادزیباگرافیکیواسطیکباهمراهراتریپیچیدهبسیارهایبرنامهیاوکنسولیسادهبرنامهیک
18
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
؟++Cچرا ماکروسافت ویژوال
نسخهدیگرحالاینباکرد،خواهیماستفاده2013استودیوویژوالازما.کردخواهیمایجادکنسولیسادهبرنامهیکاینجادر•مشترکیاصولازدارند،مختلفهاینسخهدرهاگزینهومنوهادرکهزیادیهاییشباهتدلیلبهنیزماکروسافتهای
.کنندمیپیرویتوسعهمحیط++Cکهکنیدتنظیمایگونهبهراآنتوانیدمیکنید،میاجراباراولینبرایرااستودیوویژوالکهزمانی•
.بودخواهد++Cویژوالحالتدرکنید،میبازراIDEکهبارهرروشاینبه.بشودشمافرضپیش
19
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
++Cبه ماکروسافت ویژوال OpenCVضافه کردن کتابخانها
ویژوالبرایبایدکنیم،اجراوکامپایلراخودOpenCVآیندهبرنامهبتوانیماینکهبرایاولاما•C++هایکتابخانهمحلOpenCVهایفایلوincludeهایروشاینکاربرای.کنیممشخصرا
.دیدخواهیمهمباراسادهراهیکاینجادرکه.داردوجودمختلفی:شاملکارمراحل•
systemبهکتابخانهافزودن-1 PATHهایفایلکردنکپییاوdllویندوزپوشهدرIncludeمسیرتنظیم-2 DirectoriesدرpropertiesپروژهLibraryمسیرتنظیم-3 DirectoriesدرpropertiesپروژهAdditionalمسیرتنظیم-4 Dependenciesدرpropertiesپروژه
20
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
++Cبه ماکروسافت ویژوال OpenCVضافه کردن کتابخانها
:شاملکارمراحل•
systemبهکتابخانهافزودن-1 PATHکردنکپییاوویندوزپوشهدرdllهایفایل
Open Control Panel → System → Advanced system
settings → Advanced Tab → Environment
variables...
Add the directory …\opencv\build\x86\vc12\bin to your system path
21
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
++Cبه ماکروسافت ویژوال OpenCVضافه کردن کتابخانها
:شاملکارمراحل•
Create a new project and set up Visual C++
File → New → Project... → Visual C++ → Empty Project
click Ok. Visual C++ will create an empty project.
22
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
++Cبه ماکروسافت ویژوال OpenCVضافه کردن کتابخانها
:شاملکارمراحل•
Includeمسیرتنظیم-2 Directoriesدرpropertiesپروژه
Click project and select Properties → configuration Properties → VC++
Directories.
Select Include Directories to add a new entry and type…\opencv\build\include
23
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
++Cبه ماکروسافت ویژوال OpenCVضافه کردن کتابخانها
:شاملکارمراحل•
Libraryمسیرتنظیم-3 Directoriesدرpropertiesپروژه
Back to the Property dialog, select Library Directories to add a new entry
and type
…\opencv\build\x86\vc12\lib
Click Ok to close the dialog.
24
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
++Cبه ماکروسافت ویژوال OpenCVضافه کردن کتابخانها
:شاملکارمراحل•Additionalمسیرتنظیم-4 Dependenciesدرpropertiesپروژه
Back to the property dialog, select Linker → Input → Additional Dependencies to add new entries. On the popup dialog, type the files below:
opencv_ts300d.lib
opencv_world300d.lib
Note that the filenames end with "d" (for "debug"). Also note that if you have installed another version of OpenCV (say 2.4.9) these filenames will end with 249d instead of 300d
25
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
++Cبه ماکروسافت ویژوال OpenCVضافه کردن کتابخانها
آغازرانویسیکدوکردهایجادراخودبرنامهsourceهایفایلاستکافیتنظیماتانازپس•.نمایید
Right click your project and select Add → New Item... → Visual C++ → C++ File.
Name your file and click ok.
26
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
27
فرادرس این اسالید ها بر مبنای نکات مطرح شده در « آموزش پردازش تصویر با »
.تهیه شده است
.نماییدلینک زیر مراجعه برای کسب اطالعات بیشتر در مورد این آموزش به
faradars.org/fvimg9405
باتصویر پردازش
faradars.org/fvimg9405
فرادرس
FaraDars.org