Sử dụng thuật toán Viola – Jones để phát hiện khuôn mặt trong khung hình sau đó trích xuất đặc trưng hình ảnh bằng thuật toán HOG và ứng dụng Support VectorMachine để tạo bộ phân loại cá
Trang 1BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
o0o Tp HCM, ngày 03 tháng 08 năm 2020
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
2 Nội dung thực hiện:
- Nghiên cứu tài liệu về Raspberry Pi, kết nối Raspberry Pi và máy tính thông qua MATLAB
- Nghiên cứu tài liệu xử lý ảnh, phương pháp nhận diện khuôn mặt, các ứngdụng, mô hình sử dụng nhận diện khuôn mặt
- Tính toán, lập trình hệ thống
- Thiết kế, thi công mô hình
Trang 2III NGÀY GIAO NHIỆM VỤ: 16/03/2020
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 12/07/2020
V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN:ThS Nguyễn Duy Thảo
Trang 3BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
- Tìm hiểu nhận diện khuôn mặt, các phươngpháp nhận diện khuôn mặt
Tuần 7 (4/5 – 10/5)
Trang 4Tuần 11 (1/6 – 7/6 ) - Viết chương trình chính cho mô hình
nghiệm
Tuần 13 (15/6 – 21/6) - Thiết kế, xây dựng mô hình
- Chỉnh sửa hệ thống
Tuần 14 (22/6 – 28/6) - Hoàn thiện mô hình
- Viết báo cáo
hình
GV HƯỚNG DẪN(Ký và ghi rõ họ và tên)
Trang 5Đề tài “Thiết kế và thi công mô hình cửa tự động sử dụng nhận diện khuôn
mặt” này là do nhóm sinh viên chúng em tự thực hiện, dựa vào một số tài liệu trước
đó và không sao chép từ tài liệu hay công trình đã có trước đó
TP Hồ Chí Minh, ngày 03 tháng 08 năm 2020
Người thực hiện đề tàiNguyễn Minh Khoa Trương Nguyễn Hoàng Long
Trang 6Để thực hiện và hoàn thành đồ án lần này, nhóm xin gửi lời cảm ơn đến cácthầy cô Khoa Điện – Điện Tử đã tạo điều kiện rất nhiều cho nhóm Các kiến thứcthầy cô dạy đã giúp ích rất nhiều cho nhóm hoàn thành được đồ án lần này Một lầnnữa nhóm xin chân thành cảm ơn.
Đặc biệt ,nhóm xin gửi lời cảm ơn sâu sắc đến Thầy Nguyễn Duy Thảo Người
đã trực tiếp hướng dẫn, đóng góp ý kiến, tạo điều kiện để nhóm em hoàn thành được
đồ án tốt nghiệp lần này
Tiếp đến, nhóm xin cảm ơn đến tất cả các bạn khoa Điện – Điện Tử Đặc biệt lànhững bạn lớp 15141DT đã giúp đỡ nhóm rất nhiều trong thời nhóm thực hiện đồ án.Những khó khăn mà nhóm gặp phải khi bắt đầu thực hiện đồ án đã được các anh chị
đi trước giúp đỡ rất nhiều
Nhóm đã cố gắng hoàn thành tốt đề tài một cách hoàn chỉnh nhất có thể nhưng sẽkhông tránh được những sai sót trong quá trình nghiên cứu, thực hiện Rất mong nhậnđược sự góp ý từ thầy cô và các bạn để nhóm có thể hoàn thiện đồ án tốt hơn nữa
Xin chân thành cảm ơn!
Nhóm thực hiện đề tài
Trang 7NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP iii
LỜI CAM ĐOAN v
LỜI CẢM ƠN vi
DANH MỤC HÌNH xi
DANH MỤC BẢNG xiv
CÁC TỪ VIẾT TẮT xv
TÓM TẮT xvi
CHƯƠNG I TỔNG QUAN 1
1.1 ĐẶT VẤN ĐỀ 1
1.2 MỤC TIÊU 1
1.3 NỘI DUNG NGHIÊN CỨU 2
1.4 GIỚI HẠN ĐỀ TÀI 2
1.5 BỐ CỤC 3
CHƯƠNG II CƠ SỞ LÝ THUYẾT 4
2.1 LÝ THUYẾT XỬ LÝ ẢNH 4
2.1.1 Giới thiệu 4
2.1.2 Thu nhận ảnh (Image acquision) 5
2.1.3 Tiền xử lý ảnh (Image processing) 5
2.1.4 Phân đoạn (Segmentation) hay phân vùng ảnh 5
2.1.5 Biểu diễn ảnh (Image representation) 6
2.1.6 Nhận diện và nội suy ảnh (Image recognition and Interpretation) 6
2.1.7 Cơ sở tri thức (Knowledge base) 6
2.1.8 Mô tả 6
2.2 NHỮNG VẤN ĐỀ TRONG XỬ LÝ ẢNH 7
2.2.1 Điểm ảnh (Picture Element - Pixel) 7
2.2.2 Ảnh số 7
2.2.3 Phân loại ảnh 7
Trang 82.3.2 Thông tin cấu hình Raspberry Pi 3 10
2.3.3 Các ngõ vào ra GPIO 11
2.3.4 Ứng dụng 12
2.4 GIỚI THIỆU VỀ CAMERA PI 13
2.4.1 Giới thiệu 13
2.4.2 Thông số kỹ thuật 14
2.4.3 Ứng dụng 14
2.5 GIỚI THIỆU VỀ MATLAB 15
2.5.1 Tổng quan 15
2.5.2 Phần mềm MATLAB 15
2.6 THUẬT TOÁN HISTOGRAM OF ORIENTED GRADIENT 16
2.6.1 Giới thiệu 16
2.6.2 Ứng dụng của HOG: 17
2.6.3 Sơ lược cách hoạt động của thuật toán 17
2.6.4 Tính toán HOG 18
2.7 THUẬT TOÁN VIOLA – JONES 22
2.7.1 Giới thiệu thuật toán Viola – Jones 22
2.7.2 Các đặc trưng Haar – Like 22
2.7.3 Khái niệm Integral Image 23
2.7.4 AdaBoost 25
2.8 PHƯƠNG PHÁP SUPPORT VECTOR MACHINE 27
2.8.1 Khái niệm bộ phân loại SVM 27
2.8.2 Multiclass SVM 29
2.9 PHƯƠNG PHÁP NHẬN DIỆN KHUÔN MẶT 30
2.9.1 Quá trình training 30
2.9.2 Quá trình nhận diện khuôn mặt 30
CHƯƠNG III TÍNH TOÁN VÀ THIẾT KẾ 32
3.1 GIỚI THIỆU 32
Trang 93.2.2 Tính toán và thiết kế 33
3.2.3 Sơ đồ nguyên lý toàn mạch 41
3.2.4 Tính toán và thiết kế phần mềm 41
CHƯƠNG IV: THI CÔNG MÔ HÌNH HỆ THỐNG 49
4.1 GIỚI THIỆU 49
4.2 THI CÔNG MÔ HÌNH HỆ THỐNG 49
4.2.1 Chuẩn bị phần cứng 49
4.2.2 Lắp rắp và kiểm tra 50
4.3 THI CÔNG MÔ HÌNH 54
4.4 LẬP TRÌNH HỆ THỐNG 56
4.4.1 Lưu đồ giải thuật 56
4.4.2 Phần mềm MATLAB trên máy tính và Raspberry Pi 61
4.4.3 Thao tác trên phần mềm MATLAB 65
4.5 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC 66
4.5.1 Hướng dẫn sử dụng 66
4.5.2 Quy trình thao tác 66
4.5.3 Bảng giá linh kiện 68
CHƯƠNG V: KẾT QUẢ_ NHẬN XÉT_ĐÁNH GIÁ 69
5.1 KẾT QUẢ 69
5.1.1 Khảo sát phân loại 69
5.1.2 Kết quả mô hình 74
5.2 NHẬN XÉT VÁ ĐÁNH GIÁ 77
CHƯƠNG VI KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 78
6.1 KẾT LUẬN 78
6.1.1 Kết quả đạt được 78
6.1.2 Những hạn chế 78
6.2 HƯỚNG PHÁT TRIỂN 78
TÀI LIỆU THAM KHẢO 79
Trang 10CODE LẬP TRÌNH XÂY DỰNG CƠ SỞ DỮ LIỆU 81
CODE LẬP TRÌNH CHẠY HỆ THỐNG 86
Trang 11Hình 2 1 Các bước cơ bản trong xử lý ảnh 5
Hình 2 2 Điểm ảnh (x,y) và các điểm lân cận 8
Hình 2 3 Lận cận 4 và lân cận 8 của 1 điểm ảnh (x,y) 8
Hình 2 4 Rapberry Pi 3 9
Hình 2 5 Sơ đồ khối Raspberry Pi 3 10
Hình 2 6 Vị trí 40 chân GPIO trên Raspberry Pi 11
Hình 2 7 Chi tiết chức năng các chân GPIO 11
Hình 2 8 Raspberry Pi Camera V2.1 13
Hình 2 9 Sơ đồ khối Camera Pi 14
Hình 2 10 Logo MATLAB 15
Hình 2 11 Giao diện phần mềm 16
Hình 2 12 Ảnh phân tích Histogram 19
Hình 2 13 Map giá trị độ lớn gradient vào các bin tương ứng với phương 20
Hình 2 14 Biểu đồ Histogram tương ứng với 1 cell 21
Hình 2 15 Các đặc trưng Haar - Like 22
Hình 2 16 Các đặc trưng Viola và Jones sử dụng trong việc phát hiện khuôn mặt 23
Hình 2 17 Intergral Image 24
Hình 2 18 Mô tả Intergral Image 24
Hình 2 19 Mô tả bộ lọc Haar – Cascade 25
Hình 2 20 Kết hợp các bộ phân loại yếu thành bộ phân loại mạnh 26
Hình 2 21 Hai đặc trưng cơ bản nhất để xác định khuôn mặt 27
Hình 2 22 SVM nhị phân 28
Hình 2 23 SVM đa lớp 29
Hình 2 24 Quá trình training 30
Hình 2 25 Quá trình nhận diện 31
Hình 3 1 Sơ đồ khối hệ thống 32
Hình 3 2 Sơ đồ kết nối board Raspberry Pi với các khối khác 35
Hình 3 3 Camera phổ thông và webcam 36
Hình 3 4 Ảnh kết nối camera Pi với Raspberry Pi 36
Hình 3 5 Sơ đồ nguyên lí mạch kích Relay 37
Hình 3 6 Module 2 Relay Opto 38
Hình 3 7 Sơ đồ nguyên lý nút nhấn 39
Hình 3 8 Nguồn adapter 5v 2a, jack cắm micro usb 40
Hình 3 9 Nguồn Adapter 12V – 2A 41
Hình 3 10 Sơ đồ nguyên lý toàn mạch 41
Trang 12Hình 3 14 50 ảnh khuôn mặt không trực diện 45
Hình 3 15 50 ảnh khuôn mặt bị che khuất 45
Hình 3 16 Biểu thị các đặc trưng HOG trên ảnh mẫu 46
Hình 3 17 Véctơ đặc trưng HOG 46
Hình 3 18 Biểu thị đặc trưng SURF trên ảnh mẫu 47
Hình 3 19 Ma trận đặc trưng SURF biểu diễn ảnh mẫu 47
Hình 3 20 Véctơ đặc trưng LBPH biểu diễn ảnh mẫu 47
Hình 4 1 Ảnh lắp Camera Pi và Raspberry Pi vào mô hình 51
Hình 4 2 Ảnh kết nối dây dẫn đến nút nhấn, đèn và Module 2 relay 51
Hình 4 3 Ảnh đi dây dẫn các Module Relay, nút nhấn và đèn led 52
Hình 4 4 Ảnh kết nối Module Relay với các thiết bị khác 52
Hình 4 5 Vị trí nút nhấn đèn và cửa (bên ngoài) 53
Hình 4 6 Vị trí đặt chốt cửa và cửa (bên trong) 53
Hình 4 7 Tổng quan mô hình 54
Hình 4 8 Vị trí đặt Raspberry Pi và Camera Pi 54
Hình 4 10 Vị trí đặt Relay, chốt cửa, nút nhấn và đèn 55
Hình 4 9 Không gian nhận diện khuôn mặt 55
Hình 4 11 Lưu đồ xây dựng cơ sở dữ liệu hệ thống 57
Hình 4 12 Thư mục mẹ được tạo trước đó 58
Hình 4 13 Các thư mục con được tạo trong chương trình 58
Hình 4 14 50 ảnh được chụp và lưu lại trong thư mục con 59
Hình 4 15 Bộ phân loại đã được huấn luyện 59
Hình 4 16 Lưu đồ chương trình chính 60
Hình 4 17 Ảnh Add-Ons trên MATLAB 62
Hình 4 18 Ảnh gói MATLAB hỗ trợ cho Raspberry Pi 62
Hình 4 19 Chọn loại model cài đặt 63
Hình 4 20 Tiến hành cài hệ điều hành cho Raspberry Pi 63
Hình 4 21 Chọn loại kết nối cho Raspberry Pi 64
Hình 4 22 Kiểm tra kết nối sau khi chép hệ điều hành 64
Hình 4 23 Các thông số của Raspberry Pi trên MATLAB 65
Hình 4 24 Thanh công cụ trên Matlab 65
Hình 4 25 Nơi viết chương trình Editor 66
Hình 4 26 Workspace và Command Window 66
Hình 4 27 Hướng dẫn dùng phần cứng 67
Hình 4 28 Lưu đồ hướng dẫn sử dụng 67
Hình 5 1 Thông số phân loại 69
Trang 13Hình 5 4 Kết quả mô hình khi nhận diện không đúng 76
Trang 14Bảng 3 1 So sánh các kit nhúng 34
Bảng 3 2 Thống kê dòng tiêu thụ của Raspberry Pi 39
Bảng 3 3 Thống kê thông số tiêu thụ của các thiết bị trong mô hình 40
Bảng 3 4 Tỷ lệ phát hiện khuôn mặt bằng thuật toán haar-like 42
Bảng 3 5 Tỷ lệ phát hiện khuôn mặt ở từng khoảng cách 43
Bảng 3 6 Ảnh chụp ở từng khoảng cách 43
Bảng 3 7 Kết quả thẩm định chéo của 3 thuật toán phân loại 48
Bảng 4 1 Các linh kiện sử dụng trong mô hình 49
Bảng 4 2 Giá thành các linh kiện trong mô hình 68
Bảng 5 1 Kết quả nhận diện người A 70
Bảng 5 2 Kết quả nhận diện người B 70
Bảng 5 3 Kết quả nhận diện người C 71
Bảng 5 4 Kết quả nhận diện người D 72
Bảng 5 5 Kết quả nhận diện người E 72
Bảng 5 6 Kết quả nhận diện người F 73
Bảng 5 7 Kết quả nhận diện người G 74
Bảng 5 8 Kết quả chạy thực tế của mô hình 75
Trang 15Từ viết tắt Giải thích
loại thuật toán phân loại
Input/Output
camera
Trang 16Đề tài “Thiết kế và thi công mô hình cửa tự động sử dụng nhận diện khuôn
mặt” là hệ thống tự động mở cửa khi xác nhận khuôn mặt của một người có trong cơ
sở dữ liệu đã tạo trước đó Mô hình được lập trình trên phần mềm MATLAB, điềukhiển hệ thống bằng kit Raspberry Pi và dùng Camera Pi làm thiết bị thu nhận hìnhảnh Sử dụng thuật toán Viola – Jones để phát hiện khuôn mặt trong khung hình sau
đó trích xuất đặc trưng hình ảnh bằng thuật toán HOG và ứng dụng Support VectorMachine để tạo bộ phân loại các đặc trưng HOG phân loại dữ liệu mới Sau đó gửi tínhiệu đến Raspberry điều khiển hệ thống sau khi nhận diện
Trang 17CHƯƠNG I TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ
Với sự phát triển không ngừng nghỉ của khoa học kỹ thuật, việc ứng dụng khoahọc kỹ thuật vào đời sống, xã hội đã trở nên phổ biến và cần thiết hơn bao giờ hết Nógóp phần thúc đẩy phát triển khi mọi thứ dần trở nên tự động và hiệu suất công việccũng được nâng cao hơn với sự giúp đỡ của máy móc, thiết bị Trong đó, công nghệ tiêntiến đang được áp dụng rộng rãi trong đời sống chính là xử lí ảnh Không dừng lại ởviệc chỉnh sửa, tăng chất lượng hình ảnh mà công nghệ xử lí ảnh ngày nay còn giảiquyết được các bài toán như nhận diện chữ viết, dấu vân tay, vật thể, khuôn mặt, v.v.Trong đó bài toán được nhiều người quan tâm hiện nay là nhận diện khuôn mặt.Như chúng ta đã biết, khuôn mặt đóng vai trò quan trọng trong việc giao tiếp giữa ngườivới người, nó mang lại một lượng lớn thông tin hữu ích giúp ta xác định được giới tính,tuổi tác, chủng tộc, trạng thái cảm xúc, đặt biệt là xác nhận quan hệ đối tượng Do đóứng dụng của nó đóng vai trò quan trọng trong đời sống và cả y tế ngày nay
Ngoài ra, nhận diện khuôn mặt còn giúp tăng bảo mật trên những chiếc điện thoạithông minh (smartphone), hệ thống điểm danh trong các trường đại học, chấm côngtrong các khu công nghiệp và các hệ thống an ninh lớn nhỏ
Do đó, dựa trên nền tảng kiến thức đã học, vốn hiểu biết về điện tử cũng như công
nghệ xử lí ảnh và sự đồng ý của giáo viên hướng dẫn - thầy Nguyễn Duy Thảo, nhóm
đã quyết định chọn đề tài “Thiết kế và thi công mô hình cửa tự động sử dụng nhận
diện khuôn mặt”.
1.2 MỤC TIÊU
Đề tài “Thiết kế và thi công mô hình cửa tự động sử dụng nhận diện khuôn
mặt” với mục tiêu là:
Hệ thống hoạt động ổn định, tốc độ xử lý nhanh
Trang 181.3 NỘI DUNG NGHIÊN CỨU
Đề tài “Thiết kế và thi công mô hình cửa tự động sử dụng nhận diện khuôn
mặt” có những nội dung sau:
NỘI DUNG 1: Tìm hiểu về Raspberry Pi 3B và phần mềm MATLAB.
NỘI DUNG 2: Tổng quan về xử lí ảnh và thuật toán nhận diện khuôn mặt.
NỘI DUNG 3: Viết chương trình nhận diện khuôn mặt và điều khiển kit nhúng.
NỘI DUNG 4: Thiết kế và thi công mô hình.
NỘI DUNG 5: Chạy thử nghiệm và cân bằng mô hình.
NỘI DUNG 6: Viết báo cáo đồ án tốt nghiệp.
NỘI DUNG 7: Báo cáo về đồ án tốt nghiệp.
MATLAB , kit Raspberry Pi 3B làm hệ thống nhúng điều khiển
Trang 191.5 BỐ CỤC
Nội dung đề tài gồm những phần sau:
Chương 1 - Tổng Quan: Trong chương này, nhóm thực hiện trình bày khái
quát về xu hướng phát triển, nguyên nhân chọn đề tài, xác định mục tiêu cần
thực hiện trong đề tài và giới hạn công việc
Chương 2 – Cơ Sở Lý Thuyết: Giới thiệu đầy đủ về các kiến thức nền tảng
cũng như công nghệ và phần mềm được sử dụng trong khóa luận bao gồm kiến
thức về xử lý ảnh, lý thuyết về các thuật toán hỗ trợ nhận diện khuôn mặt, kếtnối giữa Raspberry Pi với máy tính thông qua MATLAB và các thiết bị cầnthiết cho mô hình
Chương 3 – Thiết Kế và Tính Toán: Trong chương này, nhóm thực hiện lên
kế hoạch sử dụng tập mẫu, diễn giải các thông số của mô hình, quá trình huấn
luyện, quá trình kiểm tra và thiết kế một hệ thống nhận diện khuôn mặt
Chương 4 – Thi Công Mô Hình Hệ Thống: Nhóm thực hiện lập trình hệ
thống, vẽ lưu đồ điều khiển, nạp code và chạy thử.
Chương 5 – Kết Quả, Nhận Xét Và Đánh Giá: Chương này sẽ trình bày các
kết quả đạt được của quá trình huấn luyện, quá trình kiểm tra mô hình và ứngdụng nhận diện khuôn mặt
Chương 6 – Kết Luận Và Hướng Phát Triển: Trong chương này sẽ trình bày
những kết quả của đồ án tốt nghiệp đã đạt được, nêu ra một số hướng nghiêncứu và phát triển đề tài
Trang 20CHƯƠNG II CƠ SỞ LÝ THUYẾT
2.1 LÝ THUYẾT XỬ LÝ ẢNH
2.1.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ànhkhoa 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ấtnhanh, kích thích các trung tâm nghiên cứu, ứng dụng
Xử lý ảnh là kỹ thuật áp dụng trong việc tăng cường và xử lý các ảnh được thunhận từ các thiết bị ngoại vi như camera, webcam… Do đó, xử lý ảnh đã được ứngdụng và phát triển trong rất nhiều các lĩnh vực quan trọng như:
vân tay, mống mắt…
thoại thông minh
Các phương pháp xử lý ảnh bắt đầu từ việc ứng dụng nâng cao chất lượng và phântích ảnh Ứng dụng đầu tiên được biết đến là nâng cao chất lượng ảnh báo được truyền từAnh đến Mỹ vào những năm 1920 Vấn đề nâng cao chất lượng ảnh có liên quan đến phân
bố mức sáng và độ phân giải của ảnh (pixel) Việc nâng cao chất lượng ảnh được pháttriển vào khoảng những năm 1955 Do sau Thế chiến thứ hai, máy tính phát triển nhanhtạo điều kiện cho quá trình xử lý ảnh số được thuận lợi hơn Năm 1964, máy tính đã cókhả năng xử lý và nâng cao chất lượng ảnh Mặt trăng từ vệ tinh Ranger 7 của Mỹ, baogồm làm nổi đường biên và lưu ảnh Từ năm 1964 đến nay, các phương tiện xử lý, nângcao chất lượng, nhận diện ảnh phát triển không ngừng Các phương pháp tri thức nhân tạo(Artificial Intelligent - AI) như học máy (machine learning), mạng nơ-ron nhân tạo(artificial neural network), các thuật toán xử lý hiện đại và cải tiến, các công cụ nén ảnh
Sau đây, ta sẽ xét các bước cần thiết trong quá trình xử lý ảnh Đầu tiên, ảnh tựnhiên từ thế giới bên ngoài sẽ được thu nhận qua các thiết bị thu nhận ảnh Trước đây,ảnh thu qua camera là dạng ảnh tương tự (loại camera cổ điển) Ngày nay, với sự phát
Trang 21triển của công nghệ, ảnh màu hoặc đen trắng lấy ra từ camera có thể được chuyển trựctiếp thành ảnh số tạo điều kiện thuận lợi cho các công đoạn xử lý tiếp theo Mặt khác,ảnh có thể được quét tự vệ tinh chụp trực tiếp bằng máy quét ảnh Hình 2.1 dưới đây
Hình 2 1 Các bước cơ bản trong xử lý ảnh
2.1.2 Thu nhận ảnh (Image acquision)
Ảnh có thể được thu nhận qua camera màu hoặc trắng đen Thường ảnh nhận quacamera là ảnh tương tự (loại camera ống chuẩn CCIR với tần số 1/25, mỗi ảnh 25dòng), cũng có loại camera đã số hóa (như loại CCD – Change Coupled Device) là loại
Camera thường dùng là loại quét dòng, ảnh tạo ra có dạng ảnh hai chiều Chấtlượng ảnh thu được phụ thuộc vào thiết bị thu, môi trường thu nhận ảnh (ánh sáng,phong cảnh …)
2.1.3 Tiền xử lý ảnh (Image processing)
Sau bộ thu nhận, ảnh có thể có độ nhiễu tương phản thấp nên ta cần đưa vào bộtiền xử lý ảnh để nâng cao chất lượng Chức năng chính của bộ tiền xử lý ảnh là lọc
2.1.4 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ântích, nhận diện ảnh Ví dụ, để nhận diện chữ hoặc mã vạch trên phong bì thư cho mục đíchphâ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
Trang 22từ, các chữ, các số (hoặc các vạch) riêng biệt để nhận diện Đây là công đoạn phức tạp,khó khăn nhất trong xử lý ảnh và cũng dễ xảy ra lỗi, làm ảnh hưởng đến độ chính xáccủa cả quá trình xử lý ảnh Kết quả của công đoạn nhận diện ảnh phụ thuộc rất nhiềuvào bước này.[11]
2.1.5 Biểu diễn ảnh (Image representation)
Đây là phần 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 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íchhợp là cần thiết cho quá trình 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 xuất đặc trưng (feature extraction) gắn với việc tách các đặctí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 đốitượng này với lớp đối tượng khác trong phạm vi ảnh nhận được Ví dụ trong nhận diện
ký tự trên phong bì thư, chúng ta cần miêu tả đặc trưng của từng ký tự, giúp phân biệtgiữa ký tự này với ký tự khác.[11]
2.1.6 Nhận diện và nội suy ảnh (Image recognition and Interpretation)
Nhận diện ảnh là quá trình xác định ảnh Quá trình này thường thu được bằngcá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ántheo ý nghĩa trên cơ sở nhận diện Ví dụ: một loạt chữ số và nét gạch trên phong bì thư
có thể được nội suy thành mã điện thoại… Theo lý thuyết về nhận diện, các mô hìnhtoán học về ảnh có thể được nhận diện theo hai loại nhận diện ảnh cơ bản:
Một số đối tượng nhận diện khá phổ biến hiện nay được áp dụng trong khoa học
và công nghệ là: nhận diện ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận diện văn
2.1.7 Cơ sở tri thức (Knowledge base)
Như đã nói trên, ảnh là một đối tượng khá phức tạp về đường nét, độ sáng tối, dunglượ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 conngười Hiện nay, nhiều khâu trong quy trình đã được xử lý theo các phương pháp mô
2.1.8 Mô tả
Trang 23Ảnh sau khi số hóa sẽ được lưu vào bộ nhớ, hoặc truyền sang các khâu tiếp theo
để phân tích Nếu lưu trữ ảnh trực tiếp từ các ảnh thô thì sẽ đòi hỏi bộ nhớ cực lớn vàkhông hiệu quả theo quan điểm ứng dụng và công nghệ Thông thường, các ảnh được
2.2 NHỮNG VẤN ĐỀ TRONG XỬ LÝ ẢNH
2.2.1 Điểm ảnh (Picture Element - Pixel)
Là đơn vị cơ bản nhất để tạo nên một bức ảnh kỹ thuật số Địa chỉ của điểm ảnhđược xem như là một tọa độ (x,y) nào đó Một bức ảnh kỹ thuật số, có thể được tạo rabằng cách chụp hoặc bằng một phương pháp đồ họa nào khác, được tạo nên từ hàngngàn đến hàng triệu pixel riêng lẻ Bức ảnh càng chứa nhiều pixel thì càng chi tiết
2.2.2 Ảnh số
Ảnh số là tập hợp hữu hạn các điểm ảnh với mức xám phù hợp dùng để mô tả ảnhgần với ảnh thật Số điểm ảnh xác định độ phân giải của ảnh Ảnh có độ phân giải càngcao thì càng thể hiện rõ nét các đặc điểm của ảnh, càng làm cho ảnh trở nên chân thực vàsắc nét hơn Một ảnh số là một tín hiệu hai chiều, nó được xác định bởi hàm toán họcf(x,y) trong đó x và y là tung độ và hoành độ của điểm ảnh đang được xét Giá trị củaf(x,y) tại một điểm ảnh ở vị trí (x,y) bất kỳ cung cấp giá trị điểm ảnh tại vị trí đó
2.2.3 Phân loại ảnh
Mức xám của điểm ảnh là cường độ sáng, gán bằng một giá trị tại điểm đó Cácmức ảnh xám thông thường: 16, 32, 64, 128, 256 Mức được sử dụng rộng rãi nhất làmức 256, tức là dùng 1 byte để biểu diễn mức xám Ảnh có thể được phân loại nhưsau:[1]
2 giá trị mức xám 0 và 1 và chỉ sử dụng 1 bit dữ liệu trên 1 điểm ảnh
giá trị mức xám tại mỗi điểm ảnh có thể khác nhau, dao động trong phạm vimức xám của ảnh
với nhau để tạo ra một hình ảnh sinh động, giống đời thật Người ta dùng 3byte để mô tả mức màu, tức có khoảng 16,7 triệu mức màu
Trang 24Hình 2 2 Điểm ảnh (x,y) và các điểm lân cậnLân cận điểm ảnh (Neighbors of pixel), được ví như “hàng xóm” của điểm ảnhđang xét Có hai loại lân cận điểm ảnh cơ bản là lân cận 4 (4-neighbors) và lân cận 8(8-neighbors).[1]
Hình 2 3 Lận cận 4 và lân cận 8 của 1 điểm ảnh (x,y)Bốn điểm ảnh lân cận 4 theo cột và hàng với tọa độ lần lượt là (x-1,y), (x+1,y),(x,y-1), (x,y+1), ký hiệu là tập N4(p) Bốn điểm ảnh lân cận theo 4 đường chéo có cáctọa độ lần lượt là (x-1,y-1), (x-1,y+1), (x+1,y-1), (x+1,y+1), ký hiệu là tập ND(p) Tập
8 điểm ảnh lân cận 8 là hợp của 2 tập trên:
Liên kết ảnh: Các mối liên kết của ảnh được xem như là mối liên kết của hai điểm
ảnh gần nhau Có 3 loại liên kết: liên kết 4, liên kết 8 và liên kết m (liên kết hỗn hợp)
Trang 25Trong ảnh đa mức xám, ta có thể đặt V chứa nhiều giá trị như V = {tập con} Cho p cótọa độ (x,y).
Liên kết 4: hai điểm ảnh p và q có giá trị thuộc về tập V được gọi là liên kết 4 củanhau nếu q thuộc về tập N4(p)
Liên kết 8: hai điểm ảnh p và q có giá trị thuộc về tập V được gọi là liên kết 8 củanhau nếu q thuộc về tập N8(p)
Liên kết m: hai điểm ảnh p và q có giá trị thuộc về tập V được gọi là liên kết mcủa nhau nếu thỏa 1 trong 2 điều kiện sau: q thuộc về tập N4(p), q thuộc về tập ND(p)
và giao của hai tập N4(p), N4(q) không chứa điểm ảnh nào có giá trị thuộc V
2.3 GIỚI THIỆU RASPBERRY PI 3
2.3.1 Giới thiệu
Raspberry Pi là một máy tính chỉ có một board mạch kích thước chỉ bằng một cáithẻ ATM Người ta đã tích hợp mọi thứ cần thiết để ta có thể sử dụng như một máy vitính chạy hệ điều hành Linux Raspberry Pi được phát triển tại Anh bởi Raspberry PiFoundation với mục đích thúc đẩy việc giảng dạy về khoa học máy tính cơ bản trong
Hình 2 4 Rapberry Pi 3Raspberry Pi xây dựng xung quanh bộ xử lý Broadcom bao gồm: CPU, GPU, bộ
xử lý âm thanh/video, các cổng kết nối và các bộ phận khác Ở đề tài này nhóm sửdụng kit Raspberry 3 model B vì đầy đủ chức năng và các cổng kết nối cũng nhiều hơn
so với các model trước đó.[16]
Trang 262.3.2 Thông tin cấu hình Raspberry Pi 3
Hình 2 5 Sơ đồ khối Raspberry Pi 3Thông tin cấu hình Raspberry Pi 3 model B:
tốc độ 1.2GHz, gấp 10 lần so với thế hệ đầu tiên
Trang 27Ưu điểm: Giá rẻ, nhỏ gọn, GPU mạnh, có thể phục vụ nhiều mục đích, bền bỉ, có
khả năng hoạt động liên tục
Nhược điểm: Sức mạnh phần cứng còn hạn chế, không chạy được những chương
trình đòi hỏi quá cao
2.3.3 Các ngõ vào ra GPIO
Hình 2 6 Vị trí 40 chân GPIO trên Raspberry Pi
Hình 2 7 Chi tiết chức năng các chân GPIOThứ tự các chân GPIO được đánh số từ 1 đến 40 theo trình tự từ trái sang phải,
trên xuống dưới như hình 2.6.[16]
bảng, cũng như một số chân nối đất (0V), không thể định cấu hình Các chân
Trang 28còn lại đều là các chân 3.3V cho mục đích chung, nghĩa là các đầu ra được đặt thành 3.3V và các đầu vào có khả năng chịu 3.3V.
mức cao (3.3V) dòng ra tối đa được 5mA hoặc thấp (0V) với dòng điện ra tối
đa 5mA
cao (3.3V) hoặc thấp (0V) Điều này được thực hiện dễ dàng hơn với việc sửdụng điện trở kéo lên hoặc kéo xuống bên trong Các chân GPIO2 và GPIO3 cócác điện trở kéo cố định, nhưng đối với các chân khác, điều này có thể được
- SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK (GPIO21); CE0
(GPIO18); CE1 (GPIO17); CE2 (GPIO16)
- Dữ liệu: (GPIO2); Đồng hồ (GPIO3)
- Dữ liệu EEPROM: (GPIO0); Đồng hồ EEPROM (GPIO1)
Trang 292.4 GIỚI THIỆU VỀ CAMERA PI
2.4.1 Giới thiệu
Raspberry Pi camera là module camera được chính Raspberry Pi Foundation thiết kế
và đưa vào sản xuất đại trà từ tháng 5/2013 Camera module ra đời đã làm thoả lòng rấtnhiều tín đồ yêu thích Raspberry Trước khi xuất hiện camera, điều duy nhất ta có thể làm
để thêm khả năng nhận biết hình ảnh, quay phim, chụp hình cho RPi là sử dụng
mjpeg sẽ giúp Raspberry xử lý nhanh hơn Nhưng các webcam Logitech lại có giá
Raspberry Pi camera được tích hợp camera 5 Megapixel có độ nhạy sáng cao, cóthể chụp tốt ở nhiều điều kiện ánh sáng khác nhau, cả trong nhà và ngoài trời Điểmđặc biệt mà camera mang lại đó là chụp hình độ nét cao trong lúc quay phim Khôngtốn thêm cổng USB nào cho camera vì camera được gắn chắc chắn vào socket CSI.Điều này giúp hạn chế tình trạng nghẽn băng thông cho chip xử lý USB trên mạchRaspberry Chiều dài cáp nối camera đã được tính toán cẩn thận khi vừa đạt được độdài cần thiết trong khi vẫn đảm bảo tốc độ truyền hình ảnh từ module về RPi
Tháng 4/2016, Raspberry Pi Foundation ra mắt thế hệ thứ 2 của sản phẩm CameraModule với nâng cấp đáng kể nhất là sử dụng sensor Sony IMX219 8 Megapixel.Raspberry Pi Camera Module V2 có một cảm biến 8-megapixel của Sony IMX219 (so với
Hình 2 8 Raspberry Pi Camera V2.1
Trang 30Camera Module có thể được sử dụng để quay video độ nét cao, cũng như chụphình ảnh tĩnh Nó khá dễ dàng để sử dụng cho người mới bắt đầu, nhưng cũng có rấtnhiều giải pháp mở rộng để cung cấp cho người dùng yêu cầu cao Có rất nhiều democủa người dùng về công dụng của Camera Module như chụp Time-Lapse, Slow-Motion và rất nhiều ứng dụng khác Raspberry Pi Camera Module V2 là một bướcnhảy vọt về chất lượng hình ảnh, màu sắc trung thực và hiệu suất ánh sáng thấp Đặcbiệt nó hỗ trợ video lên tới 1080P30, 720P60 và video mode VGA90, cũng như chế độ
Hình 2 9 Sơ đồ khối Camera Pi
2.4.3 Ứng dụng
Trang 31Ứng dụng trong các hệ thống bảo mật, phát hiện chuyển động, chống trộm, hệthống bảo mật sử dụng nhận diện khuôn mặt Hữu ích trong việc quay phim các gócmáy khó, hoặc quay phim ở những nơi mà với kích cỡ camera thông thường không thểlàm được Camera chính là “đôi mắt” để máy tính có thể nhìn ra thế giới bên ngoài nêntrong lĩnh vực thị giác máy tính, đây là thành phần vô cùng quan trọng.
2.5 GIỚI THIỆU VỀ MATLAB
2.5.1 Tổng quan
Hình 2 10 Logo MATLABMATLAB là phần mềm cung cấp môi trường tính toán số và lập trình do công tyMathWorks thiết kế MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm sốhay biểu đồ thông tin, thực hiện thực toán, tạo giao diện người dùng và liên kết vớinhững chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác nhau MATLABgiúp đơn giản hóa việc giải quyết các bài toán tính toán kỹ thuật so với các ngôn ngữ
MATLAB được sử dụng trong nhiều lĩnh vực, bao gồm xử lý tín hiệu và ảnh,truyền thông, thiết kế điều khiển tự động, đo lường kiểm tra, phân tích mô hình tàichính, hay tính toán sinh học Với hàng triệu kĩ sư và nhà khoa học làm việc trong môitrường công nghiệp cũng như ở môi trường hàn lâm, MATLAB là ngôn ngữ của tínhtoán khoa học
2.5.2 Phần mềm MATLAB
Giao diện MATLAB được mở rộng kể từ năm 2012, các tùy chọn được đưa vàocác tab riêng như Microsoft Office, môi trường làm việc đa dạng giúp người dùng dễdàng thao tác hơn Nhưng nó cũng khá phức tạp với những người tiếp xúc lần đầu vớiphần mềm
Trang 32Hình 2 11 Giao diện phần mềmMột giao diện bình thường của Matlab được chia làm 5 phần:
Phần 1 – Toolstrip: Đây là thanh công cụ điều khiển trình MATLAB như
chạy code, save, debug, tìm kiếm…
Phần 2 – Editor: Nơi soạn thảo các lệnh, hàm của Editor.
Phần 3 – Current Folder: Quản lí các file đang làm việc trên MATLAB
và thư mục chứa files đó
Phần 4 – Workspace: Hiển thị thông tin của tất cả các biến (variable) đang
dùng bao gồm tên của chúng, size chúng chiếm trong bộ nhớ, giá trị…
Phần 5 – Command Window: Nơi gõ các dòng lệnh (như cmd trên Win
hay terminal trên Linux/Mac).
2.6 THUẬT TOÁN HISTOGRAM OF ORIENTED GRADIENT
2.6.1 Giới thiệu
Phương pháp trích xuất đặc trưng hình ảnh HOG xuất bản ở hội nghị CVPR 2005được đề xuất bởi tác giả Navneet Dalal và Bill Triggs Bài báo gốc HOG đề xuấtphương pháp trích xuất đặc trưng sử dụng các thống kê histogram về hướng trên ảnh
Trang 33HOG là viết tắt của Histogram of Oriented Gradient - một loại “bộ mô tả đặctrưng” (feature descriptor) Mục đích của bộ mô tả đặc trưng là trừu tượng hóa đốitượng bằng cách trích xuất ra những đặc trưng của đối tượng đó và bỏ đi những thôngtin không hữu ích Vì vậy, HOG được sử dụng chủ yếu để mô tả hình dạng và sự xuấthiện của một đối tượng trong ảnh.
Thuật toán này sẽ tạo ra các bộ mô tả đặc trưng bằng cách lấy ra 2 ma trận quantrọng giúp lưu thông tin ảnh đó là độ lớn gradient (gradient magnitute) và phương củagradient (gradient orientation) Bằng cách kết hợp 2 thông tin này vào một biểu đồ phânphối histogram, trong đó độ lớn gradient được đếm theo các nhóm bin của phươnggradient Cuối cùng ta sẽ thu được véctơ đặc trưng HOG đại diện cho histogram
2.6.2 Ứng dụng của HOG:
Nhận diện người (human detection): Lần đầu tiên ứng dụng này được giới thiệutrong bài báo Histograms of Oriented Gradients for Human Detection của Dalal vàTrigg HOG có thể phát hiện được một hoặc nhiều người đi bộ trên cùng một hình ảnh.Nhận diện khuôn mặt (face detection): Thường chúng ta sẽ nghĩ ngay đến thuậttoán Haar Cascade Classifier Tuy nhiên HOG cũng là một thuật toán rất hiệu quảđược áp dụng trong bài toán này Bởi nó có khả năng biểu diễn các đường nét chínhcủa khuôn mặt dựa trên phương và độ lớn gradient thông qua các véctơ trên mỗi cell.Nhận diện các vật thể khác: Ngoài ra còn rất nhiều các trường hợp nhận diện vậtthể trên ảnh tĩnh như phương tiện, tín hiệu giao thông, động vật …
Tạo đặc trưng cho các bài toán phân loại ảnh: Nhiều bài toán phân loại ảnh đượcxây dựng trên một bộ dữ liệu kích thước nhỏ thì sử dụng các mạng học sâu chưa chắc
đã mang lại hiệu quả và dễ dẫn tới overfiting Nguyên nhân vì dữ liệu ít thường không
đủ để huấn luyện cho máy tính nhận tốt các đặc trưng của vật thể Khi đó sử dụngHOG để tạo đặc trưng sẽ mang lại kết quả tốt hơn
2.6.3 Sơ lược cách hoạt động của thuật toán
Điểm mấu chốt trong nguyên lý hoạt động của HOG đó là hình dạng của một vậtthể cục bộ có thể được mô tả thông qua hai ma trận đó là ma trận độ lớn gradient
Đầu tiên hình ảnh được chia thành 1 lưới ô vuông và trên đó chúng ta xác định rấtnhiều các vùng cục bộ liền kề hoặc chồng lấn lên nhau Một vùng cục bộ bao gồm nhiều
Trang 34ô cục bộ (trong thuật toán HOG là 4) có kích thước là 8x8 pixels Sau đó, một biểu đồhistogram thống kê độ lớn gradient được tính toán trên mỗi ô cục bộ Bộ mô tả HOG(HOG descriptor) được tạo thành bằng cách nối liền (concatenate) 4 véctơ histogramứng với mỗi ô thành một véctơ tổng hợp Để cải thiện độ chính xác, mỗi giá trị củavéctơ histogram trên vùng cục bộ sẽ được chuẩn hóa theo norm chuẩn bậc 2 hoặc bậc
1 Phép chuẩn hóa này nhằm tạo ra sự bất biến tốt hơn đối với những thay đổi trongchiếu sáng và đổ bóng.[14]
2.6.4 Tính toán HOG
Gradient vector
Trong xử lý ảnh, ta muốn biết hướng của các màu thay đổi từ cực này sang cực
khác (từ trắng sang đen trong ảnh xám) Do đó, ta cần đo độ dốc gradient trên các pixel
Vectơ độ dốc hình ảnh được xác định là một số liệu cho mỗi pixel riêng lẻ, chứacác thay đổi màu pixel ở cả trục x và trục y [14]
Giả sử f(x,y) ghi lại màu của pixel tại vị trí (x,y), vectơ gradient của pixel (x,y)
được xác định như sau:
Giá trị độ lớn gradient (gradient magnitude) và phương gradient (gradientdirection) có thể được tạo ra từ 2 đạo hàm Gx và Gy theo công thức bên dưới:
Trang 35Toán tử Prewitt: Thay vì chỉ dựa vào bốn hàng xóm liền kề trực tiếp, toán tử
Toán tử Sobel: Để nhấn mạnh tác động của các pixel liền kề trực tiếp nhiều hơn,
(* là phép tích chập)
Các kernel khác nhau được tạo ra cho các mục đích khác nhau, chẳng hạn như phát
hiện cạnh, làm mờ, làm sắc nét vân vân
Tính toán Histogram
Hình ảnh được chia thành một lưới ô vuông mà mỗi một ô có kích thước 8x8 pixels
Như vậy chúng ta có tổng cộng 64 ô pixels tương ứng với mỗi ô Trên mỗi một ô trong
64 pixels ta sẽ cần tính ra 2 tham số đó là độ lớn gradient (gradient magnitute) vàphương gradient (gradient direction) Như vậy tổng cộng 8x8x2 = 128 giá trị cần tínhbao gồm 64 giá trị gradient magnitute và 64 giá trị gradient direction [14]
Hình 2 12 Ảnh phân tích Histogram
Trang 36Véctơ Histogram sẽ được tạo ra như sau:
Bước 1: Mapping độ lớn gradient vào các bin tương ứng của phương gradient.
Hình 2 13 Map giá trị độ lớn gradient vào các bin tương ứng với phương
Giá trị phương gradient bằng x ghép cặp với độ lớn gradient bằng y x∈[x0,x1] tức là phương gradients rơi vào khoảng giữa bin thứ (l−1) và bin thứ l Khi đó tại 2 bin (l−1) và
l được điền vào giá trị cường độ theo công thức:
Giá trị tại bin á trị tại bin trị tại bin trị tại bin t iá trị tại bin trị tại bin biá trị tại bin n trị tại bin ị tại bin ại bin (l-1):l-1):-1):
Trang 37Hình 2 14 Biểu đồ Histogram tương ứng với 1 cell
Bước 2: Chuẩn hóa véctơ histogram theo block 16x16
Véctơ histogram sẽ bị phụ thuộc vào cường độ các pixel của một bức ảnh Với 2bức ảnh có cùng nội dung nhưng bức ảnh biến thể tối hơn được tạo thành từ ma trậnảnh gốc nhân 1/2 Khi đó giá trị véctơ histogram của ảnh gốc cũng sẽ gấp đôi véctơhistogram của ảnh biến thể Hiện tại mỗi ô đang mang trong mình histogram trên vùngảnh 8x8, các thông tin này mang tính chất cục bộ Chính vì thế cần chuẩn hóa véctơhistogram để cả 2 bức ảnh có cùng một véctơ biểu diễn Tác giả đã đưa ra nhiều cách
Một block gồm nhiều ô, block 2x2 nghĩa là ta có vùng diện tích của 4 ô liền kề,block này sẽ phủ trên diện tích = 16x16 pixel Trong quá trình chuẩn hóa, ta sẽ lần lượtchuẩn hóa block 2x2 đầu tiên, rồi dịch block đó sang 1 ô và cũng thực hiện chuẩn hóacho block này Như vậy, giữa block đầu tiên và block liền kề đã có sự chồng lấn lẫn
(ℎ) =
||ℎ|| 2Quá trình chuẩn hóa sẽ thực hiện trên một block kích thước 2x2 trên lưới ô vuôngban đầu (mỗi ô kích thước 8x8 pixel) Như vậy chúng ta sẽ có 4 véctơ histogram kíchthước 1x9, nối các véctơ sẽ thu được véctơ histogram tổng hợp kích thước là 1x36 vàsau đó chuẩn hóa theo norm chuẩn bậc 2 trên véctơ này
Trang 38Bước 3: Tính toán HOG theo các block đã chuẩn hóa.
2.7 THUẬT TOÁN VIOLA – JONES
2.7.1 Giới thiệu thuật toán Viola – Jones
Được phát triển bởi Paul Viola và Michael Jones vào năm 2001 Phương phápnày được cho là đơn giản và đạt hiệu quả phát hiện tương đối cao, lên tới 94% Dù đãđược ra đời từ rất lâu nhưng với độ chính xác và tốc độ xử lý mang phương pháp này
có thể mang lại, người ta vẫn sử dụng phương pháp này trong bài toán phát hiện khuônmặt người cho đến ngày nay Các hãng sản xuất máy ảnh nổi tiếng như Canon,
2.7.2 Các đặc trưng Haar – Like
Các đặc trưng Haar – Like là những hình chữ nhật được phân thành các vùngkhác nhau như hình:
Hình 2 15 Các đặc trưng Haar - Like
Trang 39Đặc trưng do Viola và Jones công bố gồm 4 đặc trưng cơ bản để xác định khuônmặt người Mỗi đặc trưng Haar-Like là sự kết hợp của hai hay ba hình chữ nhật trắnghay đen như trong hình sau:
Hình 2 16 Các đặc trưng Viola và Jones sử dụng trong việc phát hiện khuôn mặt
Để sử dụng các đặc trưng này vào việc xác định khuôn mặt người, 4 đặc trưngHaar-Like cơ bản được mở rộng ra và được chia làm 3 tập đặc trưng như sau:
- Đặc trưng cạnh (Edge feature)
- Đặc trưng đường (Line feature)
- Đặc trưng xung quanh tâm (Center-surrounded feature)
Dùng các đặc trưng trên, ta có thể tính được các giá trị của đặc trưng Haar-Like
là sự chênh lệch giữa tổng của các pixel của vùng đen và vùng trắng như trong côngthức sau:
(2.11)
2.7.3 Khái niệm Integral Image
Viola và Joines đưa ra một khái niệm gọi là Integral Image, là một mảng 2 chiềuvới kích thước bằng với kích thước của ảnh cần tính đặc trưng Haar – Like, với mỗi
Trang 40phần tử của mảng này được tính bằng cách tính tổng của điểm ảnh phía trên (dòng-1)
và bên trái (cột-1) của nó [5]
Hình 2 17 Intergral ImageCông thức tính Intergral Image:
Sau khi tính được Integral Image, việc tính tổng các giá trị mức xám của mộtvùng bất kỳ nào đó trên ảnh thực hiện rất đơn giản Giả sử ta cần tính tổng giá trị mức
(2.14)
Hình 2 18 Mô tả Intergral ImageCác đặc trưng Haar-Like vẫn còn tương đối nguyên thủy, khi so sánh với các lựachọn thay thế khác thí dụ như steerable features Steerable features xuất sắc trong việcphân tích chi tiết các đường biên, nén ảnh và phân tích kết cấu Ngược lại, với các đặc