ساخت یک ایستگاه توسعه برای بینایی ماشین در گنو/لینوکس

در مطالب پیشین، هم به اهمیت جامعه بینایی ماشین اشاره کردم، هم یک پروژه فان در این حوزه رو معرفی کرده بودم. اما موضوع مهم اینه که خیلی از دوستانم، ازم می‌پرسن که چطور می‌تونن یک ایستگاه توسعه یا Development Station خوب روی گنو/لینوکس برای بینایی ماشین داشته باشند؟ خب در این مطلب، قراره با هم یاد بگیریم که در اوبونتو/دبیان یا آرچ/مانجارو چطوری می‌تونیم یک ایستگاه توسعه برای بینایی ماشین و پردازش تصویر بسازیم. گام اول: نصب توزیع مورد نظربرای این که این مطلب نوشته بشه، شخصا دو توزیع زیر رو نصب و راه‌اندازی کردم:Ubuntu 20.04EndeavourOSاوبونتو، همونطوری که می‌دونید مبتنی بر دبیانه و مدیریت بسته‌هاش و حتی اسم اکثر بسته‌هاش با دبیان یکی. توزیع دوم یعنی EndeavourOS هم مبتنی بر آرچ‌لینوکس ساخته شده و هیچ تفاوت ساختاری خاصی با آرچ نداره (جز این که موقع نصبش احتمال ترکیدن سیستم شما بسیار کمتره ?). با این حال، شما مجبور به نصب این دو توزیع نیستید و هرچه در ادامه می‌خونید در هر توزیعی قابل استفاده‌ست. فقط جاهایی که از apt و pacman استفاده شده رو باید متناسب با توزیع خودتون، تغییر بدید و با مدیریت بسته توزیع خودتون (مثلا dnf ) جایگزینش کنید. در مورد روش نصب هم، شما هم می‌تونید این مراحل رو روی یک سرور در اینترنت طی کنید، هم می‌تونید این مراحل رو روی یک کامپیوتر قدیمی طی کنید و یا حتی می‌تونید با استفاده از Virtual Box یا هر مجازی‌ساز دیگری، یک ماشین مجازی گنو/لینوکسی ایجاد کنید و کارهاتون رو باهاش انجام بدید. گام دوم: نصب بسته‌های مورد نیاز روی توزیعخب پس از این که توزیع مورد نظر خودتون رو نصب کردید، ابتدا باید کارهای زیر رو انجام بدید:اوبونتو/دبیان:آرچ/مانجارو بعدش هم باید این کار رو انجام بدیم که pip از طریق کاربر ما در دسترس باشه:در بعضی سیستم‌ها، ممکنه از شما بخواد که pip رو به متغیر PATH بفهمونید ولی تا جایی که من فهمیدم این موضوع در اوبونتو و EndeavourOS هندل شده و نیازی نیست که شما تغییری در PATH خودتون بدید. الان، بسته‌های ابتدایی ما نصب شدند. یک سری بسته مثل docker, VS Code و ... هم هستند که اگر نصب باشند، بد نیست. اما نیاز خاصی بهشون نداریم و نصب این‌ها کاملا بر عهده خودتون. گام سوم: نصب پکیج‌های پایتونخب در این قسمت، پکیج‌های پایتونی مورد نظرمون رو باید یک به یک نصب کنیم. در تصویر زیر، عمده پکیج‌های مورد نظر رو لیست کردم که نیازی به توضیح یا آموزش خاصی نداره نصبشون. با این حال، اگر شما مثل من GPU ندارید و نیاز به pytorch دارید (که احتمالا در پروژه بعدی بینایی ماشین قراره ازش استفاده کنیم)، نگران نباشید. کافیه که دستور زیر رو در ترمینال اجرا کنید:گام سه‌ونیم: نصب برای GPUاز اونجایی که GPU های متفاوت ممکنه با نسخه‌های متفاوت CUDA یا CuDNN کار کنند، بهتره که برای نصب لایبرری‌ها با GPU در مستندات خودشون بگردید. برای مثال، پای‌تورچ خودش اینجا راهنماییتون می‌کنه که چی رو چطور نصب کنید :)گام آخر: تست :)خب الان شما نیاز به تصاویری برای تست دارید. یک راهنمایی ریز به شما بکنم؟ می‌تونید از این مخزن در گیت، برای به دست آوردن تصاویر تستی خودتون استفاده کنید. و یا یک عکس (مثلا اینجا Lenna.jpg) رو از اینترنت دریافت کنید و این چند خط کد رو بنویسید: و بعد از این که اجراش کردید چنین نتیجه‌ای رو مشاهده کنید:تبریک میگم، الان شما این امکان رو دارید که شروع کنید به کار کردن با ایستگاه توسعه خودتون و پروژه‌های باحال بینایی ماشین رو انجام بدید. هرچند این مطلب به صورت کامل شما رو با یک ایستگاه توسعه لینوکسی آشنا می‌کنه، اما مواردی هم هستند که باید روی اونها کار شه، مثل استفاده از دوربین و ... . این موارد رو هنوز نتونستم باهاشون به نتیجه درستی برسم و به محض این که ازشون نتیجه گرفتم، حتما با شما به اشتراک خواهم گذاشت. از این که وقت گذاشتید و این مطلب رو خوندید، ازتون متشکرم. این مطلب، مدتها بود که باید نوشته می‌شد و خب بالاخره طلسم تست‌هاش شکسته شد و نوشته هم شد. ضمنا جا داره خدمتتون عرض کنم که اگر از این دست مطالب دوست دارید، می‌تونید وبلاگ شخصی من رو هم مطالعه کنید. همچنین اگر دوست دارید که این مطالب، تداوم داشته باشه، می‌تونید یک قهوه مهمونم کنید: https://www.coffeete.ir/haghiri