ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
---------------------------------
CAO MINH VŨ
---------------------------------
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
---------------------------------
LUẬN VĂN THẠC SĨ
TP. HỒ CHÍ MINH, THÁNG 6 NĂM 2014
ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
---------------------------------
CAO MINH VŨ
---------------------------------
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
--------------------------------CHUYÊN NGÀNH : KHOA HỌC MÁY TÍNH
MÃ SỐ CHUYÊN NGÀNH: 60.48.01
LUẬN VĂN THẠC SĨ
TS. Lê Thành Sách
TP. HỒ CHÍ MINH, THÁNG 6 NĂM 2014
CƠNG TRÌNH ĐƯỢC HỒ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ý)
ĐẠ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 ........................................................
Tp. HCM, ngày 17 tháng 7 năm 2014
CÁN BỘ HƯỚNG DẪN
(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ý)
LỜI CẢM ƠN
Trong suốt q trình học tập và hồ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 q 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 q trình học tập và
hồ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 q báu để hồ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 q trình làm việc
Tơi xin chân thành cảm ơn bố mẹ, gia đình đã ln ở bên cạnh động viên và
giúp
đỡ
tơi
học
tập,
làm
việc
và
hồn
thành
luận
văn
...
TÓ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 tốn hiệu năng
cao. Việc áp dụng lập trình GPU vào bài tố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 tốn
giao thơng ở Việt Nam ln 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 q 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ụ
Đầ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
LỜ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ũ
MỤC LỤC
MỞ ĐẦU
......................................................................................................................
1
NỘI DUNG
...................................................................................................................
2
Chương 1
TỔNG QUAN
........................................................................................................................................
2
1.1.
ĐỀ TÀI
...............................................................................................................................................................................
2
1.2.
TỔNG QUAN
..................................................................................................................................................................
2
Chương 2
CƠ SỞ LÝ THUYẾT
...........................................................................................................................
4
2.1.
RÚT TRÍCH ĐẶC TRƯNG
.......................................................................................................................................
4
2.1.1.
SIFT
...........................................................................................................................................................................
4
2.1.1.1.
Phát hiện cực trị
..................................................................................................................................................
5
2.1.1.2.
Phát hiện điểm trọng yếu
...............................................................................................................................
10
2.1.1.3.
Mô tả điểm trọng yếu
.....................................................................................................................................
11
2.1.2.
Dòng quang học
...................................................................................................................................................
12
2.2.
PHÂN NHÓM ẢNH
....................................................................................................................................................
16
2.2.1.
Mơ hình hỗn hợp phân bố Gaussian
..............................................................................................................
16
2.2.2.
Cực đại hoá khả năng
.........................................................................................................................................
17
2.2.3.
Mean Shift
..............................................................................................................................................................
18
2.2.3.1.
Phương pháp Histogram
................................................................................................................................
20
2.2.3.2.
Phương pháp Parzen Window
.....................................................................................................................
21
2.2.4.
K-means
..................................................................................................................................................................
24
2.3.
HỌC MÁY
......................................................................................................................................................................
26
2.4.
TĂNG TỐC BẰNG GPU
..........................................................................................................................................
27
2.4.1.
Kiến trúc GPU
......................................................................................................................................................
27
2.4.2.
Mô hình lập trình
.................................................................................................................................................
29
2.4.2.1.
Kernels
................................................................................................................................................................
29
2.4.2.2.
Hệ thống phân cấp luồng
...............................................................................................................................
29
2.4.2.3.
Hệ thống phân cấp bộ nhớ
............................................................................................................................
31
2.4.2.4.
Lập trình khơng đồng nhất
............................................................................................................................
32
2.4.2.5.
Khả năng tính tốn
..........................................................................................................................................
34
Chương 3
CÁC CƠNG TRÌNH NGHIÊN CỨU LIÊN QUAN
..................................................................
35
3.1.
GIẢI THUẬT PHÁT HIỆN PHƯƠNG TIỆN GIAO THÔNG
....................................................................
35
3.1.1.
Gaussian Mixture Model
...................................................................................................................................
36
3.1.2.
Tăng tốc GMM bằng GPU
...............................................................................................................................
37
3.2.
GIẢI THUẬT LUCAS-KANADE
.........................................................................................................................
39
3.2.1.
Mô tả
........................................................................................................................................................................
39
3.2.2.
Tăng tốc bằng GPU
............................................................................................................................................
39
Chương 4
THIẾT KẾ - HIỆN THƯC
..............................................................................................................
43
4.1.
MƠ HÌNH ĐỀ XUẤT
.................................................................................................................................................
43
4.1.1.
Định tính
.................................................................................................................................................................
44
4.1.2.
Định lượng
.............................................................................................................................................................
44
4.1.2.1.
Xây dựng tập từ vựng
.....................................................................................................................................
45
4.1.2.2.
Ánh xạ vector SIFT vào từ vựng
................................................................................................................
46
4.1.2.3.
Tần suất từ
..........................................................................................................................................................
46
4.2.
CÁC KHỐI CHỨC NĂNG
.......................................................................................................................................
46
4.2.1.
Giải thuật GMM
...................................................................................................................................................
46
4.2.2.
Dòng quang học
...................................................................................................................................................
47
4.2.3.
Phát hiện khối (Blob Detection)
.....................................................................................................................
47
4.2.4.
Rút trích đặc trưng (Feature Extraction)
......................................................................................................
48
4.2.5.
Phân loại (Classfication)
...................................................................................................................................
48
4.3.
TĂNG TỐC BẰNG GPU
..........................................................................................................................................
48
4.3.1.
Kỹ thuật song song
..............................................................................................................................................
48
4.3.2.
Kỹ thuật tối ưu hoá bộ nhớ
...............................................................................................................................
49
4.3.2.1.
Bộ nhớ Pinned
...................................................................................................................................................
49
4.3.2.2.
Bộ nhớ Coalescing
..........................................................................................................................................
50
Chương 5
KẾT QUẢ - ĐÁNH GIÁ
..................................................................................................................
52
5.1.
MỘT SỐ HÌNH ẢNH
.................................................................................................................................................
52
5.2.
ĐỘ CHÍNH XÁC
..........................................................................................................................................................
54
5.3.
KẾT QUẢ TĂNG TỐC BẰNG GPU
....................................................................................................................
56
5.4.
ĐÁNH GIÁ
.....................................................................................................................................................................
56
Chương 6
KẾT LUẬN – CÁC HƯỚNG PHÁT TRIỂN
..............................................................................
57
6.1.
KẾT LUẬN
.....................................................................................................................................................................
57
6.2.
CÁC HƯỚNG PHÁT TRIỂN
..................................................................................................................................
57
DANH MỤC TÀI LIỆU THAM KHẢO
......................................................................
1
HÌNH ẢNH
HÌNH
1
-‐
CÁC
BƯỚC
CHÍNH
CỦA
GIẢI
THUẬT
SIFT
..........................................................................................................
5
HÌNH
2
-‐
ÁP
DỤNG
GAUSSIAN
CỬA
SỔ
5X5
CHO
MỘT
PIXEL
.......................................................................................
7
HÌNH
3
-‐
KHƠNG
GIAN
SCALE
–
1RD
OCTAVE
...................................................................................................................
7
HÌNH
4
-‐
SAI
KHÁC
GAUSSIAN
...................................................................................................................................................
9
HÌNH
5
-‐
ĐIỂM
CỰC
TRỊ
..............................................................................................................................................................
10
HÌNH
6
-‐
MƠ
TẢ
ĐIỂM
TRỌNG
YẾU
........................................................................................................................................
12
HÌNH
7
-‐
VẤN
ĐỀ
APERTURE
....................................................................................................................................................
13
HÌNH
8
-‐
HIỆN
THỰC
LUCAS-‐KANADE
DẠNG
KIM
TỰ
THÁP
[18]
...........................................................................
15
HÌNH
9
-‐
MƠ
HÌNH
PHÂN
PHỐI
GAUSSIAN
........................................................................................................................
16
HÌNH
10
-‐
MEANSHIFT
................................................................................................................................................................
23
HÌNH
11
-‐
SVM
NHỊ
PHÂN
..........................................................................................................................................................
27
HÌNH
12
-‐
TESLA
............................................................................................................................................................................
28
HÌNH
13
-‐
FERMI
............................................................................................................................................................................
28
HÌNH
14
–
KERNEL
LOOP
...........................................................................................................................................................
29
HÌNH
15
-‐
LƯỚI
CÁC
KHỐI
LUỒNG
........................................................................................................................................
30
HÌNH
16
-‐
HỆ
THỐNG
PHÂN
CẤP
BỘ
NHỚ
.........................................................................................................................
32
HÌNH
17
-‐
LẬP
TRÌNH
KHƠNG
ĐỒNG
NHẤT
......................................................................................................................
33
HÌNH
18
-‐
SƠ
ĐỒ
CÂY
PHÂN
LOẠI
GIẢI
THUẬT
PHÁT
HIỆN
PHƯƠNG
TIỆN
GIAO
THƠNG
.........................
36
HÌNH
19
-‐
THU
GỌN
THAM
SỐ
GAUSSIAN
..........................................................................................................................
37
HÌNH
20
-‐
SỐ
LƯỢNG
CÁC
THÀNH
PHẦN
GAUSSIAN
CHO
TỪNG
PIXEL
..............................................................
38
HÌNH
21
-‐
SOA
–
AOS
....................................................................................................................................................................
38
HÌNH
22
-‐
THỰC
THI
BẤT
ĐỒNG
BỘ
THEO
THỜI
GIAN
................................................................................................
39
HÌNH
23
-‐
HIỆN
THỰC
BẰNG
CUDA
CHO
LUCAS
KANADE
..........................................................................................
40
HÌNH
24
-‐
TIẾN
TRÌNH
ĐẦY
ĐỦ
CỦA
GIẢI
THUẬT
LUCAS-‐KANADE[17]
.................................................................
42
HÌNH
25
-‐
TỐI
ƯU
LUCAS
KANADE
[17]
..............................................................................................................................
42
HÌNH
26
-‐
MƠ
HÌNH
GIAI
ĐOẠN
HUẤN
LUYỆN
................................................................................................................
43
HÌNH
27
-‐
MƠ
HÌNH
GIAI
ĐOẠN
ỨNG
DỤNG
.....................................................................................................................
44
HÌNH
28
-‐
XÂY
DỰNG
TỪ
VỰNG
BẰNG
K-‐MEANS
...........................................................................................................
46
HÌNH
29
-‐
KIẾN
TRÚC
BỘ
NHỚ
................................................................................................................................................
49
HÌNH
30
–
DMA
–
SỬ
DỤNG
BỘ
NHỚ
PINNED
..................................................................................................................
50
HÌNH
31
-‐
SỬ
DỤNG
BỘ
NHỚ
HỢP
NHẤT
COALESCING
...............................................................................................
51
HÌNH
32
-‐
VÙNG
FOREGROUND
THIẾU
...............................................................................................................................
52
HÌNH
33
-‐
VÙNG
FOREGROUND
BỊ
LỆCH
............................................................................................................................
53
HÌNH
34
-‐
VÙNG
FOREGROUND
KHƠNG
ĐẦY
ĐỦ
NHƯNG
PHÁT
HIỆN
VÀ
PHÂN
LOẠI
CHÍNH
XÁC
.......
53
HÌNH
35
–
VÙNG
FOREGROUND
TỐT,
CHO
KẾT
QUẢ
CHÍNH
XÁC
NHƯ
KỲ
VỌNG
...........................................
54
HÌNH
36
-‐
BẢNG
TỈ
LỆ
PHÁT
HIỆN
VÀ
PHÂN
LOẠI
XE
CHÍNH
XÁC
.........................................................................
55
1
MỞ ĐẦ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
thụ động đều có những ưu khuyết điểm riêng[1]. Trong đó, việc sử dụng camera
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.
2
NỘI DUNG
Chương 1
TỔNG QUAN
1.1. ĐỀ 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“
1.2. TỔNG QUAN
Đề tài được chia làm hai giai đoạn chính:
Giai đoạn 1: Hiện thực giải thuật nhằm phát hiện và phân loại giao thông
Giai đoạn 2: Tăng tốc giải thuật bằng GPU
Trong đó, 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, q 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 tồ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:
3
Độ Chính Xác
Tốc Độ Giải Thuật
Nhóm 1
Cao
Cao
Nhóm 2
Cao
Thấp
Nhóm 3
Thấp
Cao
Nhóm 4
Thấp
Thấp
Rõ ràng, các giải thuật thuộc nhóm 1 là lý tưởng, tuy nhiên hiện tại vẫn chưa
có mơ hình đáp ứng được. Ngược lại, các giải thuật ở nhóm 4 khơng thể ứng dụng
thực tế. Vấn đề còn lại là lựa chọn các giải thuật nằm trong nhóm 2 và nhóm 3. Đối
với các giải thuật thuộc nhóm 3, với độ chính xác thấp, nhưng tốc độ cao thì việc
tăng tốc sẽ khơng có ý nghĩa thực tế (do khơng thay đổi được độ chính xác). Vì vậy,
đề tài sẽ tìm kiếm và lựa chọn các giải thuật thuộc nhóm 2, các giải thuật có độ
chính xác cao nhưng tốc độ cịn thấp để thực hiện
Lậ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
4
Chươ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
Đầu vào của giải thuật SIFT là một tập N2 điểm ảnh của một khung hình có kích
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 < β <
1. Như vậy, với một khung hình NxN, sẽ có α β N2 điểm trọng yếu. Ngồi ra, hướng
của tập N2 điểm sẽ được kiểm tra lần lượt, nhằm tìm kiếm các điểm có độ lớn đáng
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 tố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
5
Hì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ộ
6
Gọ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 tố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+1
Ix, y+2
Ix+1, y-2 Ix+1, y1
Ix+2, y-2 Ix+2, y1
Ix, y
0.001 0.003
0.004
0.003
0.001
0.003 0.008
0.113
0.008
0.003
0.004 0.113
0.145
0.113
0.004
0.003 0.008
0.113
0.008
0.003
0.001 0.003
0.004
0.003
0.001
Ix+1, y Ix+1, y+1 Ix+1,
y+2
Ix+2, y Ix+2, y+1 Ix+2,
y+2
7
Hì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 tốn mức Scale cho mỗi điểm I(x, y) yêu cầu w2 phép nhân và w2 -1
phép cộng với độ phức tạp là O(w2). Đối với toàn bộ NxN điểm ảnh, độ phức tạp sẽ
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 tồn bộ q 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
8
Ở 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 q 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
!!
𝑂( !! 𝑤 ! 𝑠), độ phức tạp là 𝑂
!
!!! !
!!! !!
𝑤 ! 𝑠 = 𝑂(𝑁 ! 𝑤𝑠)
!
Như vậy, ta có tổng cộng (s+3) mức scales 𝐿! cho 𝑠 octaves, với 0 ≤ i < s+3, 0 ≤ j <
𝑠. Với octave thứ j cố định, định nghĩa sai khác Gaussian thứ i ở octave j là
!
!
!
𝐷! = 𝐷!!! − 𝐷!
9
Hì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
!! !
𝑂( !! ). Độ phức tạp trên tổng số 𝑠 octaves là 𝑂
!
!!! !!
!!! !!
= 𝑂(𝑠𝑁 ! )
(!!!)! !
!!
hay
10
!
!
!
Sắ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
Hình 5 - Điểm cực trị
Phát hiện điểm cực trị cần 26 phép trừ ma trận với độ phức tạp là hằng số. Xét tất cả
!!
!
các điểm ảnh thành phần của 𝐷! ở octave thứ j, cần 𝑂( !! ). Với toàn bộ 𝑠 octaves,
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
11
!
!
!
!
𝜃!
!!
𝑚! 𝑥, 𝑦 = (𝐿! 𝑥 + 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
điểm trọng yếu. Histogram bao gồm 36 bin cho phạm vi [0, 3600] tương ứng. Mỗi
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
12
Hì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 tố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 tố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
13
Suy 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:
IxVx + IyVy = -It
hoặc:
∇𝐼 ! . 𝑉 = −It
Phương trình trên khơng thể giải vì có hai ẩn số. Đây là vấn đề lỗ hổng của giải
thuật
Hình 7 - Vấn đề Aperture
Để tính dịng quang học, cần thêm một hoặc một tập các phương trình khác, điều
này tạo nên các giải thuật khác nhau cho việc tính tốn dịng quang học. Trong đó
14
Lucas-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)
𝜕𝐼
𝜕𝐼
𝜕𝐼
∆𝑥 + ∆𝑦 + ∆𝑡 = 0
𝜕𝑥
𝜕𝑦
𝜕𝑡
𝜕𝐼 ∆𝑥
𝜕𝐼 ∆𝑦 𝜕𝐼 ∆𝑡
+
+
=0
𝜕𝑥 ∆𝑡
𝜕𝑦 ∆𝑡
𝜕𝑡 ∆𝑡
𝜕𝐼
𝜕𝐼
𝜕𝐼
𝑉! + 𝑉! + ∆𝑡 = 0
𝜕𝑥
𝜕𝑦
𝜕𝑡
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 đó:
𝐼! (𝑞! )
⋮
𝐴 =
𝐼! (𝑞! )
𝐼! (𝑞! )
−𝐼! (𝑞! )
𝑉!
⋮
⋮
, 𝑣 = 𝑉 và 𝑏 =
!
𝐼! (𝑞! )
−𝐼! (𝑞! )
Hệ thống có nhiều phương trình hơn số biến nên có thể giải