Obsah:

Analyzátor vzorov premávky pomocou detekcie živých objektov: 11 krokov (s obrázkami)
Analyzátor vzorov premávky pomocou detekcie živých objektov: 11 krokov (s obrázkami)

Video: Analyzátor vzorov premávky pomocou detekcie živých objektov: 11 krokov (s obrázkami)

Video: Analyzátor vzorov premávky pomocou detekcie živých objektov: 11 krokov (s obrázkami)
Video: Заработай $ 850 в день на автопилоте бесплатно (WORLDWIDE) Зар... 2024, Júl
Anonim
Image
Image
Analyzátor vzorov premávky pomocou detekcie živých objektov
Analyzátor vzorov premávky pomocou detekcie živých objektov

V dnešnom svete sú semafory nevyhnutné pre bezpečnú cestu. Semafor však mnohokrát môže byť nepríjemný v situáciách, keď sa niekto blíži k svetlu práve vtedy, keď sa zmení na červenú. Je to strata času, najmä ak svetlo bráni jednému vozidlu prejsť cez križovatku, keď na ceste nie je nikto iný. Mojou inováciou je inteligentný semafor, ktorý pomocou živej detekcie objektu z kamery počíta počet áut na každej ceste. Hardvér, ktorý použijem pre tento projekt, je Raspberry Pi 3, kamerový modul a rôzny elektronický hardvér pre samotné svetlo. Použitím OpenCV na Raspberry Pi budú zhromaždené informácie prevádzané prostredníctvom kódu, ktorý ovláda LED diódy prostredníctvom GPIO. V závislosti od týchto čísel sa zmení semafor a nechá autá prechádzať v najoptimálnejšom poradí. V tomto prípade by bol prejazdný pruh s väčším počtom automobilov, aby bol pruh s menším počtom automobilov voľnobežný, čím by sa znížilo znečistenie ovzdušia. Tým by sa odstránili situácie, keď je mnoho áut zastavených, zatiaľ čo na križovatke nie sú žiadne autá. Šetrí to nielen čas, ale aj životné prostredie. Doba, počas ktorej sú ľudia zastavovaní na značke zastavenia pri voľnobehu, zvyšuje množstvo znečistenia ovzdušia, takže vytvorením inteligentného semaforu dokážem optimalizovať svetelné vzorce tak, aby autá strávili čo najmenej času so zastaveným vozidlom.. V konečnom dôsledku by tento semaforový systém mohol byť implementovaný v mestách, na predmestiach alebo dokonca na vidieku, aby bol pre ľudí efektívnejší a znížil by znečistenie ovzdušia.

Krok 1: Zoznam dielov

Materiály:

Raspberry Pi 3 Model B v1.2

Kamera Raspberry Pi v2.1

Napájanie micro USB 5V/1A

HDMI monitor, klávesnica, myš SD karta s Raspbian Jessie

Prerušovací kábel Raspberry Pi GPIO

Červené, žlté, zelené LED diódy (2 z každej farby)

Samičie konektory pre Raspberry Pi (7 jedinečných farieb)

Rozmanitý drôt s rozmerom 24 (rôzne farby) + zmršťovacia bužírka

Drevený panel alebo platforma 2’x2 ‘

Skrutky do dreva

Čierny povrch (lepenka, penová doska, plagátová tabuľa atď.)

Biela (alebo iná farba ako čierna) páska na dopravné značenie

Čierna farba v spreji (na PVC)

½”rúrka z PVC s 90 -stupňovými kolenovými spojmi (2), zásuvka T (1), zásuvkový adaptér (2)

Nástroje

Spájkovačka

3D tlačiareň

Vŕtajte rôznymi vrtákmi

Breadboard

Tepelná pištoľ

Krok 2: Nastavenie Raspberry Pi

Vložte kartu SD do Raspberry Pi a spustite.

Podľa tejto príručky nainštalujte požadované knižnice OpenCV. Vykonajte tento krok, pretože inštalácia knižnice OpenCV môže trvať niekoľko hodín. Nezabudnite tu tiež nainštalovať a nastaviť kameru.

Mali by ste tiež nainštalovať pip:

pikamera

gpiozero

RPi. GPIO

Tu je konečný kód:

z picamera.array importujte PiRGBArray

z importu picamery PiCamera

import picamera.array

import numpy ako np

čas importu

import cv2

importujte RPi. GPIO ako GPIO

čas importu

GPIO.setmode (GPIO. BCM)

pre i v (23, 25, 16, 21):

GPIO.setup (i, GPIO. OUT)

kamera = PiCamera ()

cam.resolution = (480, 480)

cam.framerate = 30

raw = PiRGBArray (kamera, veľkosť = (480, 480))

time.sleep (0,1)

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

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

initvert = 0

inithoriz = 0

počítadlo = 0

pre rámec v cam.capture_continuous (raw, format = "bgr", use_video_port = True):

frame = frame.array

hsv = cv2.cvtColor (rám, cv2. COLOR_BGR2HSV)

maska = cv2.inRange (hsv, colorLower, colorUpper)

maska = cv2.blur (maska, (3, 3))

mask = cv2.dilate (maska, žiadna, iterácie = 5)

mask = cv2.erode (maska, žiadna, iterácie = 1)

mask = cv2.dilate (maska, žiadna, iterácie = 3)

ja, mlátiť = cv2.prah (maska, 127, 255, cv2. THRESH_BINARY)

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

stred = žiadny

vert = 0

horizont = 0

ak len (cnts)> 0:

pre c v cnts:

(x, y), polomer = cv2.minEnclosingCircle (c)

stred = (int (x), int (y))

radius = int (radius)

cv2.circle (rám, stred, polomer, (0, 255, 0), 2)

x = int (x)

y = int (y)

ak 180 <x <300:

ak y> 300:

vert = vert +1

elif y <180:

vert = vert +1

inak:

vert = vert

ak 180 <y <300:

ak x> 300:

horizont = horizont +1

elif x <180:

horizont = horizont +1

inak:

horizont = horizont

ak vert! = initvert:

vytlačiť „Autá vo zvislom pruhu:“+ str (vert)

initvert = vert

vytlačiť „Autá v horizontálnom pruhu:“+ str (horizont)

inithoriz = horizont

vytlačiť '----------------------------'

if horizon! = inithoriz:

vytlačiť „Autá vo zvislom pruhu:“+ str (vert)

initvert = vert

vytlačiť „Autá v horizontálnom pruhu:“+ str (horizont)

inithoriz = horizont

vytlačiť '----------------------------'

ak vert <horizont:

GPIO.output (23, GPIO. HIGH)

GPIO.output (21, GPIO. HIGH)

GPIO.output (16, GPIO. LOW)

GPIO.output (25, GPIO. LOW)

ak horizont <vert:

GPIO.output (16, GPIO. HIGH)

GPIO.output (25, GPIO. HIGH)

GPIO.output (23, GPIO. LOW)

GPIO.output (21, GPIO. LOW)

cv2.imshow („Rám“, rám)

cv2.imshow („HSV“, hsv)

cv2.imshow („Mlátiť“, mlátiť)

raw.truncate (0)

ak cv2.waitKey (1) & 0xFF == ord ('q'):

prestávka

cv2.destroyAllWindows ()

GPIO.cleanup ()

Krok 3: Raspberry Pi a držiak fotoaparátu

Raspberry Pi a držiak na fotoaparát
Raspberry Pi a držiak na fotoaparát
Raspberry Pi a držiak na fotoaparát
Raspberry Pi a držiak na fotoaparát
Raspberry Pi a držiak na fotoaparát
Raspberry Pi a držiak na fotoaparát
Raspberry Pi a držiak na fotoaparát
Raspberry Pi a držiak na fotoaparát

3D tlačte puzdro a držiak na fotoaparát a zostavte ich.

Krok 4: Zostavenie semaforu

Zostava semaforov
Zostava semaforov
Zostava semaforov
Zostava semaforov
Zostava semaforov
Zostava semaforov

Vyskúšajte si semafor na doske. Každá protiľahlá sada LED diód zdieľa anódu a všetky zdieľajú spoločnú katódu (uzemnenie). Vstupných vodičov by malo byť celkom 7: 1 pre každý pár LED diód (6) + 1 uzemňovací vodič. Spájkujte a zostavte semafory.

Krok 5: Zapojenie (časť 1)

Elektroinštalácia (časť 1)
Elektroinštalácia (časť 1)
Elektroinštalácia (časť 1)
Elektroinštalácia (časť 1)
Elektroinštalácia (časť 1)
Elektroinštalácia (časť 1)
Elektroinštalácia (časť 1)
Elektroinštalácia (časť 1)

Spájkujte kolíkové kolíky samice na asi 5 stôp drôtu. Toto sú strany, ktorými sa tieto drôty budú neskôr hadom hadicami PVC hadiť. Uistite sa, že dokážete rozlíšiť rôzne sady svetiel (2 x 3 farby a 1 uzemnenie). V tomto prípade som ostrím označil konce ďalšej sady červených, žltých a modrých drôtov, aby som vedel, ktorý je ktorý.

Krok 6: Budovanie životného prostredia

Budovanie životného prostredia
Budovanie životného prostredia
Budovanie životného prostredia
Budovanie životného prostredia
Budovanie životného prostredia
Budovanie životného prostredia
Budovanie životného prostredia
Budovanie životného prostredia

Budovanie životného prostredia Vytvorte 2 -palcovú drevenú paletu takto. Šrot je v poriadku, pretože bude zakrytý. Vyvŕtajte otvor, ktorý sa presne hodí k vášmu adaptéru. Vyvŕtajte skrutky po stranách palety, aby ste zaistili PVC rúrku na mieste. Odrežte čiernu penovú dosku tak, aby zodpovedala drevenej palete pod ňou. Vyvŕtajte otvor, ktorý pasuje okolo rúrky z PVC. Opakujte v opačnom rohu. Označte cesty bielou páskou.

Krok 7: Dokončenie rámu z PVC

Dokončenie rámu z PVC
Dokončenie rámu z PVC
Dokončenie rámu z PVC
Dokončenie rámu z PVC
Dokončenie rámu z PVC
Dokončenie rámu z PVC

Na hornú rúrku vyvŕtajte otvor, do ktorého sa zmestí zväzok drôtov. Hrubý otvor je v poriadku, pokiaľ máte prístup k vnútorným častiam potrubí. Hadice prevlečte cez PVC rúrky a kolenné spoje, aby ste ich vyskúšali. Akonáhle je všetko dokončené, natrite PVC nejakou čiernou farbou v spreji, aby ste vyčistili vzhľad hlavného rámu. V jednej z rúrok z PVC vyrežte malú medzeru, aby sa zmestila na T-spoj. K tomuto t-spoju pridajte PVC rúrku, z ktorej bude semafor visieť. Priemer by mohol byť rovnaký ako hlavný rám (1/2 ), ak však použijete tenšiu rúrku, uistite sa, že sa cez ňu môže pretiahnuť 7 drôtov. Do tejto rúrky vyvŕtajte otvor, z ktorého bude visieť semafor.

Krok 8: Zapojenie (časť 2)

Elektroinštalácia (časť 2)
Elektroinštalácia (časť 2)
Elektroinštalácia (časť 2)
Elektroinštalácia (časť 2)
Elektroinštalácia (časť 2)
Elektroinštalácia (časť 2)

Znovu zapojte všetko, ako bolo testované predtým. Dôkladne skontrolujte semafor a zapojenie pomocou nepájivého poľa, aby ste sa presvedčili, že sú všetky spojenia vykonané. Pripájajte semafor na vodiče prechádzajúce ramenom T-kĺbu. Odkryté vodiče zabaľte elektrickou páskou, aby ste predišli skratom a vyzerali čistejšie.

Krok 9: Hotovo

Hotovo!
Hotovo!
Hotovo!
Hotovo!
Hotovo!
Hotovo!
Hotovo!
Hotovo!

Ak chcete spustiť kód, nastavte zdroj ako ~/.profile a cd na umiestnenie projektu.

Krok 10: Doplnky (fotografie)

Odporúča: