विषयसूची:

लाइव ऑब्जेक्ट डिटेक्शन का उपयोग करते हुए ट्रैफ़िक पैटर्न एनालाइज़र: 11 चरण (चित्रों के साथ)
लाइव ऑब्जेक्ट डिटेक्शन का उपयोग करते हुए ट्रैफ़िक पैटर्न एनालाइज़र: 11 चरण (चित्रों के साथ)

वीडियो: लाइव ऑब्जेक्ट डिटेक्शन का उपयोग करते हुए ट्रैफ़िक पैटर्न एनालाइज़र: 11 चरण (चित्रों के साथ)

वीडियो: लाइव ऑब्जेक्ट डिटेक्शन का उपयोग करते हुए ट्रैफ़िक पैटर्न एनालाइज़र: 11 चरण (चित्रों के साथ)
वीडियो: DnB Music Production for Beginners in Logic Pro Compilation 2024, नवंबर
Anonim
Image
Image
लाइव ऑब्जेक्ट डिटेक्शन का उपयोग करके ट्रैफ़िक पैटर्न विश्लेषक
लाइव ऑब्जेक्ट डिटेक्शन का उपयोग करके ट्रैफ़िक पैटर्न विश्लेषक

आज की दुनिया में एक सुरक्षित सड़क के लिए ट्रैफिक लाइट जरूरी है। हालांकि, कई बार, ट्रैफिक लाइट उन स्थितियों में कष्टप्रद हो सकती है जहां कोई व्यक्ति प्रकाश के पास आ रहा है जैसे कि वह लाल हो रहा है। यह समय बर्बाद करता है, खासकर अगर प्रकाश एक वाहन को चौराहे से गुजरने से रोक रहा हो, जब सड़क पर कोई और न हो। मेरा नवाचार एक स्मार्ट ट्रैफिक लाइट है जो प्रत्येक सड़क पर कारों की संख्या की गणना करने के लिए कैमरे से लाइव ऑब्जेक्ट डिटेक्शन का उपयोग करता है। इस परियोजना के लिए मैं जिस हार्डवेयर का उपयोग करूंगा वह रास्पबेरी पाई 3, एक कैमरा मॉड्यूल और स्वयं प्रकाश के लिए विभिन्न इलेक्ट्रॉनिक हार्डवेयर है। रास्पबेरी पाई पर ओपनसीवी का उपयोग करते हुए, एकत्रित जानकारी को कोड के माध्यम से चलाया जाएगा जो जीपीआईओ के माध्यम से एल ई डी को नियंत्रित करता है। इन नंबरों के आधार पर, ट्रैफिक लाइट बदल जाएगी, कारों को सबसे इष्टतम क्रम में चलने देगी। इस मामले में, सबसे अधिक कारों वाली लेन को जाने दिया जाएगा ताकि कम कारों वाली लेन निष्क्रिय रहे, जिससे वायु प्रदूषण कम हो। यह उन स्थितियों को समाप्त कर देगा जब कई कारों को रोका जाता है जबकि चौराहे पर कोई कार नहीं होती है। इससे न केवल सबके लिए समय की बचत होती है, बल्कि पर्यावरण की भी बचत होती है। लोगों को अपने इंजन के निष्क्रिय होने के साथ स्टॉप साइन पर जितना समय रोका जाता है, वायु प्रदूषण की मात्रा बढ़ जाती है, इसलिए एक स्मार्ट ट्रैफिक लाइट बनाकर, मैं प्रकाश पैटर्न को अनुकूलित करने में सक्षम हूं ताकि कारें अपने वाहन के रुकने में कम से कम समय बिता सकें।. अंततः, इस ट्रैफिक लाइट सिस्टम को शहरों, उपनगरों, या यहां तक कि ग्रामीण क्षेत्रों में लागू किया जा सकता है ताकि लोगों के लिए वायु प्रदूषण कम हो सके।

चरण 1: भागों की सूची

सामग्री:

रास्पबेरी पाई 3 मॉडल बी v1.2

रास्पबेरी पाई कैमरा v2.1

5V/1A माइक्रो यूएसबी बिजली की आपूर्ति

रास्पियन जेसी के साथ एचडीएमआई मॉनिटर, कीबोर्ड, माउस एसडी कार्ड

रास्पबेरी पाई GPIO ब्रेकआउट केबल

लाल, पीले, हरे एल ई डी (प्रत्येक रंग के 2)

रास्पबेरी पाई के लिए महिला कनेक्टर (7 अद्वितीय रंग)

मिश्रित 24 गेज तार (अलग-अलग रंग) + गर्मी हटना टयूबिंग

2'x2 'लकड़ी का पैनल या प्लेटफॉर्म

लकड़ी के पेंच

काली सतह (कार्डबोर्ड, फोम बोर्ड, पोस्टर बोर्ड, आदि)

सड़क चिह्नों के लिए सफेद (या काले रंग के अलावा कोई भी रंग) टेप

ब्लैक स्प्रे पेंट (पीवीसी के लिए)

½”पीवीसी पाइप 90 डिग्री कोहनी जोड़ों (2), टी सॉकेट (1), महिला एडाप्टर (2) के साथ

उपकरण

सोल्डरिंग आयरन

थ्री डी प्रिण्टर

विभिन्न ड्रिल बिट्स के साथ ड्रिल

ब्रेड बोर्ड

हीट गन

चरण 2: रास्पबेरी पाई की स्थापना

एसडी कार्ड को रास्पबेरी पाई में लोड करें और बूट करें।

आवश्यक ओपनसीवी पुस्तकालयों को स्थापित करने के लिए इस गाइड का पालन करें। सुनिश्चित करें कि आपके पास इस चरण को करने का समय है, क्योंकि OpenCV लाइब्रेरी को स्थापित करने में कुछ घंटे लग सकते हैं। यहां अपना कैमरा इंस्टॉल और सेट अप करना भी सुनिश्चित करें।

आपको पाइप इंस्टॉल भी करना चाहिए:

पिकामेरा

जीपीओजेरो

आरपीआई.जीपीआईओ

यहाँ अंतिम कोड है:

picamera.array से PiRGBArray आयात करें

Picamera से PiCamera आयात करें

पिकामेरा आयात करें.सरणी

np. के रूप में numpy आयात करें

आयात समय

आयात cv2

RPI. GPIO को GPIO के रूप में आयात करें

आयात समय

GPIO.सेटमोड (GPIO. BCM)

मैं में (23, 25, 16, 21) के लिए:

GPIO.setup(i, GPIO. OUT)

कैम = पाइकैमरा ()

कैम.रिज़ॉल्यूशन=(480, 480)

कैम.फ्रेमरेट=30

कच्चा = PiRGBArray (कैम, आकार = (480, 480))

समय सो जाओ (0.1)

colorLower = np.array([0, १००, १००])

colorUpper = np.array([179, 255, 255])

initvert = 0

इनिथोरिज़ = 0

काउंटर = 0

कैम में फ्रेम के लिए।capture_continuous(कच्चा, प्रारूप = "बीजीआर", use_video_port = सच):

फ्रेम = फ्रेम.सरणी

एचएसवी = cv2.cvtColor (फ्रेम, cv2. COLOR_BGR2HSV)

मास्क = cv2.inRange (hsv, colorLower, colorUpper)

मुखौटा = cv2.blur (मुखौटा, (3, 3))

मुखौटा = cv2.dilate (मुखौटा, कोई नहीं, पुनरावृत्तियों = 5)

मुखौटा = cv2.erode (मुखौटा, कोई नहीं, पुनरावृत्तियों = 1)

मुखौटा = cv2.dilate (मुखौटा, कोई नहीं, पुनरावृत्तियों = 3)

मैं, थ्रेश = cv2. दहलीज (मुखौटा, 127, 255, cv2. THRESH_BINARY)

cnts = cv2.findContours (थ्रेश, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE) [-2]

केंद्र = कोई नहीं

लंबवत = 0

क्षितिज = 0

अगर लेन (सीएनटी)> 0:

सीएनटी में सी के लिए:

(एक्स, वाई), त्रिज्या = cv2.minएनक्लोजिंगसर्कल (सी)

केंद्र = (इंट (एक्स), इंट (वाई))

त्रिज्या = इंट (त्रिज्या)

cv2.circle (फ्रेम, केंद्र, त्रिज्या, (0, 255, 0)), 2)

एक्स = इंट (एक्स)

वाई = इंट (वाई)

अगर 180 <x <300:

अगर वाई> 300:

लंबवत = लंबवत +1

एलिफ वाई <180:

लंबवत = लंबवत +1

अन्यथा:

वर्ट = वर्ट

अगर 180 <y <300:

अगर एक्स> 300:

होरिज़ = क्षितिज +1

एलिफ एक्स <180:

होरिज़ = होरिज़ +1

अन्यथा:

होरिज़ = क्षितिज

अगर लंबवत!= initvert:

प्रिंट करें"ऊर्ध्वाधर लेन में कारें:" + str(vert)

initvert = vert

प्रिंट करें"क्षैतिज लेन में कारें:" + str(horiz)

इनिथोरिज़ = क्षितिज

प्रिंट '----------------------------'

अगर क्षितिज != inithoriz:

प्रिंट करें"ऊर्ध्वाधर लेन में कारें:" + str(vert)

initvert = vert

प्रिंट करें"क्षैतिज लेन में कारें:" + str(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.output(23, GPIO. LOW)

GPIO.output(21, GPIO. LOW)

cv2.imshow ("फ़्रेम", फ़्रेम)

cv2.imshow ("एचएसवी", एचएसवी)

cv2.imshow ("थ्रेश", थ्रेश)

रॉ.ट्रंकेट(0)

अगर cv2.waitKey(1) और 0xFF == ord('q'):

टूटना

cv2.destroyAllWindows ()

जीपीआईओ.क्लीनअप ()

चरण 3: रास्पबेरी पाई और कैमरा माउंट

रास्पबेरी पाई और कैमरा माउंट
रास्पबेरी पाई और कैमरा माउंट
रास्पबेरी पाई और कैमरा माउंट
रास्पबेरी पाई और कैमरा माउंट
रास्पबेरी पाई और कैमरा माउंट
रास्पबेरी पाई और कैमरा माउंट
रास्पबेरी पाई और कैमरा माउंट
रास्पबेरी पाई और कैमरा माउंट

3डी प्रिंट केस और कैमरा माउंट और असेंबल।

चरण 4: ट्रैफिक लाइट असेंबली

ट्रैफिक लाइट असेंबली
ट्रैफिक लाइट असेंबली
ट्रैफिक लाइट असेंबली
ट्रैफिक लाइट असेंबली
ट्रैफिक लाइट असेंबली
ट्रैफिक लाइट असेंबली

ब्रेडबोर्ड के साथ ट्रैफिक लाइट का परीक्षण करें। एल ई डी के प्रत्येक विरोधी सेट एक एनोड साझा करते हैं, और उनमें से सभी एक सामान्य कैथोड (जमीन) साझा करते हैं। कुल 7 इनपुट वायर होने चाहिए: 1 LEDS (6) + 1 ग्राउंड वायर की प्रत्येक जोड़ी के लिए। ट्रैफिक लाइट को मिलाएं और इकट्ठा करें।

चरण 5: वायरिंग (भाग 1)

तारों (भाग 1)
तारों (भाग 1)
तारों (भाग 1)
तारों (भाग 1)
तारों (भाग 1)
तारों (भाग 1)
तारों (भाग 1)
तारों (भाग 1)

महिला हेडर पिन को लगभग 5 फीट तार से मिलाएं। ये वे पक्ष हैं जो बाद में पीवीसी पाइपों के माध्यम से ये तार सांपों से टकराएंगे। रोशनी के विभिन्न सेटों (2 x 3 रंग और 1 ग्राउंड) को अलग करने में सक्षम होना सुनिश्चित करें। इस मामले में, मैंने शार्प के साथ लाल, पीले और नीले तारों के एक और सेट के सिरों को चिह्नित किया ताकि मुझे पता चल सके कि कौन सा है।

चरण 6: पर्यावरण का निर्माण

पर्यावरण का निर्माण
पर्यावरण का निर्माण
पर्यावरण का निर्माण
पर्यावरण का निर्माण
पर्यावरण का निर्माण
पर्यावरण का निर्माण
पर्यावरण का निर्माण
पर्यावरण का निर्माण

पर्यावरण का निर्माण इस तरह 2 फीट चौकोर लकड़ी का फूस बनाएं। स्क्रैप लकड़ी ठीक है क्योंकि इसे ढक दिया जाएगा। एक छेद ड्रिल करें जो आपके एडॉप्टर पर फिट बैठता है। पीवीसी पाइप को जगह में सुरक्षित करने के लिए फूस के किनारों के माध्यम से शिकंजा ड्रिल करें। नीचे लकड़ी के फूस से मेल खाने के लिए ब्लैक फोम बोर्ड को काटें। एक छेद ड्रिल करें जो पीवीसी पाइप के चारों ओर फिट हो। विपरीत कोने पर दोहराएं। कुछ सफेद टेप के साथ सड़कों को चिह्नित करें।

चरण 7: पीवीसी फ्रेम को अंतिम रूप देना

पीवीसी फ्रेम को अंतिम रूप देना
पीवीसी फ्रेम को अंतिम रूप देना
पीवीसी फ्रेम को अंतिम रूप देना
पीवीसी फ्रेम को अंतिम रूप देना
पीवीसी फ्रेम को अंतिम रूप देना
पीवीसी फ्रेम को अंतिम रूप देना

शीर्ष पाइप पर, एक छेद ड्रिल करें जो तारों के एक बंडल को फिट कर सके। जब तक आप पाइप के अंदर तक पहुंच सकते हैं तब तक एक मोटा छेद ठीक है। एक परीक्षण फिट के लिए पीवीसी पाइप और कोहनी के जोड़ों के माध्यम से तारों को सांप करें। एक बार सब कुछ फाइनल हो जाने के बाद, मुख्य फ्रेम के लुक को साफ करने के लिए पीवीसी को कुछ ब्लैक स्प्रे पेंट से पेंट करें। टी-संयुक्त फिट करने के लिए पीवीसी पाइपों में से एक में एक छोटा सा अंतर काटें। ट्रैफिक लाइट से नीचे लटकने के लिए इस टी-संयुक्त में एक पीवीसी पाइप जोड़ें। व्यास मुख्य फ्रेम (1/2 ) के समान हो सकता है, हालांकि यदि आप एक पतले पाइप का उपयोग करते हैं, तो सुनिश्चित करें कि 7 तार आपस में टकरा सकते हैं। ट्रैफिक लाइट से लटकने के लिए इस पाइप के माध्यम से एक छेद ड्रिल करें।

चरण 8: वायरिंग (भाग 2)

तारों (भाग 2)
तारों (भाग 2)
तारों (भाग 2)
तारों (भाग 2)
तारों (भाग 2)
तारों (भाग 2)

जैसा कि पहले परीक्षण किया गया था, सब कुछ फिर से तार करें। सभी कनेक्शन किए जाने की पुष्टि करने के लिए ब्रेडबोर्ड के साथ ट्रैफिक लाइट और वायरिंग को दोबारा जांचें। ट्रैफिक लाइट को टी-जॉइंट आर्म से आने वाले तारों से मिलाएं। किसी भी शॉर्ट्स को रोकने और क्लीनर लुक के लिए उजागर तारों को बिजली के टेप से लपेटें।

चरण 9: समाप्त

ख़त्म होना!
ख़त्म होना!
ख़त्म होना!
ख़त्म होना!
ख़त्म होना!
ख़त्म होना!
ख़त्म होना!
ख़त्म होना!

कोड चलाने के लिए, अपने स्रोत को ~/.profile और cd के रूप में अपने प्रोजेक्ट स्थान पर सेट करना सुनिश्चित करें।

चरण 10: अतिरिक्त (तस्वीरें)

सिफारिश की: