Hệ thống sử dụng đặc trưng dense SIFT và Bag of Word là mô hình cốt lõi nhằm đạt được thách thức đề ra Tiếp theo, cần tiến hành tăng tốc cho giải thuật bằng GPU nhằm thoả mãn thời gian t
Trang 1ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 2ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 3CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐHQG – HCM
Cán bộ hướng dẫn khoa học: Tiến sĩ Lê Thành Sách
Cán bộ chấm nhận xét 1: Tiến Sĩ Nguyễn Thanh Bình
Cán bộ chấm nhận xét 2: Tiến Sĩ Trần Minh Triết
Luận văn thạc sỹ được bảo vệ tại Trường Đại Học Bách Khoa, ĐHQG Tp HCM ngày 17 tháng 7 năm 2014
Thành phần Hội đồng đánh gía luận văn thạc sĩ gồm: 1 Chủ tịch hội đồng: TS Trần Ngọc Thịnh
2 Thư ký hội đồng: TS Lê Lam Sơn 3 Uỷ viên Phản biện 1: TS Nguyễn Thanh Bình 4 Uỷ viên Phản biện 2: TS Trần Minh Triết 5 Uỷ viên hội đồng: TS Lê Thành Sách Xác nhận của Chủ Tịch Hội đồng đánh giá LV và Trưởng khoa quản lý chuyên ngành sau khi luận văn đã được sữa chữa (nếu có)
CHỦ TỊCH HỘI ĐỒNG
(Họ tên và chữ ký)
TRƯỞNG KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH
(Họ tên và chữ ký)
Trang 4ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
-
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc -
NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Cao Minh Vũ MSHV: 12070558
Ngày, tháng, năm sinh: 23/12/1984 Nơi sinh: Quảng Trị
Chuyên ngành: Khoa Học Máy Tính Mã số : 60.48.01
I TÊN ĐỀ TÀI: Tăng Tốc Quá Trình Phát Hiện Và Phân Loại Phương Tiện Giao Thông Bằng GPU
II NHIỆM VỤ VÀ NỘI DUNG:
- Xây dựng hệ thống phát hiện và phân loại phương tiện giao thông
- Tăng tốc hệ thống bằng GPU
III NGÀY GIAO NHIỆM VỤ : 24/06/2013
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 20/06/2014
V CÁN BỘ HƯỚNG DẪN: Tiến sĩ Lê Thành Sách
Trang 5LỜI CẢM ƠN
Trong suốt quá trình học tập và hoàn thành luận văn này, tôi đã nhận được sự hướng dẫn, giúp đỡ của các thầy cô, các anh chị, các em và các bạn Với lòng kính trọng và biết ơn sâu sắc tôi xin được bày tỏ lời cảm ơn chân thành tới:
Ban giám hiệu, Phòng đào tạo sau đại học, Khoa Khoa Học Kĩ Thuật Máy Tính trường Đại Học Bách Khoa – Đại Học Quốc Gia TPHCM đã tạo mọi điều kiện thuận lợi giúp đỡ tôi trong quá trình học tập và hoàn thành luận văn
Tiến Sĩ Lê Thành Sách, người thầy kính mến đã hết lòng giúp đỡ, dạy bảo,
động viên và tạo mọi điều kiện thuận lợi cho tôi trong suốt quá trình học tập và hoàn thành luận văn tốt nghiệp
Tôi xin chân thành cảm ơn các thầy cô trong hội đồng chấm luận văn đã cho tôi những ý kiến đóng góp quý báu để hoàn chỉnh luận văn này
Tôi xin cảm ơn các bạn làm cùng học tập và làm việc chung phòng thí nghiệm đã giúp đỡ, chia sẻ các ý tưởng và hỗ trợ tôi trong suốt quá trình làm việc
Tôi xin chân thành cảm ơn bố mẹ, gia đình đã luôn ở bên cạnh động viên và giúp đỡ tôi học tập, làm việc và hoàn thành luận văn
Trang 6TÓM TẮT LUẬN VĂN THẠC SĨ
Nowadays, with strong development about Hardware, GPU is not only used in computer graphics but also used in advanced computing Applying GPU in transport problem is one of the modest trends to take place the old expensive distributed systems
There’re a lot of applications, systems and frameworks that have been using to solve transport problem, howerver, these are quite useless for Vietnam case
So that, topic “Speedup the process of detection and classification transport vehicles” is urgent and needed It includes two main parts
Firstly, we need to build a suitable system for Vietnam case The chosed system is combined of state-of-the-art algorithms such as GMM, Optical Flow and Bag of Word model to reach highest precision The system uses dense SIFT descriptor and Bag of Word as the core
Secondly, we speed up the system using GPU to cover time domain beside accuracy domain
Ngày nay, với sự phát triển mạnh mẽ về mặt phần cứng, GPU không chỉ được sử dụng trong lĩnh vực đồ hoạ máy tính mà còn có thể sử dụng để tính toán hiệu năng cao Việc áp dụng lập trình GPU vào bài toán giao thông đang là một xu thế nhằm thay thế cho các hệ thống phân tán đắt đỏ
Đã có nhiều ứng dụng, hệ thống làm về vấn đề giao thông, tuy nhiên bài toán giao thông ở Việt Nam luôn mang đặc trưng riêng, không thể áp dung các hệ thống thông thường sẵn có
Vì vậy, đề tài “Tăng tốc quá trình Phát hiện và Phân loại phương tiện giao thông” mang tính cấp thiết và thời đại, gồm 2 nhiệm vụ
Trang 7Đầu tiên, cần xây dựng một hệ thống phát hiện và phân loại phương tiện giao thông phù hợp với dữ liệu giao thông ở Việt Nam Hệ thống được lựa chọn là mô hình hỗn hợp kết hợp một loạt các giải thuật như Gaussian Mixture Model, Optical Flow, Bag of Word nhằm đạt được độ chính xác cao nhất trong thời gian tối ưu Hệ thống sử dụng đặc trưng dense SIFT và Bag of Word là mô hình cốt lõi nhằm đạt được thách thức đề ra
Tiếp theo, cần tiến hành tăng tốc cho giải thuật bằng GPU nhằm thoả mãn thời gian thực thi bên cạnh độ chính xác đã đạt được
Luận văn được trình bày gồm các phần như sau: Chương 1: Tổng quan về đề tài nhằm giới thiệu tổng quan về vấn đề giao thông cũng như các giải thuật, hệ thống đang được áp dụng
Chương 2: Cơ Sở Lý Thuyết trình bày nội dung lý thuyết cơ bản được áp dụng trong luận văn
Chương 3: Các Công Trình Nghiên Cứu Liên Quan giới thiệu về các giải pháp cũng như tình trạng hiện tại của các giải thuật, mô hình đang được áp dụng cho các bài toán tương tự
Chương 4: Thiết Kế - Hiện Thực đưa ra mô hình đề xuất cũng như trình bày hiện thực hệ thống
Chương 5: Kết quả - Đánh Giá kết quả của mô hình khi được áp dụng với dữ liệu thật
Chương 6: Kết luận - Các Hướng Phát Triển
Trang 8LỜI CAM ĐOAN CỦA TÁC GIẢ LV
Tôi xin cam đoan kết quả trong luận văn này là công trình nghiên cứu khoa học của tôi Các số liệu, kết quả nêu trong luận văn là trung thực và chưa được công bố trong các công trình khoa học khác
Học Viên Cao Học Cao Minh Vũ
Trang 9MỤC LỤC
MỞ ĐẦUNỘI DUNG
Chương 1TỔNG QUAN
1.1.ĐỀ TÀI1.2.TỔNG QUAN
Chương 2CƠ SỞ LÝ THUYẾT
2.1.RÚT TRÍCH ĐẶC TRƯNG2.1.1.SIFT
2.1.1.1.Phát hiện cực trị2.1.1.2.Phát hiện điểm trọng yếu2.1.1.3.Mô tả điểm trọng yếu2.1.2.Dòng quang học2.2.PHÂN NHÓM ẢNH
2.2.1.Mô hình hỗn hợp phân bố Gaussian2.2.2.Cực đại hoá khả năng
2.2.3.Mean Shift2.2.3.1.Phương pháp Histogram2.2.3.2.Phương pháp Parzen Window2.2.4.K-means
2.3.HỌC MÁY2.4.TĂNG TỐC BẰNG GPU
2.4.1.Kiến trúc GPU2.4.2.Mô hình lập trình2.4.2.1.Kernels2.4.2.2.Hệ thống phân cấp luồng2.4.2.3.Hệ thống phân cấp bộ nhớ2.4.2.4.Lập trình không đồng nhất2.4.2.5.Khả năng tính toán
Chương 3CÁC CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN
3.1.GIẢI THUẬT PHÁT HIỆN PHƯƠNG TIỆN GIAO THÔNG3.1.1.Gaussian Mixture Model
3.1.2.Tăng tốc GMM bằng GPU
Trang 103.2.GIẢI THUẬT LUCAS-KANADE3.2.1.Mô tả
3.2.2.Tăng tốc bằng GPU
Chương 4THIẾT KẾ - HIỆN THƯC
4.1.MÔ HÌNH ĐỀ XUẤT4.1.1.Định tính4.1.2.Định lượng4.1.2.1.Xây dựng tập từ vựng4.1.2.2.Ánh xạ vector SIFT vào từ vựng4.1.2.3.Tần suất từ
4.2.CÁC KHỐI CHỨC NĂNG4.2.1.Giải thuật GMM4.2.2.Dòng quang học4.2.3.Phát hiện khối (Blob Detection)4.2.4.Rút trích đặc trưng (Feature Extraction)4.2.5.Phân loại (Classfication)
4.3.TĂNG TỐC BẰNG GPU4.3.1.Kỹ thuật song song4.3.2.Kỹ thuật tối ưu hoá bộ nhớ4.3.2.1.Bộ nhớ Pinned
4.3.2.2.Bộ nhớ Coalescing
Chương 5KẾT QUẢ - ĐÁNH GIÁ
5.1.MỘT SỐ HÌNH ẢNH5.2.ĐỘ CHÍNH XÁC5.3.KẾT QUẢ TĂNG TỐC BẰNG GPU5.4.ĐÁNH GIÁ
Chương 6KẾT LUẬN – CÁC HƯỚNG PHÁT TRIỂN
6.1.KẾT LUẬN6.2.CÁC HƯỚNG PHÁT TRIỂN
DANH MỤC TÀI LIỆU THAM KHẢO
Trang 11HÌNH ẢNH
[17]
Trang 12MỞ ĐẦU
Ngày nay, với sự phát triển về số lượng và chủng loại phương tiện tham gia vào giao thông ngày càng lớn, có khả năng vượt ngưỡng giới hạn của hạ tầng kỹ thuật Vì vậy, một nhu cầu cấp thiết được đặt ra là làm thế nào để quản lý, giám sát các phương tiện một cách hiệu quả và tức thời Trên thế giới đã có rất nhiều phương pháp được áp dụng như sử dụng đường ống khí nén, các bộ cảm biến áp điện hay cảm biến từ trường cũng như hàng loạt các phương pháp chủ động hay
giao thông khá phổ biến và đã chứng minh được khả năng giám sát hiệu quả dưới nhiều điều kiện khắc nghiệt của thời tiết, mật độ giao thông dày đặc cũng như các phương tiện cơ giới đa chủng loại
Đã có nhiều giải thuật được phát triển nhằm hỗ trợ camera giao thông kiểm tra và theo vết các phương tiện giao thông Các giải thuật được phát triển dựa trên nhiều ý tưởng và phương pháp khác nhau, các kết quả thực tế về độ chính xác, nhiễu, tốc độ và các thông số khác cũng khác nhau gây nhiều khó khăn cho người sử dụng, đặc biệt là những người mới trong lĩnh vực Vì vậy, đề tài được phát triển với hai mục đích: Một là phân loại các giải thuật đã có, hai là lựa chọn một số giải thuật nhằm tăng tốc bằng cách sử dụng GPU
Trong khuôn khổ giới hạn của đề tài, các giải thuật sẽ được phân loại dựa trên các kỹ thuật toán học đã áp dụng trên giải thuật Ngoài ra, việc tăng tốc trên GPU sẽ được hiện thực và mô phỏng bằng máy tính, sử dụng các thư viện OpenCV và CUDA sau khi chọn ra một giải thuật dựa trên các tiêu chí: độ chính xác cao, khả năng khử nhiễu, và khả năng song song hoá của giải thuật
Trang 13Trong đó, các giải thuật được lựa chọn và hiện thực ở giai đoạn 1 sẽ ảnh hưởng đến giai đoạn 2 Yêu cầu đặt ra là giải thuật phải có khả năng tăng tốc bằng GPU
Trong lĩnh vực thị giác máy tính, quá trình phát hiện và phân loại phương tiện giao thông không phải là mới, đã có nhiều giải thuật được đề xuất Tuy nhiên, các giải thuật chỉ có thể áp dụng với một hoặc một vài tập dữ liệu đầu vào nhất định, với dữ liệu là giao thông ở Việt Nam thì các giải pháp hiện có vẫn chưa thể giải quyết được bài toán Một thách thức khác của đề tài là lựa chọn đặc trưng của đối tượng xe nhằm phát hiện và phân loại Có rất nhiều đặc trưng có thể áp dụng như các đặc trưng toàn cục: màu sắc, độ lớn, khung xe…hoặc các đặc trưng cục bộ như SIFT, SURF, Histogram of Gradient…tuy nhiên, việc kết hợp giữa các đặc trưng trên nhằm đáp ứng tương đương với hệ thống thị giác của con người là chưa thể Đa phần các giải pháp hiện có tìm cách kết hợp các đặc trưng dựa trên mô hình lý thuyết thống kê, đánh trọng số các loại đặc trưng, tuy nhiên các giải pháp trên vẫn chỉ có thể áp dụng cho một tập dữ liệu cố định
Nhằm lựa chọn các giải thuật thích hợp, các mô hình giải thuật hiện tại có thể phân loại dựa trên hai tiêu chí: Độ chính xác và Tốc độ Như vậy sẽ có tổng cộng 4 nhóm giải thuật:
Trang 14Lập trình bằng GPU là mô hình SIMT (đơn chỉ lệnh, đa luồng) vì vậy, các giải thuật lựa chọn cũng phải thoả mãn tiêu chí này
Với các ràng buộc và yêu cầu trên, trong khuôn khổ đề tài, phương pháp đề xuất kết hợp một loạt các giải thuật chính như Gaussian Mixture Model, Optical Flow, Dense SIFT, Bag of Word kết hợp với các giải thuật hỗ trợ như K-Mean, MeanShift nhằm giải quyết bài toán
Trang 15Chương 2 CƠ SỞ LÝ THUYẾT
2.1 RÚT TRÍCH ĐẶC TRƯNG 2.1.1 SIFT
Một cách trực quan, giải thuật SIFT (Scale Invariant Feature Transform) mô phỏng lại hệ thống thị giác con người Khi càng di chuyển đến gần một vật thể cần quan sát, con người sẽ càng nhìn vật thể rõ ràng hơn và phát hiện một số điểm đặc biệt trên vật thể Các điểm đặc biệt này có thể giúp con người phân biệt vật thể này với vật thể khác, ngoài ra các điểm đặc biệt này sẽ không mất đi khi càng tiến đến gần đến vật thể kể từ thời điểm phát hiện ra nó Giải thuật SIFT được mô tả theo ngôn ngữ toán học như sau
thước NxN Chỉ có một tỉ lệ nhỏ 0 < α < 1 của các điểm ảnh này có thể trở thành điểm cực trị Ngoài ra, trong số các điểm cực trị, chỉ có một tỉ lệ nhỏ các điểm là có thể trở thành điểm trọng yếu (keypoint) Gọi tỉ lệ các điểm trọng yếu này là 0 < β <
kể, các điểm này sẽ được thêm vào tập các điểm trọng yếu Gọi tỉ lệ các điểm được thêm vào là 0 < γ < 1, tổng số điểm trọng yếu được thêm vào là γN2 Sau khi tìm được các điểm trọng yếu, các điểm này sẽ được tính toán đặc tả (descriptor) nhằm tạo thành các vector đặc trưng Tổng số vector đặc trưng của giải thuật SIFT là (αβ + γ)N2 cho một khung hình NxN với α, β, γ, là các tỉ lệ đặc trưng
Giải thuật SIFT được tiến hành qua các phân đoạn chính
Trang 16Hình 1 - Các bước chính của giải thuật SIFT
2.1.1.1 Phát hiện cực trị
Ở bước đầu tiên, giải thuật xác định các điểm bất biến đối với các phép biến đổi quay, dịch chuyển và ít bị ảnh hưởng bởi nhiễu và một số biến dạng nhỏ Phát hiện các điểm này có thể được tiến hành bằng cách tìm kiếm các đặc trưng ổn định cho tất các các mức scale Giai đoạn này, giải thuật sẽ lần lượt tính các mức scale trong không gian Gaussian Scale, ma trận kết quả của DoG (Difference of Gaussian) và cực trị thông qua nhiều octave Giá trị cực trị của DoG sẽ đảm bảo tính bất biến với phép biến đổi co giãn cục bộ
Trang 17Gọi I là một khung ảnh kích thước NxN, với 0 ≤ x,y < N, hàm Gaussian rời rạc, 2 chiều là 𝐺 𝑥, 𝑦, 𝜎 = !!!! !𝑒!!!! !!!!! , Scale của khung ảnh I được định nghĩa: 𝐿 𝜎 = {𝐺 𝑥, 𝑦, 𝜎 ∗ 𝐼 𝑥, 𝑦 : 0 ≤ 𝑥, 𝑦 < N}
Trong đó, “*” là phép toán tổng chập (convolution), I(x, y) là giá trị của pixel tại điểm x, y
Một cách tổng quát, mức scale thứ k của khung ảnh ( k ≥ 1) được định nghĩa:
𝐿 𝑘𝜎 = {𝐺 𝑥, 𝑦, 𝑘𝜎 ∗ 𝐼 𝑥, 𝑦 : 0 ≤ 𝑥, 𝑦 < N} Với mỗi điểm ảnh I(x, y), scale được tính bằng cách áp dụng phép nhân của ma trận Gaussian kích thước w x w đặt ở vị trí pixel I Chẳng hạn, giả sử điểm I(x, y) là điểm trung tâm của cửa sổ 5x5 Với σ = √2, và w =5
G(ix, y) = 0.001*ix-2,y-2 + 0.003*ix-2,y-1 + … + 0.145*ix,y + … + 0.003*ix+2,y+1 + 0.001*ix+2,x+2
Ix-2, y-2 Ix-2, y-1 Ix-2, y Ix-2, y+1 Ix-2, y+2
Ix-1, y-2 Ix-1, y-1 Ix-1, y Ix-1, y+1 Ix-1, y+2
Ix, y-2 Ix, y-1 Ix, y Ix, y+1 Ix, y+2
Trang 18Hình 2 - Áp dụng Gaussian cửa sổ 5x5 cho một pixel
Thông thường, giá trị w sẽ được chọn là số lẻ, như vậy các điểm ảnh xung quanh I(x, y) là I(x + u, y + v) với −!!!! ≤ 𝑢, 𝑣 ≤ !!!! Scale của I(x, y) sẽ là
!!!!
!!!!!!!!!!
!
!!!!!!!
Như vậy, tính toán mức Scale cho mỗi điểm I(x, y) yêu cầu w2 phép nhân và w2 -1
là O(w2N2) Xét s ≥1 là một số nguyên, tổng số scale là k = 21/s Xét σ0 là giá trị khởi tạo cho σ cho bộ lọc Gaussian Định nghĩa σi = kiσ cho 0 ≤ i < s+ 3; 𝐿!! = 𝐼 là ảnh gốc ban đầu Với mỗi thành phần I(x, y), 𝐿!!!! = G(x, y, σi)* 𝐿!! 𝑥, 𝑦 với 0 ≤ i < s+3 Giải thuật tính tuần tự các mức Scale
𝐿! !! ! 𝐿!! !!! 𝐿! !! !!… !!! 𝐿!!!! !!!!! 𝐿!!!!!!!!! 𝐿!!!!(1.3.1) Dãy các mức scale ở (1.3.1) được gọi là một mức octave
Có thể hiểu toàn bộ quá trình trên nhằm tạo ra một loạt khung ảnh được làm mờ ở các mức độ khác nhau và toàn bộ các khung ảnh này được gọi là một mức octave
Hình 3 - Không gian Scale – 1rd Octave
Trang 19Ở bước tiếp theo, giải thuật sẽ được lặp lại nhưng ở độ phân giải khác của khung ảnh Độ phân giải của một khung ảnh có thể giảm theo cơ số 2 bằng cách lấy mẫu ở mọi điểm ảnh của khung ảnh theo mẫu checkerboard Dãy Octave được tính ở độ phân giải ban đầu gọi là mức 0, dãy Octave ở mức j tương ứng là
𝐿! !! ! 𝐿!! !!! 𝐿! !! !!… !!! 𝐿!!!! !!!!! 𝐿!!!!!!!!! 𝐿!!!!(1.3.2) với 0 < j ≤ 𝑠-1, 𝑠 là tổng số octave cần tính (mỗi octave tương ứng với một độ phân giải khác nhau)
Độ phức tạp cho quá trình tính s + 3 mức scales của khung ảnh trong một octave là O(N2w2(s+3)) Do đó, với tổng số 𝑠 octaves, mỗi octave ở độ phân giải j cần 𝑂(!!
Trang 20Hình 4 - Sai khác Gaussian
Tổng số mức scales ở octave j là N/2j x N/2j Như vậy tìm 𝐷!!cần !!
!! phép toán trừ ma trận, với tất cả s+2 phép trừ ma trận Gaussian ở octave j yêu cầu (!!!)!!! ! hay 𝑂(!!!!!) Độ phức tạp trên tổng số 𝑠 octaves là 𝑂 !!!!!!!!
Trang 21Sắp sếp kết quả 3 ma trận 𝐷!!!! , 𝐷!!, 𝐷!!!! thành 3 lớp (Hình 5), mỗi thành phần 𝐷!!(𝑥, 𝑦) có tổng cộng 26 giá trị xung quanh Định nghĩa 𝐷!!(𝑥, 𝑦) là một điểm cực trị nếu và chỉ nếu 𝐷!!(𝑥, 𝑦) mang giá trị lớn hơn hoặc nhỏ hơn nhiều so với toàn bộ 26 điểm lân cận
2.1.1.2 Phát hiện điểm trọng yếu
Với tổng số αN2 điểm cực trị phát hiện ở trên, tồn tại một số điểm nằm dọc theo cạnh của ảnh hoặc những điểm có độ tương phản thấp, các điểm này không ổn định trong quá trình biến đổi khung ảnh [25] Sau khi loại bỏ các điểm này, β tỉ lệ các điểm còn lại sẽ trở thành điểm trọng yếu (αβN2 điểm)
Tiếp theo, các điểm sẽ được gán độ lớn 𝑚!!(𝑥, 𝑦) và hướng 𝜃!!(𝑥, 𝑦) của vector gradient nhằm thoả mãn tính bất biến về phép quay
Trang 22𝑚!! 𝑥, 𝑦 = (𝐿!! 𝑥 + 1, 𝑦 − 𝐿!! 𝑥 − 1, 𝑦) !+ (𝐿!! 𝑥, 𝑦 + 1 − 𝐿!! 𝑥, 𝑦 − 1) !
𝜃!! 𝑥, 𝑦 = 𝑡𝑎𝑛!!𝐿!! 𝑥, 𝑦 + 1 − 𝐿!! 𝑥, 𝑦 − 1
𝐿!! 𝑥 + 1, 𝑦 − 𝐿!! 𝑥 − 1, 𝑦Histogram của hướng các vector gradient sẽ được xây dựng trong vùng lân cận
mẫu dữ liệu sẽ được cộng dồn vào histogram với trọng số là độ lớn của vector gradient và một cửa sổ Gaussian dạng vòng tròn bao quanh có đánh trọng số với σ là 1.5 lần mức scale của điểm trọng yếu Các đỉnh trong histogram tương ứng với các các hướng chủ đạo của các gradient Các đỉnh đạt 80% so với đỉnh cao nhất sẽ được tạo thành một điểm trọng yếu mới với hướng đã xây dựng Như vậy, đối với các vị trí có nhiều đỉnh có giá trị độ lớn vector gradient tương đồng nhau, sẽ có nhiều điểm trọng yếu được tạo ra với cùng mức scale nhưng khác hướng Chỉ có khoảng 15% điểm trọng yếu tồn tại các hướng khác nhau, nhưng những điểm trọng yếu được thêm vào này đảm bảo tính ổn định Một cách tổng quát, gọi tỉ lệ các điểm trọng yếu được thêm vào này là γ, như vậy tổng số điểm trọng yếu thu được là (αβ + γ)N2
2.1.1.3 Mô tả điểm trọng yếu
Các điểm lân cận điểm trọng yếu sẽ được tính các giá trị độ lớn vector gradient và hướng Nhằm đảm bảo tính bất biến về hướng, các trục của mô tả và các hướng của gradient được quay theo chiều tương ứng với điểm trọng yếu Một hàm trọng số Gaussian với σ bằng một nữa chiều dài của cửa sổ mô tả được sử dụng để gán một trọng số cho độ lớn của mỗi điểm lấy mẫu Có thể sử dụng phiên bản gốc là một vector 128 chiều hoặc bản rút gọn còn 64 chiều
Trang 23Hình 6 - Mô tả điểm trọng yếu 2.1.2 Dòng quang học
Dòng quang học là một khái niệm dùng để chỉ sự xuất hiện của chuyển động tương đối của các vật thể, bề mặt và các cạnh dưới góc quan sát của một điểm mốc (camera, mắt người…)
Các hình liên tục theo thứ tự cho phép ước lượng các vector vận tốc của ảnh hoặc độ dời rời rạc Phương pháp dòng quang học nhằm tính toán chuyển động giữa hai khung ảnh ở thời điểm t và t + ∆t ở tất cả các pixel; phương pháp tính toán được dựa trên một loạt xấp xỉ chuỗi Taylor cục bộ của tín hiệu ảnh (dẫn suất từng phần tương ứng với các thông tin không – thời gian)
Đối với không gian 2D (tương tự với 3D hoặc n-D), một pixel được xác định bởi vector (x, y, t) với cường độ màu sắc I (x, y, t) sẽ chuyển động với ∆𝑥, ∆𝑦 𝑣à ∆t giữa hai khung ảnh; ràng buộc về hằng số độ sáng:
I(x, y, t) = I(x + ∆𝑥, 𝑦 + ∆𝑦, 𝑡 + ∆𝑡) Giả thiết sự chuyển động là nhỏ, triển khai chuỗi Taylor:
I(x + ∆𝑥, 𝑦 + ∆𝑦, 𝑡 + ∆𝑡) ≈ I(x, y, t) + !"
!"∆𝑥 + !"
!"∆𝑦 + !"
!"∆𝑡 + H.O.T
Trang 24Suy ra:
!"!"∆𝑥 + !"!"∆𝑦 + !"!"∆𝑡 = 0 hay :
!"!"𝑉! + !"
!"𝑉! + !"
!" = 0 Trong đó, Vx, Vy là các thành phần theo trục x, y của vector vận tốc hay dòng quang học của I(x, y, t); !"!" , !"!" , !"!" là các dẫn suất (đạo hàm cấp một theo biến x, y và t) của hình ở (x, y, t) tương ứng Công thức có thể viết lại với Ix, Iy, It là các dẫn suất tương ứng:
Trang 25Lucas-Kanade là giải thuật được sử dụng rộng rãi bằng cách kết hợp thông tin từ nhiều pixel lân cận
𝐼 𝑥, 𝑦, 𝑡 = 𝐼 𝑥 + ∆𝑥, 𝑦 + ∆𝑦, 𝑡 + ∆𝑡 (1) 𝐼 𝑥 + ∆𝑥, 𝑦 + ∆𝑦, 𝑡 + ∆𝑡 = 𝐼 𝑥, 𝑦, 𝑡 + !"!"∆𝑥 + !"!"∆𝑦 + !"!"∆𝑡 + 𝐻 𝑂 𝑇(2)
∆𝑥∆𝑡 +
𝜕𝐼𝜕𝑦
∆𝑦∆𝑡 +
𝜕𝐼𝜕𝑡
∆𝑡
𝜕𝐼𝜕𝑥𝑉!+
𝜕𝐼𝜕𝑦𝑉! +
𝜕𝐼
Giả sử độ dời các thành phần trong ảnh giữa hai khung ảnh là nhỏ và có thể xấp xỉ hằng số đối với các điểm cạnh nhau Như vậy biểu thức dòng quang học có thể giả định cho tất cả các pixel nằm trong cùng cửa sổ với trọng tâm ở p
Ix(q1)Vx + Iy(q1)Vy = -It(q1) Ix(q2)Vx + Iy(q2)Vy = -It(q2) …
Ix(qn)Vx + Iy(qn)Vy = -It(qn) Trong đó, q1, q2, …qn là các pixel ở trong cùng cửa sổ; Ix(qi), Iy(qi), It(qi) là các dẫn suất của ảnh I ở các vị trí x, y, t tương ứng được tính ở điểm qi và thời điểm hiện tại Biểu thức có thể viết lại dưới dạng ma trận Av = b, trong đó:
−𝐼!(𝑞!)⋮−𝐼!(𝑞!)Hệ thống có nhiều phương trình hơn số biến nên có thể giải
Trang 26Ngoài ra, có thể kết hợp với mô hình dạng kim tự tháp, trong lược đồ từ thô đến tinh cho phép giải thuật theo vết tất cả các chuyển động Ở độ phân giải thấp nhất, cần xác định chuyển động lớn nhất và ở độ phân giải ban đầu, có thẻ xác định thành phần tốt nhất của giải thuật Đầu tiên, kim tự tháp Gaussian được xây dựng cho 2 khung ảnh liên tiếp Mức 0 của kim tự tháp được điền với hình đã xem xét, mức 1 điền với quá trình lấy mẫu với hàm mũ của 2, và cứ tiếp tục như vậy Số tầng (mức) của kim tự tháp nên được xác định bởi độ phân giải của ảnh 3 hoặc 4 cho ảnh 640x480 Sau đó, tiến trình hiện thực được tiếp tục: dòng quang học được tính ở mức thấp nhất (mức N) sau dó dòng này được lấy mẫu bởi hàm mũ của 2 (nội suy tuyến tín) để sử dụng như là giá trị khởi đầu ở mức thứ N-1 Hình đích được biến đổi với dòng ban đầu và dòng quang học được tính toán lại ở mức này giữa nguồn và đích mới Tiến trình được lặp lại cho đến mức 0
Hình 8 - Hiện thực Lucas-Kanade dạng kim tự tháp [18]
Trang 272.2 PHÂN NHÓM ẢNH 2.2.1 Mô hình hỗn hợp phân bố Gaussian
Mô hình hỗn hợp phân bố Gaussian (Gaussian Mixture Model – GMM) bản chất là một phương pháp gom cụm nhưng khác với các phương pháp gom cụm khác ở chỗ nó là hình thức gom cụm theo kiểu mô hình tham số Theo đó, các điểm dữ liệu sẽ được phân vào các nhóm với các cấu trúc phân bố Gaussian tương ứng chỉ khác biệt nhau về giá trị các tham số
Hình 9 - Mô hình phân phối Gaussian
GMM được biểu diễn bằng công thức :
𝑃 𝑥 𝜆 = ! 𝜔!𝑔 𝑥 𝜇! , Σ!
Trang 28Trong đó, x là một vector dữ liệu liên tục D chiều, 𝜔!, i = 1, 2, … M là trọng số hỗn hợp, và 𝑔 𝑥 𝜇!, Σ! là các thành phần mật độ Gaussian Mỗi thành phần mật độ là một hàm
!!!/!|!!|!/!𝑒!!!(!! !!)!!!!!(!! !!) (2) với vector giá trị trung bình 𝜇! và ma trận hiệp phương sai Σ! Các trọng số hỗn hợp
! = 1 Mô hình hỗn hợp Gaussian được tham số hoá bởi vector giá trị trung bình, ma trận hiệp phương sai và trọng số hỗn hợp
Tập hợp các thông số này có thể biểu diễn bằng ký hiệu
𝜆 = {𝜔!, 𝜇!, Σ!}, i = 1, 2,… M
2.2.2 Cực đại hoá khả năng
Cực đại hoá khả năng (Maximum Likelihood Estimation – MLE) là kỹ thuật cho phép ước lượng tham số GMM, mục đích của MLE là tìm kiếm các mô hình tham số nhằm cực đại hoá khả năng của tập huấn luyện cho trước
Xét tập huấn luyện 𝑋 = {𝑥!, 𝑥!, … 𝑥!}, giả thiết các mẫu huấn luyện là độc lập, hàm khả năng (likelihood) của GMM được tính bởi:
(3) có thể xem như là hàm số theo λ, tập tham số λ được xác định sao cho giá trị của (3) đạt cực đại ; về mặt trực quan, λ được lựa chọn sao cho khả năng quan sát dữ liệu là lớn nhất
𝜆 = 𝑎𝑟𝑔𝑚𝑎𝑥!(𝑃 𝑋 𝜆 ) (4) Tuy nhiên, (3) không phải là một hàm tuyến tính theo λ, vì vậy việc trực tiếp tính giá trị cực đại cho (4) là không thể Tuy nhiên, phương pháp MLE có thể thực
Trang 29hiện bởi một biến thể của giải thuật cực đại hoá kỳ vọng (Expectation Maximum – EM) [20] như sau
Gọi xác suất hậu nghiệm cho thành phần Gaussian thứ i (i = 1, 2,…, M)
𝑃𝑟 𝑖 𝑥, 𝜆 = 𝜔!𝑔 𝑥 𝜇! , Σ!
𝜔!𝑔 𝑥 𝜇! , Σ!
!!!!
Ở mỗi bước lặp cho giải thuật EM, với mô hình khởi tạo λ, cần ước tính giá trị 𝜆, sao cho P(X|𝜆) ≥ P(X|λ) Tiếp tục lặp với mô hình cơ sở 𝜆, cho đến khi hội tụ với một giá trị ngưỡng cho trước
𝜔! = 1𝑇 Pr (𝑖|𝑥!, 𝜆)
𝜎!! = !!!!Pr (𝑖|𝑥!, 𝜆)𝑥!!
Pr (𝑖|𝑥!, 𝜆)
!!!!
Trang 30Khi áp dụng vào thực tế, các vector “mode-finding” thường được khởi động là tập dữ liệu trong không gian đặc trưng Sau đó, giải thuật sẽ kết nối mỗi mẫu trong không gian đặc trưng với một mode cục bộ Như vậy, để phân mảnh, chỉ cần gán các vector dữ liệu hội tụ với một giá trị mode vào cùng một phân mảnh Điều này cũng có nghĩa là số lượng phân mảnh được xác định bởi chính giải thuật Đồng thời, hàm mật độ xác suất được ước lượng sử dụng phương pháp không tham số Không đưa ra bất kỳ giả định nào về phân phối của dữ liệu hay hoặc số lượng phân mảnh khiến giải thuật Mean Shift trở nên hấp dẫn trong lĩnh vực học không giám sát Tuy nhiên, cần phải chỉ rõ tham số băng thông (bandwidth) cho KDE Tham số này sẽ có ảnh hưởng đến kết quả đầu ra của giải thuật, nếu băng thông giảm, vùng tìm kiếm cho mỗi điểm sẽ giảm, và khi nó suy biến về 0, giải thuật sẽ không có sự thay đổi so với dữ liệu đầu, kết quả của một quá trình phân mảnh sẽ là một phân mảnh cho mỗi vector dữ liệu Ngược lại, nếu độ lớn băng thông tăng đến vô hạn, kết quả sẽ là một phân mảnh đặt ở giá trị trung bình của các vector dữ liệu
Ước tính hàm mật độ phân phối xác suất KDE chưa biết là một công việc thách thức Có nhiều cách tiếp cận phụ thuộc vào thông tin về tập dữ liệu đã biết Trong một vài trường hợp, nếu biết dữ liệu được trích xuất từ một loại phân phối có tham số (Gaussian, Uniform…), nhưng một vài hoặc tất cả các tham số là chưa biết thì bài toán chuyển về bài toán ước lượng tham số, cụ thể, bằng cách ước lượng khả năng cực đại (Maximum Likelihood Estimation – MLE), đây là một trường hợp của giải thuật cực đại hoá kỳ vọng (Expectation Maximization), trong đó phân phối được gỉa thiết được trích xuất từ hỗn hợp của các hàm phân phối Gaussian, các tham số có thể được ước lượng bằng giải thuật cực đại hoá kỳ vọng
Trường hợp khác, nếu biết moments của phân phối, chẳng hạn vector kỳ vọng và ma trận hiệp phương sai Lúc này, bài toán có thể giải bằng các tìm tham số phân phối trùng khớp với dữ liệu nhất Tuy nhiên, các thông tin biết trước như vậy thường rất ít Như vậy, để giải bài toàn, cần giới hạn bài toán bằng cách đưa ra các giải thiết và làm đơn giản hoá bài toán, hoặc sử dụng các phương pháp không tham
Trang 31số, trong đó chỉ giả thiết rằng dữ liệu được sinh ra từ một phân phối được mô tả bởi một hàm mật độ phân phối
2.2.3.1 Phương pháp Histogram
Để ước lượng hàm mật độ phân phối, một trong những phương pháp đơn giản nhất là sử dụng histogram, trong trường hợp vector dữ liệu là một chiều, có thể chia trục x thành các bin và đếm tổng số dữ liệu thuộc về mỗi bin, sau đó chuẩn hoá bằng cách chia cho tổng số điểm dữ liệu, có thể thu được ước lượng của xác suất của một điểm dữ liệu thuộc về một bin Tuy nhiên, nếu mục tiêu là để cung cấp ước lượng của mật độ trong một điểm cụ thể, thông thường, bin được chọn sao cho điểm dữ liệu là trung tâm Giả thiết các tập các điểm dữ liệu là X = {x1, x2, …, xn} gồm n điểm, định nghĩa một bin có độ lớn là h, bài toán trở thành tìm mô hình cho hàm phân phối mật độ trong điểm x Với một điểm dữ liệu xi, 1≤ i ≤ n, nếu xi là một điểm dữ liệu thuộc về bin có độ lớn h có giá trị trung tâm đặt ở điểm cần kiểm tra x
𝐼!,! 𝑥! = 1 𝑛ế𝑢 𝑥! − 𝑥 ≤ ℎ
20, 𝑐á𝑐 𝑡𝑟ườ𝑛𝑔 ℎợ𝑝 𝑘ℎá𝑐 Lúc này hàm ước lượng mật độ xác suất là
𝑓(𝑥) = 1
ℎ1𝑛 𝐼!,!(𝑥!)
𝐼!,! 𝑥! = 1 𝑛ế𝑢 | 𝑥!− 𝑥 |! ≤ ℎ
20, 𝑐á𝑐 𝑡𝑟ườ𝑛𝑔 ℎợ𝑝 𝑘ℎá𝑐
Trang 32với | 𝑥!− 𝑥 |! = 𝑠𝑢𝑝 (|𝑥!(1) − 𝑥(1)|, |𝑥! 2 − 𝑥 2 , … , |𝑥! 𝑙 − 𝑥 𝑙 |) , lúc này,
𝑓(𝑥) = 1
ℎ!
1𝑛 𝐼!,!(𝑥!)
!
!!!
tương tự như 1 chiều, hàm 𝑓(𝑥) kết quả cũng là rời rạc
2.2.3.2 Phương pháp Parzen Window
Ý tưởng của phương pháp là thay thế hàm rời rạc 𝐼!,! 𝑥! bằng hàm liên tục K(x, xi), với K(x, xi) ≥ 0 và ! 𝐾 𝑥, 𝑥! 𝑑𝑥 = 1, lúc này
Trong phương pháp Parzen Window, thông thường hàm Gaussian được lựa chọn làm hàm KDE
duy nhất Lúc này
Trang 33𝑒!||!! !!||
!
!!!
!!!!
Gọi xt+1 là kết quả của bước t+1, định nghĩa
!||!!!!! !!!||!𝑥!
!!!!
𝑒!||!!! !!||!
!!!
!!!!
trong đó, m(x) là giá trị trung bình có trọng số xác định bởi KDE ở x Nói cách khác, mỗi dữ dữ liệu được đánh trọng số bởi đóng góp của nó cho hàm phân phối mật độ ở điểm x Vector m(x) – x được gọi là mean shift
Tổng quát, cho một tập các điểm X = {x1, x2, …, xn} trong Rl không gian Eclidean, hàm KDE (kernel density estimation) của điểm x được xác định bởi
Trang 34Đinh nghĩa gradient của mật độ là gradient của hàm ước lượng mật độ, ta có
𝑔(𝑥 − 𝑥!
ℎ )
!!!!
− 𝑥 được gọi là vector Mean Shift Ở mỗi bước lặp, cửa sổ tìm kiếm sẽ dịch theo vector m(x)
Hình 10 - MeanShift
Trang 352.2.4 K-means
nhằm giải quyết bài toán phân cụm (clustering) Bản chất K-means là giải thuật tìm kiếm K phần tử trụ là giá trị trung bình của tập dữ liệu, sau đó phân nhóm tập dữ liệu vào K nhóm dựa trên khoảng cách giữa dữ liệu và phần tử trụ
K-means phân nhóm n các đối tượng đã cho {x1, x2, …, xn} vào k cụm (k ≤ n) {S1, S2, …, Sk} sao cho tổng bình phương khoảng cách giữa các đối tượng đến tâm nhóm là nhỏ nhất
!! !" !! !
!!!
Giải thuật k-means được tiến hành qua các bước: ! Bước 1: Khởi tạo k giá trị ngẫu nhiên làm k tâm (centroid) cho k cụm ! Bước 2: Các đối tượng được phân vào các nhóm sao cho khoảng cách của
đối tượng đến tâm là nhỏ nhất ! Bước 3: Xác định lại tâm của mỗi nhóm ! Bước 4: Lặp lại Bước 2 cho đến khi không có sự thay đổi nhóm nào của
các đối tượng hoặc thoả mãn yêu cầu ràng buộc cho trước
Trang 36Hình 4 – Các bước giải thuật K-means
Là một giải thuật heuristic nên không thể đảm bảo rằng K-means sẽ hội tụ với giá trị tối ưu toàn cục Các kết quả phụ thuộc nhiều vào cách phân cụm ban đầu Thông thường, thời gian chạy giải thuật k-means khá nhanh nên sẽ được thực thi nhiều lần với các giá trị khởi tạo khác nhau Tuy nhiên, trong một số trường hợp đặc biệt, k-means có thể mất nhiều thời gian để hội tụ
Giải thuật K-means sẽ kết thúc (hội tụ hoặc không hội tụ) trong các trường hợp sau:
" Đã lặp đủ số lần theo tham số đầu vào " Các điểm k tâm hội tụ (giá trị không thay đổi) hoặc giá trị thay đổi rất
nhỏ
∀c, c’ ∈ C, d(c, c’) ≤ r