BaoCaoKhoaLuan_v1.3

102
GVHD: ThS. Nguyễn Hữu Thương CH Cáp Phạm Đình Thăng i ABSTRACT Our thesis’ topic is object tracking using Particle Filter, which we will do research how to track an object using Partcle Filter, building demo applications. Object tracking in computer vision has been done research for many years, but so far it is still considered an “open” problem. However, currently there is a method of object tracking that its effectiveness has been proven in many studies around the world, it is recognized as a "State of the art" - that is the Particle filte. So, we have carried out to do resrearch interesting subject based on the guidance of teachers and the materials of the university, the seminar on this subject. In this thesis, we limit to introduce the theoretical basis of the Particle Filter, and base on open source of the other research to improve of its experimental application in the situation of tracking moving objects – selecting from the first frame or a specific object (face, pedestrian ...) and build the performace assessment to demonstrate the effectiveness of the object tracking method. SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Transcript of BaoCaoKhoaLuan_v1.3

Page 1: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

i

ABSTRACT

Our thesis’ topic is object tracking using Particle Filter, which we will do

research how to track an object using Partcle Filter, building demo applications.

Object tracking in computer vision has been done research for many years, but

so far it is still considered an “open” problem. However, currently there is a method of

object tracking that its effectiveness has been proven in many studies around the world,

it is recognized as a "State of the art" - that is the Particle filte. So, we have carried out

to do resrearch interesting subject based on the guidance of teachers and the materials

of the university, the seminar on this subject.

In this thesis, we limit to introduce the theoretical basis of the Particle Filter,

and base on open source of the other research to improve of its experimental

application in the situation of tracking moving objects – selecting from the first frame

or a specific object (face, pedestrian ...) and build the performace assessment to

demonstrate the effectiveness of the object tracking method.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 2: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

ii

LỜI MỞ ĐẦU

Đề tài luận văn của chúng tôi là theo vết đối tượng dùng Particle Filter, trong đó

chúng tôi sẽ nghiên cứu cách thức theo dõi một đối tượng bằng phương pháp sử dụng

Partcle Filter sau đó xây dựng một ứng dụng thực nghiệm.

Các phương pháp theo vết đối tượng trong công nghệ cảm quan máy tính

(computer vision) đã được nghiên cứu trong nhiều năm, nhưng cho tới nay nó vẫn

được xem là một vấn đề mở. Tuy nhiên, hiện nay đã có một phương pháp theo vết đối

tượng mà tính hiệu quả của nó đã được chứng minh trong nhiều nghiên cứu trên thế

giới, nó được công nhận là một “State of the art” – đó chính là Particle Filter. Vì vậy,

chúng tôi đã tiến hành nghiên cứu đề tài thú vị này dựa trên sự hướng dẫn của thầy cô

và các tài liệu của các trường đại học, các hội nghị chuyên đề về đề tài này.

Trong khóa luận này, chúng tôi giới hạn trong việc giới thiệu cơ sở lý thuyết của

Particle Filter, dựa trên cơ sở mã nguồn mở cải tiến một số điểm làm tăng độ chính xác

của thuật toán, sau đó dựa trên cơ sở dữ liệu thực nghiệm xây dựng các bảng đánh giá

kết quả để chứng minh tính hiệu quả của các cải tiến trong thuật toán so với mã nguồn

gốc.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 3: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

iii

LỜI CẢM ƠN

Giai đoạn làm đồ án tốt nghiệp là giai đoạn cuối cùng của quá trình học đại học.

Giai đoạn này có ý nghĩa vô cùng quan trọng trong quá trình rèn luyện tại môi trường

đại học, đánh dấu bước chuyển từ việc đi học sang đi làm.

Chúng em xin chân thành cám ơn Thầy Cô trong Khoa Công nghệ Phần mềm –

Trường Đại học Công Nghệ Thông Tin – Đại học Quốc gia TPHCM đã tận tình giảng

dạy, tạo điều kiện tốt nhất cho chúng em học tập, làm khóa luận tốt nghiệp, tạo cơ hội

để chúng em có được những thực nghiệm và kiến thức thực tế trong công việc trong

tương lai.

Em xin chân thành gửi lời cám ơn sâu sắc đến Th.S Nguyễn Hữu Thương và C.H

Cáp Phạn Đình Thăng- hai Thầy đã tận tình giúp đỡ, đôn đốc, truyền đạt những kinh

nghiệm bản thân để chúng em thực hiện tốt khóa luận tốt nghiệp này

TP Hồ Chí Minh, ngày 30 tháng 12 năm 2011

Sinh viên

Chu Hoàng Nhật

Hà Thị Minh Phương

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 4: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

iv

NHẬN XÉT

(Giảng viên hướng dẫn)

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………

Page 5: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

v

NHẬN XÉT

(Giảng viên phản biện)

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………

Page 6: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

vi

MỤC LỤC

LỜI MỞ ĐẦ

U

Chương 1. GIỚI THIỆU............................................................................................1

Chương 2. BÀI TOÁN THEO VẾT ĐỐI TƯỢNG.................................................11

2.1. Tổng quan về bài toán theo vết đối tượng........................................................11

2.2. Cách tiếp cận chung của bài toán theo vết đối tượng.......................................12

2.2.1. Mô hình tham chiếu (Reference model)...........................................................13

2.2.2. Hàm thực thi sự so sánh (similarity measure)..................................................14

2.3. Cơ sở toán học..................................................................................................14

2.3.1. Ước lượng Bayes..............................................................................................14

2.3.2. Phương pháp Monte Carlo...............................................................................17

2.3.3. Yếu tố lấy mẫu..................................................................................................19

2.3.4. Các vấn đề trong việc chọn mẫu......................................................................19

2.3.5. Phương pháp tái chọn mẫu (Sequential Importance Resampling)...................20

2.4. Particle Filter....................................................................................................21

2.4.1. Định nghĩa........................................................................................................21

2.4.2. Mô hình động (Dynamics Model):...................................................................23

2.4.3. Mô hình quan sát (Observation model)............................................................24

2.4.4. Thuật toán tái chọn mẫu:..................................................................................25

2.4.5. Các bước thực hiện...........................................................................................26

Chương 3. PHÁT HIỆN ĐỐI TƯỢNG (DETECTOR)...........................................29

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 7: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

vii

3.1. Bài toán phát hiện đối tượng............................................................................29

3.2. Đặc trưng Haar-like..........................................................................................29

3.3. Giới thiệu về AdaBoost....................................................................................32

3.4. Thuật toán phát hiện đối tượng.........................................................................33

Chương 4. CÁC THƯ VIỆN TÍCH HỢP TRONG ỨNG DỤNG...........................35

4.1. Thư viện OpenCV............................................................................................35

4.2. Thư viện GSL...................................................................................................37

Chương 5. ỨNG DỤNG THỰC NGHIỆM.............................................................38

5.1. Xây dựng ứng dụng theo vết đối tượng bằng thuật toán Particle Filter...........38

5.1.1. Mô tả mã nguồn tham khảo..............................................................................38

5.1.2. Xây dựng ứng dụng theo vết đối tượng dựa trên mã nguồn tham khảo...........39

5.1.3. Kết hợp nhận dạng và theo vết đối tượng.........................................................40

5.2. Chương trình demo...........................................................................................41

5.2.1. Bảng điều khiển................................................................................................42

5.2.2. Màn hình thực thi.............................................................................................44

Chương 6. ĐÁNH GIÁ THỰC NGHIỆM...............................................................49

6.1. Công thức đánh giá thực nghiệm......................................................................49

6.2. Cơ sở dữ liệu thực nghiệm...............................................................................52

6.2.1. YouTube action dataset....................................................................................52

6.2.2. UCF Sports Action Dataset..............................................................................53

6.2.3. Face dataset......................................................................................................54

6.3. Kết quả định lượng...........................................................................................56

6.3.1. Cấu hình máy dùng để đánh giá thực nghiệm..................................................56

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 8: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

viii

6.3.2. Đánh giá thực nghiệm chức năng theo dõi vật thể chọn bởi người dùng.........56

6.3.3. Đánh giá thực nghiệm chức năng theo dõi khuôn mặt.....................................58

6.3.4. Đánh giá thực nghiệm chức năng theo dõi người đi bộ...................................59

KẾT LUẬN....................................................................................................................60

DANH MỤC TÀI LIỆU THAM KHẢO.......................................................................62

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 9: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

ix

DANH MỤC CÁC HÌNH, BẢNG, SƠ ĐỒ

HÌNH

Hình 1.1: Theo dõi khách bộ hành...................................................................................1Hình 1.2: Hệ thống camera điều khiển xe tự hành SCABOR..........................................2Hình 2.1: Phương pháp theo vết sử dụng “Blob Detection”..........................................12Hình 2.4: Tính toán trọng số..........................................................................................20Hình 2.5: Sơ đồ giải thích quá trình từ tín hiệu thực tế tới ước lượng thuật toán..........22Hình 2.6: Mô hình xác suất của Particle Filter..............................................................22Hình 2.7: Ba bước chính trong thuật toán Particle Filter...............................................27Hình 2.8: Ví dụ cụ thể các bước tính toán trên một video.............................................28Hình 3.1: Đặc trưng Harr-like cơ bản............................................................................30Hình 3.2: Đặc trưng cạnh...............................................................................................30Hình 3.3: Đặc trưng đường............................................................................................30Hình 3.4: Đặc trưng xung quanh tâm.............................................................................30Hình 3.5: Giá trị integral image tại điểm (x, y) là tổng các điểm ảnh ở phía trên, bên trái..................................................................................................................................31Hình 3.6: Ví dụ cách tính nhanh các giá trị mức xám cùa vùng D trên ảnh..................31Hình 3.7: Kết hợp các bộ phân loại yếu thành bộ phân loại mạnh................................33Hình 3.8:Quá trình phát hiện đối tượng.........................................................................33Hình 4.1: Quá trình phát triển của OpenCV..................................................................36Hình 4.2: Cấu trúc cơ sở của OpenCV..........................................................................37Hình 5.1: Minh họa ứng dụng theo vết đối tượng..........................................................39Hình 5.2: Bảng điều khiển.............................................................................................41Hình 5.3: Màn hình thực thi...........................................................................................42Hình 5.4: Flow xử lý của bảng điều khiển.....................................................................43Hình 5.5: Flow xử lý của màn hình thực thi..................................................................44Hình 5.6: Flow xử lý của quá trình theo vết đối tượng sử dụng thuật toán Particle Filter...............................................................................................................................45Hình 5.7: Class Diagram của màn hình thực thi............................................................46Hình 6.1:Hình ảnh của bộ dữ liệu Youtube action........................................................53Hình 6.2:Hình ảnh của bộ dữ liệu UCF Sports Action..................................................54Hình 6.3: Hình ảnh của bộ dữ liệu khuôn mặt...............................................................55

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 10: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

x

BẢNG

Bảng 1:Các phương thức theo vết và các nghiên cứu tiêu biểu.......................................6Bảng 2: Các phương thức nhận dạng khuôn mặt và các nghiên cứu tiêu biểu................9Bảng 3: Kết quả đánh giá sơ lược..................................................................................10

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 11: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

xi

ĐỊNH NGHĨA THUẬT NGỮ

STT Tên thuật ngữ Định nghĩa

1.

Khoảng cách

Bhattacharyya

(Bhattacharyya

distance)

Dùng để đo lường sự giống nhau của hai phân phối xác

suất rời rạc hay liên tục. Nó liên quan đến hệ số

Bhattacharyya dùng để đo sự chồng chéo giữa hai mẫu

thống kê. Hệ số được sử dụng để xác định sự gần nhau

tương đối của hai mẫu đang được xem xét.

2.Mô hình ứng viên

(candidate model)

Là mô hình của một vùng ảnh có khả năng chứa đối tượng

cần theo vết.

3.

Mô hình

histogram ứng

viên (candidate

histogram model)

Là mô hình sử dụng histogram để mô hình hóa vùng ảnh có

khả năng chứa đối tượng cần theo vết.

4. Likelihood

Là xác suất đánh giá mức độ tín cậy của mẫu trong tập hợp

mẫu. Từ đó sẽ xác định trạng thái của mẫu nào “giống” với

trạng thái đối tượng theo vết nhất.

5.

Xác suất chuyển

trạng thái hay xác

suất chuyển tiếp

Là xác suất của trạng thái hiện tại so với trạng thái tại thời

điểm trước đó.

6.Trạng thái đối

tượng

Là một vectơ đại diện cho vị trí đối tượng theo vết. Ngoài

các giá trị x, y – tọa độ của đối tượng, thường trạng thái đối

tượng có thêm giá trị scale (phụ thuộc vào sự thay đổi kích

thước của đối tượng).

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 12: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

xii

7. Mẫu (particle)

Nhằm ước lượng trạng thái đối tượng trong bài toán theo

vết, ta xây dựng một tập mẫu trong đó mỗi mẫu chứa một

giá trị về trạng thái đối tượng, sau đó dùng thuật toán để

xác định là mẫu nào “giống” đối tượng => giá trị trạng thái

đối tượng là giá trị chứa trong mẫu.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 13: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

1

Chương 1. GIỚI THIỆU.Theo vết đối tượng thông qua từng khung hình của một chuỗi hình ảnh là

một chức năng quan trọng trong các ứng dụng thị giác máy tính (computer vision

applications) bao gồm các ứng dụng trong lĩnh vực an ninh như hệ thống camera

theo dõi - đảm nhận vai trò theo dõi và cảnh báo, giúp giám sát viên không phải

trực tiếp quan sát 24/24, phát hiện chuyển động và cảnh báo xâm phạm, phát

hiện các tình huống bất thường dựa trên nhận dạng cử động như ẩu đả, cướp

ngân hàng, nguy cơ chết đuối; hay như một ứng dụng phổ biến hiện nay là theo

dõi xe lưu thông trên các tuyến đường - cảnh báo sớm tình trạng ùn tắc, ghi nhận

các trường hợp phóng nhanh lạng lách, chụp và lưu số xe vi phạm để xử lí ...;

hay một ứng dụng khác đang được nghiên cứu phát triển, có khả năng ứng dụng

cao là điều khiển xe tự hành - hệ thống camera ghi nhận hình ảnh xung quanh khi

xe di chuyển, bằng cảm quan máy tính, định vị làn đường, phát hiện các vật cản

và xe khác, nhận biết các bảng chỉ dẫn , từ đó đưa ra các thông báo cho người

điều khiển xe; ngoài ra còn một số ứng dụng khác tương tác giữa người và máy

thông qua cử động.

Hình 1.1: Theo dõi khách bộ hành

(nguồn: IEEE Computer Vision and Pattern Recognition, 2007).

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 14: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

2

Hình 1.2: Hệ thống camera điều khiển xe tự hành SCABOR

(nguồn: Technological University of Cluj Napoca).

Các nghiên cứu liên quan:

Hiện nay còn nhiều vấn đề phức tạp cần xử lý trong bài toán theo vết đối

tượng. Do đó, đã có nhiều kĩ thuật được phát triển để giải quyết các vấn đề của

bài toán, được phân loại thành các nhóm kĩ thuật sau:

Theo vết dựa trên hình ảnh: phương pháp này trích xuất ra các đặc tính

chung và sau đó nhóm chúng lại dựa trên thông tin ngoại cảnh ở mức cao hơn.

Điển hình, Intille et al. (1997) đề xuất một blob-tracker để theo dõi con người

trong thời gian thực. Background được loại trừ để lấy được phần foreground. Các

khu vực foreground sau đó được chia thành các đốm màu dựa trên màu sắc. Cách

này nhanh, nhưng nó có một bất lợi lớn về kết hợp các đốm màu khi các đối

tượng tiến lại gần nhau.

Theo vết dựa trên đường viền (contour): với giả thiết rằng các đối tượng

được xác định bởi các đường bao quanh với một số thuộc tính xác định. Xây

dựng các mô hình hình dạng (đường viền), mô hình đường viền động học và các

thông số hình ảnh khác trong quá trình theo dõi. Điển hình nghiên cứu Yezzi and

Soatto (2003), Jackson et al. (2004), và Rathi et al. (2005). Yezzi and Soatto

(2003) đề xuất một định nghĩa cho sự biến dạng về chuyển động và hình dạng có

thể áp dụng cho đối tượng biến dạng hay di chuyển.

Theo vết dựa trên Filtering: phương pháp Kalman Filter và Particle Filter

được nghiên cứu. Kalman Filter giải quyết với việc theo dõi hình dạng và vị trí

theo thời gian trong các hệ thống tuyến tính (non-linear) và có xét nhiễu Gauss.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 15: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

3

Ngược lại, Particle Filter có thể ứng dụng trong các hệ thống phi tuyến và phi

Gasuss, ý tưởng cơ bản của Particle Filter là ước lượng xác suất trong định lý

Bayesian bằng một tập hợp của mẫu có trọng số. Đối với Kalman Filter thì chỉ có

thể áp dụng khi hệ tuyến tính và có xét nhiễu Gauss, điều này thực sự gây ra

nhiều trở ngại trong việc giải quyết nhiều vấn đề trong thực tế vì các tín hiệu

quan sát thu được thường là các đại lượng phi tuyến và có phân phối phi Gauss.

Do đó, Anderson và Moore (1979) đưa ra thuật toán Extended Kalman Filter

(EKF) - thuật toán này là một trong những thuật toán tốt nhất để giải bài toán phi

Gauss và phi tuyến lúc bấy giờ. Thuật toán EKF hoạt động dựa trên ý tưởng

tuyến tính hóa (Linearization) các quan sát thu được bằng cách ước lượng các đại

lượng này bằng một chuỗi khai triển Taylor. Tuy nhiên, trong nhiều trường hợp,

chuỗi ước lượng trong EKF mô hình hóa rất kém những hàm phi tuyến và phân

phối xác suất cần quan tâm và kết quả là thuật toán sẽ không hội tụ. Julier và

Uhlmann (1996) đề xuất một thuật toán theo hướng xấp xỉ một hàm phân phối

xác suất dạng Gauss chứ không xấp xỉ một hàm phân phối phi tuyến bất kỳ -

thuật toán này được đặt tên là Unscented Kalman Filter (UKF). Thuật toán này

đã được chứng minh là có kết quả tốt hơn EKF. Tuy nhiên, giới hạn của UKF là

nó không thể được áp dụng trong các bài toán có phân phối phi Gauss tổng quát.

Do vậy, phương pháp tổng quát nhất hiện nay là phương pháp Particle Filter.

Bảng dước đây là các nghiên cứu có liên quan đến các phương pháp theo

vết trên:

Phân loại Đặc điểm chínhCác nghiên

cứu liên

quanTheo vết dựa trên hình ảnhBlob-tracker

Intille et al.

(1997)

Skin color and elliptical

edges

Huang and

Trivedi

(2004)

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 16: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

4

Continuous density

Markov

Rabiner

(1989)

Multi-color model

Bhandarkar

and Luo

(2005)

Level-set method or

geometric

partial differential

Gan et al.

(2005)

Skin color filtering

Chen and

Tiddeman

(2005)

2D human appearance

model

Thome and

Miguet

(2005)

Theo vết dựa trên đường viền

SnakesKass et al.

(1987)

Active contour

Blake and

Isard (1998)

Isard(1998)

MacCormick

(2000)

Level set technique

Sethian

(1989)

Yezzi and

Soatto (2003)

Jackson et al.

(2004) Rathi

et al. (2005)

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 17: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

5

Theo vết dựa

trên Filter

Theo vết dựa trên

Kalman-filtering

Kalman filter (KF)

Rehg and

Kanade

(1994)

Extended Kalman Filter

(EKF)

Jebaraet al.

(1998)

KF with ellipse and color

Zhao et al.

(2004)

Girondel et

al. (2004)

KF with elastic matching

Luo and

Bhandarkar

(2005)

Theo vết dựa trên

Partilce Filter Condenstaion algorithm Isard (1998)

PF with partitioned

sampling

MacCormick

and Isard

(2000)

PF with optimal proposal

distribution(OPD)

Doucet et al.

(2001)

Kalman Particle Filter

(KPF) and unscented

Particle Filter (UPF)

Li et al.

(2003)

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 18: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

6

PF with Markov

randomfield(MRF)

Wang and

Cheong

(2005)

Kernel Particle FilterChang et al.

(2005)

PF with geometric active

contours

Rathi et al.

(2005)

Multiple-blob tracker

(BraMBLe)

Isard and

MacCormick

(2001)

Boosted Particle Filter

(BPF)

Okuma et al.

(2004)

Bảng 1:Các phương thức theo vết và các nghiên cứu tiêu biểu.

Ngoài ra, trong khóa luận này sẽ có sử dụng bài toán phát hiện hay nhận

dạng đối tượng cụ thể (điển hình quan trọng là khuôn mặt); do đó chúng ta sẽ

giới thiệu về bài toán nhận dạng – để chi tiết hơn ta sẽ xem xét cụ thể bài toán

phát hiện/nhận dạng khuôn mặt. Cũng tương tự bài toán theo vết đối tượng thì

phát hiện và nhận dạng một đối tượng cụ thể cũng có ý nghĩ quan trọng trong

ứng dụng thị giác máy tính, ta thấy rõ ràng nhất là ứng dụng nhận dạng khuôn

mặt phổ biến trên một số dòng máy tính xách tay. Hiện tại các kĩ thuật nhận dạng

khuôn mặt đã khá hoàn thiện: phát hiện khuôn mặt bằng cách sử dụng phương

pháp máy học và dự toán thống kê đã chứng minh kết quả xuất sắc trong tất cả

các phương pháp nhận dạng khuôn mặt hiện có. Nhiều nghiên cứu đã được tiến

hành trong khu vực kỹ thuật nhận diện khuôn mặt, chẳng hạn như AdaBoost

(Viola và Jones, 2001a; Viola và Jones, 2001b), FloatBoost (Li et al, 2002.), S-

AdaBoost (Jiang và Loe, năm 2003), mạng nơ-ron (Rowley et al, 1996; Curran et

al, 2005), Support Vector Machines (SVM) (Osuna et al, 1997, Shih và Liu, năm

2004), mô hình Markov ẩn (Rabiner và Jung, năm 1993), và phân loại Bayes

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 19: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

7

(Schneiderman và Kanade năm 1998; Schneiderman, 2004). Viola và Jones

(2001a, 2001b) đề xuất một thuật toán nhận dạng khuôn mặt AdaBoost, có thể

phát hiện khuôn mặt trong một cách nhanh chóng và mạnh mẽ với tỷ lệ phát hiện

cao. Li et al. (2002) đề xuất các thuật toán FloatBoost, một phiên bản cải tiến của

AdaBoost, cải thiện khả năng học các lớp phân loại tăng nhằm giảm tỉ lệ lỗi.

Jiang và Loe (2003) đề xuất S-AdaBoost, một biến thể của AdaBoost, xử lý

trong việc phát hiện mô hình và phân loại. Rowley et al.(1996) đã thực hiện các

nghiên cứu quan trọng nhất trong số tất cả các phương pháp nhận diện khuôn

mặt dựa trên các mạng nơ-ron. Họ sử dụng một mạng lưới nơ-ron đa lớp để học

mô hình face và non-face từ các bộ hình ảnh về face và non-face. Một nhược

điểm của phương pháp này là mặt phải nhìn thẳng về phía trước mới có thể phát

hiện. Mặc dù Rowley et .al. cải tiến phương thức để có thể phát hiện hình ảnh

khuôn mặt khi xoay chuyển, tuy nhiên kết quả không tốt vì tỉ lệ nhận dạng khá

thấp. Support Vector Machines (SVMs) (Osuna et al, 1997, Shih và Liu, 2004)

sử dụng cấu trúc giảm thiểu rủi ro để giảm thiểu trên ràng buộc của các lỗi dự

kiến tổng quát. Những khó khăn chính của SVMs là tính toán nhiều và yêu cầu

bộ nhớ cao. Mô hình Hidden Markov (HMM) (Rabiner và Jung, 1993) cho rằng

các dạng face và non-face có thể được mô tả như là tham số ngẫu nhiên. Mục

đích của HMM là để ước tính các thông số thích hợp trong HMM nhằm tối đa

hóa khả năng quan sát dữ liệu được huấn luyện. Schneiderman và Kanade (1998)

trình bày một lớp phân loại Bayes thuần, trong đó dự tính xác suất xuất hiện và

vị trí của một mô hình khuôn mặt ở quy mô nhiều. Tuy nhiên, việc thực hiện

phân loại Bayes thuần là thấp. Để giải quyết vấn đề này, Schneiderman (2004) đề

xuất một mạng Bayesian hạn chế để phát hiện đối tượng. Phương pháp này tìm

kiếm các cấu trúc của một phân loại dựa trên mạng Bayes trong không gian rộng

lớn của cấu trúc mạng có thể xảy ra.

Bảng sau là các nghiên cứu có liên quan đến bài toán phát hiện đối tượng:

Phân loại Đặc điểm Nghiên cứu tiêu biểu

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 20: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

8

Phương thức dựa trên các đặc trưng

Facial features with edges and lines

Herpers et al. (1996) Song et al. (2002)

Gray scaleYang and Huang (1994) Graf et al. (1995)

Skin color and elliptical edges

Huang and Trivedi (2004)McKenna et al. (1998) Naseemand Deriche (2005)

Multiple facial featuresHuang et al.(2004)Wang and ertMariani (2000)

Phương thức dựa trên mẫu

Elastic bunch graph matching Wiskott et al. (1997)

Snakes and templatesKwon and Lobo (1994)Gunn and Nixon (1996)

Silhouettes Samal and Iyengar (1995)

Phương thức

dựa trên hình ảnh

Học máy

AdaBoost

Viola and Jones (2001a; 2001b)Lienhart and Maydt (2002)Wang et al. (2004)

FloatBoost Li et al.(2002a; 2002b)

S-AdaBoost Jiang and Loe (2003)

AdaBoost and PCA Zhang et al.(2004b)

AdaBoost with look-up-tabletype weak classifiers

Wu et al. (2004)

AdaBoost with Gabor features Yanget al. (2004)

Mạng nơ-ronMultilayer neural networks

Rowleyet al. (1996; 1998) Curran et al.(2005)

NN and Constrained Generative

Model

Féraud et al.(2001)

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 21: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

9

Support Vector

Machines (SVM)

SVM with polynomial kernel Osuna et al.(1997)

SVM with Orthogonal Fourierand Mellin Moments (OFMM)

Terrillon et al. (2000)

SVM with DiscriminatingFeature Analysis

Shih and Liu (2004)

Các thuật toán khác

Hidden Markov Model (HMM) Rabiner and Jung (1993)

Naive Bayes classifier Schneiderman and Kanade(1998)

Restricted Bayesian network Schneiderman (2004)

Face Probability Gradient Ascent(FPGA) Park et al.(2005)

Bảng 2: Các phương thức nhận dạng khuôn mặt và các nghiên cứu tiêu biểu.

Trong khóa luận này, chúng tôi sẽ tiếp cận bài toán theo vết chuyển động

theo hướng kết hợp việc nhận dạng đối tượng và theo dõi đối tượng cụ thể là hai

đối tượng khuôn mặt (face) và người đi bộ (pedestrian) tiến hành nhận dạng đối

tượng (detect) sau đó theo vết (track) và sau một khoảng thời gian sẽ tiến hành

nhận dạng đối tượng nhằm làm tăng hiệu quả theo vết; cải tiến số lượng đối

tượng theo vết cụ thể là cùng một thuật toán nhưng áp dụng cho các nhóm mẫu

(Particle Filter) khác nhau - mỗi nhóm tương ứng với một đối tượng được theo

vết; ngoài ra cải thiện tốc độ xử lý của thuật toán bằng kĩ thuật lập trình song

song và sử dụng thread tăng hiệu quả của thuật toán. Bên cạnh đó, chúng tôi tiến

hành đánh giá hiệu quả của các cải tiến bằng các dữ liệu lấy từ bài báo nghiên

cứu có tiếng (nhằm đảm bảo tính hợp lệ và tính đúng đắn của dữ liệu), các bộ dữ

liệu có các đặc trưng và độ phức tạp phong phú: dữ liệu “YouTube action” bao

gồm các video có cùng chung một số điểm như ngoại cảnh, cùng góc quan sát…,

độ phức tạp của cơ sở dữ liệu bao gồm: sự thay đổi lớn trong chuyển động

camera, sự xuất hiện đối tượng và đặt ra, quy mô đối tượng, quan điểm, mức độ

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 22: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

10

phức tạp của khung cảnh nền, điều kiện chiếu sáng, v.v; hay bộ dữ liệu “UCF

Sports Action” liệu gồm các video ở độ phân giải 720x480, mô tả các hoạt động

thể thao đặc trưng trong một loạt các ngoại cảnh khác nhau…

# Tên video Số frame Kết quả (%)

Đối

tượng

bất kỳ

v_jumping_01_04 201 94.03

v_jumping_02_03 201 48.76

v_jumping_02_04 201 51.74

v_jumping_03_01 201 84.08

Khuôn

mặt

jam1 199 83.42

jim2 199 95.48

ssm1 199 100

Người

đi bộ

v_walk_dog_01_04 151 74.83

walk002 100 56

walk008 101 11.88

walk014 100 100

Bảng 3: Kết quả đánh giá sơ lược.

Trong các phần sau của bài luận văn được tổ chức như sau: chương hai

giới thiệu chung về bài toàn theo vết đối tượng: cách tiếp cận chung của bài, lý

thuyết về Particle Filter; chương ba giới thiệu về phương pháp phát hiện đối

tượng được áp dụng trong ứng dụng thực nghiệm; chương bốn giới thiệu về hai

thư viện OpenCV và GSL - hỗ trợ chính trong việc xây dựng ứng dụng thực

nghiệm; ứng dụng thực nghiệm được mô tả cụ thể trong chương năm, cuối cùng,

chương năm là phần đánh giá tính hiệu quả của ứng dụng thực nghiệm, công

thức để đánh giá, dữ liệu đánh giá đánh giá hiệu quả của thuật toán và chương

năm đưa ra kết quả đáng giá thực nghiệm dựa trên các công thức đã được chứng

minh trong các hội nghị khoa học.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 23: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

11

[Chương 2.] BÀI TOÁN THEO VẾT ĐỐI TƯỢNG.

1.1.[2.1.] Tổng quan về bài toán theo vết đối tượng.Mục tiêu của bài toán theo vết đối tượng là để “hiểu” được những chuyển

động của đối tượng. “Hiểu” những thông tin về đối tượng như vị trí trong không

gian, vận tốc chuyển động và những đặc trưng vật lý khác.

Hầu hết khó khăn của bài toán theo vết đối tượng là do khả năng biến

động của ảnh video. Khi một đối tượng chuyển động qua một vùng quan sát trên

khung hình, hình ảnh về đối tượng có thể thay đổi rất nhiều. Sự thay đổi này đến

từ 3 nguồn chính: sự thay đổi tư thế đối tượng đích (như người đang đứng

chuyển sang tư thế ngồi; xe đang đi thẳng quẹo sang trái …) hay sự biến dạng

của đối tượng đích, sự thay đổi về độ sáng, và sự che khuất một phần hay toàn bộ

đối tượng đích (như khi hai người hay xe đi ngang qua nhau).

Mỗi phương pháp tiếp cận bài toán có các ưu nhược điểm riêng nhưng

tổng quát có thể chia ra thành hai hướng chủ yếu:

Hướng top-bottom: xuất phát từ các quan sát, thực hiện rút trích, phân

đoạn các hình ảnh hay các khung hình đầu vào để tìm ra đối tượng cần theo vết.

Ví dụ, phương pháp theo vết dùng “Blod detection”

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 24: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

12

Hình 2.3: Phương pháp theo vết sử dụng “Blob Detection”.

Hướng bottom-up: cách tiếp cận này sử dụng các giả thuyết về đối tượng

và cố gắng kiểm tra chúng bằng cách sử dụng các dữ liệu có được từ hình ảnh, ví

dụ: phương pháp so khớp với mẫu (template matching). Phương pháp sử dụng

Particle Filter giới thiệu trong khóa luận này cũng thuộc nhóm các phương pháp

top-down.

1.2.[2.2.] Cách tiếp cận chung của bài toán theo vết đối tượng.Đối tượng theo vết có thể chia thành ba nhóm đối tượng chính:

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 25: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

13

Nhóm các đối tượng có một tập đặc tính chung như xe hơi, người, khuôn

mặt.

Nhóm các đối tượng có tập đặc tính chung trên nhưng kết hợp với một

thuộc tính cụ thể khác như xe ô tô chạy, người đi bộ.

Nhóm các đối tượng có chung một thuộc tính cụ thể như các đối tượng di

chuyển, đối tượng bất kỳ được người dùng chọn trong khung hình đầu tiên.

Thuật toán theo vết đối tượng thực chất làm tìm một vùng ảnh di chuyển

từ khung hình này sang khung hình khác nên mỗi nhóm đối tượng sẽ có các đặc

điểm riêng nhưng tống quát ta có các bước chính như sau:

Thứ nhất, ta cần xây dựng một “mô hình tham chiếu” (reference

model) để mô tả cho đối tượng cần theo vết.

Sau đó trên mỗi khung hình đầu vào (input frame), dựa trên các

hàm thực thi so sánh (similarity measure) thuật toán tìm (localize) vùng

nào mà gần giống với “mô hình tham chiếu” (reference model) nhất.

Dựa trên cách tiếp cận chung thì mỗi phương pháp kĩ thuật được phát

triển sẽ có các biến thể và các cách thức áp dụng riêng.

1.2.1.[2.2.1.] Mô hình tham chiếu (Reference model).

Mô hình tham chiếu là mô hình mô tả các thông tin về “vẻ bề ngoài” của

đối tượng cần theo vết. Có nhiều cách xây dựng mô hình tham chiếu cho đối

tượng như các mẫu gray-level, mô hình đường viền, và cách thường dùng nhất

trong các ứng dụng theo vết đối tượng là dùng mô hình màu (color model), tuy

nhiên có một số vấn đề đặt ra:

Hệ màu nào được dùng? RGB hay HSV, ... Lưu ý rằng khi chúng

ta dùng mô hình màu để làm mô hình tham chiếu có nghĩa là chúng ta đã

chịu thêm một giả sử là chúng ta chỉ theo vết được các đối tượng trên ảnh

màu chứ không phải là ảnh bất kì. Ngoài ra, cũng cần chọn kĩ hệ màu vì

nó rất nhạy cảm với độ sáng, khung cảnh. Hiện tại trong ứng dụng thực

nghiệm đang sử dụng với hệ màu Hue-Saturation-Value (HSV).

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 26: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

14

Mô hình phân bố (distribution) như thế nào? Có nhiều cách để tạo

mô hình phân bố như Gaussian, hoặc Mixture Gaussian, hoặc chỉ đơn giản

như histogram. Ứng dụng thực nghiệm đang sử dụng mô hình phân bố

histogram.

1.2.2.[2.2.2.] Hàm thực thi sự so sánh (similarity measure).

Để so sánh giữa mô hình ứng viên (candidate model) và mô hình tham

chiếu (reference model) trong mỗi khung hình đầu vào (input frame), chúng ta

phải cần phải có một hàm tính toán sự gần nhau/giống nhau (similarity measure).

Hàm này có nhiệm vụ sẽ tính toán mức độ tượng đồng/giống nhau giữa hai đối

tượng trên từ đó xác định được trạng thái của đối tượng cần theo vết. Ví dụ, hàm

SSD (Sum of Squared Differences) được dùng trong trường hợp thỏa điều kiện

độ sáng không đổi nghĩa là giá trị ánh sáng của các điểm ảnh không thay đổi từ

khung hình này sang khung hình khác; hàm SAD (Sum of Absolute Differences).

1.3.[2.3.] Cơ sở toán học.

1.3.1.[2.3.1.] Ước lượng Bayes.

1.3.1.1.[2.3.1.1.] Định nghĩa theo khía cạnh toán học.

Định lý Bayes cho phép tính xác suất xảy ra của một sự kiện ngẫu nhiên A

khi biết sự kiện liên quan B đã xảy ra. Xác suất này được ký hiệu là P(A|B), và

đọc là "xác suất của A nếu có B". Đại lượng này được gọi xác suất có điều kiện

hay xác suất hậu nghiệm vì nó được rút ra từ giá trị được cho của B hay phụ

thuộc vào giá trị đó.

Theo định lí Bayes, xác suất xảy ra A khi biết B sẽ phụ thuộc vào 3 yếu tố:

Xác suất xảy ra A của riêng A, không quan tâm đến B. Kí hiệu là

P(A) và đọc là “xác suất của A”. Đây được gọi là xác suất biên duyên hay

xác suất tiên nghiệm, nó là "tiên nghiệm" theo nghĩa rằng nó không quan

tâm đến bất kỳ thông tin nào về B.

Xác suất xảy ra B của riêng B, không quan tâm đến A. Kí hiệu là

P(B) và đọc là "xác suất của B". Đại lượng này còn gọi là hằng số chuẩn

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 27: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

15

hóa (normalising constant), vì nó luôn giống nhau, không phụ thuộc vào

sự kiện A đang muốn biết.

Xác suất xảy ra B khi biết A xảy ra. Kí hiệu là P(B|A) và đọc là

"xác suất của B nếu có A". Đại lượng này gọi là khả năng (likelihood) xảy

ra B khi biết A đã xảy ra.

Khi biết ba đại lượng này, xác suất của A khi biết B cho bởi công thức

P ( A|B )=P (B|A ) P( A)

P(B)eq. 1

1.3.1.2.[2.3.1.2.] Định nghĩa theo khía cạnh ứng dụng.

Trước hết ta định nghĩa một số kí hiệu sau:

Đối với trạng thái đối tượng (mục tiêu cần xác định):

x t: trạng thái của đối tượng ở thời điểm t. Các đại lượng vật lý đại

diện cho trạng thái của đối tượng thường là tọa độ x, y của trọng tâm

khung chữ nhật chứa đối tượng cần theo vết.

X t: chuỗi các trạng thái của đối tượng từ thời điểm ban đầu đến

thời điểm t.

Đối với quá trình quan sát (được xác định dựa trên các thông tin từ video):

z t: các quan sát tại thời điểm t.

Z t: chuỗi các quan sát từ thời điểm ban đầu đến thời điểm t.

Mục tiêu của phương pháp Bayes là ước lượng trạng thái xt dựa trên chuỗi

quan sát Zt. Để ước lượng trạng thái xt cho một hệ thống, ta cần có 2 mô hình:

Mô hình động: mô hình sự tiến hóa của trạng thái theo thời gian:

x t=f t−1(xt−1 , v t−1) eq. 2

với v t−1 là vectơ nhiễu (ngẫu nhiên), xác suất chuyển trạng thái p(x t , x t−1) tính

được từ mô hình này.

Mô hình quan sát: mô tả mối quan hệ giữa các quan sát và trạng thái của

đối tượng tại một thời điểm:

z t=ht(x t ,wt) eq. 3

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 28: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

16

với w t là vectơ nhiễu (ngẫu nhiên), mô hình này được sử dụng để tính

likelihoodp(zt∨x t).

Tại một thời điểm t bất kỳ, hàm phân phối xác suất hậu nghiệm được cho

bởi quy tắc Bayes như sau:

p ( x t|Z t )⏟(1)

∝ p( zt∨x t)⏟(2)

∫x t−1

p (x t∨x t−1)⏟(3)

p(x t−1∨Z t−1)⏟(4 )

d x t−1 eq. 4

(1): xác suất hậu nghiệm tại thời điểm t hiện tại.

(2): đại lượng likelihood được xác định dựa trên mô hình quan sát.

(3): xác suất chuyển trạng thái xác định dựa trên mô hình động.

(4): xác suất hậu nghiệm tại thời điểm t-1.

Giải pháp Bayes cho rằng chúng ta có thể đạt được xác suất hậu nghiệm

(posterior density) p(x t∨Z t)qua hai bước:

Dự đoán:

p ( x t|Z t−1 )=∫ p ( x t|x t−1 ) p ( x t−1|Zt−1 ) d x t−1 eq. 5

Cập nhật:

p ( x t|Z t )=p ( z t|x t ) p ( x t|Z t−1 )

∫ p ( zt|x t ) p ( x t|Z t−1 ) d x t

eq. 6

Tuy nhiên ước lượng này chỉ mang tính lý thuyết vì không có phương

pháp tổng quát để tính tích phân trong công thức (eq.5) và (eq.6) trong trường

hợp liên tục và nhiều chiều. Vì lí do đó, các phương pháp lọc phi tuyến như

Kalman Filter, Kalman Filter mở rộng, lọc tổng hợp Gauss, … ra đời nhằm mục

đích xấp xỉ hàm mật độ hậu nghiệm. Nhưng nếu các phương pháp Kalman Filter,

Kalman Filter mở rộng, lọc tổng hợp Gauss, … dựa vào giải tích, tìm kiếm lời

giải cho các phương trình (eq.5) và (eq.6) bằng một hay nhiều phương trình khác

với giả sử rằng môi trường thỏa mãn một số yêu cầu, còn phương pháp Monte

Carlo lại dựa vào sự mô phỏng và xấp xỉ các hàm phân phối và các tích phân

bằng một tập các dữ liệu được sinh ra bằng chính hàm phân phối.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 29: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

17

1.3.2.[2.3.2.] Phương pháp Monte Carlo.

Trong phần này, chúng ta sẽ xem xét một trong những nền tảng lý thuyết

quan trọng nhất – phương pháp Monte Carlo – của Particle Filter. Không mất

tính tổng quát, ta xem xét bài toán tính tích phân trong đó dữ liệu rất lớn, nhiều

chiều (High-Dimensional Intergral) như sau:

I ( f )=∫ f ( x ) p ( x|z ) dx eq. 7

Trong đó,f (∘ ) là một hàmp ( x|z )- khả tích. Giả sử ta có thể sinh ngẫu nhiên

N mẫu ngẫu nhiên phân phối độc lập và đồng nhất {x i ;i=1, …, N } từ phân phối

xác suất p ( x|z ). Như vậy, phân phối xác suất p ( x|z ) có thể được ước lượng như

sau:

Pn ( x )= 1N∑i=1

N

δ x (i ) (dx) eq. 8

Trong đó, δ x (i )(dx ) ký hiệu hàm delta-Dirac có tâm tại x (i ). Vậy, I ( f ) có thể

được xấp xỉ bằng tích phân Monte Carlo (Monte Carlo Integration) như sau:

I N ( f )=∫ f (x ) Pn (x )= 1N∑i=1

N

f ( x(i)) eq. 9

Biểu thức ướng lượng trong (eq.9) hợp lệ vì theo luật mạnh số lớn, nếu

phương sai của f ( x ) thỏa δ f2≜E p (x|z ) [ f 2 ( x ) ]−I 2 (f )<+∞ thì phương sai của I ( f ) được

cho bởi var ( I N (f ) )=δ f

2

N. Vậy ta có:

I N ( f )a . s

N →+∞→ I (f ) eq. 10

Trong đóa . s→

là ký hiệu của “hội tụ hầu chắc chắn” (Almost Sure

Convergence). Hơn nữa, vì δ f2<+∞ (hữu hạn) nên định lý giới hạn trung tâm

được thỏa, nghĩa là:

√ N [I N ( f )−I ( f ) ] N →+∞⇒

N (0 , δ f2) eq. 11

Trong đó ⟹ ký hiệu cho hội tụ trong phân phối xác suất. Từ những lập

luận trên, suy ra dùng tập các mẫu ngẫu nhiên {x i ;i=1, …, N } có thể dễ dàng ước

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 30: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

18

lượng đượcI ( f ). Dựa vào ước lượng này, kết hợp với phương trình (eq.11) ta

cũng có thể dễ dàng tính được mức độ hội tụ của phép ước lượng, hay mức độ lỗi

của nó.

Không những thế, điểm mạnh của phương pháp tích phân Monte Carlo

còn nằm ở chỗ nó không phụ thuộc vào số chiều của dữ liệu. Thật vậy, nếu ta

phải tính (eq.7) bằng phương pháp xấp xỉ tích phân Riemann, trong đó không

gian trạng thái được mô hình hóa bằng một phương trình giải tích, độ chính xác

của phép xấp xỉ sẽ là đối với tích phân trên miền dữ liệu có số chiều là , nghĩa là

mức độ hội tụ của phép xấp xỉ sẽ là O(N−1n x ) đối với tích phân trên miền dữ liệu

có số chiều là nx, nghĩa là mức độ hội tụ của phép xấp xỉ càng giảm khi số chiều

của phép tính tích phân càng tăng. Trong khi đó, áp dụng phương pháp tích phân

Monte Carlo, phương pháp mô phỏng ngẫu nhiên không gian trạng thái từ phân

phối xác suất của nó, độ chính xác của phép xấp xỉ là O(N−12 ) và không phụ

thuộc vào số chiều nx của dữ liệu. Điều này có nghĩa là, phương pháp tích phân

Monte Carlo độc lập với số chiều của phép tính tích phân.

Tuy nhiên, một vấn đề gặp phải khi áp dụng phương pháp tích phân

Monte Carlo chính là làm sao để có thể tạo ra một tập các mẫu ngẫu nhiên từ

phân phối xác suất đích p(x∨z ) bất kỳ một cách hiệu quả. Tuy nhiên thường

không có cách nào để sinh ra tập mẫu này một cách trực tiếp từ phân phối xác

suất đích p(x∨z ) vì p(x∨z ) trong trường hợp tổng quát, thường là đa biến và

không có một dạng chuẩn nhất định mà chúng ta có thể biết trước (dạng của

p(x∨z ) có thể biến đổi theo thời gian). Do đó, ta phải dùng phương pháp gián

tiếp để sinh ra tập các mẫu dữ liệu này.

1.3.3.[2.3.3.] Yếu tố lấy mẫu.

Lấy mẫu là một yếu tố quan trọng trong thuật toán Particle Filter vì nó

giải quyết được trường hợp các tín hiệu quan sát là phi Gauss trong chuỗi ảnh.

Trọng số (weight) của mỗi mẫu trong tập hợp mẫu hiện tại có ý nghĩa quan trọng

vì căn cứ vào đó ta dự đoán trạng thái của đối tượng xt tại thời điểm t hiện tại

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 31: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

19

bằng p ( x t|zt−1 , zt−2 , …, z1 ). Mật độ hậu nghiệm (posterior density) p(x∨z ) cung

cấp tất cả các thông tin cần thiết về trạng thái x của đối tượng. Điều này thu được

bằng cách áp dụng định lý Bayes như sau:

p ( x|z )=kp ( z|x ) p( x) eq. 12

Trong đó, k là hằng số không phụ thuộc vào x. Đầu tiên, một tập N mẫu

{s1, s2, ..., sN} được khởi tạo ra dựa trên phân bố đầu tiên p(x0) – thực chất đây

chính là tạo N mẫu từ mô hình tham chiếu. Sau đó, trọng số của mỗi mẫu trong

tập mẫu được xác định. Dựa vào trọng số này, mẫu có nhiều “khả năng” là trạng

thái đối tượng (có xác suất cao hơn) sẽ được lựa chọn. Mở rộng ý tưởng này theo

chuỗi thời gian, trọng số tại bất kỳ thời điểm t là:

w t=p ( zt|xt )=p ( zt|sn ,t )

∑j=1

N

pz ( zt|s j , t )eq. 13

Tại mỗi thời điểm t+1 thì trọng số của mỗi phần tử trong tập hợp mẫu sẽ

được cập nhật lại.

1.3.4.[2.3.4.] Các vấn đề trong việc chọn mẫu.

Có một vấn đề thường gặp trong thuật toán chọn mẫu chính là hiện tượng

thoái hóa mẫu (Degeneracy of SIS), trong đó sau một vài vòng lặp, ngoại trừ một

mẫu duy nhất trong tập mẫu, tất cả những mẫu còn lại đều có trọng số rất nhỏ,

không đáng kể.

Sự thoái hóa của trọng số: phương sai không điều kiện của trọng số thực

sự tăng dần theo thời gian:

varπ ( x0 :t−1 , z1: t−1 ) [ wt−1¿ ]≤ var π ( x0: t−1 , z1 :t−1) [w t

¿] eq. 14

Trong đó, chỉ số dưới dòng ở biểu thức phương sai chỉ ra rằng những giá trị kỳ

vọng là được tính tương ứng với chuỗi độ đo và chuỗi trạng thái tương ứng.

Hơn nữa, ta lại có:

varπ ( x0 :t−1 , z1: t−1 ) [ wt¿ ]=Ep (z1: t) [var π ( x0 :t−1 , z1:t −1 ) [ wt

¿∨z1: t ] ] eq. 15

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 32: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

20

nghĩa là, với một chuỗi quan sát cho trước z1 :t, phương sai có điều kiện của trọng

số có xu hướng tăng dần.

Sự thoái hóa này là không tránh khỏi trong các bộ lọc dựa trên phương

pháp Monte Carlo. Do đó, vấn đề của chúng ta là làm sao giảm bớt ảnh hưởng

của hiện tượng này.

1.3.5.[2.3.5.] Phương pháp tái chọn mẫu (Sequential Importance Resampling).

Trong phần này trình bày về phương pháp để giảm bớt tác dụng của hiện

tượng thoái hóa mẫu hay thoái hóa trọng số, đó là phương pháp tái chọn mẫu

(Resampling).

Hình 2.4: Tính toán trọng số.

Trong những phần trên, ta đã biết:

p̂N(x t∨z1 : t)=∑i=1

N~w eq. 16

chính là một ước lượng rời rạc của hàm mật độ p(x t∨z1: t). Sau một vài lần thực

hiện, tất cả các mẫu đều có trọng số rất nhỏ, ngoại trừ một mẫu duy nhất trong

tập hợp mẫu có trọng số bằng 1. Tuy nhiên, ta nhận thấy không phải tất cả các

mẫu đều thực sự góp phần quyết định vào giá trị của hàm mật độ hậu nghiệm

p(x t∨z1: t) mà chỉ có những phần từ trong tập hợp mẫu tương đối gần với kỳ

vọng I (f ) mới có đóng góp đáng kể trong việc quyết định giá trị của hàm.

Phương pháp tái chọn mẫu giải quyết vấn đề này bằng cách sắp xếp và điều

chỉnh lại N mẫu trong tập hợp mẫu đã có sẵn để xấp xỉ tốt hơn hàm mật độ này.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 33: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

21

Gọi ~x t(i) là vector trạng thái trước khi tái chọn mẫu và x t

(i)là vector trạng

thái sau khi bước tái chọn mẫu được thực hiện. Vậy thủ tục tái chọn mẫu chính là

ánh xạ:

{~x t( i) ,~wt

( i)}i=1

N→ {x t

(i) ,1N }

i=1

N

eq. 17

Sao cho:

Pr ( x t(i)=~x t

(i))=~w t(i) eq. 18

Bằng cách sắp xếp lại N phần tử trong mẫu và đặt lại các trọng số mới,

thuật toán tránh được hiện tượng thoái hóa (tại mỗi thời điểm, trọng số của các

phần tử trong mẫu đều như nhau và bằng 1/N).

1.4.[2.4.] Particle Filter.

1.4.1.[2.4.1.] Định nghĩa.

Theo vết đối tượng bằng phương pháp Particle Filter là phương pháp dựa

trên xác suất, sử dụng các phương trình dự đoán (prediction) để dự đoán trạng

thái của đối tượng và phương trình cập nhật (updation) dựa trên những tri thức

thu thập được từ các quan sát (observation) trên đối tượng để hiệu chỉnh lại các

dự đoán trước đó về trạng thái của đối tượng.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 34: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

22

Hình 2.5: Sơ đồ giải thích quá trình từ tín hiệu thực tế tới ước lượng thuật toán.

Hình 2.6: Mô hình xác suất của Particle Filter.

Phương pháp này dùng ước lượng Bayes hồi quy làm giải pháp lý thuyết,

và ý tưởng của phương pháp Monte Carlo kết hợp với yếu tố lấy mẫu để xấp xỉ

cho giải pháp lý thuyết này. Cách thức thực hiện của phương pháp này là xây

dựng mô hình động và mô hình quan sát, áp dụng mô hình xác suất này dựa mô

hình tham chiếu của đối tượng để phân tích các dòng dữ liệu từ video.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 35: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

23

Cũng như các phương pháp Filtering, Particle Filter cũng tính xấp xỉ hàm

mật độ hậu nghiệm tuy nhiên không như các phương pháp khác dựa vào giải

tích, cố gắng tìm một lời giải cho các phương trình trên thông qua một hay nhiều

phương trình khác, thì Particle Filter lại sử dụng một tập lớn các mẫu dữ liệu

được phát sinh từ bời chính các hàm phân phối trong các tích phân này.

Dựa vào định nghĩa trên, ta xác định được kỹ thuật theo vết đối tượng này

dựa trên các trạng thái trước đó của đối tượng để dự đoán vị trí đối tượng trong

khung hình tiếp theo và các thuật ngữ sau được định nghĩa:

xt: trạng thái của đối tượng vào thời điểm t.

zt: các tín hiệu quan sát từ dữ liệu từ khung hình hiện tại trong

chuỗi video tại thời điểm t.

Tập hợp các trạng thái của đối tượng từ trước tới thời điểm t (x1, x2,

…xt).

Tập hợp các dữ liệu quan sát được tính tới thời điểm t (z1, z2, ... zt).

1.4.2.[2.4.2.] Mô hình động (Dynamics Model):

Mô hình động của đối tượng chính là những phương trình xác suất mô tả

chuyển động, biến đổi của trạng thái đối tượng trong hệ.

Trong ứng dụng thực nghiệm thì trạng thái đối tượng được mô tả bằng một

vectơ xt = (x, y, s) trong đó x, y chính là tọa độ của khung hình chữ nhật chứa đối

tượng, s là độ scale của đối tượng.

Chúng tôi lan truyền tập mẫu và ước lượng sự chuyển động của đối tượng

thông qua một mô hình hồi qui động cấp 2 (a second order autoregressive

dynamic model). Công thức chuyển động cụ thể như sau::

x t+1=A x t+B x t−1+C v t , v t N (0 , σ t)

y t+1=A y t+B y t−1+C v t , v t N (0 , σ t)

st+1=A st +B st−1+C v t , v t N (0 , σ t)

eq. 19

Trong đó ma trận A, B đại diện cho thành phần bất biến và ma trận C đại

diện cho thành phần ngẫu nhiên. Những thành phần này có thể chọn từ tập mẫu

học hoặc có thể gán bằng tay. σ t là xác suất nhiễu Gauss.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 36: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

24

1.4.3.[2.4.3.] Mô hình quan sát (Observation model).

Mô hình quan sát chính là cơ sở cho những phép đo và tính toán xác suất

trong các phương trình xác suất của hệ. Mục đích của bước quan sát để đo lường

khả năng mỗi mẫu được dự đoán khớp như thế nào (likelihood) so với các dữ

liệu quan sát – điều này được đặc trưng qua trọng số của mẫu. Mô hình quan sát

sử dụng các đặc tính của hình ảnh, chẳng hạn như cạnh, màu sắc, biểu đồ

(histogram), v.v, để xác định trạng thái dự đoán dựa trên mẫu các dữ liệu đầu vào

hoặc dữ liệu quan sát. Trong ứng dụng thực nghiệm, chúng tôi sử dụng mô hình

quan sát dựa vào mô hình màu trong hệ màu Hue-Saturation-Value (HSV)

Áp dụng mô hình màu:

Mô hình màu thu được bằng kỹ thuật histogram trong hệ màu HSV để tách

thông tin màu sắc từ các hiệu ứng đổ bóng. Tuy nhiên, thông tin màu sắc này chỉ

đáng tin cậy khi hai giá trị Saturation và Value không phải là quá nhỏ. Do đó,

trong ứng dụng chúng tôi xây dựng một histogram HS với bins Nh Ns bằng cách

chỉ sử dụng các điểm ảnh với hai giá trị Saturation và Value lớn hơn hai ngưỡng

tương ứng là 0,1 và 0,2. Tuy nhiên, các điểm ảnh "colorless" còn lại có thể là

thông tin rất quan trọng khi theo vết những khu vực có màu chủ yếu là màu đen

và trắng. Kết quả histogram thu được bao gồm số bin là N = Nh x Ns + Nv.

Tại thời điểm t, mô hình histogram h( xt) thuộc vectơ trạng thái x t sẽ so sánh

với mô hình tham chiếu h0={h0(n)}n=1 … N. Mô hình tham chiếu được xây dựng tại

thời điểm bắt đầu t0 có thể cho người dùng chọn đối tượng cần theo vết hoặc kết

hợp với module detector để phát hiện đối tượng tự động. Do đó,

h0=h(x t 0) eq. 20

Để tính được đại lượng likelihood ta cần xác định mức độ “gần nhau” giữa

mô hình histogram ứng viên và mô hình tham chiếu thông qua khoảng cách D

trên phân bố màu HSV. Khoảng cách D được tính dựa trên khoảng cách

Bhattacharyya như sau:

D [h0 , h(x t)]=1−∑n=1

N

√h0 (n ) h(n; x t) eq. 21

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 37: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

25

Công thức tính trọng số:

w t=p ( zt ¿ x t )∝ e−λ D 2[h0 , h( xt )] eq. 22

Thiếu cách để ước tính tham số λ nhưng dựa trên các đánh giá thực nghiệm

của các bài báo khóa học thì giá trị λ được đánh giá là tốt nhất là 20; do đó, λ=20

. Đối với số bin của histogram sử dụng thiết lập mặc định Nh=Ns =Nv=10 (10 bin

cho mỗi hệ màu Hue, Saturation và Value) do tổng N=10x10+10 = 110 bins.

1.4.4.[2.4.4.] Thuật toán tái chọn mẫu:

Từ lý thuyết về phương pháp tái chọn mẫu, ta có thuật toán tái chọn mẫu như

các bước sau:

Tại khung hình đầu tiên, khởi tạo một tập N mẫu với trọng số là 0.

Tại các khung hình k tiếp theo:

Chuẩn hóa (Normalize) giá trị trọng số theo công thức:

w t(i)=

~wt(i)

∑j=1

N

~wt( j)

;1 ≤i ≤ Neq. 23

Tính toán số mẫu ước lượng theo công thức sau:

~N eff =1

∑i=1

N

(w t(i))2 eq. 24

Nếu ~N eff <N thr thì tạo mới một tập mẫu từ N mẫu hiện tại với trọng số

w k(i)= 1

N;;1 ≤ i≤ N eq. 25

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 38: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

26

1.4.5.[2.4.5.] Các bước thực hiện.

Các bước trong quá trình xác định trạng thái của đối tượng thông qua

Particle Filter:

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Khởi tạo trạng thái đối tượng x0 từ khung hình đầu tiên

Tạo ra một tập hợp mẫu gồm N mẫu {sit}i=1...N

Dự đoán x, y, s cho mỗi mẫu bằng cách sử dụng mô hình động.

Tính toán trọng số cho mỗi mẫu bằng mô hình quan sát

Tái chọn mẫu

Xác định trạng thái đối tượng tại thời điểm hiện tại dựa vào trung bình của N/2 particle có trọng số

lớn nhất.

Page 39: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

27

Hình 2.7: Ba bước chính trong thuật toán Particle Filter

Trong đó thì ba bước sau là quan trọng:

Predict: dự đoán trạng thái đối tượng tại thời điểm t dựa trên mô hình

động.

Measure: tính toán trọng số các mẫu trong tập hợp dựa trên các quan sát

(tín hiệu từ video – so sánh các histogram của các mẫu) tại thời điểm t hiện tại,

từ đó suy ra mẫu nào “giống” với đối tượng nhất.

Resample: tái chọn mẫu, để tránh hiện tượng thoái hóa mẫu từ tập hợp

mẫu hiện tại ta tạo một tập mẫu mới với trọng số không quá nhỏ.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 40: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

28

Hình 2.8: Ví dụ cụ thể các bước tính toán trên một video.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

x t−1(i)

x t(i)

p(zt∨x t)

p(x t∨x t−1)

h0 ht(i)

Page 41: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

29

Chương 2.[Chương 3.] PHÁT HIỆN ĐỐI TƯỢNG (DETECTOR).Trong chương này, chúng ta sẽ tìm hiểu về phương pháp phát hiện đối

tượng được áp dụng trong ứng dụng thực nghiệm trên hai đối tượng là khuôn mặt

và người đi bộ.

2.1.[3.1.] Bài toán phát hiện đối tượng.Hiện nay có rất nhiều phương pháp phát hiện đối tượng, dựa vào các tính

chất của các phương pháp, ta có thể chia ra làm bốn hướng tiếp cận chính như

sau:

Hướng tiếp cận dựa trên tri thức: mã hoá hiểu biết của con người về các

loại đối tượng và tạo ra các tập luật để xác định đối tượng.

Hướng tiếp cận dựa trên các đặc tả không thay đổi: mục tiêu các thuật

toán tìm ra các đặc trưng mô tả cấu trúc đối tượng (các đặc trưng không thay đổi

so với tư thế, vị trí đặt thiết bị thu hình hay khi độ sáng tối thay đổi ...).

Hướng tiếp cận dựa trên so khớp mẫu: dùng các mẫu chuẩn của đối

tượng, sau đó tiến hành so khớp trên dữ liệu đầu vào.

Hướng tiếp cận dựa trên diện mạo: phương pháp học từ một tập ảnh huấn

luyện mẫu để xác định đối tượng.

Ứng dụng thử nghiệm trong khóa luận này sử dụng hướng tiếp cận dựa

trên diện mạo, sử dụng bộ phân loại mạnh (strong classifier) AdaBoost là sự kết

hợp của các bộ phân loại yếu (weak classifier) dựa trên các đặt trưng Haar-like

để xác định đối tượng. Mã nguồn cài đặt trong ứng dụng thực nghiệm dựa trên

thư viện mã nguồn mở OpenCV của Intel.

2.2.[3.2.] Đặc trưng Haar-like.Do Viola và Jones công bố, gồm 4 đặc trưng cơ bản để xác định đối

tượng. Mỗi đặc trưng Haar–like là sự kết hợp của hai hay ba hình chữ nhật

"trắng" hay "đen" như trong hình sau:

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 42: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

30

Hình 3.9: Đặc trưng Harr-like cơ bản.

Để sử dụng các đặc trưng này vào việc xác định khuôn mặt người, 4 đặt

trưng Haar-like cơ bản được mở rộng ra, và được chia làm 3 tập đặc trưng như

sau:

a. Đặc trưng cạnh (edge features):

Hình 3.10: Đặc trưng cạnh.

b. Đặc trưng đường (line features):

Hình 3.11: Đặc trưng đường.

c. Đặc trưng xung quanh tâm (center-surround features):

Hình 3.12: Đặc trưng xung quanh tâm.

Dùng các đặc trưng trên, ta có thể tính được giá trị của đặc trưng Haar-

like là sự chênh lệch giữa tổng của các điểm ảnh (pixel) của các vùng đen và các

vùng trắng như trong công thức sau:

f ( x )=Tổng vùngđen−tổng vùng trắng eq. 26

Sử dụng giá trị này, so sánh với các giá trị của điểm ảnh thô, các đặc trưng

Haar-like có thể tăng/giảm sự thay đổi in-class/out-of-class (bên trong hay bên

ngoài lớp đối tượng), do đó sẽ làm cho bộ phân loại dễ hơn.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 43: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

31

Như vậy ta có thể thấy rằng, để tính các giá trị của đặc trưng Haar-like, ta

phải tính tổng của các vùng điểm ảnh trên ảnh. Nhưng để tính toán các giá trị của

các đặc trưng Haar-like cho tất cả các vị trí trên ảnh đòi hỏi chi phí tính toán khá

lớn, không đáp ứng được cho các ứng dụng thời gian thực. Do đó Viola và Jones

đưa ra một khái niệm gọi là Integral Image, là một mảng 2 chiều với kích thước

bằng với kích của ảnh cần tính các đặc trưng Haar-like, với mỗi phần tử của

mảng này được tính bằng cách tính tổng của điểm ảnh phía trên (dòng-1) và bên

trái (cột-1) của nó. Bắt đầu từ vị trí trên, bên trái đến vị trí dưới, phải của ảnh,

việc tính toán này đơn thuần chỉ đựa trên phép cộng số nguyên đơn giản, do đó

tốc độ thực hiện rất nhanh.

Hình 3.13: Giá trị integral image tại điểm (x, y) là tổng các điểm ảnh ở phía trên, bên trái.

Công thức tính Intergral image:

ii ( x , y )= ∑x '≤ x , y' ≤ y

i(x ' , y ' ) eq. 27

Trong đó P(x, y): là Intergral image, i(x’, y’): là ảnh gốc (original image).

Sau khi đã tính được Integral Image, việc tính tổng các giá trị mức xám

của một vùng bất kỳ nào đó trên ảnh thực hiện rất đơn giản theo cách sau:

Hình 3.14: Ví dụ cách tính nhanh các giá trị mức xám cùa vùng D trên ảnh.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 44: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

32

Giả sử ta cần tính tổng các giá trị mức xám của vùng D như trong hình 11,

ta có thể tính như sau:

D=A+B+C+D−( A+B )−( A+C )+ A eq. 28

Với A + B + C + D chính là giá trị tại điểm P4 trên Integral Image, tương tự như

vậy A+B là giá trị tại điểm P2, A+C là giá trị tại điểm P3, và A là giá trị tại điểm

P1. Vậy ta có thể viết lại biểu thức tính D ở trên như sau:

D= ( x4 , y 4 )⏟A+B+C +D

−( x2 , y2 )⏟(A+B)

−( x3 , y 3 )⏟(A+C )

+(x 1 , y1)⏟A

eq. 29

Tiếp theo, để chọn các đặc trưng Haar-like dùng cho việc thiết lập

ngưỡng, Viola và Jones sử dụng một phương pháp máy học được gọi là

AdaBoost. AdaBoost sẽ kết hợp các bộ phân loại yếu để tạo thành một bộ phân

loại mạnh.

2.3.[3.3.] Giới thiệu về AdaBoost.AdaBoost là một bộ phân loại mạnh phi tuyến phức dựa trên hướng tiếp

cận boosting được Freund và Schapire đưa ra vào năm 1995 [2]. Adaboost cũng

hoạt động trên nguyên tắc kết hợp tuyến tính các bộ phân loại yếu (weak

classifiers) để hình thành một bộ phân loại mạnh (strong classifier).

Là một cải tiến của tiếp cận boosting, AdaBoost sử dụng thêm khái niệm

trọng số (weight) để đánh dấu các mẫu khó nhận dạng. Trong quá trình huấn

luyện, cứ mỗi bộ phân loại yếu được xây dựng, thuật toán sẽ tiến hành cập nhật

lại trọng số để chuẩn bị cho việc xây dựng bộ phân loại yếu kế tiếp: tăng trọng số

của các mẫu bị nhận dạng sai và giảm trọng số của các mẫu được nhận dạng

đúng bởi bộ phân loại yếu vừa xây dựng. Bằng cách này bộ phân loại yếu sau có

thể tập trung vào các mẫu mà các bộ phân loại yếu trước nó làm chưa tốt. Sau

cùng, các bộ phân loại yếu sẽ được kết hợp tùy theo mức độ tốt của chúng để tạo

nên bộ phân loại yếu mạnh.

AdaBoost kết hợp các bộ phân loại yếu sử dụng các đặc trưng Haar-like

theo mô hình phân tầng (cascade) để tạo thành một bộ phân loại mạnh như sau:

H ( x )=sign(a1 h1 ( x )+a2h2 ( x )+…+anhn ( x )) eq. 30

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 45: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

33

Với: at>= 0 là hệ số chuẩn hoá cho các bộ phân loại yếu

Hình 3.15: Kết hợp các bộ phân loại yếu thành bộ phân loại mạnh.

2.4.[3.4.] Thuật toán phát hiện đối tượng.

Hình 3.16:Quá trình phát hiện đối tượng.

Như trong hình trên, từ ảnh gốc ban đầu tính được Integral Image - là

mảng 2 chiều với phần tử (x, y), mục đích là để tính nhanh tổng của các giá trị

mức xám của một vùng hình chữ nhật bất kỳ trên ảnh gốc. Các vùng ảnh con này

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 46: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

34

sẽ được đưa qua các hàm Haar cơ bản để ước lượng đặc trưng, kết quả ước lượng

sẽ được đưa qua bộ điều chỉnh AdaBoost để loại bỏ nhanh các đặc trưng không

có khả năng là đặc trưng của đối tượng. Chỉ có một tập nhỏ các đặc trưng mà bộ

điều chỉnh AdaBoost cho là có khả năng là đặc trưng của khuôn mặt người mới

được chuyển sang cho bộ quyết định kết quả (là tập các bộ phân loại yếu). Bộ

quyết định sẽ xác nhận đây là đối tượng cần xác định nếu kết quả của các bộ

phân loại yếu xác nhận đây là đối tượng cần xác định.

Mỗi bộ phân loại yếu sẽ quyết định kết quả cho một đặc trưng Haar-like,

được xác định ngưỡng đủ nhỏ sao cho có thể vượt được tất cả các bộ dữ liệu mẫu

trong tập dữ liệu huấn luyện. Trong quá trình xác định đối tượng, mỗi vùng ảnh

con sẽ được kiểm tra với các đặc trưng trong chuỗi các đặc trưng Haar-like, nếu

có một đặc trưng Haar-like nào xác nhận là đối tượng cần xác định thì các đặc

trưng khác không cần xét nữa. Thứ tự xét các đặc trưng trong chuỗi các đặc

trưng Haar-like sẽ được dựa vào trọng số (weight) của đặc trưng đó do AdaBoost

quyết định dựa vào số lần và thứ tự xuất hiện của các đặc trưng Haar-like.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 47: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

35

Chương 3.[Chương 4.] CÁC THƯ VIỆN TÍCH HỢP TRONG ỨNG DỤNG.

Để hỗ trợ cho việc xây dựng và thiết kế ứng dụng thực nghiệm trong khóa

luận này, chúng ta sẽ tìm hiểu về hai thư viện OpenCV và GSL - OpenCV hỗ trợ

trong việc xử lý ảnh, GSL hỗ trợ các hàm toán học.

3.1.[4.1.] Thư viện OpenCV.OpenCV là viết tắt của Open Source Computer Vision Library. Nó chứa

hơn 500 hàm sử dụng trong thị giác máy (computer vision). OpenCV là một thư

viện mã nguồn mở (open source) http://sourceforge.net/. Thư viện được viết

bằng ngôn ngữ C và C++ có thể chạy trên các hệ điều hành Linux, Window và

Mac OS X. OpenCV được thiết kế để nâng cao hiệu suất tính toán và nhấn mạnh

đến hệ thống thời gian thực. Một điều tuyệt vời của OpenCV là nó đưa ra một hệ

thống đơn giản, dễ sử dụng giúp mọi người nhanh chóng xây dựng các ứng dụng

trong thị giác máy, kể cả các hệ thống kiểm tra trong nhà máy, bức ảnh trong lĩnh

vực y học, bảo mật, rô bốt học v..v. Nó chứa các lập trình xử lý ảnh rất đơn giản,

kể cả thực thi các hàm bậc cao như dò tìm khuôn mặt, theo dõi khuôn mặt, nhận

dạng khuôn mặt.

Kể từ khi được giới thiệu vào tháng 1 năm 1999, OpenCV đã được sử

dụng trong rất nhiều ứng dụng, các sản phẩm và các nghiên cứu. Ví dụ trong lĩnh

vực hàng không vũ trụ, bản đồ web, sử dụng giảm nhiễu trong y học, phân tích

đối tượng, an ninh, hệ thống dò tìm, theo dõi tự động và hệ thống bảo mật, quản

lý hệ thống sản xuất, xử lý camera, ứng dụng trong quân sự, hệ thống hàng

không không người lái, trên mặt đất, các tàu ngầm.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 48: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

36

Hình 4.17: Quá trình phát triển của OpenCV.

Cấutrúc của OpenCV được chia thành các phần sau:

CV (computer vision): là cung cấp các hàm liên quan trực tiếp đến

Computer Vision, trong đó tập trung ở các thao tác cấp thấp trên ảnh và

camera cụ thể là các thao tác trong xử lý ảnh như lọc ảnh, trích biên, phân

vùng, tìm contour, biến đổi Fourier.

MLL (machine learning library): là thư viện machine learning,

cái này bao gồm rất nhiều lớp thống kê và gộp các công cụ xử lý.

HighGUI: l à t h à n h p h ầ n c h ứ a c ác thao tác lên những file

ảnh và file video như đọc ảnh, hiển thị ảnh, chuyển đổi định dạng.

CXCore: chứa đựng rất nhiều các thành phần cơ bản cấu thành nên

toàn bộ OpenCV. CxCore bao gồm các cấu trúc dữ liệu cơ bản, các thao

tác lên array, các cấu trúc động, các hàm vẽ, các hàm tác động lên dữ liệu,

các hàm quản lý lỗi và sự kiện và một số hàm cần thiết khác. Số lượng

hàm chứa đựng trong CxCore là rất lớn.

IPP (Integrated Performance Primitives): là một thư viện của Intel

gồm các hàm tối ưu mức thấp trong các lĩnh vực khác nhau, đây chỉ là

một option của OpenCV, OpenCV tự động gọi các hàm trong IPP nếu nó

được cài đặt.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 49: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

37

Hình 4.18: Cấu trúc cơ sở của OpenCV.

3.2.[4.2.] Thư viện GSL.GSL là viết tắt của GNU Scientific Library, là một thư viện khoa học mã

nguồn mở theo giấy phép công cộng GNU (GNU General Public Lisence –

GPL), được viết bằng ngôn ngữ C và C++. Đây là phần mềm miễn phí theo giấy

phép. Thư viện này cung cấp một loạt các hàm toán học chẳng hạn như hàm phát

sinh số ngẫu nhiên, các hàm làm tròn số. Thư viện được thiết kế hướng đối

tượng. Các giao diện (interface) giao tiếp được thiết kế đơn giản, dễ dàng nối kết

với các ngôn ngữ khác. Các thuật toán khác nhau có thể được cài đặt dễ dàng

hoặc thay đổi trong quá trình chạy (run-time) mà không cần biên dịch lại chương

trình. Hiện có hơn 1000 hàm trong tổng số với các phiên bản được thử nghiệm

rộng rãi. Nó bao gồm các chức năng toán học sau: số phức, đa thức, vectơ và ma

trận, đại số tuyến tính, phân phối số ngẫu nhiên, thống kê, biểu đồ, hoán vị, ước

lượng Monte Carlo, ...

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

IPP

Mã nguồn đã được tối ưu trên kiến trúc của Intel.

CVCORECấu trúc cơ sở và các thuật toán, hỗ trợ XML, các hàm vẽ.

CV

Xử lý ảnh và thuật toán về thị giác máy

MLL

Thống kế và tập hợp các công cụ xử lý

HighGUI

Giao diện, truy xuất ảnh và video

Các mã nguồn ví dụ và ứng dụng thực nghiệm

Page 50: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

38

Chương 4.[Chương 5.] ỨNG DỤNG THỰC NGHIỆM.

4.1.[5.1.] Xây dựng ứng dụng theo vết đối tượng bằng thuật toán Particle Filter.

4.1.1.[5.1.1.] Mô tả mã nguồn tham khảo.

Giáo sư Rob Hessthuộc đại học Oregon State - Mỹ, năm 2002 đã cho ra

một ứng dụng về tracking đối tượng với các đặc điểm sau:

Áp dụng thuật toán Particle Filter để theo vết đối tượng trên video.

Sử dụng thư viện OpenCV trong việc xử lý ảnh.

Tuy đây là một bước đột phá mới, nhưng vẫn có một số hạn chế như:

Sử dụng ngôn ngữ C thuần và xây dựng theo hướng thủ tục.

Việc tính toán và hiển thị kết quả lên màn hình được thực hiện chung

trong một tiến trình, làm cho tốc độ bị giảm đi đáng kể.

Chỉ tracking được một đối tượng do người dùng chỉ định.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 51: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

39

Hình 5.19: Minh họa ứng dụng theo vết đối tượng.

4.1.2.[5.1.2.] Xây dựng ứng dụng theo vết đối tượng dựa trên mã nguồn tham khảo.

Mục tiêu là tạo một ứng dụng hữu ích và mang tính thực tế dựa trên mã

nguồn tham khảo:

- Áp dụng thuật toán Particle Filter để theo vết đối tượng trên video

và camera.

- Theo vết đối tượng và lưu lại đường đi của nó, làm resource cho

các nghiên cứu khác như: phân tích hướng di chuyển của các cầu thủ, theo

dõi một người trong đám đông trong thời gian dài…

- Nhận dạng khuôn mặt và người đi bộ, kết hợp với theo vết đối

tượng bằng camera quan sát.

Cách thực hiện:

- Xây dựng ứng dụng dựa trên mã nguồn thao khảo.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 52: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

40

- Thêm chức năng theo vết nhiều đối tượng do người dùng chỉ định,

dựa trên chức năng theo vết một đối tượng của mã nguồn tham khảo.

- Tham khảo các ví dụ mẫu của thư viện OpenCV về nhận dạng

(nhận dạng khuôn mặt và người đi bộ). Sau đó, kết hợp nhận dạng với

theo vết nhiều đối tượng bằng cách thay thế việc chọn đối tượng do người

dùng chỉ định bằng nhận dạng.

- Sử dụng ngôn ngữ C++ kết hợp lập trình hướng đối tượng.

- Chia tách việc tính toán và hiển thị kết quả lên màn hình thành các

tiến trình độc lập.

- Áp dụng lập trình song song để tận dụng tối đã bộ vi xử lý.

4.1.3.[5.1.3.] Kết hợp nhận dạng và theo vết đối tượng.

Bên cạnh việc cải tiến về việc tracking, chúng tôi còn áp dụng thêm thuật

toán nhận dạng khuôn mặt và người đi bộ. Thay vì phải chọn đối tượng xác định

để tracking thì nhận dạng sẽ hỗ trợ chúng ta trong việc đó.

Nhận dạng khuôn mặt và người đi bộ do mã nguồn OpenCV cung

cấp.Việc nhận dạng được thực hiện dựa vào file training có sẵn định dạng xml:

Nhận dạng khuôn mặt: haarcascade_frontalface_alt_tree.xml.

Nhận dạng người đi bộ: haarcascade_fullbody.xml.

Quá trình nhận dạng khuôn mặt tương đối chính xác do file training đã

đương đối đầy đủ, nhưng ngược lại việc nhận dạng người đi bộ lại cho kết quả

rất thấp: chỉ nhận dạng được người đi bộ nhìn theo phương vuông góc với mặt và

lưng. Điều đó dẫn đến một số kết quả không như mong đợi.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 53: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

41

4.2.[5.2.] Chương trình demo.Chương trình demo tracking gồm có 2 phần chính:

Bảng điều khiển:

o Ngôn ngữ: C#.

o Chức năng:

Cho phép người dùng tùy chỉnh trước khi chạy màn hình thực

thi.

Vật Thể Do Người

Dùng ChọnKhuôn Mặt Người Đi Bộ

Video x x x

Camera - x x

Chạy các ứng dụng hỗ trợ như: ObjectLocation (dùng để tạo

GroundTruth) và Performance Evaluation (dùng để tính độ

chính xác của thuật toán).

Hình 5.20: Bảng điều khiển.

Màn hình thực thi:

o Ngôn ngữ: C++.

o Chức năng: dựa vào các tùy chình ở Bảng Điều Khiển, màn hình

thực thi sẽ tracking vật thể, đồng thời xuất ra vị trí của vật thể lên

màn hình và ra file text.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 54: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

42

Hình 5.21: Màn hình thực thi.

4.2.1.[5.2.1.] Bảng điều khiển.

Sau đây là flow xử lý của bảng điều khiển:

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 55: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

43

Hình 5.22: Flow xử lý của bảng điều khiển.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 56: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

44

4.2.2.[5.2.2.] Màn hình thực thi.

Sau đây là flow xử lý của màn hình thực thi:

Hình 5.23: Flow xử lý của màn hình thực thi.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 57: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

45

Hình 5.24: Flow xử lý của quá trình theo vết đối tượng sử dụng thuật toán Particle Filter.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 58: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

46

Và sơ đồ Class Diagram:

CameraCaptureClass

VideoCapture

CameraCapture

Class

UtilityClass

MyApp

CWinApp

Class

APPTYPEEnum

ArgumentClass

FrmMain

CDialog

Class

DRAW_TYPEEnum

ViewPortClass

DrawingThread

IRunnable

Class

IRunnableClass

ThreadClass

ThreadExceptionClass

ParticleClass

HistogramClass

ParamsClass

AnyObjectTracking

IRunnable

Class

IdentifyObjectTracking

AnyObjectTracking

Class

publicpublicpublic

public

Hình 5.25: Class Diagram của màn hình thực thi.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 59: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

47

Sơ lược thông tin các class như sau:

Tên class Class cha Mô tả

CameraCapture -

Cung cấp các phương

thức để lấy frame từ

camera, tính toán FPS.

VideoCapture CameraCapture

Cung cấp các phương

thức để lấy frame từ

video, đường dẫn và kích

thước frame của video.

IRunnable -

Interface cung cấp các

phương thức Run và

Stop.

AnyObjectTracking IRunnable

Trong phương thức Run,

sẽ tình toán và tìm vị trí

của object (do người

dùng chọn).

DrawingThread IRunnable

Hiển thị hình ảnh lên

màn hình – hình ảnh ở

đây là kết quả sau khi đã

được tính toán trong

phương thức Run.

IdentifyObjectTraking AnyObjectTracking

Trong phương thức Run,

sẽ tình toán và tìm vị trí

của object (khuôn mặt,

người đi bộ).

FrmMain CDialog

Màn hình chính: hiển thị

hình ảnh, vị trí của

object.

Histogram - Là mảng một chiều kiểu

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 60: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

48

fload để chứa giá trị màu

của object.

Particle -

Đây là lớp quan trọng

nhất, thực hiện các thao

tác như tạo particle,

resample, tính toán

khoảng cách giữa các

particle…

Utility -

Lớp chức năng, cung cấp

các phương thức tiện ích

dùng chung.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 61: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

49

Chương 5.[Chương 6.] ĐÁNH GIÁ THỰC NGHIỆM.

5.1.[6.1.] Công thức đánh giá thực nghiệm.Phần này sẽ đưa ra cơ sở về số liệu và công thức để phân tích và đánh giá

hiệu quả của thuật toán phát hiện và theo vết đối tượng. Trước hết ta cần biết hai

định nghĩa sau: thông tin của ground truth chính là khung chứa đối tượng theo

vết ở mỗi khung hình; tương tự, kết quả của thuật toán chính là khung chứa đối

tượng theo vết ở mỗi khung hình.

Kỹ thuật đánh giá trong tài liệu tham khảo [2] xác định giới hạn từ ma

trận khoảng cách giữa các trọng tâm của khung xác định đối tượng giữa ground

truth và kết quả theo vết của thuật toán. Mức giới hạn này được sử dụng để tìm

sự tương ứng giữa kết quả theo vết của thuật toán và ground truth tính toán các

đại lượng False Positive Track Error, False Negative Track Error, Average

AreaError, và Task Incompleteness Factor. Tuy nhiên, các số liệu lại này không

đo lường hiệu suất của thuật toán theo vết trong trường có sự chồng chéo giữa

các đối tượng.

Việc thực hiện các số liệu đánh giá trong tài liệu tham khảo [1] được chia

thành các số liệu dựa trên khung hình và đối tượng. Đối với số liệu dựa trên

khung hình: true positive, true negative, false positive, and false negative được

tính toán cho tất cả các khung hình, và được sử dụng để tính toán Tracker

Detection Rate, False Alarm Rate, Detection Rate, Specificity, Accuracy,

Positive Prediction, Negative Prediction, False Negative Rate và False Positive

Rate. Đối với các số liệu dựa trên đối tượng, mỗi đối tượng riêng biệt được sử

dụng để tính toán true positive, false positive và tổng số ground truth để tính toán

Tracker Detection Rate, False Alarm Rate, và Object Tracking Error (OTE). Số

liệu dựa trên khung hình cung cấp thông tin về cách thuật toán theo vết xử lý các

đối tượng trong một khung hình, và các số liệu dựa trên đối tượng cho phép đo

hiệu suất của thuật toán theo vết trên mỗi đối tượng trong thời gian của chuỗi

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 62: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

50

video. Trong phạm vi của đề tài luận văn này thì chúng tôi đang áp dụng số liệu

dựa khung hình trong việc đánh giá hiệu suất của thuật toán theo vết.

Để thực hiện đánh giá ta cần xác định mức độ chồng lấp giữa ground truth

và kết quả của thuật toán. Trong đó cách đơn giản nhất là xem xét nếu trọng tâm

của một trong hai khung nằm trong khung còn lại; từ đó các giá trị sau được xác

định:

- TN (True Negative): số lượng frame trên ứng dụng và ground truth

đối tượng không xuất hiện.

- TP (True Positive): số lượng frame trên ứng dụng và ground truth

đối tượng xuất hiện và khung chứa đối tượng trùng khớp nhau.

- FN (False Negative): số lượng frame trên ground truth đối tượng

xuất hiện, còn ứng dụng theo vết sai đối tượng.

- FP (False Positive): số lượng frame trên ứng dụng đối tượng có

xuất hiện nhưng ground truth thì không.

- TG (Total ground truth): tổng số frame mà đối tượng có xuất hiện

trên ground truth.

- TF (Total frame): tổng số frame của chuỗi video.

Tracker Detection Rate (TRDR )=TGFP

False Alarm Rate= FPTP+FP

Detection Rate= TPTP+FN

Specificity= TNFP+TN

Accuracy=TP+TNTF

Positive Prediction= TPTP+FP

Negative Prediction= TNFN+TN

eq. 31

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 63: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

51

False Negative Rate= FNFN +TP

False Positive Rate= FPFP+TN

Trong các giá trị trên thì ba giá trị Specificity, Accuracy (độ chính xác),

Positive Prediction (mức độ dự đoán đúng) là các chỉ số cần quan tâm hơn cả.

Trong các phần đánh giá thực nghiệm tiếp theo chúng tôi chỉ sử dụng chỉ số

Accuracy (độ chính xác) để thể hiện cho kết quả của mỗi dữ liệu (video).

Việc đánh giá một hệ thống theo dõi dựa trên đo lường hiệu suất của thuật

toán theo dõi liên quan đến các tính năng của hệ thống. Các nguyên tắc cơ bản

của một hệ thống theo dõi là phát hiện các đối tượng và khai thác quỹ đạo đối

tượng trong một cảnh quay video. Đối với một thuật toán theo dõi để giám sát,

xuất đường quỹ đạo của nhiều đối tượng, các thuật toán theo dõi có thể phân biệt

giữa các đối tượng.

Các tiêu chuẩn để đánh giá thế nào một thuật toán theo vết tốt:

a. Thuật toán theo vết phát hiện được tất cả vào và ra chuyển trong

cảnh.

b. Thuật toán theo vết phân biệt giữa các đối tượng hiển thị trong một

cảnh tại một thởi điểm.

c. Theo dõi và trích xuất các quỹ đạo của tất cả các đối tượng, được

gán cho từng đối tượng phải được duy trì cho tất cả các đối tượng theo

dõi.

d. Sự chuyển động hoặc ngưng sự chuyển động của đối tượng không

làm mất dấu đối tượng.

e. Các thuật toán theo dõi xử lý sự chồng chéo lên nhau giữa các đối

tượng và tiếp xúc mà vẫn giữ được dấu của đối tượng.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 64: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

52

5.2.[6.2.] Cơ sở dữ liệu thực nghiệm.

5.2.1.[6.2.1.] YouTube action dataset.

Bao gồm 11 danh mục: ném bóng rổ, đạp xe, lặn, đánh goft, cưỡi ngựa,

tung hứng bóng, đánh đu, đánh tennis, nhảy trampoline, đánh bóng chuyền, và đi

bộ với chó…

Đối với mỗi thể loại,các đoạn video được nhóm lại thành 25. Các video

clip trong cùng một nhóm có cùng chung một số điểm như ngoại cảnh, cùng

view quan sát…

Độ phức tạp của cơ sở dữ liệu: sự thay đổi lớn trong chuyển động camera,

sự xuất hiện đối tượng và đặt ra, quy mô đối tượng, quan điểm, nền lộn xộn, điều

kiện chiếu sáng, v.v

Các nghiên cứu khoa học liên quan:

Jingen Liu, Jiebo Luo and Mubarak Shah, Recognizing Realistic

Actions from Videos "in the Wild", IEEE International Conference on

Computer Vision and Pattern Recognition(CVPR), 2009.

Jingen Liu, Yang Yang and Mubarak Shah, Learning Semantic

Visual Vocabularies using Diffusion Distance, IEEE International

Conference on Computer Vision and Pattern Recognition(CVPR), 2009.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 65: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

53

Hình 6.26:Hình ảnh của bộ dữ liệu Youtube action.

5.2.2.[6.2.2.] UCF Sports Action Dataset.

Tập dữ liệu này bao gồm một tập hợp các hoạt động thu thập được từ các

môn thể thao khác nhau trên các kênh truyền hình như BBC và ESPN.

Cơ sở dữ liệu gồm các video ở độ phân giải 720x480, mô tả các hoạt động

thể thoa đặc trưng trong một loạt các ngoại cảnh khác nhau.

Các nghiên cứu khoa học liên quan:

Mikel D. Rodriguez, Javed Ahmed, nd Mubarak Shah Action

MACH: A Spatio-temporal Maximum Average Correlation Height Filter

for Action Recognition.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 66: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

54

Hình 6.27:Hình ảnh của bộ dữ liệu UCF Sports Action.

5.2.3.[6.2.3.] Face dataset.

Tập dữ liệu này được thực hiện trong phòng thí nghiệm, mỗi video có thời

lượng khoảng 6s và ghi lại khuôn mặt với tất cả các trạng thái bao gồm: di

chuyển, đeo kính, ngước lên xuống và với ánh sáng môi trường thay đổi....

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 67: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

55

Hình 6.28: Hình ảnh của bộ dữ liệu khuôn mặt.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 68: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

56

5.3.[6.3.] Kết quả định lượng.

5.3.1.[6.3.1.] Cấu hình máy dùng để đánh giá thực nghiệm.

# Thông Tin Giá Trị

1 Operating SystemWindows 7 Ultimate 32-bit (6.1, Build

7600)

2 Language English

3 System Manufacturer Dell Inc.

4 System Model Vostro 1088

5 ProcessorIntel(R) Core(TM)2 Duo CPU T6570

@ 2.10GHz (2 CPUs)

6 Memory 2048MB

7 Available OS Memory 2046MB

8 DirectX Version DirectX 11

9 Card name ATI Mobility Radeon HD 4300 Series

10 Display Memory 1275 MB

11 Dedicated Memory 508 MB

12 Shared Memory 767 MB

13 Current Mode 1366 x 768 (32 bit) (60Hz)

5.3.2.[6.3.2.] Đánh giá thực nghiệm chức năng theo dõi vật thể chọn bởi người dùng.

# Video Số frame

Độ chính xác (%)

Ứng Dụng

Phát Triển

Ứng Dụng

Baseline

1 v_biking_01_02 151 100 97.35

2 v_biking_01_03 151 88.08 93.38

3 v_biking_03_03 179 91.62 88.83

4 v_biking_03_04 191 91.62 74.35

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 69: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

57

5 v_biking_06_05 169 87.57 80.47

6 v_biking_12_04 201 100 97.51

7 v_biking_16_04 151 80.13 99.34

8 v_jumping_01_03 201 88.06 87.06

9 v_jumping_01_04 201 94.03 98.51

10 v_jumping_02_03 201 48.76 48.26

11 v_jumping_02_04 201 51.74 63.18

12 v_jumping_03_01 201 84.08 67.16

13 v_jumping_03_04 201 100 100

14 RunSide001 64 100 100

15 RunSide002 64 100 100

16 RunSide005 64 100 100

17 RunSide006 64 100 100

18 RunSide007 64 100 100

19 SkateBoard001 69 100 100

20 SkateBoard002 69 100 100

21 SkateBoard004 69 100 100

22 SkateBoard011 69 100 100

23 v_spiking_07_02 87 75.86 3.45

24 v_spiking_07_04 67 100 16.42

25 v_spiking_07_06 57 42.11 19.3

26 v_spiking_07_07 67 79.1 86.57

27 v_shooting_13_02 101 94.06 88.83

28 v_shooting_13_04 111 54.95 74.35

29 v_shooting_14_05 75 97.33 97.33

30 v_shooting_16_01 141 33.33 32.62

31 v_shooting_16_02 103 91.35 78.85

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 70: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

58

32 v_shooting_19_07 120 90.83 90.0

33 v_walk_dog_05_03 201 100 18.41

34 v_walk_dog_05_04 121 100 100

35 v_walk_dog_05_05 113 100 100

36 v_walk_dog_09_01 173 98.27 100

37 v_walk_dog_09_02 201 95.52 100

38 v_walk_dog_10_03 201 100 100

39 v_walk_dog_10_04 201 100 100

40 v_walk_dog_10_05 201 100 100

41 v_walk_dog_13_02 201 100 97.01

42 v_walk_dog_14_03 181 100 93.92

Total 5718 89.49 75.25

5.3.3.[6.3.3.] Đánh giá thực nghiệm chức năng theo dõi khuôn mặt.

# Video Số frame

Độ chính xác (%)

Ứng Dụng

Phát Triển

Ứng Dụng

Baseline

1 jam1 199 83.42 N/A

2 jam2 199 100 N/A

3 jam4 199 100 N/A

4 jam5 199 100 N/A

5 jim1 199 100 N/A

6 jim2 199 95.48 N/A

7 ssm1 199 100 N/A

Total 1393 96.99 N/A

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 71: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

59

5.3.4.[6.3.4.] Đánh giá thực nghiệm chức năng theo dõi người đi bộ.

# Video Số frame

Độ chính xác (%)

Ứng Dụng Phát

Triển

Ứng Dụng

Baseline

1 v_walk_dog_01_04 151 74.83 N/A

2 walk002 100 56 N/A

3 walk003 100 69 N/A

4 walk008 101 11.88 N/A

5 walk010 102 76.47 N/A

6 walk014 100 100 N/A

Total 654 64.7 N/A

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 72: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

60

KẾT LUẬN.Ưu điểm:

Đã khắc phục được những hạn chế của mã nguồn tham khảo như: tăng tốc

độ theo dõi bằng cách tách xử lý và hiển thị thành các tiến trình; theo dõi nhiều

đối tượng cùng lúc; kết hợp module phát hiện và module theo dõi khuôn

mặt/người đi bộ.

Việc theo dõi vật thể và khuôn mặt tương đối chính xác.

Hạn chế:

Đối với việc theo dõi các đối tượng có kích thước lớn sẽ làm cho tốc độ

xử lý chậm đi do việc tính toán histogram.

Việc kết hợp module phát hiện và module theo dõi người đi bộ có độ

chính xác không cao do quá trình phát hiện còn hạn chế.

Hướng phát triển:

Khắc phục việc tốc độ xử lý chậm khi đối tượng theo dõi có kích thước

lớn bằng cách: giảm kích thước của khung hình (trong một phạm vi nhất định) để

làm giảm kích thước của vật thể.

Nghiên cứu sâu hơn về vấn đề detection, từ đó tìm ra phương pháp để việc

nhận dạng trở nên chuẩn xác hơn.

Tiến bộ đáng kể đã được thực hiện trong việctheo dõi đối tượng trong vài

năm qua. Nhiều thuật toán theo vết mạnh mẽ đã được phát triển có thể theo dõi

các đối tượng theo thời gian thực trong các giả thiết để làm giảm bớt tính phức

tạp của bài toán. Các giả thiết được sử dụng để làm cho hạn chế các vấn đề trong

quá trình theo dõi, ví dụ, độ mịn của chuyển động, số lượng tối thiểu của chồng

chéo giữa các đối tượng, độ sáng ổn định, độ tương phản cao so với khung cảnh

xung quanh, v.v , tuy nhiên các tình huống trong thực tế phức tạp hơn và do đó

hạn chế tính hữu dụng của bài toán theo vết trong các ứng dụng như giám sát tự

động, máy tính tương tác của con người, thu hồi video, theo dõi giao thông, và

chuyển hướng xe. Như vậy, theo dõi và liên quan đến vấn đề lựa chọn tính năng,

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 73: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

61

đối tượng đại diện, hình dáng năng động, và dự đoán về chuyển động là khu vực

rất tích cực nghiên cứu và các giải pháp mới liên tục được đề nghị.

Bài toán theo vết đối tượng còn nhiều vấn đề để mở, chưa giải quyết được

như theo vết trên nhiều camera; trên nhiều loại video (các video về tin tức; video

chứa nhiều nhiễu, không có định dạng cấu trúc, chứa nhiều view,…). Vì vậy, sẽ

còn tiếp tục được phát triển trong các năm tới.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 74: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

62

DANH MỤC TÀI LIỆU THAM KHẢO.Tài liệu tham khảo:

[1]. Alper Yilmaz, Omar Javed và Mubarak Shah, “Object Tracking: A

Survey”.

[2]. Dieter Koller, Joseph Weber and Jitendra Malik, “Robust Multiple Car

Tracking with Occlusion Reasoning”.

[3]. Douc, R. and Cappe, O. and Moulines, E., "Comparison of Resampling

Schemes for Particle Filtering", Image and Signal Processing and Analysis,

2005.

[4]. F. Bashir and F. Porikli, “Performance evaluation of object de-tection

and tracking systems” IEEE International Workshop on Performance Evaluation

of Tracking and Surveillance, pp. 7–14, 2006.

[5]. James Black, Tim Ellis và Paul Rosin “A Novel Method for Video

Tracking Performance Evaluation”.

[6]. Katja Nummiaro, Esther Koller-Meier, and Luc Van Gool, “Objects

tracking with an Adaptive Color-based Particle Filter”.

[7]. Keni Bernardin, Alexander Elbs, Rainer Stiefelhagen “Multiple Object

Tracking Performance Metrics and Evaluation in a Smart Room Environment”.

[8]. Michael Isard và Andrew Blake, “Condensation – conditional density

propagation for visual tracking”.

[9]. Michael Isard and Andrew Blake, “Conditional Density Propagation for

Visual Tracking”, 1997.

[10]. Md. Zahidul Islam, Chi-Min Oh và Chil-Woo Lee,“Video Based Moving

Object Tracking by Particle Filter”.

[11]. P. P´erez, C.Hue, J. Vermaak, and M. Gangnet, “Color-Based

Probabilistic Tracking”, 2002.

[12]. Rickard Karlsson, “Particle Filtering for Positioning and Tracking

Applications”.

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương

Page 75: BaoCaoKhoaLuan_v1.3

GVHD: ThS. Nguyễn Hữu Thương

CH Cáp Phạm Đình Thăng

63

[13]. Rob Hess, “Object Tracking with Particle Filtering”.

[14]. S. Muller-Schneiders, T. Jager, H. S. Loos, and W. Niem, “Per-formance

evaluation of a real time video surveillance systems”, IEEE International

Workshop on Visual Surveillance and Per-formance Evaluation of Tracking and

Surveillance, pp. 137–143, 2005

[15]. Shai Avidan, MobilEye Vision Technologies, 24 Mishol Hadkalim,

Jerusalem, Israel, “Support Vector Tracking”.

[16]. Srisumakanth Kambhampati, “Target/object tracking using Particle

Filtering”.

[17]. Viola, P. and Jones, M., Dec. 2001, Rapid object detection using a

boosted cascade of simple features, Proc. IEEE Conf. on Computer Vision and

Pattern Recognition.

[18]. Wenlong Zheng, “Face Detection and Tracking using a boodtes adaptive

Partilce Filter”.

Web tham khảo:

[1]. http://blogs.oregonstate.edu/hess/

[2]. http://en.wikipedia.org/wiki/Particle_filter

[3]. http://en.wikipedia.org/wiki/Bhattacharyya_distance

[4]. http://cvpapers.com/datasets.html

[5]. http://imagelab.ing.unimore.it/visor/video_categories.asp

[6]. http://opencv.willowgarage.com/wiki/FaceDetection

SVTH: Chu Hoàng Nhật & Hà Thị Minh Phương