Computer Vision Community
321 subscribers
35 photos
3 videos
4 files
78 links
محلی برای انتقال تجربه در زمینه بینایی ماشین
Download Telegram
و اما درس دوم بینایی ماشین :)
پیش‌نیازهای بینایی ماشین چیه؟
این درس قراره یک درس نسبتا کوتاه باشه در مورد این که ما برای یادگیری بینایی ماشین، چه چیزایی نیاز داریم که بلد باشیم.
اولین چیزی که نیازه بلد باشیم، بیسیک‌های برنامه‌نویسیه. در واقع باید بتونیم یک برنامه که در دنیای واقعی کار می‌کنه بنویسیم. این بیسیک‌هایی که اینجا ازشون حرف میزنیم شامل عملگرهای منطقی و محاسباتی، ساختارهای کنترلی، توابع، کلاس‌ها و کار با فایل (و I/O ) میشه.
👀 چه زبانی باید برای بینایی ماشین بلد باشیم؟
برای بینایی ماشین ما از یک کتابخونه‌ای به اسم OpenCV که مخفف Open Source Computer Vision است استفاده می‌کنیم. این کتابخونه برای زبان‌های سی++، جاوا و پایتون ارائه شده و binding های مرتبط با سی‌شارپ (برای موتور بازی‌سازی یونیتی) هم داره.
👀 ما قراره با کدوم یکی از این زبان‌ها کار کنیم؟
عمده مفاهیمی که در این کانال در موردش بحث خواهیم کرد بیشتر با کلیت و تمامیت OpenCV کار داره و نه کتابخونه خاصی. اما برای ساده‌سازی بحث‌ها، عمده مثالها با پایتون خواهند بود. اما در آینده‌ای نه چندان دور مثالهای جاوا هم اضافه میشن.

@computer_vision_com
👍1
راهنمای نصب OpenCV در کنار پایتون
فرض ما بر اینه که شما پایتون رو نصب کردید و می‌دونید که چی به چیه (همونطوری که خدمتتون عرض کردم، شما نیاز دارید تا بیسیک‌های پایتون رو بلد باشید که خب نصب پکیج هم از اوناست). فرض ما اینجا این خواهد بود که شما پایتون رو از 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
👍1
در مد رنگی RGB یا BGR ما سه ماتریس داریم که تعیین‌کننده رنگ‌هامون هستند. یک ماتریس برای آبی، یکی برای سبز و دیگری برای قرمز.
در واقع اینجا به این نگاه کنیم که سه ماتریس هرکدوم با ۶۴۰ ستون و ۴۸۰ سطر.
در هر درایه یک عدد بین ۰ تا ۲۵۵ داریم که نشون میده چقدر قرمز، چقدر سبز و چقدر آبی داریم. مثلا اگر قرمز و آبی روی ۲۵۵ و سبز روی ۰ باشه، یعنی چی شده؟ هیچی. اون پیکسل خاص بنفش نمایش داده میشه.
کتابخونه OpenCV به صورت خاص تصاویر رو BGR می‌بینه ولی ما می‌تونیم اونا رو به شکل RGB هم ببینیم. این مورد رو در درس‌های بعدی بررسی خواهیم کرد.

@computer_vision_com
👍1
مد رنگی HSV هم از سه بخش Hue, Saturation و Value تشکیل شده.
حالا اینا چین؟ Hue میشه اون طول موجی که در یک پیکسل خاص، غالب بوده. مثلا اینطوری بگیم که اگر یک پیکسل نارنجی ببینیم، احتمالا طول موج مربوط به قرمز در اون به طول موج آبی و سبز غالب باشه.
مورد دوم Saturation یا اشباعه. این مورد میگه که رنگ ما چقدر خالصه و چقدر سایه داره.
مورد آخر یا همون Value نشان از اینه که شدت اون رنگ خاص چقدره.
مد HSV برای شناسایی الگو‌ها در یک تصویر، تشخیص رنگ و ...، کاربرد داره. این مورد رو شاید خیلی بعدتر ازش استفاده کنیم پس اگر درکش براتون مشکله نگران نباشید.

@computer_vision_com
👍1
از اونجا که بعضی از دوستانی که تازه به کانال پیوستند ممکنه که با پایتون آشنا نباشند، این کورس پنج‌ساعته «پایتون برای دیتاساینس» رو ببینید.
چرا که خیلی از کارایی که ما قراره انجام بدیم، پایه‌ش دقیقا در همین دیتاساینسه:
https://www.youtube.com/watch?v=yGN28LY5VuA

@computer_vision_com
Computer Vision Community
درسهای برنامه‌نویسی در چه فرمتی باشند؟
نتایج این نظرسنجی تا ۲۴ ساعت آینده تعیین می‌کنه با کدوم فرمون بریم جلو :)
خب عموم دوستان ویدئو رو به پست وبلاگ ترجیح میدند.
یک نظرسنجی دیگر هم تا دقایقی دیگر خواهیم داشت، بعد از اون نظرسنجی دیگه می‌ریم سراغ درس‌های برنامه‌نویسی.
ویدئوها در کدام پلتفرم باشند؟
Anonymous Poll
65%
یوتوب
2%
اینستاگرام
23%
تلگرام
9%
آپارات
Computer Vision Community
ویدئوها در کدام پلتفرم باشند؟
خب، با استناد به این یکی نظرسنجی، از امشب شروع می‌کنم ویدئو ضبط کردن و در یوتوب قرار دادن.
لینک‌ها اینجا در دسترس خواهند بود.
همچنین بعد از این که تعدادی ویدئو ضبط شد، می‌ریم سراغ این که یک گروه پرسش و پاسخ داشته باشیم.
👍1
خب درس اول برنامه‌نویسیمون هم روی یوتوب آپلود شد :)
https://youtu.be/A-qoHemtpX0
در این درس یک تصویر رو با OpenCV در پایتون باز کردیم، کانال‌های رنگیش رو دیدیم و کمی هم با cvzone آشنا شدیم.
این درس برای کسی که با موضوع آشنایی داره هم خوبه، دیدن مجددش باعث یادآوری میشه :)

@computer_vision_com
فردا درس ویدئویی بعدی هم ضبط و منتشر می‌شه.
محتوایی که برای قسمت دوم در نظر گرفته شده، ساخت تصویر BGR به کمک numpy و استفاده از آموزه‌های دوره بینایی ماشین در جوپیتر نوت‌بوکه.
قرار بود ابتدا از مدهای رنگی شروع کنم، اما استفاده از جوپیتر و ابزارهای دیگر، کمی ارجحه به مدهای رنگی.
درس دوم برنامه‌نویسی هم آپلود شد.
https://youtu.be/j_tCaRvKB5A
در این درس، تصاویر رو در جوپیتر باز کردیم و یاد گرفتیم تصاویر رو در جوپیتر چطور نشون بدیم.
بعد از اون، دوباره ماتریس‌های رنگ رو جدا کردیم و دیدیم که چه خبره. بعدش، تصاویر رو resize و crop کردیم و حتی یک تصویر هم خودمون ساختیم.
این درس رو نیازه که حتما ببینید که درس‌های بعدی خیلی به این ربط دارند.
@computer_vision_com
دوستان عزیز گروه هم ایجاد شده و متصل به کاناله.
این هم آدرسش:
@computer_vision_gp
کدهای درس‌ها رو هم بذارم؟
Anonymous Poll
91%
بله
9%
خیر
Computer Vision Community
کدهای درس‌ها رو هم بذارم؟
خب کدهای این دو درس به انضمام درس بعدی؛ بعد از آپلود ویدئوی درس بعدی در گیتهاب قرار خواهند گرفت.
دوستان دقت کردید صدتایی شدیم؟ 😍
به همین مناسب صدتایی شدن کانال، درس سوم (تغییر فضاهای رنگی) رو فردا ضبط و منتشر می‌کنم. 😍
درس سوممون هم آپلود شد :)
در این درس، فضاهای رنگی پرکاربرد (RGB, Greyscale و HSV) رو بررسی می‌کنیم و می‌بینیم که هرکدوم به ما چه اطلاعاتی از تصویر میدن. پس از اون، یک تصویر هم خودمون میسازیم.
https://youtu.be/EC_s56y9mfs

ضمنا، کدهای مرتبط با درس‌ها در گیتهاب در این آدرس هستند:
github.com/prp-e/cv_tutorials
و می‌تونید بعد هر درس، این مخزن رو چک کنید و برای خودتون تمرین کنید :)

@computer_vision_com