Phân tích kích thước phương tiện
3.1.1.
Ảnh thu được từ phép trừ nền, trong đó các phương tiện có thể tạo thành một khối, gây ra việc đếm sai, cần phải theo dõi và phân tách chúng riêng ra. Một trong những cách giải quyết là theo dõi đối tượng chuyển động dựa trên độ dài.
(a) ô tô con (b) 2 ô tô dọc (c) 2 ô tô lệch phải (d) 2 ô tô lệch phải
(e) 1 xe máy (f) 2 xe máy trước sau (g) 2 xe máy ngang nhau
Hình 3.1. Phân tích kích thước khối xe ô tô con
Phương pháp phân đoạn và nhận dạng khối ô tô sử dụng chiều dài và chiều rộng để phát hiện và nhận dạng các loại ô tô khác nhau từ các đối tượng trong khối, hoặc đối tượng đơn lẻ.
Do chiều dài và rộng của xe thay đổi theo kiểu xe, nên phân loại sơ bộ bằng chiều dài và chiều rộng. Nếu chiều dài của một đối tượng chuyển động là khoảng 15-17m, chiều rộng vào khoảng 3-4m, thì đối tượng đó được phân loại là một ô tô to như xe bus hay xe tải. Nếu chiều dài của đối tượng giữa khoảng 4,5-7,5m, chiều rộng giữa khoảng 1,4-3,0m, đối tượng chuyển động đó được xem như xe nhỏ, ví dụ như VAN, chuyên dùng, sedan, hay xe tải nhỏ1
. Sau khi phân loại sơ bộ, phương pháp nhận dạng sẽ phân loại chính xác các xe nhỏ.
Mệnh đề 3.1. Tỷ lệ chiều dài/rộng của xe
Gọi U={ui, i=1..n} và V={vi, i=1..n} là tập chiều dài và tập chiều rộng của xe (ô tô, xe máy), tương ứng. K={ki=ui/vi, i=1..n} là tập tỷ lệ giữa chiều dài và chiều rộng của xe. Bộ số liệu Z=KV={zj, j=1..nn} có tính chất zizj, với
ij, (i,j [1..nn]).
Bằng thực nghiệm thống kê (Phụ lục 1) hoàn toàn có thể kiểm nghiệm được mệnh đề trên là đúng.
Tỷ lệ chiều dài xe/rộng kết hợp với xem xét chiều rộng xe mang lại các bộ số liệu khác nhau, có thể phân loại được loại của phương tiện (O) là xe máy (XM), xe con (XC), xe tải (XT). Kết quả phân tích thống kê trong phụ lục 1.
Gọi: d1=[1.44 1.55] ; d2 =[0.8 1.00] ; d3=[1.451.55] ; v1=[0.6750.740] ; v2=[1.4951.910] ; v3=[2.2402.500]. Ta có: { ( ) ( ) ( ) ( ) ( ) ( ) (3.1)
Hình 3.11a thể hiện hình ảnh một xe con, hình 3.11g thể hiện hình ảnh của một cặp xe máy dính khối. Trong một số trường hợp khi mà tỷ lệ cao/rộng và chiều rộng của khối có thể nhập nhằng giữa một khối là ô tô với một khối là tập hợp xe máy thì xác định thêm thông số diện tích của đường viền bao quanh khối.
Mệnh đề 3.2. [Diện tích đối tượng ảnh]
Gọi A và B là ảnh của xe một ô tô và một khối xe máy có cùng kích thước hộp bao C(l, w) có chiều dài l và chiều rộng w, gọi DT(A) và DT(B) là diện tích của A và B trong ảnh, tương ứng, gọi CV(A) và CV(B) là chu vi đường bao của khối ô tô và khối xe máy tương ứng. Ta có:
( ) ( )
( )
( ) (3.2)
Hình chiếu của khối ô tô lên không gian 2D gần với đa giác lồi hơn so với hình chiếu của khối xe máy, hay nói cách khác khối xe máy trong không gian 2D có hình chiếu gần với đa giác lõm hơn. Do vậy, khi hai khối xe ô tô và xe máy có cùng kích thước chiều dài, chiều rộng, thì tỷ lệ giữa diện tích và chu vi của khối ô tô sẽ lớn hơn tỷ lệ của khối xe máy tương ứng (Theo tính chất của đa giác lồi, đa giác lõm).
Thuật toán phân loại theo kích thước
3.1.2.
Hình 3.2. Sơ đồ tổng quát phân giải theo độ dài
Khối phương tiện Tính toán tham số khối
1 xe máy 1 xe con 1 xe tải
2 xe máy 2 xe con 2 xe tải
Kết thúc Lớn hơn khối
đôi Tách khối
Không phân loại
Khối đôi Bắt đầu Đúng Đúng Được Không được Sai Sai
Thuật toán phân loại phương tiện dựa trên kích thước (CVIL)
Input: Các khối chuyển động (kết quả thuật toán EMB) Output: Loại phương tiện (ô tô con, ô tô tải, xe máy) Nội dung thuật toán:
1. Trích chọn các khối chuyển động
//Sử dụng thuật toán EMB => danh sách các khối Block[i] n=DemSoKhoi(FG)
For i = 1 to n
Block[i] = XacDinhKhoi(FG)
2. Đối với mỗi khối chuyển động Block[i], tính toán tham số khối
For i = 1 to n {
u= ChieuDai(Block[i]) v= ChieuRong(Block[i]) }
3. Phân giải khối
- Tỷ lệ chiều dài/chiều rộng k=u/v - Nếu thuộc khối xe máy
if (v v1){
if (k d1) XM
if (|k - Max{d1}| ≤ ) 2XM if (|k =Max{d1}/2| ≤ ) 2XM }
- Xử lý khi thuộc khối xe con if (v v2) {
if (k d2) XM
if (|k - Max{d2}| ≤ ) 2XC if (|k - Max{d2}/2| ≤ ) 2XC }
- Xử lý khi thuộc khối xe tải if (v v3){
if (k d3) XT
if (|k =Max{d3}/2| ≤ ) 2XT }
- Nếu v không thuộc v1,v2,v3 thì: If (v<v1) loại bỏ khối
If (v>v3) Phân tách khối 4. Phân tách khối
If (Phantach(Block) = True) Quay lại bước 3 else Stop.
Độ phức tạp của thuật toán CVIL:
- Độ phức tạp của thuật toán CVIL phụ thuộc chính vào thuật toán EMB, do đó ta có độ phức tạp của thuật toán CVIL là O(NF n m).
- Sai số cho phép là giá trị sai khác về kích thước cho phép khi tính toán. Tham số này có thể được chọn qua phương pháp thực nghiệm.
- Kỹ thuật phân tách khối liên quan nhiều đến kỹ thuật ghép biên, chia cắt biên, nối liền biên,... được xem như là một thách thức cho bài toán nghiên cứu tiếp tục. Một phương pháp tách khối ô tô được trình bày trong phần 3.3.
- Trong một số trường hợp cụ thể có thể dùng phương pháp máy học để nhận dạng và phân loại trực tiếp những khối không rõ ràng này. Vấn đề này được trình bày trong mục 3.4.
Kết quả thực nghiệm:
Hệ thống thực nghiệm được cài đặt trên môi trường Microsoft Vision Studio 12 và thư viện mã nguồn mở EMGU. Sử dụng kết quả của thực nghiệm ở chương 2 để xác định các khối phương tiện (ô tô). Tham số chiều rộng, chiều dài trung bình một số loại xe của nhà sản xuất trong phụ lục 1.
Dữ liệu đầu vào sử dụng bộ dữ liệu như đã sử dụng trong thực nghiệm ở chương 1, được thu thập thực tế tại 4 cung đường: Cao tốc Bắc Thăng Long - Nội bài; Đại lộ Thăng Long; Quốc lộ 1 khu vực cầu Bò Sơn - Bắc Ninh. Mỗi cung đường bao gồm 7 đoạn video thu thập dưới các điều kiện thời tiết khác nhau.
Bảng 3.1. Kết quả thực nghiệm thuật toán CVIL TT Cung đường Số khung hình theo dõi (Frame) Thực hiện đếm Tỷ lệ chính xác TB (%)
Trực tiếp bởi người Bằng hệ thống
Xe tải lớn Xe tải nhỏ Xe con Xe tải lớn Xe tải nhỏ Xe con 1 Bắc Thăng Long 1500 2 3 10 2 5 12 81.11 2 Đại lộ Thăng Long 2250 2 5 14 2 6 16 90.27 3 Quốc lộ 1 1500 4 5 11 4 6 13 89.31 4 Quốc lộ 5 1650 5 8 17 5 10 21 86.98
Bảng 3.1 cho thấy khi giao thông đông đúc (số lượng phương tiện tăng lên trong cùng một đơn vị thời gian) các ảnh chứa nhiều khối ô tô chồng lấp nhau liên tiếp, độ chính xác của hệ thống giảm.
Thuật toán CVIL chỉ dựa trên hai tham số của xe đó là chiều dài và chiều rộng của các xe đơn, xe dính khối, chưa quan tâm đến vấn đề trọng tâm và vector khoảng cách từ tâm tới đường biên của khối. Một hạn chế nữa CVIL chưa xét đến phân loại xe máy và tập hợp xe máy, một loại phương tiện khá phổ biến ở Việt Nam hiện nay.
Trong phần tiếp theo, trình bày thuật toán tương tự nhưng tham khảo thêm các tập huấn luyện tính thêm cả véc tơ khoảng cách để nhận diện thêm các phương tiện xe máy.
3.2.Phân loại phương tiện bằng kết hợp kích thước ảnh và hình chiếu hình dạng khối phương tiện
Năm 2012, nhóm nghiên cứu Wei Zhan, Junkai Yang trong công trình nghiên cứu "Thiết kế hệ thống nhận dạng loại xe tự động, thời gian thực và ứng dụng của nó" [25] cũng đã sử dụng kết hợp hình dạng và khoảng cách nhưng các tác giả đã sử dụng kích thước ảnh và véc tơ hình dạng để phân loại và đếm xe. Trên thực tế có thể dùng kích thước tính xấp xỉ để phân loại. Cách tiếp cận được trình bày ở các mục dưới đây.
Ý tưởng phương pháp
3.2.1.
Ảnh đối tượng chuyển động thu được từ BSM tồn tại các khối đối tượng phương tiện chuyển động. Dùng thuật toán loại bỏ nhiễu qua xác định kích thước khối để loại bỏ những khối nhỏ ra khỏi ảnh đối tượng. Dùng thuật toán gán nhãn hoàn toàn có thể tách và đánh số các khối đối tượng này.
Với mỗi khối hoàn toàn xác định được độ dài, độ rộng của khối, vector biểu diễn hình dạng của đối tượng. Gọi l, w là chiều dài, chiều rộng của khối; gọi tập {d1, d2,...dn} là vector biểu diễn hình dạng đối tượng theo vector khoảng cách từ tâm khối đến đường biên của khối. Tập thuộc tính của khối được xác định là: (l, w, d1, d2,...,dn).
Nếu chỉ dựa trên tập vector khoảng cách {d1, d2,...dn} hoàn toàn có thể phân loại được khối thuộc tập hợp phương tiện gì (xe máy; ô tô; tập hợp xe ô tô, xe máy,...). Tuy nhiên với dựa trên tính chất độ dài, rộng (l,w) của từng khối phương tiện, có thể kết luận nhanh khối đối tượng là khối gì.
Hình 3.3. Sơ đồ tổng quát phân loại theo hình dạng
Phương pháp đề nghị phối hợp phân loại dựa trên hình dạng (hình chiếu, trọng tâm và khoảng cách) kết hợp với phân tích độ dài, độ rộng khối đối tượng mang lại sự phân loại nhanh chóng và chính xác, phân loại được đa dạng hơn về chủng loại phương tiện, đặc biệt là ô tô con, xe tải, xe máy, và tập hợp các đối tượng dính khối trong trường hợp đông đúc.
- Khối (1), xử lý theo phương pháp đề xuất ở chương 2; a.Hình mẫu các dạng khối
b.Biểu diễn hình dạng khối
CSDL hình dạng 1. Thu nhận Video, Xác định ROI, Trích chọn khung hình, Tìm đối khối, Tìm khối và gán nhãn
2. Tính toán tham số khối
3. Phân giải hình dạng 4.Phân loại
- Khối (2), biểu diễn hình dạng theo vector khoảng cách, độ dài, độ rộng. - Khối (3), so khớp độ dài, độ rộng ảnh và so khớp vector khoảng cách theo các chỉ số xác định trước trong CSDL.
- Khối (a) và (b), huấn luyện các hình dạng, độ dài, độ rộng đối tượng trước và lưu trữ vào CSDL trong hệ thống.
Giai đoạn chuẩn bị CSDL
3.2.2.
Các bước tiến hành: Sưu tập hình mẫu; Xác định kích thước chiều dài, chiều rộng; Vector hóa hình chiếu đối tượng; Đánh chỉ số Index cho các Template trong tập mẫu đối sánh; Đưa ra một tập luật để so sánh nhanh theo khoảng cách, kích thước khối.
Bước 1. Sưu tập hình mẫu
1 xe máy độc lập: một số loại xe như xe tay ga, xe nam, vespa,...
2,3,4,5 xe máy hợp khối theo các hình dạng khác nhau
1 xe ô tô hợp với 1,2,3,4,5 xe máy
Số mẫu sưu tập gọi là n.
Xác định kiểu hình mẫu: BlockStyle (0,1,2,3,4 tương ứng với: chưa phân loại; 1 xe máy; 1 ô tô con; 1 xe tải; hỗn hợp xe máy và ô tô).
Bước 2. Xác định kích thước chiều dài, chiều rộng của khối
Xác định chiều rộng, chiều dài của khối (width, length)
Chuẩn hóa tỉ lệ kích thước tương ứng giữa chiều dài và chiều rộng. Ví dụ, độ rộng của khối là 2, độ dài là 5, chuẩn hóa tỷ lệ là [0.286, 0.714]. Bước 3. Vector hóa hình chiếu đối tượng (đa giác)
Xác định số đỉnh của đa giác: m
Xác định trọng tâm của đa giác (xc, yc)
Xác định độ dài khoảng cách từ tâm tới các đỉnh của đa giác [s1,s2,...,sm]
Chuẩn hóa vector khoảng cách [d1,d2,...,dm]
Bước 4. Đánh chỉ số Index cho các Template trong tập mẫu đối sánh
Gọi tập mẫu là Template, cấu trúc của 1 Template thông qua các chỉ số, kiểu khối, độ rộng, độ dài khối và giá trị khoảng cách tương ứng.
Template(Index, BlockStyle, width, length, d1,d2,...,dm) o Index: 0,1,..., n; tương ứng với số lượng mẫu. o BlockStyle: 0, 1, 2
Bước 5. Đưa ra một tập luật để so sánh nhanh theo khoảng cách, kích thước khối và loại phương tiện.
Bảng số liệu thống kê một số giá trị thực về độ dài, rộng, cao của phương tiện do các nhà sản xuất ô tô, xe máy được thu thập và thống kê trong bảng 1 (phần phụ lục).
Tập luật nhận dạng xe ô tô hay xe máy
o 1 Xe máy: Tỷ lệ cao/rộng [1.441.55], rộng [0.6750.740] o 1 Xe con: Tỷ lệ cao/rộng [0.801.00], rộng[1.4951.910] o 1 Xe tải: Tỷ lệ cao/rộng [1.451.55], rộng [2.2402.500]
Thuật toán phân loại dựa trên độ dài và hình chiếu đối tượng
3.2.3.
Thuật toán phân loại xe VCALOS Đầu vào: Video
Đầu ra: Loại xe/Nhóm loại xe Các bước thực hiện:
Bước 1. Nhận dữ liệu khối đối tượng chuyển động từ giai đoạn phát hiện. //Phát hiện khối chuyển động
Frames Trunc(Video) Foreground EMB (Frames) //Chỉ số hóa/gán nhãn cho các block
Block[i] Foreground
Bước 2. Đối với mỗi khối, xác định đặc tính tham số từng khối //Tính toán tham số khối
For each Block[i] {
- Tính chiều dài Length của Block[i] - Tính chiều rộng Weight của Block - Tính trọng tâm của Block
- Tính chiều dài khoảng cách từ tâm tới đường biên của Block d1, d2,..., dm
Properties(i, 0, width, length, d1,d2,...,dm) Block[i] //BlockStyle, mặc định là 0, vì chưa phân loại
}
// Cập nhật loại khối (BlockStyle) For each Properties[i] { - Tính tỷ lệ Height/width;
- Xác định BlockStyle qua tập luật;
Update Properties(i, BlockStyle, width, length, d1,d2,...,dm)} Bước 3. Phân giải khối phương tiện
For each Properties[i] {
- Nếu width không thuộc v1,v2,v3 thì: If (v<v1) loại bỏ khối
If (v>v3) Chuyển bước 4 }
Bước 4. So khớp hình dạng For each Properties[i] { For each Template[Index] {
Compare Properties[i] ? Template[Index] Loại xe/Nhóm loại xe }}
Return Loại xe/Nhóm loại xe
Độ phức tạp tính toán:
- Theo thuật toán EMB, thì bước 1 và 2 số phép tính ước tính tương đương với O(NFnm), với NF là số khung hình; n là chiều dài, m là chiều rộng của mỗi khung hình.
- Tại bước 3, kích thước tối đa của mỗi Block là một khung hình, số điểm ảnh thuộc Block cần duyệt qua tối đa là nm ~ O(n2).
- Tại bước 4 và 5, số phép toán < O(n2).
- Tổng số phép tính ước tính: O(NFnm) + O(n2) + O(n2) ~ O(NFnm) Kết luận, độ phức tạp ước tính của thuật toán VCALOS là O(NFnm), với NF là số khung hình, n và m là kích thước ảnh từng khung hình.
Phương pháp thực nghiệm tương tự như đã thực hiện đối với thuật toán CVIL. Dữ liệu cũng sử dụng lại bộ dữ liệu thu thập được như với thuật toán CVIL. Tuy nhiên đối với các video ở cung đường Đại lộ Thăng Long, không có phương tiện xe máy tham gia giao thông, nên không thực hiện trong thực nghiệm.
Bảng 3.2. Bảng kết quả thực nghiệm thuật toán VCALOS
TT Cung đường Số khung hình theo dõi (Frame) Thực hiện đếm Tỷ lệ chính xác TB (%)
Trực tiếp bởi người Bằng hệ thống
Xe tải lớn Xe tải nhỏ Xe con Xe máy Xe tải lớn Xe tải nhỏ Xe con Xe máy 1 Bắc Thăng Long 1500 2 3 10 19 2 5 12 20 84.58 2 Quốc lộ 1 1500 4 5 11 25 4 6 13 27 90.13 3 Quốc lộ 5 1650 5 8 17 24 5 10 21 26 88.31
Từ kết quả Bảng 3.2 cho thấy độ chính xác trung bình tăng lên so với thuật toán CVIL. Sự phân loại xe tải lớn về số lượng vẫn chính xác, sự biến động nhiều vẫn nằm nhiều ở xe tải nhỏ và xe con, và đối với xe máy cũng có nhiều sự sai số.
3.3.Phân loại phương tiện dựa trên đường viền biểu diễn bằng số phức
Đường viền của đối tượng là một đường khép kín sau khi thực hiện các phương pháp trích chọn và xấp xỉ đường viền. Mô tả hình dạng đường viền bằng VC trên trường số phức, đồng thời áp dụng một số tính chất của vector số phức tương tự như tính chất của mô-men, dẫn đến khả năng so sánh và phân loại đường viền với nhau. Từ kết quả này có thể áp dụng để tiến hành nhận dạng các tập đường viền theo phương pháp máy học. Trước tiên huấn luyện và tạo ra 1 tập CSDL đối sánh tạo trước ở giai đoạn offline, sau đó giai đoạn online trích đường viền ra từ khối chuyển động và so sánh, đưa ra kết luận về số lượng