دانلود تنها یک زیر پوشه از یک repository گیت‌هاب به سبک هلو برو تو گلو

صورت مسال اینه: ما تنها یک زیر پوشه از یک repository گیت‌هاب رو لازم داریم و می خوایم دانلودش کنیم. بذارید با مثال برم جلو، repositoryای داریم با عنوان TensorFlow Models که شخصا از قسمت Tensorflow Object detection API اون برای پردازش تصویر روی رزبری‌پای استفاده می‌کنم و زیاد پیش میاد که لازم بشه از اول دانلودش کنم.

همه‌ی آموزش‌های اون بیرون میان میگن اول کل ریپازیتوری رو دانلود کنید تا با این بخش Object Detection کار کنیم. که خوب این repository حجمی حدود ۷۰۰-۸۰۰ مگابات داره ولی ما برای کار پردازش تصویر فقط به زیر پوشه‌ی object_detection اون احتیاج دارم که حجمش تنها  ۱۲۴مگابایته.

بیایم و هربار کل repository رو دانلود کنم از یک سمت حجم زیادی از اینترنتم مصرف می‌شه و از اون طرف فایل‌هایی رو دانلود کردیم که به بهشون احتیاج نداریم و روی رزبری‌پای فضا اشغال کردن.

اگر مشکل پهنای باند و حجم اینترنت نداشته باشیم قابل قبوله که اول کل repository رو دانلود کنیم و بعد فایل‌های اضافی رو بریزیم دور، اما راه حل معقول اینه که فقط همون پوشه‌ای که بهش کار داریم رو به شکل مجزا دانلود کنیم.

من اکثر راه حل‌های موجود رو تست کردم و فقط یکیشون هست که بدون کثافت کاری زیادی میاد و ما رو به هدفمون می‌رسونه. پس بیاد با من در ادامه‌ی این نوشته همراه باشید تا راحت‌ترین راه دانلود تنها یک زیر پوشه از یک repository گیت‌هاب رو با هم یاد بگیریم.

خواندن ادامه مطالب

آموزش راه‌اندازی Raspberry Pi به صورت Headless

راه‌اندازی Raspberry Pi به صورت Headless از اون شترهایی هست که بخوایم و نخوایم در خونه‌ی همه‌ی ما می‌شینه. چون همیشه اینطوری نیست که ماوس و مانیتور به بغل Raspberry Pi رو راه اندازی کنیم، زیاد پیش میاد که یک لپ‌تاپ داریم و یک Raspberry Pi و قراره این مینی‌کامپوتر دوست داشتنی رو برای اولین بار راه بندازیم.

اگر کی‌برد و مانیتوری در کار نباشه تنها راه ارتباطی‌ای که با Raspberry Pi برامون می‌مونه SSH زدن است، اما برای اینکه SSH بزنیم باید بتونیم Raspberry Pi رو به مودم/اینترنت وصل کنیم و IP دستگاه رو بدونم و بدون کی‌برد و مانیتور مساله مرغ و تخم مرغ می‌شه، نه؟

در ادامه‌ی این نوشته ابتدا سیستم‌عامل Raspbian Stretch Lite رو نصب کرده و بعد با هم مراحل راه‌اندازی Raspberry Pi به صورت Headless رو خواهیم دید.

بدون حرف اضافه‌ی وقشه که بریم و این مرغ و تخم مرغ SSH و IP رو نیمرو کنیم 🙂

خواندن ادامه مطالب

تجربه‌ی یک شکست: چطور برد مدار چاپی(PCB) طراحی نکنیم؟

چندهفته‌ی پیش قرار شد برای اولین‌بار PCB مدارم رو خودم طراحی کنم که نتیجه‌ی کار یک شکست تمام و کمال بود.

خراب کاری کردن اونم در اولین تجربه‌ی طراحی اصلا عجیب نیست و الزاما چیز بدی هم نیست، تا چندتا خرابکاری نکنی بعیده بتونی چیزی یاد بگیری 🙂

به عنوان تنبیه تصمیم گرفتم بر کوس رسوایی بزنم و تجربه‌ی شکستم رو برای همه تعریف کنم، با این امید که شاید از این طریق فیدبک بگیرم تا در طراحی‌های بعدی اشتباهات کمتری داشته باشم.

مقدمه گفتن کافیه، وقتشه چوب خشک جمع کنید و بیاید با من در ادامه‌ی این نوشته همراه باشید تا براتون داستان طراحی PCBم رو بگم.

خواندن ادامه مطالب

دانلود دیتاست‌ از سایت Kaggle و ذخیره آن در Google Drive بدون خون و خون‌ریزی!

عنوان پست رو گذاشتم دانلود مستقیم دیتاست‌های Kaggle در Google Drive اما تکنیکی که اینجا یاد می‌‌گیریم خیلی کلی‌تره و تقریبا همه‌جا میشه ازش استفاده کرد.

خیلی خلاصه بخوام بگم ما اینجا یاد می‌گیریم که چطور با دستور wget فایل‌هامون رو در محیط ترمینال دانلود کنیم.

اما تمرکز این پست رو روی گوگل‌درایو گذاشتم چون خودم برای یادگیری عمیق دارم با Colab کار می‌کنم و دنبال راهی بودم تا فایل‌هامو رو مستقیم روی گوگل‌درایو دانلود کنم.

قبل از شروع آموزش بیاید با هم صادق باشیم، با این اینترنت نامحدود با آستانه‌ی مصرف منصفانه احمقانه‌ترین کاری که میشه انجام داد اینه که بیای اول فایلت رو روی سیستم خودت دانلود کنی و بعد بخوای آپلودش کنی روی Google Drive یا جاهای دیگه. پس اگر شما هم مثل منِ یک هفته‌ی پیش این کار رو می‌کردید وقتشه توبه کنید و این روش جدید رو پیش بگیرید.

خواندن ادامه مطالب

آموزش نصب متلب در لینوکس به شکل خیلی خیلی مفصل!

قبلا +اینجا آموزش نصب متلب ۲۰۱۷ رو در لینوکس نوشتم، و با فرض اینکه Nextزدن‌ها رو همه بلدن اصلا جزییات رو نگفتم و خوب، خیلی سوال و ایمیل داشتم.

اینبار که اومد متلب ۲۰۱۸ رو نصب کنم گفتم از تمامی مراحل کار عکس بگیرم و یک آموزش با جزییات کامل از تمامی مراحل نصب بنویسم.

نصب متلب فارغ از اینکه نسخه‌ی ۲۰۱۷ باشه یا ۲۰۱۸ یا احتمالا چندماه دیگه ۲۰۱۹ یکیه اما در فایلی که باید موقع کرک کردن کپی کنیم ممکنه تفاوتی وجود داشته باشه.

من اینجا اسکرین‌شات و توضیحات رو در مورد نصب نسخه‌ی ۲۰۱۸ متلب رو میدم، اگر خواستید نسخه‌ی ۲۰۱۷ رو کرک کنید برای اینکه دوباره کاری نکرده باشم به همون پست قبلی رجوع کنید.

قبل از اینکه آموزش رو شروع کنیم یک حرف دیگه می‌مونه، شخصا متلب رو برای پروژه‌های دانشگاه نصب می‌کنم و چون کرک شده‌ست و داریم دزدی می‌کنیم خیلی علاقه‌ای بهش ندارم و معمولا پروژه‌ی اون درس که تموم شد پاکش می‌کنم، بجای متلب می‌تونید از نرم‌افزار Octave که جایگزین رایگان و اوپن‌سورس اونه استفاده کنید.

خواندن ادامه مطالب

افزودن نویز گاوسی به تصویر در پایتون

توی پردازش تصویر نویز گاوسی مثل یک بنچ‌مارک می‌مونه، استاد من که قویا اعتقاد داره  اگر در برابر نویز گاوسی مقاوم باشیم بقیه‌ی نویز‌ها (مثل نمک و فلفل و …) مشکل خاصی ایجاد نمی‌کنن، ما هم به حرفش اعتماد می‌کنیم 😉

پس بیاید در ادامه‌ی این نوشته یک مقدار نویز گاوسی در پایتون ایجاد کنیم و اونو بریزیم توی تصویر، چرا که نه؟!

خواندن ادامه مطالب

نمایش دو تصویر به صورت افقی یا عمودی در کنار هم در یک پنجره‌ی OpenCV

خیلی وقت‌ها پیش میاد که دوست داریم  دو یا چند تصویر رو در یک پنجره‌ی OpenCV  در کنار هم نمایش بدیم، مثلا می خواهیم تصویر اصلی رو در کنار تصویر نویزی ببینیم.

به شکل خیلی جالبی خود دستور imshow کتابخانه‌ی OpenCV این امکان رو در اختیامون قرار نمی‌ده، اما به همین نسبت راه‌حل هم آسونه!

در ادامه یک تابع خیلی ساده می‌نویسیم که بیاد و دوتا عکس رو درکنار هم برامون نمایش بده، دقیقا همین روش رو برای چندتا تصویر هم می‌تونیم بکار ببریم.

خواندن ادامه مطالب

معرفی AlexNet و یا: زمانی که یادگیری عمیق رسما متولد شد.

سال ۲۰۱۲ آقای Alex Krizhevsky به همراه Ilya Sutskever و  Geoffrey E. Hinton مقاله‌ای ۸ صفحه‌ای منتشر می‌کنن که عنوانش هست “ImageNet Classification with Deep Convolutional Neural Networks” و با معرفی AlexNet دروازه‌ی ورود به نارنیان رو  جلو راه پژوهشگران بینایی ماشین قرار می‌دن.

در اون زمان AlexNet رو روی مسابقه‌ی  ImageNet تست کردن و با CNN که طراحی کرده بودن میان  و Top-5 error rate رو به ۱۵٫۳٪ کاهش می‌دن، در حالی که خطای نزدیک‌ترین رقیب اون‌ها ۲۶٫۲٪ بوده.

و این اختلاف فاحش بود پژوهش‌گرها رو متوجه کاربرد یادگیری عمیق در پردازش تصویر کرد. و میشه گفت با  AlexNet  یادگیری عمیق متولد شد!*

*نه که قبلا نبوده اماAlexNet اولین کاربرد و نمایش برتری شبکه‌های ژرف هست.

در ادامه این نوشته مروری خواهیم داشت بر معماری یکی از معروف‌ترین شبکه‌‌های عصبی عمیق: AlexNet و  با هم مفاهیمی که در اون مقاله مطرح شده‌اند رو بررسی می‌کنیم.

خواندن ادامه مطالب