Obsah:
- Krok 1: Seznam dílů
- Krok 2: Nastavení Raspberry Pi
- Krok 3: Raspberry Pi a držák fotoaparátu
- Krok 4: Montáž semaforu
- Krok 5: Zapojení (část 1)
- Krok 6: Budování životního prostředí
- Krok 7: Dokončení rámu z PVC
- Krok 8: Zapojení (část 2)
- Krok 9: Hotovo
- Krok 10: Doplňky (fotografie)
Video: Analyzátor dopravního obrazce pomocí detekce živých objektů: 11 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
V dnešním světě jsou semafory nezbytné pro bezpečnou cestu. Semafor však může být mnohdy nepříjemný v situacích, kdy se někdo blíží ke světlu právě ve chvíli, kdy se mění na červenou. To ztrácí čas, zvláště pokud světlo brání průjezdu jediného vozidla křižovatkou, když na silnici není nikdo jiný. Mojí novinkou je chytrý semafor, který pomocí detekce živých objektů z kamery počítá počet aut na každé silnici. Hardware, který pro tento projekt použiji, je Raspberry Pi 3, kamerový modul a různý elektronický hardware pro samotné světlo. Pomocí OpenCV na Raspberry Pi budou shromážděné informace spuštěny prostřednictvím kódu, který ovládá LED diody prostřednictvím GPIO. V závislosti na těchto číslech se změní semafor a nechá auta projít v nejoptimálnějším pořadí. V tomto případě by byl pruh s největším počtem automobilů propuštěn, aby pruh s menším počtem aut byl na volnoběh, což by snížilo znečištění ovzduší. Tím by byly odstraněny situace, kdy je mnoho aut zastaveno, zatímco na křižovatce nejsou žádná auta. Šetří to nejen čas všem, ale také životní prostředí. Doba, po kterou jsou lidé zastavováni na značce zastavení s motorem na volnoběh, zvyšuje množství znečištění ovzduší, takže vytvořením inteligentního semaforu jsem schopen optimalizovat světelné vzorce tak, aby auta strávila co nejméně času se zastaveným vozidlem. Nakonec by tento semaforový systém mohl být implementován ve městech, na předměstích nebo dokonce ve venkovských oblastech, aby byl efektivnější pro lidi a snížil by znečištění ovzduší.
Krok 1: Seznam dílů
Materiály:
Raspberry Pi 3 Model B v1.2
Kamera Raspberry Pi v2.1
Napájecí zdroj micro USB 5V/1A
HDMI monitor, klávesnice, myš SD karta s Raspbian Jessie
Odlamovací kabel Raspberry Pi GPIO
Červená, žlutá, zelená LED (2 z každé barvy)
Zásuvky pro Raspberry Pi (7 unikátních barev)
Rozmanitý drát o průměru 24 (různé barvy) + smršťovací bužírky
Dřevěný panel nebo platforma 2’x2 ‘
Vruty do dřeva
Černý povrch (lepenka, pěnová deska, plakátová tabule atd.)
Bílá (nebo jiná barva než černá) páska pro dopravní značení
Černá barva ve spreji (pro PVC)
½”PVC trubka s kolenovými klouby 90 stupňů (2), zásuvka T (1), zásuvkový adaptér (2)
Nástroje
Páječka
3D tiskárna
Vrtejte s různými vrtáky
Prkénko
Horkovzdušná pistole
Krok 2: Nastavení Raspberry Pi
Vložte kartu SD do Raspberry Pi a spusťte.
Podle této příručky nainstalujte požadované knihovny OpenCV. Udělejte si na tento krok čas, protože instalace knihovny OpenCV může trvat několik hodin. Nezapomeňte si zde také nainstalovat a nastavit kameru.
Měli byste také nainstalovat pip:
pikamera
gpiozero
RPi. GPIO
Zde je finalizovaný kód:
z picamera.array importujte PiRGBArray
z picamery import PiCamera
import picamera.array
import numpy jako np
čas importu
importovat cv2
importujte RPi. GPIO jako GPIO
čas importu
GPIO.setmode (GPIO. BCM)
pro i v (23, 25, 16, 21):
GPIO.setup (i, GPIO. OUT)
cam = PiCamera ()
cam.resolution = (480, 480)
cam.framerate = 30
raw = PiRGBArray (kamera, velikost = (480, 480))
time.sleep (0,1)
colorLower = np.array ([0, 100, 100])
colorUpper = np.array ([179, 255, 255])
initvert = 0
inithoriz = 0
čítač = 0
pro snímek v cam.capture_continuous (raw, format = "bgr", use_video_port = True):
frame = frame.array
hsv = cv2.cvtColor (rámeček, cv2. COLOR_BGR2HSV)
maska = cv2.inRange (hsv, colorLower, colorUpper)
maska = cv2.blur (maska, (3, 3))
mask = cv2.dilate (maska, Žádná, iterace = 5)
mask = cv2.erode (maska, Žádná, iterace = 1)
mask = cv2.dilate (maska, Žádná, iterace = 3)
já, mlátit = cv2.threshold (maska, 127, 255, cv2. THRESH_BINARY)
cnts = cv2.findContours (mlátit, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE) [-2]
střed = žádný
vert = 0
horizont = 0
pokud len (cnts)> 0:
pro c v cnts:
(x, y), poloměr = cv2.minEnclosingCircle (c)
střed = (int (x), int (y))
radius = int (poloměr)
cv2.circle (rám, střed, poloměr, (0, 255, 0), 2)
x = int (x)
y = int (y)
pokud 180 <x <300:
pokud y> 300:
vert = vert +1
elif y <180:
vert = vert +1
jiný:
vert = vert
pokud 180 <y <300:
pokud x> 300:
horizont = horizont +1
elif x <180:
horizont = horizont +1
jiný:
horizont = horizont
if vert! = initvert:
tisk "Auta ve svislém pruhu:" + str (vert)
initvert = vert
tisk "Auta v horizontálním pruhu:" + str (horizont)
inithoriz = horizon
tisk '----------------------------'
if horizon! = inithoriz:
tisk "Auta ve svislém pruhu:" + str (vert)
initvert = vert
tisk "Auta v horizontálním pruhu:" + str (horizont)
inithoriz = horizon
tisk '----------------------------'
pokud 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 („Rámeček“, rámeček)
cv2.imshow ("HSV", hsv)
cv2.imshow („Mlátit“, mlátit)
raw.truncate (0)
if cv2.waitKey (1) & 0xFF == ord ('q'):
přestávka
cv2.destroyAllWindows ()
GPIO.cleanup ()
Krok 3: Raspberry Pi a držák fotoaparátu
3D tisk pouzdra a držáku fotoaparátu a sestavení.
Krok 4: Montáž semaforu
Vyzkoušejte semafor pomocí prkénka. Každá protilehlá sada LED sdílí anodu a všechny sdílejí společnou katodu (uzemnění). Mělo by existovat celkem 7 vstupních vodičů: 1 pro každý pár LED diod (6) + 1 uzemňovací vodič. Pájejte a sestavujte semafory.
Krok 5: Zapojení (část 1)
Pájecí kolíky samice pájejte asi na 5 stop drátu. To jsou strany, kterými se tyto dráty později hadem protáhnou PVC trubkami. Ujistěte se, že dokážete rozlišit různé sady světel (2 x 3 barvy a 1 uzemnění). V tomto případě jsem označil konce další sady červených, žlutých a modrých vodičů pomocí Sharpie, abych věděl, který je který.
Krok 6: Budování životního prostředí
Budování životního prostředí Vyrobte si dřevěnou paletu o rozměrech 2 stopy. Šrot je v pořádku, protože bude přikrytý. Vyvrtejte otvor, který přesně odpovídá vašemu adaptéru. Vyvrtejte šrouby po stranách palety, abyste zajistili PVC trubku na místě. Odřízněte desku z černé pěny, aby odpovídala dřevěné paletě pod ní. Vyvrtejte otvor, který se vejde kolem PVC trubky. Opakujte v opačném rohu. Označte silnice bílou páskou.
Krok 7: Dokončení rámu z PVC
Na horní trubce vyvrtejte otvor, do kterého se vejde svazek drátů. Hrubý otvor je v pořádku, pokud máte přístup k vnitřkům trubek. Protáhněte dráty PVC trubkami a kolenními klouby pro zkušební uchycení. Jakmile je vše dokončeno, natřete PVC nějakou černou barvou ve spreji, abyste vyčistili vzhled hlavního rámu. Vyřízněte malou mezeru v jedné z trubek z PVC, aby se vešly na T-spoj. Přidejte k tomuto t-spoji PVC trubku, ze které bude viset semafor. Průměr by mohl být stejný jako u hlavního rámu (1/2 ), ale pokud použijete tenčí trubku, ujistěte se, že 7 drátů může protáhnout skrz ni. Vyvrtejte do této trubky díru, ze které bude viset semafor.
Krok 8: Zapojení (část 2)
Znovu zapojte vše, jak bylo testováno dříve. Dvojitým zkontrolováním semaforu a kabeláže pomocí prkénka zkontrolujte, zda byla provedena všechna připojení. Pájejte semafor na dráty procházející ramenem T-kloubu. Obnažte odkryté dráty elektrickou páskou, abyste zabránili zkratům a vypadali čistěji.
Krok 9: Hotovo
Chcete -li spustit kód, nezapomeňte nastavit zdroj jako ~/.profile a cd na umístění projektu.
Krok 10: Doplňky (fotografie)
Doporučuje:
Detekce objektů pomocí desek Sipeed MaiX (Kendryte K210): 6 kroků
Detekce objektů pomocí desek Sipeed MaiX (Kendryte K210): Jako pokračování mého předchozího článku o rozpoznávání obrazu pomocí karet Sipeed MaiX Boards jsem se rozhodl napsat další tutoriál zaměřený na detekci objektů. S čipem Kendryte K210 se nedávno objevil zajímavý hardware, včetně S
Detekce objektů Raspberry Pi: 7 kroků
Detekce objektů Raspberry Pi: Tato příručka poskytuje podrobné pokyny, jak nastavit API pro detekci objektů TensorFlow na Raspberry Pi. Podle kroků v této příručce budete moci pomocí svého Raspberry Pi provádět detekci objektů na živém videu z P
Sledování objektů na základě detekce barev: 10 kroků
Sledování objektů na základě detekce barev: Příběh Tento projekt jsem provedl, abych se naučil zpracování obrazu pomocí Raspberry PI a otevřeného CV. Aby byl tento projekt zajímavější, použil jsem dva servomotory SG90 a namontoval na něj kameru. Jeden motor sloužil k pohybu vodorovně a druhý motor k pohybu svisle
Detekce objektů W/ Dragonboard 410c nebo 820c pomocí OpenCV a Tensorflow .: 4 kroky
Object Detection W/ Dragonboard 410c or 820c using OpenCV and Tensorflow .: This instructables describes how to install OpenCV, Tensorflow, and machine learning frameworks for Python 3.5 to run the Object Detection
Vizuální detekce objektů pomocí kamery (TfCD): 15 kroků (s obrázky)
Vizuální detekce objektů pomocí kamery (TfCD): Kognitivní služby, které dokážou rozpoznat emoce, tváře lidí nebo jednoduché objekty, jsou v současné době stále v rané fázi vývoje, ale díky strojovému učení se tato technologie stále více rozvíjí. Můžeme očekávat, že uvidíme více z této magie v