Tải bản đầy đủ (.pdf) (15 trang)

BÁO CÁO ĐỀ TÀI NGHIÊN CỨU KHOA HỌC: NGHIÊN CỨU GIẢI PHÁP THỐNG KÊ LƯU LƯỢNG GIAO THÔNG

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (602.24 KB, 15 trang )

HỌC VIỆN KỸ THUẬT QUÂN SỰ
KHOA CÔNG NGHỆ THÔNG TIN






BÁO CÁO ĐỀ TÀI NGHIÊN CỨU KHOA HỌC

ĐỀ TÀI: NGHIÊN CỨU GIẢI PHÁPTHỐNG KÊ LƯU LƯỢNG GIAO THÔNG

Giáo viên hướng dẫn: Trần Nguyên Ngọc
Nhóm sinh viên thực hiện:
Lại Phú Kiên – Tin Học 8B
Nguyễn Văn Đức – Tin Học 8B
Nguyễn Văn Toàn – Tin Học 8A








HÀ NỘI, 04/2013
1. Tổng quan về đề tài
1.1 Giới thiệu bài toán
Trong bối cảnh dân số đông, ngày càng tăng, cùng với đó phương tiện lưu thông
cũng dần tăng theo đòi hỏi cơ sở hạ tầng giao thông phải đáp ứng được nhu cầu của
người dân. Giải quyết vấn đề trên đối với nước ta là không hề đơn giản và cần thời


gian dài. Vì vậy, việc thống kê được lưu lượng phương tiện lưu thông có ý nghĩa quan
trọng trong việc quy hoạch giao thông của đất nước trong thời gian tới.
Nắm được ý nghĩa quan trọng đó, nhóm chúng em đã thực hiện đề tài “ Nghiên cứu
giải pháp thống kê lưu lượng giao thông” để áp dụng vào thực tế

1.2Phạm vi và mục đích
Thống kê lưu lượng giao thông là một ứng dụng quan trọng trong thực tế. Để thực
hiện được việc này thì phát hiện đối tượng tham gia giao thông là phần không thể
thiếu. Việc nghiên cứu, ứng dụng một thuật toán trên cơ sở thị giác máy tính để giải
quyết vấn đề phát hiện xe trong thời gian thực đã trở thành một vấn đề cấp thiết
Đề tài được thực hiện trong các điều kiện:
- Camera ghi hình trực diện từ phía trên xuống, cường độ ánh sáng là 300 ÷ 500
lux (độ sáng tiêu chuẩn bình thường) hoặc ánh sáng ngoài trời ban ngày bình
thường.
- Đối tượng là các loại xe với các hình dáng khác nhau tham gia giao thông (xe
máy, xe hơi cá nhân, xe buýt ).
2. Cơ sở lý thuyết
2.1 Phát hiện đối tượng
Phát hiện đối tượng (object detection) là một bài toán quan trọng trong lĩnhvực thị
giác máy tính. Đây là một hướng nghiên cứu có nhiều ứng dụng trong thực tế như
thể thao, giao thông, giao tiếp người và máy. Phát hiện đối tượng chuyên biệt, ví dụ
như xe hơi trong cảnhquang giao thông, liệu có xuất hiện trong ảnh thu được từ
camera (hình động) haynhững tấm hình tĩnh dựa trên sự trợ giúp của máy tính từ lâu
đã được con ngườinghiên cứu và phát triển bởi nó đóng vai trò là cơ sở chung và là
nền tảng để nghiêncứu và ứng dụng trong các lĩnh vực và các hệ thống khác.
Trong quá trình nghiêncứu và phát triển, thì yêu cầu được đặt lên hàng đầu là yếu
tố chính xác và phải thựchiện nhanh chóng trong thời gian thực. Do vậy, việc này cần
có sự phối hợp và bổsung chặt chẽ cho nhau của hai lĩnh vực là Xử lý ảnh (Image
Processing) và Thịgiác máy tính (Computer Vision)


2.2Một số phương pháp phát hiện đối tượng
Có rất nhiều phương pháp và hướng tiếp cận của vấn đề phát hiện đối tượng nói
chung và phát hiện phương tiện nói riêng. Có hai hướng tiếp cận chính thường được
sử dụng để phát hiện đối tượng đó là: các phương pháp dựa trên ảnh và các phương
pháp dựa trên dạng hình học.
2.1.1 Phương pháp dựa trên ảnh
Các phương pháp thuộc nhóm này dựa trên một tập hợp các hình mẫu của
đốitượng và sử dụng cửa sổ trượt để phát hiện xe
Một số các phương pháp thuộc nhóm này:
 Phương pháp EigenObjects (PCA)
 Phương pháp Fisher ‘s Linear Discriminant
 Các phương pháp dựa trên Eigen-space
 Các phương pháp dựa trên mang nơ-ron nhân tạo
 Support Vector Machine – SVM
 Phương pháp Mô hình Markov ẩn (Hidden Markov Model – HMM)
 Phương pháp Sparse Network of Winnows (SNoW)
Do nhóm phương pháp này dựa trên việc huấn luyện sao cho thu được mô hình đối
tượng xe từ một tập dữ liệu tích cực (positive - ảnh có chứa hình phương tiện) và một
tập dữ liệu không tích cực (negative - ảnh không chứa hình phương tiện) nên chúng
có sự tương quan so sánh trực tiếp đến các đặc điểm hình học của một kiểu phương
tiện điển hình. Nhược điểm của phương pháp này đòi hòi phải luôn có sẵn cơ sở dữ
liệu hình rất lớn. Để có thể phát hiện và nhận dạng được, máy tính phải luôn dò trong
cơ sở dữ liệu hình này rồi mới đưa ra kết quả
2.1.2. Phát hiện dựa trên dạng hình học
Khác với nhóm phương pháp vừa nêu ở trên, các phương pháp thuộc nhóm này
quan tâm đến các đặc điểm cấu trúc hình học của phương tiện. Vì vậy chúng còn được
gọi là nhóm tiếp cận dựa trên đặc trưng (feature - based). Tùy theo cách triển khai vấn
đề mà chúng được chia thành hai phân nhóm:
 Các phương pháp Bottom – Up: chủ yếu dùng các đặc điểm hình dáng bấtbiến của
xe đối với ngoại cảnh và nền ảnh để phát hiện ra xe. Rồi tùy vào mối liênhệ của

chúng với nhau mà thiết lập các liên kết giữa các đặc điểm bất biến này ngaytrong
ảnh đầu tiên, tiếp theo sẽ dựa vào đó mà tìm chúng trên các ảnh kế tiếp.
 Phương pháp dựa trên luồng ánh sáng (hay lưu lượng quang - optical flow): là
phương pháp xử lýtổng quan ánh sáng theo tuần tự các bước. Thứ nhất, thuật toán
tìm đặc trưng quan trọng của đối tượng (ví dụ như góc của xe) trong hai khung
hình liên tiếp nhau. Thứ hai, dùng thuật toán để hợp nhất tính liên quan đồng nhất
giữa các đặc trưng đó (trong trường hợp này là góc của xe). Bước cuối cùng, các
luồng đặc trưng đối tượng đã được trích xuất khỏi ảnh được tập hợp lại thành một
nhóm nếu các khoảng cách Euclide của các luồng (vị trí đối tượng và hướng
chuyển động của đối tượng) là nhỏ.
Trong các phương pháp thuộc nhóm Bottom Up. Phương pháp trừ nền phương
pháp nền tảng.Phương pháp này thích hợp với trường hợp ảnh nền không có sự thay
đổi.
Ý tưởng chung của các phương pháp trừ nền: để phát hiện được các đối tuợng
chuyển động trong video chúng ta phải có được mô hình background. Mô hình
background này có thể được học qua nhiều frame ảnh. Sau đó ta sẽ dùng mô hình
background này để so sánh với frame ảnh hiện tại và kết quả là ta sẽ nhận biếtđược
đâu là vùng nền, đâu là các đối tượng.
Trong đề tài này, việc phát hiện phương tiện được thực hiện bằng phương pháp
Frame Differencing
3. Phương pháp Frame Differencing
Trong số các phương pháp trừ nền,Frame Differencing được xem là phương pháp
đơn giản nhất. Chi phí tính toán thấp, tốc độ thực thi thuật toán nhanh.Ý tưởng chính
trong phương pháp này là các đối tượng chuyển động sẽ được phát hiện dựa trên sự
khác biệt giữa hai frame ảnh liên tiếp nhau cùng với một ngưỡng được chọn trước.
Giải thuật trên được thực hiện bằng phương pháp trừ hai frame liên tiếp, đối với mỗi
giá trị pixel kết quả ta so sánh giá trị tại pixel đó với ngưỡng đã được chọn. Nếu giá
trị này nằm trong ngưỡng cho phép thì tại đó ta xem như là background, ngược lại là
foreground


Trong đó: frame ảnh thứ t+1
frame ảnh thứ t
: ngưỡng được chọn
Việc xác định ngưỡng ảnh hưởng rất lớn đến độ chính xác của thuật toán, vì thế
ngưỡng trong đề tài được lấy theo hai hướng đó là chọn cố định và chọn tự động cập
nhập qua từng frame theo thuật toán Isodata
 Thuật toán Isodata:
 Là một quá trình tính toán lặp đi lặp lại để chọn ra ngưỡng.
 Với ngưỡng ban đầu bằng L/2 (với L = 255). Thuật toán tính mẫu trung bình
của các mức xám liên kết với các điểm ảnh foreground và mẫu trung bình các
mức xám liên kết với background, tính ngưỡng mới bằng 2 giá trị trên chia
cho 2, nếu trị tuyệt đối của hiệu ngưỡng cũ và ngưỡng mới vừa tính được mà
nhỏ hơn epsilon (= 1) thì dừng việc lặp tính toán lại, nếu không thì tiếp tục
tính.
 Mô tả bằng mã lệnh:


















Trong đó: teta: ngưỡng được chọn
h(i): histogram của mức xám i
m1: giá trị mẫu trung bình foreground
m2: giá trị mẫu trung bình background
4. Xây dựng chương trình thử nghiệm
4.1 Ý tưởng
- Máy tính nhận tín hiệu video trực tuyến từ camera (hoặc nhập một file video). Trong
trường hợp không thể cho hệ thống thực hiện tại thực địa cảnh quang giao thông thì
có thể quay video lại cảnh quang giao thông cho máy tính xử lý.
- Sau thời gian tính toán, máy tính sẽ tiến hành phát hiện phương tiện xuất hiện trong
chuỗi hình ảnh và tiến hành khoanh vùng có chứa phương tiện
- Sử dụng thuật toán đếm số lượng và phân loại xe
4.2 Thuật toán
m1 = 0; m2 = L;
teta = (m1 + m2) / 2
stop = false
while !stop
ts1 = 0; ts2 = 0
ms1 = 0; ms2 = 0
for i = 0 to teta
ts1 = ts1 + h(i) * i
ms1 = ms1 + h(i)
m1 = ts1/ms1
for i = teta to L
ts2 = ts2 + h(i) * i
ms2 = ms2 + h(i)
m2 = ts2/ms2
tg = Round((m1 + m2) / 2)

if teta - tg <
stop = true
teta = tg
loop
Sơ đồ thuật toán chương trình thử
nghiệm

































Camera / File video
AVI
Tiền xử lý
Phát hiện đối tượng
Khoanh vùng
Thống kê số lượng
Kết thúc
Bắt đầu
4.2.1 Giai đoạn 1: Tiền xử lý
Video đầu vào hoặc thu trực tiếp từ camera được tách thành các frame và đưa về ảnh
đa mức xám
4.2.2 Giai đoạn 2: Phát hiện phương tiện
Trong giai đoạn này, giá trị của hai frame liên tiếp được trừ cho nhau rồi so sánh
với ngưỡng được chọn.Đối với quá trình phân ngưỡng cố định, qua thực nghiệm em thấy
vùng chuyển động thường có ngưỡng lớn hơn 80.
Quá trình phân ngưỡng tự động bằng Isodata sẽ tính toán ngưỡng tự động thông
qua việc tính toán Histogram
Frame gốc và Frame sau khi dùng thuật toán Isodata
- Từ kết quả tách đối tượng trên đã cho chúng ta thấy được đối tượng khá rõ
ràng, tuy nhiên vẫn còn nhiều chỗ trên ô tô không phát hiện được “là đối
tượng” nên có hiện thượng điểm đen (nền) thay vì các điểm trắng (đối tượng)
khác trên ô tô. Đó cũng là nhược điểm của các phương pháp này nói riêng và

các phương pháp tách đối tượng/nền nói chung, phương pháp tỏ ra hiệu quả
với những điểm biên hơn là điểm ảnh bên trong lòng đối tượng do sự dịch
chuyển/thay đổi của những điểm ảnh này là không đáng kể do đó bị xem như
là background.
- Để thống kê được phương tiện, cần phải khoanh vùng được đối tượng do đó
cần phải nhóm được đối tượng vào một phân vùng riêng (có chứa các tọa độ
các điểm thuộc đối tượng). Tuy nhiên qua ảnh kết quả tách trên thì trước hết
cần phải lấp đầy các điểm đen bằng các điểm trắng mà vốn thuộc về đối tượng
lại, ta thực hiện việc làm đầy ảnh.
Kỹ thuật làm đầy ảnh:
Dùng mặt nạ 3x3 duyệt trên ảnh, nếu tại điểm trung tâm của mặt nạ mà có giá
trị trắng (thuộc về đối tượng) thì thiết lập giá trị tại 8 điểm lân cận còn lại của
mặt nạ 3x3 thành giá trị trắng.
Ảnh sau khi được làm đầy 8 lần:















- Tuy nhiên cũng chính việc làm đầy ảnh mà vô tình trong nhiều trường hợp các

đối tượng tuy không đứng sát cạnh nhau nhưng sau khi làm đầy lại trở thành
như 1 đối tượng.
- Như vậy các điểm thuộc về đối tương đã được lấp đầy để phục vụ công việc
phân vùng các điểm ảnh lại với nhau.
Việc phân vùng dựa trên khoảng cách của các điểm ảnh gần nhau, nếu thỏa
mãn nhỏ hơn một khoảng cách nhất định thì coi chúng là các điểm liên kết với
nhau tạo thành một phân vùng. Lưu tọa độ các điểm ảnh thuộc từng phân vùng
một.
Ví dụ hình ảnh về việc phân vùng:























4.2.3 Giai đoạn 3: Khoanh vùng đối tượng
Sau khi phát hiện ra phương tiện, các vùng này sẽ được khoanh riêng để lấy thông
tin. Việc khoanh vungc các đối tượng được thực hiện bằng hàm cvFindContours ( trong
bộ thư viện OpenCV)



4.2.4 Thống kê phương tiện
Dựa vào đặc điểm của đường bao phương tiện thu được ở bước 3, ta phân loại số
lượng xe theo diện tích đường bao. Với video đầu vào kích thước 360x640 thì vùng xe
đạp và xe máy có diện tích từ 8000 đến 20000 còn xe ô tô có diện tích lớn hơn 20000.
Cũng nhờ diện tích này, các vùng có diện tích nhỏ hơn 8000 sẽ bị xóa bỏ
Từ các tọa độ của từng phân vùng, tiến hành tìm tọa độ Min(xMin, yMin) và tọa
độ Max(xMax, yMax) để khoanh thành một hình chữ nhật vừa đủ để bao hết đối tượng.
Từ đó thực hiện việc đếm phương tiện.
Nhưng cần phải loại bỏ những phân vùng bé hơn đối tượng (là những điểm nhiễu
được làm đầy ảnh) bằng cách tính diện tích hình chữ nhật bao quoanh phân vùng đó, nếu
nhỏ hơn một mức nhất định (trước đó thống kê diện tích của các phương tiện) để tăng độ
chính xác của việc thống kê lưu lượng.
Minh họa kết quả của bước này bằng hình ảnh:















 Loại bỏ những phân vùng nhỏ/nhiễu (ví dụ là 2 vùng được khoanh đỏ)
Kết quả hiển thị trên frame gốc:













- Công đoạn tính diện tích hình chữ nhật bao quoanh của từng phân vùng cũng
dùng để phân loại đối tượng là xe máy hay ô tô vì rõ ràng xe máy có diện tích
nhỏ hơn ô tô.
- Cuối cùng là công đoạn đếm phương tiện và hiển thị lên frame gốc. Cách của
đề tài nhóm em thực hiện đếm là:
 Đầu tiên xét 2 đường đi ngang qua frame ở phía dưới (có tọa độ được
chọn cố định theo từng video).
 Nếu hình chữ nhật bao quoanh phân vùng mà có tọa độ yMin/yMax (tùy
theo chiều đi của phương tiện, video trên là yMin) nằm trong 2 đường đi
ngang đó thì biến đếm tăng lên 1.

Tuy nhiên nếu phương tiện đi quá nhanh thì sẽ vô tình không nằm trong vùng
đường ngang đó hoặc phương tiện đi chậm/dừng hẳn lại trong vùng đếm đó thì
biến đếm tăng rất nhanh do xử lý trên từng frame một hoặc nếu đường nằm ngang
quá bé/quá rộng cũng làm cho việc đếm không chính xác.
 Giải pháp cho việc đếm này là lưu lại tọa độ của các hình chữ nhật tại frame
trước để frame tiếp theo tìm xem nếu cả 2 hình chữ nhật được coi là cùng một
đối tượng có yMin nằm trong vùng 2 đường nằm ngang (đường nằm ngang
được nới rộng hơn) đó thì sẽ không đếm nữa. Tuy nhiên nhóm em chưa kiểm
soát được đối tượng ở 2 frame liên tiếp nên chưa thực hiện được giải pháp này
do vậy việc đếm còn nhiều sai sót.
Hình ảnh minh họa cho công đoạn đếm trên:

5. Kết quả và hướng phát triển
5.1. Kết quả
Vì vùng phương tiện phát hiện được có ngưỡng lớn hơn 80 nên trong chương trình
thử nghiệm, chúng em tiến hành thử nghiệm với 1 số ngưỡng lớn hơn 80 để thống kê
và phân loại phương tiện
 Mẫu thử nghiệm
Video
Số frame
Thời gian
Số xe máy và xe
đạp
Số xe ô tô
Tổng số
xe
0150.avi
2784
00:01:51
87

26
113
0250.avi
3113
00:02:04
127
30
157

 Kết quả

Với ngưỡng được chọn bằng 80
- Video 0150.avi:
Phương pháp
Số lượng phương tiện
thực tế
Số lượng
đếm được
Độ chính xác (%)
Ngưỡng cố
định
113
118
95.57
Tự động chọn
ngưỡng bằng
Isodata
113
111
98,23


- Video 0250.avi:
Phương pháp
Số lượng phương
tiện thực tế
Số lượng đếm
được
Độ chính xác
Ngưỡng cố định
157
167
93.63
Tự động chọn ngưỡng
bằng Isodata
157
161
97.45

Kết luận: Qua kết quả của chương trình thử nghiệm, chúng e rút ra một số kết luận về
phương pháp này như sau:
- Ưu điểm:
 Dễ cài đặt.
 Tốc độ thực thi khá nhanh.
 Thuật toán chạy có độ chính xác cao trong trường hợp các đối tượng di
chuyển liên tục, đều.
- Nhược điểm:
 Chỉ hoạt động tốt khi điều kiện ánh sáng ổn định, thời tiết không mưa nếu
không việc trừ ảnh, tính ngưỡng bị ảnh hưởng nhiều dẫn tới kết quả phát
hiện đối tượng chuyển động không đúng.
 Khi 2 hay nhiều đối tượng ở vị trí cạnh nhau thì dẫn đến trường hợp nhận

biết nhầm nhiều đối tượng thành một đối tượng có kích thước lớn.
 Khi mật độ phương tiện đông thì phương pháp này không thể dùng được.
 Phương pháp này xác định đối tượng chuyển động chính xác cao đối với
những điểm biên của đối tượng. Đối với những điểm ảnh trong lòng đối
tượng do sự dịch chuyển/thay đổi của những điểm ảnh này là không đáng
kể do đó sẽ bị xem như là background.
 Trong trường hợp khi một đối tượng ngưng chuyển động trong một khoảng
thời gian thì cũng sẽ bị xem là background.
 Một vài đối tượng lớn như xe ô tô khi trừ ảnh để tách đối tượng xuất hiện
một hoặc nhiều khoảng đen dẫn đến sai sót trong việc bao đối tượng


































5.2. Hướng phát triển đề tài
- Nâng cao hiệu quả chương trình, phát hiện phương tiện trong các trường hợp
nhiễu, hạn chế việc mất mát thông tin đối tượng tham gia lưu thông
- Phát triển thành module phần cứng, có khả năng tương thích với các thiết bị
quan sát như camera
- Kết hợp với hệ thống khác để hỗ trợ tốt hơn viêc quản lý giao thông
6. Tài liệu tham khảo

- Luận văn: Nhận dạng xe trên cơ sở thị giác máy tính – Vũ Hồng Phong, ĐHQG
HCM
- Computer Vision with the OpenCV Library, NXB O’REILLY.
- Slide bài giảng Segmentation mục Isodata algorithm, PGS. TS Đào Thanh Tĩnh,
Học viện Kỹ thuật Quân sự.

×