Mục lục:

Bộ phân tích mô hình giao thông sử dụng tính năng phát hiện đối tượng trực tiếp: 11 bước (có hình ảnh)
Bộ phân tích mô hình giao thông sử dụng tính năng phát hiện đối tượng trực tiếp: 11 bước (có hình ảnh)

Video: Bộ phân tích mô hình giao thông sử dụng tính năng phát hiện đối tượng trực tiếp: 11 bước (có hình ảnh)

Video: Bộ phân tích mô hình giao thông sử dụng tính năng phát hiện đối tượng trực tiếp: 11 bước (có hình ảnh)
Video: ✅ 07 Loại Vạch Kẻ Đường Mà Lái Mới Phải Nắm ⛔️ 2024, Tháng bảy
Anonim
Image
Image
Trình phân tích mẫu lưu lượng sử dụng tính năng phát hiện đối tượng trực tiếp
Trình phân tích mẫu lưu lượng sử dụng tính năng phát hiện đối tượng trực tiếp

Trong thế giới ngày nay, đèn giao thông rất cần thiết cho một con đường an toàn. Tuy nhiên, nhiều khi, đèn giao thông có thể gây khó chịu trong tình huống có người đang đến gần đèn ngay khi đèn đang chuyển sang màu đỏ. Điều này gây lãng phí thời gian, đặc biệt nếu ánh sáng ngăn cản một chiếc xe đi qua giao lộ khi không có ai khác trên đường. Cải tiến của tôi là đèn giao thông thông minh sử dụng tính năng phát hiện vật thể trực tiếp từ camera để đếm số lượng ô tô trên mỗi con đường. Phần cứng tôi sẽ sử dụng cho dự án này là Raspberry Pi 3, một mô-đun máy ảnh và các phần cứng điện tử khác nhau cho chính ánh sáng. Sử dụng OpenCV trên Raspberry Pi, thông tin thu thập được sẽ được chạy qua mã điều khiển các đèn LED thông qua GPIO. Tùy thuộc vào những con số này, đèn giao thông sẽ thay đổi, cho phép xe ô tô đi qua theo thứ tự tối ưu nhất. Trong trường hợp này, làn đường có nhiều ô tô nhất sẽ được đi qua để làn đường có ít ô tô chạy không tải, giảm ô nhiễm không khí. Điều này sẽ loại bỏ tình huống nhiều ô tô bị dừng lại trong khi không có ô tô nào trên đường giao nhau. Điều này không chỉ tiết kiệm thời gian cho mọi người mà còn tiết kiệm môi trường. Khoảng thời gian mọi người dừng lại ở biển báo dừng mà động cơ không chạy sẽ làm tăng lượng ô nhiễm không khí, vì vậy bằng cách tạo đèn giao thông thông minh, tôi có thể tối ưu hóa các kiểu đèn để ô tô dành ít thời gian nhất có thể cho việc dừng xe của họ.. Cuối cùng, hệ thống đèn giao thông này có thể được triển khai ở các thành phố, vùng ngoại ô, hoặc thậm chí là các vùng nông thôn để mang lại hiệu quả hơn cho người dân và giảm ô nhiễm không khí.

Bước 1: Danh sách bộ phận

Vật liệu:

Raspberry Pi 3 Model B v1.2

Máy ảnh Raspberry Pi v2.1

Nguồn điện 5V / 1A micro USB

Màn hình HDMI, bàn phím, chuột, thẻ SD với Raspbian Jessie

Cáp đột phá Raspberry Pi GPIO

Đèn LED đỏ, vàng, xanh lá cây (mỗi màu 2 đèn)

Đầu nối cái cho Raspberry Pi (7 màu độc đáo)

24 loại dây đo (màu sắc khác nhau) + ống co nhiệt

Bảng hoặc nền gỗ 2’x2’

Vít gỗ

Bề mặt đen (bìa cứng, bảng xốp, bảng áp phích, v.v.)

Băng trắng (hoặc bất kỳ màu nào khác ngoài màu đen) cho vạch kẻ đường

Sơn phun màu đen (cho PVC)

Ống PVC ½”với khớp khuỷu 90 độ (2), ổ cắm T (1), bộ chuyển đổi cái (2)

Công cụ

Sắt hàn

máy in 3D

Khoan với nhiều mũi khoan khác nhau

Breadboard

Súng bắn nhiệt

Bước 2: Thiết lập Raspberry Pi

Nạp thẻ SD vào Raspberry Pi và khởi động.

Làm theo hướng dẫn này để cài đặt các thư viện OpenCV cần thiết. Đảm bảo bạn có thời gian để thực hiện bước này, vì việc cài đặt thư viện OpenCV có thể mất vài giờ. Hãy chắc chắn cũng cài đặt và thiết lập máy ảnh của bạn tại đây.

Bạn cũng nên cài đặt pip:

picamera

gpiozero

RPi. GPIO

Đây là mã cuối cùng:

từ picamera.array nhập PiRGBArray

từ picamera nhập PiCamera

nhập picamera.array

nhập numpy dưới dạng np

thời gian nhập khẩu

nhập cv2

nhập RPi. GPIO dưới dạng GPIO

thời gian nhập khẩu

GPIO.setmode (GPIO. BCM)

cho tôi trong (23, 25, 16, 21):

GPIO.setup (i, GPIO. OUT)

cam = PiCamera ()

cam.resolution = (480, 480)

cam.framerate = 30

raw = PiRGBArray (cam, kích thước = (480, 480))

time.sleep (0,1)

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

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

initvert = 0

inithoriz = 0

bộ đếm = 0

cho khung trong cam.capture_continuous (raw, format = "bgr", use_video_port = True):

frame = frame.array

hsv = cv2.cvtColor (frame, cv2. COLOR_BGR2HSV)

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

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

mask = cv2.dilate (mask, Không, số lần lặp = 5)

mask = cv2.erode (mask, Không có, số lần lặp = 1)

mask = cv2.dilate (mask, Không, số lần lặp = 3)

tôi, thresh = cv2.threshold (mask, 127, 255, cv2. THRESH_BINARY)

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

center = Không có

vert = 0

chân trời = 0

nếu len (cnts)> 0:

cho c trong cnts:

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

center = (int (x), int (y))

radius = int (bán kính)

cv2.circle (khung, tâm, bán kính, (0, 255, 0), 2)

x = int (x)

y = int (y)

nếu 180 <x <300:

nếu y> 300:

vert = vert +1

elif y <180:

vert = vert +1

khác:

vert = vert

nếu 180 <y <300:

nếu x> 300:

chân trời = chân trời +1

elif x <180:

chân trời = chân trời +1

khác:

Horiz = đường chân trời

if vert! = initvert:

print "Ô tô trên làn dọc:" + str (vert)

initvert = vert

print "Ô tô trên làn đường ngang:" + str (đường chân trời)

inithoriz = chân trời

in '----------------------------'

nếu chân trời! = inithoriz:

print "Ô tô trên làn dọc:" + str (vert)

initvert = vert

print "Ô tô trên làn đường ngang:" + str (đường chân trời)

inithoriz = chân trời

in '----------------------------'

nếu vert <chân trời:

GPIO.output (23, GPIO. HIGH)

GPIO.output (21, GPIO. HIGH)

GPIO.output (16, GPIO. LOW)

GPIO.output (25, GPIO. LOW)

nếu chân trời <vert:

GPIO.output (16, GPIO. HIGH)

GPIO.output (25, GPIO. HIGH)

GPIO.output (23, GPIO. LOW)

GPIO.output (21, GPIO. LOW)

cv2.imshow ("Khung", khung)

cv2.imshow ("HSV", hsv)

cv2.imshow ("Thresh", thresh)

raw.truncate (0)

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

nghỉ

cv2.destroyAllWindows ()

GPIO.cleanup ()

Bước 3: Raspberry Pi và Camera Mount

Raspberry Pi và Camera Mount
Raspberry Pi và Camera Mount
Raspberry Pi và Camera Mount
Raspberry Pi và Camera Mount
Raspberry Pi và Camera Mount
Raspberry Pi và Camera Mount
Raspberry Pi và Camera Mount
Raspberry Pi và Camera Mount

In 3D vỏ và gắn và lắp ráp máy ảnh.

Bước 4: Lắp ráp đèn giao thông

Hội đèn giao thông
Hội đèn giao thông
Hội đèn giao thông
Hội đèn giao thông
Hội đèn giao thông
Hội đèn giao thông

Kiểm tra đèn giao thông bằng bảng mạch. Mỗi bộ đèn LED đối lập có chung một cực dương và tất cả chúng đều dùng chung một cực âm (nối đất). Cần có tổng cộng 7 dây đầu vào: 1 dây cho mỗi cặp LEDS (6) + 1 dây nối đất. Hàn và lắp ráp đèn giao thông.

Bước 5: Đấu dây (Phần 1)

Hệ thống dây điện (Phần 1)
Hệ thống dây điện (Phần 1)
Hệ thống dây điện (Phần 1)
Hệ thống dây điện (Phần 1)
Hệ thống dây điện (Phần 1)
Hệ thống dây điện (Phần 1)
Hệ thống dây điện (Phần 1)
Hệ thống dây điện (Phần 1)

Hàn các chân của tiêu đề cái vào khoảng 5 feet dây. Đây là những mặt mà Những dây này sẽ rắn qua các ống PVC sau này. Đảm bảo có thể phân biệt các bộ đèn khác nhau (2 x 3 màu và 1 mặt đất). Trong trường hợp này, tôi đã đánh dấu các đầu của một bộ dây màu đỏ, vàng và xanh lam khác bằng sharpie để tôi biết đó là dây nào.

Bước 6: Xây dựng Môi trường

Xây dựng Môi trường
Xây dựng Môi trường
Xây dựng Môi trường
Xây dựng Môi trường
Xây dựng Môi trường
Xây dựng Môi trường
Xây dựng Môi trường
Xây dựng Môi trường

Xây dựng môi trường Làm một pallet gỗ vuông 2 feet như thế này. Gỗ vụn cũng được vì nó sẽ được phủ lên. Khoan một lỗ vừa với bộ chuyển đổi của bạn. Khoan vít qua các mặt của pallet để cố định ống PVC vào vị trí. Cắt tấm xốp màu đen để phù hợp với tấm pallet gỗ bên dưới. Khoan một lỗ vừa vặn xung quanh ống PVC. Lặp lại ở góc đối diện. Đánh dấu các con đường bằng một số băng trắng.

Bước 7: Hoàn thiện khung PVC

Hoàn thiện khung PVC
Hoàn thiện khung PVC
Hoàn thiện khung PVC
Hoàn thiện khung PVC
Hoàn thiện khung PVC
Hoàn thiện khung PVC

Trên đường ống trên cùng, hãy khoan một lỗ có thể lắp một bó dây. Một lỗ thô cũng được miễn là bạn có thể tiếp cận bên trong các đường ống. Rắn dây qua ống PVC và các khớp nối khuỷu tay để kiểm tra độ khít. Khi mọi thứ đã hoàn tất, hãy sơn PVC với một ít sơn phun màu đen để làm sạch giao diện của khung chính. Cắt một khoảng trống nhỏ trên một trong các ống PVC để lắp khớp chữ T. Thêm một ống PVC vào khớp chữ t này để đèn giao thông có thể treo xuống. Đường kính có thể bằng với khung chính (1/2 ), tuy nhiên nếu bạn sử dụng ống mỏng hơn, hãy đảm bảo 7 dây có thể luồn qua. Hãy khoan một lỗ qua ống này để treo đèn giao thông.

Bước 8: Đấu dây (Phần 2)

Hệ thống dây điện (Phần 2)
Hệ thống dây điện (Phần 2)
Hệ thống dây điện (Phần 2)
Hệ thống dây điện (Phần 2)
Hệ thống dây điện (Phần 2)
Hệ thống dây điện (Phần 2)

Nối lại dây mọi thứ như đã thử nghiệm trước đó. Kiểm tra kỹ đèn giao thông và hệ thống dây điện bằng bảng mạch để xác nhận tất cả các kết nối đã được thực hiện. Hàn đèn giao thông với các dây đi qua tay nối chữ T. Dùng băng dính điện quấn các phần dây lộ ra ngoài để ngăn ngừa quần áo ngắn và trông sạch sẽ hơn.

Bước 9: Đã hoàn thành

Hoàn thành!
Hoàn thành!
Hoàn thành!
Hoàn thành!
Hoàn thành!
Hoàn thành!
Hoàn thành!
Hoàn thành!

Để chạy mã, hãy đảm bảo đặt nguồn của bạn là ~ /.profile và cd vào vị trí dự án của bạn.

Bước 10: Bổ sung (Ảnh)

Đề xuất: