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 n
Giới thiệu
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
HVTH: Nguyễn Hữu Tình Trang 9
- 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
Với mục tiờu, nhiệm vụ luận văn như trờn, nội dung chớnh trong luận văn ủược tổ chức như sau:
Chương 1, giới thiệu tổng quan về bài toán phát hiện và nhận dạng khuôn mặt người, các khó khăn và thách thức trong bài toán nhận dạng khuôn mặt, ứng dụng kỹ thuật nhận dạng khuụn mặt người trong cỏc lĩnh vực liờn quan Từ ủú ủưa ra mục tiờu, phạm vi nghiờn cứu và tổ chức nội dung của ủề tài
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)
HVTH: Nguyễn Hữu Tình Trang 10 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
HVTH: Nguyễn Hữu Tình Trang 11
Các công trình nghiên cứu liên quan
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.
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
HVTH: Nguyễn Hữu Tình Trang 12 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
HVTH: Nguyễn Hữu Tình Trang 13 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].
Cỏc hướng tiếp cận liờn quan ủến nhận dạng khuụn mặt
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)
HVTH: Nguyễn Hữu Tình Trang 14
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
HVTH: Nguyễn Hữu Tình Trang 15 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]
HVTH: Nguyễn Hữu Tình Trang 16
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].
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
HVTH: Nguyễn Hữu Tình Trang 17
Cơ sở lý thuyết
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
HVTH: Nguyễn Hữu Tình Trang 18
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]
Hỡnh 3.1: Hệ tọa ủộ ảnh [22]
Như vậy một hỡnh ảnh f(x,y) trong hệ tọa ủộ 2D ủược viết dưới dạng ma trận ủiểm ảnh như sau:
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ồ trên bản chất và số lượng các thành ph ảnh sau:
• Ảnh Binary: hay còn g diễn bằng số mộ
• Ảnh Grayscale: mỗi pixel ủược bi sáng
• Ảnh màu: là ảnh ch trong mỗi pixel bao g – Green – Blue) u Tình bao gồm một số lượng hữu hạn các phần tử Nh Pixel là phần tử thông tin nhỏ nhất trong ảnh Một pixel là m u, hỡnh ảnh càng chứa ủựng nhiều pixel thỡ hỡnh n càng chính xác
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
Trang 19 Những phần tử t pixel là một mẫu u pixel thỡ hỡnh ảnh ban ủầu
2] p các pixel Mỗi nh trong mặt phẳng ủú của pixel Dựa c chia thành các loại 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
HVTH: Nguyễn Hữu Tình Trang 20 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
HVTH: Nguyễn Hữu Tình Trang 21 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
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
HVTH: Nguyễn Hữu Tình Trang 22 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] c) a) b) d) a)ảnh tối; b) ảnh sỏng; c) ảnh cú ủộ tương phản thấp; d) ảnh cú ủộ tương phản cao
HVTH: Nguyễn Hữu Tình Trang 23 Để 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:
Trờn sơ ủồ hỡnh 3.8, bước lượng tử húa ủều này rất cần thiết cho việc sửa lại cỏc giỏ trị xỏm của ảnh Bước này ủược thực hiện như sau: gọi "# là giỏ trị xỏm nhỏ nhất
Hỡnh 3.8: Sơ ủồ giải thuật cõn bằng Histogram [22 ] hk fk p(hk) a) ảnh xỏm b) ảnh ủược cõn bằng Histogram
Hình 3.7: Ảnh trước và sau khi cân bằng Histogram
HVTH: Nguyễn Hữu Tình Trang 24 trong Histogram, gk là giá trị xám của ảnh kết quả, là giá trị Histogram ứng với giá trị xám thứ k, ta có :
3.2.2.4 Điều chỉnh ủộ tương phản
Phương phỏp này ủược dựng cho ảnh cú ủộ tương phản thấp do sự chiếu sỏng kộm, hay do ủặt sai ủộ mở thấu kỡnh trong quỏ trỡnh thu ảnh Đơn giản nhất là ủiều chỉnh ủộ tương phản (constrast), giảm cường ủộ sỏng khi dưới mức m và tăng khi trờn mức m ủược minh họa như trờn hỡnh 3.10
Hỡnh 3.9: Biểu ủồ ủiều chỉnh ủộ tương phản [23]
HVTH: Nguyễn Hữu Tình Trang 25 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
301 2 1 2 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
HVTH: Nguyễn Hữu Tình Trang 26 Nếu H là bộ lọc kớch thước (n+1) x (n+1) , n chẵn và tổng cỏc hệ số là 4,56 sẻ ủược tính bởi :
Hình 3.12: Minh họa phương pháp lọc tuyến tính dùng mặt nạ lọc H 1 [23]
Phỏt hiện khuụn mặt dựng giải thuật Adaboost và ủặc trưng Haar-like
Năm 2001, Viola và Jones công bố phương pháp phát hiện khuôn mặt người dựng giải thuật Adaboost kết hợp với cỏc ủặc trưng Haar- like Mỗi ủặc trưng Haar- like là sự kết hợp của hai hay ba hỡnh chữ nhật “ trắng” hay “ ủen” liờn kết nhau Cú bốn ủặc trưng cơ bản ủể xỏc ủịnh khuụn mặt người như trong hỡnh 3.16
Hình 3.15: Ảnh minh họa so sánh kết quả các phép lọc tuyến tính [22] a) ảnh chụp X-ray của tấm board mạch bị nhiễu muối tiêu b) ảnh ủược xử lý sau khi dựng mặt nạ lọc 3x3 c) ảnh ủược xử lý sau khi dựng mặt nạ lọc 3x3 bằng phương phỏp lọc trung vị a) b) c)
HVTH: Nguyễn Hữu Tình Trang 29 Để 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ưng Haar-like cơ bản ủược mở rộng ra, và ủược chia làm 3 tập ủặc trưng ủược minh họa như trờn hỡnh (3.16a), (3.16b) và (3.16c): ủặc trưng cạnh (edge features), ủặc trưng ủường (line features) và ủặc trưng xung quanh tõm (center-surround features)
Hỡnh 3.16b: Cỏc ủặc trưng ủường [16]
Hỡnh 3.16a: Cỏc ủặc trưng cạnh [16]
Hỡnh 3.16: Bốn ủặc trưng Haar-like cơ bản [16]
HVTH: Nguyễn Hữu Tình Trang 30 Dựng cỏc ủặc trưng trờn, ta cú thể tớnh ủượ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 cỏc vựng ủen và cỏc vựng trắng như trong công thức sau: 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 Haar-like cú thể tăng/giảm sự thay ủổi bờn trong hay bờn ngoài lớp khuụn mặt, do ủú sẽ làm cho bộ phõn loại dễ hơn
Như vậy ta cú thể thấy rằng, ủể tớnh cỏc giỏ trị của ủặc trưng Haar-like, ta phải tớnh tổng của cỏc vựng pixel trờn ảnh Nhưng ủể tớnh toỏn cỏc giỏ trị của cỏc ủặc trưng Haar-like cho tất cả cỏc vị trớ trờn ảnh ủũi hỏi chi phớ tớnh toỏn khỏ lớn, khụng ủỏp ứng ủược cho cỏc ứng dụng ủũi hỏi tớnh run-time Do ủú Viola và Jones ủưa ra một khái niệm gọi là ảnh tích phân (Integral Image), là một mảng 2 chiều với kích thước bằng với kớch của ảnh cần tớnh cỏc ủặc trưng Haar-like, với mỗi phầ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ú Bắt ủầu từ vị trớ trờn, bờn trỏi ủến vị trớ dưới, phải của ảnh Giỏ trị của ảnh tớch phõn tại ủiểm ảnh cú tọa ủộ (x, y), ủược tớnh như sau:
Hỡnh 3.16c: Cỏc ủặc trưng bao quanh tõm [16]
HVTH: Nguyễn Hữu Tình Trang 31
Hình 3.17: Cách tính ảnh tích phân [16]
Trong hỡnh 3.18, giỏ trị của ảnh tớch phõn tại ủiểm P 1 chớnh là tổng giỏ trị của tất cả những ủiểm ảnh trong hỡnh chữ nhật A Giỏ trị tại ủiểm P 2 là A+B, giỏ trị tại ủiểm P3 là A+C, và ở ủiểm P4 là A+B+C+D Từ ủú suy ra tổng giỏ trị của tất cả cỏc ủiểm ảnh trong hỡnh chữ nhật A là: ( 4 + 1 ) ( − 2 + 3 )
Việc tính giá trị chênh lệch giữa hai vùng ảnh chữ nhật bất kỳ chỉ phải thông qua giỏ trị của 8 ủiểm ảnh trong ảnh tớch phõn Nhờ ủú, việc tớnh toỏn giỏ trị của cỏc ủặc trưng Haar ủều ủược thực hiện rất nhanh chỉ với một số ớt cỏc phộp tớnh cộng trừ ủơn giản.
AdaBoost (Adaptive Boost ) là một bộ phân loại mạnh phi tuyến phức dựa trên hướng tiếp cận boosting ủược Freund và Schapire ủưa ra vào năm 1995 Adaboost
Hinh 3.18: Cách tính nhanh giá trị mức xám của vùng ảnh A [16]
HVTH: Nguyễn Hữu Tình Trang 32 hoạt ủộng trờn nguyờn tắc kết hợp tuyến tớnh cỏc bộ phõn loại yếu (weak classifier - bộ phõn loại yếu) bằng cỏch sử dụng cỏc trọng số ủể hỡnh thành một bộ phõn loại mạnh (strong classifier- bộ phõn loại mạnh) ủược minh họa như trờn hỡnh 3.19
Là một cải tiến của tiếp cận boosting, AdaBoost sử dụng thêm khái niệm trọng số (weight) ủể ủỏnh dấu cỏc mẫu khú nhận dạng Trong quỏ trỡnh huấn luyện, cứ mỗi bộ phõn loại yếu (weak classifiers) ủược xõy dựng, thuật toỏn sẽ tiến hành cập nhật lại trọng số ủể chuẩn bị cho việc xõy dựng bộ phõn loại yếu kế tiếp, nhằm 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 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ó làm chưa tốt Cuối cựng, cỏc bộ phõn loại yếu sẽ ủược kết hợp cú trọng số ủể tạo nờn một bộ phõn loại mạnh (strong classifier) ủược minh họa như trờn hỡnh 3.20
Các bộ phân lớp yếu
Một bộ phân lớp mạnh
Hình 3.19: Mô hình thuật toán AdaBoost
HVTH: Nguyễn Hữu Tình Trang 33 Một bộ phõn loại mạnh cú thể ủược viết tường minh bằng cụng thức sau:
9: bộ phân loại mạnh (strong classifiers)
: bộ phân loại yếu (weak classifiers)
Hình3.20: Kết hợp các bộ phân loại yếu thành bộ phân loại mạnh [25]
Bộ phân lớp yếu h2(x) Bộ phân lớp yếu h 3 (x)
Tăng trọng số cho các mẫu thử bị phân loại sai Bộ phân lớp yếu h1(x)
Các trọng số như nhau cho tất cả các mẫu thử
HVTH: Nguyễn Hữu Tình Trang 34
• Chi tiết giải thuật Adaboost
^ W k 1 Cho một tập gồm n mẫu cú ủỏnh dấu (x1,y1), (x2,y2),… (xn,yn) với xk ∈ (xk1, x k2 , … , x km ) là vector ủặc trưng và y k ∈ (-1, 1) là nhón của mẫu (1 ứng với object, -1 ứng với background)
2 Khởi tạo trọng số ban ủầu cho tất cả cỏc mẫu: với m là số mẫu ủỳng (ứng với object và y = 1) và l là số mẫu sai (ứng với background và y = -1)
• Với mỗi ủặc trưng trong vector ủặc trưng, xõy dựng một weak classifier < với ngưỡng m