کاربردهای بینایی ماشین کجان؟
خب کاربردهای زیادی براشون وجود داره که در این قسمت با هم مرورشون میکنیم :)
- ویرایش تصاویر: بله، همون فتوشاپی که ما ازش برای ویرایش تصاویر استفاده میکنیم بر مبنای همین مفاهیم نوشته شده. با توجه به این که فتوشاپ از اواخر دهه ۸۰ میلادی وجود داشته، میتونید بفهمید که بینایی ماشین همچین هم جدید نیست :)
- طبقهبندی تصاویر: اگر کمی هوش مصنوعی، یادگیری ماشین و یادگیری عمیق چاشنی کارمون کنیم، میتونیم طبقهبندی تصاویر رو هم انجام بدیم.
- خودروهای خودران: خودروهای خودران برای تشخیص چراغ قرمز، موانع، ترافیک، خودروهای نزدیک، علائم راهنمایی رانندگی در کنار سنسورهای فراصوت و LiDar از پردازش تصویر استفاده میکنند. احتمال زیاد عمومیت موضوع این کانال هم بر مبنای همین بزرگوارها باشه :)
- واقعیت افزوده: واقعیت افزوده علیرغم این که درست فهمیده نمیشه، اما فیلد خوبیه برای مطالعه. طبیعتا برای انجام پروژههای واقعیت افزوده نیازمند حجم خوبی دانش بینایی ماشین هستیم :)
موارد بالا، فقط بخش کوچکی از کاربردهای بینایی ماشین بودن :) در ادامه درسهای این کانال، با هم موارد بیشتری رو بررسی خواهیم کرد.
@computer_vision_com
خب کاربردهای زیادی براشون وجود داره که در این قسمت با هم مرورشون میکنیم :)
- ویرایش تصاویر: بله، همون فتوشاپی که ما ازش برای ویرایش تصاویر استفاده میکنیم بر مبنای همین مفاهیم نوشته شده. با توجه به این که فتوشاپ از اواخر دهه ۸۰ میلادی وجود داشته، میتونید بفهمید که بینایی ماشین همچین هم جدید نیست :)
- طبقهبندی تصاویر: اگر کمی هوش مصنوعی، یادگیری ماشین و یادگیری عمیق چاشنی کارمون کنیم، میتونیم طبقهبندی تصاویر رو هم انجام بدیم.
- خودروهای خودران: خودروهای خودران برای تشخیص چراغ قرمز، موانع، ترافیک، خودروهای نزدیک، علائم راهنمایی رانندگی در کنار سنسورهای فراصوت و LiDar از پردازش تصویر استفاده میکنند. احتمال زیاد عمومیت موضوع این کانال هم بر مبنای همین بزرگوارها باشه :)
- واقعیت افزوده: واقعیت افزوده علیرغم این که درست فهمیده نمیشه، اما فیلد خوبیه برای مطالعه. طبیعتا برای انجام پروژههای واقعیت افزوده نیازمند حجم خوبی دانش بینایی ماشین هستیم :)
موارد بالا، فقط بخش کوچکی از کاربردهای بینایی ماشین بودن :) در ادامه درسهای این کانال، با هم موارد بیشتری رو بررسی خواهیم کرد.
@computer_vision_com
👍1
و اما درس دوم بینایی ماشین :)
پیشنیازهای بینایی ماشین چیه؟
این درس قراره یک درس نسبتا کوتاه باشه در مورد این که ما برای یادگیری بینایی ماشین، چه چیزایی نیاز داریم که بلد باشیم.
اولین چیزی که نیازه بلد باشیم، بیسیکهای برنامهنویسیه. در واقع باید بتونیم یک برنامه که در دنیای واقعی کار میکنه بنویسیم. این بیسیکهایی که اینجا ازشون حرف میزنیم شامل عملگرهای منطقی و محاسباتی، ساختارهای کنترلی، توابع، کلاسها و کار با فایل (و I/O ) میشه.
👀 چه زبانی باید برای بینایی ماشین بلد باشیم؟
برای بینایی ماشین ما از یک کتابخونهای به اسم OpenCV که مخفف Open Source Computer Vision است استفاده میکنیم. این کتابخونه برای زبانهای سی++، جاوا و پایتون ارائه شده و binding های مرتبط با سیشارپ (برای موتور بازیسازی یونیتی) هم داره.
👀 ما قراره با کدوم یکی از این زبانها کار کنیم؟
عمده مفاهیمی که در این کانال در موردش بحث خواهیم کرد بیشتر با کلیت و تمامیت OpenCV کار داره و نه کتابخونه خاصی. اما برای سادهسازی بحثها، عمده مثالها با پایتون خواهند بود. اما در آیندهای نه چندان دور مثالهای جاوا هم اضافه میشن.
@computer_vision_com
پیشنیازهای بینایی ماشین چیه؟
این درس قراره یک درس نسبتا کوتاه باشه در مورد این که ما برای یادگیری بینایی ماشین، چه چیزایی نیاز داریم که بلد باشیم.
اولین چیزی که نیازه بلد باشیم، بیسیکهای برنامهنویسیه. در واقع باید بتونیم یک برنامه که در دنیای واقعی کار میکنه بنویسیم. این بیسیکهایی که اینجا ازشون حرف میزنیم شامل عملگرهای منطقی و محاسباتی، ساختارهای کنترلی، توابع، کلاسها و کار با فایل (و I/O ) میشه.
👀 چه زبانی باید برای بینایی ماشین بلد باشیم؟
برای بینایی ماشین ما از یک کتابخونهای به اسم OpenCV که مخفف Open Source Computer Vision است استفاده میکنیم. این کتابخونه برای زبانهای سی++، جاوا و پایتون ارائه شده و binding های مرتبط با سیشارپ (برای موتور بازیسازی یونیتی) هم داره.
👀 ما قراره با کدوم یکی از این زبانها کار کنیم؟
عمده مفاهیمی که در این کانال در موردش بحث خواهیم کرد بیشتر با کلیت و تمامیت OpenCV کار داره و نه کتابخونه خاصی. اما برای سادهسازی بحثها، عمده مثالها با پایتون خواهند بود. اما در آیندهای نه چندان دور مثالهای جاوا هم اضافه میشن.
@computer_vision_com
👍1
راهنمای نصب OpenCV در کنار پایتون
فرض ما بر اینه که شما پایتون رو نصب کردید و میدونید که چی به چیه (همونطوری که خدمتتون عرض کردم، شما نیاز دارید تا بیسیکهای پایتون رو بلد باشید که خب نصب پکیج هم از اوناست). فرض ما اینجا این خواهد بود که شما پایتون رو از python.org نصب کردید (برای آناکاندا و ... روشهای دیگری هست. اما خب تا حد خوبی روشها شبیه به همن).
حالا کافیه که شما ترمینال یا cmd رو باز کنید و دستور زیر رو اجرا کنید:
و اگر پایتون ۲ و ۳ رو کنار هم دارید:
و اگر ویندوز دارید:
و منتظر باشید تا نصبش تمام شه.
بعد از نصبش، کافیه که شل پایتون رو باز کنید و این دستور رو اجرا کنید:
و اگر بدون هیچ خطایی اجرا شد، یعنی که شما OpenCV رو به درستی نصب کردید.
در ادامه، ممکنه یک سری پکیج دیگه نصب کنیم که اهم اونها عبارتند از numpy و matplotlib و mediapipe. گرچه الان کار زیادی باهاشون نداریم، اما اگر نصبشون کنید بد نیست :)
@computer_vision_com
فرض ما بر اینه که شما پایتون رو نصب کردید و میدونید که چی به چیه (همونطوری که خدمتتون عرض کردم، شما نیاز دارید تا بیسیکهای پایتون رو بلد باشید که خب نصب پکیج هم از اوناست). فرض ما اینجا این خواهد بود که شما پایتون رو از python.org نصب کردید (برای آناکاندا و ... روشهای دیگری هست. اما خب تا حد خوبی روشها شبیه به همن).
حالا کافیه که شما ترمینال یا cmd رو باز کنید و دستور زیر رو اجرا کنید:
pip install opencv-python
و اگر پایتون ۲ و ۳ رو کنار هم دارید:
pip3 install opencv-python
و اگر ویندوز دارید:
python3 -m pip install opencv-python
و منتظر باشید تا نصبش تمام شه.
بعد از نصبش، کافیه که شل پایتون رو باز کنید و این دستور رو اجرا کنید:
import cv2
و اگر بدون هیچ خطایی اجرا شد، یعنی که شما OpenCV رو به درستی نصب کردید.
در ادامه، ممکنه یک سری پکیج دیگه نصب کنیم که اهم اونها عبارتند از numpy و matplotlib و mediapipe. گرچه الان کار زیادی باهاشون نداریم، اما اگر نصبشون کنید بد نیست :)
@computer_vision_com
👍1
بعنوان یک مطلب کوتاه این رو بگم که قرار نیست فعلا کد بنویسیم. درس بعدی در مورد مُدهای رنگی خواهد بود و بعدش وارد وادی کدنویسی میشیم.
این رو بعنوان یک یادآور اینجا نوشتم.
این رو بعنوان یک یادآور اینجا نوشتم.
👍1
خب درس سوممون هم فضاهای رنگی یا همون مُد رنگی در پردازش تصویره :)
در این درس مدهای زیر رو بررسی میکنیم:
۱. مد خاکستری (که بهش Gray یا Grayscale هم میگیم)
۲. مد آبی-سبز-قرمز و قرمز-سبز-آبی (BGR, RGB)
۳. مد HSV (یا Hue, Saturation, Value)
چند مُد دیگر هم وجود داره که فعلا باهاشون کاری نداریم. حقیقت اینه که عمده چیزایی که قراره در ادامه باهاشون کار کنیم، با همین مدها کارمون راه میفته و نیاز به مد اضافهتری نداریم.
از سادهترین مُد شروع کنیم؟ مد خاکستری.
مد خاکستری یک لایه بیشتر نداره. یک تصویر رو فرض کنید که ۶۴۰ در ۴۸۰ پیکسل اندازهشه.
اگر این تصویر رو به مد خاکستری ببریم، صرفا یه ماتریس تکبعدی میشه که ۶۴۰ ستون و ۴۸۰ ستر داره و در هر درایه از ماتریس یک عدد از ۰ تا ۲۵۵ عه که مشخص میکنه کجای طیف هستیم. در واقع، اینطوری بگم خدمت شما که هرچی به صفر نزدیکتر باشیم تیرهتر و هرچی به ۲۵۵ نزدیکتر بشیم روشنتر میشه.
سایر مدها چی؟ در ادامه میبینیم. :)
@computer_vision_com
در این درس مدهای زیر رو بررسی میکنیم:
۱. مد خاکستری (که بهش Gray یا Grayscale هم میگیم)
۲. مد آبی-سبز-قرمز و قرمز-سبز-آبی (BGR, RGB)
۳. مد HSV (یا Hue, Saturation, Value)
چند مُد دیگر هم وجود داره که فعلا باهاشون کاری نداریم. حقیقت اینه که عمده چیزایی که قراره در ادامه باهاشون کار کنیم، با همین مدها کارمون راه میفته و نیاز به مد اضافهتری نداریم.
از سادهترین مُد شروع کنیم؟ مد خاکستری.
مد خاکستری یک لایه بیشتر نداره. یک تصویر رو فرض کنید که ۶۴۰ در ۴۸۰ پیکسل اندازهشه.
اگر این تصویر رو به مد خاکستری ببریم، صرفا یه ماتریس تکبعدی میشه که ۶۴۰ ستون و ۴۸۰ ستر داره و در هر درایه از ماتریس یک عدد از ۰ تا ۲۵۵ عه که مشخص میکنه کجای طیف هستیم. در واقع، اینطوری بگم خدمت شما که هرچی به صفر نزدیکتر باشیم تیرهتر و هرچی به ۲۵۵ نزدیکتر بشیم روشنتر میشه.
سایر مدها چی؟ در ادامه میبینیم. :)
@computer_vision_com
👍1
در مد رنگی RGB یا BGR ما سه ماتریس داریم که تعیینکننده رنگهامون هستند. یک ماتریس برای آبی، یکی برای سبز و دیگری برای قرمز.
در واقع اینجا به این نگاه کنیم که سه ماتریس هرکدوم با ۶۴۰ ستون و ۴۸۰ سطر.
در هر درایه یک عدد بین ۰ تا ۲۵۵ داریم که نشون میده چقدر قرمز، چقدر سبز و چقدر آبی داریم. مثلا اگر قرمز و آبی روی ۲۵۵ و سبز روی ۰ باشه، یعنی چی شده؟ هیچی. اون پیکسل خاص بنفش نمایش داده میشه.
کتابخونه OpenCV به صورت خاص تصاویر رو BGR میبینه ولی ما میتونیم اونا رو به شکل RGB هم ببینیم. این مورد رو در درسهای بعدی بررسی خواهیم کرد.
@computer_vision_com
در واقع اینجا به این نگاه کنیم که سه ماتریس هرکدوم با ۶۴۰ ستون و ۴۸۰ سطر.
در هر درایه یک عدد بین ۰ تا ۲۵۵ داریم که نشون میده چقدر قرمز، چقدر سبز و چقدر آبی داریم. مثلا اگر قرمز و آبی روی ۲۵۵ و سبز روی ۰ باشه، یعنی چی شده؟ هیچی. اون پیکسل خاص بنفش نمایش داده میشه.
کتابخونه OpenCV به صورت خاص تصاویر رو BGR میبینه ولی ما میتونیم اونا رو به شکل RGB هم ببینیم. این مورد رو در درسهای بعدی بررسی خواهیم کرد.
@computer_vision_com
👍1
مد رنگی HSV هم از سه بخش Hue, Saturation و Value تشکیل شده.
حالا اینا چین؟ Hue میشه اون طول موجی که در یک پیکسل خاص، غالب بوده. مثلا اینطوری بگیم که اگر یک پیکسل نارنجی ببینیم، احتمالا طول موج مربوط به قرمز در اون به طول موج آبی و سبز غالب باشه.
مورد دوم Saturation یا اشباعه. این مورد میگه که رنگ ما چقدر خالصه و چقدر سایه داره.
مورد آخر یا همون Value نشان از اینه که شدت اون رنگ خاص چقدره.
مد HSV برای شناسایی الگوها در یک تصویر، تشخیص رنگ و ...، کاربرد داره. این مورد رو شاید خیلی بعدتر ازش استفاده کنیم پس اگر درکش براتون مشکله نگران نباشید.
@computer_vision_com
حالا اینا چین؟ Hue میشه اون طول موجی که در یک پیکسل خاص، غالب بوده. مثلا اینطوری بگیم که اگر یک پیکسل نارنجی ببینیم، احتمالا طول موج مربوط به قرمز در اون به طول موج آبی و سبز غالب باشه.
مورد دوم Saturation یا اشباعه. این مورد میگه که رنگ ما چقدر خالصه و چقدر سایه داره.
مورد آخر یا همون Value نشان از اینه که شدت اون رنگ خاص چقدره.
مد HSV برای شناسایی الگوها در یک تصویر، تشخیص رنگ و ...، کاربرد داره. این مورد رو شاید خیلی بعدتر ازش استفاده کنیم پس اگر درکش براتون مشکله نگران نباشید.
@computer_vision_com
👍1
از اونجا که بعضی از دوستانی که تازه به کانال پیوستند ممکنه که با پایتون آشنا نباشند، این کورس پنجساعته «پایتون برای دیتاساینس» رو ببینید.
چرا که خیلی از کارایی که ما قراره انجام بدیم، پایهش دقیقا در همین دیتاساینسه:
https://www.youtube.com/watch?v=yGN28LY5VuA
@computer_vision_com
چرا که خیلی از کارایی که ما قراره انجام بدیم، پایهش دقیقا در همین دیتاساینسه:
https://www.youtube.com/watch?v=yGN28LY5VuA
@computer_vision_com
YouTube
Python for Data Science | Beginner Friendly Full Course in 5 Hours
Starting your data science journey?
Just dipping your toe into Machine Learning?
Not too sure how to get started with the wild world of Python?
I got you.
There’s a ton of stuff to learn when you’re just getting started with data science, but having a…
Just dipping your toe into Machine Learning?
Not too sure how to get started with the wild world of Python?
I got you.
There’s a ton of stuff to learn when you’re just getting started with data science, but having a…
درسهای برنامهنویسی در چه فرمتی باشند؟
Anonymous Poll
66%
ویدئو
12%
پست وبلاگ
5%
ویدئو ولی روی بستریکه فیلتر نیست
16%
درس برنامهنویسی هستم (برای کسانی که دوست دارند الکی کلیک کنند)
Computer Vision Community
درسهای برنامهنویسی در چه فرمتی باشند؟
نتایج این نظرسنجی تا ۲۴ ساعت آینده تعیین میکنه با کدوم فرمون بریم جلو :)
خب عموم دوستان ویدئو رو به پست وبلاگ ترجیح میدند.
یک نظرسنجی دیگر هم تا دقایقی دیگر خواهیم داشت، بعد از اون نظرسنجی دیگه میریم سراغ درسهای برنامهنویسی.
یک نظرسنجی دیگر هم تا دقایقی دیگر خواهیم داشت، بعد از اون نظرسنجی دیگه میریم سراغ درسهای برنامهنویسی.
Computer Vision Community
ویدئوها در کدام پلتفرم باشند؟
خب، با استناد به این یکی نظرسنجی، از امشب شروع میکنم ویدئو ضبط کردن و در یوتوب قرار دادن.
لینکها اینجا در دسترس خواهند بود.
همچنین بعد از این که تعدادی ویدئو ضبط شد، میریم سراغ این که یک گروه پرسش و پاسخ داشته باشیم.
لینکها اینجا در دسترس خواهند بود.
همچنین بعد از این که تعدادی ویدئو ضبط شد، میریم سراغ این که یک گروه پرسش و پاسخ داشته باشیم.
👍1
Computer Vision Community
خب، با استناد به این یکی نظرسنجی، از امشب شروع میکنم ویدئو ضبط کردن و در یوتوب قرار دادن. لینکها اینجا در دسترس خواهند بود. همچنین بعد از این که تعدادی ویدئو ضبط شد، میریم سراغ این که یک گروه پرسش و پاسخ داشته باشیم.
بروزرسانی: امشب ممکنه وقت نشه ویدئو ضبط کنم دیگه، اما فردا حتما ضبط خواهم کرد :)
خب درس اول برنامهنویسیمون هم روی یوتوب آپلود شد :)
https://youtu.be/A-qoHemtpX0
در این درس یک تصویر رو با OpenCV در پایتون باز کردیم، کانالهای رنگیش رو دیدیم و کمی هم با cvzone آشنا شدیم.
این درس برای کسی که با موضوع آشنایی داره هم خوبه، دیدن مجددش باعث یادآوری میشه :)
@computer_vision_com
https://youtu.be/A-qoHemtpX0
در این درس یک تصویر رو با OpenCV در پایتون باز کردیم، کانالهای رنگیش رو دیدیم و کمی هم با cvzone آشنا شدیم.
این درس برای کسی که با موضوع آشنایی داره هم خوبه، دیدن مجددش باعث یادآوری میشه :)
@computer_vision_com
YouTube
جامعه بینایی ماشین - درس اول برنامهنویسی - باز کردن تصویر و مشاهده کانالهای آن
در درس اول، قراره که با هم یک تصویر باز کنیم و محتویات و کانالهاش رو ببینیم. درس سنگین و خاصی نیست و اگر پایتون بلدید، میتونه یک تمرین خوب برای مجدد کد زدن با این زبان باشه :)
#opencv #پایتون #محمدرضا_حقیری
#opencv #پایتون #محمدرضا_حقیری
فردا درس ویدئویی بعدی هم ضبط و منتشر میشه.
محتوایی که برای قسمت دوم در نظر گرفته شده، ساخت تصویر BGR به کمک numpy و استفاده از آموزههای دوره بینایی ماشین در جوپیتر نوتبوکه.
قرار بود ابتدا از مدهای رنگی شروع کنم، اما استفاده از جوپیتر و ابزارهای دیگر، کمی ارجحه به مدهای رنگی.
محتوایی که برای قسمت دوم در نظر گرفته شده، ساخت تصویر BGR به کمک numpy و استفاده از آموزههای دوره بینایی ماشین در جوپیتر نوتبوکه.
قرار بود ابتدا از مدهای رنگی شروع کنم، اما استفاده از جوپیتر و ابزارهای دیگر، کمی ارجحه به مدهای رنگی.
درس دوم برنامهنویسی هم آپلود شد.
https://youtu.be/j_tCaRvKB5A
در این درس، تصاویر رو در جوپیتر باز کردیم و یاد گرفتیم تصاویر رو در جوپیتر چطور نشون بدیم.
بعد از اون، دوباره ماتریسهای رنگ رو جدا کردیم و دیدیم که چه خبره. بعدش، تصاویر رو resize و crop کردیم و حتی یک تصویر هم خودمون ساختیم.
این درس رو نیازه که حتما ببینید که درسهای بعدی خیلی به این ربط دارند.
@computer_vision_com
https://youtu.be/j_tCaRvKB5A
در این درس، تصاویر رو در جوپیتر باز کردیم و یاد گرفتیم تصاویر رو در جوپیتر چطور نشون بدیم.
بعد از اون، دوباره ماتریسهای رنگ رو جدا کردیم و دیدیم که چه خبره. بعدش، تصاویر رو resize و crop کردیم و حتی یک تصویر هم خودمون ساختیم.
این درس رو نیازه که حتما ببینید که درسهای بعدی خیلی به این ربط دارند.
@computer_vision_com
YouTube
جامعه بینایی ماشین - درس دوم برنامهنویسی - تغییر سایز، رنگ، کراپکردن و ترکیب تصاویر
در قسمت دوم درسهای برنامهنویسی بینایی ماشین، قراره از جوپیتر استفاده کنیم، عکس رو تغییر سایز و رنگ بدیم و حتی تصویر جدید بسازیم.
این قسمت رو حتما ببینید تا ببینید که پشت صحنه فتوشاپ و امثالهم چه خبره :)
#پایتون #محمدرضا_حقیری #opencv
این قسمت رو حتما ببینید تا ببینید که پشت صحنه فتوشاپ و امثالهم چه خبره :)
#پایتون #محمدرضا_حقیری #opencv
Computer Vision Community
کدهای درسها رو هم بذارم؟
خب کدهای این دو درس به انضمام درس بعدی؛ بعد از آپلود ویدئوی درس بعدی در گیتهاب قرار خواهند گرفت.