كيفية تثبيت OpenCV على Raspberry Pi؟

نحتاج إلى إجراء عمليات مختلفة على صورة ما لاستخراج معلومات مفيدة منها. لذلك ، تسمى عملية تطبيق خوارزميات مختلفة على صورة ما للحصول على المخرجات المطلوبة معالجة الصورة . في بعض الأحيان ، تكون الصورة عند الإدخال غير واضحة ونريد الحصول على البيانات منها. فمثلا. عندما يأتي اللصوص لانتزاع الدراجة أو السيارة ، فإنهم يأتون في الغالب على الدراجة ويتم تثبيت الكاميرات العلوية على الطرق التي تلتقط لقطات للحادث. نحتاج إلى معرفة رقم تسجيل تلك السيارة التي يأتي عليها اللصوص ويمكن القيام بذلك بسهولة باستخدام بعض خوارزميات معالجة الصور. لإجراء معالجة الصور على صور معينة ، نحتاج إلى تثبيت بعض المكتبات على الأجهزة التي نستخدمها. من بين تلك المكتبات أهمها OpenCV. يمكن تثبيت OpenCV على أجهزة الكمبيوتر والمعالجات الدقيقة أيضًا. Raspberry Pi هو معالج دقيق ويستخدم في مشاريع إلكترونية مختلفة. بعد تثبيت نظام التشغيل على Raspberry Pi ، يمكننا إجراء العديد من مهام معالجة الصور عليه. يعد تثبيت OpenCV على Raspberry Pi مهمة طويلة وشاقة. في هذه المقالة ، سوف نتعلم كيفية تثبيت OpenCV على Raspberry Pi لإجراء عمليات مختلفة لمعالجة الصور عليه.



كشف الوجه مع OpenCV المثبت على Raspberry Pi

كيفية إعداد Raspberry Pi وتكوين OpenCV عليه؟

الآن ، دعنا ننتقل إلى إعداد Pi وتنفيذ العمليات المذكورة أدناه خطوة بخطوة لتثبيت OpenCV عليه. يعد تثبيت OpenCV على Pi عملية طويلة ويستغرق إكمالها حوالي 4 ساعات ، لذا إذا كان لديك وقت قصير لا تبدأ التثبيت ، فراجع هذا البرنامج التعليمي عندما تكون متفرغًا. جنبا إلى جنب مع هذا Pi يتم تسخينه عند تشغيله على يتم إجراء العمليات عليها لفترة طويلة ووقت طويل ، لذا احتفظ بها في مكان بارد أثناء العمل عليها.



الخطوة 1: المكونات المستخدمة

  • Raspberry Pi 3B + Kit
  • تلفزيون مع منفذ HDMI
  • كابل HDMI
  • ماوس كمبيوتر سلكي

الخطوة 2: اختيار نموذج Raspberry Pi

تتوفر عدة نماذج من التوت باي في السوق. باستثناء Raspberry pi zero ، يمكن تفضيل أي نموذج. هذا لأن إعداد شبكة في Pi صفر هو عمل شاق للغاية. يمكن شراء أحدث الموديلات مثل 3A + أو 3B + أو 4. يعد Raspberry Pi 3 الجديد الأداة الأسرع والأكثر انتشارًا التي أصدرتها مؤسسة Raspberry Pi Foundation حتى الآن. لذلك ، في هذا المشروع ، سوف نستخدم Raspberry Pi 3B +.



Raspberry Pi 3B +



الخطوة 3: توصيل الأجهزة الطرفية

بعد اختيار Raspberry Pi ، سنقوم بتوصيل لوحة المفاتيح والماوس بـ Raspberry Pi. بعد توصيلهم ، استخدم كابل HDMI لتوصيل Pi بالتلفزيون. بعد إجراء هذه الاتصالات ، نحن مستعدون للمضي قدمًا.

الخطوة 4: اختيار نظام التشغيل

أولاً ، سنحتاج إلى بطاقة SD بنظام تشغيل مناسب. عند اختيار نظام التشغيل ، توجد في الوقت الحاضر بدائل مختلفة ، من Raspbian 'التقليدية' إلى أطر عمل الوسائط المخصصة ، وحتى Windows 10 IoT. ليست هناك حاجة للكثير من التطبيقات ، وبالتالي ، يجب أن نترك وحدة المعالجة المركزية (CPU) وذاكرة الوصول العشوائي (RAM) بقدر ما نستطيع لتطبيق دفق الوسائط. إحدى المشكلات هي أن Arch Linux موصى به للأشخاص الذين لديهم قدر كبير من المعرفة بلينكس. إنهم في المقدمة ونحن ملتزمون بمواجهة المشكلات عند تقديم تطبيقات ومكتبات الجهات الخارجية. وبالتالي ، إذا كان هذا هو أول إنشاء لمسرح منزلي ، فنحن نقترح الانتقاء راسببيان لايت . إنها مدفوعة بسطر الأوامر ، ويمكن بدون الكثير من الامتداد المصممة للاستمرار في العمل في وضع 'مقطوعة الرأس' ، أي يمكن الوصول إليها عن بُعد بالكامل عبر النظام دون الحاجة إلى وحدة تحكم أو شاشة.

راسببيان لايت



الخطوة 5: تأكد من أن Raspberry Pi محدث

احتفظ بمصادر Pi الخاصة بك محدثة وإلا ، فإن البرنامج القديم سوف يسبب بعض المشاكل. قم بتمكين عارض حوسبة الشبكة الافتراضية (VNC) على Pi الخاص بك ، ثم قم بتوصيل Raspberry Pi الخاص بك مع عارض VNC. يتوفر الرابط أدناه لتنزيل VNC ثم توصيله بـ Pi.

عارض VNC

الآن ، افتح Terminal وقم بتشغيل الأمر التالي:

sudo apt-get update

ثم،

sudo apt-get ترقية

سيتم تثبيت العديد من الحزم وإذا طلب ذلك اضغط و وثم أدخل لتثبيتها بشكل صحيح.

الخطوة 6: تسجيل الدخول إلى Raspberry Pi

اسم المستخدم الافتراضي لـ Raspberry Pi هو بي وكلمة المرور الافتراضية هي توت العليق. هذه هي تفاصيل تسجيل الدخول الافتراضية وعند تسجيل الدخول لأول مرة استخدم هذه التفاصيل لتسجيل الدخول إلى pi. يمكنك تغيير هذه التفاصيل أيضًا وقتما تشاء.

تسجيل الدخول إلى Raspberry Pi

الخطوة 7: إنشاء مساحة كافية على Raspbian لـ OpenCV

تستحوذ OpenCV على ذاكرة كبيرة ، لذا نحتاج إلى توسيع نظام الملفات وتخصيص كل المساحة لبطاقة الذاكرة. سننتقل إلى موجه الأوامر الخاص بـ Raspberry ونكتب الأمر التالي:

sudo raspi-config

ستظهر نافذة وستبدو كالتالي:

أداة التكوين

الآن ، سوف نضغط على خيارات متقدمة وهناك سنجد خيار 'توسيع نظام الملفات'. حدد هذا الخيار.

قم بتوسيع نظام الملفات

سنضغط على أدخل زر ثم اضغط على إنهاء زر. في هذه المرحلة ، يحتاج Raspberry Pi إلى إعادة التشغيل حتى تدخل التغييرات حيز التنفيذ. اكتب الأمر التالي لإعادة تشغيله:

sudo إعادة التشغيل

بعد إعادة التشغيل ، سنتحقق مما إذا كان نظام الملفات لدينا قد تم توسيعه وأن كل المساحة مضمنة في بطاقة SD أم لا. بالتنفيذ مدافع-ح الأمر يمكننا التحقق من توسيع القرص الخاص بنا:

قد يستخدم الشخص الذي يستخدم بطاقة micro SD سعة 8 جيجا بايت 50٪ من المساحة المتاحة ، لذا يجب حذفها محرك ولفرام و ليبر أوفيس يمكن أن يفرغ حوالي 1 جيجابايت من المساحة. (تذكر أن هذه الخطوة اختيارية).

سودوملائم-احصل على تطهيرولفرام-محرك سودوملائم-احصل على تطهيرlibreoffice* سودوملائم-احصل على نظيف سودوملائم-احصل على نقل تلقائي

الخطوة 8: تثبيت التبعيات

قبل البحث عن التبعيات ، نحتاج إلى تحديث وترقية الحزم الحالية المثبتة على Pi:

sudo apt-get update

ثم،

sudo apt-get ترقية

سنقوم الآن بتثبيت بعض أدوات التطوير التي ستساعدنا في تكوين بناء OpenCV:

سودوملائم-احصل على تثبيتبناء-أساسىسميكpkg-التكوين

لإجراء العمليات المختلفة على الصور ، نحتاج إلى تحميل تنسيقات الصور المتعددة من القرص الصلب. تتضمن هذه التنسيقات JPEG و PNG وما إلى ذلك. لتحميل تنسيقات الصور هذه ، سنقوم بتثبيت بعض حزم الإدخال / الإخراج:

سودوملائم-احصل علىتثبيتlibjpeg-ديفlibtiff5-ديفليبجاسبر-ديفlibpng12-ديف

إلى جانب حزم الإدخال / الإخراج هذه للصور ، سنقوم أيضًا بتثبيت حزم إدخال / إخراج الفيديو. بعد تثبيت حزم الفيديو هذه ، سنتمكن من تحميل تنسيقات ملفات الفيديو المختلفة.

سودوملائم-احصل على تثبيتlibavcodec-ديفlibavformat-ديفlibswscale-ديفlibv4l-ديف سودوملائم-احصل على تثبيتlibxvidcore-ديفlibx264-ديف

مكتبة OpenCV ترافق وحدة فرعية تسمى هايغي والتي تُستخدم لعرض الصور على شاشتنا وتصنيع واجهات المستخدم الرسومية الأساسية. قبل تجميع هذه الوحدة الفرعية ، نحتاج إلى تثبيت مكتبة تطوير GTK:

سودوملائم-احصل على تثبيتlibgtk2.0-ديفlibgtk-3-ديف

يمكن إجراء العديد من عمليات المصفوفة على صورة عن طريق التحقق من حجم الصورة ثم قراءة قيم البكسل. يمكننا أيضًا تحويل قيم البكسل هذه إلى شكل ثنائي ثم تعديل تلك الأرقام الثنائية لإعادة إنشاء صورة. في raspberry pi ، لدينا بعض القيود عند تقديم المدخلات ، وبالتالي فإن هذه المكتبات مهمة وتحتاج إلى التثبيت. لذلك ، يمكن تحسين هذه النتائج عن طريق تثبيت بعض التبعيات الإضافية:

سودوملائم-احصل على تثبيتليباتلاس-يتمركز-ديفغفورتران

سيعمل بعض الأشخاص على Python 2.7 وسيعمل البعض الآخر على Python 3. يجب تثبيت ملفات رأس Python 2.7 و Python 3 لتجميع OpenCV جنبًا إلى جنب مع روابط Python:

سودوملائم-احصل على تثبيتبيثون 2.7-ديفبيثون 3-ديف

في الإصدار الجديد من Raspbian Python 3 مثبت بالفعل وقد تظهر رسالة في Lx Terminal تفيد بأن 'Python 3 هو بالفعل أحدث إصدار' . هذه الخطوة مهمة لأننا قد نواجه خطأ فيما يتعلق بملف الرأس المسمى باسم Python.h أثناء تشغيل الأمر يصنع لتجميع OpenCV.

الخطوة 9: تنزيل كود مصدر OpenCV

عند الانتهاء من تثبيت التبعيات ، سنبحث عن مجلد أرشيف OpenCV الإصدار 3.3.0 من الدليل الرسمي لـ OpenCV.

قرص مضغوط ~ wget -أو أوبينكف.zip https://جيثب.مع/إتسيز/أوبينكف/أرشيف/3.3.0.zip فك الضغطأوبينكف.zip

نقوم بتثبيت الحزمة الكاملة من OpenCV لذلك نحتاج إلى تضمينها opencv_contrib كذلك. قم بتنزيله من الموقع الرسمي ثم قم بفك ضغطه.

wget -أو opencv_contrib.zip https://جيثب.مع/إتسيز/opencv_contrib/أرشيف/3.3.0.zip فك الضغطopencv_contrib.zip

أثناء تنزيل هذه الدلائل ، ضع في اعتبارك شيئًا واحدًا هو إصدار OpenCV و opencv_contrib يجب أن تكون هي نفسها ، أي يجب أن تكون 3.3.0 وإلا ستكون هناك أخطاء في التجميع أثناء التثبيت.

الخطوة 10: بايثون 2.7 أو بايثون 3؟

يعد Python 2.7 من حيث الأداء أفضل من Python 3 ولكن في OpenCV ، لا يوجد فرق كبير. نحن بحاجة للتثبيت نقطة على Raspberry قبل تجميع OpenCV. إنه نظام إدارة حزم يُستخدم لتثبيت حزم البرامج المستخدمة في Python. قد تكون هذه الحزم موجودة في أحدث إصدارات raspbian افتراضيًا ولكن من الأفضل التحقق منها باستخدام الأوامر التالية.

wgethttps://التمهيد.pypa.أنا/احصل على-نقطة.السنة التحضيرية سودوبيثوناحصل على-نقطة.السنة التحضيرية سودوبيثون 3احصل على-نقطة.السنة التحضيرية

يوصى بشدة بعد تثبيت حزمتين وتحتاجان إلى التثبيت أثناء العمل على OpenCV. الأول هو virtualenv والثاني virtualenvwrapper. لا يمكننا استيراد OpenCV مباشرة في Python ، لذلك سننشئ بيئة افتراضية ثم نعمل في تلك البيئة. البيئة الافتراضية هي أداة استثنائية تُستخدم للحفاظ على الظروف التي تتطلبها المشاريع المختلفة في أماكن منفصلة عن طريق إنشاء بيئات Python منفصلة لكل منها.

سودونقطةتثبيتVirtualenvVirtualenvwrapper سودوجمهورية مقدونيا -الترددات اللاسلكية ~/.مخبأ/نقطة

بعد تثبيت هذه الحزم ، نحتاج إلى تحديث ~/.الملف الشخصي file وهو الملف المخفي في الدليل الرئيسي لدينا ليشمل الأسطر التالية في نهايته. اكتب الأمر التالي للدخول إلى الدليل:

نانو~/.الملف الشخصي

عندما يتم فتح الدليل ، قم بالتمرير لأسفل ويتضمن الأسطر التالية:

# virtualenv و virtualenvwrapper تصديرWORKON_HOME=الصفحة الرئيسية $/.virtualenvs تصديرVIRTUALENVWRAPPER_PYTHON=/usr/صباحا/بيثون 3 مصدر /usr/محلي/صباحا/Virtualenvwrapper.sh

بعد تضمين هذه الأسطر ، اضغط على ctrl + x ، واحفظها بالضغط و والخروج.

الدليل الرئيسي

في أي وقت نقوم بتشغيل المحطة الطرفية ونسجل الدخول إلى Pi ، سيتم تحميل ملف النقطة هذا تلقائيًا لنا. نظرًا لأننا قمنا بتسجيل الدخول بالفعل ، فسنكتب يدويًا المصدر ~ /. Profile لتحميل محتويات الملف.

إنشاء بيئة افتراضية للبايثون: نحتاج إلى إنشاء بيئة افتراضية باستخدام python 2.7 و python 3.

مكفيرتولينفالسيرة الذاتية -ص بيثون 2

سيخلق بيئة تسمى السيرة الذاتية على Python 2.7. يجب على أي شخص يريد إنشاء بيئة على Python 3 كتابة الأمر المذكور أدناه:

مكفيرتولينفالسيرة الذاتية -ص بيثون 3

التحقق من وجودنا في البيئة الافتراضية المسماة 'cv': عندما نعيد تشغيل pi ، لن نبقى في بيئة افتراضية ونحتاج إلى كتابة أمرين مذكورين أدناه للانتقال إلى وضع البيئة الافتراضية.

مصدر ~/.الملف الشخصي يعمل علىالسيرة الذاتية

توضح الصورة أدناه أننا لسنا في وضع البيئة الافتراضية:

LxTerminal

لذلك ، من خلال كتابة الأمرين المذكورين أعلاه ، سنتمكن من الوصول إلى بيئتنا الافتراضية. إذا أردنا مغادرة البيئة الافتراضية ، فسنكتب إلغاء التنشيط:

العمل في بيئة افتراضية

تثبيت NumPy على Raspbian: التبعية الوحيدة التي نحتاجها لتثبيت OpenCV على Raspberry هي Numpy. اكتب الأمر المذكور أدناه لتثبيت Numpy على Raspberry Pi. يستغرق التثبيت حوالي 10 دقائق:

نقطةتثبيتحبيبي

الخطوة 11: ترجمة وتثبيت OpenCV

سنقوم بتجميع وتثبيت OpenCV في البيئة الافتراضية ، لذا تأكد من أنك تعمل في بيئة السيرة الذاتية الافتراضية. إذا لم نكن في البيئة الافتراضية ، فسيفشل OpenCV في تجميعها. الآن ، قم بتغيير الدليل إلى الدليل الرئيسي ، الدليل الفرعي فتح السيرة الذاتية 3.3 ثم قم بعمل دليل البناء. بعد إنشاء دليل البناء ، الصق آخر خمسة أسطر في ملف CMake الدليل. سيتحقق من وجود مسارات معينة في المكتبات ، وإصدارات بيثون ، وما إلى ذلك.

قرص مضغوط ~/أوبينكف-3.3.0/ مكدير بناء قرص مضغوط بناء سميك -د CMAKE_BUILD_TYPE=إطلاق سراح  -د CMAKE_INSTALL_PREFIX=/usr/محلي  -د INSTALL_PYTHON_EXAMPLES=على  -د OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/الوحدات  -د نماذج_إنشاءات=على ..

بالنسبة لأولئك الذين يستخدمون Python 2.7 ، سيتعين عليهم التمرير إلى إخراج CMake وسيبحثون عن قسم Python 2.7 ومعرفة ما إذا تم تكوين Numpy ومسارات الحزم بشكل صحيح. بالنسبة لأولئك الذين يستخدمون Python 3 ، سوف يتحققون من قسم python 3 أسفل قسم Python 2 مباشرةً:

التحقق من قسم Python 2.7

الآن ، نحن مستعدون أخيرًا لتجميع OpenCV. اكتب الأمر make وسيبدأ عملية الترجمة. سوف يستغرق تجميع ما يقرب من أربع ساعات ، ومن المفضل أن تبدأ التجميع قبل أن تنام في الليل بحيث عندما تستيقظ في الصباح يتم تجميع OpenCV. كتابة أمر واحد 'make' سيؤدي إلى تجميع باستخدام نواة واحدة فقط. على الرغم من أنها تستغرق وقتًا طويلاً ، إلا أن احتمال حدوث أخطاء فيها أقل. قد يؤدي استخدام الأمر make -j4 و make -j2 إلى ارتفاع درجة حرارة Raspberry Pi وقد يؤدي أيضًا إلى حدوث أخطاء في التجميع:

يصنع

اكتمل التجميع

سنقوم بتثبيت OpenCV 3 على Raspberry Pi باستخدام الأمر التالي. سيؤدي تشغيل هذا الأمر إلى نسخ الملفات المعنية إلى مواقعها:

sudo جعل التثبيت

سيكتمل التثبيت من خلال تشغيل هذا الأمر الأخير:

سودوldconfig

يتم ترك خطوتين الآن عندما نستخدم Python 2.7 أو Python 3.

الخطوة 12: الانتهاء من التثبيت

ارجع إلى الدليل الرئيسي عن طريق الكتابة مؤتمر نزع السلاح ~.

بايثون 3: سنقوم بربط روابط OpenCV في السيرة الذاتية الخاصة بنا في دليل python 3 لأننا قمنا بتجميع روابط OpenCV و python لـ python 3.

قرص مضغوط ~/.virtualenvs/السيرة الذاتية/ليب/بيثون 3.5/موقع-الحزم/ ln -س /usr/محلي/ليب/بيثون 3.5/موقع-الحزم/cv2.وبالتالي cv2.وبالتالي

هذا هو!. الآن ، قمنا بتثبيت OpenCV على Raspberry Pi. سوف نتحقق الآن من ذلك في البيئة الافتراضية.

الخطوة 13: اختبار OpenCV

افتح LxTerminal واكتب ملف مصدر الأمر متبوعًا بامتداد يعمل على أمر. نظرًا لأننا دخلنا في وضع البيئة الافتراضية ، فسوف نستورد روابط OpenCV عن طريق كتابة python ثم استيراد cv2. إذا لم يكن هناك رسالة خطأ فهذا يعني أنه تم استيراده بنجاح.

مصدر ~/.الملف الشخصي يعمل علىالسيرة الذاتية بيثون >>استيرادcv2

بعد ذلك ، سوف نتحقق من إصدار OpenCV الخاص بنا عن طريق كتابة الأمر التالي:

cv2.__الإصدار__

اختبارات]

لقد قمنا بتثبيت OpenCV على Raspberry 3B +. الآن يمكننا إجراء العديد من عمليات معالجة الصور في Python مثل Digit Detection ، التعرف على الوجوه ، إلخ.