Съдържание:

Анализатор на модел на трафик, използващ откриване на обекти на живо: 11 стъпки (със снимки)
Анализатор на модел на трафик, използващ откриване на обекти на живо: 11 стъпки (със снимки)

Видео: Анализатор на модел на трафик, използващ откриване на обекти на живо: 11 стъпки (със снимки)

Видео: Анализатор на модел на трафик, използващ откриване на обекти на живо: 11 стъпки (със снимки)
Видео: Свършвам бързо! Как да правя секс по-дълго? 2024, Ноември
Anonim
Image
Image
Анализатор на модел на трафик, използващ откриване на обекти на живо
Анализатор на модел на трафик, използващ откриване на обекти на живо

В днешния свят светофарите са от съществено значение за безопасен път. Въпреки това, много пъти светофарите могат да бъдат досадни в ситуации, когато някой се приближава към светлината точно когато тя става червена. Това губи време, особено ако светлината пречи на едно превозно средство да премине през кръстовището, когато няма никой друг на пътя. Моята иновация е интелигентен светофар, който използва откриване на обекти на живо от камера, за да преброи колите на всеки път. Хардуерът, който ще използвам за този проект, е Raspberry Pi 3, модул за камера и различен електронен хардуер за самата светлина. Използвайки OpenCV на Raspberry Pi, събраната информация ще се управлява чрез код, който контролира светодиодите чрез GPIO. В зависимост от тези числа, светофарът ще се промени, като пропуска автомобилите в най -оптималния ред. В този случай лентата с най -много автомобили ще бъде пропусната, така че лентата с по -малко коли да е на празен ход, намалявайки замърсяването на въздуха. Това би премахнало ситуации, когато много автомобили са спрени, докато няма автомобили на пресичащия се път. Това не само спестява време за всички, но и спестява околната среда. Времето, през което хората се спират на знак за спиране с двигател на празен ход, увеличава количеството на замърсяването на въздуха, така че чрез създаването на интелигентен светофар мога да оптимизирам моделите на светлината, така че колите да прекарват възможно най -малко време със спрян автомобил. В крайна сметка тази система за светофар може да бъде приложена в градове, предградия или дори селски райони, за да бъде по -ефективна за хората, би намалила замърсяването на въздуха.

Стъпка 1: Списък на частите

Материали:

Raspberry Pi 3 Модел B v1.2

Raspberry Pi Camera v2.1

5V/1A микро USB захранване

HDMI монитор, клавиатура, SD карта на мишката с Raspbian Jessie

Разкъсващ кабел Raspberry Pi GPIO

Червени, жълти, зелени светодиоди (по 2 от всеки цвят)

Женски конектори за Raspberry Pi (7 уникални цвята)

Разнообразие от тел от 24 габарита (различни цветове) + термосвиваеми тръби

2'x2 'дървен панел или платформа

Винтове за дърво

Черна повърхност (картон, пяна, плакат и др.)

Бяла (или всеки цвят, различен от черен) лента за пътна маркировка

Черна спрей боя (за PVC)

½”PVC тръба с 90 градусови лакътни съединения (2), Т гнездо (1), женски адаптер (2)

Инструменти

Поялник

3D принтер

Пробийте с различни свредла

Платка

Пистолет за горещ въздух

Стъпка 2: Настройване на Raspberry Pi

Заредете SD картата в Raspberry Pi и стартирайте.

Следвайте това ръководство, за да инсталирате необходимите библиотеки на OpenCV. Уверете се, че имате време да направите тази стъпка, тъй като инсталирането на библиотеката на OpenCV може да отнеме няколко часа. Не забравяйте също да инсталирате и настроите камерата си тук.

Трябва също да инсталирате pip:

пикамера

gpiozero

RPi. GPIO

Ето финализирания код:

от picamera.array внос PiRGBArray

от пикамера внос PiCamera

внос picamera.array

внос numpy като np

време за импортиране

импортиране на cv2

импортирайте RPi. GPIO като GPIO

време за импортиране

GPIO.setmode (GPIO. BCM)

за i in (23, 25, 16, 21):

GPIO.setup (i, GPIO. OUT)

cam = PiCamera ()

cam.resolution = (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

inithoriz = 0

брояч = 0

за рамка в cam.capture_continuous (необработен, format = "bgr", use_video_port = True):

frame = frame.array

hsv = cv2.cvtColor (рамка, cv2. COLOR_BGR2HSV)

маска = cv2.inRange (hsv, colorLower, colorUpper)

маска = cv2.blur (маска, (3, 3))

маска = cv2.dilate (маска, Няма, итерации = 5)

маска = cv2.erode (маска, Няма, итерации = 1)

маска = 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

horiz = 0

ако len (cnts)> 0:

за c в cnts:

(x, y), радиус = cv2.min Затваряне на кръг (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:

horiz = хоризонт +1

elif x <180:

horiz = хоризонт +1

иначе:

horiz = хоризонт

ако vert! = initvert:

отпечатайте "Автомобили във вертикална лента:" + str (vert)

initvert = vert

отпечатайте "Автомобили в хоризонтална лента:" + str (хоризонт)

inithoriz = хоризонт

отпечатайте '----------------------------'

if horiz! = inithoriz:

отпечатайте "Автомобили във вертикална лента:" + str (vert)

initvert = vert

отпечатайте "Автомобили в хоризонтална лента:" + str (хоризонт)

inithoriz = хоризонт

отпечатайте '----------------------------'

ако vert <horiz:

GPIO.изход (23, GPIO. HIGH)

GPIO.изход (21, GPIO. HIGH)

GPIO.изход (16, GPIO. LOW)

GPIO.изход (25, GPIO. LOW)

ако horiz <vert:

GPIO.изход (16, GPIO. HIGH)

GPIO.изход (25, GPIO. HIGH)

GPIO.изход (23, GPIO. LOW)

GPIO.изход (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 и монтаж на камера

Raspberry Pi и стойка за камера
Raspberry Pi и стойка за камера
Raspberry Pi и стойка за камера
Raspberry Pi и стойка за камера
Raspberry Pi и стойка за камера
Raspberry Pi и стойка за камера
Raspberry Pi и стойка за камера
Raspberry Pi и стойка за камера

3D отпечатайте корпуса и камерата, монтирайте и сглобете.

Стъпка 4: Монтаж на светофар

Монтаж на светофар
Монтаж на светофар
Монтаж на светофар
Монтаж на светофар
Монтаж на светофар
Монтаж на светофар

Тествайте светофара с макет. Всеки противоположен набор от светодиоди споделят анод и всички те споделят общ катод (маса). Трябва да има общо 7 входни проводника: 1 за всяка двойка светодиоди (6) + 1 заземяващ проводник. Запоявайте и сглобявайте светофарите.

Стъпка 5: Окабеляване (част 1)

Окабеляване (част 1)
Окабеляване (част 1)
Окабеляване (част 1)
Окабеляване (част 1)
Окабеляване (част 1)
Окабеляване (част 1)
Окабеляване (част 1)
Окабеляване (част 1)

Запоявайте щифтовете на женската заглавка към около 5 фута тел. Това са страните, по които тези проводници ще проникнат през PVC тръбите по -късно. Не забравяйте да можете да различавате различните комплекти светлини (2 x 3 цвята и 1 основа). В този случай маркирах краищата на друг комплект червени, жълти и сини проводници с острие, за да знам кое е кое.

Стъпка 6: Изграждане на околната среда

Изграждане на околната среда
Изграждане на околната среда
Изграждане на околната среда
Изграждане на околната среда
Изграждане на околната среда
Изграждане на околната среда
Изграждане на околната среда
Изграждане на околната среда

Изграждане на околната среда Направете 2 -футов квадратен дървен палет по този начин. Скрапът е добре, тъй като ще бъде покрит. Пробийте дупка, която точно пасва на вашия адаптер. Пробийте винтове през страните на палета, за да фиксирате PVC тръбата на място. Изрежете черната дъска от пяна, за да съответства на дървения палет отдолу. Пробийте дупка, която се вписва около PVC тръбата. Повторете на противоположния ъгъл. Маркирайте пътищата с някаква бяла лента.

Стъпка 7: Завършване на PVC рамката

Завършване на PVC рамката
Завършване на PVC рамката
Завършване на PVC рамката
Завършване на PVC рамката
Завършване на PVC рамката
Завършване на PVC рамката

На горната тръба пробийте дупка, която може да побере сноп жици. Грубата дупка е добре, стига да имате достъп до вътрешността на тръбите. Прокарайте проводниците през PVC тръбите и лакътните съединения за тестово напасване. След като всичко е финализирано, боядисайте PVC с някаква черна спрей боя, за да изчистите външния вид на основната рамка. Изрежете малка междина в една от PVC тръбите, за да се монтира Т-образна връзка. Добавете PVC тръба към тази t-връзка, за да може светофарът да виси. Диаметърът може да бъде същият като основната рамка (1/2 ), но ако използвате по -тънка тръба, уверете се, че 7 проводника могат да се промъкнат. Пробийте дупка през тази тръба, за да може да виси светофарът.

Стъпка 8: Окабеляване (част 2)

Окабеляване (част 2)
Окабеляване (част 2)
Окабеляване (част 2)
Окабеляване (част 2)
Окабеляване (част 2)
Окабеляване (част 2)

Свържете отново всичко, както е тествано по-рано. Проверете два пъти светофара и окабеляването с макет, за да се уверите, че всички връзки са осъществени. Припоявайте светофара към проводниците, преминаващи през рамото на Т-образно съединение. Увийте откритите проводници с електрическа лента, за да предотвратите къси панталони и за по -чист вид.

Стъпка 9: Готово

Готово!
Готово!
Готово!
Готово!
Готово!
Готово!
Готово!
Готово!

За да стартирате кода, не забравяйте да зададете своя източник като ~/.profile и cd към местоположението на вашия проект.

Стъпка 10: Екстри (Снимки)

Препоръчано: