Luận văn Hận dạng xe trên cơ sở thị giác máy tính

Từ yêu cầu đặt ra của luận văn, học viên đề xuất và thực hiện hệ thống:

 Một card thu hình nhận tín hiệu video trực tuyến từ camera (hoặc nhập một

file video) và gửi nó đến máy tính có phần mềm phát hiệnvà nhận dạng xe

được viết bằng ngôn ngữ lập trình thích hợp. Trong trường hợp không thể

cho hệ thống thực hiện tại thực địa cảnh quanggiao thông thì có thể quay

video lại cảnh quanggiao 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 và nhận dạng xe xuất

hiện trong chuỗi hình ảnh và tiến hành khoanh vùng có chứa đặc trưng xe.

 Trong quá trình nghiên cứu, học viên đã tích hợp thêm thuật toán ước lượng

khoảng cách từ camera đến xe, đếm phân loại các xe, từ đó người khảo sát

có thể tính toán các thông số liên quan đến xe hoặc cảnh quanggiao thông.

pdf105 trang | Chia sẻ: maiphuongdc | Lượt xem: 2206 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Luận văn Hận dạng xe trên cơ sở thị giác máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
uật toán học huấn luyện AdaBoost Trang 26 Võ Hồng Phong Luận văn tốt nghiệp Real AdaBoost 1. Ngõ vào: S = ( ) ( ){ }NN yxyx ,,...,, 11 Số các bước lặp lại T 2. Khởi tạo: Ndn /1)1( = cho tất cả n = 1, …, N 3. Do for t =1, …, T (a) Huấn luyện bộ phân loại bằng bộ mẫu thử đã được đánh trọng số { })(, tdS với giả thiết: { }1,1: +−xht , ví dụ ( ))(, tt dSLh = . (b) Tính sai số huấn luyện cho bộ trọng số ε t của ht : ( )∑ = ≠= N n ntn t nt xhyId 1 )( )(ε (c) Đặt: t t t ε ε α − = 1log 2 1 (d) Cập nhật các trọng số: { } tntnttntn Zxhydd /)(exp)()1( α−=+ Với Zt là hằng số chuẩn hóa, sao cho ∑ = + = N n t nd1 )1( 1 Ngừng lệnh if khi ε t = 0 hoặc khi 2 13 tε và đặt T = t – 1 4. Xuất ra: ∑ ∑= = = T t tT r r t T xhxf 1 1 )()( α α Discrete AdaBoost (Freund & Schpire) 1. N mẫu được cho ( ) ( )NN yxyx ,,...,, 11 với { }1,1, −∈ℜ∈ ik yx Trang 27 Võ Hồng Phong Luận văn tốt nghiệp 2. Bắt đầu với các trọng số NiNwi ,...,1,/1 == 3. Lặp lại cho Mm ,...,1= (a) Phù hợp bộ phân loại ( ) { }1,1−∈xfm sử dụng các trọng số iw của tập dữ liệu huấn luyện ( ) ( )NN yxyx ,,...,, 11 (b) Tính các thông số ( )( )[ ]xmfywm Eerr ≠= 1 , ( )( )mmm errerrc /1log −= (c) Đặt giá trị ( )( )( )imi xfymii cww ≠← 1.exp. , i = 1,…,N, và chuẩn hóa các trọng số để ∑ = i iw 1 4. Ngõ ra của bộ phân loại ( )  ∑ = M m mm xfcsign 1 . Gentle AdaBoost 1. Cho N mẫu ( ) ( )NN yxyx ,,...,, 11 với { }1,1, −∈ℜ∈ ik yx 2. Bắt đầu với các trọng số NiNwi ,...,1,/1 == 3. Lặp lại cho Mm ,...,1= (a) Phù hợp hàm đệ quy ( )xfm bởi trọng số bình phương tối thiểu (least- squares) của iy đối với ix với trọng số iw (b) Đặt giá trị ( )( )imiii xfyww .exp. −← , i = 1,…,N và chuẩn hóa các trọng số để ∑ = i iw 1 4. Ngõ ra của bộ phân loại ( )  ∑ = M m mm xfcsign 1 . Trong ba phương pháp AdaBoost trên, học viên thực hiện luận văn đã chọn phương pháp GAB làm phương pháp chính cho quá trình huấn luyện máy. Trang 28 Võ Hồng Phong Luận văn tốt nghiệp Bộ phân loại mạnh cuối cùng là sự kết hợp có trọng số của các bộ phân loại yếu: )(...)()()()( 332211 xhxhxhxhxH NNαααα ++++= Quá trình học huấn luyện nhận dạng theo từng chuỗi cascade và các giai đoạn stage được thể hiện như hình dưới đây, trong đó đối tượng cần được phát hiện là đường cong đặc, kín, màu xanh da trời (được đặt tên là: Target Concept) [3] Hình 2.7: Mô hình minh họa tác vụ phát hiện vật thể dùng chuỗi cascade Trong thực tế, chuỗi cascade các bộ phân loại được triển khai nhằm tăng tốc độ thực thi của thuật toán phát hiện. Trong giai đoạn đầu của quá trình huấn luyện, ngưỡng của bộ phân loại yếu được điều chỉnh đủ thấp sao cho xấp xỉ 100% các đối tượng đích có thể được dò ra trong khi vẫn giữ tỉ lệ nhận dạng sai mẫu không tích cực gần bằng zero. Sự cân bằng của một ngưỡng thấp gắn liền với tỉ lệ phát hiện sai mẫu tích cực cao hơn. Một mẫu tích cực ngõ ra từ bộ phân lớp đầu tiên là thông số đặt ngõ vào cho bộ phân lớp thứ hai, cũng sẽ được điều chỉnh sao cho đạt được tỉ lệ phát hiện rất cao. Tương tự như thế, một mẫu tích cực xuất ra từ bộ phân lớp thứ hai lại tiếp tục là thông số đặt ngõ vào cho bộ phân lớp thứ ba, …[11]. Trang 29 Võ Hồng Phong Luận văn tốt nghiệp Các cửa sổ con là tích cực (phù hợp, dò đúng đối tượng) nếu được cho qua tại từng bộ phân lớp của chuỗi cascade đã được huấn luyện. Nếu không, một ngõ ra trên chuỗi sẽ loại bất kì cửa sổ không phù hợp ngay lập tức (Hình 2.8); [9, trang 59] [10] ; [link 1]. Hình 2.8: Dùng chuỗi cascade đã được huấn luyện để phát hiện cửa sổ con phù hợp Bằng cách sử dụng cấu trúc gồm các chuỗi cascade song song, tốc độ phát hiện đối tượng sẽ được cải thiện đáng kể (Hình 2.9) [link 1] . Trang 30 Võ Hồng Phong Luận văn tốt nghiệp Hình 2.9: Cấu trúc các chuỗi cascade song song 2.2.4 Giai đoạn huấn luyện của bộ phân loại (stage) Thuật toán tăng tốc thích nghi được sử dụng làm phương pháp chính để phát hiện và phát hiện đối tượng xe trong luận văn. Thuật toán tăng tốc là mô hình học máy hiệu quả được sử dụng nhiều trong các đề tài về nhận dạng trước đây. Mô hình này chỉ sử dụng các bộ phân loại yếu. Tác vụ học được dựa trên N mẫu huấn luyện ( ) ( )NN yxyx ,,...,, 11 với kx ℜ∈ và { }1,1−∈iy . ix và vectơ có thành tố k. Mỗi thành tố k có chức năng mã hóa một đặc trưng có liên quan cho tác vụ học. Ngõ ra mong muốn sau khi mã hóa có hai giá trị là -1 và 1. Trong trường hợp phát hiện đối tượng vật thể, thành tố ngõ vào ix là một đặc trưng Haar-like. Các giá trị ngõ ra -1 và 1 cho biết ảnh xử lý có chứa hay là không chứa đối tượng mong muốn. 2.2.5 Tầng phân loại (cascade) Tầng (đợt) của bộ phân loại bao gồm các cây (tree) giá trị giảm dần sau mỗi giai đoạn (stage) mà bộ phân loại được huấn luyện để nhận dạng hầu hết các đối tượng vật thể mong muốn, đồng thời cũng loại bỏ các đối tượng không được huấn luyện. Ví dụ, trong luận văn này, các bộ phân loại được huấn luyện qua ít nhất 20 giai đoạn (stage). Đến giai đoạn cuối cùng, giá trị false alarm = 076.95.0 20 −≈ e và độ trùng khít (hit rate) khoảng 9047.0995.0 20 ≈ . (Hình 2.10) [4, phần 4] Trang 31 Võ Hồng Phong Luận văn tốt nghiệp h h h h h . . . . . 1 - f 1 - f 1 - f 1 - f hit-rate = hN false-alarms = fN stage 1 stage 2 stage 3 stage N Hình 2.10: Cấu trúc các chuỗi cascade nối tiếp, với N giai đoạn học huấn luyện Giả sử, thiết lập ban đầu với các giá trị   =− =− 9 9 5.0 5.0 r a t eh i t a l a r mf a l s e Stage 1:   = = 9 9 5.0 5.0 1 1 h f Stage 2:   = = 2 2 2 2 9 9 5.0 5.0 h f Stage 3:   = = 3 3 3 3 9 9 5.0 5.0 h f … Stage N:   = = N N N N h f 9 9 5.0 5.0 Trang 32 Võ Hồng Phong Luận văn tốt nghiệp Tại mỗi giai đoạn huấn luyện stage, bộ phân loại tạo ra thông số hit-rate h và false-alarm rate f mới làm ngõ vào thông số đặt cho giai đoạn huấn luyện kế tiếp sau. Ứng với mỗi giai đoạn được huấn luyện sử dụng một trong phương pháp tăng tốc. Bộ tăng tốc có thể học huấn luyện bởi một một phân loại mạnh dựa trên một tập hợp các bộ phân loại yếu bằng cách dò lại trọng số các mẫu huấn luyện. Bộ phân loại yếu được dùng cho giai đoạn đầu của quá trình huấn luyện, dùng để tập hợp và đúc kết các đặc trưng sơ của tập huấn luyện. Tại mỗi tầng huấn luyện, bộ phân loại dựa theo các đại lượng đặc trưng vừa được cập nhật tại tầng kế trước (false-alarm, hit-rate) được thêm vào nhằm tăng thêm tính chính xác trong quá trình tính toán trọng số đặc trưng. Với việc tăng dần số giai đoạn huấn luyện và số lượng các bộ phân loại yếu, sẽ là cần thiết để tính ra các thông số false-alarm rate ứng với mỗi hit-rate đã tính được sẽ làm tăng tính chính xác cho tác vụ phát hiện đối tượng. Trang 33 Võ Hồng Phong Luận văn tốt nghiệp 2.2.6 Đặc tính co giãn vùng đặc trưng đối tượng 2.2.6.1 Phát biểu bài toán Không phải lúc nào đối tượng xuất hiện trong ảnh cũng xuất hiện với vị trí tọa độ hoặc diện tích vị trí chiếm chỗ là không đổi, mà ngược lại, các đối tượng xuất hiện tại rất nhiều vị trí khác nhau và diện tích chiếm chỗ khác nhau. Do đó, để có thể phát hiện ra đặc trưng đối tượng trong ảnh với các diện tích chiếm chỗ khác nhau thì cần một thuật toán phát hiện đối tượng bám theo tính co giãn của đặc trưng đối tượng. Một trong những ưu điểm của phương pháp đặc trưng Haar-like là dễ dàng co giãn cửa sổ đặc trưng. Thuật toán này phát hiện đặc trưng với các ảnh chia nhỏ chứa các các đặc trưng tìm được trong ảnh bắt đầu từ phía trên bên trái và ảnh chia nhỏ bắt đầu được lớn dần theo hướng qua phải và hướng xuống dưới. Giải pháp thích hợp để khoanh vùng đặc trưng ảnh là khoanh vùng bao gồm tất cả các ảnh chia nhỏ chứa đặc trưng vừa tìm được. Khi đối tượng trong ảnh có xu hướng tăng dần diện tích chiếm chỗ trong ảnh (ví dụ trường hợp đối tượng tiến đến gần camera) thì lượng ảnh chia nhỏ tăng nhiều hơn để chứa các đặc trưng. 2.2.6.2 Thuật toán Thuật toán phát hiện đối tượng, đồng thời co giãn vùng cửa sổ đặc trưng sao cho luôn bám theo đối tượng được viết trong Bảng 2.2. Trang 34 Võ Hồng Phong Luận văn tốt nghiệp Bảng 2.2: Thuật toán phát hiện đồng thời co giãn vùng đặc trưng đối tượng [3, trang 11] window_size = window_size0 scale = 1 objects = {} while (window_size ≤ image_size) do classifier_cascade = classifier_cascade0 × scale dX = scale dY = scale for (0 ≤ Y ≤ image_height – window_height) do for (0 ≤ X ≤ image_height – window_height) do region_to_test = { 0 ≤ x ≤ X + window_width ; 0 ≤ y ≤ Y + window_width } if (classifier_cascade(region_to_test) = 1) then objects = objects ∪ {region_to_test} end if X = X + dX end for Y = Y + dY end for scale = scale × C // C: constant; = 1.1 ; 1.2 end while Trang 35 Võ Hồng Phong Luận văn tốt nghiệp CHƯƠNG 3 XÂY DỰNG HỆ THỐNG 3.1 Ý TƯỞNG XÂY DỰNG VÀ HOẠT ĐỘNG CỦA HỆ THỐNG Từ yêu cầu đặt ra của luận văn, học viên đề xuất và thực hiện hệ thống:  Một card thu hình nhận tín hiệu video trực tuyến từ camera (hoặc nhập một file video) và gửi nó đến máy tính có phần mềm phát hiện và nhận dạng xe được viết bằng ngôn ngữ lập trình thích hợp. 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 và nhận dạng xe xuất hiện trong chuỗi hình ảnh và tiến hành khoanh vùng có chứa đặc trưng xe.  Trong quá trình nghiên cứu, học viên đã tích hợp thêm thuật toán ước lượng khoảng cách từ camera đến xe, đếm phân loại các xe,… từ đó người khảo sát có thể tính toán các thông số liên quan đến xe hoặc cảnh quang giao thông. 3.2 TIẾN HÀNH XÂY DỰNG CƠ SỞ DỮ LIỆU ẢNH XE 3.2.1 Xây dựng cơ sở dữ liệu Trang 36 Võ Hồng Phong Luận văn tốt nghiệp 3.2.1.1 Thu thập hình ảnh xe Nhờ vào việc sử dụng các công cụ tìm kiếm trên internet và từ các nguồn ảnh tin cậy có sẵn, học viên đã sử dụng để sưu tầm các mẫu xe nhằm mục đích xây dựng cơ sở dữ liệu các phân loại xe để phục vụ cho đề tài. Các nguồn ảnh tích cực đó được học viên sưu tầm bao gồm các nguồn dữ liệu và địa chỉ:  Google Image  Flickr của Yahoo!  Photobucket.com (trang web chia sẻ ảnh)  Nguồn ảnh chia sẻ từ các kho ảnh của các trường đại học trên thế giới (MIT, UIUC, Carnagie Mellon,…)  Ảnh do học viên chụp từ thực địa cảnh quang giao thông (chiếm phần lớn) Việc sưu tầm và tìm kiếm ảnh mẫu phục vụ cho công tác học huấn luyện cho máy tính đòi hỏi tiêu tốn nhiều thời gian. Các mẫu hình ảnh xe được tìm kiếm và sưu tầm đòi hỏi có sự đồng nhất về tư thế chụp lấy mẫu và các kiểu dáng không quá khác biệt, cũng như hình dáng không quá giống so với các mẫu xe còn lại. Các xe được chọn làm ảnh mẫu học huấn luyện phải có vị trí rõ ràng trong ảnh, không bị che khuất (nếu bị che ít hơn 4 1 diện tích pixel cũng tạm chấp nhận) và có tư thế đối xứng, nghĩa là không quá nghiêng theo các hướng x, y, z (110% đối với hướng x và y; 50% đối với hướng z).  Các ảnh không tích cực (không chứa hình đối tượng) được học viên lấy từ nguồn dữ liệu có sẵn với các dạng hình phong cảnh thiên nhiên, hình chân dung, động thực vật, nội thất, kiến trúc,… Trang 37 Võ Hồng Phong Luận văn tốt nghiệp 3.2.1.2 Phân loại bằng tay cơ sở dữ liệu hình Các ảnh sau khi được thu thập, sau đó được học viên phân loại riêng biệt theo từng hình dáng khác nhau của xe (xe hơi du lịch cá nhân, xe buýt, xe tải,…). Với mỗi cơ sở dữ liệu được tạo thành, học viên đã sử dụng hơn 550 hình tích cực (hình có chứa đối tượng - positive image) và 6.000 hình không tích cực (không chứa đối tượng - negative image) dùng cho huấn luyện. Trong luận văn, các loại xe được phân nhóm tùy theo đặc trưng về hình dáng cấu trúc bên ngoài và chức năng sử dụng như đã nói ở trên. Các nhóm hình sau khi phân biệt được đặt riêng rẽ nhằm tạo thuận lợi cho việc huấn luyện xe trên cơ sở các mẫu phân loại này. Mẫu hình huấn luyện tiêu biểu cho từng nhóm phân loại xe trình bày trong Bảng 3.1 a, b, c : Bảng 3.1: Bảng 3.1a: Mẫu xe hơi du lịch cá nhân Bảng 3.1b: Mẫu xe buýt Trang 38 Võ Hồng Phong Luận văn tốt nghiệp Bảng 3.1c: Mẫu xe tải  Các ảnh không tích cực, không chứa đối tượng (negative image) được sưu tầm dễ dàng từ các nguồn ảnh có sẵn. 3.2.1.3 Tiến hành lấy mẫu, tạo bộ cơ sở dữ liệu huấn luyện Trong công cụ huấn luyện OpenCV 1.0 của Intel có sẵn lệnh Objectmarker. Lệnh này dùng để đánh dấu vùng có chứa đặc trưng của đối tượng có trong ảnh bằng cách dùng hình chữ nhật để đánh dấu khoanh vùng chứa đặc trưng. (Hình 3.1) Trang 39 Võ Hồng Phong Luận văn tốt nghiệp Hình 3.1: Minh họa quá trình lấy mẫu Đường bao chữ nhật màu tím đánh dấu vùng đặc trưng đối tượng cần huấn luyện 3.2.1.4 Tiến hành học huấn luyện cho máy tính Cũng sử dụng công cụ đã nói ở trên, sử dụng lệnh Createsamples và Haartrainning để huấn luyện tạo cơ sở dữ liệu đặc trưng và xuất cơ sở dữ liệu đó ra dạng file .xml phục vụ trong mã lệnh chương trình phần mềm nhận dạng của luận văn. Hai lệnh chuẩn, điển hình được học viên thực hiện trong luận văn:  Tạo file học vector “vector.vec” dùng lệnh: Trang 40 Võ Hồng Phong Luận văn tốt nghiệp Mẫu lệnh thi hành createsamples.exe -info positive/info.txt -vec data/vector.vec -num 466 –maxxangle 1.1 –maxyangle 1.1 –maxzangle 0.5 -w 20 -h 20 với, -info positive/info.txt : file chứa thông tin tọa độ của khung chữ nhật bao đặc trưng đối tượng trong ảnh mẫu. -vec data/vector.vec : đường dẫn chứa file vector.vec tạo ra ở trên. -num 466 : bộ huấn luyện gồm 466 ảnh tích cực (có chứa đối tượng). -w 20 : chiều rộng mẫu ngõ ra (tính theo pixel). -h 20 : chiều cao mẫu ngõ ra (tính theo pixel). Các thông số maxxangle , maxyangle , maxzangle quy định các góc xoay tối đa theo các hướng trong không gian của đối tượng mà đảm bảo đối tượng vẫn được phát hiện.  Tiến hành học huấn luyện cho máy tính: Mẫu lệnh thi hành haartraining.exe -data data/cascade -vec data/vector.vec -bg negative/infofile.txt -npos 466 -nneg 3125 -nstages 24 -mem 1200 -mode ALL -w 20 -h 20 –nonsym –minhitrate 0.995 – maxfalsealarm 0.5 –weighttrimming 0.95 với, -data data/cascade : đường dẫn chứa các file thông số ngõ ra được cập nhật(false-alarm , hit-rate) của từng tầng huấn luyện (cascade). Trang 41 Võ Hồng Phong Luận văn tốt nghiệp -vec data/vector.vec : đường dẫn chứa file vector.vec đã tạo ra ở trên -bg negative/infofile.txt : đường dẫn đến file chứa các ảnh không tích cực -npos 466 : số lượng ảnh tích cực (giống khai báo ở phần trên) -nneg 3125 : số lượng ảnh không tích cực (thông tin các file này được chứa trong file infofile.txt) -nstages 24 : số lượng giai đoạn (stage) huấn luyện -mem 1200 : dung lượng bộ nhớ cần cho quá trình huấn luyện (MB). Máy tính có bộ nhớ RAM càng nhiều thì quá trình huấn luyện xảy ra càng nhanh. -nonsym : khai báo các đối tượng huấn luyện là không có tính đối xứng –minhitrate 0.995 –maxfalsealarm 0.5 –weighttrimming 0.95: là các thông số quy chuẩn về độ trùng khít (phù hợp – hit rate) tối thiểu, ngưỡng sai (false alarm) và trọng số huấn luyện (Hình 3.2). Các giá trị trên là mặc định, hoặc có thể thay đổi tùy theo “độ khó” của đối tượng và số lượng ảnh mẫu. Hình 3.2: Hình minh họa quá trình học huấn luyện Trang 42 Võ Hồng Phong Luận văn tốt nghiệp Ghi chú: các lệnh trên được chạy trong môi trường hệ điều hành Windows và được đóng gói trong các file thực thi lệnh định dạng “.bat” nhằm dễ chỉnh sửa và thao tác. Theo khuyến cáo của Intel [7], máy tính được dùng cho công tác huấn luyện này đòi hỏi phải có cấu hình mạnh. Vì vậy, học viên thực hiện xây dựng cơ sở dữ liệu sử dụng máy tính để bàn với CPU Intel Core 2 Duo E6320 2 x 1.86 GHz, RAM 2GB, HDD 80GB. Với cấu hình máy này thì mỗi một cơ sở dữ liệu (mỗi một file .xml) được tạo thành tiêu tốn thời gian liên tục hơn 42 tiếng đồng hồ (gần 2 ngày). Cơ sở dữ liệu định dạng file .xml sau khi xây dựng có dạng như trong Bảng 3.2. Bảng 3.2: Cấu trúc file cơ sở dữ liệu đặc trưng của đối tượng xe hơi cá nhân 20 20 11 11 1 8 -1. 11 11 1 4 2. 1 2.1753159817308187e-003 Trang 43 Võ Hồng Phong Luận văn tốt nghiệp -0.7307692170143127 0.4051173031330109 12 7 12 1 -1. 12 7 6 1 2. 1 3.6706560058519244e-004 -0.7052155137062073 0.2407480031251907 … … 3.2.2 Ghi nhận và thử mẫu cơ sở dữ liệu kết quả Với mỗi cơ sở dữ liệu đã tạo ra, học viên tiến hành kiểm thử nhiều lần để đánh giá độ tin cậy nhằm ngày càng nâng cao tỉ lệ phát hiện đúng đối tượng. Do đó, mỗi một cơ sở dữ liệu có thể được xây dựng ít nhất một lần để đánh giá cơ sở dữ liệu nào là tin cậy nhất để đưa vào hệ thống. Trang 44 Võ Hồng Phong Luận văn tốt nghiệp Quá trình thử cơ sở dữ liệu trên ảnh tĩnh nhằm đánh giá tỉ lệ phát hiện đúng đối tượng tương ứng với đặc trưng chứa trong các file cơ sở dữ liệu “.xml” tương ứng. Để kiểm thử cơ sở dữ liệu, dùng lệnh: objectdetect.exe --cascade="tên_sơ_sở_dữ_liệu" tên_file 3.2.2.1 Đối với xe hơi cá nhân  Thử nghiệm trên 1 ảnh Hình 3.3: Minh họa quá trình kiểm thử cơ sở dữ liệu “car_back.xml” Kết quả cho thấy xe hơi trong ảnh đã được phát hiện đúng, xe được hình chữ nhật màu xanh bao quanh.  Thử nghiệm trên nhiều ảnh tĩnh Bảng 3.3: Kết quả kiểm thử cơ sở dữ liệu đặc trưng xe hơi cá nhân Trang 45 Võ Hồng Phong Luận văn tốt nghiệp Trang 46 Võ Hồng Phong Luận văn tốt nghiệp Trang 47 Võ Hồng Phong Luận văn tốt nghiệp Trang 48 Võ Hồng Phong Luận văn tốt nghiệp Trang 49 Võ Hồng Phong Luận văn tốt nghiệp Tiến hành kiểm thử tập cơ sở dữ liệu với 150 ảnh tĩnh xe hơi. Kết quả là có 142 ảnh được phát hiện đúng đối tượng xe trong ảnh, đạt tỉ lệ ≈ 95%. Trang 50 Võ Hồng Phong Luận văn tốt nghiệp 3.2.2.2 Đối với xe buýt  Thử nghiệm trên 1 ảnh Hình 3.4: Minh họa quá trình kiểm thử cơ sở dữ liệu “bus_vn_full_22112008.xml” Kết quả cho thấy xe buýt trong ảnh đã được phát hiện đúng  Thử nghiệm trên nhiều ảnh tĩnh Trang 51 Võ Hồng Phong Luận văn tốt nghiệp Bảng 3.4: Kết quả kiểm thử cơ sở dữ liệu đặc trưng xe buýt Trang 52 Võ Hồng Phong Luận văn tốt nghiệp Trang 53 Võ Hồng Phong Luận văn tốt nghiệp Tiến hành kiểm thử tập cơ sở dữ liệu với 180 ảnh tĩnh xe buýt. Kết quả là có 173 ảnh được phát hiện đúng đối tượng xe trong ảnh, đạt tỉ lệ ≈ 96%. 3.2.2.3 Đối với xe tải  Thử nghiệm trên 1 ảnh Hình 3.5: Minh họa quá trình kiểm thử cơ sở dữ liệu “truck_vn_26112008.xml” Kết quả trên được đánh giá là thành công vì đối tượng xe tải trong ảnh đã được phát hiện đúng.  Thử nghiệm trên nhiều ảnh tĩnh Trang 54 Võ Hồng Phong Luận văn tốt nghiệp Bảng 3.5: Kết quả kiểm thử cơ sở dữ liệu đặc trưng xe tải Trang 55 Võ Hồng Phong Luận văn tốt nghiệp Trang 56 Võ Hồng Phong Luận văn tốt nghiệp Trang 57 Võ Hồng Phong Luận văn tốt nghiệp Tiến hành kiểm thử cơ sở dữ liệu truck_vn_26112008.xml với hơn 120 ảnh tĩnh. Kết quả có 115 ảnh được phát hiện đúng, tương ứng với tỉ lệ ≈ 96%. Bảng 3.6: Tổng kết các kết quả kiểm thử CSDL đặc trưng xe Loại xe Số lượng ảnh kiểm thử Số lượng ảnh phát hiện đúng Tỉ lệ Xe hơi cá nhân 150 142 95% Xe buýt 180 173 96% Xe tải 120 115 96% 3.3 TIẾN HÀNH XÂY DỰNG THUẬT TOÁN 3.3.1 Thuật toán phát hiện xe Nhờ vào sự hỗ trợ của công cụ OpenCV version 1.0 (áp dụng thư viện mã nguồn mở về thị giác máy tính trên nền .NET) do Intel phát triển, tác giả sử dụng thuật toán phát hiện đặc trưng đối tượng là Haar-like với các lệnh “HaarClassifierCascade” và “cvHaarDetectObjects” để thực hiện chức năng phát hiện xe, sẵn sàng cho bước tiếp theo là tiến hành nhận dạng ra kiểu dáng xe đó. 3.3.2 Thuật toán nhận dạng kiểu xe Trong thực tế, khi con người quan sát một chiếc xe đang lưu thông trên đường, thì ngay lập tức người đó sẽ nhận biết ngay rằng xe đó xe loại gì, có thể được liệt kê như: xe hơi cá nhân, xe buýt, xe tải,… Đó là do qua kinh nghiệm, người đó đã chủ động nhận biết được kiểu dáng xe đó từ các nguồn thông tin tin cậy khác nhau trong quá khứ. Quá trình này có thể cũng được coi như là người đó đã được “huấn luyện Trang 58 Võ Hồng Phong Luận văn tốt nghiệp trước” hình dáng đặc trưng của chiếc xe đó. Vì vậy, khi quan sát chiếc xe, lập tức người đó sẽ biết được loại xe đó là gì. Tuy vậy, nhưng máy tính thì không thể giống con người, nghĩa là không thể nhận biết ngay được là có đối tượng xe với hình dáng đặc trưng cần phát hiện trong vùng thị trường hay không. Vì vậy, để cho máy tính biết được kiểu dáng của từng loại xe, ta cần phải cho hệ thống biết được các kiểu dáng xe đó từ trước thông qua quá trình huấn luyện dựa trên các bộ phân loại mà học viên đã thiết lập qua các mẫu hình đã được chọn lọc kỹ càng. Mỗi một bộ phân loại các hình ảnh mẫu đối tượng đó, học viên đã gắn một nhãn tương ứng với tên của cơ sở dữ liệu kiểu dáng xe (xe hơi cá nhân, xe buýt, xe tải, …). Bộ phân loại kiểu dáng xe này có chức năng như là một cơ sở dữ liệu chứa các đặc trưng của từng loại xe. Vì vậy, sau này khi một chiếc xe bất kỳ được phát hiện trong khung hình hay vùng thị trường của camera, thì lập tức nó được so sánh với hình ảnh và đặc trưng đã có trong cơ sở dữ liệu này. Nếu các đặc trưng là phù hợp với đặc trưng có trong cơ sở dữ liệu, thì từ đó mới có thể xuất ra được dòng thông báo tên kiểu dáng xe được nhận dạng trên từng khung chữ nhật bao đối tượng. Chương trình nhận dạng xe được thể hiện trong Hình 3.6, thể hiện một chu kỳ làm việc của hệ thống. Trang 59 Võ Hồng Phong Luận văn tốt nghiệp BẮT ĐẦU LOAD ẢNH TỪ CAMERA TIỀN XỬ LÝ TIỀN LỌC ẢNH & XỬ LÝ NHIỄU LOAD CƠ SỞ DỮ LIỆU DÒ TÌM ĐẶC TRƯNG TRÍCH XUẤT THÔNG TIN ĐỐI TƯỢNG ĐẾM ĐỐI TƯỢNG ƯỚC LƯỢNG KHOẢNG CÁCH KẾT THÚC NHẬN DẠNG XE KHOANH VÙNG Hình 3.6: Sơ đồ khối của chương trình nhận dạng xe Trang 60 Võ Hồng Phong Luận văn tốt nghiệp Mã lệnh chương trình thực thi thuật toán nhận dạng được trình bày trong Bảng 3.7. Bảng 3.7: Mã lệnh điển hình của thuật toán phát hiện và nhận dạng xe hơi const char* cascade_name4 = "car_front_back.xml"; CvMemStorage* storage1 = cvCreateMemStorage(0); cascade1 = (CvHaarClassifierCascade*)cvLoad(cascade_name4, 0, 0, 0); CvSeq* object1 = cvHaarDetectObjects(gray7, cascade1, storage1, 1.05, 2, CV_HAAR_DO_CANNY_PRUNING, cvSize(20,16)); int i1; for (i1 = 0; i1 total : 0); i1++) { CvRect* r1 = (CvRect*)cvGetSeqElem(object1, i1); pt1.x = r1->x; pt1.y = r1->y; pt2.x = r1->x + r1->width; pt2.y = r1->y + r1->height; cvRectangle(display, pt1, pt2, CV_RGB(255,0,0), 2, 8, 0); cvPutText(display, "car", cvPoint(pt1.x, pt1.y - 4), &font, ... ... CV_RGB(255, 0, 0)); } 3.3.3 Thuật toán ước lượng khoảng cách Thuật toán này được học viên áp dụng trên từng đối tượng xe được nhận dạng, và quá trình được diễn ra theo thời gian thực. Trong thực tế, mắt người khi đang quan sát chiếc xe, thì người đó sẽ có thể ước lượng được khoảng cách từ người đó đến chiếc xe dựa theo kinh nghiệm. Có nghĩa là, mắt người bình thường khi quan sát một chiếc xe, thì dựa vào kích thước của hình ảnh mà mắt thu nhận được sẽ ước lượng được khoảng cách từ người đó Trang 61 Võ Hồng Phong Luận văn tốt nghiệp đến chiếc xe. Ví dụ, với cùng một loại xe, với một chiếc ở xa thì hình ảnh quan sát được sẽ nhỏ hơn so với hình ảnh của một chiếc xe ở gần (Hình 3.7). Chính vì vậy, việc ước lượng khoảng cách là cần thiết để có thể áp dụng vào các hệ thống quan sát giao thông thực tế. [1, phần 3.3] Hình 3.7: Mô hình hóa thuật toán ước lượng khoảng cách Chính vì lý do đó, nhằm nâng cao chức năng quan sát của camera trong cảnh quang giao thông, học viên đã tích hợp vào hệ thống thuật toán ước lượng khoảng cách giữa camera với chiếc xe đang được phát hiện. Thuật toán này được dùng để ước lượng khoảng cách giữa camera và đối tượng xe hơi dựa vào thông số liên quan như: chiều dài tiêu cự của camera, thông số quy đổi từ pixel ra milimet tại mặt phẳng tiêu cự và độ lớn thực tế điển hình của xe. [2, trang 75, phần 4.5] Hình 3.8: Mô hình camera quan sát trong không gian 3-D [6, trang 27] Trang 62 Võ Hồng Phong Luận văn tốt nghiệp Trong thực tế, ước lượng khoảng cách dựa trên cách tính của thị giác máy tính được ứng dụng rộng rãi và có tầm quan trọng trong các hệ thống quan trắc trực tuyến hệ thống giao thông nhằm giúp tăng thêm công cụ hỗ trợ cho hệ thống giám sát giao thông. Cụ thể, công thức ước lượng khoảng cách theo lý thuyết được tính theo công thức: [6, trang 26÷ 28] [link 3, chapter 1-2] Z Xfx ×=− x XfZ − ×=⇔ Với, f : là chiều dài tiêu cự của camera Z : là chiều dài ước lượng (cần tìm) giữa camera đến đối tượng X : là kích thước thực tế của đối tượng (đơn vị chiều dài) x : là kích thước ảnh của đối tượng (pixel) Trong thực tế, khoảng cách ước lượng còn cần một thông số quy đổi đơn vị pixel ra mm trong mặt phẳng tiêu cự chor hoặc cvert . [2, trang 75] Công thức ước lượng khoảng cách được sử dụng trong luận văn là: w WfcZ horhor ××= (công thức được sử dụng chính) hoặc h HfcZ vertvert ××= Do tính đồng nhất, ít biến đổi về mặt kích thướ

Các file đính kèm theo tài liệu này:

  • pdfTH105.pdf