OpenCV - پردازش تصویر, RASPBERRY PI رسپبری, آموزش, توصیه شده, دسته‌بندی نشده, مقاله

آموزش نصب کتابخانه OPENCV (آخرین ورژن)

مطمئنا بارها شده که اسم پردازش تصویر رو شنیده باشید و شاید خیلی‌هاتون این تصور رو داشته باشید که کار کردن در این رشته بسیار کار سخت و پیچیده‌ای است. اما همیشه در واقعیت اونجوری که فکر می‌کنید نیست (البته با روشی که توضیح می‌دیم). اینم بگم کار کردن به صورت حرفه‌ای در این رشته برخلاف اسم زیبایی که داره بسیار سخت و پیچیده است. و در مقاله نمی‌خوایم دقیقا وارد اصل داستان پردازش تصویر بشیم بلکه می‌خوایم روشی رو ارائه بدیم که بتونیم به راحتی توی پروژه‌ها از پردازش تصویر استفاده کنیم.

روشی که می‌خوایم استفاده کنیم، استفاده از کتابخانه آماده opencv است که در این قسمت می‌خوایم از همین ابتدا به صورت کاملا عملی شروع کنیم و تصمیم گرفتیم که این کتابخانه رو روی سیستم عامل رزبین نصب کنیم البته بگم خیلی، سیستم عامل فرقی نداره ( چیزی که مهمه فرآیند نصبه). دلیل انتخاب رزبین هم این بوده که بین مهندسین الکترونیک مقبولیت بیشتری رو داره و میشه گفت کارکردن باهاش برای اول کار ساده‌تره.

و همینطور از زبان برنامه‌نویسی Python و سخت افزار RaspberryPi model3B  در این آموزش و آموزش‌های بعدی استفاده می‌کنیم.

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

سیستم عامل‌هایی که از این کتابخانه پشتیبانی می کنند شامل:

Windows, Linux, macOS, FreeBSD, NetBSD, OpenBSD

و همینطور برای موبایل‌ها از سیستم عامل‌های زیر پشتیبانی می‌کنه:

Android, iOS, Maemo,[20] BlackBerry 10

مقدمات نصب کتابخانه opencv

مرحله اول

نصب سیستم عاملی که مدنظرتون است، برای این کار به سایت RaspberryPi، قسمت Download میریم و سیستم‌عامل مربوطه رو دانلود می‌کنیم.

مرحله دوم

برای رایت کردن ایمیجی(فایل سیستم عامل) که دانلود کردیم می‌تونیم از نرم افزار‌های زیادی استفاده کنیم که بهترین‌هاشون Etcher , Win32DiskImage هستند.

مرحله سوم

اجرای سیستم‌عامل روی یک نمایشگر، می‌تونیم از طریق اتصال یک lcd به سخت افزار این کار رو انجام بدیم (روش مستقیم). البته برای راحتی کار می‌تونیم SSH بزنیم و بدون اتصال به یک نمایشگر به طور غیرمستقیم از طریق PC به عنوان نمایشگر استفاده کنیم (روش غیرمستقیم).

SSH چیست؟

SSH (اس اس اچ) مخفف عبارت «Secure Shell» (پوسته امن) است. SSH رو می‌تونیم بگیم که، پروتکل طراحی شده برای برقراری اتصال امن میان کاربر (Client) و سرور (Server) هست.

 اجرای روش غیرمستقیم

برای استفاده از این روش نرم افزار Putty رو برای SSH پیشنهاد می‌کنیم و برای اجرای رابط گرافیکی روی نمایشگر PC از TighVNCViewer استفاده می‌کنیم. و برای جابه‌جایی فایل‌ها بین سخت‌افزار و PC نیاز به استفاده از Flash نیست بلکه می‌تونیم از نرم افزار WinSCP استفاده کنیم. خب پس از اینکه تونستیم سخت‌افزار رو به دو روشی که گفتیم (مستقیم و غیرمستقیم) اجرا کنیم. حالا باید در محیط CommandLine سیستم عامل رزبین دستورات زیر رو بنویسیم. تا بتونیم آخرین ورژن کتابخانه opencv رو نصب کنیم.

putty چیست؟

نرم افزاری جهت اتصال به PC و سخت افزار است که از این طریق می‌تونیم به صورت غیرمستقیم با محیط CommandLine سخت افزار ارتباط برقرار کنیم.

TighVNCViewer چیست؟

کاملا تعریقی مشابه با putty داره اما از این نرم افزار برای ارتباط گرافیکی با سخت افزار به صورت غیرمستقیم استفاده میشه.

WinSCP چیست؟

نرم افزاری جهت انتقال دیتا بین سخت افزار و PC استفاده میشه.

خب از اینجا به بعد کارمون میشه نصب نرم افزار های جانبی و اصلی دقیقا مثل یک مهندس کامپیوتر

امیدوارم که این نکته رو هم فراموش نکرده باشید که برای انجام این مراحل به اینترنت نیاز داریم.

مرحله اول نصب OPENCV

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

خب پس اینکه طبق شکل بالا عمل کردیم در نهایت گزینه Finish رو انتخاب می‌کنیم و سیستم رو ریست می‌کنیم (البته این فرایند به صورت خودکار اعمال میشه اما اگر به هر دلیلی نشد دستور sudo reboot رو اجرا می‌کنیم)

دقت کنید که حتما باید این فرایند انجام بگیره (از ما گفتن بود)

حالا برای اینکه ببینیم حافظه باز شده یا نه دستور زیر رو وارد می‌کنیم.

پس از اینکه دستور رو وارد کردیم باید ببینیم که سایز دایرکتوری (dev/root) برابر با سایز حافظه خارجی باشه در غیر اینصورت عملیات باز کردن فضای حافظه به درستی انجام نشده است.

خب حالا چندتا نرم افزاری که برای این پروژه به کارمون نمی‌یاد رو هم حذف می‌کنیم چون فقط حافظه رو اشغال کردند و با پاک کردن این نرم‌افزار‌ها حدودا 1گیگابایت فضا خالی میشه (اگه پاک هم نکردید مشکلی نداره، یه وقت فکر نکنید که حتما باید این کارو انجام بدید).

مرحله دوم نصب OPENCV

ابتدا سیستم رو توسط دستورات زیر update و upgrade می‌کنیم.

سپس ابزار های توسعه که شامل  Cmake هستند رو نصب می‌کنیم.

حالا پس از نصب Cmake نوبت به نصب کتابخانه‌های جانبی opencv است.

حال نوبت به نصب GTK میرسه که با دستور زیر نصب میشه.

برای کاهش هشدارهای GTK از دستور زیر استفاده می‌کنیم.

برای بهینه سازی کتابخانه opencv از دستور زیر استفاده می‌کنیم.

نصب هدر‌های توسعه پایتون 3

حالا نوبت به نصب opencv رسیده برای اینکه نصبش کنیم ابتدا به سایت خود opencv میریم تا آخرین نسخه ای که منتشر شده رو دانلود کنیم. برای دانلود ابتدا با دستور زیر وارد قسمت home دایرکتوری میشیم.

و سپس ورژنی که مدنظرمون هست رو طبق دستورات زیر دانلود می‌کنیم.

(ورژن 4 در این آموزش مدنظر ما است opencv).

دقت کنید که انتخاب اسم فایل کاملا دلخواه است و در اینجا اسم ها رو با نام های opencv.zip و opencv_contrib.zip انتخاب کردیم.

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

با دستور زیر می‌تونیم اسم دایرکتوری‌ها رو به اسم دلخواهی که مدنظرمونه تغییر بدیم.

نکته ای که وجود داره اینکه می‌تونیم اسم دایرکتوری رو تغییر ندیم اما باید مسیر CMake path رو چک کنیم.

حال نوبت به تنظیم متغیر محلی پایتون 3 برای OpenCV4  رسیده که این کار رو با دستورات زیر انجام میدیم.

اگر با متغییر های محلی در پایتون آشنایی ندارید توصیه می‌کنیم اینجا کلیک کنید.

متغیرهای محلی این اجازه رو به ما میدند که ورژن های مختلفی از نرم افزار پایتون و یا … رو به صورت ایزوله روی سیستم اجرا کنیم.

حالا می‌خوایم یک متغیر ایجاد کنیم ولی میتونید هر چقدر که نیاز داشتید برای پروژه های بعدیتون ایجاد کنید ( مسیر همینه)

خب وقتش رسیده که فایل ~/.profile رو آپدیت کنیم. البته همینجوری که نمیشه آپدیت کرد نیاز به یک ادیتور متن مثل Nano یا Vi یا Vim برای این کار از دستور زیر استفاده می‌کنیم.

بعدش خطوط زیر رو اضافه می‌کنیم که به دو روش میشه اینکار رو انجام داد.

روش اول:

روش دوم:

حالا پس از اضافه کردن دستورات به ~/.profile لازمه که فایل رو به صورت Source در بیاریم.

و فایل opencv رو باید داخل یک متغیر محلی بریزیم که با دستور زیر این کارو انجام میدیم.

در نهایت باید به شکل زیر برسیم.

برای انجام محاسبات ریاضی کتابخانه، نیاز به نصب ماژول numpy است که طبق دستور زیر این ماژول رو نصب می‌کنیم.

سپس دستورات زیر رو وارد می‌کنیم.

اگر مراحلی که گفتیم رو به درستی انجام داده باشیم باید به شکل های زیر برسیم.

اگر با همچین کادری مواجه شدیم به این معنیه که می‌تونیم از الگوریتم‌ها استفاده کنیم ( یعنی تا این مرحله کارمون به درستی انجام شده).

اگر عملیاتی که از قبل انجام داده بودیم داخل متغیر محلی که تعریف کرده بودیم (متغیر cv) ریخته شده بود و همینطور اگر interpreter هم به پایتون 3 اشاره داشت. میشه گفت که تا این مرحله کارمون رو به درستی انجام دادیم.

نکته اساسی:

افزایش حجم swap

swap فضایی از هارده که مقدار کمی از سیستم عامل رو (OS) بهش اختصاص میدیم و این فضا خالی نگه داشته میشه تا در صورتی که فضای حافظه ram کم اومد و کار سنگینی انجام می‌داد سیستم هنگ نکنه. برای افزایش حجم swap هم باید دستورات زیر رو وارد کنیم.

حالا نوبت به کامپایل opencv میرسه که این کار رو با دستور زیر انجام میدیم.

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

با این دستور هم opencv رو نصب می‌کنیم.

دقت کنید که پس از نصب، حجم swap رو به 100Mb باید برگردونیم.

حالا نوبت به آدرس دهی opencv به متغیر محلیه که ایجاد کردیم. دقت کنید آدرس رو حتما چک کنید که در چه آدرسی از سیستم نصب میشه چون اگر آدرس رو اشتباه وارد کنیم فرایند نصب به درستی انجام نخواهد شد (لطفا به مسیر نصب دقت کنید).

پس از انجام فرایندی که گفتیم حالا نوبت به تست opencv هست که ببینیم اصلا نصب شده یا نشده؟ برای این کار باید دستورات زیر رو اجرا کنیم.

پس از اجرای دستور بالا، باید محیط IDE پایتون رو باز کنیم و دستورات زیر رو اجرا کنیم.

اگر همه چیز درست باشه باید به خط زیر برسیم.

و در نهایت برای خارج شدن باید دستور زیر رو وارد کنیم.

خب خسته نباشید اینم از نصب آخرین ورژن کتابخانه opencv که به راحتی برای پروژه های خودتون می‌تونید ازش استفاده کنید.

تمامی دستورات رو می‌تونید از اینجا دانلود کنید.[دانلود یافت نشد]

در قسمت بعد یک پروژه پردازش تصویر با این کتابخانه انجام خواهیم داد که شامل موارد زیر هستند

  • اضافه کردن تصویر
  • شناسایی تصویر
  • استفاده از موتورهای شناسایی

با سیسوگ همراه باشید.



انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.  همکاری با سیسوگ

 

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *