ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

KHOA CÔNG NGHỆ THÔNG TIN NGUYỄN DUY NGHĨA - 0012612 NGHIÊN CỨU KĨ THUẬT XỬ LÍ VIDEO SỐ, ỨNG DỤNG VÀO THEO

VẾT VÀ PHÂN LOẠI ĐỐI TƯỢNG

LUẬN VĂN CỬ NHÂN TIN HỌC

GIÁO VIÊN H ƯỚNG DẪN

TH.S NGUY ỄN TRI TUẤN

NIÊN KHÓA 2000 - 2004

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

LỜI CẢM ƠN

Trước tiên tôi xin cảm ơn thầy Nguyễn Tri Tuấn người đã hướng dẫn tôi

thực hiện đề tài này. Nhờ có sự tin tưởng, chỉ bảo tận tình của thầy tôi luận văn

này đã hoàn thành.

Con xin gửi tất cả lòng biết ơn, quý trọng đến ông bà, cha mẹ và các người

thân trong gia đình đã hết lòng nuôi con ăn học và luôn luôn ở bên cạnh con

động viên con khi con gặp khó khăn

Em xin cảm ơn tất cả các thầy cô trong trong trường Khoa Học Tự Nhiên

và đặc biệt là các thầy cô trong Khoa Công Nghệ Thông tin đã nhiệt tình giảng

dạy và truyền đạt nhiều kiến thức quý báu cho em.

Tôi xin chân thành cảm ơn bàn bè trong lớp cũng như các anh chị khóa

trước đã cho giúp đỡ chỉ bảo tận tình, đặc biệt là anh Trương Thiên Đỉnh đã giúp

đỡ tôi nhiều mặt về thiết bị cũng như tài liệu

Đây là một hướng nghiên cứu mới và rất khó, với thời gian tiếp cận khá

ngắn trong vòng 6 tháng và năng lực của người làm đề tài cho nên đề tài chắc

chắn còn nhiều thiếu sót. Huy vọng sẽ nhận được nhiều lời đóng góp để đề tài

này hoàn thiện hơn

Tp HCM tháng 7 n ăm 2004

Sinh viên th ực hiện

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Nguy ễn Duy Nghĩa

CHƯƠNG 1_____________________________________________ 1

MỞ ĐẦU_________________________________________________ 1

1.1 Tổng quan____________________________________________ 1

1.2 Yêu cầu bài toán ______________________________________ 2

1.3 Bố cục luận văn _______________________________________ 2

CHƯƠNG 2_____________________________________________ 4

TỔNG QUAN VỀ VIDEO VÀ CÁC KĨ

THUẬT XỬ LÍ VIDEO CƠ BẢN____________ 4

2.1 Khái niệm về video ______________________________________ 5

2.2 Khái niệm về video tuần tự ____________________________ 5

2.2.1 Tín hiệu video tuần tự _________________________________ 5

2.2.2 Các chuẩn video tương tự ______________________________ 8

2.2.3 Các thiết bị video tương tự _____________________________ 8

2.3 Khái niệm về video số _________________________________ 9

2.3.1 Tín hiệu Video số _____________________________________ 9

2.3.2 Các chuẩn video số ____________________________________ 9

2.3.3 Nhược điểm của video số ______________________________11

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

2.3.4 Ưu điểm của video số _________________________________11

2.3.5 Các phương pháp xử lý trên video số ____________________12

2.3.5.1 Phát hiện chuyển động ______________________________12

2.3.5.2 Ước lượng chuyển động _____________________________19

CHƯƠNG 3____________________________________________25

THEO VẾT VÀ PHÂN LOẠI ĐỐI TƯỢNG 25

3.1 Bài toán theo vết và phân loại đối tượng_______________26

3.2 Mô hình xử lí bài toán________________________________27

3.3 Tiền xử lí ____________________________________________28

3.4 Phát hiện chuyển động _______________________________28

3.5 Theo vết đối tượng ___________________________________37

3.5.1 Dự đoán vị trí của đối tượng trong tương lai ______________38

3.5.2 So khớp đối tượng____________________________________38

3.5.3 Theo vết đối tượng ___________________________________41

3.5.4 Cập nhật đối tượng___________________________________45

3.6 Phân loại đối tượng __________________________________45

CHƯƠNG 4____________________________________________48

CÀI ĐẶT CHƯƠNG TRÌNH ____________________48

4.1 Môi trường cài đặt ___________________________________49

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

4.2 Cấu trúc chương trình _______________________________49

4.2.1 Cấu trúc dữ liệu _____________________________________49

4.2.2 Cấu trúc chương trình ________________________________51

CHƯƠNG 5____________________________________________52

KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN_______52

5.1 Kết quả đạt được ____________________________________53

5.1.1 Dữ liệu thử nghiệm ___________________________________53

5.1.2 Kết quả đạt được ____________________________________53

5.2 Hướng phát triển ____________________________________54

TÀI LIỆU THAM KHẢO _________________________55

PHỤ LỤC 1____________________________________________56

MỘT VÀI HÌNH ẢNH VỀ KẾT QUẢ ĐẠT

ĐƯỢC ___________________________________________________56

1. Một vài mặt nạ chuyển động____________________________56

2. Kết quả theo vết đối tượng _____________________________63

3. Kết quả theo vết đối tượng là người _____________________66

PHỤ LỤC 2____________________________________________69

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

VÀI NÉT VỀ THƯ VIỆN INTEL OPENCV 69

1. OpenCV là gì? _________________________________________69

2. Các chức năng của thư viện OpenCV ___________________69

2.1 Các kiểu dữ liệu cơ bản _______________________________69

2.2 Các hàm xử lí trong OpenCV __________________________71

2.2.1 Các hàm xử lí các kiểu dữ liệu cơ bản_____________________71

2.2.2 Các hàm về xử lí ảnh__________________________________72

2.2.3 Các hàm về phân tích vận động và theo vết đối tượng_________73

2.2.4 Các hàm về nhận dạng đối tượng_________________________73

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

2.2.5 Các hàm về giao diện và thu nhận video___________________73

CHƯƠNG 1

MỞ ĐẦU

1.1 Tổng quan

Hiện nay phần lớn lượng thông tin con người thu vào là dưới dạng hình

ảnh. Thông tin dưới dạng hình ảnh là thông tin trực quan nên con người dễ dàng

tiếp nhận nó. Với sự ra đời của nhiều máy móc kỹ thuật hiện đại như là máy ảnh

số, máy quay số, các máy thu hình, máy vi tính ... thì lượng thông tin con người

thu được ngày càng nhiều. Con người không chỉ muốn tiếp thu thông tin một

cách thụ động mà phải biết xử lí nó, làm cho nó hữu ích hơn. Do đó con người

đã tiến hành nghiên cứu các phương pháp xử lí trên thông tin trực quan này để

chúng ta có thể tiếp nhận tối đa lượng thông tin trực quan này. Việc xử lý ảnh số

đã ra đời vào những năm 1960 với nhiều hướng khác nhau như là nén ảnh, nhận

dạng ..., trong khi đó việc xử lý video chỉ xuất hiện vào các thập kỷ gần đây cùng

với sự ra đời của nhiều trang thiết bị kỹ thuật mới và hiện đại. Ngày nay trên thế

giới việc nghiên cứu về ảnh số và video số đã phát triển rộng rải. Các trường đại

học đều có một ngành riêng để nghiên cứu vấn đề này gọi là ngành thị giác máy

tính( computer vision ). Tuy vậy vấn đề này vẫn còn mới ở Việt Nam vì thiếu

các thiết bị hỗ trợ và tài liệu, và đây là một hướng phát triển mở nhiều hứa hẹn

và cũng nhiều thách thức. Hiện nay ở Việt Nam các hệ thống giám sát ở Việt

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

1

Nam chưa phát triển lắm và chủ yếu vẫn dựa vào con người. Tuy nhiên trong vài

năm nữa khi kinh tế và khoa học kỹ thuật phát triển thì các hệ thống giám sát này

cũng sẽ phát triển theo. Việc nghiên cứu về xử lí video số ở trong khoa được tiến

hành cách đây một năm với các đề tài về giám sát giao thông và theo vết đối

tượng bằng lưới... Với mong muốn tham gia vào hướng nghiên cứu còn mới này

và giúp các hệ thống giám sát đạt hiệu quả cao hơn và giảm được chi phí con

người chúng tôi thực hiện đề tài “nghiên cứu các kĩ thuật xử lí trên video số

ứng dụng vào theo vết và phân loại đối tượng” .

1.2 Yêu c ầu bài toán

Bài toán “theo vết và phân loại đối tượng” được chia thành hai phần. Ở

đây chúng tôi tập trung vào nghiên cứu phần một đó là phần theo vết đối tượng.

Về theo vết đối tượng ta cần phải thực hiện các phần sau:

• Rút trích đối tượng chuyển động. Trong phần này ta phải tách các

đối tượng chuyển động ra khỏi khung cảnh.

• Theo vết đối tượng. Với từng đối tượng ta phải lưu lại được quỹ đạo

của chúng khi chúng vào vùng quan sát của ta

Về phân loại đối tượng, chúng ta phải phân biệt được các loại đối tượng

trong khung cảnh quan sát của chúng ta. Ở đây là phân loại đối tượng là người đi

bộ và các đối tượng khác như là xe...

1.3 Bố cục luận văn

Dựa vào các yêu cầu trên chúng tôi chia luận văn thành 5 chương

Chương 1: Mở đầu

Chương 2: Tổng quan về video và các kĩ thuật xử lí video số: nhằm giúp

chúng ta hiểu rõ hơn về video số và các kĩ thuật cơ bản nhất trong xử lí video số.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

2

Ch ương 3: Ứng dụng vào bài toán theo vết và phân loại đối tượng:

trong phần này ta sẽ áp dụng các kĩ kiến thức đã nghiên cứu được vào giải một

bài toán trong xử lí video dó là theo vết đối tượng.

Chương 4: Cài đặt thử nghiệm

Ch ương 5: Các kết quả đạt được và hướng phát triển: chương này trình

bày các kết quả đạt được trong việc giải quyết bài toán trên và hướng phát triển

trong tương lai.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

3

CHƯƠNG 2

TỔNG QUAN VỀ VIDEO VÀ CÁC KĨ

THUẬT XỬ LÍ VIDEO CƠ BẢN

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

4

2.1 Khái niệm về video

Video hay còn gọi là chuỗi ảnh( image sequence ) tượng trưng cho

thông tin hình ảnh. Đó là một chuỗi các hình ảnh truyền liên tục theo thời

gian

S = f(x,y,t)

trong đó :

˛ x,y R: là tọa độ của điểm ảnh (thông tin về không

gian)

˛ t R: thông tin về thời gian

Dựa trên công thức trên ta thấy ảnh tĩnh là một trường hợp đặc biệt của

Video. Khi đó nó là một chuỗi các ảnh không thay đổi theo thời gian.

" f(x,y,t1) = f(x,y,t2); i,j ˛ R, " x,y ˛ R

Video thường được thu, lưu trữ, và chuyển đổi ở dạng tuần tự (analog)

nên chúng ta sẽ bắt đầu từ video tuần tự.

2.2 Khái niệm về video tuần tự

2.2.1 Tín hi ệu video tuần tự

Tín hiệu video tuần tự được xem như là tín hiệu điện 1 chiều theo thời

gian f(t) và được lấy mẫu theo chiều dọc.

Việc lấy mẫu theo chu kỳ này được gọi là quét( scanning ). Các

phương pháp quét thường được sử dụng nhất là quét liên tục (progressive

scanning) và quét xen kẽ (interlace scanning)

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

5

Quét liên tục(progressive scanning)

thế cho đến D rồi quay trở lại D

H1: Quét liên tục. Các dòng quét bắt đầu từ A đến B, tiếp tục đến C và cứ

o Mỗi ảnh hay còn được gọi là frame là dữ liệu được lấy mẫu

theo thời gian.

o Mỗi ảnh này được quét liên tục từng dòng ngang và từ trên

xuống dưới với tốc độ là D t giây.

o Phương pháp quét này thường được dùng trong công nghiệp

máy tính với tốc độ D t = 1/72 giây.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

6

Quét xen kẽ

H2: Quét xen kẻ. Dòng quét bắt đầu từ A đến B, chuyển qua C và tiếp tục cho đến khi tới D sẽ trở về E và tiếp tục quét đến F

Vì mắt người phát hiện ra hình ảnh chớp khi tần số quét dưới

50Hz nên tần số quét của máy bao giờ cũng phải lớn hơn 50Hz. Tuy nhiên

khi áp dụng trong các nghành công nghiệp khác như là nghành truyền thông

thì gặp khó khăn về vấn đề băng thông do kích thước quá lớn. Từ đó xuất

hiện phương pháp quét xen kẽ. Phương pháp này chia dòng quét thành dòng chẳn và dòng lẻ ( gọi là field ) và quét các dòng chẳn trong khoảng D t rồi

chuyển qua quét các dòng lẻ. Vì thế tần số quét sẽ giảm đi một nữa.

Một vài thông số quan trọng của tín hiệu video là :

o Độ phân giải theo chiều dọc ( vertical resolution ): thông số

này có liên quan đến số dòng quét trên 1 frame.

o Tỉ lệ co ( aspect ratio ): tỉ lệ giữa chiều rộng và chiều cao của

frame.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

7

2.2.2 Các chu ẩn video tương tự

• Component Analog Video: chuẩn video này sử dụng các thành phần

màu RGB hoặc là YCrCb( YIQ hoặc là YUV )

• Composite Video:

o NTSC ( National Television Standards Committee ): xuất

hiện vào năm 1952, hiện tại được sử dụng ở Bắc Mỹ và Nhật.

Có 262.5 dòng trên 1 field hay là 525 dòng trên 1 frame, 60

field trên 1 giây và có tỉ lệ co là 4:3

o PAL ( Phase Alternating Line ) và SECAM ( SEquential

Color And Memory ): được phát triển vào những năm 1960

và ngày nay thường được sử dụng ở Châu Âu. Ở Việt Nam

cũng dùng chuẩn này. Các thông số kỹ thuật: 625 line trên 1

frame, 50 field trên 1 giây.

2.2.3 Các thi ết bị video tương tự

Các thiết bị video tương tự có thể được chia làm 3 loại. Loại dành cho

truyền thông. Loại có chất lượng chuyên nghiệp. Loại dành cho người tiêu

dùng.

Video được quay bởi máy quay thông thường và được lưu trong băng

hoặc được quay bởi các máy quay dùng trong phim trường và tạo thành

phim ( 24 frame/giây ).

Hầu hết tín hiệu video tương tự được lưu dựa trên kỹ thuật từ ngoại trừ

đĩa laser là dùng kỹ thuật quang.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

8

2.3 Khái niệm về video số

2.3.1 Tín hi ệu Video số

Tín hiệu video số được lưu trữ dưới dạng số. Do đó chúng được lấy

mẫu và lượng tử hóa. Tín hiệu video số là một thông tin 3 chiều gồm 2 chiều

không gian và 1 chiều thời gian hay còn được gọi là chuỗi ảnh số với mỗi ảnh

chiều thời gian

chiều dọc

chiều ngang

H3: chu

ỗi ảnh

số là một ảnh được lấy mẫu và lượng tử hóa.

2.3.2 Các chu ẩn video số

Việc trao đổi giữa các ứng dụng và các sản phẩm video số đã đưa ra

các chuẩn video số. Các chuẩn này bao gồm :

• Chuẩn nén: dùng để trao đổi thông tin trong dạng nén của

video

• Chuẩn các độ phân giải hiển thị: được dùng trong công

nghiệp máy tính.

• Chuẩn studio số: được dùng trong ngành công nghiệp ti vi • Chuẩn về giao tiếp mạng được dùng trong công nghiệp

truyền thông

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

9

H4: các chuẩn về studio số

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

10

H5: Các chuẩn về ảnh và video số nén

2.3.3 Nh ược điểm của video số

Nhược điểm của video số đó là nó đòi hỏi khối lượng lưu trữ lớn và băng

thông rộng để truyền tải. Chúng ta hãy thử làm một phép tính. Với tín hiệu TV

chất lượng tốt ta cần 1440 điểm ảnh trên một dòng, 1050 dòng cho một frame độ

sáng, 720 điểm trên một dòng và 525 dòng trên một frame sắc màu. Bởi vì mỗi

giây có 30 frame và 8 bit/ pixel nên kết quả cuối cùng là xấp xĩ 545 Mps. Đây là

một yêu cấu quá lớn. Do đó hiện nay người ta đang nghiên cứu các phương pháp

nén video để giảm kích thước khi truyền tải.

2.3.4 Ưu điểm của video số

Tuy có nhược điểm về yêu cầu bộ nhớ lớn nhưng video số lại có nhiều ưu

điểm quan trọng. Video tuần tự cung cấp cho chúng ta một số rất giới hạn các

hoạt động tương tác như là : chọn kênh, chỉnh tới lui hay là quay chậm trên băng

video. Ngoài ra để hiển thị tín hiệu theo chuẩn này ví dụ NTSC trên một hệ máy

dùng chuẩn khác ví dụ PAL ta cần có một bộ chuyển đổi tín hiệu đắt tiền. Với tín

hiệu số ta không cần phải chuyển đổi các tín hiệu này. Ngoài ra ta còn có thể

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

11

chỉnh sửa, tạo các hiệu ứng đẹp trên tín hiệu video số. Video số không chỉ có vai

trò giải trí mà nó còn cung cấp cho chúng ta nhiều thông tin quan trọng trong

nhiều lĩnh vực như là các ảnh giám sát quân sự, điều khiển giao thông, và rút

trích thông tin từ các dữ liệu ảnh và video.

2.3.5 Các phương pháp xử lý trên video số

Video số có nhiều thông tin trực quan hơn là ảnh số. Lý do chính là do

video số có chứa thông tin về chuyển động trong khi ảnh số chỉ là ảnh chụp một

cảnh tĩnh. Các chuỗi ảnh động luôn hàm chứa các thông tin về chuyển động, các

chuyển động này là một tín hiệu nhạy cảm đối với thị giác con người. Con người

có thể dễ dàng nhận biết được các đối tượng ngay khi chúng chuyển động thậm

chí chúng rất khó thấy khi đứng yên. Vì thế các phương pháp xử lí video số cũng

khác so với các phương pháp xử lí ảnh số. Vận động là thông tin quan trọng

trong xử lí video số bởi vì vận động mang rất nhiều thông tin về mối quan hệ

không gian và thời gian giữa các đối tượng trong ảnh. Các phương pháp cơ bản

trong xử lí video số là phát hiện chuyển động và ước lượng chuyển động. Phát

hiện chuyển động thường được áp dụng trong các hệ quan sát( phát hiện đối

tượng di chuyển hoặc là đứng yên ), còn ước lượng chuyển động thường được áp

dụng trong nén video số. Ngoài ra còn có các phương pháp xử lí khác được áp

dùng vào mức tiền xử lí như là lọc nhiễu... các phương pháp này áp dụng trên

từng frame giống như trong xử lí ảnh số.

2.3.5.1 Phát hi ện chuyển động

a. S ơ nét về chuyển động

Chuyển động theo các khái niệm trong vật lý là sự thay đổi vị trí

giữa vật này và vật kia. Tức là khi xét tới sự chuyển động thì ta phải xét là nó

chuyển động so với cái gì. Khi xét tới chuyển động ta thường đặt nó vào một hệ

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

12

quy chiếu quán tính. Một vật có thề đứng yên trên hệ quy chiếu này nhưng lại

chuyển động khi xét nó với hệ quy chiếu khác. Ví dụ khi ta đứng yên thì có thể

coi là ta đứng yên so với hệ quy chiếu gắn với trái đất, nhưng khi đưa vào hệ

quy chiếu gắn với mặt trời thì ta lại chuyển động. Điều này có ý nghĩa rất quan

trọng khi ứng dụng vào camera động. Chuyển động trong thực tế là chuyển

động 3D nhưng khi con người tiếp nhận thì nó trở thành chuyển động 2D. Nói

chung hình ảnh mà mắt người nhận được đều là 2D hết. Và phép toán chuyển đổi

z

P1

P2

O

Tâm chiếu

y

mặt phẳng chiếu

x

H6 Phép chiếu phối cảnh của một đoạn thẳng

ảnh 3D thành ảnh 2D mà mắt con người cảm nhận được là phép chiểu phối cảnh.

Chuy ển động trong thế giới thực 3D qua phép chiếu phối cảnh sẽ

biến thành chuyển động trong mặt phẳng 2D. Tuy nhiên con người nhận biết

chuyển động qua sự thay đổi độ sáng của điểm ảnh. Do đó có những chuyển

động mà con người không có cảm nhận được như là chuyển động của quả cầu

đồng màu. Từ đó ta có phương pháp phát hiện chuyển động đầu tiên đó là so

sánh sự khác biệt theo thời gian.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

13

b. Phương pháp so sánh sự khác biệt

Chúng ta xác định độ sai khác Dk,k-1 giữa frame thứ k và thứ k-1 như

sau :

D k,,k-1 = Fk – Fk-1

trong đó: Fk là frame tại thời điểm k

N ếu camera tĩnh, sự thay đổi ánh sáng rất nhỏ và nhiễu không đáng

kể thì một điểm được coi là chuyển động nếu độ khác biệt của nó lớn hơn 0 và

ngược lại sẽ đứng yên.

Tuy nhiên trong th ực tế các điều kiện trên khó có thể xảy ra. Do đó

để loại bỏ các điểm mà chúng ta phát hiện sai do nhiễu gây ra, ta có thể dùng

>

một ngưỡng T thích hợp.

1

neu

|

1(-k,Dk,

x,

| )y

T

0

Nguoc

lai

(cid:236) (cid:237) M k,k-1( x, y ) = (cid:238)

V ới Mk,k+1 được gọi là mặt nạ chuyển động ở thời điểm k, nếu bằng

1 thì điểm đó được coi là chuyển động và bằng 0 thì điểm đó là đứng yên. T

là ngưỡng thích hợp có thể là một giá trị cụ thể được xác định trong quá trình

thực nghiệm hoặc dựa trên các thuật toán. Độc giả có thể tham khảo một

frame thứ k

frame thứ k-1

mặt nạ chuyển động

thuật toán xác định ngưỡng ở phụ lục B của [1].

H7: Kết quả của phương pháp so sánh sự khác biệt

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

14

Ưu điểm của phương pháp này là đơn giản và dễ cài đặt do đó tốc

độ sẽ nhanh. Tuy nhiên nhược điểm của nó là những vùng thật sự chuyển động

nhưng do đồng màu nên sẽ được hiểu là đứng yên và nhưng vùng thật sự đứng

yên thì lại cho là chuyển động.

Để khắc phục nhược điểm trên ta có một thuật toán so sánh khác

biệt cải tiến:

Bước 1: Tạo một cấu trúc Pyramid Gaussian trong đó mổi frame

được đặc trưng bởi nhiều độ phân giải khác nhau. Bắt đầu xử lí ở mức phân giải

thấp nhất.

Bước 2: Với mỗi điểm ở mức phân giải hiện tại, tính toán độ khác

biệt chuẩn hóa:

kyxf ,( ),

ryxf ,( ),

ryxf ,(

,

yx ,

k,r( x, y ) =

2

+

c

ryxf ,(

,

yx ,

(cid:209) - (cid:229) N ˛ FDN (cid:209) (cid:229) N ˛

trong đó:

N: là các điểm trong lân cận của x

ryxf ), ,(

kyxf ,( ),

(cid:209) : là gradient của mật độ ảnh tại điểm (x, y)

: là frame ở thời điểm k

c: là h ằng số

Nếu độ khác biệt chuẩn hóa này cao hơn độ khác biệt ở độ phân giải

trước thì thay thế độ khác biệt trước đó bằng độ khác biệt ở mức hiện tại. Nếu

không thì vẫn giữ nguyên giá trị trước đó.

Bước 3 : Lặp lại bước 2 cho tất cả độ phân giải

Bước 4 : Lấy ngưỡng với sự khác biệt chuẩn hóa ở mức phân giải

cao nhất.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

15

c. Phương pháp trừ nền

Phương pháp trên cũng dựa trên sự so sánh giữa 2 ảnh, nhưng

không phải là 2 ảnh liên tiếp trong chuỗi ảnh mà là giữa các ảnh trong chuỗi ảnh

với một ảnh tham chiếu gọi là ảnh nền. Ảnh nền là cảnh thu được khi không có

đối tượng chuyển động nào hết. Gọi B là ảnh nền thu được, ta có độ khác biệt

giữa ảnh nền và ảnh thứ k trong chuỗi ảnh

Dk= Fk – B

N ếu nhiễu ít và không có sự thay đổi của ánh sáng thì điểm có tọa

độ ( x, y ) được xem là tĩnh nếu Dk( x, y ) = 0 và ngược lại. Tuy nhiên trong thực

tế luôn có nhiễu vì vậy ta phải dùng ngưỡng để hạn chế nhiễu

1 N ếu Dk( x, y ) > T

M k( x, y ) =

0 ng ược lại

Với Mk là mặt nạ chuyển động, điểm ( x, y ) được xem là chuyển

động khi Mk( x, y ) = 1 và đứng yên khi Mk( x, y ) = 0.

Trong th ực tế ảnh nền luôn luôn biến đổi do sự thay đổi độ sáng do

gió, các đám mây bay qua vì thế ta phải luôn cập nhập nền lại. Gọi Bk là nền ở

thời điểm k. Ta có nền ở thời điểm k + 1 được cập nhật như sau:

a *Bk( x, y ) + ( 1 - a ) Fk( x, y ) nếu Mk( x, y ) = 0

Bk+1( x, y ) =

Bk( x, y ) nếu Mk( x, y ) = 1

là một hằng số được gọi là tỉ lệ học phản ánh mức độ cập nhật nền Với a

nhanh hay chậm.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

16

bóng ma

ảnh nền ảnh thứ k

H8 : bóng ma trong phương pháp trừ nền

mặt nạ chuyển động

Phương pháp trừ nền cho kết quả tốt hơn phương pháp so sánh sự

khác biệt khi xử lí các đối tượng đồng màu, tuy nhiên nó có một nhược điểm khi

ảnh nền chứa một đối tượng đứng yên, sau đó đối tượng này chuyển động thì

phương pháp trên sẽ phát hiện ra 2 đối tượng chuyển động chứ không phải là 1.

Đối tượng bị phát hiện sai này được gọi là bóng ma. Để giải quyết vấn đề trên

người ta phải sử dụng ảnh nền không có đối tượng chuyển động nào trong đó hết

hoặc có thể dựa vào các thuật toán tạo ảnh nền.

Ngoài ra còn một hướng tiếp cận mới trong phương pháp trừ nền đó

là dựa trên mô hình xác suất thống kê. Ý tưởng chính ở đây là đưa ra một mô

hình thống kê cho nền. Thường có hai mô hình thống kê chính đó là đơn phương

thức ( unimodal ) và đa phương thức ( multimodal ). Trong mô hình đơn phương

thức mỗi điểm được mô hình với phân phối xác suất đơn thường là phân phối Gaussian h ( x, y, m k, S k ), trong đó m k là giá trị trung bình và S k là ma trận hiệp

phương sai của phân phối ở frame t. Những điểm mà màu quan sát được đủ gần

( hay còn gọi là khớp ) với phân phối nền thì được phân thành điểm nền hay là

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

17

điểm đứng yên và ngược lại là điểm chuyển động. Vì nền luôn luôn thay đổi nên

ta phải cập nhập lại mô hình nền như sau:

m )*m

T

t+1 = ( 1 - a t+1 = ( 1 - a

t + a *dt t + a *dt*dt

S )*S

Với a là hằng số chỉ mức độ điều chỉnh mô hình nền nhanh hay

chậm.

Đối với mô hình nền đa phương thức ( multimodal ), chúng ta cần

đến nhiều phân phối xác suất độc lập với nhau để mô hình mỗi điểm ảnh. Mỗi

phân phối được gán với một trọng số đặc trưng cho mức độ ưu tiên của chúng.

Chỉ một vài phân phối đầu tiên với trọng số lớn mới được dùng để mô hình cho

nền. Một phân phối mới của sự quan sát sẽ được cập nhập vào mô hình nền nếu

như nó không khớp bất cứ phân phối nào đặc trưng cho mô hình nền, ngược lại

nó trọng số của các phân phối sẽ được cập nhập lại như sau:

b ( 1 - i = m ) wt+1,i + b

t+1,i =

w

„ b m ( 1 - i )wt+1,i

Với m là chỉ số của phân phối khớp với phân phối mới của sự quan sát, b

được gọi là tỉ lệ học trọng số

d. Phương pháp dựa trên Optical Flow

Đây là một phương pháp phức tạp và đòi hỏi các phần cứng đắt tiền

để chạy real-time nên chúng ta chỉ nói khái quát về nó.

Các chuy ển động của đối tượng trong 3D được gây ra chuyển động

2D trong mặt phẳng ảnh được gọi là Optical Flow. Optical Flow tương ứng với

sự cảm nhận chuyển động của mắt người.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

18

H9: Hình ảnh các xe và Optical Flow của chúng

Optical Flow được ứng dụng nhiều trong nhận dạng hoạt động. Khi đó mỗi

vận động được mô hình hóa bằng mô hình chuyển động là tổ hợp tuyến tính của

các vận động cơ bản. Các vận động cơ bản này là các Optical Flow được học

trong quá trình huấn luyện.

2.3.5.2 Ước lượng chuyển động

Nh ư đã nói, thông tin về chuyển động rất quan trọng trong xử lí và

nén video. Nén ảnh là các phương pháp nhằm làm giảm số bit cần thiết để đặc

trưng video. Trong khi đó các kỹ thuật xử lí video là các phương pháp biến đổi

trên chuỗi ảnh như là nâng cao chất lượng chuỗi ảnh. Việc phân lớp như trên có

ý quan trọng trong việc đưa ra đích của việc ước lượng chuyển động tức là liên

quan đến việc chọn mô hình xử lí sao cho phù hợp. Ví dụ như trong nén video

thì các tham số chuyển động được ước lượng đều dẫn đến một việc là đạt được

tỉ lệ nén cao nhất. Do đó các chuyển động được tính toán không cần phải giống

với các chuyển động thật của điểm ảnh miễn là ta đạt được một tỉ lệ bit tối thiểu.

Tuy nhiên, trong xử lí video thì các chuyển động thật của các điểm ảnh lại là

điều ta quan tâm. Để phát triển một thuật toán ước lượng chuyển động thì theo

Janusz Konrad ta cần có 3 yếu tố sau: Mô hình, tiêu chuẩn và chiến thuật tìm

kiếm.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

19

a. Các mô hình chuy ển động

Có 2 mô hình cần thiết trong ước lượng chuyển động: mô

hình chuyển động ( là cách để đặc trưng vận động trong một chuỗi ảnh ) và mô

hình quan sát ( là mô hình mà có sự liên quan của các tham số chuyển động với

mật độ ảnh ). Trong mô hình chuyển động ta lại có mô hình chuyển động theo

không gian và theo thời gian.

• Mô hình chuyển động theo không gian

Hầu hết các chuyển động đểu là sự kết hợp của phép chiếu

các chuyển động của đối tượng trong cảnh 3D và chuyển động của camera.

Trong khi chuyển động của camera ảnh hưởng đến chuyển động của toàn bộ hay

hầu hết các điểm ảnh thì chuyển động của đối tượng chỉ ảnh hưởng tới các điểm

tương ứng với hình chiếu của đối tượng. Trong luận văn này chúng tôi nghiên

cứu trên camera tĩnh vì thế chúng tôi sẽ không nghiên cứu chuyển động của

camera. Nói chung chuyển động phụ thuộc rất nhiều yếu tố như là các phép

chiếu, mô hình của đối tượng 3D... Ta xét trường hợp đơng giản nhất là chuyển

động tịnh tiến của đối tượng 3D. Khi đó vector vận tốc tức thời của điểm x trong

mặt phẳng ảnh sẽ là

b 1

b

2

(cid:246) (cid:230) (cid:247) (cid:231) v(x) = (cid:247) (cid:231) ł Ł

Trong đó các tham số b = (b1, b2)T = (v1,v2)T phụ thuộc vào

góc quay của camera và các tham số trong chuyển động tịnh tiến 3D. Mô hình

tịnh tiến 2D này ứng dụng rất nhiều trong thực tế đặc biệt là trong nén video vì

nó đưa ra một xấp xỉ gần đúng với hầu hết ảnh trong tự nhiên. Khi chuyển động

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

20

của vật thể 3D có thêm các chuyển động affine thì ta có mô hình chuyển động

affine với 6 tham số

b 1

b

b

3

4

x

b

2

b

b

5

6

(cid:246) (cid:230) (cid:246) (cid:230) (cid:247) (cid:231) (cid:247) (cid:231) v(x) = + (cid:247) (cid:231) (cid:247) (cid:231) ł Ł ł Ł

Rõ ràng mô hình chuyển động tịnh tiến là trường hợp đặc biệt

của mô hình chuyển động affine. Hầu hết các mô hình chuyển động phức tạp đều

đưa ra rất tốt nhưng tùy vào từng ứng dụng. Không phải lúc nào chúng cũng cải

thiện được sự chính xác trong ước lượng chuyển động. Nói chung, số tham số

càng nhiều thì việc mô tả chuyển động càng chính xác hơn. • Mô hình chuyển động theo thời gian

Quỹ đạo của một điểm ảnh riêng biệt được vẽ trong không

gian (x, y, t) của một chuỗi ảnh có thể được xem như là tùy ý bởi vì chúng phụ

thuộc vào vận động của đối tượng. Trong trường hợp đơn giản nhất, quỹ đạo

của chúng là tuyến tính. Giả sử chúng ta có vận tốc vt(x) giữa thời gian t = tk-1 và thời gian t (t > t ) là một hằng số, một quỹ đạo tuyến tính có thể được trình bày

như sau:

x(t ) = x(t) + vt(x)( t - t ) = x(t) + dt,t (x) Trong đó dt,t (x) = vt(x)( t - t ) là một vector dịch chuyển được

đo theo hướng thời gian. Cho nên đối với chuyển động tuyến tính, nhiệm vụ của

chúng ta là tìm 2 thành phần của vector vận tốc v hay vector dịch chuyển d của

mỗi điểm x.

Một sự mở rộng trong tự nhiên của mô hình quỹ đạo tuyến

tính là mô hình đường cong bậc 2. Khi đó ta có thêm một đại lượng mới là gia

tốc của một điểm.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

21

1 at(x)( t - t )2 2

x(t ) = x(t) + vt(x)( t - t ) +

Trong đó gia tốc at là đạo hàm của vận tốc vt. Các mô hình

trên đòi hỏi 2 ( đối với tuyến tính ) hoặc 4 ( đối với bậc 2 ) tại mỗi điểm x. Để

giảm gánh nặng tính toán, mô hình tham số theo không gian có thể kết hợp với

các mô hình trên.

• Vùng hỗ trợ

Tập điểm x mà trong đó các mô hình không gian và thời gian

áp dụng được gọi là vùng hỗ trợ. Sự lựa chọn của một mô hình và vùng hỗ trợ là

một trong các yếu tố quyết định đến tính chính xác của ước lượng các tham số

chuyển động. Thông thường khi cho một mô hình chuyển động, vùng hỗ trợ

càng nhỏ thì việc xấp xỉ càng tốt hơn, bởi vì với vùng hỗ trợ lớn thì chuyển động

có thể phức tạp và do đó ta phải có mô hình chuyển động phức tạp hơn. Thông thường vùng hỗ trợ (´ ) có thể thuộc 1 trong 4 loại sau:

1. ´ là toàn bộ ảnh: Một mô hình chuyển động

được áp dụng cho toàn bộ ảnh. Mô hình này

thích hợp cho việc ước lượng chuyển động

của camera.

2. ´ là một điểm ảnh: Mô hình này áp dụng cho

một điểm ảnh. Trong trường hợp này ta

thường sử dụng mô hình không gian tịnh tiến

kết hợp với mô hình tuyến tính hoặc bậc 2.

3. ´ là một khối điểm hình chữ nhật: Các mô

hình vận động sẽ được áp dụng trên một khối

điểm ảnh hình chữ nhật. Trong trường hợp

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

22

đơn giản nhất, các khối này không phủ lên

nhau và hợp của chúng sẽ bao phủ toàn bộ

ảnh. Trong trường hợp này mô hình chuyển

động không gian tịnh tiến kết hợp với mô

hình chuyển động thời gian tuyến tính được

xem là mô hình hiệu quả nhất và đã được áp

dụng trong các chuẩn nén video như là

MPEG-1, MPEG-2...

4. ´ là một vùng bất kì: Các mô hình vận động

sẽ áp dụng trên các điểm thuộc vào ´ . Ở đây

vùng ´ sẽ tương ứng với các đối tượng. Kĩ

thuật này đã được áp dụng trong chuẩn nén

MPEG-4.

• Mô hình quan sát

Khi chuyển động được ước lượng ( và được quan sát bằng

mắt người ) dựa trên sự thay đổi của cường độ sáng, màu hoặc cả hai, các mối

quan hệ giả định giữa các tham số chuyển động và mật độ ảnh đòng một vai trò

rất quan trọng. Giả thuyết hợp lý và thường thấy là cường độ sáng vẫn không

đổi theo quỹ đạo chuyển động (đối tượng không thay đổi độ sáng khi di chuyển).

Đối với các ảnh được lấy mẫu theo thời gian điều này có nghĩa là

Ik(x(tk)) = Ik-1(x(tk-1))

Sử dụng công thức trong mô hình chuyển động theo thời gian với t = tk-1, t = tk

và giả thuyết rằng chúng ta lấy mẫu ảnh theo không gian, ta có:

k(n) = Ik-1(n-d).

I

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

23

Tuy nhiên chúng ta không thể sử dụng công thức trên để tìm d trong thực tế vì

nhiễu q. Công thức trên được viết lại như sau:

k(n) = Ik-1(n-d) + q(n)

I

Do đó d được tính bằng cách tối thiểu hàm lỗi giữa Ik(n) và Ik-1(n-d).

b. Tiêu chu ẩn ước lượng

Có rất nhiều tiêu chuẩn ước lượng tùy thuộc vào yêu cầu của bài

toán. Trong nén ảnh thì lỗi dự đoán của bộ ước lượng là rất quan trọng. Còn

trong phép nội suy bù đắp chuyển động thì lỗi nội suy cực đại lại là mối quan

tâm. Ngoài ra tùy thuộc vào khả năng xử lí mà việc ước lượng chuyển động thực

hiện trên đó. Nói chung các tiêu chuẩn ước lượng đều có mục đích chung là cực

tiểu hóa hàm lỗi:

" n˛ L e k(n) = Ik(n) – Ĩk(n)

Trong đó Ĩk(n) = Ik-1(n – d(n) ) được gọi là ước lượng bù đắp chuyển động của

Ik(n).

c. Chi ến thuật tìm kiếm

Một khi mô hình chuyển động đã được xác định và kết hợp với

một tiêu chuẩn ước lượng, bước cuối cùng là phát triển một chiến lược hiệu quả

cả về tính phức tạp và chất lượng lời giải để ước lượng các tham số chuyển động.

Đối với một số ít các tham số vận động yêu cầu không gian trạng thái nhỏ thì

chiến lược thường dùng nhất khi tối thiểu hàm lỗi là so khớp. Trong hướng này,

các ước lượng bù đắp chuyển động Ik-1( n – d(n) ) cho các ứng viên chuyển động

d được so sánh với ảnh gốc Ik(n) trong vùng hổ trợ của mô hình vận động. Ứng

viên nào khớp nhất đối với tiêu chuẩn đã đưa sẽ được chọn để ước lượng. Ngoài

ra ta còn có nhiều phương pháp ước lượng nữa mà chúng ta sẽ không nói tới: kỹ

thuật dựa trên gradient, thuật toán độ tin cậy cao nhất được chọn đầu tiên...

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

24

CHƯƠNG 3

Trong chương này chúng ta sẽ áp dụng các thuật toán xử lí video

đã được nghiên cứu ở phần trên vào bài toán theo vết và phân loại

đối tượng.

THEO VẾT VÀ PHÂN LOẠI ĐỐI TƯỢNG

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

25

3.1 Bài toán theo v ết và phân loại đối tượng

Việc theo vết và phân loại đối tượng đang được nghiên cứu trong những

năm gần đây. Trong ứng dụng theo vết và phân loại đối tượng chúng ta phải

phân loại được đối tượng và chỉ theo vết đối tượng chúng ta quan tâm. Theo vết

đối tượng là chúng ta lưu lại được đường đi của các đối tượng đang vào vùng

quan sát của camera. Ta có thể ứng dụng vào các hệ quan sát để giảm được chi

phí lưu trữ các dữ liệu thư được từ các camera quan sát. Hình ảnh từ camera

truyền vào máy tính, sau đó máy tính xử lí. Nếu trong đó có các đối tượng mà

chúng ta quan tâm thì máy tính sẽ lưu đoạn phim này lại để sau này chúng ta xử

lí. Như đã đề cập trong chương I, kích thước của dữ liệu video là rất lớn vì thế

việc lưu trữ có chọn lọc này sẽ giảm được chi phí cho việc lưu trữ rất nhiều.

Trong bài toán này chúng tôi sẽ theo vết những đối tượng nào là người. Thông

thường khi theo vết đối tượng người ta thường dùng 4 phương pháp sau:

Phương pháp 1: Theo vết đối tượng dựa theo các đặc điểm riêng của đối

tượng. Phương pháp này cho kết quả khá tốt và có thể áp dụng được đối với

camera động nhưng đòi hỏi chúng ta phải có tri thức về đối tượng cần theo dõi,

tức là chúng ta phải có được các danh sách các đặc điểm riêng của đối tượng.

Phương pháp 2: Phương pháp này sử dụng phân bố màu của đối tượng để

theo vết. Tiêu biểu của phương pháp này là MeanShift và CamShift. Phương

pháp này thường được ứng dụng trong tracking người dựa vào sự phân bố màu

da.

Phương pháp 3: Phương pháp này xem các đối tượng chuyển động như là

các vùng liên thông và theo vết các đối tượng bằng cách so khớp các vùng liên

thông để tìm vùng khớp nhất.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

26

Phương pháp 4: Phương pháp này theo vết đối tượng dựa vào đường biên

của chúng. Phương pháp này tương tự với phương pháp 3 và chúng ta theo vết

bằng cách cập nhập đường biên của đối tượng.

3.2 Mô hình x ử lí bài toán

Trong bài toán trên, d ữ liệu mà chúng tôi xử lí sẽ là đoạn video được quay

từ camera và ghi lại với chuẩn AVI. Mô hình xử lí bài toán có thể được trình bày

như sau:

Dữ liệu thu được từ camera được đặt cố định sẽ được truyền vào máy tính.

Dữ liệu này qua một bộ tiền xữ lí để lọc nhiễu.... Sau đó nó sẽ qua bộ phát hiện

chuyển động. Bộ phát hiện chuyển động sẽ phát hiện điểm nào là điểm tỉnh (

điểm nền ) và điểm nào là chuyển động. Từ đó ta dùng phép phân tích connected

component để rút trích các đối tượng chuyển động và truyền danh sách các đối

tượng rút trích được qua bộ ước lượng chuyển động. Bộ ước lượng chuyển động

sẽ ước lượng chuyển động của các đối tượng có trong danh sách đối tượng và so

khớp với các đối tượng mới . Tùy vào các trường hợp mà ta sẽ cập nhập lại vị trí

của đối tượng, loại bỏ đối tượng ra khỏi danh sách đối tượng hay là thêm một đối

tượng vào danh sách đối tượng. Sau đó các đối tượng này sẽ được chuyển qua bộ

phân loại để chọn lọc các đối tượng là người và theo vết Việc theo vết là lưu lại

vị trí của các đối tượng đang trong vùng quan sát và cuối cùng ta sẽ được quỹ

đạo chuyển động của đối tượng. Trong phần này để biểu diễn việc theo vết đối

tượng chúng tôi sẽ vẽ khung bao quanh đối tượng. Sau đây là sơ đồ tóm tắc quá

trình theo vết và phân loại đối tượng của chúng tôi.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

27

capture

Tiền xử lí

Phát hiện chuyển động

Theo vết đối tượng

Phân loại đối tượng

H10: Sơ đồ xử lí bài toán

3.3 Ti ền xử lí

Dữ liệu từ máy camera lưu vào máy tính dưới dạng file AVI. Trong chuẩn

file này hệ màu mà nó dùng là RGB với phân bố màu là BGR. Sau khi khảo sát

các hệ màu RGB, HSV, YUV chúng tôi chọn thành phần Y của hệ màu YUV.

Do đó các frame ảnh từ file AVI phải được chuyển sang hệ màu YUV và lấy

thành phần Y để xử lí. Sau đó frame ảnh này sẽ qua bộ lọc để lọc nhiễu. Bộ lọc

thường dùng là Median và Gaussian. Với các bộ lọc này chúng ta sẽ giảm bớt

các chuyển động không cần thiết như là các chuyển động của lá cây...

3.4 Phát hi ện chuyển động

Ở bộ phát hiện chuyển động, đầu vào là ảnh đã qua bộ tiền xử lí, và vì thế

chúng ta chỉ sử dụng thành phần Y để xử lí. Đây là bước cơ bản nhưng cũng là

bước quan trọng nhất. Nếu ta xử lí không tôt bước này thì kết quả ở các bước sau

sẽ không cao. Ở trong phần này dữ liệu vào là các frame của đoạn video thu

được từ camera tĩnh đã qua giai đoạn tiền xử lí, và chúng ta sẽ tách các đối tượng

chuyển động. Các đối tượng chuyển động có hình dạng, màu sắc khác nhau

nhưng có cùng chung đặc điểm là chuyển động. Để lợi dụng tính chất trùng lắp

thông tin giữa các frame nên phương pháp chủ yếu trong phần này là trừ ảnh.

Như đã trình bày trong chương I, hai phương pháp được sử dụng chủ yếu trong

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

28

phát hiện chuyển động là so sánh sự khác biệt và trừ nền. Nhược điểm của

phương pháp trừ nền là nhạy cảm với nền và nhược điểm của phương pháp so

sánh sự khác biệt là không phát hiện được chuyển động của phần bên trong các

đối tượng đồng màu. [3] đã đề ra một phương pháp rất hay, đó là kết hợp giữa 2

phương pháp trên. Trong khi phương pháp so sánh sự khác biệt của 3 frame liên

tiếp được thực hiện để xác định các vùng chuyển động hợp lí thì phương pháp

trừ nền được thực hiện tiếp sau đó sẽ lấp đầy các phần còn lại mà phương pháp

so sánh sự khác biệt đã không phát hiện ra. Xem xét chuỗi ảnh được truyền vào

từ camera tĩnh. Gọi In(x) đặt trưng cường độ tại vị trí x và ở thời gian t = n.

Nguyên lý trong so sánh 3 frame khác biệt là : Một điểm được coi là chuyển

động nếu cường độ của nó thay đổi đáng kể giữa frame hiện tại và frame trước

nó , giữa frame hiện tại và frame trước đó nữa. Tức là điểm x là chuyển động

nếu:

n(x) – In-1(x) | > Tn(x) ) và ( | In(x) – In-2(x) | > Tn(x) ).

( | I

Trong đó Tn(x) là ngưỡng mô tả sự thay đổi cường độ đáng kể ở vị trí x. Vấn đề

chính của phương pháp so sánh sự khác biệt là những điểm nằm bên trong đối

tượng đồng màu thì không nằm trong tập các điểm chuyển động. Tuy nhiên, sau

khi phân các điểm chuyển động thành các vùng chuyển động thì các điểm nằm

bên trong có thể được lắp đầy bằng cách áp dụng phương pháp trừ nền lấy ra tất

cả các điểm chuyển động nằm bên trong hộp R bao quang vùng chuyển động.

Gọi Bn(x) đặc trưng cho cường độ nền hiện tại ở điểm x. Vùng bn có thể được

lấp đầy bằng các điểm nằm trong R mà có cường độ khác biệt đáng kể so với

nền.

R } bn = { x: | In(x) – Bn(x) | > Tn(x), x ˛

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

29

Tuy nhiên ph ương pháp này có một nhược điểm là phần kết quả cuối cùng

bao giờ cũng phụ thuộc vào lượng thông tin mà phương pháp trừ nền có được.

Khi áp dụng phương pháp này vào theo vết đối tượng là người sẽ gặp một khó

khăn đó là phương pháp trừ nền sẽ cho ra kết quả không tốt thường là có sự ngăn

cách giữa đầu người và thân người và vì thế sẽ cho ra hai đối tượng chứ không

phải là một đối tượng. Mặc khác khi chúng tôi áp dụng phương pháp trên thì gặp

một lỗi nhỏ mà chúng tôi nghĩ là do bộ thư viện OpenCV gây ra. Khi sử dụng bộ

thư viện OpenCV để captrure đoạn video và lấy từng frame ảnh ra, thì cứ sau 5

frame chúng ta lại có một frame trùng với frame trước. Do đó phương pháp so

sánh 3 frame liên tiếp sẽ cho kết quả sai. Cuối cùng chúng tôi chọn phương

pháp trừ nền. Phương pháp này nhạy cảm với nền và cho kết quả không tốt lắm

vì thế chúng tôi sử dụng các bộ lọc tuyến tính và bộ lọc morphology để khử

nhiễu và lấp đầy khoảng trống giữa đầu người và thân người.

Gọi B(x) là ảnh nền, I(x) là ảnh hiện tại, D(x) là độ khác biệt giữa ảnh nền

và ảnh hiện tại

D(x) = | B(x) – I(x) |

Khi đó ta có mặt nạ chuyển động là

0 n ếu D(x) < T(x)

M(x) =

1 ng ược lại

Trong đó T(x) là ma trận ngưỡng chỉ độ sai khác đáng kể giữa ảnh hiện tại

và ảnh nền. Cả hai ảnh nền Bn và ngưỡng Tn đều là thuộc tính thống kê

của cường độ điểm ảnh được quan sát từ chuỗi ảnh Ik (k < n ). B0(x) là ảnh

đầu tiên trong chuỗi ảnh, B0(x) = I0(x) và T0(x) được cho một giá trị mặt

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

30

định khác không. B(x) và T(x) được cập nhập theo thời gian theo công

thức sau.

a n ếu x đứng yên Bn(x) + ( 1 - a )In(x)

Bn+1(x) =

B nếu x động

n(x) Tn(x) + ( 1 - a

a )(5*|In(x) – Bn(x)|) nếu x đứng yên

Tn+1(x) =

n(x)

nếu x động

T Trong đó a là giá trị chỉ mức độ đáp ứng của nền đối với sự thay đổi của

môi trường. a có thể là 1 hằng số được chọn theo kinh nghiệm hoặc có thể được

cập nhật như sau: Gọi Q là tập hợp các điểm được chọn ngẫu nhiên và không

thuộc vào phần chuyển động ở frame trước. Chúng ta tính toán một tỉ số thay đổi độ sáng l (t) tương ứng với các điểm trong Q.

1

)( qI qB )(

Qq

- l (t)= (cid:229) ˛

Với I(q) là cường độ của điểm q tại frame hiện tại, và B(q) là cường độ

của điểm q tại ảnh nền.

Trong trường hợp tỉ số thay đổi độ sáng này lớn hơn ngưỡng cho trước thì

chúng ta sẽ điều chỉnh lại tham số cập nhập nền như sau:

t)(l c

a n ếu l (t) > t = 0.01 +

Với c là một hằng số cho trước, c được xác định bằng thực nghiệm.

Sau đây là sơ đồ toàn bộ quá trình trong bộ phát hiện chuyển động.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

31

Ảnh nền

frame k

Ngưỡng

Trừ nền

Cập nhật nền

Cập nhật ngưỡng

H11 : Sơ đồ xử lí trong bộ phát hiện chuyển động

Rút trích đối tượng chuyển động

Bây giờ chúng ta sẽ đi chi tiết một số thuật giải trong sơ đồ trên. Đó là

thuật giải trừ nền, thuật giải cập nhập nền, thuật giải cập nhập ngưỡng và

thuật giải rút trích đối tượng chuyển động.

a. Thu ật giải trừ nền

input: ảnh nền B, ảnh hiện tại I và ma trận ngưỡng T

output: ảnh M là mặt nạ chuyển động

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

32

m := getHeight(M);

n := getWidth(M);

for x := 1 to m do

for y := 1 to n do

if | B[x,y] – I[x,y] | > T[x,y] then

M[x,y] := 255;

else

M[x,y] := 0;

Ở đây chúng tôi sử dụng ảnh độ xám để làm mặt nạ chuyển động thay

vì dùng ảnh nhị phân do đó M[x,y] sẽ nhận một trong hai giá trị là 255 chỉ

màu trắng( điểm chuyển động ) và 0 chỉ màu đen ( điểm đứng yên )

b. Thu ật giải cập nhật nền

input: nền B, ảnh hiện tại I và mặt nạ chuyển động M

output: nền B được cập nhật lại

m := getHeight(B);

n := getWidth(B);

for x := 1 to m do

for y := 1 to n do

if M[x,y] = 0 then

B[x,y] := a *B[x,y] + ( 1 - a )*B[x,y];

c. Th ủ tục cập nhật ngưỡng

input: ma trận ngưỡng T, nền B, ảnh hiện tại I, mặt nạ chuyển động M

output: ma trận ngưỡng đã được cập nhật.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

33

m := getHeight( B );

n := getWidth( B );

for x := 1 to m do

for y := 1 to n do

if M[x,y] = 0 then

T[x,y] := a *T[x,y] +

( 1 - a )*(5*| I[x,y] – B[x,y] |;

d. Th ủ tục rút trích đối tượng chuyển động

Sau khi ta áp dụng phương pháp trừ nền ta có được một mặt nạ chuyển

động. Tuy nhiên mặt nạ chuyển động này có kết quả không tốt lắm và còn có

nhiễu. Trước hết ta áp dụng bộ lọc tuyến tính Median để khử bớt nhiễu. Bộ lọc

Median có thể sẽ không lọc hết nhiễu nếu nhiễu nhiều quá, thì nhiễu này sẽ được

loại bỏ ở công đoạn sau. Sau đó ta dùng phép biến đổi morphology đóng để lấp

đầy khoảng trắng giữa đầu và thân. Sau đó ta dùng phép phân tích các vùng liên

thông để trích lấy các đối tượng chuyển động. Tuy nhiên, trong các đối tượng

chuyển động này có nhiều đối tượng là nhiễu và nhiều đối tượng chuyển động

mà ta không cần quan tâm tới. Các đối tượng nhiễu thường có kích thước nhỏ và

các đối tượng ta không quan tâm cũng thế. Vì thế ta chỉ lưu các đối tượng

chuyển động vào danh sách các đối tượng chuyển động khi kích thước của chúng

đủ lớn. Sau đây là chi tiết giải thuật.

• Thuật giải trích lấy các thành phần liên thông

Input: Mặt nạ chuyển động M

Output: L danh sách các thành phần liên thông

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

34

Median( M, temp );

Close( temp, M );

L := getConnectedComponent( M );

• Thuật giải trích lấy đối tượng chuyển động

Input: L danh sách các thành phần liên thông

Output: A danh sách các đối tượng chuyển động

j := 1;

For i:= 1 to getSize(L) do

If getObjectSize( L[i] ) > c then

Begin

InitialObject( A[j], L[i] );

j := j +1;

End

Sau đây chúng ta xem kết quả thực hiện của giải thuật rút trích các

frame hiện tại

đối tượng chuyển động.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

35

Mặt nạ chuyển động khi dùng phương pháp tr ừ

nền. Vẫn còn nhiễu và có sự phân cách nhỏ giữa

xe máy, thân mình và đầu

Mặt nạ chuyển động khi cải tiến phương pháp trừ

nền. Các phần nhiễu đã được lọc bỏ và các phần

xe máy, thân mình và đầu đã được liên kết với

nhau

Khi thử nghiệm phương pháp phát hiện chuyển động trên chúng tôi thu

được kết quả sau:

• Tổng số frame thử nghiệm là 2010

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

36

• Thời gian xử lí là 145 giây • Tốc độ xử lí trung bình là 13.6 giây • Các đối tượng chuyển động đều được phát hiện

3.5 Theo v ết đối tượng

Sau khi các đối tượng đã được phát hiện, chúng ta sẽ tiến hành theo vết

đối tượng. Hầu hết các hệ thống hiện nay đều theo vết đối tượng dựa vào bộ lọc

Kalman. Ở đây chúng tôi cũng sử dụng bộ lọc Kalman nhưng có một số sửa đổi.

Như đã biết theo vết đối tượng có nghĩa là chúng ta phải phân tích và ghi lại quỹ

đạo của đối tượng. Để có thể theo vết tốt chúng ta phải ước lượng được chuyển

động của đối tượng. Mỗi đối tượng sẽ được đặc trưng bởi một số tham số sau:

1. p = V ị trí trong tọa độ ảnh. Tọa độ của trọng tâm của đối tượng

sẽ chính là tọa độ của đối tượng.

2. d p = là độ không chắc chắn của vị trí. Không bao giờ chúng ta

có thể ước lượng chính xác được vì thế độ không chắc chắn này

>-

chính là độ sai số trong ước lượng.

v = t ốc độ của đối tượng. Ở đây chúng ta sẽ dùng độ dịch

3.

chuyển thay cho tốc độ vì chúng ta đang xét là các điểm rời rạc

>-

chứ không phải là các điểm liên tục.

v = độ không chắc chắn của vận tốc.

4. d

5. ´ = hình chữ nhật bao quanh đối tượng.

6. d : là m ột số chỉ độ tin cậy của đối tượng. Độ tin cậy này sẽ dùng

để quyết định loại bỏ hay theo vết đối tượng.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

37

3.5.1 Dự đoán vị trí của đối tượng trong tương lai

Việc ước lượng vị trí của đối tượng trong mỗi frame là rất quan

trọng. Nó giúp cho việc tính toán đơn giản hơn và việc theo vết sẽ chính xác hơn.

Vị trí ước lượng sẽ được sử dụng để lựa chọn số các đối tượng cần phải xem xét

trong quá trình theo vết. Việc ước lượng sẽ giảm được rất nhiều thời gian vì với

mỗi đối tượng chúng ta không cần phải xem xét trên toàn bộ ảnh mà chỉ xét trong vùng được dự đoán mà thôi. Gọi D t là thời gian giữa 2 frame, theo mô hình

t chuyển động tuyến tính thì ta có pn+1 = pn + v*D

Và độ không chắc chắn được cho là bằng độ không chắc chắn của vị trí hiện tại

cộng với độ không chắc chắc của vận tốc nhân cho thời gian.

t d pn+1 = d pn + d vn*D

Những vị trí này sẽ được chọn để ước lượng vị trí mới của đối tượng trong frame

tiếp theo. Mỗi đối tượng trong frame hiện tại sẽ được dự đoán vị trí mới bằng cách cộng hình chữ nhật bao quanh đối tượng một khoảng là vn*D t sau đó mở rộng ra một khoảng d pn+1. Do dó nếu có vùng chuyển động mới nào thuộc vào

vùng dự đoán này thì ta sẽ tiến hành so khớp.

3.5.2 So kh ớp đối tượng

Cho một vùng đối ở frame hiện tại, chúng ta tìm vùng khớp với

vùng này ở frame tiếp theo bằng phương pháp so khớp tương quan ảnh. Hàm tương quan giữa vùng ´ ở frame hiện tại với vùng ứng viên ở frame tiếp theo và

cách vùng này một khoảng d là:

),( jiW

)( x

n

+ ( ) dx + 1 n

-

I

C(d) = (cid:229) ˛

I W

Rx

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

38

Trong đó: In là mật độ điểm ảnh tại frame hiện tại, In+1 là mật độ điểm ảnh tại

=

W

)( xW

frame tiếp theo. W là hàm trọng số và ||W|| được tính bằng công thức sau:

Rx

(cid:229) ˛

Ở đây W(x) là hàm trọng số thể hiện mức độ ưu tiên của điểm x. Các đối tượng

mà chúng ta quan sát được có thể di chuyển từ xa tới hoặc đi ra xa. Khi đó kích

thước của chúng ở frame tiếp theo sẽ lớn hơn hoặc nhỏ hơn. Vì thế hàm trọng số

này phải được tính làm sao để các điểm ở gần tâm của đối tượng sẽ có độ ưu tiên

cao hơn. Và để giảm chi phí tính toán thì hàm trọng số này chỉ áp dụng đối với

các điểm ảnh nào được xem là chuyển động, do đó các điểm được xem là đứng

yên sẽ có hàm trọng số bằng 0. Nếu x là điểm chuyển động ta có:

)( xW

1

1 += 2

1 2

max

)( xr r

(cid:230) (cid:246) (cid:231) (cid:247) - (cid:231) (cid:247) Ł ł

Trong đó r(x) là khoảng cách bán kính từ x tới tâm của vùng ´ , và rmax là khoảng

cách bán kính lớn nhất trong ´ . Để giảm chi phí tính toán ta có thể ước lượng

tâm của đối tượng chính là tâm của hình chữ nhật bao quanh đối tượng và khoảng cách lớn nhất trong vùng ´ bằng một nữa đường chéo của hình chữ nhật

bao quanh đối tượng. Khi so khớp vùng đối tượng có kích thước m*n thì chi phí tính toán sẽ là O(m2n2). Nếu kích thước của vùng đối tượng lớn thì chi phí sẽ

tăng lên rất lớn khó mà kiểm soát được. Vì thế chúng tôi đã cố định một ngưỡng

mà chi tính toán sẽ không vượt qua ngưỡng đó. Ở đây chúng tôi chọn ngưỡng là

25 điểm ảnh. Kích thước của vùng ảnh theo mỗi chiều sẽ bị giảm đi một nửa nếu

nó lớn hơn 25 và chúng tôi sẽ đếm số lần giảm kích thước để lựa chọn các điểm

khi so khớp. Ví dụ như một vùng có kích thước 80*45 thì kích thước sẽ giảm đi

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

39

2 lần theo chiều x và 1lần theo chiều y. Do đó trong quá trình so khớp, theo

chiều x cứ 4 điểm thì sẽ chọn một điểm để so khớp và cứ 2 điểm theo chiều y thì

sẽ chọn 1 điểm. Với cách xử lí như trên thì độ phức tạp của thuật toán không bao giờ quá O(254). Sau đây là thuật giải so khớp đối tượng

Input: đối tượng ở frame hiện tại currentObject, đối tượng ở frame tiếp

theo targetObject, 2 frame ảnh In và In+1.

Ouput: C(d)

x1 := currentObject.objectRect.x;

y1 := currentObject.objectRect.y;

x2 := currentObject.objectRect.x +

currentObject.objectRect.width;

y2 := currentObject.objectRect.y +

currentObject.objectRect.height;

xStep := 1;

yStep := 1;

while( m > 25 )

yStep := yStep + 1;

while( n > 25 )

xStep := xStep + 1;

Cd := 0;

for y := y1 to y2 do

for x := x1 to x2 do

begin

if M[x,y] > 0 then

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

40

begin

)

(

+

1

max

r x r

1 2

1 2

+

+

+

Wx

ydx ,

dy ]

- ; Wx :=

x [ + 1 n

I ].[* yx n

I

; Cd := Cd +

end

x := x + xStep;

y := y + yStep;

end

3.5.3 Theo v ết đối tượng

Theo v ết đối tượng thì rộng lớn hơn là so khớp đối tượng. Chúng ta

phải lưu vết được quỹ đạo chuyển động của đối tượng.Ý chính ở đây là so

khớp đối tượng có được với các đối tượng mà ta thu được ở frame tiếp

theo. Các đối tượng ở frame tiếp theo sau khi qua bộ phát hiệu chuyển

động sẽ rút trích ra được các vùng chuyển động. Chúng ta sẽ tạo một

danh sách các vùng chuyển động để thuận tiện cho việc theo vết. Sau đó

chúng ta ước lượng vị trí mới của các đối tượng ở frame hiện tại. Khi đó

việc so khớp sẽ dễ dàng hơn. Chúng ta chỉ so khớp các đối tượng với vùng

chuyển động mới mà vị trí ước lượng của các đối tượng này thuộc vào

vùng chuyển động mới đó. Tùy trường hợp so khớp mà chúng ta có các

quyết định theo vết khác nhau. Sau đây là sơ đồ thuật giải theo vết đối

tượng.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

41

Frame j Các đối tượng đang lưu trữ

Rút trích các vùng chuyển động

A’ Dự đoán vị trí mới của các đối tượng fi Danh sách các vùng fi Bi

Y

i = 1

i ˛ Bi N

Duyệt A’ để tìm các đối tượng j khớp với vùng chuyển động i

Stop

H12: Sơ đồ theo vết đối tượng

i = i + 1 Tìm đối tượng trong j khớp với i

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

42

Khi so khớp các đối tượng trong j với đối tượng i sẽ xảy ra các trường hợp

sau:

1. Không có đối tượng nào khớp với vùng chuyển động hết. Ở đây

ta có 2 trường hợp xảy ra: một là vùng chuyển động này mới vào

vùng quan sát. Khi đó ta tạo một đối tượng mới thiết lập các

tham số ban đầu như là vị trí, vận tốc , .... và cho độ tin cậy ở

mức thấp nhất. Trường hợp hai là ta dự đoán sai. Khi này ta có

thể mở rộng vùng tìm kiếm và so khớp các đối tượng.

2. Ch ỉ có một đối tượng khớp với vùng chuyển động. Đây là trường

hợp tốt nhất trong theo vết. Lúc này ta sẽ cập nhật đối tượng theo

vùng chuyển động mới này.

3. Một đối tượng khớp với nhiều vùng chuyển động. Điều này có

thể do đối tượng tách ra thành nhiều đối tượng. Ở đây ta sẽ cập

nhật đối tượng hiện tại theo đối tượng khớp nhất. Các đối tượng

còn lại sẽ tương ứng với đối tượng mới và chúng ta thiết lập các

tham số ban đầu cho các đối tượng.

4. Tr ường hợp nhiều đối tượng cùng khớp với một vùng chuyển

động. Trường hợp này là do các đối tượng giao nhau. Ở đây

chúng tôi chỉ xét 2 đối tượng giao nhau thôi. Khi 2 đối tượng

giao nhau chúng tôi sẽ xét vị trí của 2 đối tượng này với vị trí

của đối tượng mà cập nhật lại vị trí mới của các đối tượng. Ở đây

mỗi đối tượng sẽ được có một hình chữ nhật bao quanh đối

tượng. Chúng tôi sẽ so sánh góc trái trên và góc phải dưới của

các hình chữ nhật bao quanh đối tượng để đưa ra các quyết định

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

43

cập nhật lại vị trí hình chữ nhật bao này theo góc trái trên hay

Frame I

Frame In

n+1

H13: ví dụ thuật toán so cập nhập vị trí khi 2 đối tượng giao nhau

góc phải dưới của vùng mới. Ví dụ

Ở ví dụ trên ta thấy x21 < x11 do đó x21 = x1 còn x12 > x22 nên

x12 = x2, do đó độ dịch chuyển theo phương x của đối tượng 1 là D x1 = x2 – x12 còn của đối tượng 2 là D x2 = x1 – x12. Thành phần

theo phương y được tính tương tự.

5. Tr ường hợp các đối tượng không khớp với vùng chuyển động

nào hết. Trường hợp này có thể do đối tượng ra khỏi vùng quan

sát hoặc là đối tượng này đã bị đối tượng khác che khuất, vì thế

trong trường hợp này độ tin cậy của đối tượng sẽ giảm xuống.

Khi độ tin cậy giảm xuống dưới ngưỡng cho phép thì ta sẽ loại

bỏ đối tượng này ra khỏi danh sách.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

44

3.5.4 Cập nhật đối tượng

Các tham số của đối tượng sẽ được cập nhật theo các tham số của

đối tượng mới. Gọi d là độ dịch chuyển của đối tượng giữa 2 frame In và frame

In+1. ta có

p

p

+1

n

n

t

- d = D

Với pn+1 là vị trí mới của đối tượng.

=

*

d

( -+ 1

a

+ n 1

n

Khi đó ta có vận tốc của đối tượng được cập nhập như sau:

v

) v * a

=

và độ không chắc chắn của vận tốc được cập nhập như sau:

*

( -+ 1

d

a

a

+ 1

n

+ 1

n

n

v

v

) v *

d

-

3.6 Phân lo ại đối tượng

Phân loại đối tượng là một công việc rất khó và tốn rất nhiều thời gian. Để

phân loại đối tượng chúng ta cần phải biết các đặc trưng riêng của đối tượng. Đó

là các đặc trưng riêng của đối tượng mà đối tượng khác không có. Có rất nhiều

phương pháp để tìm đặc trưng và phân loại đối tượng, tuy nhiên có hai phương

pháp chung, phổ biến thường được sử dụng là:

1. Sử dụng Heuristics. Phương pháp này đưa ra các đặc trưng của đối

tượng mà từ kinh nghiệm hoặc các phân tích lý thuyết về đối tượng

đó. Tức là ta dựa vào cấu trúc, hình dáng, màu sắc của đối tượng ...

Phương pháp này có ưu điểm là cho kết quả tốt và nhanh, tuy nhiên

nó dựa vào trực giác của con người nên nhiều lúc kết quả lại không

tốt lắm, và có nhiều bài toán khi sử dụng phương pháp này sẽ làm

phức tạp thêm.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

45

2. Phương pháp thống kê. Phương pháp này tìm các đặc trưng của đối

tượng dựa trên kết quả quan sát được của một tập mẫu. Từ kết quả

quan sát này chúng ta sẽ rút ra được các đặc điểm chung, các quy

luật chung của tập mẫu. Phương pháp này thường cho kết quả khá

tốt vì chúng dựa trên các quan sát thực tế. Tuy nhiên phương pháp

có nhược điểm là đòi hỏi tập mẫu quan sát phải lớn và công việc thu

thập tập mẫu rất khó khăn và tốn thời gian. Nếu chúng ta thu thập dữ

liệu cho tập mẫu không tốt thì kết quả sẽ không tốt. Một trường hợp

điển hình của phương pháp này là mạng neuron. Hiện nay với sự

phát triển của tốc độ máy tính ngày càng nhanh thì phương pháp này

đang được sử dụng rộng rãi.

Ở đây vì thời gian có hạn và không có đủ điều kiện để thực hiện phương

pháp thống kê cho nên chúng tôi chọn phương pháp Heuristics. Ở đây

chúng tôi sẽ phân loại người đi bộ với các đối tượng khác như là xe, người

đi xe máy ... Việc phân loại này dựa vào hình chữ nhật bao đối tượng. Đối

với người đi bộ thì chiều rộng của hình chữ nhật rất ngắn còn chiều cao thì

dài hơn còn đối với các phương đối tượng khác ví dụ như xe ôtô thì chiều

rộng thường dài hơn chiều dài. Vì thế chúng tôi chọn tỉ lệ giữa chiều rộng

vào chiều dài làm một đặc trưng để phân loại.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

46

0 =

< tg

)30(

ta có:

3 3

width height

thì đối tượng đó được xem là người n ếu

chuyển động. Trong đó width là chiều rộng của khung bao đối tượng còn height

là chiều cao. Thuộc tính hình chữ nhật bao quanh đối tượng chưa sử dụng đến

hình dạng của đối tượng do đó ta có một hướng khác để phân loại đối tượng.

p =

N width

D

D p ‡ T Đối tượng chuyển động là người

D p < T Đối tượng chuyển động không phải là người

Trong đó N là số điểm chuyển động trong hình bao đối tượng, width là

chiều rộng của đường bao.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

47

CHƯƠNG 4

CÀI ĐẶT CHƯƠNG TRÌNH

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

48

4.1 Môi tr ường cài đặt

Chúng tôi cài đặt thử nghiệm chương trình bằng ngôn ngữ C++ và triển

khai trên môi trường Window bằng bộ công cụ Visual Studio 6.0. Chúng tôi sử

dụng thêm thư viện Intel OpenCV để hỗ trợ xử lí. Đây là một thư viện mã nguồn

mở của Intel về xử lí thị giác máy tính.

4.2 Cấu trúc chương trình

4.2.1

Cấu trúc dữ liệu Ngoài các dữ liệu cơ bản trong C++ chúng tôi còn sử dụng các cấu

trúc của thư viện Intel OpenCV như là IplImage để lưu trữ cấu trúc ảnh. Cấu trúc

này thừa kế từ thư viện IPL( Intel Image Processing Library ). Do cấu trúc này

khá phức tạp nên chúng tôi không trình bày trong luận văn này. Chi tiết các bạn

có thể xem trong tài liệu của thư viện Intel OpenCV

Để mô tả một đối tượng chuyển động chúng tôi xây dựng cấu trúc

typedef struct tagMovingObject

{

int objectConfidence;

CvRect objectRect;

CvPoint2D32f objectVelocity;

CvPoint

objectCentroid;

CvPoint2D32f objectVelocityUncertainty;

CvPoint2D32f objectPositionUncertainty;

CArray< int , int > arrTargetObjectIndex;

BOOL

objectUpdated;

}MovingObject, *pMovingObject;

MovingObject

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

49

typedef struct CvPoint

{

int x; /* x-coordinate, usually zero-based */

int y; /* y-coordinate, usually zero-based */

}

CvPoint;

typedef struct CvPoint2D32f

{

float x; /* x-coordinate, usually zero-based */

float y; /* y-coordinate, usually zero-based */

}

CvPoint2D32f;

typedef struct CvRect

{

int x; /* x-coordinate of the left-most rectangle corner[s] */

int y; /* y-coordinate of the top-most or bottom-most

rectangle corner[s] */

int width; /* width of the rectangle */

int height; /* height of the rectangle */

}

CvRect;

Trong cấu trúc MovingObject trên ta có một vài cấu trúc khác :

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

50

4.2.2 Cấu trúc chương trình

Chương trình được xây dựng dựa trên hai phần: phần giao diện và

phần xử lí.

Trong phần giao diện chúng tôi có sử dụng một số lớp về giao diện

như là CXPStyleButtonST, CbuttonST...

Trong phần xử lí chúng tôi xây dựng một lớp xử lí video

// Hàm lấy dữ liệu từ file AVI

void GetFile( const char* szFileName );

// Hàm khởi tạo các giá trị cần thiết

int ProcessAVI();

// Hàm trừ nền để rút ra đối tượng chuyển động

void BackgroundSubtraction( IplImage *backgroundImage,

IplImage *currentImage,

IplImage *foregroundImage,

IplImage *thresholdImage );

// Hàm thực hiện các công việc xử lí

void Next();

// Hàm so khớp đối tượng

double MatchingObject( MovingObject* currentObject,

MovingObject* targetObject);

CSequenceProcessing . Một vài hàm xử lí cơ bản trong lớp này như sau:

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

51

CHƯƠNG 5

KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

52

5.1 Kết quả đạt được

5.1.1 Dữ liệu thử nghiệm

Dữ liệu mà chúng tôi thử nghiệm được quay ở trên một con đường

gần công viên Gia Định vào lúc 5h chiều. Dữ liệu dược lưu vào máy qua cổng

IEEE 1394 và dùng phần mềm Unlead Video Studio DV 5.0 xử lí và lưu dưới

dạng file AVI. Ở đây để tiết kiệm bộ nhớ chúng tôi lưu dưới dạng AVI nén. Các

thông số như sau:

• Chuẩn nén là Cinepak Codec. • Kích thước của file AVI là 56,7Mb • Thời gian của đoạn film là 10 phút 07 giây • Tỉ lệ frame 30frame/giây • Chiểu rộng của từng frame là 320 pixel • Chiều cao của từng frame là 240 pixel

5.1.2 Kết quả đạt được

Với dữ liệu trên chúng tôi đã tách được các đối tượng chuyển động.

Xử lí được các chuyển động không cần thiết như là chuyển động của lá cây, các

đối tượng chuyển động có kích thước nhỏ được loại bỏ. Tuy nhiên khi khung

cảnh có quá nhiều đối tượng chuyển động thì thuật toán cho kết quả không tốt

lắm. Việc theo vết đối tượng khá tốt, tuy nhiên khi hai đối tượng gặp nhau thì

việc theo vết gặp khó khăn. Về phân loại đối tượng các đối tượng là người thì

được nhận dạng rất tốt, tuy nhiên vì thuật toán phân loại còn rất thô nên khi các

đối tượng khác không phải là đối tượng người chuyển động, chuyển động ở phía

xa camera thì hệ thống nhận dạng sai và cho rằng đó là đối tượng người.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

53

5.2 Hướng phát triển

Với kết quả đạt được hiện tại, chúng tôi đề ra hướng phát triển trong tương

lao:

1. Hệ thống phát hiện chuyển động hiện tại vẫn còn yếu vì chúng dựa

trên thuật toán trừ nền rất nhạy cảm với nhiễu và sự thay đổi của

nền. Mặc khác thuật toán này chỉ áp dụng với camera tĩnh thôi. Do

đó chúng tôi sẽ phát triển một hệ thống mới tốt hơn dựa trên các mô

hình toán học mới.

2. Xây d ựng một hệ thống phân loại nhiều đối tượng. Có thể dựa trên

mô hình thống kê cụ thể là mạng nơron để phân loại đối tượng.

3. Từ hệ thống phân loại này ta có thể xây dựng các hệ thống chống

trộm bằng cách đưa ra các đặc trưng riêng để hệ thống nhận dạng

trộm và đưa ra báo động.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

54

TÀI LIỆU THAM KHẢO

[1] A.M.Tekalp , Digital Video Processing , Prentice Hall , 1995

[2] Hand Book of Image & Video Processing, Academic Press, pp.207-226 ,

2000

[3] Robert T.Collins , Alan J.Lipton and Takeo Kamade , “A System for

VideoSurveillance and Monitoring” , 1999

[4] LIU Ya, AI Haizou, XU Guangyou, “Moving Object Detection and

Tracking Based on Background Subtraction”, 2001.

[5] Fatih Poriki and Oncel Tuzel, Mitsubishi Research Laboratory, “Human

Body Tracking by Adaptive Background Models and Mean-Shift Analysis”,

7-2003

[6] Mathew Price, “Video Classification and Tracking with Colour

Technical Report”, 14-11-2002

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

55

PHỤ LỤC 1

MỘT VÀI HÌNH ẢNH VỀ KẾT QUẢ ĐẠT

ĐƯỢC

1. Một vài mặt nạ chuyển động

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

56

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

57

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

58

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

59

Sau đây là một số frame mà có đối tượng là người đi bộ

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

60

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

61

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

62

2. Kết quả theo vết đối tượng

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

63

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

64

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

65

3. Kết quả theo vết đối tượng là người

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

66

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

67

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

68

PHỤ LỤC 2

VÀI NÉT VỀ THƯ VIỆN INTEL OPENCV

1. OpenCV là gì?

OpenCV là viết tắt của Intel® Open Source Computer Vision. Đó là một

thư viện gồm nhiều hàm C và một số lớp C++ dựa trên các thuật toán phổ biến

trong xử lí ảnh và thì giác máy tính.

OpenCV là một thư viện mã ngưồn mở và miễn phí.

OpenCV là một nền tảng giao di ện lập trình t ừ cấp trung t ới cao. Nó có

hơn 300 hàm C cho phép x ử lí từng điểm ảnh củng nh ư toàn b ộ ảnh hay đoạn

video. Khi kết hợp với thư viện IPP (Intel® Intergrated Performance Primitives)

trên các CPU Intel s ẽ tối ưu hóa xử lí nh ờ vận dụng kiến trúc của CPU. Đây là

một thư viện có thể sử dụng được trên Window và Linux.

2. Các ch ức năng của thư viện OpenCV

2.1 Các ki ểu dữ liệu cơ bản

OpenCV cung cấp rất nhiều kiểu dữ liệu có cấu trúc nhằm hỗ trợ tối đa

việc xử lí. Các kiểu dữ liệu có thể được chia ra làm 2 loại:

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

69

• Các kiểu dữ liệu giúp đở: đây là các ki ểu dữ liệu giúp cho thao

tác vói các dữ liệu ảnh dễ dàng hơn như là :

o IplImage: dùng để lưu cấu trúc file ảnh

o CvPoint: dùng để lưu vị trí của điểm ảnh

o CvRect:

o CvBox

o Và nhiều kiểu dữ liệu khác

• Các ki ểu dữ li ệu động: đây là các ki ểu dữ li ệu được OpenCV

phát triển để giúp việc xử lí được tối ưu:

o CvMemStorage: đây là m ột cấu trúc d ữ li ệu cấp th ấp

dùng để lưu tr ữ các c ấu trúc d ữ li ệu tăng động nh ư là

typedef struct CvMemStorage {

struct CvMemBlock* bottom;/* first allocated block */ struct CvMemBlock* top; /* the current memory block - top of the stack */ struct CvMemStorage* parent; /* borrows new blocks from */

int block_size; /* block size */

int free_space; /* free space in the top block (in bytes) */

} CvMemStorage;

sequences, graphs...

o CvSeq : Đây là cấu trúc nền tảng của tất cả cấu trúc động

được sử dụng trong OpenCV. OpenCV c ũng cho phép

chúng ta tạo các cấu trúc dữ liệu mới từ cấu trúc này.

o CvSet : Đây là cấu trúc kế thừa từ cấu trúc CvSeq.

o CvGraph : Cấu trúc này lại kế thừa từ cấu trúc CvSet.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

70

Và còn nhiều kiểu dữ liệu khác nữa. Để biết thêm chi tiết đọc giả hãy

tham khảo trong file help của OpenCV.

2.2 Các hàm x ử lí trong OpenCV

Về các hàm xử lí trong OpenCV ta có thể chia ra như sau:

2.2.1 Các hàm x ử lí các kiểu dữ liệu cơ bản

Đây là các hàm h ỗ tr ợ cho vi ệc xử lí các c ấu trúc d ữ li ệu

trong OpenCV bao gồm: • Khởi tạo:

cvCreateImage : hàm khởi tạo một cấu trúc IplImage

cvMat: hàm khởi tạo một cấu trúc CvMat

cvCreateMemStorage: hàm kh ởi tạo một cấu trúc

CvMemStorage.

CvCreateSeq: hàm khởi tạo cấu trúc CvSeq.

.......

• Các hàm hủy

cvReleaseImage: gi ải phóng b ộ nh ớ giành cho c ấu trúc

IplImage được cấp phát bằng hàm cvCreateImage.

cvReleaseMat: giải phóng bộ nhớ giành cho c ấu trúc CvMat

được khởi tạo bằng hàm cvMat.

cvReleaseMemStorage: giải phóng bộ nhớ giành cho cấu trúc

CvMemStorage được kh ởi tạo bằng hàm

cvCreateMemStorage.

.....

Nói chung các c ấu trúc được khởi tạo từ hàm cvCreateXXX

thì sẽ được giải phóng bằng hàm cvReleaseXXX

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

71

Ngoài ra còn các hàm sao chép, l ấy thông tin t ừ các ph ần tử trong

bên trong cấu trúc và các toán tử trên các cấu trúc.

2.2.2 Các hàm v ề xử lí ảnh

Các hàm x ử lí ảnh có thể được phân thành các loại sau:

• Các hàm vẽ đơn giản: đây các hàm th ực hiện các thao tác v ẽ

đơn giản trên ảnh như là vẽ elip, hình ch ữ nhật.... hay là vi ết

chữ trên ảnh.

• Các hàm về tìm cạnh và góc trong ảnh: các hàm này sử dụng

các thuật toán thông d ụng trong tìm c ạnh nh ư là các m ặt nạ

Sobel, Laplace, Candy.....

• Các hàm về lấy mẫu, nội suy, biến đổi hình học. • Các phép biến đổi morphological: ngoài các phép bi ến đổi cơ

bản nh ư là Erode, Dilate còn có các phép bi ến đổi phức tạp

hơn bằng các kết hợp 2 phép biến đổi Erode và Dilate như là :

o Open: open(A,B) = dilate(erode(A,B),B)

o Close: close(A,B) = erode(dilate(A,B),B)

o Morphological gradient:

morp_grad(A,B) = dilate(A,B) – erode(A,B)

o Top hat: tophat(A,B) = A – erode(A,B)

o Black hat: blackhat(A,B) = dilate(A,B) – A

• Các bộ lọc nhi ễu: sử dụng các b ộ lọc thông d ụng nh ư là

Median, Gausian....

• Các phép chuy ển đổi các không gian màu: các không gian

màu mà OpenCV hỗ trợ là: Gray, RGB, HSV, YCrCb, XYZ,

Lab, Bayer.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

72

• Các phép bi ến đổi đặc bi ệt nh ư là : phép bi ến đổi Hough,

Fourier...

• Các hàm về Histogram

Nói chung các hàm xử lí ảnh của OpenCV là một phần trong thư

viện IPL.

2.2.3 Các hàm v ề phân tích vận động và theo vết đối tượng

• Các hàm dùng trong phương pháp trừ nền. • Các hàm v ề theo v ết đối tượng dựa theo thu ật toán

MeanShift, Camshift, và Snake.

• Các hàm dùng để tính toán Optical Flow d ựa vào các thu ật

toán phổ biến: Horn & Schunck, Lucas & Kanade, ... • Các hàm ước lượng trạng thái dựa vào bộ lọc Kalman

2.2.4 Các hàm v ề nhận dạng đối tượng

• Các hàm về nhận dạng đối tượng theo phương pháp PCA như

là: tính ma trận tương quan, tính các vector riêng.....

• Các hàm về nhận dạng đối tượng theo mô hình Makốp ẩn.

2.2.5 Các hàm v ề giao diện và thu nhận video

Các hàm này năm trong thư viện Highgui vì thế khi sử dụng các

hàm này b ạn ph ải khai báo : #include “highgui.h” và thi ết lập

các liên k ết tới các file th ư vi ện cần thi ết là highgui.lib và

highgui.dll. Các hàm cơ bản trong thư viện này là: • Các hàm v ề Window: t ạo cửa sổ mới, hủy một cửa sổ, lấy

Handle của một cửa sổ, lấy tên của một cửa sổ....

• Các hàm về xử lí file ảnh: như là đọc một ảnh từ file và l ưu

vào cấu trúc IplImage, hàm hi ện một ảnh lên màn hình, l ưu

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

73

một ảnh xuống một file, hay chuy ển đổi không gian màu c ủa

ảnh....

• Các hàm về nhập xuất video: bao gồm các hàm lấy dữ liệu từ

một file AVI, l ấy dữ li ệu từ camera và l ưu vào c ấu trúc

CvCapture, hàm lấy một Frame từ cấu trúc CvCapture, hàm

lưu dữ liệu video xuống một file AVI..

Ngoài ra trong th ư vi ện highgui còn có các l ớp được vi ết dưới

dạng hướng đối tượng để dễ dàng s ử dụng nh ư là l ớp

CvvImage..

Các hàm được giới thiệu trên là các hàm cơ bản trong OpenCV.

Ngoài ra còn có một số hàm đặc biệt được mở rộng sau mỗi phiên bản cải tiến

của nó. OpenCV còn cung cấp cho chúng ta rất nhiều các ví dụ rất hữu ích. Nếu

các bạn quan tâm để thư viện này và mới bắt đầu làm quen thì có thể tham khảo

and the Microsoft DirectShow technology “ của Robert Laganiere ở địa

bài viết: “A step-by-step guide to the use of the Intel OpenCV library

chỉ http://www.site.uottawa.ca/~laganier/tutorial/opencv+directshow/ . Hoặc là

tham gia vào nhóm OpenCV tại địa chỉ http://groups.yahoo.com/group/opencv .

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

74