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.
                
              
                                            
                                
            
 
            
                 23 trang
23 trang | 
Chia sẻ: vietpd | Lượt xem: 1812 | Lượt tải: 1 
              
            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 cho đô 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.