بناء كاميرا مصيدة باستخدام Raspberry Pi و Python و OpenCV و TensorFlow





أنا أؤمن بشدة بالتعلم من خلال الممارسة ، من خلال خلق شيء جديد. ولكي تصنع شيئًا ما ، عليك أن تجعل عملك ممتعًا.



سأبدأ قصتي حول مشروعي الجديد من خلال الكشف عن الأسباب التي دفعتني لمحاولة إنشاء كاميرا مصيدة تعتمد على Raspberry Pi.



أعيش في لندن وترتاد حديقتي الحياة البرية المحلية. يحدث هذا كثيرًا لدرجة أنني ، بستاني متعطش ، بدأت أشعر بالضيق تدريجياً. الأواني المكسورة ، والنباتات المحفورة من الأرض ، والفواكه والخضروات التي تؤكل ...



رأيت في حديقتي ثعالب صغيرة (إنها جميلة فقط) ، ثعالب كبيرة ، قطط (ليست لي) ، طيور. وذات مرة زارني طائر الباشق.



ميسان



آخر الذي سيتم الزحف إلى حديقتي تحت جنح الظلام؟





إن رؤية الحيوان في هذه الصورة ليس بالأمر



السهل.ما هي الأسباب الأخرى التي أحتاجها لإنشاء كاميرا مصيدة تعتمد على Raspberry Pi و Python و TensorFlow وما إلى ذلك؟ ويجب أن تكون كاميرتي جيدة جدًا.



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



إنها فكرة سليمة ، لكنها لن تكون نصف مثيرة للاهتمام.



وحدات الكاميرا لـ Raspberry Pi



لقد بدأت بالبحث عن أنواع الكاميرات التي يمكن توصيلها بجهاز كمبيوتر Raspberry Pi أحادي اللوحة.



أشهر هذه الكاميرات هي تلك التي تتصل مباشرة بـ Raspberry Pi باستخدام موصل MIPI. ميزة هذا النوع من الكاميرات هي أن البيانات يتم نقلها بسرعة كبيرة بين الكاميرا واللوحة. هناك أيضًا واجهة برمجة تطبيقات سهلة الاستخدام للعمل مع الكاميرا. 



لقد جربت واجهة برمجة التطبيقات هذه واكتشفت أن لديها العديد من الوظائف المفيدة التي تتيح لك تسجيل الفيديو والتقاط الصور أثناء التسجيل. هذا يسمح لي باكتشاف الحركة وتسجيل الفيديو في وقت واحد باستخدام أدوات بسيطة ومباشرة.



هناك ثلاثة أنواع من وحدات الكاميرا لـ Raspberry Pi... يوجد أدناه نسخة مختصرة من الجدول مع خصائص هذه الوحدات.

وحدة الكاميرا v1.0 وحدة الكاميرا v2.0 كاميرا عالية الجودة
السعر الصافي 25 دولارًا 25 دولارًا 50 دولارًا
الحجم حوالي 25 × 24 × 9 ملم 38 × 38 × 18.4 مم (باستثناء البصريات)
الوزن 3 غ 3 غ
دقة الصورة 5 م 8 م 12.3 م
أوضاع الفيديو 1080p30 و 720p60 و 640x480p60 / 90 1080p30 و 720p60 و 640x480p60 / 90 1080p30 و 720p60 و 640x480p60 / 90
تكامل لينكس سائق V4L2 سائق V4L2 سائق V4L2
C-API OpenMAX IL وغيرها OpenMAX IL وغيرها
المستشعر OmniVision OV5647 سوني IMX219 سوني IMX477
دقة جهاز الاستشعار 2592 × 1944 بكسل 3280 × 2464 بكسل 4056 × 3040 بكسل
حجم منطقة عمل الاستشعار 3.76 × 2.74 ملم 3.68 × 2.76 ملم (4.6 ملم قطري) 6.287 × 4.712 ملم (7.9 ملم قطري)


يسرد هذا الجدول وحدات الكاميرا الرسمية ، ولكن يمكنك العثور على كاميرات الطرف الثالث التي ستعمل مع Raspberry Pi. تُستخدم وحدات الكاميرا لمعالجة البيانات من مستشعر GPU Raspberry Pi.



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



تسجيل الفيديو في ظروف الإضاءة المنخفضة



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





صورة من كاميرا Raspberry Pi تم التقاطها خلال النهار في ظروف الإضاءة السيئة



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



Sony Starvis هو مستشعر كاميرا رائع



تمتلك Sony عائلة خاصة من مستشعرات الكاميرا المستخدمة بشكل أساسي للمراقبة بالفيديو. هذه شركة Sony Starvis. هذه المستشعرات عبارة عن أجهزة متقدمة للغاية قادرة على تقديم صور ملونة عالية الجودة في ظروف الإضاءة المنخفضة عند 0.001 لوكس. لوكس (lx) هي وحدة لقياس الإضاءة.



من أجل توضيح الأمر ، سأقدم بعض الأمثلة. يكاد يكون الظلام التام هو 0.0001 لوكس. وهي: لا يوجد ضوء الشمس ، ولا يوجد ضوء للقمر والنجوم ، والسماء ملبدة بالغيوم ، ولا توجد مصادر إضاءة اصطناعية. لست على علم بأي مستشعرات كاميرا قادرة على التصوير في الظلام الدامس.



ولكن إذا كانت السماء صافية ، فإن النجوم تعطي إضاءة تبلغ 0.002 لوكس. على الرغم من أنه لا يزال مظلماً للغاية في هذه الظروف ، فإن مستشعر Sony Starvis قادر على التصوير بنصف هذا الضوء. بالنسبة لي ، إنه أمر مذهل.



هذه صفحة من ويكيبيديا حيث يمكن العثور على مزيد من الأمثلة.



آمل أن أكون قادرًا على نقل فكرة أن Sony Starvis هو المستشعر المثالي لكاميرا المصيدة.



العيب الرئيسي لهذا المستشعر هو عدم وجود كاميرات لـ Raspberry Pi حيث يتم استخدامه. ولكن إذا صادفت كاميرا USB أو كاميرا IP مزودة بمثل هذا المستشعر ، فسوف أتوصل إلى شيء ما وأوصله بـ Raspberry Pi.



في الواقع ، وجدت مثل هذه الكاميرا.



لم أرغب في الاستثمار كثيرًا في هذا المشروع ، لذلك اشتريت كاميرا IP مناسبة من Sony Starvis على Aliexpress. كلفني هذا الشراء ، إذا كنت أتذكر بشكل صحيح ، 20 جنيهًا إسترلينيًا.



مقارنة كاميرا لـ Raspberry Pi وهذه الكاميرا تشبه المقارنة بين النهار والليل. وأنا لا أبالغ على الإطلاق. ابحث عن نفسك.





كاميرا بمستشعر Sony Starvis IMX307 ، تلتقط الصور في غرفة مظلمة





كاميرا Raspberry Pi v2 - نفس الغرفة ، لكن نقطة أفضلية مختلفة



بالنسبة لكاميرا المصيدة وكاميرا CCTV ، من المهم جدًا أن تكون قادرًا على إجراء تسجيلات عالية الجودة في ظروف الإضاءة السيئة.



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



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



استخدام كاميرا USB (أو حتى كاميرا IP) يفتح إمكانيات جديدة تمامًا. بالإضافة إلى ذلك ، إذا كان لديك أيضًا كاميرا عادية لـ Raspberry Pi ، فيمكنك استخدامها في بعض تجارب الذكاء الاصطناعي.



تثبيت وتكوين كاميرا لـ Raspberry Pi



لنهتم بتوصيل وحدة الكاميرا الإصدار 2 باللوحة. إنه في الواقع بسيط للغاية.





وحدة الكاميرا v2



تحتوي الكاميرا على كابل أزرق وأبيض. يجب توصيله بموصل CSI الخاص باللوحة. يجب أن يكون الجانب الأزرق من الشريط باتجاه الجزء الخلفي من اللوحة.



لقد استخدمت جسم كاميرا مطبوعة ثلاثية الأبعاد. لقد وجدت الملفات المقابلة على Thingiverse. ولكن يمكن العثور على حافظة مناسبة وغير مكلفة للغاية ، على سبيل المثال ، في أمازون.





مبيت الكاميرا



حان الوقت الآن لتشغيل الكاميرا.



بعد تشغيل Raspberry Pi ، تحتاج إلى فتح نافذة طرفية.





Terminal



ثم تحتاج إلى تنفيذ الأمر التالي:



$ sudo apt update


وبعد ذلك - هذا:



$ sudo apt full upgrade


هذا للتأكد من أن اللوحة تستخدم أحدث إصدار من Raspbian وأحدث التصحيحات والتحديثات.



بعد ذلك ، تحتاج إلى تشغيل الأمر التالي في الجهاز:



sudo raspi-config




العمل مع raspi-config



هنا نحن مهتمون بالقسمInterfacing Options>P1 Camera. ثم تحتاج إلى تحديد أمرFinishوإعادة تشغيل Raspberry Pi.



التقاط الصور باستخدام راسبستيل



يجب أن تكون الكاميرا الآن جاهزة للاستخدام. دعونا نتحقق من ذلك raspistill. افتح الجهاز مرة أخرى وأدخل الأمر التالي هناك:



raspistill -v -o test.jpg


هذه هي الصورة الرائعة التي التقطتها كاميرتي.





لقطة كاميرا لـ Raspberry Pi



تسجيل الفيديو بخشونة



الصور جيدة ، لكن تسجيل الفيديو أفضل بكثير. هنا سوف تأتي لمساعدتنا raspivid:



raspivid -o vid.h264


يتيح لك هذا الأمر تسجيل مقطع فيديو لمدة 5 ثوانٍ.



إذا كنت بحاجة إلى تصوير مقطع فيديو أطول ، فسيحتاج هذا الأمر إلى تمرير معلمة -tتشير إلى مدة الفيديو بالمللي ثانية. على سبيل المثال ، يسمح لك الأمر التالي بتسجيل مقطع فيديو مدته 30 ثانية:



raspivid -o vid.h264 -t 30000


إعداد البث



الآن يأتي الجزء الممتع. لكي ترى ما "تراه" الكاميرا ، يمكنك استخدام الأمر التالي:



raspivid -o - -t 0 -n | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' :demux=h264


يقوم بإنشاء دفق RTSP يمكنك الاتصال به من الشبكة المحلية.



النتيجة



الآن بعد أن اكتشفت الكاميرات الخاصة بـ Raspberry Pi ، يمكنني تطوير المشروع بشكل أكبر ، أي تثبيت TensorFlow و Open CV و Python على Raspberry Pi 4 والبدء في كتابة التعليمات البرمجية. أخطط للتحدث عن هذا في المواد التالية. إذا كنت مهتمًا ، فإليك قناتي على YouTube ، حيث يمكنك العثور على مقاطع فيديو متعلقة بهذا المشروع.



هل عملت مع كاميرات Raspberry Pi؟










All Articles