1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bắt cử động khuôn mặt qua video và áp lên mô hình 3D

68 643 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 68
Dung lượng 5,3 MB

Nội dung

Với mong muốn cung cấp một giải pháp hiệu quả và tiết kiệm chi phí cho các tổ chức vừa và nhỏ, em xin được thực hiện một phương pháp MoCap khuôn mặt không cần sử dụng cảm biến cũng như c

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NHA TRANG KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

BẮT CỬ ĐỘNG KHUÔN MẶT QUA VIDEO VÀ ÁP LÊN MÔ HÌNH 3D

Giảng viên hướng dẫn: NGUYỄN ĐÌNH CƯỜNGSinh viên thực hiện: NGUYỄN HOÀI NAM

Tháng 6/2013

Trang 2

LỜI MỞ ĐẦU Nền công nghiệp giải trí ngày càng phát triển, đặc biệt trong lĩnh vực điện ảnh và game, đòi hỏi công nghệ đồ họa phải phát triển tương ứng để đáp ứng được nhu cầu ngày càng cao của người sử dụng Ta có thể kiểm chứng sức mạnh của công nghệ

đồ họa hiện tại qua những hình ảnh hết sức chân thực của các bộ phim bom tấn trong những năm gần đây Và một trong những điều tác động đến thị giác người xem là khả năng diễn hoạt cử động uyển chuyển của các mô hình nhân vật 3D trong phim Để làm được những chuyển động như vậy, một công nghệ hỗ trợ cho việc xử

lí chuyển động đã ra đời, đó là công nghệ MoCap (Motion Capture – bắt giữ chuyển động) Qua việc thu nhận sự chuyển động của các điểm đánh dấu hoặc cảm biến được gắn trên người diễn viên, công nghệ MoCap giúp các nhà làm phim tái hiện được những chuyển động thật đến đáng kinh ngạc lên các mô hình nhân vật trong sản phẩm của mình Với lịch sử phát triển lâu đời, công nghệ MoCap đã và đang ngày càng hoàn thiện để phục vụ cho nhiều mục đích khác nhau ngoài phim ảnh ra Tuy nhiên, một trong những trở ngại khi tiếp xúc với công nghệ này là chi phí thực hiện đắt đỏ cho các thiết bị chuyên dụng cũng như xây dựng môi trường thực hiện

kĩ thuật này Đặc biệt, việc MoCap khuôn mặt khá phức tạp vì các điểm đánh dấu khá nhiều Với mong muốn cung cấp một giải pháp hiệu quả và tiết kiệm chi phí cho các tổ chức vừa và nhỏ, em xin được thực hiện một phương pháp MoCap khuôn mặt không cần sử dụng cảm biến cũng như các thiết bị chuyên dụng đắt tiền Với phương pháp này, tất cả những gì ta cần chỉ là một webcam thông dụng là đủ để thực hiện MoCap Ý tưởng cơ bản của phương pháp là bắt các điểm đánh dấu trên khuôn mặt một cách tự động dưới sự kết hợp của hai thuật toán: thuật toán phát hiện khuôn mặt Viola-Jones và thuật toán chiết xuất các điểm đặc trưng ASM (Active Shape Model)

Vì thời gian thực hiện có hạn, cùng những khó khăn phát sinh trong quá trình thực hiện, nên đồ án không tránh khỏi những thiếu sót Kính mong thầy cô góp ý và sửa chữa để đồ án ngày càng được hoàn thiện hơn

Chân thành cảm ơn giáo viên hướng dẫn thầy Nguyễn Đình Cường, các thầy Lê Hoàng Thanh, Trần Minh Văn, các thầy cô khác trong khoa CNTT cũng như nhà trường đã tạo điều kiện và giúp đỡ em trong quá trình thực hiện đồ án

Trang 3

MỤC LỤC

Mở đầu 1

CHƯƠNG 1 TỔNG QUAN VỀ CÔNG NGHỆ MOCAP 8

1.1 Lịch Sử Ra Đời Của Công Nghệ MoCap 8

1.2 Các Kĩ Thuật MoCap 12

1.3 Đánh Giá 15

1.4 Định Hướng Đề Tài 16

Chương 2 CƠ SỞ LÍ THUYẾT CỦA PHƯƠNG PHÁP MOCAP SỬ DỤNG HỆ THỐNG QUANG HỌC KHÔNG ĐÁNH DẤU 18

2.1 Thuật Toán Phát Hiện Khuôn Mặt Viola-Jones 18

2.1.1 Đặc trưng Haar-Like 19

2.1.2 Máy phân lớp Adaboost 20

2.1.2 Hoạt động của thuật toán Viola-Jones 21

2.2 Thuật Toán Chiết Xuất Các Điểm Đặc Trưng ASM 21

2.2.1 Một số điều cần biết 22

2.2.2 Sơ lược về ASM 23

2.1.2 Profile model và shape model 24

Chương 3 KINH NGHIỆM THỰC HIỆN TRONG QUÁ TRÌNH TRIỂN KHAI PHƯƠNG PHÁP 29

3.1 Quá Trình Thực Hiện Viola-Jones 29

3.1.1 Huấn luyện 29

3.1.2 Sử dụng Viola-Jones trong OpenCV 37

3.2 Quá Trình Thực Hiện ASM 39

3.2.1 Vài điều cần chuẩn bị trước khi huấn luyện 39

3.2.2 Huấn luyện 46

3.2.2 Tìm điểm đặc trưng của khuôn mặt trên ảnh 48

3.2.2 Xử lí dữ liệu chuyển động và áp lên mô hình 3D 53

Trang 4

Chương 4 ĐÁNH GIÁ PHƯƠNG PHÁP VÀ PHƯƠNG HƯỚNG PHÁT

TRIỂN TRONG TƯƠNG LAI 55

4.1 Đánh Giá Thuật Toán Viola-Jones 55

4.2 Đánh Giá Thuật Toán ASM 57

4.3 Đánh Giá Chung Về Phương Pháp MoCap Và Phương Hướng Phát

Triển Trong Tương Lai 59

PHỤ LỤC 62

Phụ Lục A: Tìm Các Tham Số Của Phép Align 62

Phụ Lục B: Tạo Dữ Liệu Huấn Luyện Bằng Tay 63

TÀI LIỆU THAM KHẢO 66

Trang 5

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

Bảng 2.1: Thuật toán align shape 23

Bảng 2.2: Thuật toán tạo thành shape kiểm thử 26

Bảng 4.1: Kết quả đánh giá thuật toán Viola-Jones 56

Bảng 4.2: Kết quả đánh giá thuật toán ASM 59

Hình 1.1: Animal locomotion 9

Hình 1.2: Zoopraxiscope 9

Hình 1.3: Chuyển động được bắt bằng máy quay tốc độ cao Stroboscope 9

Hình 1.4: Thiết bị rotoscope cổ điển 10

Hình 1.5: Thực hiện kĩ thuật rotoscoping 10

Hình 1.6: Chiếc mũ bắt cử động và Mike the talking head 11

Hình 1.7: Dozo 11

Hình 1.8: Alive! System 12

Hình 1.9: MoCap trong phim “Avatar” 12

Hình 1.10: Đánh dấu các điểm sáng màu lên cơ thể diễn viên 13

Hình 1.11: Đánh dấu bằng đèn LED 13

Hình 1.12: Các cảm biến từ 14

Hình 1.13: Bắt chuyển động bằng cảm biến âm dùng cho máy chơi game gia đình 14

Hình 1.14: Bộ xương cơ học 15

Hình 1.15: Sợi quang dành cho việc bắt cử động của bàn tay 15

Hình 2.1: Quá trình MoCap khuôn mặt 18

Hình 2.2: Đặc trưng Haar-Like 19

Hình 2.3: 19

Hình 2.4: 19

Hình 2.5: Bộ phân lớp AdaBoost 20

Hình 2.6: Nguyên lí hoạt động của thuật toán Viola-Jones 21

Hình 2.7: Các điểm landmark 22

Hình 2.8: Bên trái: Một shape cơ bản với 3 điểm Giữa: Shape được biểu diễn với mảng Bên phải: Shape được biểu diễn dưới dạng vector 22

Hình 2.9: Align các hình chữ nhật có kích thước khác nhau 22

Hình 2.10: Đánh dấu các điểm landmark trong tập huấn luyện 23

Trang 6

Hình 2.11: Whisker được thể hiện dưới các đường thẳng màu trắng 25

Hình 2.12: Màu vàng là cạnh khuôn mặt Màu trắng là whisker 25

Hình 2.13: Bên trái: shape kiểm thử Bên phải: shape được sinh ra từ shape model dựa trên shape kiểm thử cho ra kết quả tốt hơn 28

Hình 3.1: 29

Hình 3.2: Positive Image 30

Hình 3.3: Negative Image 30

Hình 3.4: Thông tin về vùng ảnh được bắt 31

Hình 3.5: File info.txt 31

Hình 3.6: Quá trình huấn luyện ảnh 32

Hình 3.7: Các đặc trưng Haar-Like được sử dụng 34

Hình 3.8: Result window 39

Hình 3.9: AR landmark 40

Hình 3.10: XM2VTS landmark 41

Hình 3.11: BioID landmark 41

Hình 3.12: Tạo file mô tả 43

Hình 3.13: File mô tả 43

Hình 3.14: Cạnh khuôn mặt được thể hiện dưới đường thẳng màu đen.Whisker là đường thẳng màu vàng.Các điểm landmark là các điểm màu đỏ 44

Hình 3.15: Bên trái: cách vẽ whisker đúng Bên phải: cách vẽ whisker sai 44

Hình 3.16: H1 Vẽ đoạn thẳng vuông góc với cạnh kề nó H2 Vẽ đoạn thằng đi qua landmark và trọng tâm của shape H3 Vẽ đoạn thẳng đi qua landmark và trung điểm của 2 landmark kề 2 bên 45

Hình 3.17: Đường thẳng vẽ bằng phương trình tổng quát trên màn hình 46

Hình 3.18: Đường thẳng vẽ bằng thuật toán trong đồ họa 46

Hình 3.19: Ma trận hiệp phương sai của tất cả các điểm landmark 48

Hình 3.20: Shape khởi tạo quá tệ có thể dẫn đến kết quả lỗi 48

Hình 3.21: Khuôn mặt tổng thể 49

Hình 3.22: Xác định hình chữ nhật bao quanh shape trung bình 49

Hình 3.23: Align hình chữ nhật bao quanh shape trung bình lên khuôn mặt tổng thể 50

Hình 3.24: Màu đỏ là khuôn mặt khởi tạo Màu xanh dương là hình chữ nhật bao quanh khuôn mặt trung bình Màu vàng là khuôn mặt trung bình 50

Trang 7

Hình 3.27: Xử lí file c3d với Autodesk Motion Builder 54

Hình 4.1: 56

Hình 4.2:Kết quả bị sai lệch với khuôn mặt đeo kính và nghiêng 57

Hình 4.3: ‘s’ là khoảng cách giữa 2 trọng tâm ‘d’ là khoảng cách giữa các điểm tương ứng 58

Hình 4.4:Thuật toán ASM không ổn định với nhiều kiểu khuôn mặt khác nhau 59

Hình 4.5: Triển khai kĩ thuật MoCap không đánh dấu 61

Hình B.1: 63

Hình B.2: 63

Hình B.3: 64

Hình B.4: 64

Hình B.5: 64

Hình B.6: 55

Trang 9

CHƯƠNG 1:

TỔNG QUAN VỀ CÔNG NGHỆ MOCAP

MoCap (Motion Capture – bắt giữ chuyển động) là kĩ thuật thu lại chuyển động thật của đối tượng được sử dụng trong các lĩnh vực như điện ảnh, quân đội, giải trí, thể thao, y tế, robot và thị giác máy tính (computer vision) Phần này xin được phép giới thiệu một cách tổng quát về công nghệ MoCap trong lĩnh vực được sử dụng nhiều nhất là điện ảnh

MoCap là kĩ thuật bắt chuyển động của diễn viên, sau đó biểu diễn hoạt họa lại chuyển động đó lên diễn viên số được dựng bằng máy tính là các mô hình 2D hoặc 3D Ý tưởng cơ bản của kĩ thuật MoCap là thu lại chuyển động của một hay nhiều diễn viên bằng cách lấy mẫu chuyển động nhiều lần trong một giây Các kĩ thuật sơ khai sử dụng hình ảnh từ nhiều webcam và chuyển thành dữ liệu 3D Kĩ thuật MoCap chỉ đơn thuần bắt lại chuyển động của đối tượng mà không quan tâm tới bề ngoài của đối tượng đó [21][23]

1.1 Lịch Sử Ra Đời Của Công Nghệ MoCap:

Ta có thể thấy rằng, MoCap là một trong những kĩ thuật được ứng dụng trong những bộ phim và game bom tấn hiện nay cùng các lĩnh vực liên quan nhằm mang đến cho con người những trải nghiệm thị giác chân thực nhất Và thật khó có thể tin rằng, kĩ thuật này đã được manh nha từ rất sớm, trước khi cả máy tính điện tử ra đời Cùng điểm qua những mốc thời gian nổi bật trong quá trình hình thành và phát triển của MoCap:

- Năm 1830, khi điện ảnh thế giới còn trong sự thống trị của những thước phim trắng đen, Eadweard Muybridge đã cho ra đời những đoạn phim MoCap đầu tiên Ông sử dụng các máy quay cơ cổ điển để thu lại những chuyển động của các loại động vật (animal locomotion) và ghi chúng trong một loại đĩa đặc biêt để phát lại với thiết bị gọi là Zoopraxiscope Một vài năm sau đó, những thước phim MoCap được trình chiếu bởi Zoopraxiscope ra đời Các kĩ thuật tương tự được phát triển sau này được ứng dụng trong bộ phim hoạt hình nổi tiếng “nàng bạch tuyết và bảy chú lùn” của Walt Disney Trong bộ phim, kĩ thuật này được sử dụng để thể hiện bước chân của nàng Bạch Tuyết [22][24][25]

Trang 10

Hình 1.1 Animal locomotion [24]

Hình 1.2 Zoopraxiscope [25]

- Năm 1903, Harold Edgerton sử dụng máy quay tốc độ cao Stroboscope để bắt chuyển động của đối tượng Nhờ sử dụng Stroboscope mà những thước phim của ông cho chất lượng tốt hơn nhiều [21][22]

Hình 1.3 Chuyển động được bắt bằng máy quay tốc độ cao Stroboscope [23]

Trang 11

- Năm 1915, Max Fleischer đề xuất một kĩ thuật MoCap mới được sử dụng trong

diễn hoạt 2D với tên gọi “rotoscoping” Trong kĩ thuật này, ông tiến hành thu lại

đoạn phim chuyển động của diễn viên Sau đó, ông đánh dấu các điểm bao quanh rìa của đối tượng cần MoCap trong mỗi frame của video Tiếp theo, ông ánh xạ các điểm này lên đối tượng hoạt hình trong kịch bản cần thể hiện chuyển động Nói cách khác, ông vẽ các nhân vật hoạt hình theo các điểm mốc đã đánh dấu trong các frame của đoạn phim đã quay từ trước Ông thực hiện kĩ thuật này trên thiết bị cùng

tên “rotoscope” Bộ phim đầu tiên sử dụng kĩ thuật này là “Out of Inkwell” do ông

làm họa sĩ Một bộ phim nổi tiếng khác cũng được ứng dụng kĩ thuật này là “Nàng bạch tuyết và bảy chú lùn” của Walt Disney năm 1937

Đây là một kĩ thuật khá cổ điển nhưng rất mạnh vẫn còn được sử dụng cho đến ngày nay và được tích hợp trong bộ công cụ làm phim của Adobe Kĩ thuật này khắc phục được điểm yếu của MoCap thời kì đầu là chỉ thể hiện được chuyển động của đối tượng mẫu mà không tùy biến sang các nhân vật khác được Ngày nay, với

sự trợ giúp của máy tính loại bỏ được thiết bị rotoscope cồng kềnh, cùng các thuật

toán dò vết, việc triển khai kĩ thuật này được thực hiện đơn giản hơn bao giờ hết [21][22][26]

Hình 1.4 Thiết bị rotoscope cổ điển [26]

Hình 1.5 Thực hiện kĩ thuật rotoscoping

- Năm 1988, khi máy tính điện tử ra đời cùng với sự xuất hiện của đồ họa 3D, deGraf và Wahrman sử dụng kĩ thuật MoCap trong một ứng dụng với tên gọi là

“Mike the talking head” Bằng cách sử dụng một chiếc mũ đặc biệt bắt từng cử

động nhỏ của khuôn mặt, ứng dụng này có chức năng áp cử động lên một khuôn

Trang 12

mặt 3D và làm nó “nói chuyện” Đây thực sự là một bước tiến lúc bấy giờ Ứng dụng này giúp cho các nhà làm phim hoạt hình thể hiện được những cử động chân thực nhất của khuôn mặt nhân vật bằng cách thu trực tiếp thay vì thể hiện bằng tay như lúc trước [21][22]

Hình 1.6 Chiếc mũ bắt cử động và Mike the talking head [22]

- Năm 1989, Kleiser và Walczak sản xuất một đoạn phim hoạt hình 3D ngắn với

tên gọi “Dozo” Đoạn phim mô tả cảnh một ca sĩ ảo đang biểu diễn trước micro Ở

trong đoạn phim này, 2 tác giả đã sử dụng kĩ thuật MoCap sử dụng hệ thống quang học (optically system motion capture) với các camera thu chuyển động thật của diễn viên Dựa trên sự ghi nhận chuyển động của các đoạn băng dính phản quang trên người diễn viên Hệ thống sẽ tự động biểu diễn lại chuyển động ấy lên mô hình 3D Đây là một phương pháp mới thay cho kĩ thuật dùng khung xương kim loại cồng kềnh để bắt chuyển động như trước Tuy nhiên, kĩ thuật này vẫn còn nhiều vướng mắc trong việc bắt các đoạn băng dính phản quang cũng như tốc độ xử lí còn chậm [22]

Hình 1.7 Nhân vật trong đoạn phim Dozo [22]

- Năm 1992, deGraf tiếp nối thành công của “Mike the talking head” bằng việc

phát triển một hệ thống dùng cho việc MoCap toàn bộ cơ thể người với tên gọi

Alive! Hệ thống gồm các bộ khung cơ khí được chế tạo dành cho việc MoCap đầu,

hông, bàn chân và bàn tay với độ chi tiết cao Hệ thống được cải tiến so với người tiền nhiệm để bắt chuyển động với độ chính xác cao nhất trên toàn bộ cơ thể người [22]

Trang 13

Hình 1.8 Hệ thống bắt giữ chuyển động Alive! system

Những năm sau đó, dưới sự phát triển vượt bậc của công nghệ đồ họa máy tính, MoCap đã được ứng dụng một cách rộng rãi trong các bộ phim bom tấn như “Lord

Of Ring”, “Avatar”, “Transformer”…

Hình 1.9 MoCap trong phim “Avatar”

1.2 Các Kĩ Thuật MoCap:

Ta có thể thấy, MoCap là một kĩ thuật đồ họa có bề dày lịch sử lâu đời với rất nhiều phương pháp được cải tiến theo thời gian Dựa vào điểm chung về thiết bị cũng như quy trình thực hiện, ta có thể phân loại các phương pháp MoCap được dùng phổ biến hiện nay như sau:

- Optical Passive (hệ thống quang học bị động): Là hệ thống MoCap bắt giữ

chuyển động bằng cách thu dữ liệu từ các điểm đánh dấu trên đối tượng Để thực hiện phương pháp này cần một bộ áo đặc biệt được gắn sẵn các điểm đánh dấu và

hệ thống các camera độ nét cao Bộ áo được thiết kế chỉ với một màu (thường là màu đen) với các điểm đánh dấu màu sáng nổi bật (thường là màu trắng) Tại đây, camera sẽ được bố trí ở nhiều góc độ khác nhau để thu lại cử động của đối tượng Máy tính sẽ xử lí phần nền, da người ,chỉ lấy các điểm đánh dấu màu sáng và chuyển dữ liệu 2D sang 3D Phương pháp này cho chuyển động trên mô hình 3D với chất lượng cao Các điểm đánh dấu rất linh hoạt, có thể thay đổi tùy vào đối tượng và mục đích cụ thể Tuy nhiên, để phương pháp này đạt được hiệu quả cao

Trang 14

nhất, cần thực hiện nó trong nhà với một môi trường ánh sáng ít biến đổi Với những cử động phức tạp như cử động khuôn mặt, số lượng điểm đánh dấu phải tăng lên tương ứng và việc gắn chúng cũng là một vấn đề [22]

Hình 1.10 Đánh dấu các điểm sáng màu lên cơ thể diễn viên [22]

- Optical Active (hệ thống quang học chủ động): Tương tự như kĩ thuật optical

passive nhưng thay các điểm đánh dấu bằng các đèn LED có độ sáng như nhau Bằng việc đo cường độ sáng của các đèn LED, việc tính toán vị trí của các điểm đánh dấu trở nên dễ dàng hơn nhiều Phương pháp này cho ra chất lượng chuyển động tốt hơn hẳn so với kĩ thuật trên và thường dùng để bắt cử động thời gian thực [22]

Hình 1.11 Đánh dấu bằng đèn LED[22]

- Electromagetic (hệ thống cảm biến từ): Phương pháp này thay các điểm đánh

dấu quang học bằng các cảm biến từ Các cảm biến này sẽ thu thập tần số của từ trường phát ra từ một nguồn phát Bằng cách đo thời gian phản hồi cũng như cường

độ từ trường đến các cảm biến, ta có thể tính toán được vị trí của các điểm đánh dấu

và thể hiện nó lên không gian 3D Phương pháp này cũng cho độ nhạy khá cao và được dùng trong các ứng dụng đòi hỏi thời gian thực Nhược điểm của phương pháp

Trang 15

là bộ áo gắn cảm biến khá cồng kềnh và chỉ thực hiện trong môi trường ít nhiễu từ (ít kim loại) Thậm chí cả cốt sắt trong tường bê tông cũng có thể ảnh hưởng đến kết quả của phương pháp này [22]

Hình 1.12 Các cảm biến từ [22]

- Acoustic (hệ thống cảm biến âm thanh): Phương pháp này sử dụng các cảm biến

âm thanh để đánh dấu lên cơ thể người Tương tự như dùng cảm biến từ, phương pháp này đo thời gian phản hồi, cũng như cường độ âm từ một nguồn phát lên các cảm biến Sử dụng cảm biến âm thanh nên nó loại bỏ được sự ảnh hưởng của môi trường nhiễu từ so với phương pháp từ Đây là một phương pháp mới đang được nghiên cứu để ứng dụng vào các máy chơi game gia đình [22]

Hình 1.13 Bắt chuyển động bằng cảm biến âm dùng cho máy chơi game gia đình [22]

Trang 16

- Electromechanical (hệ thống cảm biến cơ học): Hệ thống thu chuyển động của

đối tượng dựa trên một bộ khung xương cơ học Đối tượng sẽ mặc bộ khung cơ học này lên người và dữ liệu chuyển động sẽ được thu trực tiếp dựa trên chuyển động của bộ khung Kĩ thuật này có ưu điểm là độ chính xác cao, không phụ thuộc vào môi trường hoạt động, giá thành khá rẻ Tuy nhiên, cử động của đối tượng bị hạn chế bởi bộ khung cơ học và không linh hoạt trong việc thay đổi các điểm cử động [22]

Hình 1.14 Bộ xương cơ học [22]

- Optical Febric (hệ thống cảm biến sợi quang): Tương tự như phương pháp

dùng bộ xương cơ học, phương pháp này thay bộ xương cơ học bằng các sợi quang chạy khắp cơ thể Phương pháp này loại trừ được khiếm khuyết khi cử động của bộ xương cơ học và không bị ảnh hưởng bởi môi trường bên ngoài [22]

Hình 1.15 Sợi quang dành cho việc bắt cử động của bàn tay [22]

Trang 17

o Không làm kéo dài thời gian làm việc hơn so với các công nghệ truyền thống Thậm chí, việc biểu diễn chuyển động có thể được kiểm thử với nhiều phong cách ứng với các diễn viên khác nhau Việc này tiết kiệm chi phí hơn

so với chỉ làm việc với một diễn viên nổi tiếng

o Thể hiện được chuyển động các chuyển động phức tạp với độ chính xác cao

o Các chương trình xử lí chuyển được làm bởi các hãng phát triển thứ 3 hoặc miễn phí giúp giảm chi phí rất nhiều

o Khi có vấn đề xuất hiện, việc thực hiện lại cảnh quay sẽ đơn giản hơn so với việc xử lí dữ liệu lỗi

o Các cử động không tuân theo định luật vật lí không thể bắt được Điển hình

là các động tác bay, nhảy xa,… trong các bộ phim điện ảnh vẫn cần phải có dụng cụ hỗ trợ

o Các kĩ thuật biểu diễn hoạt họa truyền thống như “squash and stretch” (biến dạng vật thể theo chuyển động) không thể được thực hiện bằng MoCap và phải được thêm vào sau khi quá trình MoCap được thực hiện

o Khi thực hiện MoCap với những nhân vật máy tính đặc biệt như: khổng lồ, tí hon, quái vật,… diễn viên cần hết sức lưu ý trong khi thể hiện các cử động vật lí Ví dụ như một con quái vật lưng gù không thể đứng thẳng được 1.4 Định Hướng Đề Tài:

Qua phần tổng quan trên, ta có thể thấy, MoCap thực sự là một công nghệ hấp dẫn đối với bất kì nhóm phát triển nào Tuy nhiên, để thực hiện MoCap cần cung cấp những thiết bị phần cứng hết sức chuyên dụng Và việc đánh dấu các điểm mốc cũng là một thách thức với những người mới lần đầu thực hiện MoCap Với những

cử động phức tạp như khuôn mặt, số điểm đánh dấu có thể lên tới vài trăm điểm Điều này thực sự gây khó khăn cho những công ty nhỏ hoặc các nhóm phát triển nhỏ lẻ Với mong muốn công nghệ MoCap được phổ biến rộng rãi kẻ cả đối với các

cá nhân có ý định xây dựng sản phẩm ứng dụng công nghệ này, em xin được đề xuất nghiên cứu và thực hiện một phương pháp MoCap không cần sử dụng điểm

đánh dấu vật lí và chỉ cần một webcam thông dụng, đó là phương pháp “Optical Maskless” (hệ thống quang học không cần đánh dấu) Phương pháp được thực hiện

để thu lại cử động khuôn mặt và áp chuyển động đó lên mô hình 3D

Ý tưởng cơ bản của phương pháp này là sử dụng webcam thu lại khuôn mặt người Sau đó, sử dụng một thuật toán để chiết xuất ra các điểm mốc đánh dấu của khuôn mặt Thu lại chuyển động của khuôn mặt đó rồi áp nó lên một mô hình 3D đã được

Trang 18

dựng sẵn Như vậy, phương pháp này sẽ bắt các điểm đánh dấu một cách tự động chỉ với một webcam đơn giản Việc áp chuyển động lên mô hình có thể được thực hiện khá dễ dàng nhờ các phần mềm xử lí chuyển động chuyện nghiệp

Để thực hiện được điều này, phương pháp sử dụng phối hợp 2 thuật toán chính: một thuật toán cho việc bắt khuôn mặt và một cho chiết xuất các điểm đánh dấu Với việc bắt khuôn mặt, ta sử dụng thuật toán Viola – Jones kkhá phổ biến và được cài đặt sẵn trong OpenCV Với việc chiết xuất các điểm đánh dấu, ta sử dụng thuật toán ASM (active shape model) Dữ liệu chuyển động được đóng gói thành file *.c3d và

xử lí trên phần mềm “Autodesk Motion Builder”

Trang 19

CHƯƠNG 2:

CƠ SỞ LÍ THUYẾT CỦA PHƯƠNG PHÁP

MOCAP SỬ DỤNG HỆ THỐNG QUANG HỌC KHÔNG ĐÁNH DẤU

Cách thức bắt giữ chuyển động được thực hiện dựa trên phương pháp của Abraham Ranardo Sumarsono và Iping Supriana Suwardi [18]

Để bắt giữ chuyển động khuôn mặt, hai tác giả thực hiện theo mô hình sau:

Hình 2.1 Quá trình MoCap khuôn mặt

Như ta thấy ở trên, để bắt giữ chuyển động của khuôn mặt, ta thu khuôn mặt bằng một máy quay thông dụng (ở đây ta dùng webcam) Với mỗi frame ảnh của video,

ta dùng một thuật toán phát hiện khuôn mặt để xác định vùng ảnh cần xử lí cho công đoạn kế tiếp Sau khi xác định được vùng ảnh chứa khuôn mặt, ta dùng một thuật toán để chiết xuất ra các điểm đặc trưng trên khuôn mặt Các điểm đặc trưng này được thay thế cho việc gắn các điểm đánh dấu vật lí trực tiếp lên khuôn mặt như phần tổng quan đã trình bày Số lượng các điểm đặc trưng cũng như vị trí đánh dấu phụ thuộc vào người thực hiện và được thể hiện thông qua quá trình huấn luyện Sau đó, ta ghi lại dữ liệu chuyển động qua các frame của các điểm đặc trưng này, kết xuất thành một file dữ liệu Với file dữ liệu chuyển động ghi được, ta sử dụng một phần mềm xử lí chuyển động để áp nó lên một mô hình 3D Cuối cùng, ta được một mô hình khuôn mặt 3D với chuyển động giống như chuyển động khuôn mặt trên video

Vì công việc bắt chuyển động được thực hiện online thông qua webcam, nên ta sử dụng thuật toán bắt khuôn mặt Viola-Jones và thuật toán chiết xuất các điểm đặc trưng ASM Hai thuật toán được chọn vì những ưu thế trong tốc độ cũng như độ chính xác tương đối cao phù hợp với xử lí thời gian thực

2.1 Thuật Toán Phát Hiện Khuôn Mặt Viola-Jones:

Trang 20

Đây là phương pháp phát hiện khuôn mặt của Paul Viola và Michael Jones đề xuất vào năm 2001 Phương pháp sử dụng đặc trưng Haar-Like kết hợp với máy phân lớp Ada Boost giúp tăng tốc độ của chương trình [13]

f(x) = Tổngvùng đen(các mức xám của pixel) - Tổngvùng trắng(các mức xám của pixel) (2.1)

Để tăng tốc độ tính toán và xử lí, Viola-Jones đề xuất một khái niệm mới là Intergral Image (tích phân ảnh) Intergral Image là một mảng hai chiều có kích thước bằng kích thước của ảnh đang xét Khi đó, tổng mức xám của 1 vùng được tính như sau:

Trang 21

Để sử dụng đặc trưng HaarLike cho việc phát hiện khuôn mặt, ta phải xây dựng một

bộ huấn luyện cho mỗi đặc trưng này Cụ thể, đặt mỗi đặc trưng HaarLike lên vùng mặt trên hàng nghìn bức ảnh huấn luyện Tính toán các giá trị đặc trưng Haarlike, ta được một bộ huấn luyện dùng để phát hiện khuôn mặt Khi tiến hành detect khuôn mặt với 1 ảnh đầu vào, ta quét ảnh với một vùng có kích thước cố định Tính giá trị đặc trưng HaarLike của vùng này và so khớp với bộ huấn luyện theo một ngưỡng sai lệch, ta sẽ tìm ra vùng nào có chứa khuôn mặt người [1][13][14][17]

2.1.2 Máy phân lớp AdaBoost:

Adaboost là một phương pháp máy học hoạt động trên nguyên tắc kết hợp 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 weak classifiers đượ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 weak classifier 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 weak classifier vừa xây dựng Bằng cách này weak classifer sau có thể tập trung vào các mẫu mà các weak classifiers trước nó làm chưa tốt Sau cùng, các weak classifers sẽ được kết hợp tùy theo mức độ tốt của chúng để tạo nên strong classifier

 fk: giá trị của đặc trưng Haar-like

 pk: hệ số quyết định chiều của phương trình

Trang 22

2.1.3 Hoạt động của thuật toán Viola-Jones:

Viola Jones hoạt động theo sơ đồ sau:

Hình 2.6 Nguyên lí hoạt động của thuật toán Viola-Jones [17]

Như trong hình trên, từ ảnh gốc ban đầu, ta sẽ được tính Integral Image, là mảng 2 chiều với phần tử (x, y) sẽ được tính bằng tổng của các phần tử (x', y') với x' < x và y' < 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 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 khuôn mặt người 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ả Bộ quyết định sẽ tổng hợp kết quả là khuôn mặt người nếu kết quả của các bộ phân loại yếu trả về là khuôn mặt người

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 (số lượng ảnh khuôn mặt trong tập huấn luyện có thể rất lớn) Trong quá trình xác định khuôn mặt người, 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 cho

ra kết quả là khuôn mặt người 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 [17]

2.2 Thuật Toán Chiết Xuất Các Điểm Đặc Trưng ASM:

Thuật toán ASM (Active Shape Model) là thuật toán chiết xuất các điểm đặc trưng của một đối tượng cụ thể, do Cootes và Taylor đề xuất vào năm 2004 [19][20] Phục vụ cho mục đích MoCap khuôn mặt, thuật toán được sử dụng để tự động chiết xuất các điểm đặc trưng của khuôn mặt thay cho các điểm đánh dấu vật lí của phương pháp MoCap truyền thống Các điểm đặc trưng được quyết định và đánh dấu bởi người phát triển

Trang 23

Phục vụ cho mục đích của bài toán, một shape được biểu diễn dưới dạng một vector

kích thước 2n × 1 với n là số điểm của shape, nửa đầu chứa các giá trị x và nửa sau

chứa các giá trị giá trị y Các cạnh giữa các điểm không cần thiết phải được lưu trữ

vì bài toán chỉ cần quan tâm đến các điểm của shape (shape point)

Đỉnh của một shape (shape point) cũng là điểm đánh dấu (landmark) hay các điểm đặc trưng (feature point) Shape dùng trong bài được hiểu là hình dạng của khuôn mặt (face shape)

b Align shape:

Align shapes (phép dóng shape) là một phép biến hình có tác dụng thu hẹp khoảng cách giữa các shape đến mức nhỏ nhất Hay nói cách khác, phép align shape có nhiệm vụ xếp chồng các shape có số đỉnh bằng nhau lên nhau Đồng thời, tỉ lệ và xoay các shape sao cho chúng khớp nhau nhất

Hình 2.9 Align các hình chữ nhật có kích thước khác nhau [19]

Trang 24

Theo định nghĩa trên, ta có thể thấy, phép align shape là sự kết hợp giữa 3 phép biến hình: tịnh tiến, xoay, tỉ lệ Tuy nhiên, không phải lúc nào ta cũng thực hiện đồng thời cả 3 phép này Phép align shape còn được gọi là phép biến đổi tương tự (similarity transform)

Cụ thể, một phép biến đổi tương tự T lên một điểm với tọa độ (x, y), góc quay θ, tỉ

lệ s và tịnh tiến một khoảng x translate , y translate có thể được biểu diễn bằng công thức:

(2.3)

Bảng 2.1 Thuật toán align shape

Cách thức tìm các tham số cho phép align được trình bày ở phần phụ lục A

2.2.2 Sơ lược về ASM:

Phần này cung cấp một cái nhìn tổng quan nhất về cấu trúc hoạt động của thuật toán

ASM và giới thiệu 2 mô hình tạo nên thuật toán: shape model, profile model

ASM làm việc với tập huấn luyện với các điểm landmark đã được đánh dấu trước Việc đánh dấu được thực hiện bằng tay trước khi quá trình huấn luyện bắt đầu

Hình 2.10 Đánh dấu các điểm landmark trong tập huấn luyện [19]

Input: Tập các shape chưa align

1 Chọn một shape làm chuẩn (thường lấy shape đầu tiên)

2 Repeat:

a. Áp dụng phép biến đổi tương đương T lên các

shape chưa align còn lại so

3 Until: Duyệt hết các shape trong tập shape chưa align Output: Tập các shape đã align

Trang 25

Sau khi kết thúc quá trình huấn luyện, ta dùng ASM để tìm kiếm các điểm đặc trưng của khuôn mặt trên ảnh đầu vào Ý tưởng cơ bản của thuật toán là xác định các điểm đặc trưng của khuôn mặt bằng cách mô tả vùng ảnh xung quanh nó và chỉ ra mối quan hệ của nó với các điểm khác Để làm được điều này, ASM cung cấp 2 mô hình:

- Profile model: Có nhiệm vụ mô tả vùng ảnh xung quanh mỗi điểm landmark

Nói cách khác, mô hình này chỉ ra rằng, vùng ảnh sẽ “trông như thế nào?” tương ứng với mỗi điểm landmark Trong quá trình huấn luyện, ta tạo thành các profile training cho mỗi điểm landmark bằng cách lấy mẫu ảnh xung quanh mỗi điểm landmark trong tập ảnh huấn luyện Trong quá trình tìm kiếm, ta lấy mẫu vùng ảnh của các điểm xung quanh landmark khởi tạo Điểm được chọn là điểm khớp với các profile training nhất Tập hợp các điểm tìm được dựa trên landmark khởi tạo, ta có tập các điểm kiểm thử (suggested point) tạo thành shape kiểm thử (suggested shape) [19]

- Shape model: Có nhiệm vụ định nghĩa mối quan hệ của mỗi điểm landmark so

với các điểm còn lại Trong quá trình tìm kiếm, shape kiểm thử tìm ra được có thể không đúng với hình dạng khuôn mặt, shape model sẽ giúp bóp méo lại shape kiểm thử sao cho đúng với hình dạng khuôn mặt nhất Lấy ví dụ, nếu shape kiểm thử là một khuôn mặt có một cái mũi rất dài thì shape model sẽ giúp co ngắn cái mũi đó lại [19]

Chi tiết về profile model và shape model sẽ được trình bày ở phần sau

2.2.3 Profile model và shape model:

a Profile model:

Profile model có nhiệm vụ trích xuất ra khuôn mặt trung bình từ tập huấn luyện và sinh ra shape kiểm thử bằng cách di chuyển các điểm landmark của shape khởi tạo được tạo ra từ khuôn mặt trung bình đến vị trí thích hợp nhất Ta bắt đầu việc tìm kiếm với khuôn mặt khởi tạo, align và định vị nó với khuôn mặt tổng thể lấy từ chương trình phát hiện khuôn mặt

Trong nội dung đồ án này, ta sẽ làm việc với profile 1 chiều (1D profile) Có thể tham khảo về profile 2 chiều (2D profile) tại phần 5.5 của [19]

 Tạo profile:

1D Profile của một điểm landmark được tổ chức thành một vector kích thước n × 1

Để tạo thành một profile vector g tại một điểm landmark, ta lấy mẫu cường độ điểm ảnh dọc theo một vector một chiều đi qua điểm landmark gọi là whisker Whisker là một vector một chiều đi qua điểm landmark và vuông góc với cạnh khuôn mặt tại điểm đó [19]

Trang 26

Hình 2.11 Whisker được thể hiện dưới các đường thẳng màu trắng

Đầu tiên, ta tiến hành xám hóa ảnh, việc tạo thành profile được thực hiện qua các bước sau [19]:

- Đặt giá trị cho các thành phần của vector g bằng giá trị mức xám dọc theo whisker

- Lấy giá trị cường độ mức xám qua các pixel ảnh trên whisker (màu trắng)

Hình 2.12 Màu vàng là cạnh khuôn mặt

Màu trắng là whisker

- Chuyển các giá trị mức xám của g thành cường độ gradient bằng cách thế mỗi

giá trị tại vị trí i của g bằng trị trung bình giữa nó và i + 1

Trang 27

 Xây dựng profile model trong quá trình huấn luyện [19]:

Trong quá trình huấn luyện, với mỗi ảnh trong tập huấn luyện, ta tiến hành xây dựng các profile cho mỗi điểm landmark trong ảnh Sau đó, ta tính được profile trung bình và ma trận hiệp phương sai cho mỗi điểm landmark

Ví dụ, nếu chiều dài của profile g là 7 thì sẽ có 7 phần tử và sẽ là một ma trận 7x7

Nếu bộ huấn luyện có 20 điểm landmark thì ta sẽ có 20 profile trung bình và 20

ma trận hiệp phương sai cho toàn bộ tập huấn luyện

Trong đó:

- i = 1 n

- n: số lượng điểm landmark

- m: số lượng ảnh huấn luyện

 Tạo thành shape kiểm thử [19]:

Bắt đầu với khuôn mặt khởi tạo (start shape) lấy được từ phương pháp phát hiện khuôn mặt, tại mỗi điểm landmark của khuôn mặt khởi tạo, ta tiến hành lấy mẫu profile của các điểm dọc theo whisker đi qua điểm đó và chọn ra điểm có profile tốt nhất

Việc đánh giá profile được tính dựa trên khoảng cách giữa nó với profile trung bình tương ứng với điểm đó từ bộ huấn luyện Profile nào có khoảng cách ngắn nhất so với profile trung bình thì điểm tương ứng với profile đó được chọn làm điểm kiểm thử (suggested point) Tập hợp các điểm kiểm thử có được sau khi tìm kiếm với các điểm landmark còn lại, ta được shape kiểm thử

Khoảng cách được sử dụng để đánh giá là khoảng cách Mahalanobis được tính như sau:

Bảng 2.2 Thuật toán tạo thành shape kiểm thử

Input: Ảnh đầu vào

1 Phát sinh shape khởi tạo bằng cách định vị khuôn mặt qua phương pháp

phát hiện khuôn mặt

2 Repeat:

3 For: với mỗi điểm landmark của shape khởi tạo

a For: Với mỗi điểm ảnh nằm trên whisker đi qua điểm landmark

i Tạo profile của điểm đó bằng cách lấy mẫu vùng ảnh xung quanh nó

ii Đánh giá profile mới tạo so với tập huấn luyện

b Chọn ra profile tốt nhất

4 Chọn điểm landmark tương ứng với profile tốt nhất làm điểm kiểm thử

5 Until: Duyệt hết các điểm landmark trong shape khởi tạo

Trang 28

Chi tiết về việc tìm shape khởi tạo sẽ được trình bày ở phần sau

b Shape model:

Nhiệm vụ của shape model là biến shape kiểm thử được sinh ra từ profile model thành khuôn mặt (face shape) chính thức Trước đó, ta cần phải align tất cả các shape trong tập huấn luyện.Việc align là cần thiết vì ảnh huấn luyện rất đa dạng gây khó khăn cho việc tính shape trung bình Sau khi align xong, ta tính được shape trung bình từ tập shape đã align Khi đó, một shape bất kì có thể được định nghĩa bằng công thức sau [19][20]:

Trong đó:

 là shape được sinh ra

 ̅ là shape trung bình được tính từ các shape huấn luyện đã được align:

Lưu ý rằng, ta không sử dụng hết các trị riêng tìm được Sau khi sắp xếp giảm dần,

ta sẽ thấy có một số trị riêng cao hơn hẳn các giá trị còn lại Ta chỉ sử dụng các vector riêng tính từ các trị riêng này Để lựa chọn được các trị riêng như vậy, ta thỏa mãn bất đẳng thức sau:

(2.12) Trong đó:

 λi: Trị riêng thứ i

 f v: tỉ lệ thay đổi mong muốn (thường chọn là 0.98)

Với công thức (2.9), ta có thể suy ra được rất nhiều shape khác nhau bằng cách thay

đổi giá trị tham số vector b Vậy, để có được khuôn mặt chính thức từ shape kiểm thử, ta tiến hành đi tìm b

Gọi x là shape kiểm thử, Ta tìm b sao cho khoảng cách sau là nhỏ nhất

(2.13)

Trang 29

Công thức trên có nghĩa rằng, shape được sinh ra từ b phải có khoảng cách so với shape kiểm thử là nhỏ nhất Phép align T là cần thiết vì x có thể ở bất cứ đâu trong

ảnh và ta phải tiến hành đưa shape mới tìm được về đúng vị trí của khuôn mặt trên ảnh

Để tìm b, ta làm các bước sau [20]:

- Gọi Y là shape kiểm thử

- Khởi tạo vector tham số b = 0

- Phát sinh shape theo công thức = ̅ + Φ với b vừa khởi tạo

- Tìm các tham số của phép align (s, Φ, t x , t y ) T để x align vào shape kiểm thử

Tuy nhiên, ta không thực hiện phép align này

- Thế các tham số vừa tìm được vào phép align ngược lên shape kiểm thử Y:

(2.14) Phép align ngược lên một shape là phép biến hình sao cho:

Ta chỉ cần đảo các tham số và thế vào công thức phép biển đổi tương tự để thực

hiện phép align này (1/s, -Φ, -t x , -t y)

- Thực hiện phép tỉ lệ:

=

( ̅) (2.15) Lưu ý, phép nhân ( ̅) là tích vô hướng giữa 2 vector

tử trong b được đặt trong ngưỡng từ [−3 , 3 ] [19][20]

Hình 2.13 Bên trái: shape kiểm thử Bên phải: shape được sinh ra từ shape model dựa trên shape kiểm thử cho ra kết quả tốt hơn

Trang 30

CHƯƠNG 3:

KINH NGHIỆM THỰC HIỆN TRONG QUÁ

TRÌNH TRIỂN KHAI PHƯƠNG PHÁP

Chương này sẽ trình bày cách thức triển khai 2 thuật toán Đồng thời truyền đạt lại những kinh nghiệm và khó khăn gặp phải trong quá trình cài đặt và thực hiện

phương pháp MoCap này

3.1 Quá Trình Thực Hiện Viola-Jones:

3.1.1 Huấn luyện:

a Tạo bộ huấn luyện:

Như đã trình bày ở trên, ta sẽ làm việc với các đặc trưng Haar-Like của tập ảnh huấn luyện Để lấy các đặc trưng Haar-Like cũng như kết xuất file chứa thông tin của quá trình huấn luyện, ta down bộ công cụ tại trang blog:

Trang 31

Hình 3.2 Positive Image

Hình 3.3 Negative Image

Bỏ tất cả các ảnh positive trong thư mục /temp/positive/rawdata

Chạy file objectmarker.exe trong /temp/positive/ Bắt đầu tiến hành đánh dấu khuôn mặt trong các ảnh huấn luyện Ấn space để kết thúc đánh dấu Ấn Enter để qua ảnh tiếp theo Tất cả thông tin về vùng đánh dấu sẽ được lưu trong info.txt

Trang 32

Hình 3.4 Thông tin về vùng ảnh được bắt

Hình 3.5 File info.txt

Bỏ tất cả ảnh Negative vào thư mục temp\negative chạy file create_list.bat Công đoạn này sẽ liệt kê tất cả các ảnh negative có trong thư mục Kết quả sẽ được kết xuất ra file info.txt như sau:

Tạo file mô tả vec cho tập huấn luyện:

D:\TaiLieu\ThucTap\Tool\Make Training\temp\createsamples.exe -info positive/info.txt -vec data/vector.vec -num 527 -w 24 -h 24

Với:

-info là file mô tả các vùng khuôn mặt đã được đánh dấu trước đó ở ảnh positive -vec tên của file vec được tạo thành

-num là số ảnh positive

-w -h lần lượt là chiều rộng và dài của vùng mẫu output

Bắt đầu huấn luyện:

Trang 33

D:\TaiLieu\ThucTap\Tool\Make Training\temp\haartraining.exe -data data/cascade -vec data/vector.vec -bg negative/infofile.txt -npos 527 -nneg 1142 -nstages 30 -mem 1000 -mode ALL -w 24 -h 24 –nonsym Với:

-data nơi kết xuất file huấn luyện

-vec file mô tả các ảnh positive

-bg là file mô tả các ảnh negative

-npos là số ảnh positive

-nneg là số ảnh negative

-nstage số bộ phân lớp mạnh được tạo thành Số càng lớn, nhận diện càng chính xác nhưng việc kết xuất file huấn luyện sẽ mất thời gian hơn

-num dung lượng bộ nhớ dùng cho việc huấn luyện, tính theo MB

-mode các chế độ lựa chọn cho đặc trưng HaarLike dùng cho việc huấn luyện Có 3 chế độ là BASIC|CORE|ALL Trong đó, BASIC chỉ sử dụng các đặc trưng là hình chữ nhật đứng và ALL là sử dụng tất cả các đặc trưng HaarLike mà OpenCV hỗ trợ bao gồm cả các hình chữ nhật nghiêng 45 độ

-w –h độ rộng và dài của các vùng ảnh chứa đối tượng Tham số này phải giống như tham số ở trong file vec

Hình 3.6 Quá trình huấn luyện ảnh

Xuất hiện file AdaBoostCARTHaarClassifier.txt và vector.vec Thế toàn bộ file trong haar\cascade2xml\data bằng các file trong haar\temp\data\cascade Copy 2 file AdaBoostCARTHaarClassifier.txt và vector.vec vào thư mục haar\cascade2xml Chạy file convert.bat để kết xuất ra file output.xml [2][4][5][6][8]

b Cấu trúc file huấn luyện XML:

Trang 34

Như vậy, kết thúc quá trình huấn luyện, ta được bộ phân lớp AdaBoost được ghi dưới dạng file XML Sau đây, ta sẽ tìm hiểu về cấu trúc tổ chức dữ liệu cũng như cách thức truy xuất thông tin trong file huấn luyện XML của OpenCV

Dưới đây là một đoạn của bộ phân lớp:

<opencv_storage>

<haarcascade_frontaleye type_id="opencv-haar-classifier"> <size>

Ngày đăng: 20/03/2015, 08:03

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w