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

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

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

ĐẠ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



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


 



 
 


×