NHIỆM VỤ: - Tìm hiểu, phân tích thuật toán phát hiện và nhận dạng khuôn mặt người quen - Xây dựng chương trình và mô hình thực nghiệm ñánh giá khả năng ứng dụng của thuật toán III... Do
Trang 1ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
-
NGUYỄN HỮU TÌNH
ỨNG DỤNG XỬ LÝ ẢNH TRONG ROBOT DÙNG PHÁT GIÁC CHUYỂN ĐỘNG VÀ NHẬN DẠNG
ĐỐI TƯỢNG NGƯỜI QUEN
Chuyên ngành: TỰ ĐỘNG HÓA
Mã số : 60.52.60
LUẬN VĂN THẠC SĨ
TP HỒ CHÍ MINH, tháng 04, năm 2014
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM
Cán bộ hướng dẫn khoa học :
(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ chấm nhận xét 1 :
(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ chấm nhận xét 2 :
(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Luận văn thạc sĩ ñược bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp.HCM ngày tháng năm
Thành phần Hội ñồng ñánh giá luận văn thạc sĩ gồm: 1
2
3
4
5
Xác nhận của Chủ tịch Hội ñồng ñánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn ñã ñược sửa chữa (nếu có)
CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA
Trang 3ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc Lập – Tự Do – Hạnh Phúc _
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên : NGUYỄN HỮU TÌNH Mã số HV : 10150057
Ngày, tháng, năm sinh : 22/10/1983 Nơi sinh : Quảng Bình
I TÊN ĐỀ TÀI:
ỨNG DỤNG XỬ LÝ ẢNH TRONG ROBOT DÙNG PHÁT GIÁC
CHUYỂN ĐỘNG VÀ NHẬN DẠNG ĐỐI TƯỢNG NGƯỜI QUEN
II NHIỆM VỤ:
- Tìm hiểu, phân tích thuật toán phát hiện và nhận dạng khuôn mặt người quen
- Xây dựng chương trình và mô hình thực nghiệm ñánh giá khả năng ứng dụng của thuật toán
III NGÀY GIAO NHIỆM VỤ: 29/08/2011
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 30/06/2012
Trang 4Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
LỜI CẢM ƠN
Trước tiên, xin cảm ơn thầy T.s Nguyễn Đức Thành ñã quan tâm, giúp ñỡ, ñịnh hướng và dành thời gian chỉ dẫn cho học viên trong suốt quá trình thực hiện ñề tài tốt nghiệp
Học viên cũng xin gửi lời cảm ơn ñến tất cả những thầy cô ñã trực tiếp giảng dạy trong suốt khóa học, những người bạn ñã quan tâm, ñộng viên và chia sẻ kiến thức cũng như kinh nghiệm chuyên ngành trong quá trình học tập và rèn luyện vừa qua của học viên
Cũng xin chân thành cảm ơn sự quan tâm hỗ trợ, tạo ñiều kiện và hết lòng ñộng viên về tinh thần lẫn vật chất của các thành viên trong gia ñình trong suốt thời gian qua
Sau cùng, học viên gởi lời chúc sức khỏe, hạnh phúc ñến quý thầy cô, gia ñình
và bạn bè
TP HCM, ngày … tháng … năm 20…
Học viên
Nguyễn Hữu Tình
Trang 5
Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
Đề tài luận văn này, “ Ứng dụng xử lý ảnh trong robot dùng phát giác chuyển
ñộng và nhận dạng ñối tượng người quen” cũng không nằm ngoài ý nghĩa ñó Đây là một dạng ứng dụng thú vị mà nhiều nhà khoa học ñã, ñang và sẽ không ngừng nghiên cứu vì nhu cầu thực tiễn và ña dạng của các phương pháp tiếp cận
Trong ñề tài này sẽ trình bày các vấn ñề liên quan tới kiến thức nền tảng xây dựng nên luận văn Học viên ñã sử dụng thư viện mã nguồn mở EmguCV và ngôn ngữ
lập trình C#.Net trên nền Visual Studio 2010 ñể xây dựng ứng dụng Sử dụng thuật
toán AdaBoost ñể phát hiện khuôn mặt người và phương pháp phân tích thành phần chính (PCA) ñể nhận dạng khuôn mặt người quen (Eigenfaces)
Nội dung luận văn gồm 5 chương, cụ thể như sau:
Chương 1: Giới thiệu
Chương 2: Các công trình nghiên cứu liên quan
Chương 3: Cơ sở lý thuyết
Chương 4: Xây dựng chương trình va mô hình thực nghiệm
Chương 5: Kết luận và hướng phát triển ñề tài
Trang 6Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
Abstract
Face recognition and tracking presents a challenging problem in the field of image analysis and computer vision, and as such has received a great deal of attention over the last few years because of its many applications in various domains In this thesis, an overview of some of the well-known methods in each of these categories is provided and some of the benefits and drawbacks of the schemes mentioned therein are examined Thesis also mentions some of the most recent algorithms developed for this purpose and attempts to give an idea of the state of the art of face recognition technology
In this thesis describes an algorithm for human tracking using computer vision, specially designed for a human machine interface of a mobile robotic platforms The solution presents a clear improvement on a tracking algorithm achieved by using a machine learning approach for visual object detection and recognition The detection technique is based on Haar-like features, whereas eigenfaces and PCA are used in the recognition stage of the system The tracking algorithm uses a area method to estimate position and scale of the person’s face in the image
The author have used EmguCV and C# to build application Using AdaBoost algorithm for face detection and principal component analysis method (PCA) for faces recognition (Eigenfaces) The system is able to detect, recognise and track faces in a conventional Laptop (DELL, Core2 Duo CPU @ 2.4GHz, 3.00GB of RAM)
Trang 7Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
LỜI CAM ĐOAN
Xin cam ñoan: Đề tài luận văn “Ứng dụng xử lý ảnh trong robot dùng phát
giác chuyển ñộng và nhận dạng ñối tượng người quen” do thầy TS Nguyễn Đức Thành hướng dẫn là công trình nghiên cứu của riêng tôi Tất cả các tài liệu tham khảo ñều có nguồn gốc, xuất xứ rõ ràng
Tác giả xin cam ñoan tất cả nội dung trong luận văn ñúng như nội dung trong
ñề cương và yêu cầu của thầy hướng dẫn Nếu sai tôi hoàn toàn chịu trách nhiệm trước Hội ñồng khoa học và Pháp luật
Trang 8Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
MỤC LỤC
Trang
Lời cảm ơn i
Tóm tắt luận văn ii
Abstract iii
Lời cam ñoan iv
Mục lục v
Danh mục các hình viii
Danh mục các bảng xi
Danh mục các chữ viết tắt và ký hiệu xii
Chương 1 Giới thiệu 1
1.1 Tổng quan về bài toán nhận dạng và theo dõi khuôn mặt người quen 1
1.1.1 Đặt vấn ñề 1
1.1.2 Bài toán theo dõi và nhận dạng khuôn mặt người quen 2
1.1.3 Những khó khăn trong bài toán xác ñịnh khuôn mặt người 3
1.1.4 Các ứng dụng liên quan ñến nhận dạng và theo dõi khuôn mặt người 5
1.2 Mục tiêu và phạm vi ñề tài 8
1.2.1 Mục tiêu và nhiệm vụ nghiên cứu 8
1.2.2 Phạm vi nghiên cứu của ñề tài 8
1.2.3 Tổ chức luận văn 9
Chương 2 Các công trình nghiên cứu liên quan 11
2.1 Giới thiệu 11
2.2 Các hướng tiếp cận liên quan ñến phát hiện khuôn mặt 11
2.3 Các hướng tiếp cận liên quan ñến nhận dạng khuôn mặt 13
2.4 Kết luận 16
Chương 3 Cơ sở lý thuyết 17
3.1 Giới thiệu chung 17
Trang 9Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
3.2 Các thuật toán tiền xử lý ảnh 18
3.2.1 Một số khái niệm về xử lý ảnh số 18
3.2.2 Một số thuật toán xử lý ảnh 20
3.2.2.1 Chuyển ảnh màu thành ảnh ña mức xám 20
3.2.2.2 Chuyển ảnh ña mức xám sang ảnh nhị phân 20
3.2.2.3 Cân bằng Histogram 21
3.2.2.4 Điều chỉnh ñộ tương phản 24
3.2.2.5 Lọc nhiễu 25
3.3 Phát hiện khuôn mặt dùng giải thuật Adaboost và ñặc trưng Haar-like 28
3.3.1 Đặc trưng Haar-like 28
3.3.2 Thuật toán Adaboost 31
3.3.3 Phân tầng các bộ phân loại 36
3.3.4 Áp dụng giải thuật Adaboost phát hiện khuôn mặt người 34
3.4 Phương pháp nhận dạng khuôn mặt riêng dùng PCA 41
3.4.1 Không gian ảnh khuôn mặt 41
3.4.2 Nhận dạng khuôn mặt riêng dùng phương pháp PCA 43
3.5 Kết luận 47
Chương 4 Xây dựng chương trình và mô hình thực nghiệm 48
4.1 Giới thiệu chung 48
4.2 Xây dựng chương trình phát hiện và theo dõi khuôn mặt người quen 48
4.2.1 Xây dựng lưu ñồ và giải thuật chương trình 48
4.2.2 Xây dựng chương trình 50
4.2.2.1 Giới thiệu về EmguCV 50
4.2.2.2 Thu nhận hình ảnh từ Webcam 51
4.2.2.3 Phát hiện và trích xuất hình ảnh khuôn mặt 51
4.2.2.4 Xây dựng chương trình bám theo ñối tượng khuôn mặt 52
4.2.2.5 Nhận dạng khuôn mặt người quen 53
4.3 Xây dựng mô hình mobile robot 54
Trang 10Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
4.3.1 Giới thiệu về một số kiểu mobile robot thông dụng 54
4.3.2 Thiết kế và chế tạo mô hình mobile robot 57
4.3.3 Xây dựng mạch ñiện và chương trình ñiều khiển cho mobile robot 60
4.3.3.1 Mạch ñiều khiển 60
4.3.3.2 Xây dựng giải thuật và chương trình cho vi ñiều khiển 63
4.4 Kết quả thực nghiệm 65
4.4.1 Mô tả quá trình thực nghiệm 65
4.4.2 Kết quả thực nghiệm 66
4.4.3 Đánh giá kết quả thực nghiệm 69
4.5 Kết luận 69
Chương 5 Kết luận và hướng phát triển của ñề tài 70
5.1 Kết quả và ý nghĩa 70
5.1.1 Kết quả ñạt ñược 70
5.1.2 Hạn chế 70
5.1.3 Ý nghĩa ……….71
5.2 Hướng phát triển của ñề tài 71
Tài liệu tham khảo và trích dẫn 72
Phụ lục A: Một số khái niệm toán học 75
Phụ lục B: Chương trình xây dựng giải thuật bằng C#… …….……… 80
Phụ lục C: Chương trình vi ñiều khiển ATMEGA162 92
Lý lịch trích ngang 99
Trang 11Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
DANH MỤC CÁC HÌNH
Trang
Hình 1.1: Các bước chính trong hệ thống nhận dạng khuôn mặt người 2
Hình 1.2: Ảnh chụp trong ñiều kiện chiếu sáng khác nhau 3
Hình 1.3: Các hướng chụp hình khác nhau 4
Hình 1.4: Sự biểu cảm khác nhau của khuôn mặt 5
Hình 1.5: Một số thành phần của khuôn mặt bị che khuất 5
Hình 1.6: Phần mềm nhận dạng khuôn mặt Google Picasa 6
Hình 1.7: Phần mềm nhận dạng khuôn mặt Apple Iphoto 6
Hình 1.8: Phần mềm nhận dạng khuôn mặt FaceIt®Argus 7
Hình 1.9: Ứng dụng của công nghệ nhận dạng khuôn mặt 7
Hình 2.1: Các khuôn mặt riêng (Eigenfaces) 14
Hình 2.2: Phương pháp phân lớp dùng LDA 15
Hình 2.3: Mô hình lưới của các khuôn mặt khác nhau 16
Hình 3.1: Hệ tọa ñộ ảnh 18
Hình 3.2: Các khuôn mặt riêng (Eigenfaces) 19
Hình 3.3a: Ảnh màu 20
Hình 3.3b: Ảnh ña mức xám 20
Hình 3.4a: Ảnh ña mức xám 21
Hình 3.4b: Ảnh nhị phân 21
Hình 3.5: Biểu ñồ Histogram của ảnh xám 22
Hình 3.6: Biểu ñồ Histogram của các loại ảnh 22
Hình 3.7: Ảnh trước và sau khi cân bằng Histogram 23
Hình 3.8: Sơ ñồ giải thuật cân bằng Histogram 23
Hình 3.9: Biểu ñồ ñiều chỉnh ñộ tương phản 24
Hình 3.10: Ảnh trước và sau khi tăng cường ñộ tương phản 25
Trang 12Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
Hình 3.11: Các loại mặt nạ lọc tuyến tính 25
Hình 3.12: Minh họa phương pháp lọc tuyến tính dùng mặt nạ lọc H1 26
Hình 3.13: Ảnh minh họa kết quả phép lọc tuyến tính 27
Hình 3.14: Minh họa dùng cửa sổ 3x3 trong phép lọc trung vị 27
Hình 3.15: Ảnh minh họa so sánh kết quả các phép lọc tuyến tính 28
Hình 3.16: Bốn ñặc trưng Haar-like cơ bản 29
Hình 3.16a: Các ñặc trưng cạnh 29
Hình 3.16b: Các ñặc trưng ñường 29
Hình 3.16c: Các ñặc trưng bao quanh tâm 30
Hình 3.17: Cách tính ảnh tích phân 31
Hình 3.18: Cách tính nhanh giá trị mức xám của vùng ảnh A 31
Hình 3.19: Mô hình thuật toán AdaBoost 32
Hình 3.20: Kết hợp các bộ phân loại yếu thành bộ phân loại mạnh 33
Hình 3.21: Lưu ñồ giải thuật Adaboost 35
Hình 3.22: Phân tầng các bộ phân loại 37
Hình 3.23: Mô hình phân tầng kết hợp các bộ phân loại yếu xác ñịnh khuôn mặt 38
Hình 3.24: Hệ thống phát hiện khuôn mặt 39
Hình 3.25: Kết quả nhận dạng khuôn mặt trong ảnh 40
Hình 3.26: Chuyển ñổi hình ảnh 2D thành một vector không gian 41
Hình 3.27: Không gian ảnh khuôn mặt trong không gian ảnh tổng quát 42
Hình 3.28: Biễu diễn ảnh trong không gian vector 43
Hình 3.29: Tập ảnh mẫu huấn luyện 44
Hình 4.1: Sơ ñồ khối chức năng của chương trình 48
Hình 4.2: Sơ ñồ giải thuật chương trình 49
Hình 4.3: Cấu trúc tổng quát của Emgu CV 50
Hình 4.4: Robot hai chân BRAT 55
Hình 4.5: Robot nhiều chân 55
Hình 4.6: Robot di chuyển bằng ñai xích 56
Trang 13Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
Hình 4.7: Robot di chuyển bằng bánh xe 56
Hình 4.8: Hình vẽ 3D mô hình mobile robot 57
Hình 4.9: Kết quả xây dựng mô hình mobile robot 58
Hình 4.10: Chi tiết các thành phần mô hình mobile robot 59
Hình 4.11: Sơ ñồ khối mạch ñiều khiển 60
Hình 4.12: Sơ ñồ nguyên lý mạch ñiều khiển Atmega162 61
Hình 4.13: Sơ ñồ mạch cầu H ñiều khiển ñộng cơ DC 62
Hình 4.14: Sơ ñồ chân Atmega162 63
Hình 4.15: Lưu ñồ giải thuật chương trình vi ñiều khiển 64
Hình 4.16: Giao diện chương trình phát hiện, bám theo và nhận dạng mặt người 65
Hinh 4.17: Minh họa kết quả phát hiện và nhận dạng chính xác 67
Hinh 4.18: Phát hiện và nhận dạng ñược khi một thành phần khuôn mặt bị che khuất 67 Hình 4.19: Không phát hiện ñược khi khuôn mặt bị nghiêng 68
Hình 4.20: Minh họa kết quả nhận dạng sai 68
Trang 14Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
DANH MỤC CÁC BẢNG
Trang
Bảng 4.1: Kết quả thực nghiệm trương hợp góc nhìn và khoảng cách thay ñổi 66 Bảng 4.2: Kết quả nhận dạng với số lượng tập ảnh khác nhau 66
Trang 15Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
DANH MỤC CÁC CHỮ VIẾT TẮT
MMI Man Machine Interaction
AdaBoost Adaptive Boost
PCA Principal Component Analysis
SIFT Scale Invariant Feature Transform
LDA Linear Discriminant Analysis
EBGM Elastic Bunch Graph Matching
PWM Pulse Width Modulation
EEPROM Electrically Erasable Programmable Read-Only Memory
SRAM Static Random Access Memory
ADC Analog-to-digital converter
UART universal asynchronous receiver/transmitter
ALU Arithmetic Logic Unit
Trang 16Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
Chương 1 Giới thiệu
1.1 Tổng quan về bài toán theo dõi và nhận dạng khuôn mặt người
1.1.1 Đặt vấn ñề
Theo dõi và nhận dạng nhận dạng khuôn mặt người là một chủ ñề nghiên cứu của khoa học máy tính và công nghệ tri thức Trong vài năm gần ñây, cùng với sự phát triển về khoa học và công nghệ, tương tác người máy (Man Machine Interaction - MMI) ñã trở thành một lĩnh vực nổi bật nhằm cung cấp cho con người khả năng phục
vụ của máy móc Điều này bắt nguồn từ khả năng máy móc có thể tương tác ñược với con người Máy móc cần các kỹ năng ñể trao ñổi thông tin với con người và một trong những kỹ năng ñó là khả năng nhận dạng ñối tượng, biết ñược ñối tượng là ai và ñang làm gì?
Thực tế có nhiều phương pháp ñể xác ñịnh một ñối tượng ñó là ai ? Nhưng phương pháp nhận dạng sinh trắc học lại thu hút nhiều nhà nghiên cứu tham gia bởi tính chính xác và duy nhất các yếu tố sinh trắc học của một con người Nhìn chung trong tất cả các phương pháp nhận dạng sinh trắc học như: nhận dạng dấu vân tay, nhận dạng chỉ tay, nhận dạng mống mắt và nhận dạng giọng nói, nhận dạng khuôn mặt ñóng một vai trò quan trọng so với các phương pháp nhận dạng khác Ưu ñiểm của phương pháp nhận dạng khuôn mặt là mọi người không cần phải nhìn vào một máy quét mống mắt, hay ñặt bàn tay lên ñầu ñọc dấu vân tay, hoặc nói qua microphone
Do ñó, công nghệ nhận dạng khuôn mặt người ñược ứng dụng một cách rộng rãi cho các mục ñích như: robot vision có khả năng tương tác giúp việc cho con người, hỗ trợ an ninh cho các cửa hàng, công ty, ngân hàng, v.v Tuy nhiên không vì khả năng ứng dụng ña dạng của công nghệ nhận dạng khuôn mặt và kỹ thuật thị giác máy tính (computer vision), lĩnh vực này còn hấp dẫn các nhà nghiên cứu bởi nó không chỉ liên quan ñến kỹ thuật xử lý ảnh mà còn liên quan ñến trí tuệ nhân tạo và khoa học máy tính Trong những năm gần ñây, có rất nhiều nghiên cứu xây dựng thuật toán nhận
Trang 17Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
dạng khuôn mặt ñể nâng cao hiệu suất, tuy nhiên dù ít hay nhiều những phương pháp này ñang vấp phải những thử thách về ñộ sáng, hướng nghiêng, kích thước ảnh, hay ảnh hưởng của tham số môi trường Do ñó việc tìm hiểu kỹ lưỡng các phương pháp và giải thuật nhận dạng khuôn mặt, sau ñó xây dựng ứng dụng công nghệ này trong mobile robot là một ñiều cần thiết ñối với những người muốn nghiên cứu về lĩnh vực này
1.1.2 Bài toán nhận dạng và theo dõi khuôn mặt người
Hệ thống nhận dạng và theo dõi mặt người là một hệ thống nhận vào là tín hiệu video ñược lấy trực tiếp từ camera Qua xử lý tính toán hệ thống xác ñịnh ñược vị trí và kích thước của tất cả những khuôn mặt người hiện diện trong ảnh (nếu có), và xác ñịnh
là người nào trong số những người hệ thống ñã ñược biết (qua quá trình học) hoặc là người lạ Sau khi xác ñịnh ñược vị trí và kích thước của khuôn mặt trong ảnh, bằng phương pháp ñại số ta xác ñịnh ñược tầm khoảng cách và hướng di chuyển của khuôn mặt số với vị trí ñặt camera
Một hệ thống nhận dạng mặt người ñược minh họa như trên hình 1.1, bao gồm
bốn bước xử lý sau [1]: tiền xử lý (preprocessing images) , phát hiện khuôn mặt (face detection), rút trích ñặc trưng (feature extraction), và nhận dạng khuôn mặt (face
recognition)
Hình ảnh
Video
Nhận dạng khuôn mặt
Rút trích ñặc trưng
Phát hiện khuôn mặt Tiền xử lý
Chỉ số khuôn mặt (Face ID)
Hình 1.1: Các bước chính trong hệ thống nhận dạng khuôn mặt người
Trang 18Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
Tiền xử lý: là quá trình tiền xử lý ñối với khuôn mặt nhằm nâng cao chất lượng ảnh, chuẩn hóa dữ liệu và kích thước hình ảnh ñầu vào
Phát hiện khuôn mặt: là kỹ thuật dò tìm và ñịnh vị những vị trí khuông mặt xuất hiện trong ảnh hoặc trên các frame video
Trích rút ñặc trưng: là kỹ thuật sử dụng các thuật toán ñể lấy ra những thông tin mang những ñặc ñiểm riêng biệt của các thành phần trên khuôn mặt
Nhận dạng khuôn mặt: những ñặc trưng sau khi ñược trích rút sẽ là dữ liệu ñầu vào cho một mô hình ñã ñược huấn luyện trước ñể phân loại khuôn mặt
1.1.3 Những khó khăn trong bài toán xác ñịnh mặt người
Phát hiện và nhận dạng khuôn mặt trong ảnh có rất nhiều ứng dụng trong cuộc sống, bài toán này ñã ñược các nhà khoa học quan tâm và nghiên cứu trong hơn năm thập kỷ qua Tại thời ñiểm hiện nay các phương pháp nhận dạng khuôn mặt ñược sử dụng và thử nghiệm trong một số ñiều kiện ràng buộc nhất ñịnh Việc xác ñịnh khuôn mặt người có những khó khăn nhất ñịnh như:
Điều kiện chiếu sáng : Với những hình ảnh ñược chụp trong các ñiều kiện ánh sáng khác nhau minh họa như trên hình 1.2, ảnh hưởng rất lớn ñến chất lượng ảnh khuôn mặt và quá trình nhận dạng
Hình 1.2: Ảnh chụp trong ñiều kiện chiếu sáng khác nhau
Trang 19Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
Hướng chụp: Ảnh chụp khuôn mặt có thể thay ñổi rất nhiều bởi vì góc chụp
giữa Camera và khuôn mặt Chẳng hạn như: chụp thẳng, chụp xiên, chụp từ trên xuống, chụp từ dưới lên, v.v ñược minh họa như trên hình 1.3
Sự biểu cảm của khuôn mặt: Những biểu cảm khác nhau của khuôn mặt người
ñược minh họa như trên hình 1.4, sẽ làm ảnh hưởng ñáng kể lên các thông số của khuôn mặt
Hình 1.3: Các hướng chụp hình khác nhau
Trang 20Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
Một số thành phần của khuôn mặt bị che khuất: Ảnh khuôn mặt có thể bị
che khuất bởi các ñối tượng khác gây khó khăn cho quá trình nhận dạng như trong hình 1.5
1.1.4 Các ứng dụng liên quan ñến nhận dạng và theo dõi khuôn mặt người
Hệ thống nhận dạng khuôn mặt ñã ñược nghiên cứu và ứng dụng từ những năm
1960 cho ñến nay Hiện tại, công nghệ nhận dạng khuôn mặt ñã ñạt ñược một số thành tựu và phát triển ứng dụng trong các lĩnh vực như giám sát, công nghệ sinh trắc học, v.v… Trong quá trình nghiên cứu ta có thể tìm thấy một số ứng dụng liên quan ñến công nghệ nhận dạng khuôn mặt có thể kể như:
Google Picasa: Đây là một phần mềm quản lý và xử lý ảnh ảnh miễn phí của
Google Một trong những tính năng mới nhất của Picasa là tính năng nhận dạng khuôn
Hình 1.5: Một số thành phần của khuôn mặt bị che khuất
Hình 1.4: Sự biểu cảm khác nhau của khuôn mặt
Trang 21Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
mặt Theo Baker (2006) Google Picasa sử dụng phương pháp ñược gọi là “Neven Vison” ñể nhận dạng khuôn mặt người Phương pháp này có khả năng nhận dạng ñược các khuôn mặt người và các ñối tượng
Hình 1.6: Phần mềm nhận dạng khuôn mặt Google Picasa [28]
APPLE IPhoto: Phần mềm Apple Iphoto cũng có tính năng quản lý và xử lý
hình ảnh tương tự như Google Picasa nhưng chạy trên hệ ñiều hành Mac OS (Macintosh Operating System)
Hình 1.7: Phần mềm nhận dạng khuôn mặt Apple Iphoto [29]
Trang 22Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
FaceIt®Argus: Nhiều khi hình ảnh không thể ñược xác minh hay nhận ñạng chỉ
bằng công nghệ nhận dạng nét mặt Identix® ñã tạo ra một sản phẩm mới ñể giúp cho việc nhận diện chính xác hơn Phần mềm FaceIt®Argus của họ sử dụng công nghệ sinh trắc học về da, dựa trên cấu trúc da của mỗi người
Hình 1.8: Phần mềm nhận dạng khuôn mặt FaceIt®Argus [30]
Ngoài ra công nghệ nhận dạng khuôn mặt còn ñược ứng dụng trong các thống như: máy chấm công sử dụng công nghệ nhận dạng khuôn mặt, theo dõi và quan sát, giao tiếp người máy, bảo mật dựa trên thông tin sinh trắc học, v.v…
(a) Robot vision (b) Hệ thống theo dõi và quan sát
Hình 1.9: Ứng dụng của công nghệ nhận dạng khuôn mặt [26]
Trang 23Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
1.2 Mục tiêu và phạm vi ñề tài
1.2.1 Mục tiêu và nhiệm vụ nghiên cứu
Kỹ thuật xử lý ảnh nói chung và lĩnh vực thị giác máy tính nói riêng ñược nghiên cứu và ứng dụng mạnh mẽ trong nhiều lĩnh vực, trong ñó lĩnh vực nghiên cứu ứng dụng Robot vision có khả năng tương tác và phục vụ nhu cầu con người cũng ñược
nhiều nhóm nghiên cứu trong và ngoài nước quan tâm Chính vì vậy, mục ñích luận
văn này là xây dựng một hệ thống xử lý ảnh trên mobile robot, ứng dụng vào lĩnh vực
ñể phát hiện, nhận dạng và theo dõi khuôn mặt người quen ñang chuyển ñộng với chuỗi dữ liệu thu nhận ñược từ Webcam Cụ thể nhiệm vụ chính trong luận văn này như sau:
- Tìm hiểu, phân tích thuật toán phát hiện khuôn mặt và nhận dạng khuôn mặt riêng
- Xây dựng giải thuật và chương trình phát hiện, theo dõi và nhận dạng khuôn mặt
riêng dựa trên thư viện mã nguồn mở EmguCV và ngôn ngữ lập trình C#.Net
- Thiết kế và chế tạo mô hình mobile robot thực nghiệm có khả năng phát hiện, nhận
dạng và bám theo khuôn mặt người
1.2.2 Phạm vi nghiên cứu của ñề tài
Từ mục tiêu và nhiệm vụ ñặt ra, phạm vi nghiên cứu của ñề tài là xây dựng “ứng
dụng xử lý ảnh trong robot dùng phát giác chuyển ñộng và nhận dạng ñối tượng người quen”. Phạm vi nghiên cứu cụ thể như sau:
- Trong ñề tài này tác giả ñề xuất sử dụng giải thuật phát hiện khuôn mặt AdaBoost
(Adaptive Boost) dựa trên các ñặc trưng Haar-like, kết hợp thuật toán nhận dạng khuôn mặt riêng (Eigenfaces) dùng phương pháp phân tích thành phần chính
(Principal Component Analysis - PCA) ñể phát hiện và nhận dạng khuôn mặt người quen
Trang 24Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
- Chương trình ñiều khiển và giao diện hiển thị của ứng dụng ñược xây dựng dựa
trên thư viện mã nguồn mở EmguCV và ngôn ngữ lập trình C#.Net trên nền Visual Studio 2010
- Kết quả thực nghiệm của ñề tài ñược thực hiện dựa trên mô hình chế tạo là mobile
robot, ñược trang bị Webcam (Webcam Logitech C600, ñộ phân giải 1600 ×
1200, tốc ñộ 30 Frame/giây) kết nối với Laptop (DELL, Core2 Duo CPU @ 2.4GHz, 3.00GB of RAM) qua cổng USB 2.0
- Đối tượng thực nghiệm là dữ liệu frame ảnh khuôn mặt người ñược thu nhận trực
tiếp từ Webcam trong ñiều kiện môi trường ánh sáng khác nhau
Chương 2, tìm hiểu một số phương pháp tiếp cận và một số công trình nghiên cứu liên quan của các tác giả trong và ngoài nước, liên quan ñến lĩnh vực phát hiện và nhận dạng khuôn mặt người, phân tích ưu và nhược ñiểm của mỗi phương pháp, tạo cơ sở lựa chọn thuật toán phù hợp xây dựng chương trình ứng dụng của ñề tài
Chương 3, sẽ trình bày một số kỹ thuật xử lý ảnh số ñược sử dụng trong ñề tài Tìm hiểu và nghiên cứu thuật toán phát hiện khuôn mặt dùng giải thuật Adaboost kết hợp phương pháp phân tích thành phần chính PCA ñể nhận dạng khuôn mặt riêng (khuôn mặt người quen)
Trang 25Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
Chương 4, trình bày quá trình xây dựng chương trình phát hiện, nhận dạng và
bám theo ñối tượng mặt người Tiến hành các quá trình thực nghiệm ñể ñánh giá kết quả của chương trình và mô hình ñã thiết kế và xây dựng
Chương 5, tổng kết lại những kết quả ñạt ñược và chưa ñạt ñược, nêu những khả năng ứng dụng của ñề tài trong thực tế Từ ñó ñề xuất những hướng nghiên cứu và phát triển tiếp theo nhằm hoàn thiện và mở rộng ñề tài
Trang 26Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
Chương 2 Các công trình nghiên cứu liên quan
2.1 Giới thiệu
Hiện nay có rất nhiều thuật toán khác nhau ñược ñưa ra nhằm giải quyết bài toán phát hiện và nhận dạng khuôn mặt Nhưng do tính phức tạp và ña dạng của bài toán nên mỗi thuật toán xây dựng chỉ giải quyết ñược vấn ñề của bài toán trong một ñiều kiện và hoàn cảnh cụ thể Đã có rất nhiều giải pháp khác nhau ñược ñưa ra nhằm giải quyết bài toán phát hiện và nhận dạng khuôn mặt nhưng kết quả ñạt ñược vẫn còn hạn chế Chính vì vậy trong chương này tác giả xin trình bày tổng quan một
số hướng nghiên cứu và thuật toán phát hiện và nhận dạng khuôn mặt Nhằm mục ñích hiểu rõ và biết ñược khả năng ứng dụng của các thuật toán trong mỗi ñiều kiện hoàn cảnh cụ thể, tạo cơ sở ñể lựa chọn thuật toán phù hợp ñể xây dựng ứng dụng trong khuôn khổ của ñề tài này
2.2 Các hướng tiếp cận liên quan ñến phát hiện khuôn mặt
Hiện nay có nhiều hướng nghiên cứu liên quan ñến kỹ thuật phát hiện khuôn mặt người Dựa vào tính chất của các phương pháp xác ñịnh khuôn mặt người trong ảnh hoặc video, chúng ta có thể phân loại các phương pháp này thành bốn hướng tiếp cận chính: dựa trên tri thức (knowledge-based), ñặc trưng bất biến (feature invariant), ñối sánh mẫu (template matching), và dựa vào diện mạo (appearance-based) [2]
Hướng tiếp cận dựa trên tri thức: Hướng tiếp cận này chủ yếu dựa trên những tập luật ñược ñịnh nghĩa trước về khuôn mặt người Những luật này thường
là các mối quan hệ giữa các thành phần trên khuôn mặt Dựa theo hướng tiếp cận này hai nhà khoa học Yang và Huang [3] ñã dùng phương pháp phân tích có thứ tự
ñể phát hiện khuôn mặt Hệ thống phát hiện khuôn mặt của hai ông bao gồm ba tầng luật như sau:
1.1 Tầng ñầu tiên: Tìm ra các ứng viên bằng cách dùng một cửa sổ quét toàn
bộ vùng ảnh ñầu vào, các ứng viên phải thỏa tập luật tầng này
Trang 27Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
1.2 Tầng giữa: Sử dụng các tập luật mô tả chung về khuôn mặt
1.3 Tầng cuối cùng: Dùng các tập luật xem xét một cách chi tiết các ñặc
trưng khuôn mặt ñể xác ñịnh chính xác khuôn mặt
Hệ thống phát hiện khuôn mặt của Yang và Huang khá ñơn giản, dễ thực hiện nhưng cho kết quả phát hiện chính xác khuôn mặt ñạt ñược không cao (khoảng 83%) Một công trình nghiên cứu khác cũng dựa theo hướng tiếp cận này ñó là phương pháp của Kotropoulos và Pitas [4] Phương pháp của hai ông cho kết quả phát hiện chính xác vị trí chứa khuôn mặt khoảng 86.5% bằng cách phân tích biểu
ñồ histogram của ảnh ña mức xám
Hướng tiếp cận dựa trên ñặc trưng bất biến: Các phương pháp nghiên cứu
ñi theo hướng tiếp cận này phải tìm ra ñược những ñặc trưng không thay ñổi của khuôn mặt ñể xác ñịnh chính xác khuôn mặt người Các ñặc trưng bất biến của khuôn mặt như: lông mày, mắt, mũi, miệng và ñường viền của tóc ñược trích bằng phương pháp phát hiện cạnh Sau ñó xây dựng một mô hình thống kê ñể mô tả quan
hệ của những ñặc trưng và xác ñịnh sự tồn tại của khuôn mặt trong ảnh Một vấn ñề của các thuật toán theo hướng tiếp cận ñặc trưng cần phải ñiều chỉnh cho phù hợp ñiều kiện ánh sáng, nhiễu, và không bị che khuất Đôi khi bóng của khuôn mặt sẽ tạo thêm cạnh mới, mà cạnh này lại rõ hơn cạnh thật sự của khuôn mặt, vì thế nếu dùng cạnh ñể xác ñịnh sẽ gặp khó khăn Dựa theo hương tiếp cận này hai nhà khoa học Cong Geng and Xudong Jiang (2009) ñã xây dựng thuật toán dựa trên các ñặc trưng cục bộ bất biến của khuôn mặt (Scale Invariant Feature Transform - SIFT) nhận dạng và phát hiện khuôn mặt [5] Một số công trình nghiên cứu trước ñây theo hướng tiếp cận này có thể kể như: K C Yow và R Cipolla 1997 [6], T K Leung
1995 [7]
Hướng tiếp cận dựa trên so khớp mẫu: Trong so khớp mẫu, các mẫu chuẩn của khuôn mặt (thường là khuôn mặt ñược chụp thẳng) sẽ ñược xác ñịnh trước hoặc xác ñịnh các tham số thông qua một hàm Từ một ảnh ñưa vào, tính các giá trị tương quan so với các mẫu chuẩn về ñường viền khuôn mặt, mắt, mũi và miệng
Trang 28Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
Thông qua các giá trị tương quan này mà các tác giả quyết ñịnh có hay không có tồn tại khuôn mặt trong ảnh Hướng tiếp cận này có lợi thế là rất dễ cài ñặt, nhưng không hiệu quả khi có sự thay ñổi về tỷ lệ, tư thế, và hình dáng Việc xuất hiện một khuôn mặt tại một vị trí nào ñó trong ảnh phụ thuộc vào giá trị tương ñồng của ñiểm
ñó so với mẫu chuẩn I Craw 1992 [8] ñã áp dụng một mẫu cứng trong khi A Lanitis 1995 [9] sử dụng một mẫu có thể biến dạng trong các bước phát hiện khuôn mặt
Hướng tiếp cận dựa trên diện mạo: Trái ngược với các phương pháp so khớp mẫu với các mẫu ñã ñược ñịnh nghĩa trước bởi những chuyên gia, các mẫu trong hướng tiếp cận này ñược học từ các ảnh mẫu Một cách tổng quát, các phương pháp theo hướng tiếp cận này áp dụng các kỹ thuật theo hướng xác suất thống kê và máy học ñể tìm những ñặc tính liên quan của khuôn mặt và không phải là khuôn mặt Các mô hình máy học sử dụng theo hướng tiếp cận này: Eigenface (M Turk và
A Pentland 1991 [10]), Mạng Nơ-ron (H Rowley 1998 [11]), Support Vector Machine (E Osuna et al 1997 [12]), Phân lớp Bayes (H Schneiderman và T.Kanade 1998 [13]), Mô hình Markov ẩn (A Rajagopalan et al 1998 [14]), và các
mô hình tăng cường (AdaBoost của P Viola và M Jones 2001 [15] [16]
2.3 Các hướng tiếp cận liên quan ñến nhận dạng khuôn mặt người
Phương pháp nhận dạng khuôn mặt riêng (người quen) luôn là một ñề tài khó
và thách thức ñược nhiều nhóm nghiên cứu trên thế giới ñã và ñang thực hiện Các phương pháp nghiên cứu liên quan ñến nhận dạng khuôn mặt riêng chủ yếu dựa trên hai hướng tiếp cận chính: dựa trên ñặc trưng hình học (geometrical - feature based),
và trắc quang (photometric - view based) Một số phương pháp nhận dạng khuôn mặt riêng dựa trên hai hướng tiếp cận này có thể kể như: phân tích thành phần chính (Principal Components Analysis - PCA), phân tích biệt số tuyến tính (Linear Discriminant Analysis - LDA), và phương pháp EBGM (Elastic Bunch Graph Matching)
Trang 29Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
Phương pháp phân tích thành phần chính (PCA): Năm 1988, T Kohonen
là người ñầu tiên ñưa ra phương pháp dùng các vector riêng ñể nhận dạng khuôn mặt [19] Ông ñã dùng một mạng neural ñơn giản ñể chứng tỏ khả năng của phương pháp này trên tập ảnh ñã ñược chuẩn hóa Mạng neural tính một mô tả của khuôn mặt bằng cách xấp xỉ các vector riêng của ma trận tương quan hình ảnh khuôn mặt Năm 1987, Kirby và Sirovich [20] chứng tỏ rằng các hình ảnh có chứa khuôn mặt
có thể ñược mã hóa tuyến tính bằng một số lượng vừa phải các hình ảnh cơ sở Tính chất này dựa trên biến ñổi Karhunen-Lòeve, hay còn ñược gọi dưới một cái tên khác
là PCA (Principle Components Analysis) hay phép biến ñổi Hotelling Ý tưởng này ñược xem là của Pearson ñề xuất vào năm 1901và sau ñó là Hotelling vào năm
1933 Cho một tập các ảnh huấn luyện có kích thước nxm ñược mô tả bởi các vector
có kích thước mxm Các tác giả gọi tập các vector cơ sở này là eigenfaces (khuôn
mặt riêng) sau ñó gọi cho ñơn giản là vector riêng của ma trận hiệp phương sai ñược tính từ các ảnh khuôn mặt ñã ñược vector hóa trong tập ảnh huấn luyện (hình 2.1)
Hình 2.1: Các khuôn mặt riêng (Eigenfaces)
Năm 1991, Matthew Turk và Alex Pentland ñã ñề xuất phương pháp dùng PCA ñể trích chọn các ñặc trưng của khuôn mặt [21] Khi biểu diễn lại ảnh khuôn
Trang 30Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
mặt dưới dạng vector mà mỗi thành phần trong vector tương ứng với một ñiểm ảnh, chỉ có một số rất ít trong số các tổ hợp có thể có là biểu diễn ảnh khuôn mặt Điều
ñó cho thấy không gian vector dùng ñể biểu diễn ảnh khuôn mặt dư thừa rất lớn Turk và Pentland ñã ñề xuất áp dụng PCA ñể trích chọn ñặc trưng khuôn mặt, giảm
số chiều của không gian vector biểu diễn, chỉ giữ lại các thành phần cơ bản nhất Phương pháp PCA chỉ có thể phát hiện chính xác mặt trước của khuôn mặt, khi khuôn mặt bị nghiêng thì khả năng phát hiện của phương pháp này giảm ñáng
kể Qua thực nghiệm cho thấy tốc ñộ xử lý của phương pháp bị ảnh hưởng rất lớn bởi ñộ phước tạp của nền ảnh xung quanh khuôn mặt và ñiều kiện ánh sáng thay ñổi Nhưng phương pháp này có khả năng ứng dụng trong thực tế cao bởi tính ñơn giản của phương pháp và cho thời gian huấn luyện nhanh
Phương pháp phân tích biệt số tuyến tính (LDA): Phương pháp sử dụng PCA tỏ ra hiệu quả với những ảnh không nhiễu Tuy nhiên, phương pháp PCA chưa thể cực tiểu hóa ñược sự chênh lệch giữa những phần tử trong cùng một lớp LDA
là một phương pháp thống kê ñể phân loại các mẫu của các lớp chưa biết dựa trên các mẫu huấn luyện với các lớp ñã biết [17] Kỹ thuật này nhằm mục ñích tối ña hóa sự khác nhau giữa các lớp và giảm thiểu sự khác nhau trong một lớp Hình 2.2, cho thấy mỗi khối ñại diện cho một lớp, có chênh lệch lớn giữa các lớp, nhưng có
sự chênh lệch ít trong mỗi lớp Khi làm việc với các dữ liệu khuôn mặt ña chiều, kỹ thuật này phải ñối mặt với vấn ñề kích thước mẫu nhỏ, phát sinh nơi có số lượng nhỏ các mẫu ñã ñược huấn luyện sẵn so với số chiều của không gian mẫu
Hình 2.2: Phương pháp phân lớp dùng LDA [17]
Trang 31Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
Phương pháp EBGM (Elastic Bunch Graph Matching): Phương pháp nhận dạng EBGM cho rằng hình ảnh khuôn mặt thực sự có nhiều ñặc tính phi tuyến không thể giải ñược bằng phương pháp phân tích biệt số tuyến tính, ñặc tính của khuôn mặt sẽ thay ñổi khi bị ảnh hưởng của các yếu tố như: ñiều kiện chiếu sáng (ánh sáng ngoài trời so với ñèn huỳnh quang trong nhà), tư thế (ñứng thẳng so với nghiêng) và cảm xúc khuôn mặt (cười so với giận giữ) Phép biến ñổi Gabor wavelet tạo ra một mô hình khuôn mặt dạng cấu trúc lưới ñàn hồi liên kết ñộng Như trên hình 2.3, các nút trên lưới ñàn hồi ñược gọi là các Gabor Jet, ñược ký hiệu bởi các vòng tròn mô tả ñặc ñiểm của khuôn mặt Đó là kết quả tích chập của hình ảnh ñầu vào với một bộ lọc Gabor, ñược sử dụng ñể phát hiện và trích xuất các các ñặc trưng của khuôn mặt cho quá trình nhận dạng Phương pháp này có thể nhận ñược khuôn mặt ở mọi tư thế, nhưng phương pháp này khó thực hiện bởi nó ñòi hỏi
vị trí chính xác của các nút trên mô hình lưới
Hình 2.3 Mô hình lưới của các khuôn mặt khác nhau [18]
2.4 Kết luận
Trong chương này tác giả ñã trình giới thiệu sơ lược về những phương pháp phát hiện khuôn mặt ñã ñược phát triển trong thời gian gần ñây Mỗi phương pháp giải quyết bài toán theo những hướng tiếp cận khác nhau, có những ñiểm mạnh và ñiểm hạn chế riêng Việc so sánh giữa những phương pháp khác nhau rất khó thực hiện và cũng chỉ mang tính tương ñối, bởi mỗi phương pháp ñược xây dựng nhằm giải quyết từng ngữ cảnh cụ thể, và hiện nay cũng chưa có một chuẩn nào ñể ñánh giá chất lượng của các phương pháp phát hiện khuôn mặt
Trang 32Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
Chương 3 Cơ sở lý thuyết
3.1 Giới thiệu chung
Hình ảnh hay chuỗi frame ảnh thu nhận ñược từ Webcam thường có chất lượng không tốt Do ñó ñể quá trình nhận dạng ảnh chính xác và hiệu quả hơn, trong một hệ thống xử lý ảnh cần phải có quá trình tiền xử lý ảnh nhằm mục ñích tăng cường ảnh và khôi phục ñể và làm nổi bật các ñặc trưng của ảnh
Mỗi thuật toán phát hiện và nhận dạng khuôn mặt có những ưu và nhược ñiểm riêng, việc lựa chọn sử dụng thuật toán ñể xây dựng ứng dụng còn tùy thuộc vào các tiêu chí cụ thể như: tốc ñộ phát hiện, tỷ lệ phát hiện khuôn mặt ñúng, tỷ lệ khuôn mặt không phát hiện ñược, tỷ lệ phát hiện sai khuôn mặt,v.v… Bài toán phát hiện khuôn mặt trong ảnh hay video là bài toán quan trọng vì quá trình nhận dạng ñối tượng sẽ thiếu chính xác nếu như thiếu bước phát hiện và xác ñịnh vị trí khuôn mặt Trong các phương pháp phát hiện khuôn mặt, phương pháp AdaBoost cho kết quả khả quan rất thích hợp cho việc phát hiện khuôn mặt trong thời gian thực Vì phương pháp này có thể xử lý ñến khoảng 15-20 khung hình trong một giây Song song với quá trình phát hiện là nhận dạng ñối tượng, bài toán nhận dạng khuôn mặt
sử dụng kỹ thuật PCA là phương pháp trích rút ñặc trưng nhằm giảm số chiều của ảnh tuy ñơn giản nhưng mang lại hiệu quả cao
Trong chương này sẽ trình bày một số thuật toán tiền xử ảnh ñược sử dụng trong ñề tài, phương pháp phát hiện khuôn mặt dùng giải thuật Adaboost và ñặc trưng Haar-like, nhận dạng khuôn mặt người quen eigenfaces dùng phương pháp PCA dựa trên một số khái niệm cơ bản toán học Các khái niệm cơ bản về toán học ñược dùng trong xử lý ảnh sẽ ñược trình bày chi tiết trong phần phụ lục A
Trang 33Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
3.2 Các thuật toán tiền xử lý ảnh
3.2.1 Một số khái niệm về ảnh số
Một hình ảnh tổng quát là một hàm theo hai biến f(x,y), trong ñó x và y là hai biến ứng với hai trục tọa ñộ nằm ngang và thẳng ñứng Giá trị của hàm f tại ñiểm (x,y) gọi là cường ñộ hay mức xám của ảnh tại ñiểm ñó Khi x, y, f là các giá trị hữu hạn, rời rạc, hình ảnh ñó ñược gọi là ảnh số
Hệ tọa ñộ ảnh: Giả sử một hình ảnh f(x,y) có M hàng và N cột, chúng ta nói rằng hình ảnh này có kích thước MxN Các giá trị dọc theo trục x và y là rời rạc Một hình ảnh biểu diễn trong hệ tọa ñộ 2D ñược mô tả như hình 3.1 Đây là hệ tọa
ñộ ảnh thường ñược dùng trong các giáo trình và phần mềm lập trình xử lý ảnh, còn trong Toolbox Image Processing của Matlab gốc hệ tọa ñộ ảnh là (1,1) [22]
Trang 34Luận văn tốt nghiệp
Pixel: Một ảnh số bao g
này gọi là pixel Pixel là ph
của hình ảnh ban ñầu, hình
ñược thể hiện càng chính xác
Hình 3.2:
Ảnh Raster: Ảnh raster
pixel của hình ảnh raster
Oxy và có giá trị bao gồ
Hình 3.2: Ảnh ñược biểu diễn bởi các pixel [22]
raster hay còn gọi là ảnh bitmap, là tập hợp các pixel
raster sẽ ñược cố ñịnh tại một vị trí nhất ñịnh trong m
ồm nhiều thành phần liên quan ñến vị trí ñó c
ng các thành phần ñó, ảnh raster ñược chia thành các lo
hay còn gọi là ảnh nhị phân, trong ñó mỗi pixel
ột bit = 2^1=2 giá trị 0 (ñen) và 1 (trắng)
nh Grayscale: hay còn gọi là ảnh ña mức xám, trong ñ
c biểu diễn bằng một số 8 bit = 2^8 = 256 giá tr
nh chứa ñựng thông tin về màu sắc trong mỗ
i pixel bao gồm ba thành phần: ñỏ, xanh lá cây và xanh lam
i pixel ñược biểu
, trong ñó giá trị của
8 bit = 2^8 = 256 giá trị từ tối tới
ỗi pixel Giá trị , xanh lá cây và xanh lam (Red
Trang 35Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
3.2.2 Một số thuật toán xử lý ảnh
3.2.2.1 Chuyển ảnh màu thành ảnh ña mức xám
Để chuyển ảnh màu thành ảnh xám ta có thể dùng một trong hai công thức (3.1a) hoặc (3.1b) Kết quả chuyển ñổi ảnh màu thành ảnh xám ñược thể hiện như trong hình (3.4a) và (3.4b)
O(x,y)=( IR(x,y) + IG(x,y) + IB(x,y)) /3 (3.1a) O(x,y)= IR(x,y) * 0.287 + IG(x,y) * 0.599 + IB(x,y) * 0.114 (3.1b)
Trong ñó: x,y là tọa ñộ của ñiểm ảnh
IR thành phần màu ñỏ tại màu I(x,y)
IG thành phần màu xanh lá tại màu I(x,y)
IB thành phần màu xanh dương tại màu I(x,y)
O(x,y): màu ñầu ra, I(x,y): màu ñầu vào
3.2.2.2 Chuyển ảnh ña mức xám sang ảnh nhị phân
Để chuyển ảnh ña mức xám sang ảnh nhị phân ta viết chương trình kiểm tra
giá trị màu của mỗi pixel ảnh, nếu giá trị màu nhỏ hơn 128 thì cài ñặt giá trị là 0,
Hình 3.3a: Ảnh màu Hình 3.3b: Ảnh ña mức xám
Trang 36Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
ngược lại thì cài ñặt giá trị là 255 Hình (3.5a) và (3.5b) thể hiện kết quả chuyển ñổi
từ ảnh xám sang ảnh nhị phân
3.2.2.3 Cân bằng Histogram
Histogram là một lược ñồ biểu diễn ñộ sáng của một bức ảnh ñược minh họa như trên hình 3.6 Lược ñồ này bao gồm trục hoành biểu diễn cường ñộ sáng và trục tung biểu diễn số pixel tương ứng Đối với ảnh xám thông thường, giá trị của trục hoành nằm trong khoảng [0;255]
Histogram của một ảnh với các mức xám trong khoảng [ 0, 255] là một hàm rời rạc:
P (
) ( 3.2) Trong ñó là giá trị xám thứ k (k = 0, 1,…, 255), n là số pixel với mức xám
ñó, và n là tổng số pixel của bức ảnh
Nói một cách chính xác hơn Histogram p( h chính là xác suất của biến cố giá trị xám thứ k, xác suất này có giá trị trong khoảng [0,1] Ta cũng có thể biểu diễn Histogram của một ảnh bằng số lần xuất hiện của mỗi mức xám, ta có p(h = n
Hình 3.4a: Ảnh ña mức xám Hình 3.4b: Ảnh nhị phân
Trang 37Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
Dựa trên ñồ thị hàm p(h biểu diễn hình dạng Histogram của một ảnh sẽ cho chúng ta biết ñược ñặc ñiểm cuả ảnh là sáng hay tối, ñộ tương phản cao hay thấp ñược minh họa như trên hình 3.7
Hình 3.5: Biểu ñồ Histogram của ảnh xám [22]
Hình 3.6: Biểu ñồ Histogram của các loại ảnh [23]
Trang 38Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
Để cải thiện chất lượng ảnh ta cân bằng histogram, sao cho số ñiểm ảnh ở mỗi mức sáng tương ñương nhau Để cân bằng Histogram, ta sẻ biến ñổi xác suất p(h của từng giá trị xám sao cho chúng phân bố ñiều, cụ thể như sau:
(3.3a) Hoặc:
Hình 3.7: Ảnh trước và sau khi cân bằng Histogram
Trang 39Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
trong Histogram, gk là giá trị xám của ảnh kết quả, là giá trị Histogram ứng với
Trang 40Luận văn tốt nghiệp CBHDKH: Ts Nguyễn Đức Thành
3.2.2.5 Lọc nhiễu
Nhiễu gây cho ta những khó khăn khi phân tích tín hiệu Vì vậy, kỹ thuật lọc
số miền không gian ñược ứng dụng Trong kỹ thuật này, người ta sử dụng một mặt
nạ và di chuyển khắp ảnh gốc Tùy theo cách tổ hợp diểm ñang xét với các ñiểm lân cận mà ta có kỹ thuật lọc không gian tuyến tính hay phi tuyến Ðiểm ảnh chịu tác ñộng của biến ñổi là ñiểm tâm mặt nạ
Lọc tuyến tính (Linear spatial filering): hay còn gọi là phương pháp lọc trung bình (mean filter), kỹ thuật lọc này dùng một mặt nạ 3x3, biểu thị bằng ma trận 3x3, nhân ma trận này với cường ñộ ñiểm ảnh láng giềng rồi cộng kết quả ñể ñược cường ñộ ñiểm giữa, còn gọi là tích chập (convolution), thường dùng các mặt
nạ như trên hình 3.11 Mặt nạ H1 là lấy trung bình, H2 ưu tiên cho ñiểm giữa, H3 ưu tiên cho hướng x,y
H. ./01 1 11 1 1
1 1 10 H1
.01 1 11 2 1
1 1 10 H2
.301 2 12 4 2
1 2 10 Hình 3.11: Các loại mặt nạ lọc tuyến tính [23]
Hình 3.10: Ảnh trước và sau khi tăng cường ñộ tương phản
b) ảnh ñược tăng cường ñộ tương phản a) ảnh cân bằng Histogram