جدول المحتويات:
- الخطوة 1: قائمة الأجزاء
- الخطوة 2: إعداد Raspberry Pi
- الخطوة 3: Raspberry Pi وجبل الكاميرا
- الخطوة 4: تجميع إشارات المرور
- الخطوة 5: الأسلاك (الجزء 1)
- الخطوة السادسة: بناء البيئة
- الخطوة 7: الانتهاء من إطار PVC
- الخطوة 8: الأسلاك (الجزء 2)
- الخطوة 9: انتهى
- الخطوة 10: إضافات (صور)
فيديو: محلل أنماط حركة المرور باستخدام اكتشاف الكائن الحي: 11 خطوة (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
في عالم اليوم ، تعد إشارات المرور ضرورية لطريق آمن. ومع ذلك ، في كثير من الأحيان ، يمكن أن تكون إشارات المرور مزعجة في المواقف التي يقترب فيها شخص ما من الضوء تمامًا كما يتحول إلى اللون الأحمر. هذا يضيع الوقت ، خاصةً إذا كان الضوء يمنع مركبة واحدة من المرور عبر التقاطع عندما لا يكون هناك أي شخص آخر على الطريق. ابتكاري هو إشارة مرور ذكية تستخدم الكشف المباشر عن الأشياء من الكاميرا لحساب عدد السيارات على كل طريق. الأجهزة التي سأستخدمها لهذا المشروع هي Raspberry Pi 3 ووحدة الكاميرا وأجهزة إلكترونية متنوعة للضوء نفسه. باستخدام OpenCV على Raspberry Pi ، سيتم تشغيل المعلومات التي تم جمعها من خلال التعليمات البرمجية التي تتحكم في مصابيح LED عبر GPIO. اعتمادًا على هذه الأرقام ، ستتغير إشارة المرور ، مما يسمح بمرور السيارات بأفضل ترتيب. في هذه الحالة ، سيتم السماح للممر الذي يحتوي على معظم السيارات بالمرور بحيث يكون المسار الذي يحتوي على عدد أقل من السيارات متوقفًا عن العمل ، مما يقلل من تلوث الهواء. سيؤدي ذلك إلى القضاء على المواقف التي يتم فيها إيقاف العديد من السيارات بينما لا توجد سيارات على الطريق المتقاطع. لا يوفر هذا الوقت للجميع فحسب ، بل إنه يحفظ البيئة أيضًا. مقدار الوقت الذي يتم فيه إيقاف الأشخاص عند علامة توقف مع توقف محركهم عن العمل يزيد من كمية تلوث الهواء ، لذلك من خلال إنشاء إشارة مرور ذكية ، يمكنني تحسين أنماط الإضاءة بحيث تقضي السيارات أقل وقت ممكن مع توقف سيارتها. في النهاية ، يمكن تنفيذ نظام إشارات المرور هذا في المدن أو الضواحي أو حتى المناطق الريفية ليكون أكثر كفاءة للناس من شأنه تقليل تلوث الهواء.
الخطوة 1: قائمة الأجزاء
المواد:
Raspberry Pi 3 موديل B v1.2
كاميرا Raspberry Pi v2.1
5V / 1A مايكرو USB امدادات الطاقة
شاشة HDMI ولوحة مفاتيح وماوس وبطاقة SD مع Raspbian Jessie
كابل اختراق Raspberry Pi GPIO
المصابيح الحمراء ، الصفراء ، الخضراء (2 من كل لون)
موصلات أنثى لـ Raspberry Pi (7 ألوان فريدة)
سلك قياس 24 متنوع (ألوان مختلفة) + أنبوب انكماش حراري
لوحة أو منصة خشبية 2’x2’
مسامير خشبية
سطح أسود (كرتون ، لوح فوم ، لوح ملصقات ، إلخ.)
شريط أبيض (أو أي لون غير الأسود) لعلامات الطريق
طلاء بخاخ أسود (للبلاستيك)
½”أنبوب PVC مع وصلات كوع 90 درجة (2) ، مقبس T (1) ، محول أنثى (2)
أدوات
لحام حديد
طابعة 3D
حفر مع لقم الثقب المختلفة
اللوح
مسدس حرارة
الخطوة 2: إعداد Raspberry Pi
قم بتحميل بطاقة SD في Raspberry Pi وقم بالتمهيد.
اتبع هذا الدليل لتثبيت مكتبات OpenCV المطلوبة. تأكد من أن لديك الوقت للقيام بهذه الخطوة ، لأن تثبيت مكتبة OpenCV قد يستغرق بضع ساعات. تأكد أيضًا من تثبيت الكاميرا وإعدادها هنا.
يجب عليك أيضًا تثبيت التثبيت:
بيكاميرا
gpiozero
RPi. GPIO
ها هو الكود النهائي:
من picamera.array استيراد PiRGBArray
من picamera استيراد PiCamera
استيراد picamera.array
استيراد numpy كـ np
وقت الاستيراد
استيراد السيرة الذاتية 2
استيراد RPi. GPIO كـ GPIO
وقت الاستيراد
GPIO.setmode (GPIO. BCM)
بالنسبة إلى i in (23 ، 25 ، 16 ، 21):
GPIO.setup (i ، GPIO. OUT)
cam = PiCamera ()
حدبة الدقة = (480 ، 480)
cam.framerate = 30
خام = PiRGBArray (حدبة ، الحجم = (480 ، 480))
time.sleep (0.1) الوقت.
colorLower = np.array ([0، 100، 100])
colorUpper = np.array ([179، 255، 255])
initvert = 0
الأفق = 0
العداد = 0
للإطار في cam.capture_continuous (خام ، تنسيق = "bgr" ، use_video_port = True):
الإطار = الإطار
hsv = cv2.cvtColor (frame، cv2. COLOR_BGR2HSV)
قناع = cv2.inRange (hsv ، colorLower ، colorUpper)
قناع = cv2.blur (قناع ، (3 ، 3))
mask = cv2.dilate (قناع ، بلا ، تكرارات = 5)
mask = cv2.erode (قناع ، بلا ، تكرارات = 1)
mask = cv2.dilate (قناع ، بلا ، تكرارات = 3)
أنا ، عتبة = cv2.threshold (قناع ، 127 ، 255 ، cv2. THRESH_BINARY)
cnts = cv2.findContours (عتبة ، cv2. RETR_TREE ، cv2. CHAIN_APPROX_SIMPLE) [- 2]
المركز = لا شيء
فير = 0
الأفق = 0
إذا كان len (cnts)> 0:
لـ c في cnts:
(x، y)، radius = cv2.minEnclosingCircle (c)
المركز = (int (x) ، int (y))
نصف القطر = int (radius)
cv2.circle (إطار ، مركز ، نصف قطر ، (0 ، 255 ، 0) ، 2)
س = كثافة العمليات (س)
y = int (y)
إذا كان 180 <x <300:
إذا كانت y> 300:
فير = فير +1
أليف ص <180:
فير = فير +1
آخر:
فير = فير
إذا كان 180 <ص <300:
إذا كانت x> 300:
الأفق = الأفق +1
إليف × <180:
الأفق = الأفق +1
آخر:
الأفق = الأفق
إذا كان vert! = initvert:
طباعة "سيارات في الممر الرأسي:" + str (vert)
initvert = vert
طباعة "سيارات في الممر الأفقي:" + str (أفقي)
الأفق = الأفق
مطبعة '----------------------------'
إذا كان الأفق!
طباعة "سيارات في الممر الرأسي:" + str (vert)
initvert = vert
طباعة "سيارات في الممر الأفقي:" + str (أفقي)
الأفق = الأفق
مطبعة '----------------------------'
إذا كان Vert <horiz:
GPIO.output (23، GPIO. HIGH)
GPIO.output (21، GPIO. HIGH)
GPIO.output (16، GPIO. LOW)
GPIO.output (25، GPIO. LOW)
إذا كان الأفق <فير:
GPIO.output (16، GPIO. HIGH)
GPIO.output (25، GPIO. HIGH)
خرج GPIO (23، GPIO. LOW)
GPIO.output (21، GPIO. LOW)
cv2.imshow ("الإطار" ، الإطار)
cv2.imshow ("HSV"، hsv)
cv2.imshow ("Thresh" ، عتبة)
raw.truncate (0)
إذا كان cv2.waitKey (1) & 0xFF == ord ('q'):
استراحة
cv2.destroyAllWindows ()
GPIO.cleanup ()
الخطوة 3: Raspberry Pi وجبل الكاميرا
قم بطباعة العلبة ثلاثية الأبعاد وتثبيت الكاميرا وتجميعها.
الخطوة 4: تجميع إشارات المرور
اختبر إشارة المرور بلوحة توصيل. تشترك كل مجموعة متعارضة من مصابيح LED في أنود ، وكلها تشترك في كاثود مشترك (أرضي). يجب أن يكون هناك ما مجموعه 7 أسلاك إدخال: 1 لكل زوج من مصابيح LED (6) + 1 سلك أرضي. لحام وتجميع إشارات المرور.
الخطوة 5: الأسلاك (الجزء 1)
قم بلحام دبابيس الرأس الأنثوية بحوالي 5 أقدام من السلك. هذه هي الجوانب التي ستلتقطها هذه الأسلاك عبر أنابيب PVC لاحقًا. تأكد من قدرتك على التمييز بين مجموعات الأضواء المختلفة (2 × 3 ألوان وأرضية واحدة). في هذه الحالة ، قمت بتمييز نهايات مجموعة أخرى من الأسلاك الحمراء والصفراء والزرقاء باستخدام شارب حتى أعرف أيهما.
الخطوة السادسة: بناء البيئة
بناء البيئة اصنع لوح خشبي بحجم 2 قدم مربع مثل هذا. الخشب الخردة جيد لأنه سيتم تغطيته. اصنع ثقبًا يناسب المحول. حفر براغي من خلال جوانب البليت لتثبيت الأنابيب البلاستيكية في مكانها. قطع لوح الرغوة السوداء لتتناسب مع لوح الخشب تحتها. اصنع ثقبًا يناسب الأنابيب البلاستيكية. كرر في الزاوية المقابلة. ضع علامة على الطرق ببعض الشريط الأبيض.
الخطوة 7: الانتهاء من إطار PVC
في الأنبوب العلوي ، قم بحفر حفرة يمكن أن تلائم مجموعة من الأسلاك. لا بأس من وجود ثقب خشن طالما يمكنك الوصول إلى الأجزاء الداخلية من الأنابيب. ثعبان الأسلاك من خلال الأنابيب البلاستيكية ومفاصل الكوع لاختبار ملاءمة. بمجرد الانتهاء من كل شيء ، قم بطلاء PVC ببعض طلاء الرش الأسود لتنظيف مظهر الإطار الرئيسي. اقطع فجوة صغيرة في أحد الأنابيب البلاستيكية لتناسب مفصل T. أضف أنبوب PVC إلى هذا المفصل على شكل حرف T لتتدلى منه إشارة المرور. يمكن أن يكون القطر هو نفسه الإطار الرئيسي (1/2 بوصة) ، على الرغم من أنك إذا كنت تستخدم أنبوبًا أرق ، فتأكد من أن الأسلاك السبعة يمكن أن تتسلل من خلاله.
الخطوة 8: الأسلاك (الجزء 2)
أعد توصيل كل شيء كما تم اختباره مسبقًا. تحقق مرة أخرى من إشارة المرور والأسلاك باستخدام لوحة توصيل للتأكد من إجراء جميع التوصيلات. قم بتوصيل إشارة المرور بالأسلاك القادمة من خلال ذراع المفصل T. لف الأسلاك المكشوفة بشريط كهربائي لمنع أي شورت ولمظهر أنظف.
الخطوة 9: انتهى
لتشغيل الكود ، تأكد من تعيين المصدر الخاص بك كـ ~ /.profile و cd إلى موقع مشروعك.
الخطوة 10: إضافات (صور)
موصى به:
الأمن السيبراني المادي لمواقف السيارات الذكية والتحكم في حركة المرور: 6 خطوات
الأمن السيبراني المادي لمواقف السيارات الذكية والتحكم في حركة المرور: ينمو الإنترنت بمليارات الأجهزة بما في ذلك السيارات وأجهزة الاستشعار وأجهزة الكمبيوتر والخوادم والثلاجات والأجهزة المحمولة وغير ذلك الكثير بوتيرة غير مسبوقة. يقدم هذا مخاطر ونقاط ضعف متعددة في البنية التحتية والعملية و
جهاز التحكم الآلي في حركة المرور: 20 خطوة
جهاز التحكم الآلي في حركة المرور: تحذير: قبل البدء في عملية البناء ، تأكد من ارتداء معدات الوقاية الشخصية المناسبة واتباع لوائح السلامة الصادرة عن OSHA. ارتدِ معدات السلامة مثل النظارات الواقية وسدادات الأذن والقفازات المضادة للصدمات. الأجزاء المطلوبة: 1 & quot؛ × 1 ومثل ؛ أنبوب مربع - 5
تتبع الكائن القائم على اكتشاف اللون: 10 خطوات
تتبع الكائن المعتمد على اكتشاف الألوان: قصة قمت بهذا المشروع لتعلم معالجة الصور باستخدام Raspberry PI والسيرة الذاتية المفتوحة. لجعل هذا المشروع أكثر إثارة للاهتمام ، استخدمت محركين من نوع SG90 Servo وكاميرا مثبتة عليه. يستخدم أحد المحركات للتحرك أفقيًا بينما يستخدم المحرك الثاني للتحرك رأسيًا
أنماط LED (أنماط إضاءة مختلفة): 3 خطوات
أنماط LED (أنماط إضاءة مختلفة): الفكرة: مشروعي هو نمط ألوان LED. يحتوي المشروع على 6 مصابيح LED تعمل جميعها وتتواصل مع Arduino. هناك 4 أنماط مختلفة سيتم تشغيلها في حلقة. عندما ينتهي نمط ، أخذ آخر
اكتشاف الكائن W / Dragonboard 410c أو 820c باستخدام OpenCV و Tensorflow: 4 خطوات
اكتشاف الكائن W / Dragonboard 410c أو 820c باستخدام OpenCV و Tensorflow: توضح هذه التعليمات كيفية تثبيت OpenCV و Tensorflow وأطر التعلم الآلي لـ Python 3.5 لتشغيل تطبيق Object Detection