ĐẠI HỌC THÁI NGUYÊN
i
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
NGUYỄN KHÁNH TÙNG
PHƢƠNG PHÁP NHẬN DIỆN MẪU SỬ DỤNG
MÔ HÌNH TÚI TỪ VÀ MẠNG NEURAL
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên, tháng 06 năm 2016
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
ĐẠI HỌC THÁI NGUYÊN
ii
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
NGUYỄN KHÁNH TÙNG
PHƢƠNG PHÁP NHẬN DIỆN MẪU SỬ DỤNG
MÔ HÌNH TÚI TỪ VÀ MẠNG NEURAL
Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Ngƣời hƣớng dẫn khoa học
TS. Nguyễn Toàn Thắng
Thái Nguyên, tháng 06 năm 2016
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
iii
LỜI CAM ĐOAN
Tên tôi là Nguyễn Khánh Tùng, học viên cao học lớp 13 C niên khóa
2014- 2016, chuyên nghành Khoa học máy tính. Tôi xin cam đoan luận văn
thạc sĩ: Phƣơng pháp nhận diện mẫu sử dụng mô hình túi từ và mạng
Neural của tự bản thân tôi tìm hiểu, nghiên cứu dƣới sự hƣớng dẫn của TS.
Nguyễn Toàn Thắng. Các chƣơng trình thực nghiệm do chính bản thân tôi lập
trình, các kết quả là hoàn toàn trung thực. Các tài liệu tham khảo đƣợc trích
dẫn và chú thích đầy đủ.
TÁC GIẢ LUẬN VĂN
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Nguyễn Khánh Tùng
iv
LỜI CẢM ƠN
Để hoàn thành luận văn này tôi đƣợc rất nhiều sự động viên giúp đỡ
của các cá nhân tập thể.
Trƣớc hết, cho tôi xin đƣợc bày tỏ lòng biết ơn sâu sắc nhất đến TS
Nguyễn Toàn Thắng đã hƣớng dẫn tôi thực hiện đề tài nghiên cứu của mình.
Xin cùng bày tỏ lòng biết ơn chân thành tới các thầy, cô giáo ngƣời đã
đem lại cho tôi những kiến thức vô cùng quý giá, có ích trong những năm học
vừa qua.
Cảm ơn Trung tâm HN&GDTX Thị xã Đông Triều đã hết sức tạo điều
kiện cho tôi trong suốt quá trình học tập.
Cùng xin gửi lời cảm ơn chân thành tới Ban giám hiệu, Phòng Đào tạo,
Khoa sau đại học, Đại học Công nghệ thông tin và Truyền thông Thái Nguyên
đã tạo điều kiện cho tôi trong quá trình học tập và nghiên cứu.
Cuối cùng tôi xin gửi lời cảm ơn đến gia đình, bạn bè đồng nghiệp, tập thể
lớp Khoa học máy tính K13 C Quảng Ninh, những ngƣời đã luôn bên tôi, động
viên và khuyến khích tôi trong quá trình thực hiện đề tài nghiên cứu của mình.
HỌC VIÊN
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Nguyễn Khánh Tùng
v
LỜI CAM ĐOAN ........................................................................................................ i
LỜI CẢM ƠN ............................................................................................................ iv
MỤC LỤC ................................................................................................................... v
DANH MỤC CÁC BẢNG ........................................................................................ vii
DANH MỤC CÁC HÌNH ....................................................................................... viii
MỞ ĐẦU ..................................................................................................................... 1
CHƢƠNG 1. TỔNG QUAN ....................................................................................... 5
1.1. Khảo sát một số công trình đã đƣợc công bố về nhận diện bàn tay ................ 5
1.2.Trích chọn đặc trƣng ....................................................................................... 10
1.2.1. Đặt vấn đề ............................................................................................... 10
1.2.2. Đặc trƣng màu sắc .................................................................................. 11
1.2.3. Đặc trƣng kết cấu .................................................................................... 12
1.2.4. Đặc trƣng hình dạng ............................................................................... 13
1.2.5. Đặc trƣng cục bộ bất biến ....................................................................... 14
1.3. Phân lớp dữ liệu và mạng neuron .................................................................. 18
1.3.1. Phân lớp dữ liệu ...................................................................................... 18
1.3.2. Các vấn đề liên quan đến phân lớp dữ liệu............................................. 21
1.3.3. Mạng neuron ........................................................................................... 22
CHƢƠNG 2. TRÌNH BÀY SỬ DỤNG MÔ HÌNH TÚI TỪ ĐỂ XÂY DỰNG BỘ 29
MÔ TẢ CHO VẬT THỂ VÀ THUẬT TOÁN NHẬN DIỆN VẬT THỂ VỚI
MẠNG NEURON ..................................................................................................... 29
2.1. Mô hình túi từ trong phân lớp văn bản .......................................................... 29
2.2. Ý tƣởng và Thuật toán .................................................................................. 31
2.3. Diễn giải chi tiết thuật toán ........................................................................... 35
2.3.1. Trích chọn và mô tả đặc trƣng với SURF .............................................. 35
2.3.2. Phân cụm đặc trƣng SURF và sinh từ điển ............................................ 37
2.3.3.Tạo loại mô tả vật thể mới dựa trên SURF và từ điển để dùng cho mạng
neuron ........................................................................................................................ 40
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
MỤC LỤC
2.3.4. Huấn luyện và phân lớp với mạng neuron ............................................. 42
CHƢƠNG 3. XÂY DỰNG CHƢƠNG TRÌNH THỬ NGHIỆM ............................. 44
3.1. Các lớp xây dựng chƣơng trình ..................................................................... 44
3.2. Chƣơng trình «Hand Recognitor» ................................................................. 49
CHƢƠNG 4. THỬ NGHIỆM THUẬT TOÁN VÀ PHÂN TÍCH KẾT QUẢ ......... 60
4.1. Thử nghiệm với các bộ dữ liệu tự tạo ............................................................ 60
4.1.1. Giai đoạn sinh từ điển và huấn luyện ..................................................... 60
4.1.2. Test với bộ dữ liệu chứa các ảnh với nền đơn giản ở nhiều góc nghiêng
và khoảng cách khác nhau ................................................................................ 63
4.1.3. Test với bộ dữ liệu chứa các ảnh có nhiễu ............................................. 67
4.1.4. Test với bộ dữ liệu chứa ảnh bị nhiễu nặng ........................................... 69
4.1.5. Kết luận................................................................................................... 70
4.2. Thử nghiệm với một số bộ dữ liệu mở .......................................................... 71
4.2.1. Thử nghiệm với bộ dữ liệu của Sebastien Marcel .................................. 71
4.2.2. Test với bộ dữ liệu của Đại học Cambridge ........................................... 73
KẾT LUẬN ............................................................................................................... 76
TÀI LIỆU THAM KHẢO ......................................................................................... 77
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
vi
vii
DANH MỤC CÁC BẢNG
Số bảng Tên bảng Trang
Bảng 3.1 Mô tả các lớp để xây dựng mạng neuron ........................................ 45
Bảng 3.2 Mô tả các lớp của module SURF ..................................................... 46
Bảng 3.3 Mô tả một số lớp thuộc module sinh từ điển ................................... 47
Bảng 4.1. Một số kết quả phân tích số lƣợng đặc trƣng với các giá trị khác
nhau của ngƣỡng Hessian. .............................................................................. 62
Bảng4.2. Kết quả test với các bộ dữ liệu hình có kích thƣớc khác nhau ........ 65
Bảng 4.3. Kết quả test với bộ dữ liệu ảnh có nhiễu nhẹ ................................. 68
Bảng 4.4. Kết quả test với bộ dữ liệu có nhiễu ............................................... 70
Bảng 4.5. Kết quả test với bộ dữ liệu Sebastien Marcel ................................. 72
Bảng 4.6. Kết quả thử nghiệm của mô hình CGM .......................................... 73
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Bảng. 4.7. Kết quả thử nghiệm với bộ dữ liệu của Đại học Cambridge ......... 75
viii
DANH MỤC CÁC HÌNH
Số hình Tên hình Trang
Hình 1.1 Găng tay có gắn thiết bị trong HCI .................................................... 6
Hình 1.2. Mô hình bàn tay với 27 DOF do Tomasi xây dựng và nguyên tắc
hoạt động của các phƣơng pháp dựa trên mô hình 3D ..................................... 7
Hình 1.3. Nhận diện bàn tay dựa trên đƣờng biên ............................................ 8
Hình 1.4. Đặc trƣng Haar và AdaBoost ............................................................ 9
Hình 1.5 Biểu đồ mô phỏng việc tính toán các DoG ảnh từ các ảnh kê mờ ... 16
Hình 1.6 Quá trình lựa chọn các điểm hấp dẫn ............................................... 17
Hình 1.7 Biểu diễn vector đặc trƣng ............................................................... 18
Hình 1.8.cấu trúc cơ bản của một neuron ....................................................... 23
Hình 1.9 Mô hình neuron của Mc. Culloch và Pitts ....................................... 24
Hình 1.10. Mạng truyền thẳng ba lớp ............................................................. 25
Hình 2.1. Mô tả ý tƣởng của thuật toán nhận diện vật thể trình bày dựa trên
mô hình túi từ .................................................................................................. 32
Hình 2.2. Sơ đồ tổng quát của thuật toán nhận diện vật thể trình bày ............ 33
Hình 2.3. Đặc trƣng đƣợc trích chọn bằng SURF ........................................... 37
Hình 2.4.Mô tả trực quan quá trình phân cụm và sinh từ điển ....................... 39
Hình 2.5. Vật thể và mô tả BOW tƣơng ứng .................................................. 41
Hình 2.6.Mạng neuron nhiều lớp .................................................................... 42
Hình 3.1 Các lớp để xây dựng mạng neuron .................................................. 45
Hình 3.2 Mô tả các lớp của module SURF ..................................................... 46
Hình 3.3 Các lớp thuộc module sinh từ điển .................................................. 48
Hình 3.4 Giao diện chính của chƣơng trình Hand Recognitor ....................... 49
Hình 3.5. Giao diện module tạo dữ liệu và test thuật toán.............................. 50
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 3.6. Tab «Real-time» để tạo bộ dữ liệu .................................................. 51
ix
Hình 3.7. Ví dụ về các ảnh thu đƣợc thuộc 4 lớp «Fist», «OK», «Palm»,
«Point» ............................................................................................................ 52
Hình 3.8. Giao diện module tạo dữ liệu và test thuật toán.............................. 53
Hình 3.9. Ứng dụng «BOW params» để lựa chọn tham số ............................ 54
Hình 3.10 Kết quả phân tích bộ ảnh thuộc 4 lớp ............................................ 55
Hình 3.11 Giao diện để tạo và huấn luyện mạng neuron. ............................... 56
Hình 3.12 Tự động test độ chính xác của thuật toán ...................................... 58
Hình 3.13 Kiểm tra hoạt động của thuật toán ................................................. 59
Hình 3.14 Thử nghiệm nhận diện trong thời gian thực................................... 59
Hình 4.1. Các lớp vật thể trong các bộ dữ liệu ............................................... 60
Hình 4.2. Một phần bộ dữ liệu dùng để sinh từ điển ...................................... 61
Hình 4.3. Bộ dữ liệu huấn luyện. .................................................................... 63
Hình 4.4. Một số hình trong bộ dữ liệu test .................................................... 64
Hình 4.5. Một phần bộ dữ liệu test với nhiễu nhẹ .......................................... 68
Hình 4.6. Một phần bộ dữ liệu thử nghiệm ..................................................... 69
Hình 4.7 Các lớp trong bộ dữ liê ̣u Sebastien Marcel ...................................... 71
Hình 4.8. Một số hình thuộc lớp A chia làm hai nhóm: nhóm “đơn giản”
(hàng trên), nhóm “phức tạp” (hàng dƣới) ...................................................... 72
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 4.9. Một phần dữ liệu của Đại học Cambridge ..................................... 74
1
MỞ ĐẦU
Ngày nay dƣới sự phát triển rộng rãi của các ứng dụng công nghệ thông
tin vào trong cuộc sống, việc tƣơng tác giữa con ngƣời và thiết bị ngày càng
trở nên quan trọng. Trƣớc đây, bàn phím và chuột là các giao diện chính để
giao tiếp giữa ngƣời và máy tính. Trong các lĩnh vực khác cần tới các thông
tin 3D, chẳng hạn nhƣ trò chơi máy tính, robot và lĩnh vực thiết kế… các thiết
bị cơ khí khác nhƣ bóng lăn, cần điều khiển hay các găng tay dữ liệu đã đƣợc
sử dụng. Tuy nhiên, con ngƣời giao tiếp chủ yếu bởi “nghe” và “nhìn”, do đó
một giao diện ngƣời – máy sẽ trực quan hơn nếu con ngƣời có thể điều khiển
máy tính bằng giọng nói hay cử chỉ giống nhƣ khi tƣơng tác giữa ngƣời với
ngƣời trong thế giới thực mà không cần thông qua các thiết bị điều khiển khác
nhƣ chuột hay bàn phím. Một ƣu điểm khác là ngƣời dùng có thể giao tiếp từ
xa mà không cần phải có tiếp xúc vật lý với máy tính. So với các hệ thống
điều khiển bằng lệnh âm thanh, một hệ thống thị giác sẽ thích hợp hơn trong
môi trƣờng ồn ào hoặc trong trƣờng hợp âm thanh bị nhiễu.
Nhận dạng các cử động của tay ngƣời là cách tự nhiên khi tƣơng tác
ngƣời – máy và ngày nay nhiều nhà nghiên cứu trong các học viện và ngành
công nghiệp đang quan tâm đến hƣớng này. Nó cho phép con ngƣời tƣơng tác
với máy rất dễ dàng và thuận tiện mà không cần phải mang thêm bất kỳ thiết
bị ngoại vi nào. Với mục đích nghiên cứu kỹ thuật nhận dạng cử chỉ bàn tay
ngƣời, luận văn sẽ tập trung trình bày một số nội dung chính nhƣ sau:
1. GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI
Tƣơng tác ngƣời - máy (Human - Computer Interaction, HCI) là một
lĩnh vực thu hút nhiều nghiên cứu và đã đạt đƣợc nhiều kết quả ấn tƣợng
trong thời gian gần đây. Một trong những bài toán quan trọng của lĩnh vực
này là cung cấp khả năng điều khiển máy tính (hoặc thiết bị) từ xa thông qua
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
camera kết nối với máy. Bài toán này thƣờng bao gồm các bƣớc: phát hiện đối
2
tƣợng trong thị trƣờng của camera (ví dụ, tay, mặt, cơ thể ngƣời điều khiển
hoặc một thiết bị đặc biệt nào đó dùng để điều khiển); theo dõi chuyển động
của đối tƣợng; nhận diện hình dạng và cách thức chuyển động của đối tƣợng.
Kết quả nhận diện đƣợc sử dụng để tạo ra các lệnh tƣơng ứng cho máy tính.
Mục đích của đề tài là xây dựng một phƣơng pháp nhận diện mẫu trong
các frame thu trực tiếp từ camera theo thời gian thực để giải quyết bƣớc thứ
ba trong bài toán điều khiển máy tính từ xa nêu trên. Phƣơng pháp nhận diện
này sử dụng mô hình túi từ (bag-of-features, bag-of-words) kết hợp với
phƣơng pháp phân lớp bằng mạng neural. Trong đó, mô hình túi từ đƣợc sử
dụng để tạo ra các vector đặc trƣng làm dữ liệu đầu vào cho mạng neural.
Phƣơng pháp nhận diện này cần đảm bảo đƣợc tốc độ xử lý cao (để có thể
thực hiện trong thời gian thực với dữ liệu thu trực tiếp từ một camera), và có
tính bền vững với một số dạng biến đổi của đối tƣợng (xoay hình, thay đổi
kích thƣớc và vị trí trong frame). Đối tƣợng nhận diện chính của đề tài là cử
chỉ tay ngƣời và một số đồ vật đơn giản.
2. ĐỐI TƢỢNG VÀ PHẠM VI NGHIÊN CỨU
a. Lý thuyết
- Nghiên cứu mô hình túi từ;
- Nghiên cứu một số phƣơng pháp trích chọn đặc trƣng trong ảnh số;
- Nghiên cứu một số phƣơng pháp phân cụm dữ liệu đơn giản;
- Nghiên cứu mạng neural nhiều lớp.
b. Thực nghiệm
- Xây dựng chƣơng trình thử nghiệm;
- Thực hiện huấn luyện và test trên một số loại lớp đối tƣợng (ví dụ,
các dạng của tay ngƣời, một số loại đồ vật đơn giản);
- Thực hiện huấn luyện và test trên một số kho dữ liệu cử chỉ (ví dụ,
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
kho dữ liệu của trƣờng Đại học Cambridge);
3
- Phân tích, đánh giá kết quả thu đƣợc; so sánh kết quả thu đƣợc với kết
quả của một số phƣơng pháp nhận diện đã đƣợc công bố.
3. HƢỚNG NGHIÊN CỨU CỦA ĐỀ TÀI
- Nghiên cứu một số phƣơng pháp nhận diện mẫu đã đƣợc công bố ở
trong và ngoài nƣớc (từ nguồn học liệu tại trung tâm học liệu Đại học Thái
Nguyên, trƣờng Đại học CNTT&TT, các tạp chí online).
- Nghiên cứu mô hình túi từ và cách áp dụng phƣơng pháp này trong xử
lý ảnh để tạo ra vector đặc trƣng làm dữ liệu đầu vào cho mạng neural.
- Nghiên cứu và so sánh một số phƣơng pháp trích chọn đặc trƣng
trong ảnh số (SURF, SIFT) để lựa chọn phƣơng pháp phù hợp với mô hình túi
từ và đáp ứng đƣợc yêu câu đặt ra của đề tài. (tốc độ xử lý, tính bền vững với
một số dạng biến đổi của đối tƣợng trong ảnh).
- Nghiên cứu cách sử dụng mạng neural nhân tạo trong phân lớp dữ
liệu, trong đó, dữ liệu đầu vào cho mạng neural đƣợc tạo ra bằng cách áp
dụng mô hình túi từ.
- Xây dựng dữ liệu để huấn luyện và test; phân tích và đánh giá kết quả
thu đƣợc; so sánh kết quả test trên các kho dữ liệu cử chỉ khác nhau; so sánh
kết quả thu đƣợc bằng phƣơng pháp trình bày với các phƣơng pháp khác đã
đƣợc công bố.
4. NỘI DUNG NGHIÊN CỨU
Chƣơng 1. Tổng quan
Phần này trình bày các kiến thức cơ bản về nhận diện mẫu, các bài toán
trong nhận diện mẫu, một số phƣơng pháp nhận diện mẫu đã đƣợc công bố.
Chƣơng 2. Trình bày sử dụng mô hình túi từ để xây dựng bộ mô tả
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
cho vật thể và thuật toán nhận diện vật thể với mạng Neuron.
4
Phần này trình bày chi tiết về mô hình túi từ, cách ứng dụng mô hình
này trong bài toán nhận diện mẫu, lựa chọn thuật toán trích chọn đặc trƣng và
phân cụm dữ liệu phù hợp, cách xây dựng vector đăc trƣng với mô hình túi từ.
Chƣơng 3. Xây dựng chƣơng trình thử nghiệm
Chƣơng 4. Thử nghiệm và đánh giá kết quả
Phần này trình bày chi tiết về chƣơng trình thử nghiệm, áp dụng
chƣơng trình cho các kho dữ liệu ảnh, phân tích – đánh giá – so sánh kết quả.
5. PHƢƠNG PHÁP NGHIÊN CỨU
- Phương pháp nghiên cứu lý thuyết: Tìm hiểu các tài liệu liên quan tới
các phƣơng pháp nhận diện mẫu trong ảnh số, mô hình túi từ, các phƣơng
pháp trích chọn và biểu diễn đặc trƣng, một số thuật toán phân cụm dữ liệu
đơn giản, mạng neural nhân tạo.
- Phương pháp nghiên cứu thực nghiệm: Xây dựng một số kho dữ liệu
ảnh; xây dựng chƣơng trình thử nghiệm; huấn luyện và test thuật toán trên các
kho dữ liệu để lấy dữ liệu đánh giá độ chính xác và tốc độ xử lý của thuật toán.
- Phương pháp trao đổi khoa học: Trao đổi hƣớng nghiên cứu với
ngƣời hƣớng dẫn và trình bày Seminar với các đồng nghiệp để trình bày và
giải quyết các nội dung luận văn đề ra.
6. Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN CỦA ĐỀ TÀI
Ý nghĩa khoa học của đề tài là trình bày một thuật toán xây dựng vector
đặc trƣng cho đối tƣợng trên ảnh số. Thuật toán đảm bảo tốc độ xử lý trong
thời gian thực với dữ liệu thu trực tiếp từ camera. Vector đặc trƣng đảm bảo
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
đƣợc tính bền vững khi đối tƣợng chịu một số biến đổi.
5
CHƢƠNG 1. TỔNG QUAN
1.1. Khảo sát một số công trình đã đƣợc công bố về nhận diện bàn tay
Cử chỉ tay là phƣơng thức giao tiếp tự nhiên và trực quan trong tƣơng
tác ngƣời – máy (Human – Computer Interaction). Để thực hiện loại tƣơng tác
này ngƣời ta cần phát triển các phƣơng pháp và công cụ gọi là giao diện
người máy (Human – Computer Interface – HCI), cho phép máy tính nhận
diện cử chỉ tay trong thời gian thực. Tuy nhiên, việc theo dõi chuyển động của
tay dựa vào thị giác máy và nhận diện cử chỉ là một vấn đề khó giải quyết do
các cử chỉ tay ngƣời rất phức tạp. Sự phức tạp này là do sự đa dạng của cử chỉ
tạo ra bởi một số lƣợng lớn các bậc tự do (Degree of Freedom – DoF, thu
đƣợc trong quá trình mô hình hóa bàn tay ngƣời).
Để thực hiện tốt vai trò của mình, các HCI dựa trên cử chỉ tay phải đáp
ứng các yêu cầu về hiệu suất trong thời gian thực, độ chính xác cao trong
nhận diện, mức độ ổn định trƣớc các loại biến đổi khác nhau (ví dụ: thay đổi
hƣớng và cƣờng độ chiếu sáng, thay đổi về góc nghiêng của đối tƣợng,
v.v…), và khả năng hoạt động với các phông nền (khung cảnh phía sau ngƣời
thực hiện cử chỉ) đa dạng.
Để đáp ứng các yêu cầu này, nhiều hệ thống nhận dạng cử chỉ đã sử
dụng những thiết bị đánh dấu bằng màu sắc hoặc găng tay (găng tay gắn cảm
biến) để đơn giản hóa việc thu nhận và xử lý thông tin từ cử chỉ tay [5]. Tuy
nhiên, việc sử dụng các thiết bị đánh dấu hoặc găng tay gây phiền phức cho
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
ngƣời sử dụng, đồng thời làm giảm tính tự nhiên trong tƣơng tác với máy tính.
6
Hình 1.1. Găng tay có gắn thiết bị trong HCI
Luận văn này chỉ tập trung vào việc nhận diện một phần cử chỉ tay,
trƣớc hết là hình dạng của bàn tay, thu từ camera trong thời gian thực và
không có sự hỗ trợ của các thiết bị đánh dấu khác hoặc găng tay.
Có hai nhóm phƣơng pháp chính đối với bài toán nhận dạng cử chỉ tay
dựa trên thị giác: các phƣơng pháp dựa trên mô hình ba chiều của tay (3D
hand model); các phƣơng pháp dựa vào hình dạng bên ngoài của tay [15].
Các phƣơng pháp dựa trên mô hình 3D sử dụng mô hình động học ba
chiều của tay với một số lƣợng tƣơng đối lƣớng các bậc tự do [9], [6]–[11].
Các phƣơng pháp này tính ra các tham số của tay bằng cách so sánh hình ảnh
bàn tay trên các frame với hình chiếu của mô hình 3D trên mặt phẳng. Các
phƣơng pháp này phù hợp với tƣơng tác trong môi trƣờng ảo, cho phép thu
đƣợc nhiều tham số của cử chỉ tay, đồng thời cho phép nhận diện một số
lƣợng lớn các lớp cử chỉ tay. Tuy nhiên, do các mô hình 3-D của bàn tay là
những vật thể biến dạng có khớp nối với nhiều bậc tự do (mô hình 3D tiêu
chuẩn có 27 DOF), để mô tả hình dạng của tay dƣới các góc nhìn khác nhau
cần một cơ sở dữ liệu rất lớn. Nhƣợc điểm khác của các phƣơng pháp này là
sự khó khăn trong trích trọn đặc trƣng và không có khả năng xử lý những tình
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
huống đặc biệt (phát sinh từ các góc nhìn không rõ ràng).
Xử lý ảnh
Thu nhận hình qua camera
Bàn tay
Phát hiện / Nhận diện
Điều chỉnh tham số
Chiếu hình
Mô hình bàn tay
7
Hình 1.2. Mô hình bàn tay với 27 DOF do Tomasi xây dựng và nguyên tắc
hoạt động của các phương pháp dựa trên mô hình 3D
Các phƣơng pháp dựa trên hình dạng (appearance-based) thực hiện
trích trọn đặc trƣng để mô hình hóa hình dạng bên ngoài của bàn tay. Khi
nhận diện, các đặc trƣng trích ra sẽ đƣợc so sánh với các đặc trƣng của các
lớp đã biết. Các phƣơng pháp dựa trên hình dạng thƣờng có tốc độ xử lý cao
(hoạt động trong thời gian thực) do việc xử lý hình 2D thƣờng đơn giản hơn.
Các phƣơng pháp thuộc nhóm này thƣờng xử dụng các đặc trƣng nhƣ màu
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
sắc, đƣờng biên, các điểm hoặc các vùng đặc biệt.
8
Trong [10] sử dụng một phƣơng pháp nhận diện đơn giản bằng cách
tìm kiếm những vùng màu da trong hình ảnh. Tuy nhiên, phƣơng pháp này có
một số yếu điểm: rất nhạy cảm với điều kiện ánh sáng; không cho phép có các
đối tƣợng giống màu da trong hình ảnh. Trong [3] sử dụng các đặc trƣng màu
sắc theo thang đo (scale-space color features) để nhận diện cử chỉ tay. Tuy
nhiên, hệ thống này chỉ hoạt động đƣợc trong thời gian thực khi trong hình
không có đối tƣợng khác trùng màu da.
Các tác giả trong [1] sử dụng đƣờng biên của tay để nhận diện bằng
cách tính toán độ cong tại mỗi điểm trên đƣờng biên. Phƣơng pháp tách biên
này thƣờng khó sử dụng nếu có yếu tố gây nhiễu, khi điều kiện chiếu sáng
thay đổi, hoặc khi sử dụng trên phông nền phức tạp.
Hình 1.3. Nhận diện bàn tay dựa trên đường biên
Gần đây có một số nghiên cứu về các đặc trƣng bất biến cục bộ (local
invariant features) [13]–[4]. Trong [13], thuật toán Adaboost và đặc trƣng
SIFT đƣợc sử dụng để phát hiện bàn tay. Phƣơng pháp này cho phép pháp
hiện bàn tay kể cả trong trƣờng hợp bàn tay xoay trên một mặt phẳng. Phƣơng
pháp này cũng đƣa ra khái niệm sharing feature để tăng tốc độ hoạt động và
độ chính xác (lên tới 97,8%). Để đạt đƣợc tốc độ nhận diện trong thời gian
thực, phƣơng pháp này sử dụng thêm một số loại đặc trƣng khác (vd, contrast
context histogram). Trong [2], [4], đặc trƣng Haar đƣợc sử dụng dụng để phát
hiện bàn tay. Đặc trƣng Haar tập trung vào các thông tin trong một vùng nhất
định của hình ảnh thay vì từng pixel riêng rẽ. Để nâng cao độ chính xác khi
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
phân loại và có đƣợc hiệu suất thời gian thực, phƣơng pháp này sử dụng
9
Adaboost (ghép các classifier đơn giản theo mô hình thác nƣớc để tạo thành
một classifier mạnh).
Nghiên cứu mà Viola và Jones đề xuất [12] cho bài toán phát hiện vật
thể trong thời gian thực cho phép phát hiện bàn tay trên bất kỳ phông nền nào
với độ chính xác rất cao [14]. Phƣơng pháp này phát hiện vật thể nhanh và
chính xác nhƣng cần thời gian huấn luyện rất dài và một số lƣợng hình mẫu
rất lớn. Ngoài ra, phƣơng pháp phát hiện vật thể của Viola-Jones chỉ có thể
Xử lý bổ sung
Cửa sổ con
Cấu trúc thác nƣớc
Classifier №1
Classifier № 2
Classifier № 3
Classifier № n
Cửa sổ con bị loại bỏ
đƣợc thực hiện với bàn tay nghiêng từ 15 tới 30 độ [7].
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 1.4. Đặc trưng Haar và AdaBoost
10
1.2.Trích chọn đặc trƣng
1.2.1. Đặt vấn đề
Trong tìm kiếm ảnh theo nội dung, việc lựa chọn các đặc trƣng thích
hợp với từng loại truy vấn và miền ứng dụng cùng với các độ đo tƣơng đồng
tƣong ứng là thành phần quan trọng và then chốt nhất. Việc lựa chọn các đặc
trƣng và độ đo thích hợp sẽ giúp tăng cả tốc độ và mức độ chính xác lựa chọn
đặc trƣng cho ảnh:
- Thành phần lựa chọn đặc trƣng phải lựa chọn đƣợc một tập các đặc
trƣng cung cấp đầu vào tốt nhất cho hệ thống tìm kiếm ảnh. Nếu số lƣợng các
đặc trƣng quá nhiều sẽ làm "che khuất" các "tín hiệu" (giảm các "tín hiệu" đối
với tỉ lệ nhiễu), mặt khác, nếu số lƣợng các đặc trƣng quá ít sẽ khó phân biệt
đƣợc ảnh trong tìm kiếm.
- Nó phải giảm bớt đƣợc độ phức tạp trong lúc tính toán tổng thể bằng
giảm đa chiều của bài toán phân lớp.
- Khi ngƣời dùng muốn sử dụng các đặc trƣng đó cho mọi truy vấn,
thì việc sử dụng các đặc trƣng này phải hiệu quả. Vì số lƣợng các đặc trƣng
có thể là hàng ngàn, dó đó thời gian xử lý của module phải tuyến tính với số
lƣợng đặc trƣng.
- Vì thời gian xử lý của thành phần lựa chọn đặc trƣng tuyến tính với số
lƣợng đặc trƣng, do đó việc lựa chọn các đặc trƣng cũng nên tuyến tính dựa
trên phân lớp.
Trong phần này, chúng tôi sẽ trình bày sơ bộ về các vấn đề về đặc
trƣng của ảnh (màu sắc, kết cấu, hình dạng, đặc trƣng cục bộ SIFT), một số
độ đo tƣơng đồng tƣơng ứng với các đặc trƣng và phƣơng pháp lựa chọn đặc
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
trƣng ảnh để tăng chất lƣợng tập đặc trƣng.
11
1.2.2. Đặc trưng màu sắc
a. Đặc trƣng màu sắc
Tìm kiếm ảnh theo lƣợc đồ màu là phƣơng pháp phổ biến và đƣợc sử
dụng nhiều nhất trong các hệ thống tìm kiếm ảnh theo nội dung. Đây là phƣơng
pháp đơn giản, tốc độ tìm kiếm tƣơng đối nhanh tuy nhiên kết quả tìm kiếm có
độ chính xác không cao. Đây có thể xem là bƣớc lọc đầu tiên cho những bƣớc
tìm kiếm sau. Một số lƣợc đồ màu đƣợc sử dụng nhƣ: lƣợc đồ màu RGB, lƣợc
đồ màu HSI, lƣợc đồ HSI cải tiến.
Trong đó, lƣợc đồ màu RGB đƣợc sử dụng phổ biến nhất.
* Lƣợc đồ màu RGB:
Đối với ảnh 256 màu, lƣợc đồ màu của ảnh tƣơng đƣơng với lƣợc đồ màu
của ảnh xám. Đối với ảnh 24 bit màu, lƣợc đồ miêu tả khả năng kết nối về
cƣờng độ của ba kênh màu R, G, B. Luợc đồ màu này đƣợc định nghĩa nhƣ sau:
(1.1)
Trong đó N là số lƣợng điểm có trong ảnh.
Lƣợc đồ màu này đƣợc tính bằng cách rời rạc hóa từng màu trong ảnh,
sau đó đếm số điểm ảnh của mỗi màu. Khi mà số lƣợng màu là có hạng, để
thuận tiện hơn, ngƣời ta thƣờng chuyển đổi ba kênh màu thành một biến giá
trị duy nhất. Một cách khác để tính lƣợc đồ màu của ảnh RGB là ta phân ra
làm 3 lƣợt đồ riêng biệt hR[] , hG[] , hB[]. Khi đó, mỗi lƣợc đồ đƣợc tính bằng
cách đếm kênh màu tƣơng ứng trong mỗi điểm ảnh.
b. Độ đo tƣơng đồng về màu sắc
Một số độ đo tƣơng đồng đƣợc sử dụng nhƣ: Độ đo khoảng cách
Euclide, độ đo Jensen-Shannon divergence (JSD).
Gọi h(I) và h(M) tƣơng ứng là 2 lƣợt đồ màu của hai ảnh I và ảnh M.
Khi đó các loại độ đo màu đƣợc định nghĩa là một số nguyên (hoặc số thực)
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
theo các loại độ đo tƣơng ứng nhƣ sau:
12
* Khoảng cách Euclide:
Đây là khoảng cách Euclide thông thƣờng giữa các K bin:
(1.2)
Hoặc:
(1.3)
* Độ đo Jensen-Shannon divergence (JSD) :
Độ đo Jensen-Shannon divergence sử dụng lƣợc độ màu RGB để tính
toán độ tƣơng đồng về màu sắc giữa 2 ảnh :
(1.4)
Trong đó : H và H' là 2 biểu đồ màu đƣợc so sánh, Hm là bin thứ m của
biểu đồ H.
1.2.3. Đặc trưng kết cấu
a. Đặc trƣng kết cấu
Hiện tại, vẫn chƣa có một định nghĩa chính thức cụ thể về kết cấu. Kết
cấu là một đối tƣợng dùng để phân hoạch ảnh ra thành những vùng quan tâm
để phân lớp những vùng đó.
Kết cấu cung cấp thông tin về sự sắp xếp về mặt không gian của màu sắc
và cƣờng độ một ảnh. Kết cấu đƣợc đặc trƣng bởi sự phân bổ không gian của
những mức cƣờng độ trong một khu vực láng giềng với nhau. Kết cấu gồm các
kết cấu gốc hay nhiều kết cấu gộp lại đôi khi gọi là texel.
Một số phƣơng pháp dùng để trích xuất các đặc trƣng kết cấu nhƣ[18]:
* Kim tự tháp "có thể lái đƣợc" (the steerable pyramid)
* Biến đổi đƣờng viền (the cotourlet transform)
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
* Biến đổi Gabor (The Gabor Wavelet transform)
13
* Biểu diễn ma trận đồng hiện (co-occurrence matrix)
* Hệ thống bộ lọc định hƣớng phức tạp (The complex directional
fillter bank)
b. Độ đo tƣơng đồng cho kết cấu ảnh
Để đo độ tƣơng đồng theo kết cấu giữa các ảnh, ngƣời ta thƣờng sử
dụng độ đo Euclide. Kết cấu đƣợc trích xuất từ các bức ảnh sẽ đƣợc biểu diễn
thành các vector nhiều chiều và khoảng cách Euclide đƣợc dùng để đo độ
tƣơng đồng giữa các đặc trƣng của ảnh truy vấn với đặc trƣng của ảnh trong
cơ sở dữ liệu.
1.2.4. Đặc trưng hình dạng
a. Đặc trƣng hình dạng
Màu sắc và kết cấu là những thuộc tính có khái niệm toàn cục trong
một ảnh. Trong khi đó, hình dạng không phải là một thuộc tính của ảnh. Nói
tới hình dạng không phải là nhắc đến hình dạng của một ảnh. Thay vì vậy,
hình dạng có khuynh hƣớng chỉ đến một khu vực đặc biệt trong ảnh, hay hình
dạng chỉ là biên của một đối tƣợng nào đó trong ảnh.
Trong tìm kiếm ảnh theo nội dung, hình dạng là một cấp cao hơn so với
màu sắc và kết cấu. Nó đòi hỏi sự phân biệt giữa các vùng để tiến hành xử lý
về độ đo của hình dạng. Các hệ thống tìm kiếm ảnh theo nội dung thƣờng khai
thác hai nhóm biểu diễn hình dạng sau :
* Biểu diễn hình dạng theo đƣờng biên (cotour-based descriptor) : Biểu
diễn các đƣờng biên bao bên ngoài
* Biểu diễn theo vùng (region-based descriptor): Biểu diễn một vùng
toàn vẹn
b. Độ đo tƣơng đồng cho hình dạng
Độ đo về hình dạng rất nhiều trong phạm vi lý thuyết của bộ môn xử lý
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
ảnh. Chúng trải rộng từ những độ đo toàn cục dạng thô với sự trợ giúp của
14
việc nhận dạng đối tƣợng, cho tới những độ đo chi tiết tự động tìm kiếm
những hình dạng đặc biệt. Lƣợc đồ hình dạng là một ví dụ của độ đo đơn giản.
Kỹ thuật dùng đƣờng biên hiệu quả hơn phƣơng pháp trƣớc, chúng tìm kiếm
những hình dạng đối tƣợng gần giống với đƣờng biên nhất. Phƣơng pháp vẽ
phác họa là phƣơng pháp có nhiều đặc trƣng rõ ràng hơn, không chỉ tìm kiếm
những đƣờng biên đối tƣợng đơn, mà còn đối với tập những đối tƣợng đã đƣợc
phân đoạn trong một ảnh mà ngƣời dùng vẽ hay cung cấp.
1.2.5. Đặc trưng cục bộ bất biến
Ngƣời ta thƣờng chia đặc trƣng cụ bộ thành 2 loại là những điểm trích
xuất đƣợc từ điểm "nhô ra" (salient points) của ảnh và đặc trƣng SIFT đƣợc
trích chọn từ các điểm hấp dẫn Haris (interest points). Trong phần này, chúng
tôi sẽ trình bày chi tiết về việc trích chọn các đặc trƣng cục bộ bất biến (Scale
Invariant Feature Transform SIFT) của ảnh.
a. Đặc trƣng cục bộ bất biến
Phần này trình bày phƣơng pháp trích rút các đặc trƣng cục bộ bất biến
SIFT của ảnh. Các đặc trƣng này bất biến với việc thay đổi tỉ lệ ảnh, quay
ảnh, đôi khi là thay đổi điểm nhìn và thêm nhiễu ảnh hay thay đổi cƣờng độ
chiếu sáng của ảnh. Phƣơng pháp đƣợc lựa chọn có tên là Scale-Invariant
Feature Transform (SIFT) và đặc trƣng trích rút đựợc gọi là đặc trƣng SIFT
(SIFT Feature). Các đặc trƣng SIFT này đƣợc trích rút ra từ các điểm hấp dẫn
cục bộ (Local Interest Point) .
Điểm hấp dẫn (Interest Point (Keypoint)): Là vị trí (điểm ảnh) "hấp
dẫn" trên ảnh. "Hấp dẫn" ở đây có nghĩa là điểm đó có thể có các đặc trƣng
bất biến với việc quay ảnh, co giãn ảnh hay thay đổi cƣờng độ chiếu sáng
của ảnh.
Phƣơng pháp trích rút các đặc trƣng bất biến SIFT đƣợc tiếp cận theo
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
phƣơng pháp thác lọc, theo đó phƣơng pháp đƣợc thực hiện lần lƣợt theo các
15
bƣớc sau:
* Phát hiện các điểm cực trị Scale-Space (Scale-Space extrema
detection):
Bƣớc đầu tiên này tiến hành tìm kiếm các điểm hấp dẫn trên tất cả các
tỉ lệ và vị trí của ảnh. Nó sử dụng hàm different-of-Gaussian để xác định tất
cả các điểm hấp dẫn tiềm năng mà bất biến với quy mô và hƣớng của ảnh.
* Định vị các điểm hấp dẫn (keypoint localization): Một hàm kiểm tra
sẽ đƣợc đƣa ra để quyết định xem các điểm hấp dẫn tiềm năng có đƣợc lựa
chọn hay không?
* Xác định hƣớng cho các điểm hấp dẫn (Orientation assignment):
Xác định hƣớng cho các điểm hấp dẫn đƣợc chọn
* Mô tả các điểm hấp dẫn (Keypoint descriptor): Các điểm hấp dẫn
sau khi đƣợc xác định hƣớng sẽ đƣợc mô tả dƣới dạng các vector đặc trƣng
nhiều chiều.
b. Phát hiện điểm cực trị Scale-space
Các điểm hấp dẫn với đặc trƣng SIFT tƣơng thích với các cực trị địa
phƣơng của bộ lọc difference -of-Gaussian (DoG) ở các tỉ lệ khác nhau.
Định nghĩa không gian tỉ lệ của một hình ảnh là hàm L(x,y,kσ ) đƣợc mô tả
nhƣ sau:
(1.5)
Với G(x, y, kσ ) : biến tỉ lệ Gaussian (variable scale Gaussian)
I (x, y) : Ảnh đầu vào
* là phép nhân chập giữa x và y
Và
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
(1.6)
16
Để phát hiện đƣợc các điểm hấp dẫn, ta đi tìm các cực trị của hàm DoG
đƣợc định nghĩa:
(1.7)
(1.8)
Giá trị hàm DoG đƣợc tính xấp xỉ dựa vào giá trị scale-normalized
Laplacian of Gaussian (σ 2 2G) thông qua các phƣơng trình
(1.9)
Nhƣ vậy, bƣớc đầu tiên của giải thuật SIFT phát hiện các điểm hấp dẫn
với bộ lọc Gaussian ở các tỉ lệ khác nhau và các ảnh GoG từ sự khác nhau của
các ảnh kề mờ.
Hình 1.5. Biểu đồ mô phỏng việc tính toán các DoG ảnh từ các ảnh kê mờ
Các ảnh cuộn đƣợc nhóm thành các octave (mỗi octave tƣơng ứng với
giá trị gấp đôi của σ). Giá trị của k đƣợc chọn sao cho số lƣợng ảnh mờ
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
(blured images) cho
17
c. Định vị điểm hấp dẫn
Mỗi điểm hấp dẫn ứng viên sau khi đƣợc chọn sẽ đƣợc đánh giá xem
có đƣợc giữ lại hay không:
*Loại bỏ các điểm hấp dẫn có độ tƣơng phản hấp
* Một số điểm hấp dẫn dọc theo các cạnh không giữ đƣợc tính ổn định
khi ảnh bị nhiễu cũng bị loại bỏ.
Các điểm hấp dẫn còn lại sẽ đƣợc xác định hƣớng.
Hình 1.6. Quá trình lựa chọn các điểm hấp dẫn
a. Ảnh gốc; b. Các điểm hấp dẫn được phát hiện; c. Ảnh sau khi loại bỏ
các điểm hấp dẫn có độ tương phản thấp; d. Ảnh sau loại bỏ các điểm hấp dẫn
dọc theo cạnh
d. Xác định hướng cho điểm hấp dẫn
Để xác định hƣớng cho các điểm hấp dẫn, ngƣời ta tính toán biểu đồ
hƣớng Gradient trong vùng láng giềng của điểm hấp dẫn. Độ lớn và hƣớng của
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
các điểm hấp dẫn đƣợc xác định theo công thức:
18
(11)
e. Biểu diễn vector cho điểm hấp dẫn
Điểm hấp dẫn sau khi đƣợc xác định hƣớng sẽ đƣợc biểu diễn dƣới dạng
các vector 4x4x8=128 chiều.
Hình 1.7 Biểu diễn vector đặc trưng
1.3. Phân lớp dữ liệu và mạng neuron
1.3.1. Phân lớp dữ liệu
Ngày nay phân lớp dữ liệu (classification) là một trong những hƣớng
nghiên cứu chính của khai phá dữ liệu. Thực tế đặt ra nhu cầu là từ một cơ sở
dữ liệu với nhiều thông tin ẩn con ngƣời có thể trích rút ra các quyết định
nghiệp vụ thông minh. Phân lớp và dự đoán là hai dạng của phân tích dữ liệu
nhằm trích rút ra một mô hình mô tả các lớp dữ liệu quan trọng hay dự đoán xu
hƣớng dữ liệu tƣơng lai. Phân lớp dự đoán giá trị của những nhãn xác định
(categorical label) hay những giá trị rời rạc (discrete value), có nghĩa là phân
lớp thao tác với những đối tƣợng dữ liệu mà có bộ giá trị là biết trƣớc. Trong
khi đó, dự đoán lại xây dựng mô hình với các hàm nhận giá trị liên tục. Ví dụ
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
mô hình phân lớp dự báo thời tiết có thể cho biết thời tiết ngày mai là mƣa, hay
19
nắng dựa vào những thông số về độ ẩm, sức gió, nhiệt độ, của ngày hôm nay
và các ngày trƣớc đó.
Hay nhờ các luật về xu hƣớng mua hàng của khách hàng trong siêu thị,
các nhân viên kinh doanh có thể ra những quyết sách đúng đắn về lƣợng mặt
hàng cũng nhƣ chủng loại bày bán Một mô hình dự đoán có thể dự đoán đƣợc
lƣợng tiền tiêu dùng của các khách hàng tiềm năng dựa trên những thông tin
về thu nhập và nghề nghiệp của khách hàng. Trong những năm qua, phân lớp
dữ liệu đã thu hút sự quan tâm các nhà nghiên cứu trong nhiều lĩnh vực khác
nhau nhƣ học máy (machine learning), hệ chuyên gia (expert system), thống
kê (statistics)... Công nghệ này cũng ứng dụng trong nhiều lĩnh vực khác
nhau nhƣ: thƣơng mại, nhà băng, maketing, nghiên cứu thị trƣờng, bảo hiểm,
y tế, giáo dục... Phần lớn các thuật toán ra đời trƣớc đều sử dụng cơ chế dữ
liệu cƣ trú trong bộ nhớ (memory resident), thƣờng thao tác với lƣợng dữ liệu
nhỏ. Một số thuật toán ra đời sau này đã sử dụng kỹ thuật cƣ trú trên đĩa cải
thiện đáng kể khả năng mở rộng của thuật toán với những tập dữ liệu lớn lên
tới hàng tỉ bản ghi.
Quá trình phân lớp dữ liệu gồm hai bƣớc:
• Bước thứ nhất (learning)
Quá trình học nhằm xây dựng một mô hình mô tả một tập các lớp dữ
liệu hay các khái niệm định trƣớc. Đầu vào của quá trình này là một tập dữ
liệu có cấu trúc đƣợc mô tả bằng các thuộc tính và đƣợc tạo ra từ tập các bộ
giá trị của các thuộc tính đó. Mỗi bộ giá trị đƣợc gọi chung là một phần tử dữ
liệu (data tuple), có thể là các mẫu (sample), ví dụ (example), đối tượng
(object), bản ghi (record) hay trường hợp (case). Khoá luận sử dụng các thuật
ngữ này với nghĩa tƣơng đƣơng. Trong tập dữ liệu này, mỗi phần tử dữ liệu
đƣợc giả sử thuộc về một lớp định trƣớc, lớp ở đây là giá trị của một thuộc
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
tính đƣợc chọn làm thuộc tính gán nhãn lớp hay thuộc tính phân lớp (class
20
label attribute). Đầu ra của bƣớc này thƣờng là các quy tắc phân lớp dƣới
dạng luật dạng if-then, cây quyết định, công thức logic, hay mạng nơron. Quá
trình này đƣợc mô tả nhƣ trong hình 1
• Bước thứ hai (classification)
Bƣớc thứ hai dùng mô hình đã xây dựng ở bƣớc trƣớc để phân lớp dữ
liệu mới. Trƣớc tiên độ chính xác mang tính chất dự đoán của mô hình phân
lớp vừa tạo ra đƣợc ƣớc lƣợng. Holdout là một kỹ thuật đơn giản để ƣớc lƣợng
độ chính xác đó. Kỹ thuật này sử dụng một tập dữ liệu kiểm tra với các mẫu
đã đƣợc gán nhãn lớp. Các mẫu này đƣợc chọn ngẫu nhiên và độc lập với các
mẫu trong tập dữ liệu đào tạo. Độ chính xác của mô hình trên tập dữ liệu kiểm
tra đã đƣa là tỉ lệ phần trăm các các mẫu trong tập dữ liệu kiểm tra đƣợc mô
hình phân lớp đúng (so với thực tế). Nếu độ chính xác của mô hình đƣợc ƣớc
lƣợng dựa trên tập dữ liệu đào tạo thì kết quả thu đƣợc là rất khả quan vì mô
hình luôn có xu hƣớng "quá vừa" dữ liệu. Quá vừa dữ liệu là hiện tƣợng kết
quả phân lớp trùng khít với dữ liệu thực tế vì quá trình xây dựng mô hình
phân lớp từ tập dữ liệu đào tạo có thể đã kết hợp những đặc điểm riêng biệt của
tập dữ liệu đó. Do vậy cần sử dụng một tập dữ liệu kiểm tra độc lập với tập dữ
liệu đào tạo. Nếu độ chính xác của mô hình là chấp nhận đƣợc, thì mô hình
đƣợc sử dụng để phân lớp những dữ liệu tƣơng lai, hoặc những dữ liệu mà giá
trị của thuộc tính phân lớp là chƣa biết.
Trong mô hình phân lớp, thuật toán phân lớp giữ vai trò trung tâm, quyết
định tới sự thành công của mô hình phân lớp. Do vậy chìa khóa của vấn đề phân
lớp dữ liệu là tìm ra đƣợc một thuật toán phân lớp nhanh, hiệu quả, có độ chính
xác cao và có khả năng mở rộng đƣợc. Trong đó khả năng mở rộng đƣợc của
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
thuật toán đƣợc đặc biệt trú trọng và phát triển
21
Có thể liệt kê ra đây các kỹ thuật phân lớp đã đƣợc sử dụng trong những
năm qua:
• Phân lớp cây quyết định (Decision tree classification)
• Bộ phân lớp Bayesian (Bayesian classifier)
• Mô hình phân lớp K-hàng xóm gần nhất (K-nearest neighbor
classifier)
• Mạng nơron
• Phân tích thống kê
• Các thuật toán di truyền
• Phương pháp tập thô (Rough set Approach)
1.3.2. Các vấn đề liên quan đến phân lớp dữ liệu
Việc tiền xử lý dữ liệu cho quá trình phân lớp là một việc làm không thể
thiếu và có vai trò quan trọng quyết định tới sự áp dụng đƣợc hay không của
mô hình phân lớp. Quá trình tiền xử lý dữ liệu sẽ giúp cải thiện độ chính xác,
tính hiệu quả và khả năng mở rộng đƣợc của mô hình phân lớp.
Quá trình tiền xử lý dữ liệu gồm có các công việc sau:
- Làm sạch dữ liệu
Làm sạch dữ liệu liên quan đến việc xử lý với lỗi (noise) và giá trị
thiếu (missing value) trong tập dữ liệu ban đầu. Noise là các lỗi ngẫu nhiên
hay các giá trị không hợp lệ của các biến trong tập dữ liệu. Để xử lý với loại
lỗi này có thể dùng kỹ thuật làm trơn. Missing value là những ô không có giá
trị của các thuộc tính. Giá trị thiếu có thể do lỗi chủ quan trong quá trình nhập
liệu, hoặc trong trƣờng hợp cụ thể giá trị của thuộc tính đó không có, hay
không quan trọng. Kỹ thuật xử lý ở đây có thể bằng cách thay giá trị thiếu
bằng giá trị phổ biến nhất của thuộc tính đó hoặc bằng giá trị có thể xảy ra
nhất dựa trên thống kê. Mặc dù phần lớn thuật toán phân lớp đều có cơ chế xử
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
lý với những giá trị thiếu và lỗi trong tập dữ liệu, nhƣng bƣớc tiền xử lý này có
22
thể làm giảm sự hỗn độn trong quá trình học (xây dựng mô hình phân lớp).
- Phân tích sự cần thiết của dữ liệu
Có rất nhiều thuộc tính trong tập dữ liệu có thể hoàn toàn không cần
thiết hay liên quan đến một bài toán phân lớp cụ thể. Ví dụ dữ liệu về ngày
trong tuần hoàn toàn không cần thiết đối với ứng dụng phân tích độ rủi ro của
các khoản tiền cho vay của ngân hàng, nên thuộc tính này là dƣ thừa. Phân
tích sự cần thiết của dữ liệu nhằm mục đích loại bỏ những thuộc tính không
cần thiết, dƣ thừa khỏi quá trình học vì những thuộc tính đó sẽ làm chậm, phức
tạp và gây ra sự hiểu sai trong quá trình học dẫn tới một mô hình phân lớp
không dùng đƣợc.
- Chuyển đổi dữ liệu
Việc khái quát hóa dữ liệu lên mức khái niệm cao hơn đôi khi là cần
thiết trong quá trình tiền xử lý. Việc này đặc biệt hữu ích với những thuộc tính
liên tục (continuous attribute hay numeric attribute). Ví dụ các giá trị số của
thuộc tính thu nhập của khách hàng có thể đƣợc khái quát hóa thành các dãy giá
trị rời rạc: thấp, trung bình, cao. Tƣơng tự với những thuộc tính rời rạc
(categorical attribute) nhƣ địa chỉ phố có thể đƣợc khái quát hóa lên thành
thành phố. Việc khái quát hóa làm cô đọng dữ liệu học nguyên thủy, vì vậy
các thao tác vào/ ra liên quan đến quá trình học sẽ giảm.
1.3.3. Mạng neuron
a. Mạng Neuron nhân tạo
Mạng neuron nhân tạo (ANN: artificial neuron networks) là mạng đƣợc
xây dựng bằng cách sao chép lại các nguyên lý tổ chức của hệ neuron của con ngƣời. Bộ óc của con ngƣời là một hệ neuron gồm có 1010 đến 1012 neuron
đƣợc tổ chức có cấu trúc vào khoảng 200 mô hình khác nhau dƣới dạng nhiều
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
lớp.
23
Hình 1.8. Cấu trúc cơ bản của một neuron
Cấu trúc cơ bản của một neuron của hệ neuron con ngƣời gồm: các đầu
vào (dendrite), thân neuron (soma) và đầu ra (axon). Mỗi neuron có nhiều đầu
vào và chỉ một đầu ra. Thân neuron là phần tử xử lý có chức năng thu nhận tất
cả các thông tin đến từ các đầu vào, tính toán và đƣa ra quyết định ở ngõ ra để
gởi thông tin đến các neuron khác. SYNAP là khớp nối giữa đầu vào của
neuron này với đầu ra của neuron khác.
Tín hiệu điện áp đƣợc truyền từ neuron này sang neuron khác. Tín hiệu
điện áp dƣơng đƣợc coi nhƣ là tín hiệu kích động (excitory) để kích động
neuron gởi tín hiệu đến các neuron khác và điện áp âm đƣợc xem nhƣ là tín
hiệu ức chế (inhibitory) để ức chế neuron gởi tín hiệu đến nhiều neuron khác.
Điện áp không thì không có tín hiệu kết nối giữa hai neuron.
Đối với hệ neuron con ngƣời có cấu trúc cơ bản gồm: lớp neuron đầu
vào (lớp này đƣợc kết nối với các phần tử cảm biến nhƣ miệng, mắt, mũi, tai
và da), các lớp neuron ẩn và lớp neuron đầu ra (lớp này đƣợc kết nối với các
phần tử cơ nhƣ tay, chân).
Cƣờng độ kết nối SYNAP xác định lƣợng tín hiệu truyền đến đầu vào
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
và giá trị cƣờng độ synap đƣợc gọi là trọng số.
24
Ngƣời ta dùng mạng neuron nhân tạo để giải quyết các bài toán trong
kỹ thuật (mục tiêu là mô phỏng hoạt động của não ngƣời)
Để xây dựng một mạng neuron nhân tạo giống nhƣ hệ neuron con
ngƣời,vào năm 1943 Mc.culloch và Pitts đề ra cấu trúc cơ bản của một neuron
thứ I trong mô hình của mạng neuron nhân tạo.
Hình 1.9. Mô hình neuron của Mc. Culloch và Pitts
Trong đó: xj(k): tín hiệu vào thứ j ở thời điểm k
Yi(k): tín hiệu ra thứ I ở thời điểm k
Wij: trọng số trên tín hiệu vào thứ j
Фi : Ngƣỡng tác động của neuron i
F: Hàm tích hợp
A(.): Hàm tác động
Wij biểu diễn cƣờng độ kết nối giữa neuron thứ j và neuron thứ i.wij >0
tƣơng ứng với tín hiệu tác động,wij <0 tƣơng ứng với tín hiệu ức chế và wij =0
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
thí không có sự kết hợp giữa hai neuron.
25
b. Mạng truyền thẳng nhiều lớ p Định nghĩa hàm Squashing: Hàm a(f):R→[0,1] (hoặc R→[-1,1]) đƣợc
gọi là hàm squashing nếu a(f) không giảm khi f tăng, a(-∞)=0 (hoặc a(-∞)= -
1) và a(+∞)=1.
Ngƣời ta chứng minh đƣợc rằng mọi quan hệ phi tuyến đều có thể đƣợc
xấp xỉ với độ chính sát tùy ý bởi một mạng truyền thẳng nhiều lớp với số nút
ẩn đủ lớn, hàm tích hợp tuyến tính hoặc đa thức và hàm tác động squashing.
Hình 1.10. Mạng truyền thẳng ba lớp
c. Giải thuật lan truyền ngƣợc
Giải thuật lan truyền ngƣợc là một trong các giải thuật quan trong nhất
trong lịch sử phát triển của các mạng neuron nhân tạo. Giải thuật đƣợc sử
dụng để huấn luyện các mạng truyền thẳng nhiều lớp với các phần tử xử lý
trong mạng có hàm tác động là hàm phi tuyến. Cho tập các cặp mẫu huấn
luyện vào – ra (x(k),d(k)) với k = 1,2,…p, giải thuật sẽ cung cấp một thủ tục
cho việc cập nhật các trọng số trong mạng từ lớp neuron đầu ra tới lớp neuron
đầu vào. Giải thuật vận hành theo 2 luồng dữ liệu, đầu tiên là các mẫu huấn
luyện x(k) đƣợc truyền từ lớp neuron đầu vào đến lớp neuron đầu ra và cho
kết quả thực sự y(k) của lớp neuron đầu ra. Sau đó các tín hiệu sai lệch giữa
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
neuron đầu ra mong muốn d(k) và đầu ra thực sự y(k) của mạng đƣợc truyền
26
ngƣợc từ lớp đầu ra đến các lớp đứng trƣớc để cập nhật các trọng số trong
mạng.
Giả sử xét mạng truyền thẳng ba lớp nhƣ hình 2.12 gồm lớp neuron đầu
vào (input layer), lớp neuron ẩn (hidden layer) và lớp neuron đầu ra (output
layer)
Lớp neuron đầu vào của mạng có m đầu vào trong đó x1…..,xi..,xm. Lớp
neuron ẩn có r phần tử xử lý với các đầu ra, đó là z1….,zq…..,zr.và lớp neuron
đầu ra của mạng có n phần tử xử lý với n đầu ra,đó là y1….,yi….,yn. Trọng số
kết nối giữa đầu vào thứ j của lớp neuron đầu vào với phần tử xử lý thứ q của
lớp neuron ẩn là vqj và trọng số kết nối giữa phần tử xử lý thứ q của lớp
neuron ẩn với phần tử xử lý thứ i của lớp neuron đầu ra là wiq.
Dữ liệu huấn luyện : {x(k),d(k),k =1,2….p}
Lớp ẩn:
Hàm tích hợp (1.12)
Hàm tác động (1.13)
Lớp ra :
Hàm tích hợp (1.14)
Hàm tác động (1.15)
Hàm mục tiêu :
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
(1.16)
27
Luật học delta tổng quát hóa đƣợc xây dựng dùng phƣơng pháp
gradient descent.
Xét các nhánh nối giữa nút ẩn và nút ra :
(1.17)
Xét các nhánh nối giữa nút vào và nút ẩn :
(1.18)
Luật học lan truyền ngƣợc :
Nhập: Tập các cặp mẫu huấn luyện {x(k),d(k),k =1,2,…..p}, trong đó
các vector đầu vào với các phần tử cuối cùng đƣợc gán bằng -1.
Bƣớc 0: Khởi động trị
Chọn hằng số học η >0, ngƣỡng dừng Emax
Các trọng số có trị nhỏ và ngẫu nhiên
E =0 , K =1
Bƣớc 1: Lan truyền thuận dữ liệu :
Áp dụng mẫu dữ liệu thứ k
Xác định tín hiệu tại các nút trong mạng
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Xác định hàm mục tiêu
28
Xác định tín hiệu học tại các nút
Bƣớc 2: Lan truyền ngƣợc sai lệch :
Cập nhật các vector trọng số
Xác định các tín hiệu học
Bƣớc 3: Kiểm tra :
Nếu E > Emax: k =1 ,nhảy đến bƣớc 1
Nếu E ≤ Emax: kết thúc
Trong mạng truyền thẳng nhiều lớp, việc huấn luyện mạng dùng giải
thuật lan truyền ngƣợc chịu tác động bởi các yếu tố:
- Trị khởi động của các trọng số: các trọng số nên khởi động với các
giá trị bé và ngẫu nhiên. Các giá trị lớn của vector trọng số có thể làm tác
động bão hòa khi bắt đầu học.
- Hằng số học: η lớn sẽ hội tụ nhanh nhƣng có thể gây vọt lố, do đó có
thể chọn η giảm dần
- Hàm mục tiêu
- Luật học
- Dữ liệu huấn luyện
- Số nút ẩn
Giải thuật gradient descent rất chậm bởi vì nó yêu cầu tốc độ học thấp
cho sự ổn định quá trình học.Việc lựa chọn hằng số học η cho phù hợp mạng
nhiều lớp là không đơn giản, η quá lớn dẫn đến quá trình học không ổn định
và ngƣợc lại η quá nhỏ sẽ làm cho thời gian huấn luyện lớn.
Mạng phụ thuộc vào số neuron có trong lớp ẩn. quá ít neuron sẽ dẫn
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
đến tình trạng thiếu, quá nhiều neuron sẽ dẫn đến tình trạng thừa.
29
CHƢƠNG 2.
TRÌNH BÀY SỬ DỤNG MÔ HÌNH TÚI TỪ ĐỂ XÂY DỰNG BỘ
MÔ TẢ CHO VẬT THỂ VÀ THUẬT TOÁN NHẬN DIỆN VẬT THỂ
VỚI MẠNG NEURON
2.1. Mô hình túi từ trong phân lớp văn bản
Mô hình túi từ (Bag-of-words model) là một phƣơng pháp biểu diễn
đơn giản thƣờng đƣợc sử dụng trong xử lý ngôn ngữ tự nhiên (Natural
Language Processing), tìm kiếm thông tin (Information Retrieval) và trong
các phƣơng pháp phân lớp văn bản (Document Classification). Mô hình này
đƣợc nhắc tới lần đầu tiên (trong ngôn ngữ học) vào năm 1954 trong bài báo
của Zellig Harris.
Phân lớp văn bản thƣờng đƣợc thực hiện dựa trên mô hình ngữ nghĩa
hoặc máy học. Theo M. Hearst (Giáo sƣ đầu ngành về phân tích dữ liệu của
Đại học California, Berkeley), phân lớp văn bản theo hƣớng tiếp cận ngữ
nghĩa là vấn đề rất khó và phức tạp. Trong khi đó, hƣớng tiếp cận dựa trên các
phƣơng pháp máy học (machine learning) lại đơn giản và cho nhiều kết quả
tốt trong thực tiễn. Hầu hết các phƣơng pháp phân loại văn bản dựa trên mô
hình thống kê từ và các giải thuật học tự động. Mô hình túi từ chính là mô
hình thống kế và cho phép sử dụng cùng với các phƣơng pháp học tự động.
Theo mô hình túi từ, dữ liệu văn bản không có cấu trúc (độ dài khác
nhau) đƣợc biểu diễn tần số xuất hiện của từ trong văn bản dƣới dạng một
vector. Tập các dữ liệu văn bản đƣợc chuyển về dạng một bảng có số cột
(chiều, từ vựng) rất lớn. Từ bảng dữ liệu này có thể huấn luyện các mô hình
học máy tự động. Các mô hình máy học thƣờng đƣợc sử dụng bao gồm giải
thuật k-means (kNN), Naïve Bayes (NB), cây quyết định (Decision Tree -
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
DT), Support Vector Machine (SVM), Boosting, và Random Forest (RF).
30
Theo tiếp cận phân lớp tự động bằng mô hình máy học, việc phân loại
văn bản bao gồm hai bƣớc chính: biểu diễn dữ liệu văn bản, huấn luyện mô
hình phân lớp. Vấn đề khó khăn trong phân lớp văn bản dựa trên học máy
nằm ở chỗ, văn bản đầu vào ở dạng không cấu trúc, trong khi các giải thuật
máy học ở giai đoạn tiếp theo thƣờng chỉ có thể xử lý đƣợc dữ liệu dạng bảng
(mỗi dòng là một phần tử dữ liệu, cột là chiều hay thuộc tính). Để giải quyết
vấn đề này, ngƣời ta sử dụng mô hình túi từ.
Mô hình túi từ cho phép biểu diễn tập dữ liệu văn bản về cấu trúc bảng.
Bƣớc tiền xử lý này bao gồm việc phân tích từ vựng và tách các từ trong nội
dung của tập văn bản, chọn tập hợp các từ có ý nghĩa quan trọng dùng để
phân loại, biểu diễn dữ liệu văn bản về dạng bảng để từ đó các giải thuật
máy học có thể học để phân loại. Ở bƣớc phân tích từ vựng, công việc có thể là
quy về từ gốc của các biến thể từ, có thể xóa bỏ các từ không có ý nghĩa cho
việc phân lớp nhƣ các mạo từ, từ nối... Tiếp đến là tách các từ, đƣa vào tự điển.
Một văn bản đƣợc biểu diễn thành một vector n chiều, trong đó giá trị thành
phần thứ j là tần số xuất hiện từ thứ j trong văn bản. Nếu xét tập T gồm m văn
bản và tự điển có n từ vựng, thì T có thể đƣợc biểu diễn thành bảng D kích
thƣớc m x n, dòng thứ i của bảng là véc tơ biểu diễn văn bản thứ i tƣơng ứng.
Chúng ta có thể thấy rằng, khi tập dữ liệu chứa vài trăm văn bản,
bộ từ điển có thể lên đến khoảng vài chục ngàn từ. Do đó bảng D có số cột
n rất lớn. Khi đó, các mô hình máy học nhƣ kNN, NB hay DT có thể xử lý
kém hiệu quả. Để khắc phục, ngƣời ta thƣờng thực hiện việc rút gọn chiều dữ
liệu. Phƣơng pháp rút gọn có thể là lựa chọn những từ quan trọng nhất để có
thể phân biệt văn bản này với văn bản khác, hay phƣơng pháp giảm chiều.
Các phƣơng pháp để lựa chọn các từ có thể dựa vào ngƣỡng tần số xuất hiện,
độ lợi thông tin (information gain), thông tin tƣơng quan (mutual
information). Bƣớc rút gọn này thƣờng gây mất thông tin, làm giảm độ chính
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
xác của bộ phân lớp sau này. Tuy nhiên, nếu không thực hiện bƣớc rút gọn
31
chiều, chúng ta cần xây dựng giải thuật máy có thể xử lý đƣợc bảng có số
chiều lớn.
2.2. Ý tƣởng và Thuật toán
Để thực hiện phân lớp với mạng neuron, bộ mô tả (descriptor) vật thể
thƣờng đƣợc biểu diễn bằng một vector có số chiều cố định và bằng số lƣợng
neuron ở lớp input. Để tạo ra bộ mô tả này có thể sử dụng nhiều loại đặc
trƣng: đƣờng viền (contour), góc nghiêng hoặc điểm đặc biệt trên vật thể,
vùng đặc biệt trên vật thể, v.v…Việc lựa chọn đặc trƣng này có ý nghĩa quan
trọng liên quan đến đặc điểm của vật thể cần nhận diện và phƣơng pháp phân
lớp đƣợc sử dụng. Đối với bài toán nhận diện vật thể có hình dáng thay đổi
nhƣ hình bàn tay, bộ mô tả cần có những đặc điểm: bền vững với biến đổi
xoay hình, di chuyển hình và thay đổi độ phóng đại hình vật thể. Ngoài ra, bộ
mô tả này cần có kích thƣớc cố định và mang tính đặc trƣng cho lớp vật thể
cần nhận diện.
Trong luận văn trình bày một phƣơng pháp mô tả vật thể dựa trên mô
hình túi từ để tạo ra bộ mô tả cho vật thể đáp ứng đƣợc các yêu cầu đề ra: là
một vector có số chiều cố định; không phụ thuộc vào các biến đổi affine
(xoay hình, di chuyển hình, phóng đại hình). Phần này cũng sẽ trình bày một
thuật toán nhận diện vật thể sử dụng phƣơng pháp mô tả để trình bày kết hợp
với mạng neuron.
Ý tƣởng của của phƣơng pháp mô tả vật thể này nằm ở chỗ, một hình
vật thể đƣợc coi nhƣ một tài liệu văn bản, trong đó các đặc trƣng đƣợc xem
nhƣ các từ tạo thành văn bản. Tài liệu này đƣợc phân lớp dựa trên việc tính
toán số luần xuất hiện của một số “từ khóa”. Đây là ý tƣởng chính lấy từ
phƣơng pháp “túi từ” (TA: bag-of-words hay BOW) đƣợc sử dụng rộng rãi
trong xử lý văn bản.
Để đƣa ý tƣởng này vào nhận diện vật thể, các đặc trƣng của vật thể
đƣợc trích ra từ một tập hợp hình ảnh (tập huấn luyện) và đƣợc chia thành các
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
nhóm. Trong mỗi nhóm chọn ra một đặc trƣng làm “đại diện” cho toàn bộ
32
nhóm. Mỗi đặc trƣng đại diện này sẽ đƣợc sử dụng làm một từ khóa. Tập hợp
các từ khóa này tạo thành bộ “từ điển”. Khi đối chiếu các đặc trƣng trích ra từ
một bức hình với các từ khóa trong từ điển sẽ thu đƣợc một biểu đồ
(histogram) tần số của các từ khóa. Biểu đồ này là một vector có kích thƣớc
cố định và có thể sử dụng làm vector đầu vào cho các phƣơng pháp nhận diện
(vd: mạng neuron).
Hình 2.1. Mô tả ý tưởng của thuật toán nhận diện vật thể trình bày
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
dựa trên mô hình túi từ
33
Một cách tổng quát, ý tƣởng của mô hình túi từ khi áp dụng ở đây cho
phép tạo ra một bộ mô tả của vật thể là một vector có kích thƣớc cố định và
có giá trị tƣơng đối đặc trƣng cho lớp vật thể. Bộ mô tả này sẽ đƣợc sử dụng
làm vector đầu vào cho mạng neuron. Sơ đồ tổng quát của ý tƣởng này đƣợc
thể hiện trong hình 2.1.
Để sử dụng bộ mô tả kết hợp với mạng neuron để nhận diện vật thể,
luận văn này trình bày một thuật toán thể hiện trong hình 2.2.
Hình 2.2. Sơ đồ tổng quát của thuật toán nhận diện vật thể trình bày
Thuật toán này bao gồm các giai đoạn sau:
1. Huấn luyện:
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
a. Sinh ra bộ từ điển:
34
- i. Trích tất cả đặc trƣng từ tất cả các ảnh trong bộ ảnh huấn luyện với
phƣơng pháp SURF: Từ hình của mỗi vật thể thu đƣợc một số lƣợng tƣơng
đối lớn đặc trƣng (ví dụ, đối với hình bàn tay mở có thể thu đƣợc từ 20 đến
100 đặc trƣng). Mỗi đặc trƣng này đƣợc mô tả bởi một vector 64 chiều gọi là
mô tả SURF (SURF-descriptor).
- ii. Phân cụm các đặc trƣng thu đƣợc sử dụng thuật toán K-means: Do
số lƣợng SURF-descriptor khá lớn và không cố định nên không thể trực tiếp
sử dụng chúng với mạng neuron. Ở bƣớc này, tất cả các SURF-descriptor
đƣợc phân thành các cluster. Mỗi cluster chứa một loạt các SURF-descriptor
có giá trị gần nhau.
- iii. Sinh ra từ điển từ các cụm thu đƣợc: Đối với mỗi cluster chọn ra
một SURF-descriptor đại diện cho cả nhóm. Tập hợp tất cả các SURF-
descriptor đại diện và sắp theo một trật tự cố định sẽ tạo ra một “từ điển”. Bộ từ
điển này sẽ đƣợc dùng làm cơ sở để tạo ra một loại mô tả mới phù hợp với các
yêu cầu đặt ra. Trong luận văn sẽ gọi loại mô tả mới này là BOW-descriptor.
BOW-descriptor sẽ đƣợc sử dụng làm vector đầu vào cho mạng neuron.
b. Sinh các bộ mô tả và huấn luyện mạng neuron:
- i. Ứng với mỗi ảnh trong bộ ảnh huấn luyện trích chọn ra các đặc
trƣng bằng phƣơng pháp SURF: Ở bƣớc a.i. chúng ta đã gộp tất cả các đặc
trƣng trích đƣợc qua phƣơng pháp SURF để phục vụ sinh từ điển. Tại bƣớc
này chúng ta để riêng các SURF-descriptor của từng ảnh vật thể trong bộ
huấn luyện nhằm tạo ra BOW-descriptor của ảnh này. Tập hợp các BOW-
descriptor của tất cả các ảnh trong bộ huấn luyện sẽ đƣợc sử dụng làm dữ liệu
huấn luyện của mạng neuron.
- ii. Sinh ra BOW-descriptor của từng ảnh trong bộ ảnh huấn luyện:
Tất cả SURF-descriptor thu đƣợc từ một ảnh sẽ đƣợc đối điếu với từ điển.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Mỗi SURF-descriptor sẽ đƣợc so sánh với một từ trong từ điển để tìm ra từ
35
gần với nó nhất. SURF-descriptor sẽ đƣợc thay thế bằng từ tƣơng đƣơng
trong từ điển. Khi đếm số lần xuất hiện của mỗi từ ta sẽ thu đƣợc một
histogram. Histogram này chính là bộ mô tả của ảnh vật thể chúng ta đang cần
tìm (ở trên đã quy ƣớc sẽ gọi là BOW-descriptor).
- iii. Sử dụng tất cả các BOW-descriptor thu đƣợc này làm bộ dữ liệu
huấn luyện để dạy cho mạng neuron.
2. Nhận diện:
- Trích đặc trƣng của vật thể dựa trên phƣơng pháp SURF;
- Đối chiếu các đặc trƣng thu đƣợc với từ điển để thu đƣợc BOW-
descriptor của ảnh vật thể;
- Sử dụng bộ mô tả này làm dữ liệu đầu vào để nhận diện với mạng
neuron đã đƣợc huấn luyện ở bƣớc trên.
2.3. Diễn giải chi tiết thuật toán
2.3.1. Trích chọn và mô tả đặc trưng với SURF
Trong lĩnh vực phân loại ảnh sử dụng nhiều phƣơng pháp trích chọn
đặc trƣng: bộ dò Harris, phƣơng pháp SIFT (Scale-invariant feature
transform), DoG (Difference of Gaussians filter), SURF (Speeded Up Robust
Features), v.v… Song song với trích chọn đặc trƣng cũng tồn tại nhiều
phƣơng pháp mô tả đặc trƣng: Gaussian derivative, moment invariants,
complex features, steerable filters, phase-based local features, SIFT, SURF.
[4] đƣa ra kết quả so sánh và đánh giá các phƣơng pháp trích chọn đặc trƣng.
Căn cứ vào đánh giá này, SIFT và SURF đƣợc xem là hai phƣơng pháp cho
kết quả tốt nhất và phù hợp nhất với tiêu chí của đặc trƣng mà phƣơng pháp
trong luận văn này cần tới. SIFT đƣợc đánh giá có thể trích chọn đƣợc nhiều
đặc trƣng hơn nhƣng tốc độ hoạt động thấp hơn so với SURF. SURF đƣợc
đánh giá cao hơn khi áp dụng trên những hình có kích thƣớc nhỏ. Do đó,
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
trong thuật toán, để trích chọn đặc trƣng ban đầu trong pha sinh từ điển, luận
36
văn này quyết định sử dụng phƣơng pháp trích chọn và biểu diễn đặc trƣng
SURF.
Phƣơng pháp trích chọn đặc trƣng SURF hoạt động dựa trên tính toán
gần đúng giá trị ma trận Hessian. Đối với mỗi điểm ảnh , ma trận
Hessian tại P với tỷ lệ σ đƣợc xác định dựa theo công thức sau [2.1]:
(2.1)
Trong đó , , – đạo hàm Gaussian bậc hai
, , tại điểm P.
Để rút ngắn thời gian xử lý, đạo hàm bậc hai của hàm Gaussian đƣợc
tính gần đúng bằng cách sử dụng “box filter” và “integral image”. Integral
Image cho phép đơn giản hóa quá trình phân tích không gian tỷ lệ (TA: scale
space). Định thức của ma trận Hessian đƣợc sử dụng để lựa chọn tọa độ điểm
mong muốn và tỷ lệ. Tọa độ điểm này đƣợc xác định nhờ phƣơng pháp non-
maximum suppression. Cách tính này giúp SURF-descriptor bền vững khi
thay đổi độ phóng đại hình.
Phƣơng thức SURF cũng tạo ra một vùng hình tròn xung quan điểm lựa
chọn để xác định hƣớng nghiêng đặc trƣng và giúp đặc trƣng SURF bền vững
khi xoay hình (khi xoay hình vẫn có thể tìm lại đƣợc đặc trƣng đó). Do SURF
xác định điểm đặc biệt tren cơ sở các thông tin cục bộ quan điểm đó, số lƣợng
đặc trƣng phát hiện đƣợc phụ thuộc vào ảnh và không cố định. Do đó, tập hợp
các đặc trƣng SURF không thể trực tiếp sử dụng cho mạng neuron và các
phƣơng pháp phân lớp khác.
Trong hình 2.3 mô tả các đặc trƣng SURF đƣợc tìm ra trên hình chụp
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
một bàn tay với các tỷ lệ và góc nghiêng khác nhau. Mỗi đặc trƣng này đƣợc
37
mô tả bởi một vector có kích thƣớc cố định 64 (đối với phƣơng thức biểu diễn
nguyên bản của SURF) hoặc 128 (với phƣơng thức biểu diễn mở rộng).
Hình 2.3. Đặc trưng được trích chọn bằng SURF
2.3.2. Phân cụm đặc trưng SURF và sinh từ điển
Nhƣ trên đã phân tích, mô tả SURF mặc dù có kích thƣớc cố định (64
hoặc 128 phần tử) nhƣng có số lƣợng khá lớn với mỗi vật thể, đồng thời số
lƣợng này cũng không cố định và không hoàn toàn xác định với mỗi vật thể.
Do đó, mô tả SURF không thể sử dụng trực tiếp cho mạng neuron. Để giải
quyết vấn đề, trong luận văn này trình bày giải pháp tạo ra một loại mô tả mới
dƣới dạng một vector có kích thƣớc cố định đối với mỗi vật thể cần nhận diện.
Nhƣ đã trình bày ở phần ý tƣởng 2.2, dựa trên mô hình túi từ, nếu
chúng ta coi ảnh của mỗi vật thể là một tài liệu văn bản, và mỗi mô tả SURF
thu đƣợc ở bƣớc trích chọn đặc trƣng là một từ tạo nên văn bản đó thì việc
tính số lần xuất hiện của một số các từ khóa quan trọng trong văn bản có thể
giúp xác định đƣợc nội dung của văn bản đó thuộc thể loại nào.
Dựa theo ý tƣởng này, tất cả các mô tả SURF thu đƣợc từ toàn bộ các
hình vật thể trong bộ dữ liệu huấn luyện sẽ đƣợc phân thành các nhóm dựa
trên một thuật toán phân cụm. Thực tế là, các đặc trƣng trích ra từ cùng một
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
lớp vật thể sẽ phải có điểm tƣơng đồng, đồng thời trong rất nhiều đặc trƣng
38
trích ra cũng có thể có giá trị rất gần nhau. Việc phân cụm các mô tả SURF
cho phép gộp các đặc trƣng gần nhau thành một nhóm và lựa chọn ra một đại
diện duy nhất cho cả nhóm. Khi đó một đối tƣợng hoàn toàn có thể đƣợc mô
tả thông qua các đại diện này.
Việc phân cụm các mô tả SURF có thể đƣợc thực hiện nhờ nhiều thuật
toán phân cụm khác nhau: k-means, C-means, KRAB, các thuật toán EM,
DBSCAN, v.v… Thực tế thấy rằng có thể áp dụng bất kỳ phƣơng pháp phân
cụm nào. Tuy nhiên, trong luận văn này trình bày áp dụng phƣơng pháp phân
cụm k-means dựa trên sự đơn giản và tốc độ thực hiện.
K-means phân chia tập hợp các phần tử trong một không gian vector
thành k cụm với k là giá trị cung cấp sẵn. Ý tƣởng của k-means là tại mỗi lƣợt
duyệt (iteration) sẽ tính toán lại giá trị trọng tâm (center of mass) của mỗi
cụm thu đƣợc từ bƣớc trƣớc, sau đó các vector lại đƣợc chia thành cụm tƣơng
ứng nếu nó “gần” hơn so với giá trị trọng tâm này. Thuật toán dừng hoạt động
nếu tại một lƣợt duyệt nào đó không có sự thay đổi về các cụm hoặc sau một
số lƣợt duyệt xác định trƣớc. K-means hƣớng tới cực tiểu hóa độ lệch tổng
bình phƣơng “khoảng cách” từ các vector tới trọng tâm của cụm theo công
thức sau:
(2.2)
Trong đó: k – số cụm cho trƣớc; – các cụm thu đƣợc; – trọng tâm
của các vector ; x – tập hợp các vector đầu vào.
Khi áp dụng k-means cần cung cấp sẵn số lƣợng cụm mong muốn. Nếu
mỗi cụm đƣợc coi là một hợp của các đặc trƣng gần giống nhau (tƣơng tự nhƣ
các từ có nghĩa tƣơng tự nhau trong văn bản và có thể thay bằng một từ khóa
duy nhất) thì số lƣợng cụm chính là tổng số lƣợng “từ khóa”; trọng tâm của
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
mỗi cụm chính là từ khóa sẽ đại diện cho cả cụm. Tập hợp tất cả các từ khóa
39
này sắp xếp theo một trật tự nhất định chính là bộ “từ điển” sẽ đƣợc dùng để
tạo ra loại mô tả mới cho vật thể.
Giả sử các đặc trƣng trích đƣợc qua phƣơng thức SURF từ tất cả các vật thể thuộc cùng một lớp là không trùng lặp và chỉ đặc trƣng cho vật thể thuộc lớp đó, số lƣợng cụm khi áp dụng k-means (hay là số từ khóa trong bộ
từ điển) có thể tính gần đúng theo công thức sau: (2.3)
Trong đó K – số lƣợng cụm; N – số lƣợng lớp vật thể; – số lƣợng ảnh
huấn luyện của lớp i; – số lƣợng đặc trƣng trích ra từ mẫu thứ j của lớp i.
Khi kết thức quá trình phân cụm sẽ thu đƣợc tập hợp các vector trọng tâm của các cụm. Mỗi vector này cũng chính là một mô tả SURF làm đại diện cho tất cả các vector khác trong cụm. Mỗi hình vật thể sau khi trích chọn đặc trƣng SURF sẽ đem so sánh với tập hợp vector trọng tâm này. Đặc trƣng nào gần trọng tâm nhất sẽ đƣợc thay thế bởi vector trọng tâm. Khi đếm số lần xuất hiện của từng từ trong từ điển ta có thể xác định đƣợc lớp của vật thể đó.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 2.4. Mô tả trực quan quá trình phân cụm và sinh từ điển
40
2.3.3.Tạo loại mô tả vật thể mới dựa trên SURF và từ điển để dùng cho
mạng neuron
Đối với mỗi hình vật thể sẽ áp dụng phƣơng pháp SURF để trích tất cả
các đặc trƣng và tạo mô tả SURF cho từng đặc trƣng này. Đối với mỗi mô tả
SURF chúng ta tính khoảng cách Eclide tới từng trọng tâm của của mỗi cụm
và lựa chọn giá trị nhỏ nhất theo công thức:
(
(2.4)
Trong đó – khoảng cách từ vector đặc trƣng SURF p của vật
thể tới trọng tâm thứ k; N – số chiều của vector SURF (64 hoặc 12); p; –
trọng tâm thứ k.
Nếu khoảng cách này nhỏ hơn một giới hạn xác định trƣớc thì trọng
tâm đó sẽ đƣợc lựa chọn để thay thế cho đặc trƣng SURF của hình vật thể.
Sau khi thay thế tất cả các vector SURF gốc của vật thể bằng đại diện phù
hợp, vật thể sẽ đƣợc đặc trƣng bằng một histogram với số lần xuất hiện của
mỗi đại diện.
Lƣu ý, khi xây dựng bộ từ điển chúng ta chỉ sử dụng các hình chứa duy
nhất một vật thể (không có nhiễu và không có nền). Khi đó, các đặc trƣng trích
chọn ra để làm từ điển hoàn toàn đƣợc trích ra từ vật thể. Khi xây dựng bộ dữ
liệu huấn luyện, nhằm tăng khả năng của mạng, chúng ta sẽ đƣa thêm vào các
hình có nhiễu hoặc có nền. Khi đó, các đặc trƣng SURF trích chọn ra có thể
không thuộc về vật thể mà thuộc về nền hoặc yếu tố gây nhiễu. Do vậy cần
phải thiết lập một giá trị ngƣỡng khoảng cách để loại bỏ các đặc trƣng không
mong muốn này. Giá trị ngƣỡng có thể tính gần đúng với công thức sau:
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
(2.5)
41
Trong đó – khoảng cách ngƣỡng; – khoảng cách giữa các
trọng tâm và ; N – số lƣợng cụm.
Khi tất cả các đặc trƣng SURF của hình vật thể đã đƣợc thay thế bằng
các đại diện (trọng tâm cụm) tƣơng ứng, chúng ta sẽ xây dựng một histogram
chỉ ra số lần xuất hiện của mỗi đại diện. Histogram này sẽ đƣợc dùng làm một
mô tả mới, sau đây sẽ tạm gọi là đặc trƣng BOW hay mô tả BOW (bag-of-
words). Mô tả BOW này có kích thƣớc cố định bằng số cụm, đặc trƣng cho
lớp vật thể, và có thể sử dụng cho pha phân lớp với mạng neuron.
Hình 2.5. Vật thể và mô tả BOW tương ứng
Do SURF trích chọn ra các đặc trƣng cục bộ và không quan tân đến
quan hệ tƣơng đối giữa chúng, đặc trƣng BOW vừa xây dựng cũng không tính
đến quan hệ không gian giữa các điểm đặc trƣng của vật thể. Đối với bài toán
nhận diện bàn tay, đây là một đặc điểm có lợi do có thể chỉ cần luyện cho
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
thuật toán nhận diện một bàn tay nhƣng có thể sử dụng cho cả tay còn lại.
42
2.3.4. Huấn luyện và phân lớp với mạng neuron
Mô tả BOW tạo ra ở trên có thể đƣợc sử dụng với nhiều phƣơng pháp
phân lớp khác nhau. Trong luận văn này trình bày và áp dụng thử nghiệm
mạng neuron nhiều lớp để giải quyết bài toán phân lớp do độ chính xác cao và
tốc độ xử lý lớn, có thể áp dụng cho bài toán nhận diện theo thời gian thực.
Hình 2.6.Mạng neuron nhiều lớp
Mạng neuron nhiều lớp với truyền dẫn ngƣợc (TA: Multilayer
Perceptron – MLP) chứa 3 lớp hoặc nhiều hơn, bao gồm một lớp đầu vào, một
lớp đầu ra với một hoặc vài lớp ẩn. Số neuron ở lớp đầu vào đƣợc xác định
bằng số cụm đặc trƣng (đã tính trong phần 2.3.2); số neuron ở lớp đầu ra xác
định bằng số lƣợng lớp cần phân loại. Việc lựa chọn hàm kích hoạt phù hợp
thực hiện thông qua thực nghiệm.
Việc huấn luyện mạng đƣợc thực hiện bằng cách thay đổi giá trị trọng
số khi xử lý từng phần của bộ dữ liệu huấn luyện, đánh giá sai số đầu ra và
so sánh với kết quả dự kiến. Sai số đầu ra sẽ đƣợc truyền dẫn ngƣợc trở lại
các lớp trƣớc đó.
Nếu biểu diễn sai số tại đầu ra thứ j là ( - giá trị đích, -
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
giá trị do mạng tính ra) thì lỗi đầu ra có thể tính theo công thức:
43
Trong bƣớc tiếp theo cần tính độ thay đổi trọng số của từng liên kết sử
dụng phƣơng pháp gradient:
(2.6)
Trong đó: - giá trị ra của neuron trƣớc đó; - tốc độ huấn luyện.
Một vấn đề quan trọng khi áp dụng mạng neuron trong phân lớp là việc
lựa chọn cấu hình mạng, bao gồm lựa chọn số lƣợng lớp ẩn và số lƣợng
neuron ở từng lớp. Các yếu tố này ảnh hƣởng tới khả năng tổng hợp và tốc độ
xử lý của mạng. Tuy nhiên hiện không có các phƣơng pháp tiêu chuẩn để lựa
chọn cấu hình tối ƣu cho mạng. Luận văn này không đi sâu vào vấn đề tối ƣu
hóa mạng neuron mà chỉ sử dụng phƣơng pháp lựa chọn cấu hình theo chiến
thuật “thử và sai” với cấu hình ban đầu nhƣ sau: mạng có 3 lớp (1 lớp ẩn); số
neuron lớp đầu vào bằng số lƣợng cụm; số lƣợng neuron lớp đầu ra bằng số
lớp cần phân loại; số lƣợng neuron trong lớp ẩn bằng ba lần số neuron lớp đầu
vào. Sau đó sẽ đem mạng huấn luyện thử và tiến hành giảm dần số lƣợng
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
neuron lớp ẩn để đạt đƣợc tỉ lệ hợp lý giữa tốc độ xử lý và độ chính xác.
44
CHƢƠNG 3.
XÂY DỰNG CHƢƠNG TRÌNH THỬ NGHIỆM
Trong khuôn khổ luận văn này xây dựng chƣơng trình “Hand
Recognitor” để thử nghiệm hoạt động của thuật toán và tạo dữ liệu thử
nghiệm. Chƣơng này sẽ trình bày chi tiết về chƣơng trình.
Chƣơng trình này bao gồm đầy đủ các module cho phép tạo các bộ dữ
liệu thu trực tiếp từ camera, sinh từ điển, huấn luyện mạng neuron, thực hiện
test tự động trên các bộ dữ liệu hình thu sẵn, test thực tế với hình thu trực tiếp
từ camera máy tính.
Chƣơng trình thử nghiệm đƣợc xây dựng bằng ngôn ngữ lập trình C#
và sử dụng bộ thƣ viện OpenCV để đơn giản hóa một số công việc thu và xử
lý video.
3.1. Các lớp xây dựng chƣơng trình
Phần này trình bày chi tiết một số lớp chính để tạo ra các module của
chƣơng trình.
a. Module mạng neuron
Mạng neuron đƣợc xây dựng với hai lớp chính: «ANN_MPL» và
«ANNModel» (Hình 3.1). Lớp «ANN_MPL» dành cho huấn luyện và thử
nghiệm mạng; lớp «ANNModel» chứa thông tin cấu hình của mạng. Trong
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
bảng 3.1. mô tả sơ lƣợc một số thuộc tính và phƣơng thức của các lớp này.
45
Bảng 3.1. Mô tả các lớp để xây dựng mạng neuron
Lớp «ANNModel»
layerSize Cấu trúc mạng neuron lƣu dƣới dạng các ma trận (số lớp
và số neuron ở từng lớp).
parameters Danh sách tham số bắt buộc để tạo mạng.
Lớp «ANN_MPL»
Predict Yêu cầu mạng thực hiện nhận dạng (dự đoán kết quả).
Train Yêu cầu mạn bắt đầu thực hiện huấn luyện.
Cấu trúc «MCvANN_MLP_TrainParams»
term_crit Tiêu chí kết thúc huấn luyện.
bp_dw_scale Giá trị gradient weight.
bp_moment_scale Giá trị momentum.
Hình 3.1. Các lớp để xây dựng mạng neuron
b. Module SURF detector
SURF detector đƣợc sử dụng để trích chọn và biểu diễn các đặc trƣng
của hình vật thể dùng để sinh từ điển cũng nhƣ để sinh ra mô tả BOW. SURF
detector đƣợc xây dựng thông qua hai class: «SURFDetector» và
«SURFFeature». Mô tả sơ lƣợc các lớp này trình bày ở hình 3.2 và bảng 3.2. Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
46
Bảng 3.2. Mô tả các lớp của module SURF
Thuộc tính / phƣơng thức Mô tả
Lớp «SURFFeature» - mô tả SURF feature
Descriptor vector SURF
Mảng của các điểm đặc biệt phát hiện đƣợc
Point trên hình. Các đặc trƣng sẽ đƣợc trích và xây
dựng xung quanh các điểm này.
Lớp «SURFDetector»
SURFParams Các tham số cho SURF detector.
Phƣơng phức dùng để tìm các điểm đặc biệt DetectKeyPoints trên hình.
DetectFeatures Phát hiện tất cả các đặc trƣng SURF trên hình.
Tính toán danh sách các vector SURF của ComputeDescriptors hình.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 3.2. Mô tả các lớp của module SURF
47
c. Module sinh từ điển
Module sinh từ điển bao gồm bốn lớp: BOWSURFCalculator,
BOWDescriptorCalculator, BOWVocabularyGenerator, BOWParams. Lớp
BOWTrainingData dùng để sinh ra dữ liệu huấn luyện (mảng của các mô tả
BOW). Mô tả các lớp này trình bày ở bảng 3.3 và hình 3.3.
Bảng 3.3. Mô tả một số lớp thuộc module sinh từ điển
Thuộc tính/phƣơng thƣc Mô tả
Lớp «BOWSURFCalculator» dùng để tính ra các SURF descriptor
SURFparams Danh sách tham số cho SURF detector.
Tìm ra tất cả SURF descriptor trên hình và SURFComputeDescriptors lƣu lại dƣới dạng ma trận.
Tìm ra tất cả SURF descriptor trên hình và
SURFComputeDescriptorsList lƣu lại dƣới dạng danh sách.
Lớp «BOWDescriptorCalculator» dùng để tính ra BOW descriptor thông qua
từ điển và tập hợp SURF descriptor tìm ra từ ảnh.
Vocabulary Sinh từ điển
LoadVocabulary Tải từ điển từ file.
BOWComputeDescriptor Tính BOW descriptor.
Lớp «BOWVocabularyGenerator» dùng để sinh từ điển
Attempts Tham số cho k-means.
ClusterCount Số lƣợng từ trong từ điển.
TermCriteria Điều kiện dừng thuật toán.
Vocabulary Từ điển đƣợc tạo ra.
GenerateVocabulary Bắt đầu sinh từ điển.
SaveVocabulary Lƣu từ điển vào file.
Lớp «BOWParams» dùng để lƣu các tham số
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Clusters Số lƣợng từ trong từ điển.
48
Số lần thử của K-means. Attempts
Giá trị ngƣỡng Hessian. Hessian
Phiên bản SURF descriptor sử dụng (64 Extended hay 128).
LoadParams|SaveParams Tải | Lƣu danh sách tham số.
Lớp «BOWTrainingData» dùng để tạo ra các bộ dữ liệu.
Tính BOW descriptor. BOWDesCal
Tính SURF descriptor. BOWSurfCal
Sinh từ điển. BOWVocGen
Sinh dữ liệu huấn luyện. TrainingData
Từ điển. Vocabulary
GenerateTrainingData Bắt đầu sinh dữ liệu huấn luyện.
Lƣu dữ liệu lên đĩa. SaveTrainingData
Tải dữ liệu từ đĩa. LoadTrainingData
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 3.3. Các lớp thuộc module sinh từ điển
49
3.2. Chƣơng trình «Hand Recognitor»
Giao diện chính của chƣơng trình trình bày ở hình 3.4.
Hình 3.4. Giao diện chính của chương trình Hand Recognitor
Nhóm «Data» chứa các trƣờng để nhập dữ liệu từ file:
Codebook – file chứa dữ liệu từ điển sinh ra trong pha «sinh từ điển”;
ANN_BOW – file chứa thông tin về mạng neuron đã đƣợc huấn luyện sẵn;
Nhóm «Params» chứa các trƣờng để cung cấp tham số ban đầu cho
chƣơng trình:
Clusters – số lƣợng từ trong từ điển, đƣợc đƣa ra trong giai đoạn sinh
từ điển;
Attempts – số lần thử, đƣợc đƣa ra trong giai đoạn sinh từ điển;
Hessian – giá trị ngƣỡng Hessian, đƣợc đƣa ra trong giai đoạn sinh
từ điển;
Extended – số phần tử trong vector SURF (64 hoặc 128);
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Classes – số lƣợng và tên gọi các lớp, dùng khi test.
50
Tất cả các tham số này đƣợc đƣa ra tƣơng ứng với dữ liệu sử dụng
trong giai đoạn huấn huyện thuật toán.
Sau khi tải dữ liệu từ các file có thể bắt đầu bật camera (nút Camera).
Nếu chƣơng trình phát hiện đƣợc camera rỗi và liên kết đƣợc với chƣơng
trình, chƣơng trình có thể bắt đầu hoạt động.
Trong quá trình hoạt động có thể thay đổi không gian màu cho phù hợp
(HSL, RGB, Mixed – trong nhóm «Color Space»).
Để tạo dữ liệu thử nghiệm và test thuật toán nhận diện cần lựa chọn
Menu -> Hand form creator. Giao diện của module này trình bày ở hình 3.5.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 3.5. Giao diện module tạo dữ liệu và test thuật toán
51
Qúa trình thực hiện để có thể test nhận diện các hình dạng bàn tay bao
gồm các bƣớc sau:
Tạo ra bộ ảnh cho từng lớp (mỗi loại hình dạng bàn tay là một lớp);
Sinh từ điển;
Chuẩn bị dữ liệu để huấn luyện mạng neuron;
Khởi tạo và huấn luyện mạng neuron;
Thử nghiệm.
d. Tạo các bộ ảnh thử nghiệm
Để tạo bộ ảnh thử nghiệm, trong tab Real-time cần bật camera (nút
Camera), click chọn Indefined Region để kích hoạt việc lƣu hình ảnh từ
camera trong vùng đƣợc lựa chọn. Các hình sẽ đƣợc chụp liên tục theo
framerate của camera và lƣu thành từng thƣ mục riêng. Để sinh từ điển cần
chụp các hình không có nền với độ sáng tốt.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 3.6. Tab «Real-time» để tạo bộ dữ liệu
52
Nút bấm «Save to» cho phép chọn thƣ mục để lƣu các hình chụp
đƣợc. Click chọn Save object sẽ bắt đầu thu hình và lƣu hình. Trong hình
3.7 là ví dụ về các bộ dữ liệu thu đƣợc thuộc 4 lớp thử nghiệm: «Fist»,
«OK», «Palm», «Point».
Hình 3.7. Ví dụ về các ảnh thu được thuộc 4 lớp «Fist», «OK», «Palm»,
«Point»
e. Sinh từ điển và tạo dữ liệu huấn luyện
Quá trình sinh từ điển và tạo dữ liệu huấn luyện bao gồm các bƣớc:
Đặt các tham số cho k-means, SURF, số lƣợng và tên các lớp;
Tạo danh sách file từ bộ ảnh “sạch”;
Kích hoạt lệnh sinh từ điển và lƣu vào file;
Sử dụng file list và từ điển vừa tạo để sinh ra bộ dữ liệu huấn luyện.
Trƣớc khi có thể sinh từ điển cần phải tạo ra một bộ ảnh “sạch” thuộc
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
về các lớp cần nhận diện. Phƣơng pháp làm đã trình bày ở phần a. Trong tab
53
«Codebook Generation» (hình 3.8), ô «Image folder» cần chỉ ra đƣờng dẫn
tới nơi chứa thƣ mục ảnh “sạch”. Kết quả sẽ đƣợc lƣu trong file chỉ ra trong
mục Save Filelist to. Filelist là một file văn bản chứa danh sách tất cả các
hình thuộc tất cả các lớp trong bộ dữ liệu. Filelist sẽ đƣợc sử dụng để có thể
nhanh chóng duyệt tất cả các file ảnh trong bộ dữ liệu.
Hình 3.8. Giao diện module tạo dữ liệu và test thuật toán
Sau khi tạo ra một danh sách các hình ảnh, cần phải thiết lập các tham số:
Clusters - số lƣợng các "từ khóa" trong từ điển;
Attempts - số lần thử của các thuật toán K-means, thiết lập mặc định
bằng 2. Giá trị của tham số này càng lớn làm tăng thời gian sinh từ điển;
Hessian - ngƣỡng Hessian;
Extended - sử dụng một phiên bản mở rộng của mô tả SURF với 128
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
phần tử. Mặc định là phiên bản tiêu chuẩn với 64 phần tử. Phiên bản mở rộng
54
làm giảm đáng kể hiệu suất trong thời gian thực và cũng làm tăng thời gian
sinh từ điển;
Classes - danh sách các lớp.
Các giá trị «Clusters», «Hessian», «Extended» đƣợc xác định thông
qua một ứng dụng nhỏ «BOW params» (hình 3.9).
Hình 3.9. Ứng dụng «BOW params» để lựa chọn tham số
Ứng dụng nhỏ này cho phép chạy SURF detector để xử lý từng hình
ảnh riêng rẽ và tính toán số lƣợng các đặc trƣng trích xuất từ các hình ảnh,
cũng nhƣ thời gian xử lý đối với mỗi giá trị Hessian nhất định. Tiêu chí để lựa
chọn giá trị Hessian là tỷ lệ của số lƣợng đặc trích xuất đƣợc với thời gian xử
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
lý. Các thí nghiệm đã chỉ ra rằng tỷ lệ 50/20 (50 đặc trƣng trong 20 ms) cho
55
kết quả tốt nhất. Tiện ích này cũng cho phép thực hiện các phân tích tập hợp
các hình ảnh đƣợc tạo ra giai đoạn đầu. Hộp thoại sẽ cho biết số lƣợng
(khuyến cáo) của các cụm – chính là số từ trong từ điển (Hình. 3.10).
Hình 3.10. Kết quả phân tích bộ ảnh thuộc 4 lớp
Sau khi tạo ra danh sách ảnh và chỉ định tất cả các thông số, có thể bắt
đầu tạo ra từ điển (trong chƣơng trình này dùng từ codebook). Để thực hiện,
trong mục «save codebook to» cần xác định tập tin dữ liệu nơi sẽ lƣu từ điển,
và chọn «Create». Việc sinh từ điển thƣờng cần một thời gian dài. Tùy thuộc
vào tùy chọn và khối lƣợng của tập dữ liệu ảnh, việc sinh từ điển có thể mất
vài giờ. Bất cứ lúc nào, ngƣời dùng có thể đình chỉ quá trình và khôi phục lại
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
sau đó.
56
f. Chuẩn bị dữ liệu huấn luyện
Dữ liệu huấn luyện mạng neuron đƣợc sinh ra từ tập hình ảnh tạo ra
trong giai đoạn đầu (chính là bộ dữ liệu dùng để sinh từ điển). Tuy nhiên, để
tăng khả năng chịu nhiễu của thuật toán nhận diện, cần bổ sung thêm các ảnh
đƣợc chụp với hình nền trong nhiều điều kiện chiếu sáng khác nhau. Danh
sách hình ảnh, từ điển, và file đích sẽ chứa dữ liệu huấn luyện cần đƣa vào
các ô chọn tƣơng ứng: «File list», «codebook», và «Save to» trong nhóm
«Training data».
g. Tạo và huấn luyện mạng neuron
Mạng neuron đƣợc khởi tạo và huấn luyện trong tab «Neural Network»
(Hình 3.11). Thuật toán phát triển trong luận văn sử dụng mạng neuron đa lớp
lan truyền ngƣợc với một lớp ẩn.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 3.11. Giao diện để tạo và huấn luyện mạng neuron.
57
Tùy chọn để tạo và huấn luyện mạng neuron:
Input – số lƣợng neuron đầu vào, bằng với số từ khóa trong từ điển;
Hidden – số lƣợng neuron trong lớp ẩn;
Output – số lƣợng neuron lớp ra, bằng số lƣợng các lớp cần nhận diện;
Max iteration – số lƣợng tối đa các bƣớc lặp trong huấn luyện;
Epsilon – tiêu chí kết thúc huấn luyện;
DW scale – giá trị trọng lƣợng của gradient, chỉ sử dụng khi dùng
Back Prop;
Back Prop/RProp – phƣơng pháp truyền dẫn ngƣợc.
Sau khi xác định file với các dữ liệu huấn luyện có thể bắt đầu luyện
mạng neuron. Tập tin với cấu trúc của mạng nơron đƣợc đào tạo sẽ đƣợc lƣu
trữ sử dụng tiếp với chƣơng trình (trong khâu test và chạy thử nghiệm).
h. Test
Chƣơng trình hỗ trợ ba cách kiểm tra: kiểm tra tự động trên một bộ dữ
liệu kiểm tra, thử nghiệm "bằng tay" và thử nghiệm trong thời gian thực.
Tự động thử nghiệm đƣợc thực hiện trong tab «Testing». Để thực hiện
cần phải xác định các tập tin chứa từ điển đã tạo ra trong bƣớc trƣớc đó (hộp
«codebook»), tập tin với các trọng số của mạng neuron (hộp «ANN»), danh
sách các hình ảnh thử nghiệm (hộp «File list»), tập tin để lƣu kết quả (hộp
«Log file »). Hình 3.12 trình bày kết quả của quá trình phân loại hình ảnh
thử nghiệm (từ một bộ 583 hình ảnh) thành ba lớp: đá, giấy, kéo (trò chơi
oẳn-tù-tì).
Tab " checking" cho phép nhanh chóng kiểm tra phân loại trên một tập
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
hợp nhỏ của hình ảnh (Hình 3.13).
58
Hình 3.12. Tự động test độ chính xác của thuật toán
Kiểm tra việc thực hiện của các tay phân loại định hình trong thời gian
thực đƣợc thực hiện trong tab «Realtime» (Hình 3.14). Trong chế độ kiểm tra
này chƣơng trình có tích hợp các module phát hiện và theo dõi bàn tay (do bộ
thƣ viện OpenCV cung cấp sẵn) để tiện lợi hơn cho việc thử nghiệm trong
thời gian thực. Chế độ này cho chuyển đổi giữa các không gian màu sắc để
lựa chọn chế độ hiển thị màu sắc phù hợp nhất cho việc theo dõi (HSL, RGB,
Mixed). Lựa chọn «Stop tracking» sẽ dừng module theo dõi vật thể mà chỉ
thực hiện nhận diện trong một vùng định trƣớc. Tùy chọn «In defined region»
quy định một vùng màn hình nơi thu hình ảnh, đƣợc thiết kế để kiểm tra khả
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
năng nhận dạng bàn tay mà không thực hiện phát hiện và theo dõi.
59
Hình 3.13. Kiểm tra hoạt động của thuật toán
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 3.14. Thử nghiệm nhận diện trong thời gian thực
60
CHƢƠNG 4.
THỬ NGHIỆM THUẬT TOÁN VÀ PHÂN TÍCH KẾT QUẢ
Chƣơng này sẽ trình bày kết quả thử nghiệm thuật toán nhận diện hình
dạng bàn tay trên các tập dữ liệu khác nhau và đƣa ra đánh giá. Trong các thử
nghiệm này sử dụng các bộ dữ liệu do tác giả tự xây dựng và một số bộ dữ
liệu mở do các tác giả khác công bố.
4.1. Thử nghiệm với các bộ dữ liệu tự tạo
Để huấn luyện thuật toán, hai bộ dữ liệu đã đƣợc tạo ra: một bộ chứa
các hình ảnh “sạch” (chỉ chụp hình vật thể, không có nền, không có nhiễu)
dùng để sinh ra từ điển, một bộ chứa các hình ảnh với nền và nhiễu dùng để
huấn luyện. Trong giai đoạn test sử dụng ba bộ dữ liệu: một bộ với hình vật
thể không chứa nhiễu, một bộ có nền đơn giản, một bộ có độ sáng kém với
hình nền và các yếu tố nhiễu. Tất cả các bộ dữ liệu này chứa hình bàn tay
thuộc bốn lớp (Fist, Open Palm, Palm, V-Shape (hình 4.1)) và thu từ camera
của máy Notebook ASUS ULVT80.
Fist Open Palm Palm V-Shape
Hình 4.1. Các lớp vật thể trong các bộ dữ liệu
4.1.1. Giai đoạn sinh từ điển và huấn luyện
Bộ dữ liệu “sạch” để sinh từ điển chứa 1160 hình ảnh thuộc bốn lớp, cụ
thể nhƣ sau: lớp First – 269 hình, lớp Open Palm – 293 hình, lớp Palm – 284
hình, lớp V-Shape – 314 hình. Thuật toán trình bày cho phép xử lý các hình
ảnh với kích thƣớc bất kỳ. Tuy nhiên, để tiện lợi trong việc xây dựng các bộ
dữ liệu, tất cả các hình ảnh đều đƣợc chụp với cùng kích thƣớc 100x100 Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
61
pixel. Tất cả các hình trong bộ dữ liệu này chỉ chứa vật thể chụp ở nhiều góc
nghiêng và khoảng cách khác nhau, nền trắng và không có nhiễu (Hình 4.2).
Hình 4.2. Một phần bộ dữ liệu dùng để sinh từ điển
Số lƣợng đặc trƣng trích ra từ hình ảnh phụ thuộc vào ngƣỡng Hessian.
Nếu đặt giá trị này quá nhỏ, số lƣợng đặc trƣng tăng lên và thời gian xử lý
cũng tăng theo. Nếu đặt giá trị này quá lớn, số lƣợng đặc trƣng trích ra giảm
xuống và có thể ảnh hƣởng tới độ chính xác của thuật toán nhận dạng. Để
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
chọn đƣợc giá trị hợp lý của ngƣỡng Hessian sử dụng phƣơng pháp thực
62
nghiệm: nhiều giá trị khác nhau của ngƣỡng Hessian đƣợc sử dụng và đƣa vào
phân tích sau đó chọn giá trị Hessian nhỏ nhất mà thời gian xử lý mỗi bức ảnh
trong mức cho phép để có thể xử lý trong thời gian thực (để thu đƣợc số
lƣợng đặc trƣng lớn nhất có thể trong điều kiện giới hạn thời gian xử lý dƣới
20 ms để thuật toán có thể hoạt động trong thời gian thực với giả định camera
thu đƣợc tối thiểu 15 frame/s để đảm bảo hình thu đƣợc không bị giật). Trong
bảng 3.1 trình bày kết quả phân tích với giá trị ngƣỡng lần lƣợt là 0, 50, 100.
Bảng 4.1. Một số kết quả phân tích số lƣợng đặc trƣng với các giá trị
khác nhau của ngƣỡng Hessian.
Thời gian Số lƣợng đặc trƣng trung bình theo lớp
Giá trị Số lƣợng xử lý
Open Hessian đặc trƣng trung Fist Palm V-Shape Palm bình (ms)
48685 17 32 0 53 40 40
41060 15 25 50 46 32 35
13 22 100 36984 43 27 32
Kết quả này có nghĩa là, với giá trị Hessian = 0, từ 1160 hình của bộ dữ
liệu sinh từ điển trích ra đƣợc tổng cộng 48685 đặc trƣng, thời gian trung bình
để xử lý mỗi hình (trích đặc trƣng bằng SURF) là 17 ms, trung bình lớp First
có 32 đặc trƣng, lớp Open Palm – 53, lớp Palm – 40, lớp V-Shape – 40.
Tƣơng tự nhƣ vậy với giá trị Hessian bằng 50 và 100. Nhƣ vậy, trong trƣờng
hợp này có thể chọn giá trị Hessian = 0, và số lƣợng từ trong từ điển bằng
nhiều hơn 165 (tổng số lƣợng đặc trƣng trung bình). Điều này có thể đƣợc
giải thích là do kích thƣớc của ảnh vật thể trong bộ dữ liệu tƣơng đối nhỏ nên
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
giá trị Hessian không ảnh hƣởng nhiều đến thời gian xử lý.
63
Để huấn luyện mạng neuron, đối với mỗi lớp vật thể trong bộ dữ liệu
trên bổ sung thêm 100 hình đƣợc chụp với nền đơn giản và nhiều mức độ
chiếu sáng khác nhau để tăng thêm khả năng chịu nhiễu của thuật toán
(hình 4.3).
Hình 4.3. Bộ dữ liệu huấn luyện.
Trong các phần tiếp theo sẽ trình bày các kết quả test sau:
Test với bộ dữ liệu chứa các ảnh với nền đơn giản ở nhiều góc
nghiêng và khoảng cách khác nhau;
Test với bộ dữ liệu chứa các ảnh có nhiễu;
Test với bộ dữ liệu chứa các ảnh bị nhiễu nặng.
Tất cả test đƣợc thực hiện trên máy notebook ASUS ULVT80, hệ điều
hành Windows 7 64 bit, 4Gb RAM, camera tích hợp sẵn của máy với tốc độ
thu 15 frame/giây.
4.1.2. Test với bộ dữ liệu chứa các ảnh với nền đơn giản ở nhiều góc
nghiêng và khoảng cách khác nhau
Thí nghiệm này kiểm tra khả năng của thuật toán nhận diện với các ảnh
có nền đơn giản ở các góc nghiêng, khoảng cách và kích thƣớc hình khác
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
nhau. Trong thí nghiệm này sử dụng các bộ dữ liệu test sau đây:
64
Bộ dữ liệu gốc kích thƣớc 120x120, mỗi lớp chứa 500 hình;
Bộ dữ liệu kích thƣớc 100x100, mỗi lớp chứa 500 hình (là các hình
của bộ dữ liệu đầu tiên đƣợc thu nhỏ kích thƣớc);
Bộ dữ liệu kích thƣớc 80x80, mỗi lớp chứa 500 hình (là các hình của
bộ dữ liệu đầu tiên đƣợc thu nhỏ kích thƣớc);
Bộ dữ liệu kích thƣớc 50x50, mỗi lớp chứa 500 hình (là các hình của
bộ dữ liệu đầu tiên đƣợc thu nhỏ kích thƣớc).
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 4.4. Một số hình trong bộ dữ liệu test
65
Kết quả test đƣợc thể hiện trong bảng 4.2.
Bảng 4.2. Kết quả test với các bộ dữ liệu hình có kích thƣớc khác nhau
Kích thƣớc 120x120
Lớp
Open Fist Palm V-Shape Palm
Fist 493 0 0 0
Open Palm 0 499 0 0 Nhận diện
thành Palm 0 0 494 0
V-Shape 0 0 0 490
Không nhận diện 7 1 6 10
Kết quả Thời gian xử lý trung bình (ms)1 39 42 39 40
Độ chính xác (%) 98,6 99,8 98,8 98,0
Độ chính xác trung bình 98,8 %
Kích thƣớc 100x100
Lớp
Open Palm V-Shape Fist Palm
0 0 0 492 Fist
499 0 0 0 Open Palm Nhận diện
thành 0 493 0 0 Palm
0 0 490 0 V-Shape
1 Thời gian xử lý bao gồm thời gian trích đặc trƣng của SURF, thời gian tính vector
BOW, thời gian xử lý trong mạng neuron.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
1 7 10 8 Không nhận diện
66
Kết quả
28 Thời gian xử lý trung bình (ms) 31 29 30
98,4 Độ chính xác (%) 99,8 98,6 98,0
Độ chính xác trung bình 98,7 %
Kích thƣớc 80x80
Lớp
Open Fist Palm V-Shape Palm
490 Fist 0 0 0
0 Open Palm 499 0 0 Nhận diện
thành 0 Palm 0 491 0
0 V-Shape 0 0 489
10 Không nhận diện 1 9 11
Kết quả
14 Thời gian xử lý trung bình (ms) 16 15 15
98,0 Độ chính xác (%) 99,8 98,2 97,8
Độ chính xác trung bình 98,5 %
Kích thƣớc 50х50
Lớp
Open Fist Palm V-Shape Palm
444 Fist 6 22 23
10 Open Palm 470 11 12 Nhận diện
thành 9 Palm 8 443 13
14 V-Shape 7 11 441
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
23 Không nhận diện 9 13 11
67
Kết quả
Thời gian xử lý trung bình (ms) 14 16 15 15
Độ chính xác (%) 88,8 94,0 88,6 88,2
Độ chính xác trung bình 89,9 %
Kết quả thực nghiệm trên cho thấy sự chênh lệch nhỏ về độ chính xác
trung bình (trừ bộ hình kích thƣớc 50x50). Tuy nhiên thời gian xử lý trung bình
chênh lệch khá lớn (15 ms đối với bộ hình kích thƣớc 80x80, 40 ms với bộ hình
kích thƣớc 120x120). Tốc độ xử lý này chấp nhận đƣợc để sử dụng trong thời
gian thực (với camera có tốc độ thu 15 frame/giây thì thời gian xử lý mỗi frame
không đƣợc vƣợt quá 40 ms, nếu không sẽ tạo ra tình trạng giật hình).
Thuật toán trình bày đạt đƣợc kết quả nhận diện rất cao trong tình
huống lý tƣởng (một vật thể trên nền trơn) và không phụ thuộc vào khoảng
cách chụp hình cũng nhƣ góc nghiêng của vật thể trong hình.
Đối với bộ dữ liệu hình kích thƣớc 50x50, độ chính xác giảm mạnh và
số lƣợng nhận diện nhầm tăng lên đáng kể (trừ lớp Open Palm). Khi phân tích
cho thấy, số lƣợng đặc trƣng SURF thu đƣợc từ mỗi hình chỉ khoảng 7-10 (trừ
Open Palm). Nhƣ vậy, thuật toán hoạt động thiếu hiệu quả khi số lƣợng đặc
trƣng SURF thu đƣợc quá ít đối với ảnh có kích thƣớc nhỏ. Điều này cũng
giúp đƣa đến kết luận rằng, nếu một vật thể có bề mặt quá đơn giản (vd, hình
quả bóng tròn đồng màu), thuật toán không hoạt động hiệu quả do có quá ít
đặc trƣng trích ra đƣợc từ hình vật thể. Thuật toán hoạt động tốt hơn với các
vật thể có hình dạng bề mặt phức tạp.
4.1.3. Test với bộ dữ liệu chứa các ảnh có nhiễu
Bộ dữ liệu chứa các ảnh có nhiễu nhẹ (hình 4.5) bao gồm 1000 ảnh cho
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
mỗi lớp. Mỗi ảnh đƣợc chụp với độ sáng thấp trên nền đơn giản và có một số
68
vật thể nhỏ khác. Kích thƣớc mỗi ảnh trong bộ dữ liệu này là 100x100 pixel.
Kết quả test đƣợc trình bày ở bảng 4.3.
Hình 4.5. Một phần bộ dữ liệu test với nhiễu nhẹ
Bảng 4.3. Kết quả test với bộ dữ liệu ảnh có nhiễu nhẹ
Lớp
Fist Open Palm V-Shape
Palm
947 0 0 0 Fist
0 983 0 1 Open Palm Nhận diện
thành 0 0 951 0 Palm
1 0 0 935 V-Shape
52 17 49 64 Không nhận diện đƣợc
Kết quả
Thời gian xử lý trung 31 34 30 32 bình
Độ chính xác (%) 94,7 98,3 95,1 93,5
Độ chính xác trung bình 95,8 %
Trong thử nghiệm này quan sát thấy rằng độ chính xác trung bình giảm
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
nhẹ (so với các thử nghiệm trong phần trƣớc), đồng thời tăng thời gian xử lý
69
trung bình của mỗi bức hình. Điều này có thể đƣợc giải thích nhƣ sau: khi
xuất hiện các vật thể khác và hình nền, số lƣợng đặc trƣng SURF tìm thấy
tăng lên, do đó làm tăng thời gian xử lý khi xây dựng mô tả BOW; những đặc
trƣng SURF thu đƣợc từ những đối tƣợng “lạ” (không phải từ vật thể) có ảnh
hƣởng xấu tới độ chính xác của thuật toán nhận diện.
Kết quả thử nghiệm này cũng đƣa đến một kết luận quan trọng: phƣơng
pháp biểu diễn đặc trƣng BOW có thể hoạt động mà không cần thực hiện
phân tách riêng vật thể ra khỏi hình nền.
4.1.4. Test với bộ dữ liệu chứa ảnh bị nhiễu nặng
Đây là bộ dữ liệu đƣợc chụp trong điều kiện thật ở văn phòng với độ
sáng không cố định, có lẫn các vật thể lớn khác, với nhiều góc nghiêng và
kích thƣớc khác nhau (từ 80x80 tới 120x120). Một phần của bộ dữ liệu này
đƣợc trình bày ở hình 4.6. Kết quả test trình bày trong bảng 4.4.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 4.6. Một phần bộ dữ liệu thử nghiệm
70
Bảng 4.4. Kết quả test với bộ dữ liệu có nhiễu
Lớp
Fist Open Palm Palm V-Shape
918 0 1 0 Fist
0 965 0 2 Open Palm Nhận diện
thành 1 0 903 1 Palm
1 0 1 918 V-Shape
80 35 95 79 Không nhận diện đƣợc
Kết quả
34 37 34 35 Thời gian xử lý trung bình (ms)
91,8 96,5 90,3 91,8 Độ chính xác (%)
92,6 % Độ chính xác trung bình
Trong thử nghiệm này, độ chính xác đã giảm đáng kể và thời gian xử lý
tăng lên so với các thử nghiệm trên nhƣng nhìn chung, độ chính xác này là
chấp nhận đƣợc. Nếu thuật toán nhận diện này đƣợc sử dụng cùng với một
giải pháp theo dõi vật thể (object tracking) sẽ luôn đạt đƣợc kết quả tƣơng tự
nhƣ trong thử nghiệm thứ hai (do phƣơng pháp theo dõi vật thể thƣờng sẽ
khoanh vùng đƣợc khu vực chỉ chứa vật thể).
4.1.5. Kết luận
Thuật toán trình bày đạt đƣợc kết quả nhận diện rất cao trong tình
huống lý tƣởng (một vật thể trên nền trơn) và không phụ thuộc vào khoảng
cách chụp hình cũng nhƣ góc nghiêng của vật thể trong hình.
Thuật toán hoạt động thiếu hiệu quả khi số lƣợng đặc trƣng SURF thu
đƣợc quá ít đối với ảnh có kích thƣớc nhỏ. Điều này cũng giúp đƣa đến kết
luận rằng, nếu một vật thể có bề mặt quá đơn giản, thuật toán không hoạt
động hiệu quả do có quá ít đặc trƣng trích ra đƣợc từ hình vật thể. Thuật toán
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
hoạt động tốt hơn với các vật thể có hình dạng bề mặt phức tạp.
71
Phƣơng pháp biểu diễn đặc trƣng BOW có thể hoạt động mà không cần
thực hiện phân tách riêng vật thể ra khỏi hình nền.
Vâ ̣y môi trƣờ ng làm viê ̣c là mô ̣t yếu tố ảnh hƣở ng tớ i hiê ̣u quả củ a
công viê ̣c thƣ̉ nghiê ̣m thuâ ̣t toán.
4.2. Thử nghiệm với một số bộ dữ liệu mở
Trong phần này sẽ trình bày kết quả thử nghiệm với hai bộ dữ liệu: bộ
dữ liệu của Sebastien Marcel và bộ dữ liệu của Đại học Cambridge.
4.2.1. Thử nghiệm với bộ dữ liệu của Sebastien Marcel
Bộ dữ liệu này đƣợc xây dựng và công bố với 6 lớp (A, B, C, Five,
Point, V) và là một phần của bộ ký hiệu trong ngôn ngữ cử chỉ của Hoa Kỳ
(ASL – American Sign Language) (Hình 4.7).
A B C
Point V Five
Hình 4.7. Các lớp trong bộ dữ liệu Sebastien Marcel
Bộ dữ liệu huấn luyện chứa 1329 hình thuộc lớp A, 487 hình lớp B,
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
572 hình lớp C, 645 lớp Five, 1395 hình lớp Point, 435 hình lớp V. Để sinh ra
72
từ điển, trong công trình này tự xây dựng một bộ dữ liệu gồm 200 hình kích
thƣớc 100x100 cho mỗi lớp.
Bộ dữ liệu test chứa 97 hình lớp A, 102 hình lớp B, 112 hình lớp C,
112 hình lớp Five, 138 hình lớp Point và 119 hình lớp V (hình 4.8). Kết quả
thử nghiệm trình bày trong bảng 4.5.
Hình 4.8. Một số hình thuộc lớp A chia làm hai nhóm:
nhóm “đơn giản” (hàng trên), nhóm “phức tạp” (hàng dưới)
Bảng 4.5. Kết quả test với bộ dữ liệu Sebastien Marcel2
Số hình Nhận diện Độ chính xác Lớp Thời gian xử lý trung bình (ms)
(1) (2) (1) (2) (1) (2) (1) (2)
58 39 57 35 98,3% 89,7% 27 28 A
61 41 59 40 96,7% 97,6% 27 27 B
65 47 60 40 92,3% 85,1% 27 27 C
57 38 54 30 94,7% 78,9% 27 27 V
76 58 75 56 98,7% 96,6% 28 29 Five
65 54 63 50 96,9% 92,6% 27 27 Point
Kết quả
2 Cột (1), (2) – Kết quả test với bộ dữ liệu đơn giản (1), và bộ dữ liệu phức tạp (2).
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
96,3% 90,1% Độ chính xác trung bình 93,2%
73
Trong công trình [8], Sebastien Marcel đã xây dựng mô hình CGM
(Constrained Generative Model) để nhận diện hình bàn tay. Kết quả này đƣợc
tác giả công bố và tổng kết trong bảng 4.6.
Bảng 4.6. Kết quả thử nghiệm của mô hình CGM
Trên nền đơn giản
Độ chính xác Lớp Số hình trung bình
A,B,C,V 241 93,8%
A-V 382 93,4%
Trên nền phức tạp
Độ chính xác Lớp Số hình trung bình
A,B,C,V 165 74,8%
A-V 277 76,1%
Nhìn qua kết quả bảng test của CGM so với kết quả test của chúng tôi
thƣ̉ nghiê ̣m.Về mă ̣t chỉ số hiê ̣u quả củ a chú ng tôi hơn hẳn đô ̣ chính xác lẫn thờ i gian xƣ̉ lí 4.2.2. Test với bộ dữ liệu của Đại học Cambridge
Bộ dữ liệu của Đại học Cambridge chứa 900 chuỗi hình với 9 lớp,
tƣơng ứng với 3 hình dạng bàn tay và 3 hƣớng nghiêng của bàn tay (hình 4.9),
đƣợc chụp với 5 hƣớng chiếu sáng khác nhau. Mỗi lớp chứa 100 chuỗi hình
(5 hƣớng chiếu sáng x 20 chuỗi hình cho mỗi hƣớng). Mỗi chuỗi hình chứa
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
70 hình.
74
Trái Phải Nắm
Phẳng
Mở
Chữ V
a)
Phẳng/ Trái Phẳng/ Phải Phẳng/ Nắm
Mở/ Trái Mở/ Phải Mở/ Khép
V / Trái V / Phải V / Khép
b)
c)
Hình 4.9. Một phần dữ liệu của Đại học Cambridge
a) 9 lớp, bao gồm 3 hình dạng và 3 hướng nghiêng;
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
b) Ví dụ hình của các lớp; c) 5 hướng chiếu sáng
75
Bảng 4.7. Kết quả thử nghiệm với bộ dữ liệu của Đại học Cambridge
Hƣớng chiếu Độ chính xác Độ chính xác trung Lớp sáng bình (%) (%)
95,2 Phẳng
95,9 98,1 Mở
94,5 V
93,4 Phẳng
94,7 97,7 Mở
93,1 V
93,6 Phẳng
94,9 97,9 Mở
93,1 V
94 Phẳng
94,8 97,5 Mở
92,9 V
94,2 Phẳng
95,4 98,1 Mở
93,9 V
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
95,1% Độ chính xác trung bình
76
KẾT LUẬN
Trong thời gian vừa qua, nhƣ đã trình bày ở trên đây nội dung nghiên
cứu đề tài của tôi bao gồm các phần chính sau:
- Giới thiệu chung về nhận diện mẫu
- Những vấn đề cần giải quyết trong bài toán nhận diện mẫu
- Các phƣơng pháp trích chọn đặc trƣng trong ảnh số
- Các phƣơng pháp biểu diễn đặc trƣng
- Các phƣơng pháp phân lớp dữ liệu
- Một số phƣơng pháp nhận diện mẫu đã đƣợc công bố (phân tích, so
sánh ƣu/nhƣợc điểm, phạm vi ứng dụng)
- Trình bày thuật toán xây dựng vector đặc trƣng dựa trên mô hình túi từ
+ Lựa chọn phƣơng pháp trích chọn đặc trƣng (Trình bày sử dụng song
+ Lựa chọn phƣơng pháp phân cụm dữ liệu (Trình bày sử dụng thuật toán K-
means)
song SURF và SIFT)
+ Trình bày thuật toán xây dựng kho từ vựng cho mô hình túi từ
+ Trình bày thuật toán xây dựng vector đặc trƣng cho đối tƣợng trong
ảnh số
+ Xây dựng chƣơng trình thử nghiệm
+ Thực hiện huấn luyện và test trên một số kho dữ liệu cử chỉ.
+ Phân tích, đánh giá kết quả thu đƣợc; so sánh kết quả thu đƣợc với
kết quả của một số phƣơng pháp nhận diện đã đƣợc công bố.
+ Thuật toán đạt đƣợc kết quả nhận diện rất cao trong tình huống lý
tƣởng (một vật thể trên nền trơn) và không phụ thuộc vào khoảng cách chụp
hình cũng nhƣ góc nghiêng của vật thể trong hình.
+ Thuật toán hoạt động thiếu hiệu quả khi số lƣợng đặc trƣng SURF
thu đƣợc quá ít đối với ảnh có kích thƣớc nhỏ. Điều này cũng giúp đƣa đến
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
kết luận rằng, nếu một vật thể có bề mặt quá đơn giản, thuật toán không hoạt
77
động hiệu quả do có quá ít đặc trƣng trích ra đƣợc từ hình vật thể. Thuật toán
hoạt động tốt hơn với các vật thể có hình dạng bề mặt phức tạp.
TÀI LIỆU THAM KHẢO
[1]. A. Argyros and M. Lourakis, “Vision-based interpretation of hand ges-
tures for remote control of a computer mouse,” in Proc. Workshop Com-
put.HumanInteract.,2006,pp.40–51.
[2]. A. Barczak and F. Dadgostar, “Real-time hand tracking using a set of co-
operative classifiers based on Haar-like features,” Res. Lett. Inf. Math.
Sci.,vol.7,pp.29–42,2005.
[3]. L. Bretzner, I. Laptev, and T. Lindeberg, “Hand gesture recognition us-
ing multiscale color features, hieracrchichal models and particle filter-ing,” in
Proc. Int. Conf. Autom. Face Gesture Recog., Washington, DC,May 2002.
[4]. Q. Chen, N. Georganas, and E. Petriu, “Real-time vision-based hand
gesture recognition using Haar-like features,” in Proc. IEEE IMTC, 2007,
pp.1–6.
[5]. A. El-Sawah, N. Georganas, and E. Petriu, “A prototype for 3-D hand
tracking and gesture estimation,” IEEE Trans. Instrum. Meas., vol. 57,no.8,
pp. 1627–1636, Aug. 2008.
[6]. A. J. Heap and D. C. Hogg, “Towards 3-D hand tracking using a de-
formable model,” in Proc. 2nd Int. Face Gesture Recog. Conf., Killington,
VT, Oct. 1996, pp. 140–145.
[7]. M. Kolsch and M. Turk, “Analysis of rotational robustness of hand detection
with a Viola-Jones detector,” in Proc. 17th ICPR, 2004, pp. 107–110.
[8]. Maral S.Haud posture recognion in a body-face centered space // Extened
Abstract on Human Factors in computer System (CHI'99). - NewYork: ACM,
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
1999. - P.340-347
78
[9]. J. M. Rehg and T. Kanade, “Visual tracking of high DOF articulated
structures: An application to human hand tracking,” in Proc. Eur. Conf.
Comput.Vis.,1994,pp.35–46.
[10]. B. Stenger, “Template based hand pose recognition using multiple
cues,” in Proc. 7th ACCV, 2006, pp. 551–560.
[11]. B. Stenger, P. R. S. Mendonça, and R. Cipolla, “Model-based 3D
tracking of an articulated hand,” in Proc. Brit. Mach. Vis. Conf., Manchester,
U.K.,Sep. 2001, vol. I, pp. 63–72
[12]. P. Viola and M. Jones, “Robust real-time object detection,” Int. J.
Comput.Vis.,vol.2,no.57,pp.137–154,2004.
[13]. C. Wang and K. Wang, Hand Gesture Recognition Using Adaboost
With SIFT for Human Robot Interaction, vol.370.Berlin, Germany: Springer-
Verlag, 2008.
[14]. S.Wagner,B.Alefs, and C. Picus,“Framework for a portable gesture
interface,” in Proc. Int. Conf. Autom. Face Gesture Recog., 2006,pp. 275–280
[15]. H. Zhou and T. Huang, “Tracking articulated hand motion with Eigen
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
dynamics analysis,” in Proc. Int. Conf. Comput. Vis., 2003, vol. 2,pp.1102–1109.