Trong những năm gần đây, nhiều loại hệ thống nhận dạng cử chỉ bàn tay đã được đề xuất và phát triển theo hướng thực hành sử dụng vào trong cuộc sống thực cũng như việc nghiên cứu các giả
Trang 1Trang bìa I Nhiệm vụ đồ án II Lịch trình III Cam đoan IV Lời cảm ơn V Mục lục VI Liệt kê hình vẽ IX Liệt kê bảng vẽ XI Tóm tắt XII
Chương 1 TỔNG QUAN 1
1.1 ĐẶT VẤN ĐỀ 1
1.2 MỤC TIÊU 3
1.3 NỘI DUNG NGHIÊN CỨU 3
1.4 GIỚI HẠN 3
1.5 BỐ CỤC ĐỀ TÀI 5
Chương 2 CƠ SỞ LÝ THUYẾT 6
2.1 TÌM HIỂU KIT RASPBERRY PI 2(RPI2) 6
2.2 NGÔN NGỮ KÝ HIỆU 7
2.3 TÌM HIỂU XỬ LÝ ẢNH 8
2.3.1 GIỚI THIỆU 8
2.3.1.1 Phần thu nhận ảnh (Image Acquisition) 9
2.3.1.2 Tiền xử lý (Image Processing) 9
2.3.1.3 Phân đoạn (Segmentation) hay phân vùng ảnh 9
2.3.1.4 Biểu diễn ảnh (Image Representation) 9
2.3.1.5 Nhận dạng và nội suy ảnh (Image Recognition and Interpretation) 9
2.3.1.6 Cơ sở tri thức (Knowledge Base) 10
2.3.2 NHỮNG VẤN ĐỀ CƠ BẢN TRONG XỬ LÝ ẢNH 10
2.3.2.1 Điểm ảnh ( Picture Element) 10
2.3.2.2 Ảnh 10
2.3.2.3 Độ phân giải của ảnh 11
2.3.2.4 Mức xám của ảnh 11
2.3.2.5 Ảnh nhị phân 12
2.3.2.6 Ảnh màu 12
2.3.2.7 Khử nhiễu 12
2.3.2.8 Chỉnh mức xám 12
Trang 22.4.1 GIỚI THIỆU 13
2.4.2 CHUYỂN ẢNH MÀU THÀNH ẢNH XÁM 13
2.4.3 KHÔNG GIAN MÀU 14
2.4.3.1 Không gian màu RGB 15
2.4.3.2 Không gian màu HSV 16
2.5 THUẬT TOÁN ADABOOST VÀ MÔ HÌNH CASCADE 16
2.5.1 ĐẶC TRƯNG HAAR-LIKE 16
2.5.2 ĐẶC TRƯNG HISTOGRAM OF ORIENTED GRADIENTS (HOG) 18
2.5.2.1 Rút trích đặc trưng HOG trong ảnh 19
2.5.2.2 Chuẩn hóa vector đặc trưng cho từng block 22
2.5.3 THUẬT TOÁN TĂNG TỐC ADABOOST 23
2.5.4 MÔ HÌNH CASCADE 26
2.5.4.1 Giai đoạn huấn luyện của bộ phân loại (stage) 28
2.5.4.2 Tầng phân loại (Cascade) 28
Chương 3 TÍNH TOÁN THIẾT KẾ 31
3.1 GIỚI THIỆU 31
3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG 31
3.2.1 THIIẾT KẾ SƠ ĐỒ KHỐI HỆ THỐNG 31
3.2.2 TÍNH TOÁN VÀ THIẾT KẾ MẠCH 31
3.2.2.1 Khối nhận dạng cử chỉ 31
3.2.2.2 Khối công suất 33
3.3 SƠ ĐỒ NGUYÊN LÝ TOÀN MẠCH 34
Chương 4 THI CÔNG HỆ THỐNG 35
4.1 GIỚI THIỆU 35
4.2 THI CÔNG 35
4.2.1 DANH SÁCH LINH KIỆN 35
4.2.2 SƠ ĐỒ SẮP XẾP LINH KIỆN 35
4.2.3 SƠ ĐỒ MẠCH IN 36
4.3 LẬP TRÌNH HỆ THỐNG NHẬN DẠNG CỬ CHỈ TAY 37
4.3.1 LƯU ĐỒ GIẢI THUẬT NHẬN DIỆN CỬ CHỈ TAY BẰNG NGƯỠNG MÀU DA 37
4.3.2 QUY TRÌNH HUẤN LUYỆN PHÁT HIỆN BÀN TAY TRÊN MÁY TÍNH 39
4.4 KẾT QUẢ MÔ PHỎNG 44
Chương 5 KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 47
5.1 NHỮNG MẶT ĐÃ LÀM ĐƯỢC 47
5.2 NHỮNG MẶT CHƯA LÀM ĐƯỢC 47
Trang 3Chương 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 50
6.1 KẾT LUẬN 50
6.2 HƯỚNG PHÁT TRIỂN 50
TÀI LIỆU THAM KHẢO
PHỤ LỤC
A HƯỚNG DẪN SỬ DỤNG
B CODE CHƯƠNG TRÌNH
Trang 4Hình Trang
Hình 2.1 Kit Raspberry Pi 2 Model B v1.1 6
Hình 2.2 Cử chỉ bàn tay số từ 1-10 của ASL 8
Hình 2.3 Mô tả các bước cơ bản trong xử lý ảnh 8
Hình 2.4 Ảnh RGB 14
Hình 2.5 Chuyển ảnh màu thành ảnh xám 14
Hình 2.6 Các màu cơ sở 15
Hình 2.7 Không gian màu RGB 15
Hình 2.8 Không gian màu HSV 16
Hình 2.9 Đặc trưng theo cạnh 16
Hình 2.10 Đặc trưng theo đường 17
Hình 2.11 Đặc trưng xung quanh tâm 17
Hình 2.12 Đặc trưng theo đường chéo 17
Hình 2.13 Ảnh chia nhỏ tại vị trí (x,y) 18
Hình 2.14 Tổng giá trị pixel nằm trong vùng A 18
Hình 2.15 R-HOG và C-HOG 19
Hình 2.16 Mỗi khối (block) gồm 9 ô 20
Hình 2.17 Các khối được xếp chồng lên nhau 20
Hình 2.18 Tính góc và biên độ theo X-Gradient và Y-Gradient 21
Hình 2.19 Các bước rút trích đặc trưng trong HOG 22
Hình 2.20 Lược đồ cơ bản của AdaBoost 23
Hình 2.21 Thuật toán học AdaBoost 24
Hình 2.22 Dùng chuỗi Cascade để phát hiện cửa sổ con phù hợp 27
Hình 2.23 Cấu trúc chuỗi Cascade song song 28
Hình 2.24 Cấu trúc của chuỗi cascade nối tiếp, với N giai đoạn học huấn luyện 29
Hình 3.1 Sơ đồ khối hệ thống 31
Hình 3.2 Sơ đồ chân kit raspberry Pi 2 32
Hình 3.3 Camera pi kết nối với kit Raspberry pi 33
Hình 3.4 Sơ đồ nguyên lý khối công suất 33
Hình 3.5 Sơ đồ kết nối khối công suất với kit Raspberry pi 34
Hình 4.1 Sơ đồ sắp xếp linh kiện trên phần mềm 36
Hình 4.2 Sơ đồ sắp xếp linh kiện thực tế 36
Hình 4.3 Sơ đồ mạch in khối công suất 37
Hình 4.4 Lưu đồ giải thuật nhận diện cử chỉ tay bằng ngưỡng màu da 38
Hình 4.5 Một số ảnh positive trong tập huấn luyện 40
Hình 4.6 Một số ảnh negative trong tập huấn luyện 40
Trang 5Hình 4.8 Giao diện Training Image Labeler sau khi thêm hình ảnh tích cực 41
Hình 4.9 Ảnh sau khi xác định ROI 42
Hình 4.10 Tên ROI cần xuất 42
Hình 4.11 Thư mục chứa file L305_GOP MAT, thư mục “po”, “ne” 43
Hình 5.1 Hộp sản phẩm 47
Hình 5.2 Mặt trước hộp sản phẩm 48
Hình 5.3 Kết nối mạch công suất với raspberry pi 49
Trang 6Bảng Trang
Bảng 1.1 Nội dung nghiên cứu 3
Bảng 1.2 Tập cử chỉ đề xuất 4
Bảng 2.1 Cấu hình Raspberry Pi 2 model B v1.1 7
Bảng 3.1 Bảng linh kiện và dòng điện tiêu thụ 34
Bảng 4.1 Danh sách linh kiện 35
Bảng 4.2 Kết quả mô phỏng 44
Bảng 6.1 Kết luận 50
Trang 7Cùng với sự phát triển của khoa học công nghệ, các thiết bị điện tử đều dần phát triển theo hướng tự động hóa, thông minh, càng hiểu ý con người Trong những năm gần đây, nhiều loại hệ thống nhận dạng cử chỉ bàn tay đã được đề xuất và phát triển theo hướng ứng dụng thực tế có nhiều thành tựu đáng kể
Đề tài thực hiện nhận dạng cử chỉ tay sử dụng phương pháp nhận diện màu da kết hợp với file huấn luyện phát hiện bàn tay được tạo ra từ thuật toán huấn luyện HOG, thuật toán tăng tốc ADABOOST Hệ thống đưa ra gồm có 5 cử chỉ, được thiết
kế sao cho khi phát hiện cử chỉ tay từ camera thời gian thực đưa ra lệnh điều khiển 4 thiết bị
Mô hình nhận dạng chạy trên nền kit Raspberry Pi 2 model B v1.1, sử dụng ngôn ngữ Python và thư viện có sẵn OpenCV
Trong điều kiện môi trường thích hợp (ánh sáng, màu nền đơn giản, không có màu trùng ngưỡng với màu da) kết quả nhận diện khoảng 85%
Trang 8Chương 1 TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ
Ngày nay với những tiến bộ vượt bậc của khoa học kỹ thuật, cùng với bộ môn khoa học xử lý ảnh đã và đang thu được những thành tựu lớn lao Các thiết bị điện tử đều dần phát triển theo hướng tự động hóa, thông minh, càng hiểu ý con người, chúng giao tiếp với con người mà không cần thiết bị trung gian nào, để làm được điều đó các thiết bị cảm biến, thuật toán nhận dạng ra đời ngày càng hiện đại hơn, càng chính xác hơn, dễ sử dụng hơn, chúng có thể nhận biết các hoạt động của con người, cảm xúc của con người và hoạt động theo đúng ý muốn của họ Bài toán “Nhận dạng cử chỉ điều khiển thiết bị” là một trong số đó Ngôn ngữ cơ thể, đặc biệt là ngôn ngữ bằng tay ngày càng được xem là một trong những phương pháp tương tác rất tự nhiên và trực quan
Trong những năm gần đây, nhiều loại hệ thống nhận dạng cử chỉ bàn tay đã được đề xuất và phát triển theo hướng thực hành sử dụng vào trong cuộc sống thực cũng như việc nghiên cứu các giải thuật nhận dạng một cách chính xác hơn:
Nghiên cứu của Chen Chiung Hsieh và Dung Hua Liou về nhận dạng cử chỉ bằng lịch sử chuyển động ảnh [1] Các khung hình được tích lũy trong các hình ảnh lịch sử chuyển động Sử dụng các báo động sai lọc ra nếu số lượng điểm ảnh da phát hiện nhỏ hơn một ngưỡng nhất định Hệ thống được xây dựng trên các khối: Digital Zoom, phát hiện màu da, nhận dạng cử chỉ
Nghiên cứu của Dharani Mazumdar, Anjan Kumar Talukda và Kandapar Kumar Sarma nghiên cứu nhận dạng cử chỉ bằng găng tay cảm biến Data Glove [2] Bằng việc sử dụng lối ra số của serson gia tốc MEMS gắn liền với các ngón tay và sử dụng vi điều khiển Máy tính phân tích và xử lý thông tin dữ liệu và thực hiện các thuật toán
Trong nước có đề tài: “Nghiên cứu phát triển kỹ thuật nhận dạng cử động của bàn tay người theo thời gian thực” của nhóm nghiên cứu trẻ thuộc Khoa Công nghệ Thông tin, Học viện Kỹ thuật Quân sự do tiến sỹ Trần Nguyên Ngọc làm chủ nhiệm đã mở ra nhiều hướng ứng dụng hiệu quả trong thực tế [3] Những hiệu quả trong ứng dụng của đề tài như phát triển hệ thống hỗ trợ tra cứu thông
Trang 9tin và điều khiển thiết bị từ xa, điều khiển robot trợ giúp người khuyết tật, tích hợp điều khiển tivi, máy nghe nhạc…
Trường Đại học sư phạm kĩ thuật thành phố Hồ Chí Minh có đề tài: “Nhận diện
cử chỉ bàn tay sử dụng phân cụm K-MEANS và mạng NƠ-RON” do 2 sinh viên Võ Đắc Thọ và Trần Quang Tráng thực hiện vào năm 2014 [4] Giúp tìm hiểu được tổng quát về xử lý ảnh, tìm hiểu được các phương pháp nhận dạng cử chỉ tay, mô phỏng các tập lệnh liên quan đến đề tài bằng matlab Tuy nhiên đề tài chỉ dừng lại nhiều ở mức lý thuyết và sử dụng mô phỏng để kiểm chứng kết quả nên còn nhiều hạn chế trong thực tế
Bên cạnh đó còn có các đề tài ứng dụng xử lý ảnh về nhận dạng khuôn mặt, điển hình như: “Nhận diện khuôn mặt ứng dụng trong bảo mật và chấm công dùng kít raspberry pi” do 2 sinh viên Duy và Tâm thực hiện năm 2015 [5] Đạt được kết quả nhận diện thành công 95% trong khoảng cách 0.5m, tuy nhiên phải lấy mẫu từng người một, ảnh người chụp thẳng nghiêng không quá 10° và ảnh chỉ chụp trong điều kiện ánh sáng bình thường , tốc độ xử lý chậm 5 phút
Đề tài : “Ứng dụng xử lý ảnh cảnh báo tài xế ngủ gật” do sinh viên Phương và Tâm thực hiện năm 2014 [6], đã phát hiện được đúng trên 90% với khoảng cách
từ 0.2-1.2 m, nhưng còn tồn tại nhược điểm: Không thể quay trái phải với góc >
40° trên windown và 20° trên kit, chưa đáp ứng được tốc độ hay xử lý có phần hạn chế với người đeo kính,…
Đề tài “Ứng dụng xử lý ảnh trong điều khiển thiết bị bằng cử chỉ tay sử
dụng kit raspberry pi” của nhóm xây dựng với mong muốn góp một phần thúc
đẩy sự phát triển trong nhận dạng cử chỉ, thông qua việc tìm hiểu và kế thừa các thành tựu đã có từ các công trình nghiên cứu trước Về mặt kỹ thuật, đề tài giúp con người tương tác với hệ thống thiết bị, không còn bó buộc trong những cách tương tác truyền thống (như thông qua bàn phím máy tính, con chuột hoặc điện thoại…) mà chuyển sang tương tác trực tiếp bằng cử chỉ Ngoài ra có thể giúp người khiếm thính nhận biết ngôn ngữ qua cử chỉ bàn tay, người có vấn đề về cơ bắp điều khiển một số thiết bị gia dụng, Về mặt nghiên cứu khoa học, hệ thống nhận dạng cử chỉ của nhóm ứng dụng phương pháp tối ưu nhất có đầy đủ tri thức
về nhận dạng và dữ liệu huấn luyện giúp nhận biết được chính xác các dạng cử chỉ,
có khả năng đưa ra kết quả chính xác cao
Trang 101.2 MỤC TIÊU
Tách được bàn tay một cách nhanh chóng, chính xác, nhận dạng được một số
cử chỉ với nền đơn giản Thiết kế và thi công mô hình, giao diện điều khiển 4 thiết bị bằng cách chụp ảnh bằng camera qua kit raspberry pi 2
1.3 NỘI DUNG NGHIÊN CỨU
Bảng 1.1 Nội dung nghiên cứu
Tuần 1
Tìm hiểu xử lý ảnh và các công trình nghiên cứu liên quan đến đề tài
Tuần 2 Tìm hiểu các phương pháp nhận diện bàn tay
Tuần 3 Cấu hình kit raspberry, cài đặt thư viện opencv
Tuần 4 Kết nối camera với kit raspberry pi, tiến hành chụp ảnh bàn tay
Tuần 5 Nhận dạng cử chỉ bàn tay bằng ngưỡng màu da
Tuần 6 Sử dụng cử chỉ tay đưa ra tập lệnh điều khiển
Tuần 7 Chụp ảnh mẫu bàn tay
Tuần 8 Ứng dụng matlab huấn luyện phát hiện bàn tay
Tuần 9 Nhận dạng cử chỉ tay trên nền file huấn luyện phát hiện bàn tay
Tuần 10 Thiết kế, thi công khối công suất
Tuần 11 Lắp ráp, kiểm tra mạch
Tuần 12 Làm mô hình sản phẩm
Tuần 13 Tối ưu hóa hệ thống, hoàn thiện đề tài
Tuần 14 Viết báo cáo đề tài
1.4 GIỚI HẠN
Sử dụng thư viện OpenCV và ngôn ngữ python lập trình trên nền kit Raspberry
Pi 2 Nhận dạng cử chỉ tĩnh của bàn tay thông qua camera Pi
Trang 11Nhóm thực hiện được nhận diện 4 cử chỉ bàn tay với thời gian thực Được mô
Trang 12Môi trường nhận dạng không phức tạp: Đầy đủ ánh sáng (ánh sáng mặt trời sáng, trưa hoặc đèn chiếu sáng đầy đủ), môi trường ít nhiễu(không có màu tương tự ngưỡng màu da, nền không quá nhiều đồ vật ảnh hưởng đến loại trừ nền trong nhận diện)
Chương 2: Cơ sở lý thuyết
Trong chương này trình bày về kiến thức tổng quát các vấn đề liên quan đến đề tài: Ngôn ngữ ký hiệu, cử chỉ bàn tay, các vấn đề về xử lý ảnh, màu da, thuật toán huấn luyện và đặc tính kĩ thuật của kit Raspberry Pi 2
Chương 3: Tính toán thiết kế
Trong chương này trình bày sơ đồ khối của hệ thống, sơ đồ nguyên lý của toàn mạch và tính toán chi tiết các linh kiện cần sử dụng
Chương 4: Thi công hệ thống
Trong chương này trình bày tổng thể phần cứng, thi công mạch điều khiển, hướng lập trình và kết quả mô phỏng
Chương 5: Kết quả-nhận xét-đánh giá
Trình bày về các mặt làm được cũng như chưa làm được, kết quả thực tế của hệ thống nhận dạng đã làm được
Chương 6: Kết luận và hướng phát triển
Nhận xét tổng quát về đề tài, mở ra hướng phát triển, ứng dụng thực tiễn trong cuộc sống
Trang 13Chương 2 CƠ SỞ LÝ THUYẾT
Ý tưởng để làm cho máy móc hiểu ngôn ngữ con người, cụ thể trong đề tài là
cử chỉ bàn tay, cần phải tìm hiểu đầy đủ tri thức về cách truyền nhận, xử lý hình ảnh cũng như công cụ để xử lý những tín hiệu đưa về, đưa ra các tín hiệu phù hợp Trong chương này, nhóm sẽ trình bày chi tiết và đầy đủ nhất cách tiếp cận và xử lý của đề tài
2.1 TÌM HIỂU KIT RASPBERRY PI 2(RPI2)
Hình 2.1 Kit Raspberry Pi 2 Model B v1.1 [7]
Raspberry Pi được phát triển bởi Raspberry Pi Foundation (Anh) nhằm sử dụng trong giảng dạy kiến thức cơ bản về khoa học máy tính RPI 2 là máy tính siêu nhỏ (to bằng thẻ tín dụng) giá rẻ (khoảng dưới 1 triệu đồng) và tiêu thụ điện năng cực ít (khoảng 3Wh, chỉ bằng 1/13 lần so với bóng điện tuýp 1,2m) Raspberry Pi được phát triển lần đầu vào năm 2009, cho đến năm 2015 là bản Raspberry Pi 2 Model B v1.1
RPI có thể chạy các hệ điều hành nền Linux như Raspbian, OpenELEC, archLinux,…và đặc biệt là Microsoft đã tuyên bố RPI có thể chạy Windows 10 Với vai trò như một máy tính cá nhân, RPI 2 có thể dùng làm những server không yêu cầu năng lực xử lý cao như NAS, Media Server, Firewall,…
Trang 14RPI 2 cũng có thể dùng với webcam, IP cam,…như một hệ thống giám sát với các tính năng phát hiện chuyển động, phát hiện âm thanh,…
Bảng 2.1 Cấu hình Raspberry Pi 2 model B v1.1 [8]
Jack âm thanh ra, micro vào và video ra 1 jack cắm 3.5 mm
Khe giao tiếp camera(CSI) 1 khe
Khe giao tiếp màn hình(DSI) 1 khe
Khe cắm thẻ nhớ Micro SD 1 khe
Card màn hình VideoCore IV 3D graphics
2.2 NGÔN NGỮ KÝ HIỆU
Ngôn ngữ ký hiệu hay ngôn ngữ dấu hiệu, thủ ngữ là ngôn ngữ dùng những biểu hiện của bàn tay thay cho âm thanh của tiếng nói Ngôn ngữ ký hiệu do người điếc tạo ra nhằm giúp họ có thể giao tiếp với nhau trong cộng đồng của mình và tiếp thu tri thức của xã hội
Ngôn ngữ ký hiệu Mỹ (American Sign Language- gọi tắt ASL) là ngôn ngữ dấu hiệu chiếm ưu thế của cộng đồng người khiếm thính tại Hoa Kỳ và trên cả thế giới ASL có nguồn gốc từ những năm đầu thế kỷ 19 trong các trường học dành cho người khiếm thính ở Hartford, Connecticut từ một tình huống tiếp xúc ngôn ngữ [9]
Trang 15Hình 2.2 Cử chỉ bàn tay số từ 1-10 của ASL [10]
2.3 TÌM HIỂU XỬ LÝ ẢNH
2.3.1 GIỚI THIỆU
Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ Nó là một ngành khoa học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rất nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chuyên dụng riêng cho nó Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng chính: nâng cao chất lượng ảnh và phân tích ảnh Từ năm 1964 đến nay, các phương tiện xử lý, nâng cao chất lượng, nhận dạng ảnh phát triển không ngừng [11]
Trong xử lý ảnh có các bước cơ bản cần thiết sau: Đầu tiên, ảnh tự nhiên từ thế giới ngoài được thu nhận qua các thiết bị thu (như camera, máy chụp ảnh) Trước đây, ảnh thu qua camera là các ảnh tương tự (loại camera ống kiểu CCIR) Gần đây, với sự phát triển của công nghệ, ảnh màu hoặc đen trắng được lấy ra từ camera, sau đó nó được chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý tiếp theo Mặt khác, ảnh cũng có thể tiếp nhận từ vệ tinh; có thể quét từ ảnh chụp bằng máy quét ảnh
Hình 2.3 Mô tả các bước cơ bản trong xử lý ảnh
Trang 16Sơ đồ này bao gồm các thành phần sau:
2.3.1.1 Phần thu nhận ảnh (Image Acquisition)
Ảnh có thể nhận qua camera màu hoặc đen trắng Thường ảnh nhận qua camera
là ảnh tương tự (loại camera ống chuẩn CCIR với tần số 1/25, mỗi ảnh 25 dòng), cũng
có loại camera đã số hoá (như loại CCD – Change Coupled Device) là loại photodiot tạo cường độ sáng tại mỗi điểm ảnh Camera thường dùng là loại quét dòng; ảnh tạo ra
có dạng hai chiều Chất lượng một ảnh thu nhận được phụ thuộc vào thiết bị thu, vào môi trường (ánh sáng, phong cảnh)
2.3.1.2 Tiền xử lý (Image Processing)
Sau bộ thu nhận, ảnh có thể nhiễu độ tương phản thấp nên cần đưa vào bộ tiền
xử lý để nâng cao chất lượng Chức năng chính của bộ tiền xử lý là lọc nhiễu, nâng độ tương phản để làm ảnh rõ hơn, nét hơn
2.3.1.3 Phân đoạn (Segmentation) hay phân vùng ảnh
Phân vùng ảnh là tách một ảnh đầu vào thành các vùng thành phần để biểu diễn phân tích, nhận dạng ảnh Ví dụ: Để nhận dạng chữ (hoặc mã vạch) trên phong bì thư cho mục đích phân loại bưu phẩm, cần chia các câu, chữ về địa chỉ hoặc tên người thành các từ, các chữ, các số (hoặc các vạch) riêng biệt để nhận dạng Đây là phần phức tạp khó khăn nhất trong xử lý ảnh và cũng dễ gây lỗi, làm mất độ chính xác của ảnh Kết quả nhận dạng ảnh phụ thuộc rất nhiều vào công đoạn này
2.3.1.4 Biểu diễn ảnh (Image Representation)
Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đã phân đoạn) cộng với mã liên kết với các vùng lận cận Việc biến đổi các số liệu này thành dạng thích hợp là cần thiết cho xử lý tiếp theo bằng máy tính Việc chọn các tính chất để thể hiện ảnh gọi là trích chọn đặc trưng (Feature Selection) gắn với việc tách các đặc tính của ảnh dưới dạng các thông tin định lượng hoặc làm cơ sở để phân biệt lớp đối tượng này với đối tượng khác trong phạm vi ảnh nhận được Ví dụ: Trong nhận dạng ký tự trên phong bì thư, chúng ta miêu tả các đặc trưng của từng ký tự giúp phân biệt ký tự này với ký tự khác
2.3.1.5 Nhận dạng và nội suy ảnh (Image Recognition and Interpretation)
Nhận dạng ảnh là quá trình xác định ảnh Quá trình này thường thu được bằng cách so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước Nội suy là phán đoán
Trang 17theo ý nghĩa trên cơ sở nhận dạng Ví dụ: Một loạt chữ số và nét gạch ngang trên phong bì thư có thể được nội suy thành mã điện thoại Có nhiều cách phân loại ảnh khác nhau về ảnh Theo lý thuyết về nhận dạng, các mô hình toán học về ảnh được phân theo hai loại nhận dạng ảnh cơ bản: - Nhận dạng theo tham số - Nhận dạng theo cấu trúc Một số đối tượng nhận dạng khá phổ biến hiện nay đang được áp dụng trong khoa học và công nghệ là: Nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn bản (Text), nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt người…
2.3.1.6 Cơ sở tri thức (Knowledge Base)
Ảnh là một đối tượng khá phức tạp về đường nét, độ sáng tối, dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéo theo nhiễu Trong nhiều khâu xử lý và phân tích ảnh ngoài việc đơn giản hóa các phương pháp toán học đảm bảo tiện lợi cho xử lý, người ta mong muốn bắt chước quy trình tiếp nhận và xử lý ảnh theo cách của con người Trong các bước xử lý đó, nhiều khâu hiện nay đã xử lý theo các phương pháp trí tuệ con người Vì vậy, ở đây các cơ sở tri thức được phát huy
2.3.2 NHỮNG VẤN ĐỀ CƠ BẢN TRONG XỬ LÝ ẢNH
2.3.2.1 Điểm ảnh ( Picture Element)
Gốc của ảnh (ảnh tự nhiên) là ảnh liên tục về không gian và độ sáng Để xử lý bằng máy tính (số), ảnh cần phải được số hoá Số hoá ảnh là sự biến đổi gần đúng một ảnh liên tục thành một tập điểm phù hợp với ảnh thật về vị trí (không gian) và độ sáng (mức xám) Khoảng cách giữa các điểm ảnh đó được thiết lập sao cho mắt người không phân biệt được ranh giới giữa chúng Mỗi một điểm như vậy gọi là điểm ảnh (PEL: Picture Element) hay gọi tắt là Pixel Trong khuôn khổ ảnh hai chiều, mỗi pixel ứng với cặp tọa độ (x, y)
2.3.2.2 Ảnh
Ảnh được xem như là một tập hợp các điểm ảnh
Bất kỳ hình ảnh từ một máy quét hoặc từ một Camera số hay trong máy tính là một hình ảnh kỹ thuật số Hình ảnh máy tính đã được “số hóa”, đây là quá trình chuyển đổi từ hình ảnh màu sắc thực tế thành các dữ liệu số bao gồm các hàng và cột của hàng triệu mẫu màu được đo từ hình ảnh ban đầu
Một máy ảnh kỹ thuật số dùng chip CCD (Change Coupled Device) đằng sau ống kính, CCD bao gồm một mạng lưới các điểm bắt sáng được phủ bằng lớp bọc màu (đỏ - Red, xanh lục – Green, xanh dương – Blue), mỗi điểm ảnh chỉ bắt một màu Do
Trang 18đó khi chụp ảnh (cửa sập mở), ánh sáng qua ống kính và được lưu lại trên bề mặt chip cảm biến dưới dạng điểm ảnh Mỗi điểm ảnh có một mức điện áp khác nhau sẽ được chuyển đến bộ phận đọc giá trị theo từng hàng Giá trị mỗi điểm ảnh sẽ được khuếch đại và được đưa vào bộ chuyển đổi tín hiệu tương tự sang tín hiệu số, cuối cùng đổ vào
bộ xử lý để tái hiện lại hình ảnh đã chụp Chính quá trình đọc thông tin thực hiện theo từng hàng đã làm cho tốc độ xử lý ảnh chậm, thiếu hoặc thừa sáng Đối với máy ảnh
kỹ thuật số dùng chip CMOS tại các điểm bắt sáng có sẵn mạch điện hỗ trợ dễ dàng tích hợp ngay quá trình xử lý điểm ảnh Với cấu trúc này, mỗi điểm ảnh sẽ được xử lý ngay tại chỗ và đồng loạt truyền tín hiệu số về bộ xử lý để tái hiện hình ảnh đã chụp nên tốc độ xử lý nhanh hơn rất nhiều
Cảm biến nhìn thấy màu sắc và độ sáng của từng khu vực nhỏ là lấy mẫu Đó là giá trị màu sắc của từng khu vực được đo và ghi thành giá trị số đại diện cho màu sắc Quá trình này được gọi là số hóa hình ảnh Dữ liệu được tổ hợp thành các hàng và cột
để giữ lại vị trí của từng khu vực hình ảnh Mỗi giá trị dữ liệu đó chính là điểm ảnh Các dữ liệu hình ảnh là bao gồm các giá trị màu RGB số trong một mạng lưới các hàng và cột Khi tất cả các dữ liệu ảnh được kết hợp lại và sao chép liên tiếp, chính xác trật tự cột trên giấy in hoặc hoặc màn hình máy tính, não bộ con người nhận ra hình ảnh ban đầu
2.3.2.3 Độ phân giải của ảnh
Độ phân giải của ảnh là mật độ điểm ảnh được ấn định trên một ảnh số được hiển thị Theo định nghĩa, khoảng cách giữa các điểm ảnh phải được chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh Việc lựa chọn khoảng cách thích hợp tạo nên một mật độ phân bổ, đó chính là độ phân giải và được phân bố theo trục x và y trong không gian hai chiều
Ví dụ: Độ phân giải của ảnh trên màn hình CGA (Color Graphic Adaptor) là một lưới điểm theo chiều ngang màn hình: 320 điểm chiều dọc * 200 điểm ảnh (320*200) Rõ ràng, cùng màn hình CGA 12” ta nhận thấy mịn hơn màn hình CGA 17” độ phân giải 320*200 Lý do: cùng một mật độ (độ phân giải) nhưng diện tích màn hình rộng hơn thì độ mịn (liên tục của các điểm) kém hơn
2.3.2.4 Mức xám của ảnh
Mức xám của điểm ảnh là cường độ sáng của nó được gán bằng giá trị số tại điểm đó
Trang 19Các thang giá trị mức xám thông thường: 16, 32, 64, 128, 256 (Mức 256 là mức phổ dụng Lý do: từ kỹ thuật máy tính dùng 1 byte (8 bit) để biểu diễn mức xám: Mức xám dùng 1 byte biểu diễn: 28=256 mức, tức là từ 0 đến 255
2.3.2.5 Ảnh nhị phân
Là ảnh chỉ có 2 mức đen trắng phân biệt, tức dùng 1 bit mô tả 21 mức khác nhau Nói cách khác, mỗi điểm ảnh của ảnh nhị phân chỉ có thể là 0 hoặc 1
Ý nghĩa ứng dụng của ảnh nhị phân: Xử lý dữ liệu và cấu trúc hình học
Cơ sở của các phương pháp xử lý: Lý thuyết tập hợp, đại số logic, lý thuyết hình học…
Nhị phân hóa tạo ảnh nhị phân:
Có 2 loại nhiễu cơ bản trong quá trình thu nhận ảnh:
Nhiều hệ thống: Là nhiễu có quy luật có thể khử bằng các phép biến đổi
Nhiễu ngẫu nhiên: Vết bẩn không rõ nguyên nhân → khắc phục bằng các phép lọc
Tăng số mức xám: Thực hiện nội suy ra các mức xám trung gian bằng kỹ thuật nội suy Kỹ thuật này nhằm tăng cường độ mịn cho ảnh
2.3.2.9 Nhận dạng ảnh
Nhận dạng tự động (automatic recognition), mô tả đối tượng, phân loại và phân nhóm các mẫu là những vấn đề quan trọng trong thị giác máy, được ứng dụng trong
(2.1)
Trang 20nhiều ngành khoa học khác nhau Mẫu ở đây có thể là ảnh của vân tay, ảnh của một vật nào đó được chọn, một chữ viết, khuôn mặt người …
Trong các ứng dụng rõ ràng là không thể chỉ dùng có một cách tiếp cận đơn lẻ
để phân loại “tối ưu” do vậy cần sử dụng cùng một lúc nhiều phương pháp và cách tiếp cận khác nhau Do vậy, các phương thức phân loại tổ hợp hay được sử dụng khi nhận dạng và nay đã có những kết quả có triển vọng dựa trên thiết kế các hệ thống lai (hybrid system) bao gồm nhiều mô hình kết hợp
Việc giải quyết bài toán nhận dạng trong những ứng dụng mới, nảy sinh trong cuộc sống không chỉ tạo ra những thách thức về thuật giải, mà còn đặt ra những yêu cầu về tốc độ tính toán Đặc điểm chung của tất cả những ứng dụng đó là những đặc điểm đặc trưng cần thiết thường là nhiều, không thể do chuyên gia đề xuất, mà phải được trích chọn dựa trên các thủ tục phân tích dữ liệu
2.4 PHÁT HIỆN MÀU DA DỰA VÀO KHÔNG GIAN MÀU
Hạn chế: định ra đường biên vùng không dễ vì bị ảnh hưởng bởi nhiễu, tập ảnh,
độ chiếu sáng…
2.4.2 CHUYỂN ẢNH MÀU THÀNH ẢNH XÁM
Đơn vị tế bào của ảnh số là pixel Tùy theo mỗi định dạng là ảnh màu hay ảnh xám mà từng pixel có thông số khác nhau Đối với ảnh màu từng pixel sẽ mang thông tin của 3 màu cơ bản tạo ra bản màu khả biến là đỏ (R), xanh lá (G) và xanh biển (B) [Thomas 1892] Trong mỗi pixel của ảnh màu, 3 màu cơ bản R, G và B được bố trí sát nhau và có cường độ sáng khác nhau Thông thường, mỗi màu cơ bản được biểu diễn bằng 8 bit tương ứng 256 mức độ màu khác nhau
Trang 21Hình 2.4 Ảnh RGB
Như vậy mỗi pixel chúng ta có 28*3 =224 màu (khoảng 16,78 triệu màu) Đối với ảnh xám, thông thường mỗi pixel mang thông tin của 256 mức xám (tương ứng với 8 bit) như vậy ảnh xám hoàn toàn có thể tái hiện đầy đủ cấu trúc của một ảnh màu tương ứng thông qua 8 mặt phẳng bit theo tọa độ xám
Hình 2.5 Chuyển ảnh màu thành ảnh xám
Trong hầu hết quá trình xử lý ảnh, chúng ta chủ yếu chỉ quan tâm đến cấu trúc ảnh và bỏ qua sự ảnh hưởng của yếu tố màu sắc
2.4.3 KHÔNG GIAN MÀU
Như ta đã biết thì khi cho ánh sáng trắng đi qua lăng kính ta sẽ thu được một dãy phổ màu bao gồm 6 màu rộng: Tím, lam, lục, vàng, cam, đỏ Nếu nhìn kỹ thì sẽ không có ranh giới rõ ràng giữa các màu mà màu này sẽ từ từ chuyển sang màu kia Mắt chúng ta nhìn thấy được là do ánh sáng phản xạ từ vật thể Tất cả các màu được tạo ra từ 3 màu cơ bản (màu sơ cấp) là: Đỏ (R), lam (B) và lục (G) Các màu cơ bản
Trang 22trộn lại với nhau theo một tỉ lệ nhất định để tạo ra các màu thứ cấp Trộn ba màu sơ cấp hoặc trộn một màu thứ cấp với màu sơ cấp ngược với nó sẽ tạo ra được ánh sáng trắng
Hình 2.6 Các màu cơ sở
VD : Đỏ + lam = tím
Lục + lam = xanh
2.4.3.1 Không gian màu RGB
Hình 2.7 Không gian màu RGB
Không gian màu RGB chia các màu ra các thành phần màu chính là R (Red_đỏ), G (Green_xanh lá), B (Blue_xanh dương) Các màu R, G, B được gọi là các màu chính hay màu cơ bản vì ánh sáng của ba màu này có thể phối hợp ở những cường độ khác nhau để tạo ra các màu khác
Mô hình RGB được thể hiện bởi một hình lập phương Trong một ảnh 24 bit với 8 bit cho mỗi màu chính thì màu đỏ sẽ có giá trị (255,0,0), màu xanh dương (0,0,255), màu xanh lá (0,255,0) Mô hình này được thiết kế cho phần lớn hệ thống đồ
Trang 23họa, tuy nhiên nó chưa phải là lý tưởng cho các ứng dụng về phát hiện và nhận dạng vật thể Các thành phần màu đỏ, xanh dương, xanh lá có sự liên kết chặt chẽ sẽ gây khó khăn trong việc thực hiện một số thuật toán xử lý ảnh
2.4.3.2 Không gian màu HSV
Không gian HSV bao gồm ba thành phần Hue (sắc màu), Saturation (bão hòa màu) và Value (độ sáng, một số trường hợp có thể gọi là Brightness)
Sắc màu (Hue) thể hiện sự đáp ứng về màu sắc xung quanh thang đo sắc màu Các sắc màu trên thang đo sẽ chạy từ Đỏ-Vàng-Xanh Lá-Xanh lam-Xanh Dương-Tím-
Đỏ
Theo lý thuyết một không gian HSV có hình dáng như một hình nón
Hình 2.8 Không gian màu HSV
2.5 THUẬT TOÁN ADABOOST VÀ MÔ HÌNH CASCADE
2.5.1 ĐẶC TRƯNG HAAR-LIKE
Đặc trưng Haar-like được sử dụng trong việc nhận dạng đối tượng trong ảnh số được phát biểu bởi Viola và Jones gồm 4 đặc trưng cơ bản để xác định một đối tượng trong ảnh Mỗi đặc trưng Haar-like là sự kết hợp gồm 2 hoặc 3 khối chữ nhật mang giá trị “đen” hoặc “trắng” Những khối chữ nhật này thể hiện sự liên hệ tương quan giữa các bộ phận trong ảnh mà bản thân từng giá trị pixel không thể diễn đạt được
Hình 2.9 Đặc trưng theo cạnh
Trang 24Hình 2.10 Đặc trưng theo đường
Hình 2.11 Đặc trưng xung quanh tâm
Hình 2.12 Đặc trưng theo đường chéo
Giá trị của đặc trưng Haar-like được xác định bởi độ chênh lệch giữa tổng các giá trị pixel mức xám nằm trong vùng đen so với vùng trắng
f(x) = Tổng vùng đen (các mức xám của pixel) - Tổng vùng trắng (các mức xám của pixel)
Sử dụng giá trị này, so sánh với các giá trị của các giá trị pixel thô, các đặc trưng Haarlike có thể tăng/giảm sự thay đổi in-class/out-of-class (bên trong hay bên ngoài lớp bàn tay), do đó sẽ làm cho bộ phân loại dễ hơn
Cách dùng “ảnh chia nhỏ” (integral image) giúp tính toán nhanh chóng các đặc trưng Haar-like
Hình chia nhỏ ở vị trí (x,y) bằng tổng các giá trị pixel phía bên trái của tọa độ (x,y) bao gồm:
(2.2)
Trang 25Hình 2.13 Ảnh chia nhỏ tại vị trí (x,y)
Tổng giá trị pixel trong vùng “A”:
Hình 2.14 Tổng giá trị pixel nằm trong vùng A
Tiếp theo, để chọn các đặc trưng Haar-like dùng cho việc thiết lập ngưỡng, Viola và Jones sử dụng một phương pháp máy học được gọi là AdaBoost AdaBoost
sẽ kết hợp các bộ phân loại yếu để tạo thành một bộ phân loại mạnh Với bộ phân loại yếu chỉ cho ra câu trả lời chính xác chỉ hơn viện đoán một cách ngẫu nhiên một chút, còn bộ phân loại mạnh có thể đưa ra câu trả lời chính xác trên 60%
2.5.2 ĐẶC TRƯNG HISTOGRAM OF ORIENTED GRADIENTS (HOG)
HOG là đặc trưng được dùng nhiều nhất trong lĩnh vực phát hiện đối tượng Kỹ thuật này được đề xuất bởi Bill Triggs và Navel Dalal vào năm 2005 tại viện nghiên cứu INRIA
Trang 26Ý tưởng chính trong đặc trưng HOG là hình dạng và trạng thái của vật có thể được đặc trưng bằng sự phân bố về gradient (cường độ biến thiên màu/mức xám) và hướng của cạnh Đặc trưng này được phát triển dựa trên SIFT, đặc trưng HOG được tính trên cả một vùng Do sự biến thiên màu sắc trong các vùng là khác nhau, kết quả
là mỗi vùng sẽ cho ra một vector đặc trưng của nó Vì vậy để có đặc trưng của toàn bộ cửa sổ (Window) ta phải kết hợp nhiều vùng liên tiếp lại với nhau
Đặc trưng HOG có một số biến thể thường gặp như: R-HOG, R2-HOG, HOG Các đặc trưng này khác nhau ở cách phân bố và hình dạng các ô như sau:
C-Hình 2.15 R-HOG và C-HOG
R-HOG: Mỗi ô có hình dạng là hình chữ nhật
C-HOG: Mỗi ô có hình dạng là hình tròn
2.5.2.1 Rút trích đặc trưng HOG trong ảnh
Từ một ảnh cho trước, qua việc rút trích đặc trưng trên ảnh đó cho ta được một vector đại diện cho đối tượng đó Việc rút ra được các vector đặc trưng như vậy giúp chúng ta chuyển không gian ảnh sang không gian vector để có thể xử lí và tính toán đơn giản hơn trên máy tính
Phương pháp tổng quan để tính toán đặc trưng HOG trên một cửa sổ (window) bất kỳ:
Phân chia cửa sổ (window) cần tính HOG thành nhiều khối (block) Mỗi khối gồm nhiều ô (cell) Các ô phải có kích thước bằng nhau, số lượng ô trong mỗi khối là bằng nhau
Các khối này được đặt chồng lên nhau, khoảng cách giữa hai khối con liên tiếp nhau phải là một hằng số
Trang 27Hình 2.16 Mỗi khối (block) gồm 9 ô
Hình 2.17 Các khối được xếp chồng lên nhau
Sau khi đã phân chia cửa sổ cần tính toán HOG như trên Ta tiến hành rút trích đặc trưng như sau:
Tính toán đặc trưng trên từng vùng:
Tính toán đặc trưng trên từng ô nhỏ(cell)
Tính toán đặc trưng trên từng khối (block) bằng cách kết hợp các ô lại với nhau
Thu thập đặc trưng của các vùng trên ảnh:
Tính và chuẩn hóa vector trên từng block
Thu thập các đặc trưng HOG cho các cửa sổ
Sau đây là chi tiết thuật toán rút trích đặc trưng HOG Để minh họa thuật toán, ta
có thể chọn một ví dụ như sau để tính vector đặc trưng HOG và số lượng thành phần của vector đó: Giả sử ta có một ảnh với kích thước là 64x128 pixels Ta chia ảnh này thành các cell với kích thước 8x8 pixels Và ta chọn kích thước của block là 2x2 cell
Bước 1: Chuyển ảnh trong không gian màu RGB sang ảnh dạng GRAY SCALE, sau đó tiến hành cân bằng histogram trên ảnh GRAY SCALE để giảm
đi sự ảnh hưởng của sự thay đổi ánh sáng
Bước 2: Tính sự biến thiên màu sắc tại tất cả các pixel của ảnh GRAY SCALE theo chiều X [-1 0 1] và theo chiều Y [
−101] và thu được 2 ảnh gradient-x và gradient-y có kích thước bằng kích thước ảnh GRAY SCALE và cho thấy sự biến thiên màu sắc nói trên
Trang 28 Bước 3: Tiến hành tính góc và hướng biến thiên màu sắc từ 2 ảnh gradient-x và gradien-y như hình vẽ:
Hình 2.18 Tính góc và biên độ theo X-Gradient và Y-Gradient
Việc lưu trữ chính xác từng giá trị góc (orientation) của từng vị trí (x,y) không mang lại nhiều kết quả, do vậy ta sẽ chia không gian góc ra thành các pin Việc phân chia pin càng nhỏ sẽ càng làm tăng độ chính xác, thực nghiệm cho thấy kích thước bin khoảng 20° cho kết quả tốt nhất Do đó từ 0 - 180 ta chia thành 9 bin như sau: 20, 21- 40, 41- 60, 61- 80, 81- 100, 101- 120, 121- 140, 141- 160, 161- 180
Bước 4: Ứng với mỗi bin trên ta tiến hành thống kê biên độ (magnitude) tại từng vị trí Với mỗi bin, tại vị trí (x,y) nếu như góc (orientation) thuộc về bin đó thì giá trị của bin đó tại vị trí (x,y) bằng giá trị biên độ, ngược lại giá trị bin tại (x,y) bằng 0
Bước 5: Tính toán vector đặc trưng cho từng cell (8x8) Vector đặc trưng của mỗi cell sẽ gồm 9 thành phần tương ứng với 9 bin, và giá trị tại thành phần i bằng tổng giá trị các điểm trong bin I mà có tọa độ nằm trong cell đó
Bước 6: Tính toán vector cho từng block (16x16) Ta chỉ cần ghép các vector đặc trưng của từng cell trong block lại với nhau để được vector đặc trưng của một block và chuẩn hóa lại các vector đặc trưng của block này Việc chuẩn hóa đặc trưng trong block sẽ được bàn chi tiết ở phần sau Như vậy vector đặc trưng của block sẽ gồm 9x4 = 36 thành phần
Bước 7: Tính toán vector đặc trưng cho toàn bộ ảnh (64x128) Ta chỉ cần ghép các vector đặc trưng của từng block lại với nhau để được vector đặc trưng của
cả window Lưu ý rằng các block không đặt tách biệt nhau mà gối lên nhau,
Trang 29cách nhau một khoảng bằng kích thước của cell theo mỗi chiều (hoặc bằng phân nửa kích thước của cell) Như vậy vector đặc trưng của window = số block trong window *36 = ((64-16)/8+1)*((128-16)/8+1)*36=7*15*36= 3780 thành phần
Bước 8: Sau cùng ta chuẩn hóa lại vector đặc trưng của cả window
Hình 2.19 Các bước rút trích đặc trưng trong HOG
2.5.2.2 Chuẩn hóa vector đặc trưng cho từng block
Để chuẩn hóa vector cho cả window, ta chuẩn hóa đặc trưng cho từng vector của từng block Theo Wei Jiang, ta sử dụng các phương pháp sau để chuẩn hóa vector đặc trưng của từng block
L2-norm:
L1-norm:
(2.3)
(2.4)
Trang 30 L1-sqrt:
Trong đó:
ʋ: Vector đặc trưng ban đầu của một block (chưa chuẩn hóa)
|| ʋ k||: k-norm của ʋ với k=1, 2
e: Hằng số nhỏ
Theo Dalav và Triggs, L2-norm và L1-sqrt cho chúng cùng kết quả Trong khi
đó L1-norm cho kết quả kém hơn Tuy nhiên việc chuẩn hóa một trong các phương pháp trên vẫn cho kết quả tốt hơn với những vector không chuẩn hóa
2.5.3 THUẬT TOÁN TĂNG TỐC ADABOOST
AdaBoost (Adaptive Boost) là một thuật toán học mạnh, giúp đẩy nhanh việc tạo ra một bộ phân loại mạnh (strong classifier) bằng cách chọn các đặc trưng tốt trong một họ các bộ phân loại yếu (weak classifier - bộ phân loại yếu) và kết hợp chúng lại tuyến tính bằng cách sử dụng các trọng số Điều này thật sự cải thiện dần độ chính xác nhờ áp dụng hiệu quả một chuỗi các bộ phân loại yếu
Hình 2.20 Lược đồ cơ bản của AdaBoost
Thuật toán học này ban đầu duy trì một phân bố chuẩn (tương đồng nhau) các trọng số lên mỗi một mẫu huấn luyện Trong bước lặp đầu tiên, thuật toán huấn luyện một bộ phân loại yếu bằng cách dùng một đặc trưng Haar-like đã thực hiện tốt nhất việc phát hiện các mẫu thử huấn luyện Trong lần lặp thứ hai, các mẫu thử dùng cho huấn luyện nhưng bị phân loại nhầm bởi bộ phân loại yếu đầu tiên được nhận trọng số cao hơn sao cho đặc trưng Haar-like được chọn lần này phải tập trung khả năng tính toán cho các mẫu thử bị phân loại nhầm này Sự lặp lại tiếp tục thực hiện và các kết
(2.5)
Trang 31quả cuối cùng sẽ là một chuỗi cascade các kết hợp tuyến tính của các bộ phân loại yếu, tạo ra một bộ phân loại mạnh, giúp tạo được độ chính xác mong muốn Thuật toán học AdaBoost sau 3 lần lặp được minh họa dưới đây là một ví dụ thuật toán AdaBoost sau
ba lần lặp
Hình 2.21 Thuật toán học AdaBoost
Là một cải tiến của tiếp cận Boosting, AdaBoost sử dụng thêm khái niệm trọng
số (weight) để đánh dấu các mẫu nhận dạng Trong quá trình huấn luyện, cứ mỗi bộ phân loại yếu được xây dựng, thuật toán sẽ tiến hành cập nhật lại trọng số để chuẩn bị cho việc xây dựng bộ phân loại yếu kế tiếp thông qua việc tăng trọng số của các mẫu
bị nhận dạng sai và giảm trọng số của các mẫu được nhận dạng đúng bởi bộ phân loại yếu vừa xây dựng Bằng cách này, các bộ phân loại yếu sau có thể tập trung vào các mẫu mà các bộ phân loại yếu trước nó chưa làm tốt Sau cùng, các bộ phân loại yếu sẽ được kết hợp tuỳ theo mức độ “tốt” của chúng để tạo dựng nên bộ phân loại mạnh Có thể hình dung một cách trực quan như sau: để biết một ảnh có phải là mặt người không, ta hỏi T người (tương đương với T bộ phân loại yếu xây dựng từ T vòng chỉ cần tốt hơn ngẫu nhiên một chút (tỉ lệ sai dưới 50%) Sau đó, ta sẽ đánh trọng số cho đánh giá của từng người (thể hiện qua hệ số ), người nào có khả năng đánh giá tốt các mẫu khó thì mức độ quan trọng của người đó trong kết luận cuối cùng sẽ cao hơn những người chỉ đánh giá tốt các mẫu dễ Việc cập nhật lại trọng số của các mẫu sau mỗi vòng tăng cường chính là để đánh giá độ khó của các mẫu (mẫu càng có nhiều người đánh giá sai là mẫu càng khó)