فهرست مطالب:

تجزیه و تحلیل الگوی ترافیک با استفاده از تشخیص شیء زنده: 11 مرحله (همراه با تصاویر)
تجزیه و تحلیل الگوی ترافیک با استفاده از تشخیص شیء زنده: 11 مرحله (همراه با تصاویر)

تصویری: تجزیه و تحلیل الگوی ترافیک با استفاده از تشخیص شیء زنده: 11 مرحله (همراه با تصاویر)

تصویری: تجزیه و تحلیل الگوی ترافیک با استفاده از تشخیص شیء زنده: 11 مرحله (همراه با تصاویر)
تصویری: افزایش سرعت مطالعه : چگونه با یک تکنیک ساده ده برابر سریعتر حفظ کنیم؟ 2024, جولای
Anonim
Image
Image
تجزیه و تحلیل الگوی ترافیک با استفاده از تشخیص شیء زنده
تجزیه و تحلیل الگوی ترافیک با استفاده از تشخیص شیء زنده

در دنیای امروز ، چراغ راهنمایی برای یک جاده ایمن ضروری است. با این حال ، در بسیاری از مواقع ، چراغ های راهنمایی می توانند در شرایطی که شخصی به چراغ نزدیک قرمز می شود آزاردهنده باشد. این باعث اتلاف وقت می شود ، به ویژه اگر نور مانع از عبور یک وسیله نقلیه از تقاطع شود در حالی که هیچ کس دیگری در جاده وجود ندارد. نوآوری من یک چراغ راهنمایی هوشمند است که از تشخیص اجسام زنده از طریق دوربین برای شمارش تعداد اتومبیل در هر جاده استفاده می کند. سخت افزاری که من برای این پروژه استفاده خواهم کرد رزبری پای 3 ، ماژول دوربین و سخت افزارهای الکترونیکی مختلف برای خود نور است. با استفاده از OpenCV در Raspberry Pi ، اطلاعات جمع آوری شده از طریق کدی که LED ها را از طریق GPIO کنترل می کند ، اجرا می شود. بسته به این اعداد ، چراغ راهنمایی تغییر می کند و اجازه می دهد ماشینها در بهترین حالت مرتب شوند. در این صورت ، خطی که بیشترین اتومبیل را داشته باشد ، از آن عبور می کند تا خطی که خودروهای کمتری دارد در حالت خالی قرار بگیرد و آلودگی هوا را کاهش دهد. با این کار بسیاری از خودروها متوقف می شوند در حالی که هیچ خودرویی در جاده متقاطع وجود ندارد. این نه تنها باعث صرفه جویی در وقت برای همه می شود ، بلکه باعث صرفه جویی در محیط زیست نیز می شود. مدت زمان توقف افراد در علامت توقف با موتور خالی ، میزان آلودگی هوا را افزایش می دهد ، بنابراین با ایجاد چراغ راهنمایی هوشمند ، می توانم الگوهای نور را بهینه کنم تا خودروها کمترین زمان ممکن را با خودروی خود متوقف کنند. به در نهایت ، این سیستم چراغ راهنمایی می تواند در شهرها ، حومه شهرها یا حتی مناطق روستایی اجرا شود تا برای مردم کارآمدتر باشد و آلودگی هوا را کاهش دهد.

مرحله 1: لیست قطعات

مواد:

رزبری پای 3 مدل B v1.2

رزبری پای دوربین v2.1

منبع تغذیه میکرو USB 5V/1A

مانیتور HDMI ، صفحه کلید ، کارت SD موس با Raspbian Jessie

کابل شکست رزبری پای GPIO

LED های قرمز ، زرد ، سبز (از هر رنگ 2 عدد)

اتصالات زن برای رزبری پای (7 رنگ منحصر به فرد)

انواع سیم 24 گیج (رنگهای مختلف) + لوله های حرارتی کوچک کننده

پانل یا سکوی چوبی 2x2 اینچ

پیچ های چوبی

سطح سیاه (مقوا ، تخته فوم ، تخته پوستر و غیره)

نوار سفید (یا هر رنگی غیر از سیاه) برای خط کشی جاده ها

رنگ اسپری سیاه (مخصوص PVC)

لوله PVC ½”با اتصالات آرنج 90 درجه (2) ، سوکت T (1) ، آداپتور زن (2)

ابزارها

آهن لحیم کاری

پرینتر سه بعدی

با مته های مختلف مته کنید

تخته نان

سلاح گرم

مرحله 2: راه اندازی رزبری پای

کارت SD را در Raspberry Pi بارگذاری کرده و بوت کنید.

برای نصب کتابخانه های مورد نیاز OpenCV ، این راهنما را دنبال کنید. مطمئن شوید که وقت دارید این مرحله را انجام دهید ، زیرا نصب کتابخانه OpenCV می تواند چند ساعت طول بکشد. مطمئن شوید که دوربین خود را نیز در اینجا نصب و راه اندازی کنید.

همچنین باید pip را نصب کنید:

picamera

gpiozero

RPi. GPIO

در اینجا کد نهایی آمده است:

از picamera.array واردات PiRGBArray

از واردات picamera PiCamera

وارد کردن picamera.array

وارد کردن numpy به عنوان np

زمان واردات

واردات cv2

RPi. GPIO را به عنوان GPIO وارد کنید

زمان واردات

GPIO.setmode (GPIO. BCM)

برای i در (23 ، 25 ، 16 ، 21):

GPIO.setup (i، GPIO. OUT)

cam = PiCamera ()

cam.resolution = (480 ، 480)

cam.framerate = 30

raw = PiRGBArray (cam، size = (480، 480))

زمان خواب (0.1)

colorLower = np.array ([0 ، 100 ، 100])

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

initvert = 0

inithoriz = 0

شمارنده = 0

برای قاب در cam.capture_continuous (خام ، قالب = "bgr" ، use_video_port = True):

frame = frame.array

hsv = cv2.cvtColor (قاب ، cv2. COLOR_BGR2HSV)

mask = cv2.inRange (hsv، colorLower، colorUpper)

mask = cv2.blur (ماسک ، (3 ، 3))

mask = cv2.dilate (ماسک ، هیچکدام ، تکرارها = 5)

mask = cv2.erode (ماسک ، هیچکدام ، تکرارها = 1)

mask = cv2.dilate (ماسک ، هیچکدام ، تکرارها = 3)

من ، thresh = cv2.threshold (ماسک ، 127 ، 255 ، cv2. THRESH_BINARY)

cnts = cv2.findContours (thresh، cv2. RETR_TREE ، cv2. CHAIN_APPROX_SIMPLE) [-2]

مرکز = هیچکدام

vert = 0

افق = 0

اگر len (cnts)> 0:

برای c در cnts:

(x ، y) ، شعاع = cv2.minEnclosing دایره (c)

مرکز = (int (x) ، int (y))

شعاع = int (شعاع)

cv2.circle (قاب ، مرکز ، شعاع ، (0 ، 255 ، 0) ، 2)

x = int (x)

y = int (y)

اگر 180 <x <300:

اگر y> 300:

vert = vert +1

elif y <180:

vert = vert +1

دیگری:

vert = vert

اگر 180 <y <300:

اگر x> 300:

افق = افق +1

elif x <180:

افق = افق +1

دیگری:

افق = افق

if vert! = initvert:

چاپ "اتومبیل در خط عمودی:" + خیابان (راست)

initvert = vert

چاپ "ماشین در خط افقی:" + خیابان (افق)

inithoriz = افق

چاپ '----------------------------'

if horiz! = inithoriz:

چاپ "اتومبیل در خط عمودی:" + خیابان (راست)

initvert = vert

چاپ "ماشین در خط افقی:" + خیابان (افق)

inithoriz = افق

چاپ '----------------------------'

if vert <horiz:

GPIO.output (23 ، GPIO. HIGH)

GPIO.output (21 ، GPIO. HIGH)

GPIO.output (16 ، GPIO. LOW)

GPIO.output (25 ، GPIO. LOW)

if horiz <vert:

GPIO.output (16 ، GPIO. HIGH)

GPIO.output (25 ، GPIO. HIGH)

GPIO.output (23 ، GPIO. LOW)

GPIO.output (21 ، GPIO. LOW)

cv2.imshow ("قاب" ، قاب)

cv2.imshow ("HSV" ، hsv)

cv2.imshow ("Thresh" ، thresh)

raw.truncate (0)

اگر cv2.waitKey (1) & 0xFF == ord ('q'):

زنگ تفريح

cv2.destroyAllWindows ()

GPIO.cleanup ()

مرحله 3: Raspberry Pi و Camera Mount

Raspberry Pi و Camera Mount
Raspberry Pi و Camera Mount
Raspberry Pi و Camera Mount
Raspberry Pi و Camera Mount
Raspberry Pi و Camera Mount
Raspberry Pi و Camera Mount
Raspberry Pi و Camera Mount
Raspberry Pi و Camera Mount

قاب سه بعدی و دوربین را سوار کرده و مونتاژ کنید.

مرحله 4: مونتاژ چراغ راهنمایی

مونتاژ چراغ راهنمایی
مونتاژ چراغ راهنمایی
مونتاژ چراغ راهنمایی
مونتاژ چراغ راهنمایی
مونتاژ چراغ راهنمایی
مونتاژ چراغ راهنمایی

چراغ راهنمایی را با تخته نان تست کنید. هر مجموعه LED متضاد یک آند را به اشتراک می گذارد و همه آنها یک کاتد مشترک (زمین) دارند. در مجموع باید 7 سیم ورودی وجود داشته باشد: 1 عدد برای هر جفت LEDS (6) + 1 سیم زمین. چراغ های راهنمایی را لحیم و مونتاژ کنید.

مرحله 5: سیم کشی (قسمت 1)

سیم کشی (قسمت 1)
سیم کشی (قسمت 1)
سیم کشی (قسمت 1)
سیم کشی (قسمت 1)
سیم کشی (قسمت 1)
سیم کشی (قسمت 1)
سیم کشی (قسمت 1)
سیم کشی (قسمت 1)

پین هدر زن را به سیم 5 فوت متصل کنید. اینها طرفهایی هستند که این سیمها بعداً از طریق لوله های PVC عبور می کنند. مطمئن شوید که می توانید مجموعه های مختلف چراغ (2 3 3 رنگ و 1 زمین) را تشخیص دهید. در این مورد ، من انتهای مجموعه دیگری از سیمهای قرمز ، زرد و آبی را با شارپی مشخص کردم تا بدانم کدام است.

مرحله ششم: ایجاد محیط زیست

ساختن محیط زیست
ساختن محیط زیست
ساختن محیط زیست
ساختن محیط زیست
ساختن محیط زیست
ساختن محیط زیست
ساختن محیط زیست
ساختن محیط زیست

ساختن محیط ، یک پالت چوبی 2 فوت مربعی مانند این بسازید. چوب قراضه خوب است زیرا پوشانده می شود. سوراخی درست کنید که مناسب آداپتور شما باشد. سوراخ هایی را در طرفین پالت سوراخ کنید تا لوله PVC در جای خود محکم شود. تخته فوم سیاه را برش دهید تا با پالت چوبی زیر آن مطابقت داشته باشد. یک سوراخ متناسب با لوله PVC ایجاد کنید. این کار را در گوشه مقابل تکرار کنید. جاده ها را با نوار سفید علامت گذاری کنید.

مرحله 7: نهایی کردن قاب PVC

نهایی کردن قاب PVC
نهایی کردن قاب PVC
نهایی کردن قاب PVC
نهایی کردن قاب PVC
نهایی کردن قاب PVC
نهایی کردن قاب PVC

در لوله بالا ، سوراخی را ایجاد کنید که بتواند یک دسته سیم را در خود جای دهد. یک سوراخ خشن تا زمانی که بتوانید به داخل لوله ها دسترسی داشته باشید خوب است. سیم ها را از طریق لوله های PVC و مفاصل آرنج برای آزمایش مناسب بپیچید. وقتی همه چیز نهایی شد ، PVC را با مقداری رنگ اسپری سیاه رنگ کنید تا ظاهر قاب اصلی تمیز شود. شکاف کوچکی را در یکی از لوله های PVC برش دهید تا به مفصل T برسد. یک لوله PVC به این اتصال t اضافه کنید تا چراغ راهنما از آن آویزان شود. قطر آن می تواند برابر با قاب اصلی (1/2 اینچ) باشد ، اگرچه از لوله نازک تری استفاده می کنید ، مطمئن شوید که 7 سیم می توانند مار بکشند. سوراخی را از طریق این لوله ایجاد کنید تا چراغ راهنمایی از آن آویزان شود.

مرحله 8: سیم کشی (قسمت 2)

سیم کشی (قسمت 2)
سیم کشی (قسمت 2)
سیم کشی (قسمت 2)
سیم کشی (قسمت 2)
سیم کشی (قسمت 2)
سیم کشی (قسمت 2)

همه چیز را همانطور که قبلاً آزمایش شده است دوباره سیم کشی کنید. چراغ راهنمایی و سیم کشی را با یک تخته نان دوبار بررسی کنید تا تمام اتصالات برقرار شود. چراغ راهنمایی را به سیم هایی که از طریق بازوی T-T می آیند بچسبانید. سیم های در معرض دید را با نوار برقی بپیچید تا از ایجاد هرگونه شورت و ظاهر تمیزتر جلوگیری شود.

مرحله نهم: تمام شد

تمام شده!
تمام شده!
تمام شده!
تمام شده!
تمام شده!
تمام شده!
تمام شده!
تمام شده!

برای اجرای کد ، حتماً منبع خود را به عنوان pr/.profile و cd در محل پروژه خود تنظیم کنید.

مرحله 10: موارد اضافی (عکس)

توصیه شده: