CHƯƠNG 1: TỔNG QUAN VỀ PHÁT HIỆN KHUÔN MẶT 1.1 Tổng quan về xử lý ảnh 1.1 Một số khái niệm Ảnh là tập hợp của các điểm ảnh. Gốc của ảnh là ảnh liên tục về không gian và độ sáng. Để xử lý bằng máy tính, ảnh cần phải được số hoá. Số hoá ảnh là sự biến đổi gần đúng một ảnh liên tục thành một tập điểm phù hợp với ảnh thật về vị trí (không gian) và độ sáng (mức xám).
Khoảng cách giữa các điểm ảnh đó được thiết lập sao cho mắt người không phân biệt được ranh giới giữa chúng. Mỗi một điểm như vậy gọi là điểm ảnh (PEL:Picture Element) hay gọi tắt là Pixel. Trong khuôn khổ ảnh hai chiều, mỗi điểm ảnh (Pixel) ứng với cặp tọa độ (x, y). Điểm ảnh (Pixel) là một phần tử của ảnh số tại toạ độ (x, y) với độ xám hoặc màu nhất định.
Xử lý ảnh là một loạt các thao tác và phân tích ảnh bằng máy tính nhằm cải thiện chất lượng ảnh cho tốt hơn và xử lý dữ liệu tự động trên máy. Quá trình này được xem như là thao tác ảnh đầu vào nhằm cho ra kết quả mong muốn. Kết quả đầu ra của quá trình sẽ là một ảnh tốt hơn hoặc một kết luận.1: Sơ đồ tổng quát hệ thống xử lí ảnh Trịnh Trung Thành – CT1701 13 Ứng dụng phép toán hình thái cho bài toán phát hiện khuôn mặt dựa vào màu da Ảnh đen trắng chỉ bao gồm 2 màu: màu đen và màu trắng. Người ta phân mức đen trắng đó thành L mức.
Nếu L bằng 2, nghĩa là chỉ có 2 mức: mức 0 và mức 1 và còn gọi là ảnh nhị phân. Mức 1 ứng với màu sáng, còn mức 0 ứng với màu tối. Nếu L lớn hơn 2 ta có ảnh đa cấp xám. Việc xác định số mức là phụ thuộc vào tiêu chí lượng hóa.
L thường chọn có 32, 64, 128 và 256 mức. Ảnh 256 mức là ảnh có chất lượng cao và thường được sử dụng. Với ảnh nhị phân, mỗi pixel mã hóa trên 1 bit; còn với ảnh 256 mức, mỗi pixel mã hóa trên 8 bit. Ví dụ với ảnh 256 mức xám, kích thước 512x512 cần không gian lưu trữ là 512x512 bytes hay 245 Kbytes Ảnh màu là ảnh được tổ hợp từ 3 màu cơ bản: đỏ(R), lục(G), lam(B).
Với ảnh màu, người ta lưu trữ thành từng màu riêng biệt, mỗi màu được lưu trữ như một ảnh đa cấp xám nên không gian nhớ dành cho một ảnh màu lớn gấp 3 lần một ảnh đa cấp xám cùng kích cỡ.2 Các không gian màu Không gian màu RGB Không gian màu RGB mô tả màu sắc bằng 3 thành phần chính là Đỏ(R), Xanh lục(G) và Xanh lam(B). Không gian màu này có thể được biểu diễn như một khối lập phương 3 chiều với màu đỏ là trục x, màu xanh lục là trục y, và màu xanh lam là trục z.2 mô tả không gian màu RGB.2: Mô hình không gian màu RGB Trịnh Trung Thành – CT1701 14 Ứng dụng phép toán hình thái cho bài toán phát hiện khuôn mặt dựa vào màu da Giả sử một ảnh màu RGB được mã hóa bằng 24 bit với 8 bit cho một kênh màu, khi đó mỗi kênh màu này sẽ nhận giá trị trong khoảng từ 0 đến 255. Với mỗi giá trị khác nhau của mỗi kênh màu khi kết hợp với nhau sẽ được một màu khác nhau, vậy tổng cộng có 255x255x255 = 1,66 triệu màu sắc cho biểu diễn ảnh này. Không gian màu YCbCr Không gian màu YCbCr được sử dụng trong các hệ thống ảnh số, video hay trong các chuẩn nén JPEG và MPEG.
Vì không gian màu RGB chỉ thuận tiện cho hiển thị lên màn hình nhưng lại không thuận tiện trong lưu trữ và chuyển đổi nên người ta đã đề xuất ra không gian màu này để thuận lợi cho việc nén và chuyển đổi. Không gian màu YCbCr mô tả màu sắc bằng 3 thông số là Y – biểu diễn thành phần độ sáng, Cb – biểu diễn sắc tố xanh lục, Cr biểu diễn sắc tố đỏ. YCbCr là dạng biểu diễn số của hệ màu này (tức là các thành phần Y, Cr, Cb nhận các giá trị số nguyên), nó còn có dạng analog nữa, kí hiệu là YPrPb. Công thức để chuyển đổi từ không gian màu RGB sang YCbCr phát biểu dưới dạng ma trận: 𝑌 16 0.
Trong không gian màu này, các màu đều được biểu diễn dựa trên 3 thành phần H, S, V này. Trịnh Trung Thành – CT1701 15 Ứng dụng phép toán hình thái cho bài toán phát hiện khuôn mặt dựa vào màu da Hình 1.3: Mô hình không gian màu YcbCr H biểu diễn màu sắc vốn có của màu như: đỏ, xanh da trời, da cam,… Nó có giá trị từ 0 đến 360o. Hình sau minh họa giá trị của H,S và màu tương ứng: Hình 1.4: Mô hình biểu diễn 2 thành phần màu H,S Ở trong hình, các giá trị của H đã được quy về dải [0,6] tương ứng với chia các góc cho 60 độ. Có thể hiểu nó giống như khái niệm nồng độ trong hóa học, với dung môi là màu trắng và chất tan là màu.
S có giá trị nằm trong đoạn [0,1]. Khi giá trị của S lớn, lượng màu hòa trong màu trắng nhiều lên, màu sẽ đậm hơn. S=1, màu đậm nhất, chiếm hoàn toàn màu trắng. Và ngược lại, khi giá trị S nhỏ, lượng màu hòa trong màu trắng ít đi, màu sẽ nhạt Trịnh Trung Thành – CT1701 16 Ứng dụng phép toán hình thái cho bài toán phát hiện khuôn mặt dựa vào màu da hơn.
S=0 tương ứng với không có một chút màu nào pha trong màu trắng, kết quả sẽ không có màu (cũng không khẳng định ngay kết quả là màu trắng, vì nó còn phụ thuộc vào thành phần V nữa, nhưng có thể khẳng định nó là màu xám). Ví dụ: khi H=0, ta có màu đỏ. Nhưng không phải cứ H=0 là ta có được 1 màu đỏ đậm đà, nó còn phụ thuộc vào S (tức là phụ thuộc vào lượng màu đỏ hòa trong màu trắng). Khi S nhỏ, ta có màu đỏ nhạt.
Khi S lớn ta có màu đỏ đậm hơn. S=1 màu đỏ đậm nhất. Khi S=0, giá trị của H bằng bao nhiêu là vô nghĩa, kết quả cũng chỉ là 1 màu trắng (giả sử V=max).5: Mô hình không gian màu HSV Thành phần V biểu thị thành phần độ sáng. V có giá trị nằm trong đoạn [0,1].
Với 1 giá trị H xác định, ta có 1 màu xác định. Với giá trị S, ta có được độ đậm nhạt cho màu đó. Nhưng ta sẽ không thể cảm nhận đúng màu đó với độ đậm nhạt đó, nếu độ sáng không chuẩn. Khi V=1 ta mới cảm nhận được đúng bản chất vốn có của màu.
Khi V tăng tương ứng với độ sáng tăng dần. V=0: không có ánh sáng, tất cả chỉ là 1 màu đen với mọi H và S. Như ở trên, ta đã nói, khi S=0 thì màu kết quả không phụ thuộc vào H, nhưng chưa thể nói ngay ta có màu trắng vì còn phụ thuộc vào V. Nếu V=0 ta có màu đen, V=1 ta có màu trắng, còn nếu 0<V<1 thì ta có màu xám.
Trong xử lý ảnh ta thường có nhu cầu chuyển đổi từ không gian màu RGB sang không gian màu HSV và ngược lại, ta có công thức như sau: Trịnh Trung Thành – CT1701 17 Ứng dụng phép toán hình thái cho bài toán phát hiện khuôn mặt dựa vào màu da 𝑢𝑛𝑑𝑒𝑓𝑖𝑛𝑒𝑑 , 𝑖𝑓 max = 𝑚𝑖𝑛 𝑔−𝑏 60° × + 0° , 𝑖𝑓 𝑚𝑎𝑥 = 𝑟 𝑎𝑛𝑑 𝑔 ≥ 𝑏 max − 𝑚𝑖𝑛 𝑔−𝑏 𝐻= 60° × + 360°, 𝑖𝑓 max = 𝑟 𝑎𝑛𝑑 𝑔 < 𝑏 [1.2] max − 𝑚𝑖𝑛 𝑏−𝑟 60° × + 120°, 𝑖𝑓 max = 𝑔 max − 𝑚𝑖𝑛 𝑟−𝑔 { 60° × + 240°, 𝑖𝑓 max = 𝑏 max − 𝑚𝑖𝑛 0, 𝑖𝑓 max = 0 𝑆 = {max − 𝑚𝑖𝑛 𝑚𝑖𝑛 =1− , 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 𝑚𝑎𝑥 𝑚𝑎𝑥 V = max Trong đó: max=max(r,g,b); min=min(r,g,b). Các thành phần màu r,g,b được chuẩn hóa trong đoạn [0,1].3 Phân đoạn ảnh Phân đoạn ảnh là một quá trình chia một bức ảnh số thành nhiều phần khác nhau (tập hợp các điểm ảnh, hay có thể gọi là superpixels). Mục tiêu của phân đoạn ảnh là để đơn giản hóa và hoặc thay đổi biểu diễn của một tấm ảnh vào điều gì đó có ý nghĩa hơn và dễ dàng để phân tích. Phân đoạn ảnh thường được sử dụng để xác định vị trí các đối tượng, đường biên (đường thẳng, cong.vv), hay nói cách khác phân đoạn ảnh là một quá trình gán nhãn (assigning a lablel) cho mỗi điểm ảnh trong một bức ảnh, các điểm ảnh trong cùng một nhãn sẽ có những đặc tính giống nhau về màu sắc, cường độ hoặc kết cấu của ảnh.
Kết quả của việc phân đoạn ảnh là tập hợp các phân đoạn (segments) bao gồm có thể là toàn bộ bức ảnh hoặc tập hợp các đường biên chiết xuất từ hình ảnh. Các điểm ảnh trong cùng một vùng có đặc tính tương tự nhau về màu sắc, cường độ hoặc kết cấu. Các vùng lân cận thì khác nhau đáng kể về các đặc trưng trên. Trịnh Trung Thành – CT1701 18 Ứng dụng phép toán hình thái cho bài toán phát hiện khuôn mặt dựa vào màu da 1.2 Phép toán hình thái trong xử lý ảnh Hình thái học là lý thuyết và kỹ thuật để phân tích và xử lý cấu trúc, hình học dựa trên lý thuyết tập hợp, lý thuyết lưới, cấu trúc liên kết và chức năng ngẫu nhiên.
Phép toán hình thái học được ứng dụng nhiều trong xử lý ảnh, đặc biệt là trong giai đoạn tiền xử lí và phân tích ảnh [2,7].1 Phần tử cấu trúc Đối với ảnh nhị phân, phần tử cấu trúc là một ảnh có kích thước nhỏ gồm có hai giá trị 0 và 1, các giá trị bằng 0 được bỏ qua trong quá trình tính toán, gọi B(i, j) là phần tử cấu trúc của ảnh nhị phân và được thể hiện như sau: B(i,j){0;1} Phần tử cấu trúc được sử dụng trên ảnh nhị phân thường có dạng đường theo chiều ngang, chiều dọc, đường elip hoặc hình vuông… Hình 1. Một số phần tử cấu trúc của ảnh nhị phân Đối với ảnh xám, phần tử cấu trúc là không phẳng, tức là các phần tử cấu trúc sử dụng các giá trị 0 và 1 để xác định phạm vi của phần tử cấu trúc trong mặt phẳng x và mặt phẳng y và thêm giá trị độ cao để xác định chiều thứ ba. Cấu trúc phần tử không phẳng gồm có hai phần: Trịnh Trung Thành – CT1701 19 Ứng dụng phép toán hình thái cho bài toán phát hiện khuôn mặt dựa vào màu da Phần thứ nhất : Một mảng hai chiều gồm có các giá trị 0 và 1, trong đó giá trị bằng 1 xác định hàng xóm của phần tử cấu trúc.