Luận văn Hệ thống điều khiển giao thông thông minh đô thị
HỆ THỐNG ĐIỀU KHIỂN GIAO THÔNG THÔNG MINH ĐÔ THỊ
TRẦN THÁI NHÂN
Trang nhan đề
Lời cảm ơn
Mục lục
Danh mục
Chương 1: Tổng quan
Chương 2: Bài toán nhận dạng đối tượng chuyển động trong video
Chương 3: Ứng dụng bài toán nhận dạng chuyển động trong điều khiển giao thông
Chương 4: Phát triển hệ thống điều khiển giao thông thông minh đô thị
Chương 5: Kết luận
Lời kết
Tài liệu tham khảo
Phụ lục
Giới thiệu sơ lược về tác giả
MỤC LỤC
Trang
Trang phụ bìa
LỜI CÁM ƠN i
MỤC LỤC ii
DANH MỤC CÁC BẢNG .v
DANH MỤC CÁC HÌNH VẼ .v
DANH MỤC CÁC TỪ VIẾT TẮT vi
Chương 1 - TỔNG QUAN .1
1.1 - Giới thiệu .1
1.2 - Vấn đề cần giải quyết .1
1.3 - Giải pháp 1
1.4 - Các yêu cầu đặt ra đối với hệ thống .2
1.5 - Cấu trúc của luận văn .2
Chương 2 - BÀI TOÁN NHẬN DẠNG ĐỐI TƯỢNG CHUYỂN ĐỘNG TRONG VIDEO .4
2.1 - Một số khái niệm .4
2.1.1 - Cấu trúc Video .4
2.1.2 - Key - frame 5
2.2 - Tổng quan về phương pháp phát hiện đối tượng chuyển động trong video dựa vào phân đoạn ảnh 5
2.3 - Thuật toán phát hiện đối tượng chuyển động 8
2.3.1 - Lý thuyết cơ bản trong phát hiện chuyển động .8
2.3.2 - Chi tiết thuật toán phát hiện chuyển động .11
2.3.2.1 - Rút trích đặc trưng .13
2.3.2.2 - Cường độ sáng .13
2.3.2.3 - Màu sắc 13
2.3.2.4 - Đặc trưng bất biến về độ chiếu sáng 14
2.3.3 - Phân tích đặc trưng 14
2.3.3.1 - Kỹ thuật lấy khung hình đối chiếu .14
- iii -
2.3.3.2 - Phương pháp xác định khung hình đối chiếu cố định .15
2.3.3.3 - Phương pháp xác định khung hình đối chiếu động .15
2.3.3.4 - So sánh kết quả hai phương pháp sử dụng khung hình đối chiếu: 17
2.3.4 - Tính toán ma trận khác biệt (Mc) 19
2.3.5 - Nhận biết chuyển động 21
2.3.6 - Xác định ngưỡng dựa trên kinh nghiệm 22
2.3.7 - Xác định ngưỡng động .23
2.3.8 - Lọc nhiễu .24
2.3.8.1 - Lọc nhiễu trên ma trận nhận biết chuyển động Mo .25
2.3.8.2 - Lọc nhiễu trên ma trận Mo và ma trận ảnh gốc Mi .27
2.4 - Nhận xét và đề xuất .28
Chương 3 - ỨNG DỤNG BÀI TOÁN NHẬN DẠNG CHUYỂN ĐỘNG TRONG ĐIỀU KHIỂN GIAO THÔNG 29
3.1 - Một số ứng dụng của thuật toán phát hiện chuyển động trong thực tế [9] 29
3.1.1 - Giám sát giao thông .29
3.1.2 - Dự báo kẹt xe .29
3.1.3 - Tính độ lớn của hàng đợi xe tại giao lộ để điều khiển giao thông .29
3.1.4 - Phát hiện tai nạn .30
3.1.5 - Báo động khi lái xe đi lệch hướng .30
3.1.6 - Cập nhật chỗ trống trong nhà xe 30
3.2 - Bài toán phát hiện chuyển động trong điều khiển giao thông .30
3.2.1 - Giới thiệu bài toán .30
3.2.2 - Hiện trạng chung của các dự án liên quan .31
3.2.3 - Tìm hiểu về hệ thống điều khiển giao thông .31
3.2.4 - Ứng dụng logic mờ vào điều tiết giao thông .33
3.2.5 - Thuật toán điều phối giao thông cơ bản 33
3.2.5.1 - Phạm vi 33
3.2.5.2 - Mô tả thuật toán .34
3.2.5.3 - Mô hình 35
3.2.5.4 - Thuật giải .35
3.2.5.5 - Các hạn chế 36
3.2.5.6 - Các cải tiến đề nghị 36
3.2.5.7 - Đánh giá .37
- iv -
Chương 4 - PHÁT TRIỂN HỆ THỐNG ĐIỀU KHIỂN GIAO THÔNG THÔNG MINH CHO ĐÔ THỊ .38
4.1 - Mục đích và phạm vi ứng dụng .38
4.2 - Mô hình phát hiện chuyển động được áp dụng trong chương trình 38
4.2.1 - Hàm rút trích đặc trưng Fa .40
4.2.2 - Thuật toán cập nhật nền tự động 40
Mô tả thuật toán: 43
4.2.3 - Hàm đo khoảng cách Fc .43
4.2.4 - Hàm nhận biết chuyển động Fb .44
4.2.5 - Lọc nhiễu .45
4.2.6 - Khử bóng .47
4.3 - Cấu trúc chương trình 50
4.3.1 - Cấu trúc chính 50
4.3.2 - Phần phát hiện chuyển động 52
4.3.3 - Phần mô phỏng nút giao thông 52
4.3.4 - Phần trợ giúp điều khiển giao thông 52
4.3.5 - Chương trình mô phỏng nút giao thông .53
4.4 - Môi trường cài đặt .53
4.5 - Cấu hình phần cứng .53
4.6 - Các giao diện chính và một số tính năng .54
4.6.1 - Chương trình CameraSupervisor .54
4.6.2 - Chương trình CRS .58
Chương 5 - KẾT LUẬN .61
5.1 - Kết quả đạt được 61
5.2 - Một số khiếm khuyết của mô hình 61
5.3 - Những việc cần phải làm thêm để hoàn thiện chương trình 61
5.4 - Hướng phát triển của đề tài 62
LỜI KẾT .64
TÀI LIỆU THAM KHẢO .65
23 trang |
Chia sẻ: maiphuongtl | Lượt xem: 2158 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Luận văn Hệ thống điều khiển giao thông thông minh đô thị, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
- 38 -
Chương 4 - PHÁT TRIỂN HỆ THỐNG ĐIỀU KHIỂN GIAO THÔNG
THÔNG MINH CHO ĐÔ THỊ
4.1 - Mục đích và phạm vi ứng dụng
Cài đặt một hệ thống điều khiển tín hiệu đèn giao thông dựa vào việc phân tích các
chuyển động của phương tiện giao thông trong hình ảnh thu nhận được từ một
Camera đặt tại một ngã tư.
Phạm vi thử nghiệm chỉ thực hiện trên Camera tĩnh, ứng dụng phải được xác định
các vùng mặt đường, làn đường và xác định hướng đi quy định. Phạm vi khảo sát là
một ngã tư của 2 con đường một chiều.
Hình 4 - 1: Phạm vi ứng dụng
4.2 - Mô hình phát hiện chuyển động được áp dụng trong chương trình
Để giảm thiểu chi phí tính toán và tăng tốc độ chương trình, mỗi một đơn vị ảnh là
một block (n x n) điểm ảnh. Hệ số n này là hệ số thực nghiệm. Chương trình cho
phép thay đổi hệ số n. Theo thực nghiệm n = 3 là tốt nhất.
- 39 -
Ngoài ra chương trình còn có khả năng thay đổi các thông số khác nữa, như là
khoảng thời gian tĩnh để các đối tượng di động đứng yên đủ lâu để có thể được tích
hợp vào hình nền, các ngưỡng để sử dụng trong hàm xác định độ khác biệt đặc
trưng của khung hình hiện thời và khung hình đối chiếu, ...
Dựa vào lý thuyết được trình bày ở trên, tôi xin đưa ra mô hình phát hiện chuyển
động được áp dụng trong chương trình thực nghiệm như sau.
Khung hình hiện
thời
Khung hình
trước
Rút trích đặc
trưng độ sáng
Rút trích đặc
trưng độ sáng
Đối sánh khung
hình
Cập nhật hình
nền
Khung hình
nền
Đối sánh hình
nền
Phát hiện đối tượng
chuyển động
Khác biệt
nền Khác biệt
khung hình
Khử nhiễu.
Khử bóng.
Đối tượng
chuyển động
Hình 4 - 2: Sơ đồ thuật toán phát hiện chuyển động cài đặt thử nghiệm
- 40 -
4.2.1 - Hàm rút trích đặc trưng Fa.
Chương trình thực nghiệm lấy giá tri đặc trưng màu để áp dụng cho quá trình phát
hiện chuyển động. Chương trình cũng sử dụng phương pháp hiệu chỉnh độ sáng sao
cho giảm thiểu nhiễu do tác động của môi trường sáng nên camera là khác nhau
trong thời gian vận hành 24 giờ.
Hàm lấy giá trị đặc trưng màu được cài đặt là trung bình cộng từng kênh màu (R, G,
B) của block. Sau đó được chuyển đổi các thông số R, G, B sang hệ màu H, L, S.
Ứng với mỗi block (kích thước n x n), chương trình sẽ lấy trung bình cộng từng
kênh màu R, G, B của tất cả điểm ảnh thuộc block đó. Các giá trị này sẽ được
chuyển đổi sang các giá trị trong hệ màu HLS.
Thảm khảo source code ở phần Phụ lục 1 và 2.
4.2.2 - Thuật toán cập nhật nền tự động.
Trong phương pháp cập nhật nền tự động, chương trình sử dụng một biến đếm thời
gian Ct = Kt gắn cho một block chuyển động. Cứ sau mỗi khung hình Mi được xử
lý, biến Ct sẽ giảm một đơn vị nếu block được coi là đứng yên. Nếu Ct = 0 tức là
sau Kt khung hình, block vẫn không thay đổi, thì block này được coi như là một
block của khung hình nền và được cập nhật lên khung hình nền.
- 41 -
Không khác biệt đủ lâu
theo ngưỡng cho trước
Cập nhật các block
không khác biệt
vào hình nền
Rút trích đặc
trưng
Rút trích đặc
trưng
Đối sánh khung hình đựa
theo giá trị đặc trưng
Khung hình nền đã
được cập nhật
Khung hình
trước đó
Khung hình
hiện thời
Hình 4 - 3: Mô hình phương pháp cập nhật động hình nền
Giá trị Kt là giá trị thực nghiêm. Chương trình cho phép thay đổi động giá trị Kt.
Tuy nhiên nếu chương trình tự động thay đổi hệ số Kt đẻ phù hợp với hoàn cảnh là
một bước cải tiến trong tương lai.
- 42 -
Không
Có
Khung hình
trước đó
Giảm biến đếm 1
đơn vị
Kiểm tra từng
block có
chuyển động
?
Đặt biến đếm
bằng giá trị Kt
Đặt block đứng
yên vào ảnh nền
Gán khung hình trước bằng
khung hình hiện thời.
Chờ khung hình tiếp theo.
Biến đếm
= 0?
Lấy khung hình
hiện thời
Sai
Đúng
Khung
hình nền
Bắt đầu
KThúc ?
Không
XL Thoát
Kết
thúc
Kết thúc
Hình 4 - 4: Thuật toán cập nhật nền động
- 43 -
Mô tả thuật toán:
Bước 1:
Khởi tạo hình nền ban đầu là khung hình hiện thời.
Khởi tạo các biến đếm cho các block tương ứng với khung hình nền Count[i]
= 0.
Sang bước 2
Bước 2:
Nếu mỗi block i trong khung hình hiện thời có chuyển động so với khung
hình trước đó
Thì đặt biến đếm Count[i] = Kt
Ngược lại:
Count[i] = max(0, Count[i] – 1)
Nếu Count[i] = 0 thì cập nhật block đứng yên i vào khung hình nền.
Sang bước 3
Bước 3:
Gán khung hình trước bằng khung hình hiện thời.
Lấy khung hình tiếp theo làm khung hình hiện thời.
Quay lại bước 2.
Chi tiết mã chương trình của thuật toán cập nhật hình nền tự động được trình bày
trong phần Phụ lục 4.
Bảng 4 - 1: Thống kê hiệu quả phát hiện chuyển động với ngưỡng cập nhật nền
STT Ngưỡng Kt Tỉ lệ phát hiện chuyển động đúng
1 20 30%
2 30 35%
3 40 53%
4 50 71%
5 80 79%
6 100 94%
7 120 86%
8 150 83%
Theo thực nghiêm hệ số Kt = 100 là thích hợp nhất.
4.2.3 - Hàm đo khoảng cách Fc.
Hàm đo khoảng cách Fc được áp dụng trong chương trình đơn giản là phép trừ bậc
một giữa hai giá trị đặc trưng. Hàm này được áp dụng cho từng cặp block của 2
hình được so sánh. Hàm này có sự tinh chỉnh về độ sáng và ngưỡng để có thể khử
- 44 -
được nhiễu, làm tăng hiệu suất phát hiện chuyển động. Các giá trị đặc trưng đầu vào
của hàm này chính là các giá trị đặc trưng của các block đã được chuyển đổi sang
các giá trị H, L, S.
Hàm đo khảng cách được trình bày source code ở phần Phụ lục 3.
4.2.4 - Hàm nhận biết chuyển động Fb
Trong bước tính toán này, ma trận Mc sẽ được đem so sánh vói một ngưỡng toàn
cục k. Điểm ảnh được coi là chuyển động nếu giá trị Fc(x, y, t) > k, đứng yên nếu
nhỏ hơn. Hệ số k cũng là hệ số thực nghiệm.
Hệ số k = 0.05 là thích hợp nhất.
- 45 -
Sai Đúng
Rút trích đặc trưng
độ sáng
Block được coi là
đứng yên
Ứng với mỗi
block, giá trị của
ma trận khác biệt
> ngưỡng Kt
Block được coi là
chuyển động
Các xử lý block
đứng yên
Các xử lý block
chuyển động
Lấy khung hình
hiện thời
Lấy khung hình
nền
Rút trích đặc trưng
độ sáng
Tính toán ma trận
khác biệt
Hình 4 - 5: Thuật toán nhận biết chuyển động
4.2.5 - Lọc nhiễu
Lọc nhiễu là một bước tinh chế quan trọng để nâng cao kết quả của bài toán.
Sau khi thực hiện bước phát hiện chuyển động, ta thu được một ảnh kết quả chứa
các đối tượng chuyển động. Tuy nhiên kết quả này vẫn tồn tại các nhiễu gây ra bởi
camera hoặc các sai số trong quá trình phát hiện chuyển động, các nhiễu này tồn tại
- 46 -
trong cả kết quả đối tượng chuyển động lẫn kết quả nền tĩnh đồng thời đường biên
của các đối tượng chuyển động không được trơn mịn.
Quá trình lọc nhiễu và khử bóng được thực thi để hạn chế ảnh hưởng của chúng trên
kết quả.
Cách thông thường người ta thường sử dụng để lọc các vùng nhiễu là phương pháp
loại bỏ các vùng nhỏ. Tuy nhiên nó có thể loại bỏ luôn các vùng nhỏ nhưng thật sự
cần thiết vì chúng thuộc về đối tượng chuyển động mà chúng ta cần thu nhận được,
và có các vùng nhiễu thật sự nhưng chúng khá lớn lại không được loại bỏ sau khi
lọc nhiễu.
Phương pháp này dựa trên việc theo dõi các vùng nhiễu nhỏ hơn vùng đối tượng
thật sự. Ban đầu một thuật toán xác định các thành phần liên thông sẽ tách các vùng
chuyển động. Sau đó dựa vào diện tích của từng vùng, các vùng có diện tích nhỏ
hơn một ngưỡng cho trước nào sẽ được xem như là vùng nhiễu. Ở đây có hai loại
nhiễu: nhiễu trên nền (nhiễu trắng) và nhiễu trên vùng đối tượng chuyển động
(nhiễu đen). Đối với loại nhiễu trên nền thì chúng ta sẽ thực hiện việc loại bỏ chúng
khỏi nền, còn đối với loại nhiễu trên vùng đối tượng chuyển động thì chúng ta sẽ
xem chúng là thuộc về đối tượng chuyển động đó. Sau bước này ta thu được kết quả
như hình 4 – 6 (c) từ hình 4 – 6 (b). Sau bước này, chúng ta sử dụng một bộ lọc Blur
với cửa sổ 3x3 để làm trơn mịn đường viền của vùng đối tượng và giảm thiểu tối đa
ảnh hưởng đến cấu trúc chi tiết của vùng ảnh có chứa đối tượng chuyển động. Kết
quả của bước này sẽ thu được như trong hình 4 – 6 (d).
- 47 -
(a) (b)
(c) (d)
Hình 4 - 6: Minh họa quá trình lọc nhiễu
Hình 4 – 6 (a) là ảnh gốc, (b) là kết quả nhận được sau khi đối sánh ảnh, (c) là kết
quả nhận được sau khi khử nhiễu trắng và nhiễu đen, (d) là kết quả thu nhận được
sau khi áp dụng bộ lọc Blur.
4.2.6 - Khử bóng
Trong nhiều ứng dụng thực tế, vùng bóng của đối tượng chuyển động sẽ xuất hiện
trong vùng nền của cảnh. Mỗi khi đối tượng chuyển động thì bóng của nó sẽ di
chuyển theo. Việc phân biệt đâu là vùng đối tượng và đâu là bóng của nó thực sự là
một việc khó khăn. Trong luận văn này, tôi chỉ hạn chế ảnh hưởng của bóng đối
tượng chuyển động đến kết quả thu nhận được do phải cân nhắc giữa hiệu quả của
việc khử bóng và cái giá phải trả cho việc đó thông qua tốc độ của ứng dụng.
Một phương pháp đơn giản và ít tốn kém hơn được ứng dụng trong luận văn để
giảm bớt bóng của đối tượng chuyển động. Mô hình của phương pháp này được
- 48 -
trình bày trong hình 4 – 7. Ảnh đầu vào được áp dụng một bộ lọc gradient và sau đó
được đưa qua thuật toán phát hiện đối tượng chuyển động đã được trình bày bên
trên. Bộ lọc ảnh được áp dụng có công thức như sau:
G = (I ⊕ B) – (I \ B)
Trong đó I là ảnh đầu vào, G là ảnh kết quả, B là một ma trận 3x3 phần tử của bộ
lọc. Giá trị của ma trận B trong bộ lọc gradient như sau:
0 0 0 0 -1 0
-1 0 1 0 0 0
0 0 0 0 1 0
Lý do mà bộ lọc này được chọn là dựa vào nhận xét trong điều kiện bình thường,
vùng bóng của đối tượng có khuynh hướng giảm dần về độ sáng. Do đó vùng bóng
của đối tượng sẽ bị loại bỏ đáng kể sau khi thực hiện bộ lọc này, bởi vì giá trị độ
sáng vùng bóng của đối tượng thay đổi rất nhỏ, trong khi vùng biên của đối tượng
lại có độ sai biệt độ sáng khá lớn.
Có một lưu ý về bộ lọc này là sẽ có sai số về đường biên của đối tượng trên kết quả
thu nhận được khi áp dụng bộ lọc này, phép toán trên công thức trên sẽ làm mở
rộng vùng biên của đối tượng. Để khắc phục được điều này thì bước sau cùng của
việc khử bóng là bước phục hồi đường biên của vùng đối tượng chuyển động.
- 49 -
Khung hình
hiện thời
Bộ lọc
Gradient
Bộ đệm
khung hình
Thuật toán phát hiện
chuyển động
Khung hình
hiện thời
Khung hình
trước
Phục hồi
đường biên
Vùng đối tượng
chuyển động
Hình 4 - 7: Mô hình phương pháp khử bóng
Một số hạn chế của phương pháp khử bóng này:
• Việc khử bóng đối tượng phụ thuộc vào độ mịn của bóng.
• Nếu bóng của đối tượng nằm trên một vùng có độ tương phản cấu trúc cao
thì hiệu quả sẽ không cao.
• Bộ lọc loại bỏ một số thông tin hình ảnh gốc cho nên kết quả phát hiện
chuyển động có thể bị suy giảm vì điều này.
- 50 -
(a) (b)
(c) (d)
Hình 4 - 8: Minh họa quá trình khử bóng
Hình 4 – 8 (a) là ảnh gốc, (b) là kết quả nhận được sau khi đối sánh ảnh, (c) là kết
quả nhận được sau khi áp dụng bộ lọc, (d) là kết quả thu nhận được sau khi khử
bóng.
4.3 - Cấu trúc chương trình
4.3.1 - Cấu trúc chính
Chương trình chính CameraSupervisor gồm có 3 phần: phần phát hiện chuyển
động, phần trợ giúp điều khiển giao thông và phần mô phỏng nút giao thông.
- 51 -
Module phát hiện chuyển động
Module trợ giúp điều
khiển giao thông
Module mô phỏng
nút giao thông
Dữ liệu vào từ Camera
(Khung hình hiện thời)
Khung hình
nền
Khung hình
trước đó
Vùng ảnh có đối
tượng di chuyển
Phát tín hiệu đèn
giao thông
Ước lượng các thành phần
chuyển động trên làn đường
Xác định thông tin về
các vùng chứa thông
tin giao thông của các
làn đường, trạng thái
Tín hiệu điều
khiển giao
thông
Bộ suy diễn để
đưa ra trợ giúp
điều khiển giao
thông
Tổng hợp khung
hình nền
Phát hiện
chuyển động
Hình 4 - 9: Cấu trúc chính của chương trình
- 52 -
4.3.2 - Phần phát hiện chuyển động
Hệ thống được cài đặt theo phương pháp phát hiện đối tượng chuyển động kết hợp
của phương pháp so sánh khác biệt đặc trưng giữa khung hình hiện thời với khung
hình trước đó, giữa khung hình hiện thời với khung hình nền.
Khung hình nền được tổng hợp tự động trong quá trình chạy.
4.3.3 - Phần mô phỏng nút giao thông.
Nút giao thông được mô phỏng trong chương trình gồm một ngã tư của hai đường
một chiều (hướng đi từ trên xuống và từ trái qua) và một hệ thống đèn giao thông
gồm 2 cột đèn tín hiệu.
Hệ thống trụ đèn giao thông gồm đầy đủ các tín hiệu đèn Xanh – Vàng – Đỏ.
Hệ thống định nghĩa 4 vùng thông tin của làn đường, 2 vùng bên trên và bên trái sẽ
mang nhiều thông tin quan trọng hơn cho việc điều khiển tín hiệu đèn giao thông từ
các thông tin phân tích thu nhận được thông qua chức năng phát hiện đối tượng
chuyển động của chương trình.
Đèn tín hiệu giao thông có nguyên lý hoạt động như là một hệ thống đèn giao thông
thật tại một ngã tư. Nó hoạt động theo thứ tự bình thường như sau:
• Xanh – Đỏ
• Vàng – Đỏ
• Đỏ - Xanh
• Đỏ - Vàng
Vào các trường hợp đặc biệt thì tín hiệu đèn giao thông còn có các trạng thái như:
• Tắt
• Ngừng hoạt động (Vàng – Vàng)
4.3.4 - Phần trợ giúp điều khiển giao thông.
Các thông tin về vùng thông tin trên làn đường giúp giới hạn các thông tin di
chuyển thu nhận được qua phần phát hiện chuyển động. Hai vùng bên trên và bên
- 53 -
trái là hai vùng chứa thông tin quan trọng, bởi vì đó là hai vùng mà phương tiện
giao thông sẽ đi qua và nguy cơ ùn tắc cao hơn so với hai vùng còn lại.
Hệ thống sử dụng các thông tin từ phần mô phỏng nút giao thông như là trạng thái
tín hiệu đèn giao thông, … kết hợp với các thông tin thu nhận được từ kết quả của
phần phát hiện chuyển động và áp dụng các phương pháp suy luận đặc thù để đưa ra
quyết định hỗ trợ điều khiển lại tín hiệu đèn giao thông trong phần mô phỏng.
4.3.5 - Chương trình mô phỏng nút giao thông.
Ở chương trình trên (CameraSupervisor), khả năng cho thấy sự tương tác giữa các
tín hiệu điều khiển giao thông và dòng xe cộ qua camera hoặc trong đoạn phim giao
thông chưa rõ nét được vì chưa tích hợp được vào hệ thống điều khiển giao thông
thực sự.
Chương trình này (CRS – CrossRoadSimulator) được viết thêm để mô phỏng hoạt
động giao thông tại một ngã tư. Nó minh họa rõ nét khả năng điều khiển giao thông,
cho thấy được tác dụng của các tín hiệu đèn giao thông đối với các phương tiện
tham gia giao thông như thế nào.
Chương trình này cũng có các giới hạn như chương trình trên, đó là chỉ mô phỏng
một ngã tư của 2 con đường một chiều Tây Æ Đông và Bắc Æ Nam. Các phương
tiện giao thông tham gia bao gồm: Xe con, xe tải và xe gắn máy.
4.4 - Môi trường cài đặt
• Hệ điều hành Windows XP.
• Chương trình chính CameraSupervisor: Ngôn ngữ lập trình Visual C + +
6.0 / DirectX 9.0.
• Chương trình mô phỏng nút giao thông CRS: Java.
4.5 - Cấu hình phần cứng
• Pentium PIV, 3GHz.
• 1GB RAM.
• 1 Camera (Webcam).
- 54 -
4.6 - Các giao diện chính và một số tính năng
4.6.1 - Chương trình CameraSupervisor
Hình 4 - 10: Giao diện của chương trình thử nghiệm, phần phát hiện chuyển động
- 55 -
Hình 4 - 11: Thể hiện quá trình cập nhật hình nền
- 56 -
Hình 4 - 12: Mô phỏng nút giao thông
Giao diện của chương trình đơn giản, thể hiện chức năng phát hiện đối tượng
chuyển động và mô phỏng một nút giao thông là một ngã tư của 2 con đường 1
chiều.
• Tham số Radius dùng để điều chỉnh kích thước của block. Kích thước đó
được xác định theo công thức:
Block size = Radius * 2 + 1
- 57 -
Vị trí để xác định block là tâm của nó và có phạm vi là 1 ô vuông có
bán kính là Radius.
• Tham số Static Interval dùng để điều chỉnh khoảng thời gian Kt để cập nhật
khung hình nền.
• Tham số Thresold1 và Thresold2 dùng để điều chỉnh các ngưỡng để khoảng
xác định khoảng sai biệt đặc trưng của các block khi phát hiện chuyển động.
Vị trí các cột tín hiệu đèn giao thông cũng như tọa độ các góc của vùng tứ giác xác
định thông tin của làn đường đều có thể thay đổi được bằng cách dùng chuột để di
chuyển, và các thông tin đó được tự động lưu giữ lại trong file Thesis.cfg. Nếu file
này chưa được tạo ra thì nó sẽ được chương trình tạo ra bằng các hằng số mặc định.
Khả năng thay đổi này được cài đặt để đáp ứng nhu cầu áp dụng tại nhiều địa hình
thử nghiệm khác nhau.
Hình 4 - 13: Nút giao thông có khả năng được thay đổi tùy theo địa hình áp dụng
- 58 -
4.6.2 - Chương trình CRS
Hình 4 - 14: Giao diện chương trình CRS.
Giao diện chính của chương trình này gồm có một mô hình giả lập một ngã tư hai
con đường một chiều Tây Æ Đông và Bắc Æ Nam, và một bộ điều khiển lưu lượng
trên 2 con đường đó. Ngoài ra chương trình còn hiển thị một đồng hồ đếm giờ
ngược, nó thể hiện khoảng thời gian còn lại của tín hiệu đèn xanh hoặc vàng đang
được bật.
- 59 -
Chương trình được thiết kế với một số tính năng sau:
• Chương trình chạy với tốc độ 15 frames/giây.
• Mỗi loại xe có một diện tích khác nhau và chúng được lập trình để chạy trên
các làn đường dành riêng:
o Xe con: chạy trên làn đường bên trái. Phần đường này chiếm 4/12 chiều
rộng con đường.
o Xe tải: chạy trên làn đường chính giữa. Phần đường này chiếm 5/12 chiều
rộng con đường.
o Xe gắn máy: chạy trên làn đường bên phải. Phần đường này chiếm 3/12
chiều rộng con đường.
• Thời lượng đèn vàng là 3 giây, thời lượng đèn xanh tối đa là 60 giây. Tuy
nhiên thời lượng đèn xanh sẽ được ước đoán trước dựa vào số phương tiện
giao thông đang đợi đèn đỏ khi tín hiệu đèn xanh chuẩn bị được bật. Công
thức để ước lượng thời gian đèn xanh là:
Min(60, Số_phương_tiện_đang_đợi_đèn_đỏ * 3) giây.
• Trong quá trình điều khiển lưu lượng trên một con đường, nếu như số lượng
tối đa phương tiện giao thông được tham gia lớn hơn số lượng phương tiện
giao thông đang hiện hữu trên con đường đó thì sẽ có thêm một số phương
tiện nữa được bổ sung vào. Ngược lại nếu số này nhỏ hơn, thì khi các
phương tiện đang tham gia trên con đường đó ra khỏi tầm nhìn của bộ mô
phỏng, chúng sẽ không tham gia trở lại nữa nếu số phương tiện còn lại vẫn
vượt quá con số mới được chọn này.
• Khi một phương tiện đã vượt ra khỏi tầm nhìn của bộ mô phỏng, thì nó sẽ trở
rời khỏi hệ thống và chỉ trở lại khi xác xuất hoạt động trở lại được đạt đến.
Xác suất này là 90/00.
• Trong quá trình chạy, nếu một làn đường có số phương tiện đang hoạt động
ít hơn số tối đa, thì phương tiện mới sẽ phát sinh bổ sung ngẫu nhiên với xác
suất như trên. Xác suất phát sinh ngẫu nhiên của từng loại phương tiện lần
lượt là: Xe hơi – 45%, xe tải – 30% và xe máy 25%.
- 60 -
• Mỗi loại phương tiện có các hành động khởi động, chạy bình thường, tăng
tốc, thắng.
• Mỗi phuơng tiện giao thông có một xác suất tăng tốc nhằm làm cho giao
thông đa dạng hơn. Xác suất này là 30/00. Nếu xác suất này xảy ra thì phương
tiện đó sẽ tăng tốc để chạy nhanh hơn để vượt lên xe khác.
• Trong quá trình chạy phương tiện giao thông sẽ tự ước đoán đoạn đường
trước mặt, nếu có phương tiện khác cản đường thì nó sẽ tự giảm tốc hoặc
dừng lại tránh. Nếu tín hiệu đèn vàng bật lên, phương tiện giao thông sẽ tự
ước đoán xem nó có bị đi lố vạch sơn dừng hay chưa. Nếu sẽ bị lố thì nó sẽ
tiếp tục chạy qua ngã tư, ngược lại nó sẽ tự dừng lại đợi đèn đỏ ở trước vạch
sơn dừng hoặc sau đuôi một phương tiện khác ở trước mặt.
• Hiện hệ mô phỏng này chỉ mới xây dựng cho các loại phương tiện khác nhau
chạy trên các làn đường quy định, và chúng xuất phát ở vị trí nào của làn
đường thì sẽ vẫn giữ nguyên vị trí đó chứ chưa hoàn thiện chức năng tránh
né hoặc lạng lách. Chức năng này sẽ được hoàn thiện trong giai đoạn phát
triển sau này của chương trình.
• Người sử dụng có thể can thiệp vào quá trình điều khiển đèn bằng cách bấm
nút phải chuột để cưỡng chế chuyển trạng thái đèn. Chương trình có 4 trạng
thái đèn tuần tự như sau:
o Xanh – Đỏ: Tây Æ Đông: Xanh; Bắc Æ Nam: Đỏ.
o Vàng – Đỏ: Tây Æ Đông: Vàng; Bắc Æ Nam: Đỏ.
o Đỏ - Xanh: Tây Æ Đông: Đỏ; Bắc Æ Nam: Xanh.
o Đỏ - Vàng: Tây Æ Đông: Đỏ; Bắc Æ Nam: Vàng.