• Nenhum resultado encontrado

Nhận Dạng Khuôn Măt Bằng SVM

N/A
N/A
Protected

Academic year: 2021

Share "Nhận Dạng Khuôn Măt Bằng SVM"

Copied!
34
0
0

Texto

(1)

MỤC LỤC

CHƯƠNG 1 : TỔNG QUAN...2

1. Giới thiệu...2

2. Lý do chọn đề tài tiểu luận...2

3. Mục tiêu của tiểu luận...2

4. Giới hạn tiểu luận...2

5. Tóm tắt nội dung...2

CHƯƠNG 2 ĐAI CƯƠNG VỀ ẢNH SỐ...4

2.1 Giới thiệu ảnh số...4

2.2 Điểm ảnh (Pixel)...4

2.3 Độ phân giải của ảnh...5

2.4 Quan hệ giữa các điểm ảnh...5

CHƯƠNG 3 : CƠ BẢN VỀ XỬ LÝ ẢNH SỐ TRONG MATLAB...9 3.1 Giới thiệu...9 3.2 Các hàm xử lý cơ bản...12 3.2.1 Đọc và ghi dữ liệu ảnh...12 CHƯƠNG 4 : THUẬT TOÁN SVM...21 4.1 GIỚI THIỆU...21

4.2 SUPPORT VECTOR CLASSIFIER - SVC...21

CHƯƠNG 5 : XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG KHUÔN MẶT ... 29

5.1 Sơ đồ khối...29

5.2 Xây dựng chương trình nhận dạng...30

5.2.1 Xây dựng chương trình huấn luyện...30

(2)

CHƯƠNG 1 : TỔNG QUAN 1. Giới thiệu

Với khoa học phát triển như hiện nay thì nhu cầu của con người đòi hỏi ngày một cao hơn, hoàn thiện hơn. Đặc biệt là kỹ thuật điện tử, một trong những ngành đáp ứng được nhu cầu rất lớn của con người, hiện nay đa số các thiết bị ứng dụng đều có mặt công nghệ điện tử. Một trong những ứng dụng của kỹ thuật điện tử đó là Xử Lý Ảnh.

Xử lý ảnh được ứng dụng rất rộng rãi trong cuộc sống. Trong dân dụng thì có các thiết bị như ti vi, máy ảnh, điện thoại, máy ghi hình ; Trong y tế có các thiết bị siêu âm, x-quang, máy chụp cắt lớp, máy nội soi; Trong an ninh quốc phòng thì có camera, nhận dạng vân tay,nhận dạng khuôn mặt . . .

Nhận dạng khuôn mặt là một vấn đề rất khó khăn. Nhận dạng khuôn mặt có hai hướng : Thứ nhất là nhận dạng đâu là khuôn mặt và đâu không phải là khuôn mặt, thứ hai là nhận dạng khuôn mặt của một người với nhiều người khác nhau.

2. Lý do chọn đề tài tiểu luận

Nhận dạng khuôn mặt rất cần thiết cho chúng ta ngày nay. Chúng ta có thể sử dụng nhận dạng khuôn mặt trong vấn đề an ninh như nhận biết tên tuổi và hành vi đã gây ra của tội phạm để đề phòng, chúng ta cũng có thể sử dụng nhận dạng khuôn trong vấn đề quản lý nhân sự của một tổ chức nào đó,Chúng ta cũng có thể sử dụng nhận dạng khuôn mặt để bảo mật đồ dung cá nhân nhự máy tính, điện thoại, ô tô hay văn phòng làm việc . . . Vì vậy việc nhận dạng khuôn mặt có thể làm giảm thời gian và đảm bảo được tính an ninh bảo mật tốt. Phương pháp nhận dạng SVM là một phương pháp phân loại dễ sử dụng và hiệu quả cũng cao.

3. Mục tiêu của tiểu luận

Xây dựng cơ sở lý thuyết về XỬ LÝ ẢNH , về thuật toán SVM. Viết chương trình nhận dạng khuôn mặt bằng phương pháp SVM Mô phỏng chương trình trên Matlab.

4. Giới hạn tiểu luận

Chỉ tìm hiểu về phương pháp nhận dạng khuôn mặt bằng SVM nên không so sánh được với kết quả của các phương pháp nhận dạng khuôn mặt khác.

Cơ sở dữ liệu chỉ mang tính chất mô phỏng, tượng trưng

Nhận dạng khuôn mặt dựa trên các mẫu khuôn mặt có trong dữ liệu để phân biệt các khuôn mặt với nhau.

5. Tóm tắt nội dung Nội dung gồm có :

Phần 1 : Nói về tổng quan của tiểu luận, giới thiệu qua về nhận dạng , lý do tại sao lại lựa chọn đề tài tiểu luận này và mục đích của tiểu luận là làm gì? Phần 2 : Giới thiệu về cơ sở lý thuyết :

- Giới thiệu về XỬ LÝ ẢNH , một số khái niệm và cách chuyển đổi ảnh.

(3)

- Giới thiệu các lệnh và một số ứng dụng của Matlab trong vấn đề XỬ LÝ ẢNH

- Giới thiệu về thuật toán SVM , các trường hợp phân loại của SVM

Phần 3 : Xây dựng chương trình nhận dạng với thuật toán SVM. Đưa ảnh dữ liệu huấn vào, rồi trích đặc trưng PCA sau đó huấn luyện qua thuật toán SVM. Sau khi huấn luyện xong , xây dựng chương trình xử lý ảnh cần nhận dạng rồi đưa vào nhận dạng bằng SVM

(4)

CHƯƠNG 2 ĐAI CƯƠNG VỀ ẢNH SỐ

2.1 Giới thiệu ảnh số

Ảnh số là tập hợp các điểm ảnh (hay còn gọi là pixel) với mức xám phù hợp dùng để mô tả ảnh gần với ảnh thật. Ảnh được biểu diễn như một ma trận hai chiều cỡ WxH, hai thông số này cho biết thông tin về độ rộng và chiều cao ảnh. Giá trị của mỗi phần tử của ma trận I [i, j] biểu diễn cho mức xám hay cường độ ảnh tại vị trí của phần tử đó.

a) Hệ trục tọa độ trong Image

Processing Toolbox b) Ma trận biểu diễn ảnh số

Hình 2.1: Biểu diễn ảnh số Có thể chia ra làm 3 loại khác nhau:

Ảnh đen trắng : Mỗi điểm ảnh được biểu diễn bởi một bit. Cường độ ảnh I chỉ có thể là một trong hai giá trị I [/, y] G [0,1]. ứng với giá trị 0 đó là các điểm đen, còn với giá trị 1 đó là điểm trắng.

 Ảnh xám : Mỗi điểm ảnh được biểu diễn bằng các mức chói khác nhau,thường thì ảnh này được biểu diễn bằng 256 mức chói hay là 8 bit cho mỗi điểm ảnh.

 Ảnh màu : Mỗi điểm ảnh chia ra thành tín hiệu chói và tín hiệu màu. Tín hiệu màu gồm ba màu riêng biệt: đỏ (Red-R), lục (Green-G) và lam (Blue-B). Để biểu diễn cho ba màu riêng rẽ cần 24-bit, 24-bit này được chia thành ba khoảng 8- bit. Mỗi khoảng này biểu diễn cho cường độ sáng của một trong các màu chính.

(5)

Đ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. Kích thước và khoảng cách giữa các điể m ảnh đó được chọn thích hợp sao cho mắt người cảm nhận sự liên tục về không gian và mức xám hoặc màu của ảnh số gần như ảnh thật. Mỗi phần tử trong ma trận được gọi là một phần tử ảnh.

2.3 Độ phân giải của ảnh

Định nghĩa: Độ phân giải (Resolution) của ảnh là mật độ điểm ảnh được ấn định trên một ảnh số được hiển thị.

Theo định nghĩa, khoảng cách giữa các điểm ảnh phải được chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh. Việc lựa chọn khoảng cách thích hợp tạo nên một mật độ phân bố, đó chính là độ phân giải và được phân bố theo trục x và y trong không gian hai chiều.

Ví dụ: Độ phân giải của ảnh trên màn hình CGA là một lưới gồm 320 điểm chiều dọc x 200 điểm ảnh chiều ngang (320x200). Do đó, một màn hình CGA12” (320x200) ta nhận thấy hình ảnh mịn hơn màn hình CGA17” (320x200). Bởi vì cùng một độ phân giải nhưng diện tích màn hình rộng hơn thì độ mịn kém hơn.

2.4 Quan hệ giữa các điểm ảnh

Giả sử một ảnh số được biểu diễn bằng hàm f(x, y). Tập con các điểm ảnh là M, cặp điểm ảnh có quan hệ với nhau ký hiệu là s, t. Có một số các khái niệm như sau:

o Các lân cận của điểm ảnh (Image Neighbors)

Giả sử có điểm ảnh s tại toạ độ (x, y). t có 4 điểm lân cận gần nhất theo chiều dọc và ngang

{(x-1, y); (x, y-1); (x, y+1); (x+1, )} = N4(s) (1.1)

trong đó: số 1 là giá trị logic; N4(s) tập 4 điểm lân cận của s.

Hình 2.2: Lân cận các điể m ảnh của tọa độ (x,y)

Các lân cận chéo: Các điểm lân cận chéo Ns(s)

Ns(s) = { (x+1, y+1); (x+1, y-1); (x-1, y+1); (x-1, y-1)} (1.2) Tập kết hợp: N8(s) = N4(s) + Ns(s) là tập hợp 8 lân cận của điểm ảnh s. Chú ý: Nếu (x, y) nằm ở biên (mép) ảnh; một số điểm sẽ nằm ngoài ảnh.

(6)

Các mối liên kết được sử dụng để xác định giới hạn (Boundaries) của đối tượng vật thể hoặc xác định vùng trong một ảnh. Một liên kết được đặc trưng bởi tính liền kề giữa các điểm và mức xám của chúng.

Giả sử G là tập các giá trị mức xám. Một ảnh có các giá trị cường độ sáng từ thang mức xám từ 32 đến 64 được mô tả như sau :

G={32, 33, ... , 63, 64} (1.3)

Có 3 loại liên kết:

Liên kết 4: Hai điểm ảnh s và t được nói là liên kết 4 với các giá trị cường độ sáng G nếu t nằm trong một các lân cận của s, tức t thuộc N4(s)

Liên kết 8: Hai điểm ảnh p và q nằm trong một các lân cận 8 của p, tức q thuộc N8(p)

Liên kết m (liên kết hỗn hợp): Hai điểm ảnh s và t với các giá trị cường độ sáng G được nêu là liên kết m nếu:

t thuộc N4(s) hoặc t thuộc Ns(s) 1. Khoảng cách giữa các điểm ảnh

Định nghĩa. Khoảng cách D(s, t) giữa hai điểm ảnh s toạ độ (x, y), t toạ độ (u, v) là hàm khoảng cách (Distance) hoặc Metric nếu:

• D(s,t) ≥ 0 (Với D(s,t)=0 khi và chỉ khi s=t)

• D(s,t) = D(s,t) (2.1.5)

• D(s,z) ≤ D(s,t) + D(s,z); z là một điểm ảnh khác.

Khoảng cách Euclide: Khoảng cách Euclide giữa hai điểm ảnh p(x, y) và q(s, t) được định nghĩa như sau:

De(p, q) = [(x - s)2 + (y -1)2]1/2 (1.4)

Khoảng cách khối: Khoảng cách D4(p, q) được gọi là khoảng cách khối đồ thị (City- Block Distance) và được xác định như sau:

D4(p,q) = |x -s |+ |y -t | (1.5)

Giá trị khoảng cách giữa các điểm ảnh r : giá trị bán kính r giữa điểm ảnh từ tâm điểm ảnh đến tâm điểm ảnh q khác. Ví dụ: Màn hình CGA 12” (12”*2,54cm =

30,48cm=304,8mm) độ phân giải 320*200; tỷ lệ 4/3 (Chiều dài/Chiều rộng). Theo định lý Pitago về tam giác vuông, đường chéo sẽ lấy tỷ lệ 5 phần (5/4/3: đường chéo/chiều dài/chiều rộng màn hình); khi đó độ dài thật là (305/244/183) chiều rộng màn hình 183mm ứng với màn hình CGA 200 điểm ảnh theo chiều dọc. Như vậy, khoảng cách điểm ảnh lân cận của CGA 12” là ~ 1mm.

Khoảng cách D8(p, q) còn gọi là khoảng cách bàn cờ (Chess-Board Distance) giữa điểm ảnh p, q được xác định như sau:

D8(p,q) = max (\ x-s \ , \ y-t \)

2. Màu sắc và chuyển đổi màu Màu sắc

Mắt người có thể phân biệt được vài chục màu nhưng chỉ có thể cảm nhận được hàng ngàn màu. Ba thuộc tính của một màu đó là: Sắc (Hue), Độ thuần khiết (Saturation), và độ sáng hay độ chói (Itensity).

Trong xử lý ảnh và đồ họa, mô hình màu là một chỉ số kỹ thuật của một hệ tọa độ màu 3 chiều với tập các màu nhỏ thành phần có thể trông thấy được trong hệ thống tọa độ màu thuộc một gam màu đặc trưng. Ví dụ như mô hình màu RGB (Red, Green, Blue): là một đơn vị tập các màu thành phần sắp xếp theo hình lập phương của hệ trục tọa độ Đề các.

(7)

Mục đích của mô hình màu là cho phép các chỉ số kỹ thuật quy ước của một số loại màu sắc thích hợp với các màu sắc của một số gam màu khác. Chúng ta có thể nhìn thấy trong mô hình màu này, không gian màu là một tập hợp nhỏ hơn của không gian các màu có thể nhìn thấy được, vì vậy một mô hình màu không thể được sử dụng để định rõ tất cả có thể nhìn thấy. Sau đây, ta xem xét một số mô hình hay được sử dụng nhất.

Mô hình màu RGB (Red, Green, Bule)

Màu đỏ, lục, lam (RGB) được sử dụng phổ biến nhất. Những màu gốc RGB được thêm vào những màu gốc khác điều đó tạo nên sự đóng góp riêng của từng màu gốc được thêm cùng nhau để mang lại kết quả. Tập hợp màu nhỏ thành phần sắp xếp theo khối lập phương đơn vị. Đường chéo chính của khối lập phương với sự cân bằng về số lượng từng màu gốc tương ứng với các mức độ xám, với đen là (0,0,0) và trắng (1,1,1).

Hình2.3. Mô hình màu RGB Mức xám của ảnh

Một điểm ảnh (pixel) có hai đặc trưng cơ bản là vị trí (x, y) của điểm ảnh và độ xám của nó. Dưới đây chúng ta xem xét một số khái niệm và thuật ngữ thường dùng trong xử lý ảnh.

 Định nghĩa:

Mức xám của điểm ảnh là cường độ sáng của nó được gán bằng giá trị số tại điểm đó. Các thang giá trị mức xám thông thường: 16, 32, 64, 128, 256 ( Mức 256 là mức phổ dụng. Kỹ thuật máy tính dùng 1 byte (8 bit) để biểu diễn mức xám, mức xám dùng 1 byte biểu diễn: 28=256 mức, tức là từ 0 đến 255).

 Ảnh đen trắng: là ảnh có hai màu đen, trắng (không chứa màu khác) với mức xám ở các điểm ảnh có thể khác nhau.

 Ảnh nhị phân: ảnh chỉ có 2 mức đen trắng phân biệt tức dùng 1 bit mô tả 21 mức khác nhau. Nói cách khác,mỗi điểm ảnh của ảnh nhị phân chỉ có thể là 0 hoặc 1.

(8)

 Ảnh màu: trong khuôn khổ lý thuyêt ba màu (R, G, B) để tạo nên thế giới màu, người ta thường dùng 3 byte để mô tả mức màu, 8x3=24 khi đó các giá trị màu: 28x3 = 224~ 16,7 triệu màu.

Chuyển đổi màu

Hệ tọa độ màu do CIE quy định như một hệ quy chiếu và trên thực tế không thể biểu diễn hết các màu. Tùy thuộc vào các ứng dụng khác nhau người ta đưa ra thêm một số hệ tọa độ khác như NTSC, CMY, YIQ... phù hợp với yêu cầu hiển thị màu sắc. Việc chuyển đổi giữa các không gian biểu diễn màu thực hiện theo nguyên tắc sau:

Px = AxPx* (1.6)

trong đó:

Px: không gian biểu diễn màu ban đầu, Px*: không gian biểu diễn màu mới, A : ma trận phép biến đổi.

Ảnh dùng trong tiều luận này là kiểu ảnh xám. Mức xám là kết quả của sự mã hóa tương ứng một cường độ sáng của điểm ảnh với một trị số. Giá trị của nó phụ thuộc vào mức độ lượng tử hóa ảnh, như các ảnh dùng làm cơ sở dữ liệu đã lấy 8 bit để mã hóa ảnh (ứng với 256 mức xám, trong đó mức xám 0 là màu đen, mức xám 255 là màu trắng).

Khi chuyển đổi từ ảnh màu RGB sang ảnh xám có thể dùng công thức sau:

grayscale = α1R + α2G + α3B , các hệ số ai lần lượt là: α1 = 0,2989; α2 = 0,5870; α3=0,1140.

(9)

CHƯƠNG 3 : CƠ BẢN VỀ XỬ LÝ ẢNH SỐ TRONG MATLAB

3.1 Giới thiệu

Không chỉ là một công cụ đắc lực trong xử lý tín hiệu nói chung, Matlab còn là phần mềm rất mạnh được sử dụng trong xử lý ảnh. Hầu hết các thuật toán về ảnh và xử lý ảnh đều được thể hiện trong các hàm của Matlab như các hàm xuất, nhập ảnh, các phép biến đổi ảnh, lọc ảnh, nâng cao chất lượng ảnh.... Phần mềm Matlab là chìa khóa mang lại sự thành công trong việc thực hiện giải thuật xử lý ảnh. Câu lệnh Matlab gần với các thuật ngữ mô tả kĩ thuật, câu lệnh ngắn gọn và có thể tra cứu nhanh trong mục help. Trong Matlab có nhiều Toolbox hỗ trợ chuyên sâu. Với bài toán nhận dạng hình ảnh, các Toolbox thường được sử dụng gồm:

 Image Processing Toolbox  Wavelet Toolbox

 Statistics Toolbox

 Neural Network Toolbox  Image Acqusition Toolbox

Các kiểu hình ảnh trong Matlab

Image Processing Toolbox của Matlab hỗ trợ bốn kiểu biểu diễn hình ảnh cơ bản gồm: ảnh chỉ số (indexed images), ảnh độ sáng (intensity images), ảnh nhị phân (binary images), ảnh RGB (RGB images)

 Ảnh chỉ số:

Với cách biểu diễn này, mỗi ảnh sẽ được biểu diễn bởi hai ma trận, một ma trận dữ liệu ảnh X và một ma trận màu (còn gọi là bản đồ màu) map. Ma trận dữ liệu có thể thuộc kiểu uint8, uint16 hoặc double. Ma trận màu là một ma trận kích thước m x 3 gồm các phần tử kiểu double có giá trị trong khoảng [0,1]

Mỗi hàng của ma trận xác định các thành phần red, green, blue của một màu trong tổng số m màu được sử dụng trong ảnh. Giá trị của một phần tử trong ma trận dữ liệu cho biết màu của điểm ảnh đó là màu nằm ở hàng nào trong ma trận màu. Nếu ma trận thuộc kiểu double, giá trị 1 sẽ tương ứng với hàng thứ nhất trong bảng màu, giá trị thứ 2 tương ứng với bảng màu ở hàng thứ hai,... Nếu ma trận dữ liệu thuộc kiểu uint8 hoặc uint16, giá trị 0 ứng với hàng 1, giá trị 1 ứng với hàng 2.

(10)

Hình 3.1: Biểu diễn ảnh bằng phương pháp chỉ số Ảnh biểu diễn theo độ sáng:

Mỗi ảnh được biểu diễn bởi một ma trận hai chiều, trong đó giá trị của mỗi phần tử cho biết độ sáng (hay mức xám) của điểm đó. Ma trận này có thể thuộc một trong các kiểu uint8, uint16 hoặc double. Trong đó, giá trị nhỏ nhất (0) ứng với màu đen còn giá trị lớn nhất ( 255 hoặc 65535 hoặc 1 tùy kiểu dữ liệu) ứng với màu trắng. Như vậy, ảnh biểu diễn theo kiểu này còn gọi là ảnh trắng đen hoặc ảnh gray scale.

Hình 3.2: Biểu diễn ảnh theo độ sáng Ảnh nhị phân:

Ảnh nhị phân cũng được biểu diễn bởi ma trận hai chiều nhưng thuộc kiểu logical, có nghĩa là mỗi điểm ảnh chỉ có thể nhận một trong hai giá trị 0 (đen) hoặc 1 (trắng).

(11)

Hình 3.3: Ảnh nhị phân Ảnh RGB:

Ảnh RGB còn gọi là ảnh “truecolor” do tính trung thực của nó. Ảnh này được biểu diễn bởi một ma trận ba chiều kích thước m x n x 3, với m x n là kích thước ảnh theo pixels. Ma trận này định nghĩa các thành phần màu red, blue, green cho mỗi điểm ảnh

(12)

3.2 Các hàm xử lý cơ bản 3.2.1 Đọc và ghi dữ liệu ảnh

o Hàm imread đọc các file ảnh với bất kỳ các định dạng ảnh đã biết hiện nay và lưu lại dưới dạng một ma trận biểu diễn ảnh trong Matlab. Cú pháp :

f= imread(‘filename.fmt’)

o Hàm imwrite cho phép lưu một ảnh biểu diễn bằng một ma trận trong Matlab thành một file ảnh dưới một trong các định dạng đã biết. Cú pháp :

imwrite(‘f,filename.fmt’)

o Hàm imfinfo dùng để xem các thông số của một file ảnh nào đó. Cú pháp: imfinfo(‘filename.fmt’). Ví dụ:hàm imfinfo('peppers.png') thực hiện trong Matlab cho các thông tin sau:

Filename: [1x64 char] FileModDate: '02-Apr-2013 15:55:52' FileSize: 287677 Format: 'png' FormatVersion: [] Width: 512 Height: 384 BitDepth: 24 ColorType: 'truecolor' FormatSignature: [137 80 78 71 13 10 26 10] Colormap: [] Histogram: [] InterlaceType: 'none' Transparency: 'none' SimpleTransparencyData: [] BackgroundColor: [] RenderingIntent: [] Chromaticities: [] Gamma: [] XResolution: [] YResolution: [] ResolutionUnit: [] XOffset: [] YOffset: [] OffsetUnit: [] SignificantBits: [] ImageModTime: '16 Jul 2002 16:46:41 +0000' Title: [] Author: []

(13)

Description: 'Zesty peppers'

Copyright: 'Copyright The MathWorks, Inc.' CreationTime: [] Software: [] Disclaimer: [] Warning: [] Source: [] Comment: [] OtherText: []

Các hàm hiển thị hình ảnh trong Matlab

Để phục vụ chức năng hiển thị hình ảnh, Matlab cung cấp hai hàm cơ bản là image và imagesc. Ngoài ra, trong Image Processing Toolbox cũng có hai hàm hiển thị ảnh khác đó là imview và imshow

Hàm image hiển thị hình ảnh biểu diễn bởi ma trận có kích thước MxN lên trục tọa độ hiện hành.

Hàm imgesc có chức năng tương tự hàm image, ngoại trừ việc dữ liệu ảnh sẽ được co giãn (scale) để sử dụng toàn bộ bản đồ màu hiện hành.

Hàm imview cho phép hiển thị hình ảnh trên một cửa sổ riêng, nền Java, gọi là Image Viewer. Image viewer cung cấp các công cụ cho phép dò tìm và xác định giá trị các pixel một cách linh hoạt. Sử dụng hàm này khi ta cần khảo sát bức ảnh và cần các thông tin về pixel.

Hàm imshow cũng tạo một đối tượng đồ họa thuộc loại image và hiển thị ảnh trên một figure. Hàm imshow sẽ tự động thiêt lập các giá trị của các đối tượng image, axes và figure để thể hiện hình ảnh. Sử dụng hàm này trong các trường hợp ta cần lợi dụng các công cụ chú giải và các hỗ trợ in ấn có sẵn trong figure.

Chuyển đổi giữa các kiểu dữ liệu, kiểu ảnh Chuyển đổi giữa các kiểu dữ liệu ảnh:

Matlab cung cấp sẵn các hàm thực hiện chuyển kiểu cho các ma trận biểu diễn ảnh, bao gồm : im2double, im2uint8 và im2uintl6.

Tuy nhiên, khi thực hiện chuyển kiểu giữa các dữ liệu ảnh cần lưu ý một số điều sau: Khi chuyển từ một kiểu dữ liệu dùng nhiều bit sang một kiểu dữ liệu dùng ít bit hơn thì một số thông tin chi tiêt về bức ảnh ban đầu sẽ bị mất.

Không phải lúc nào cũng có thể chuyển đổi kiểu dữ liệu đối với kiểu ảnh indexed, vì các giá trị của ma trận ảnh xác định một địa chỉ trong bản đồ màu chứ không phải là giá trị màu, do đó không thể lượng tử hóa được.

Chuyển đổi giữa các kiểu ảnh:

Có một số thao tác xử lý ảnh trong Matlab chỉ thực hiện được trên kiểu ảnh này mà không thực hiện được trên một kiểu ảnh khác. Vì vậy, trong Matlab có một số hàm cho phép người sử dụng chuyển đổi qua lại giữa các kiểu ảnh cho tiện xử lý.

Hàm dither : tạo ảnh nhị phân từ ảnh trắng đen hoặc tạo ảnh indexed từ ảnh RGB và ma trận màu map.

(14)

Hàm gray2ind : chuyển đổi ảnh nhị phân hoặc ảnh intensity (ảnh biểu diễn theo độ sáng) thành ảnh indexed.

Hàm grayslice : chuyển đổi ảnh trắng đen thành ảnh indexed bằng cách lấy ngưỡng.

Hàm im2bw : chuyển đổi các loại ảnh trắng đen, ảnh indexed, ảnh RGB thành ảnh nhị phân bằng cách lấy ngưỡng.

Hàm ind2gray : chuyển đổi ảnh indexed với ma trận màu map thành ảnh trắng đen

Hàm ind2rgb : chuyển đổi ảnh indexed với ma trận màu map thành ảnh RGB Hàm rgb2gray : chuyển đổi ảnh RGB thành ảnh trắng đen.

Hàm rgb2ind : chuyển ảnh RGB thành ảnh indexed Nâng cao chất lượng ảnh

Nâng cao chất lượng ảnh số là quá trình xử lý trên ảnh ban đầu để tạo ra kết quả là một bức ảnh tốt hơn xét theo một tiêu chí cụ thể. Ví dụ như xử lý để nâng cao chất lượng của ảnh chụp X-quang sẽ khác với việc nâng cao chất lượng của ảnh chụp của một vệ tinh địa tĩnh.

Có nhiều phương pháp nhằm tăng cường chất lượng của ảnh, nhưng tập trung vào hai nhánh chính là xử lý ảnh trong miền không gian và xử lý ảnh trong miền tần số. Trong miền không gian, ảnh được xử lý trực tiếp trên các pixels. Miền tần số sử dụng biến đổi Fourier để xử lý.

Trong chương này ta chỉ tập trung tìm hiểu phương pháp xử lý ảnh trong miền không gian.

Miền không gian là tập hợp các pixels trong một bức ảnh. Chúng ta sẽ tiến hành xử lý trực tiếp trên các pixels này. Quá trình xử lý này có thể được mô tả thông qua biểu thức sau:

G (x,y)=T[f(x,y)] (2.1)

Với f(x,y) là ảnh gốc, g(x,y) là ảnh sau xử lý, và T là phép toán biến đổi, dựa trên các điểm ảnh xung quanh (x,y).

(15)

Các điểm ảnh xung quanh có thể có các kích cỡ khác nhau, có thể là dạng vuông hoặc chữ nhật, trong đó điểm ảnh cần xử lý ở vị trí trung tâm. Trên hình là một khung có kích thước 3x3. Tùy mục đích cụ thể mà ta dùng các phép biến đổi khác nhau.

Phép biến đổi mức xám

Trong phép biến đổi này, giá trị g(x,y) chỉ phụ thuộc vào giá trị của f(x,y), và T trở thành hàm biến đổi mức xám. Ta có biểu thức đơn giản sau:

s =T(r) (2.2)

Với r là mức xám ban đầu tại (x,y), s là mức xám sau biến đổi tại (x,y). Ví dụ: Xét hai phép biến đổi mức xám sau:

Hình 3.6

Với hình thứ nhất, phép biến đổi cho ta ảnh sau xử lý có độ tương phản cao hơn so với ảnh ban đầu. Các giá trị mức xám r < m qua phép biến đổi được nén lại gần mức 0 (tối hơn), tương tự với các giá trị r > m nhưng được nén lại gần mức 1 (sáng hơn) làm ảnh sau xử lý có độ tương phản cao. Phép biến đổi ở hình b nhằm biến 1 ảnh grayscale thành 1 ảnh nhị phân. Ta xét mức ngưỡng m, với r < m được xét thành mức 0, và r > m xét thành mức 1.

Một số phép biến đổi mức xám cơ bản: Ảnh âm bản

Với 1 ảnh có các giá trị mức xám nằm trong khoảng [0,L-1], ta có:

S = L-1-r (2.3)

Ta sử dụng phép biến đổi này trong trường hợp muốn làm nổi bật các chi tiết có màu sáng ở trong một vùng tối, đặc biệt với các bức ảnh có vùng tối lớn.

(16)

Hình 3.7: ảnh gốc và ảnh âm bản Phép biến đổi log

Biểu thức:

S = c*log(1+r) (2.4)

Các giá trị r mức thấp dải hẹp qua phép biến đổi sẽ tạo ra dải rộng hơn, trong khi đó các giá trị r mức cao sẽ nén lại thành 1 dải hẹp ở ngõ ra. Phép biến đổi này nhằm mục đích tăng chi tiết hóa ở vùng tối.

Hình 3.8: Ảnh trước và sau khi dùng biến đổi log

Biến đổi theo quy tắc lũy thừa

Biểu thức: s =c.rγ (2.5)

Với γ <1, phép biến đổi tương tự với hàm log, nhưng giá trị của nó có thể thay đổi được, trong khi hàm log là cố định. Với phép biến đổi này, các giá trị mức thấp dải hẹp qua phép biến đổi sẽ tạo ra dải rộng hơn, trong khi đó các giá trị mức cao sẽ nén lại thành 1 dải hẹp ở ngõ ra.

(17)

Với γ =1, phép biến đổi là một hàm tuyến tính giữa ngõ vào và ngõ ra. Đặc biệt khi c =1, ảnh ra và ảnh vào là giống nhau.

Với γ >1, ta có phép biến đổi ngược so với hàm log

Hình 3.9: ảnh biến đổi mức xám của các giá trị khác nhau Ta thấy γ < 1 làm tăng độ tương phản của hình ảnh.

Hàm imadjust là một hàm cơ bản trong Image Processing Toolbox của Matlab dùng để biến đổi mức xám của ảnh (để tìm hiểu thêm chức năng của hàm này ta dùng “help imadjust” trong Matlab).

Lọc ảnh

Lọc ảnh không gian:

Nhiễu thường xuất hiện trên ảnh do nhiều nguyên nhân khác nhau. Để giảm nhiễu và nâng cao chất lượng ảnh ta sử dụng những phương pháp lọc khác nhau, phù hợp với mỗi loại nhiễu cụ thể.

Lọc không gian (spatial filtering) cũng là một quá trình xử lý trên các điểm ảnh, dựa trên một phép toán với các điểm ảnh xung quanh. Phương pháp lọc ảnh bao gồm các bước: (1) xác định điểm ảnh trung tâm (x,y); (2) thực hiện các phép toán với các điểm xung quanh (x,y); (3) kết qua ta được đáp ứng của quá trình lọc tại (x,y); (4) lập lại các bước trên với tất cả các điểm ảnh khác.

Lọc tuyến tính:

Lọc tuyến tính là phương pháp lọc trong đó mức xám mỗi pixel của ảnh mới là tổ hợp tuyến tính của các mức xám của các pixels lân cận,tức là mỗi pixel lân cận sẽ được nhân với một hệ số tương ứng rồi được cộng lại để được đáp ứng tại điểm ảnh trung tâm. Nếu vùng lân cận coa kích thước mxn thì ta có m*n hệ số tương. Trong

Matlab,các hệ số này đước sắp xếp trong một ma trận kích thước mxn gọi là bộ lọc. Cơ chế lọc được thực hiện bằng cách di chuyển tâm của mặt nạ qua lần lượt từng điểm ảnh và thực hiện tính tổng các tích mức xám các điểm ảnh xung quanh với hệ số bộ lọc. Kích thước bộ lọc là lẻ, kích thước nhỏ nhất là 3x3. Trong matlab hàm lọc tuyến tính là imfilter

(18)

Lọc phi tuyến:

Cũng như lọc tuyến tính, lọc phi tuyến sử dụng một cửa sổ lọc và trượt qua các pixels của ảnh gốc. Tuy nhiên nếu lọc tuyến tính dựa theo việc lấy tổng có trọng số các pixels lân cận thì lọc phi tuyến sẽ thực hiện một phép toán phi tuyến với các pixels đó. Ví dụ, gắn giá trị tại mỗi pixel bằng giá trị lớn nhất của các pixel lân cận là một phép toán phi tuyến.

Matlab cung cấp cho ta 2 hàm nlfilter và colfilt đểthực hiện lọc phi tuyến một cách tổng quát. Hàm nlfilter thực hiện trực tiếp trên ma trận 2 chiều, trong khi hàm colfilt lọc theo từng cột. Hàm colfilt đòi hỏi nhiều bộ nhớ hơn nlfilter, nhưng tốc độ thực thi lại nhanh hơn đáng kể. Các ứng dụng thường đòi hỏi tốc độ cao nên hàm Lọc ảnh trong miền tần số:

Lọc ảnh trong miền tần số được thực hiện thông qua biến đổi Fourier. Biến đổi Fourier đóng vai trò quan trọng trong xử lý ảnh, có khả năng linh hoạt cao trong thiết kế và tiến hành các phương pháp lọc trong việc nâng cao chất lượng ảnh, phục hồi ảnh, nén ảnh. Trong phần này tao sẽ tập trung vào các bộ lọc để nâng cao chất lượng ảnh.

Biến đổi Fourier rời rạc 2 chiều (2-D Discrete Fourier Transform (DFT)

Giả sử ta có một ảnh kích thước MxN được mộ tả bởi hàm 2 chiều f(x,y), DFT của f là F(u,v) được cho bởi biểu thức:

F (u , v )=

x=0 M −1

y=0 N −1 f ( x , y ) e−2 jπ

(

ux M+ uy N

)

(2.6)

Với u=0,1,2,…,M-1 và v=0,1,2,…,N-1. Kết quả ta đ ợc hệ trục hai chiều trong ƣ miền tần số với hai biến u,v. Các giá trị F(u,v) tạo thành hình chữ nhật kích thước MN, cùng kích thước với ảnh gốc.

Biến đổi Fourier ngược F (u , v )= 1 MN

x=0 M−1

y=0 N−1 f ( x , y )e2 jπ

(

ux M+ uyN

)

(2.7)

Trong Matlab bắt đầu với giá trị 1 trong ma trận, F(1,1) và f(1,1) sẽ tương ứng với F(0,0) và f(0,0) trong biểu thức trên. F(0,0) gọi là thành phần hằng số hoặc thành phần 1 chiều(DC) của biến đổi Fourier, F(0,0) bằng MN lần tổng giá trị f(x,y) Ta nhận thấy f(x,y) là số thực, còn F(u,v) lại là số phức.

Phổ biên độ:

F (u , v )=

|

R (u , v )+ jI (u , v )

|

=[R2

(u , v )+I2

(u , v )]1/ 2

(19)

Và pha φ (u , v )=tan−1

[

I (u , v ) R (u , v )

]

(2.9) Mật độ phổ công suất ¿∨F (u , v )∨¿2 P(u , v )¿ (2.10)

Trong miền tần số quan tâm đến F (u , v )P (u , v )

Với x,y là thực ta được |F((u,v)| = |F(-u,-v)| (2.11)

F((u,v) tuần hoàn nên ta có

F (u , v )=F (u+M , v )=F (u , v +N )=F (u+M , v+ N ) (2.12) Biến đổi ngược cũng cho ta f(x,y) tuần hoàn

f ( x , y )=f ( x+ M , y )=f ( x , y +N )=F (x +M , y+N ) (2.13) Do tính chất đối xứng qua điểm (0,0) và tuần hoàn của , ta có thể dịch (0,0) về vị trí trung tâm tức là vị trí (M/2,N/2) của phổ. Ta có: f ( x , y ) ej 2 π ( u0x M+ v0y N )=F

(

u−u0, v−v0

)

(2.14) Với u0= M 2 và v0= N 2 ; e j 2 π (u0x M+ v0y N )=(−1)(x+ y) F

(

u−u0, v−v0

)

= 1 MN

x=0 M −1

y=0 N−1 f ( x , y )(−1)(x+ y)e−2 jπ

(

ux M+ uyN

)

(2.15) Do đó nhân f(x,y) với (−1)(x+ y) thì F(0,0) sẽ dịch đến vị trí trung tâm.

Việc dịch vị trí như vậy cho ta quan sát phổ một cách dễ dàng hơn và thực hiện lọc ảnh một cách trực quan. Từ đây khi nói đến giá trị DC, ta xem điểm đó ở vị trí trung tâm của phổ.

(20)
(21)

CHƯƠNG 4 : THUẬT TOÁN SVM

4.1 GIỚI THIỆU

Support Vector Machine (SVM) là phương pháp mạnh và chính xác nhất trong số các thuật toán nổi bật ở lĩnh vực khai thác dữ liệu. SVM bao gồm hai nội dung chính là: support vector classifier (SVC), bộ phân lớp dựa theo hỗ trợ và support vector regressor (SVR), bộ hồi quy dựa theo vector hỗ trợ. Được phát triển đầu tiên bởi Vapnik vào những năm 1990, SVM có nền tảng lý thuyết được xây dựng trên nền móng lý thuyết xác suất thống kê. Nó yêu cầu số lượng mẫu huấn luyện không nhiều và thường không nhạy cảm với số chiều của dữ liệu. Trong những thập niên qua, SVM đã phát triển nhanh chóng cả về lý thuyết lẫn thực nghiệm.

4.2 SUPPORT VECTOR CLASSIFIER - SVC PHÂN LỚP NHỊ PHÂN VỚI SVC

Xét một ví dụ của bài toán phân lớp như hình vẽ, ở đó ta phải tìm một đường thẳng sao cho bên trái nó toàn là các điểm đỏ, bên phải nó toàn là các điểm xanh. Bài toán mà dùng đường thẳng để phân chia này được gọi là phân lớp tuyến tính (linear classification).

Hình 1. Minh họa phân tách tuyến tính

Hàm tuyến tính phân biệt hai lớp như sau: (yx )=wTx+b (1) Trong đó:

w∈ Rm là vector trọng số hay vector chuẩn của siêu phẳng phân cách, T là kí hiệu chuyển vị.

b∈ R là độ lệch

(22)

Tập dữ liệu đầu vào gồm N mẫu input vector {x1, x2,...,xn}, với các giá trị nhãn tương ứng là {t1,…,tn} trong đó t∈{−1,1} Giả sử tập dữ liệu có thể phân tách tuyến tính hoàn toàn, nghĩa là các mẫu đều được phân đúng lớp bởi đường phân cách. Khi đó, giá trị tham số w và b theo (1) luôn tồn tại và thỏa y (x 1)>0 cho những điểm có nhãn t=+1y (x 1)<0 cho những điểm có t=−1 , vì thế mà

tiy

(

xi

)

>0 cho mọi điểm dữ liệu huấn luyện.

Để tìm đường phân cách, SVC thông qua khái niệm gọi là lề, đường biên… (margin). Lề là khoảng cách nhỏ nhất giữa điểm dữ liệu gần nhất đến một điểm bất kỳ trên đường phân cách, hình 2

Theo SVC, đường phân cách tốt nhất là đường có margin lớn nhất. Điều này có nghĩa là tồn tại rất nhiều đường phân cách xoay theo các phương khác nhau, và khi đó phương pháp sẽ chọn ra đường phân cách mà có margin lớn nhất.

Khoảng cách từ điểm dữ liệu đến đường phân cách như sau:

¿|w|∨¿ ¿y(x)∨¿¿

r=¿

(2) Không mất tính tổng quát, Vapnik xấp xỉ bài toán thành:

{

wTxi+b ≥1 n uế ti=+1

wTxi+b ≤−1 n uế ti=−1 (3)

Các điểm dữ liệu làm cho dấu “=” xảy ra trong biểu thức trên được gọi là các vector hỗ trợ (support vector). Chúng cũng chính là các điểm dữ liệu gần đường phân cách tối ưu nhất. Theo đó, khoảng cách từ các support vector đến mặt phân cách tối ưu sẽ là: ¿|w|∨¿n uế t¿ =+1 ¿1∨¿¿ −1 ¿|w|∨¿n uế t¿=−1 ¿ ¿ ¿|w|∨¿=¿ ¿y(x¿ )∨¿ ¿ r¿ =¿ (4)

(23)

¿|w|∨¿

ρ=2 r¿

=2¿ (5)

Để tìm được đường phân cách tối ưu, SVC cố gắng cực đại theo w và b:

¿|w|∨¿ maxw, b2¿ (6) w (¿¿T xi+b)≥ 1 i=1, …,n ti¿ Tương đương với ¿|w|∨¿2 minw , b 1 2¿ (7) w (¿¿T xi+b)≥ 1 i=1, … ,n ti¿

Đây được xem là bài toán cơ sở. Để giải quyết bài toán này, người ta dùng phương pháp nhân tử Lagrange (Lagrange multiplier). Hàm Lagrange tương ứng cho (7) là:

t ¿ w (¿¿T xi+b)−1 ¿ αi¿ L( w , b , α)=1 2w T w−

i=1 n ¿ (8)

Lấy đạo hàm L theo hai biến w và b, ta được

L

{

∂ L (w , b , α ) ∂ w =0 ∂ L (w , b , α ) ∂ b =0 (9)

(24)

L

{

w=

i=1 n αitixi

i=1 n αiti=0 (10)

Thế vào hàm Lagrange, thu được: maxαW (α )=

i=1 n αi

i=1 n

j=1 n αiαjtitjxiTx j (11)

i=1 n αiti=0 αi≥ 1i=1, … , n

Điều kiện bổ sung Karush-Kuhn-Tucker (KKT) là: t ¿ w (¿¿T xi+b)−1 αi¿ ¿ (12)

Theo đó, chỉ những support vector (xi, yi) mới có αi tương ứng khác không, những điểm dữ liệu còn lại có αi bằng 0. Support vector chính là cái mà ta quan tâm trong quá trình huấn luyện của SVM. Việc phân lớp cho một điểm dữ liệu mới sẽ chỉ phụ thuộc vào các support vector.

Bài toán kép (dual problem) ở (11) là lớp bài toán tối ưu quy hoạch bậc 2 lồi (convex quadratic programming optimization) tiêu biểu. Trong nhiều trường hợp, nó có thể đạt tối ưu toàn cục khi áp dụng các thuật toán tối ưu phù hợp, ví dụ SMO (sequential minimal optimization). Chi tiết SMO sẽ được trình bày ở phần sau.

Sau khi tìm được các nhân tử Lagrange tối ưu αi thì chúng ta có thể tính w và b tối ưu theo công thức bên dưới. Lưu ý với b thì chỉ cần lấy một vector hỗ trợ dương (tức t = +1) là được, nhưng để đảm bảo tính ổn định của b, chúng ta có thể tính bằng cách lấy giá trị trung bình dựa trên các support vector.

w¿ =

i=1 n αi¿t ixi (13)

(25)

b¿

=1−wTxscho xs=+1

VẤN ĐỀ DỮ LIỆU KHÔNG PHÂN TÁCH TUYẾN TÍNH

Việc êu cầu dữ liệu phải phân tách tuyến tính hoàn toàn là nghiêm ngặt và không phù hợp với các bài toán thực tế, đặc biệt là các trường hợp phân lớp phi tuyến phức tạp. Trong khi đó, các mẫu không phân tách tuyến tính hoàn toàn dẫn đến việc không thể giải quyết các bài toán tối ưu để tìm w và b tương ứng. Để giải quyết vấn đề này, có hai cách tiếp cận chính:

Soft-margin Thủ thuật Kernel. SOFT MARGIN

Vì nhiều lý do, do bản chất hoặc do sai sót trong quá trình thu thập dữ liệu, tồn tại một số điểm thuộc lớp này lẫn lộn vào lớp kia, điều này sẽ làm phá vỡ sự phân tách tuyến tính. Nếu ta cố tình phân tách hoàn toàn sẽ làm cho mô hình dự đoán quá khớp. Để chống lại sự quá khớp, người ta mở rộng SVC để nó chấp nhận một vài điểm phân lớp sai. Kỹ thuật này gọi là soft margin.(hình)

Để làm điều này, một biến (gọi là slack variable) ξi được thêm vào biểu thức cần tối ưu nhằm cho phép mô hình phân lớp thực hiện phân lớp sai ở mức chấp nhận được:

¿|w|∨¿2+C

i=1 n ξi minw , b1 2¿ (14) w (¿¿T xi+b)≥ 1−ξi ti¿ ξi≥ 0 i=1, …, n

Tham số C dùng để cân bằng giữa độ phức tạp tính toán và số lượng điểm không thể phân tách. Nó được gọi là tham số “chuẩn hóa” (regularization parameter). Giá trị C có thể ước lượng nhờ thực nghiệm hoặc phân tích dữ liệu.

Các biến ξi được thêm cho từng điểm dữ liệu, cho biết sự sai lệch khi phân lớp với thực tế. Cụ thể:

(26)

Theo đó, những điểm nằm trên đường phân cách y

(

xi

)

=0 sẽ có ξi=1 và những điểm phân lớp sai sẽ có ξi>1 . Theo Lagrange ta viết lại:

αi{tiy

(

xi

)

−1+ξi}−¿

i=1 N μiξi L( w , b , α)=1 2w T w +

i=1 N ξi

i=1 N ¿ (15) Trong đó αi≥ 0μi≥ 0 là các nhân tử Lagrange Các điều kiện KKT cần thỏa là:

αi≥ 0 tiy

(

xi

)

−1+ξi≥ 0 t (¿¿i y

(

xi

)

−1+ξi)=0 αi¿ μi≥ 0 ξi≥ 0 μiξi=0 v iớ i=1,… , n

Lấy đạo hàm (15) theo w, b và ξi ∂ L ∂ w=0 → w=

i=1 n αitixi ∂ L ∂ b=0 →

i=1 n αiti=0 ∂ L ∂ ξi=0 → αi=C−μi Thế tất cả vào (15) ta được:

(27)

L(α)=

i=1 n αi−1 2

i=1 n

j =1 n αiαjtitjxiTxj (16)

Suy ra công thức cho bài toán kép với soft margin như sau:

maxαW (α )=

i=1 n αi−1 2

i=1 n

j=1 n αiαjtitjxiTx j (17)

i=1 n αiti=0 0 ≤ αi≤1 i=1, …, n Điều kiện KKT tương ứng là: t ¿ w (¿¿T xi+b)−1+ξi ¿ αi¿ (18) μiξi=0 v iớ i=1,… , n

Như trước đó, tập các điểm có không có đóng góp gì cho việc dự đoán điểm dữ liệu mới. Những điểm còn lại tạo thành các support vector. Những điểm có và theo (18) thỏa:

tiy

(

xi

)

=1−ξi (19)

Nếu αi<C thì μi>0 , suy ra ξi=0 Đó là những điểm nằm trên lề.

Những điểm có αi=C thì μi=0 , có thể là những điểm phân lớp đúng nằm giữa lề và đường phân cách nếu ξi≤ 0 hoặc có thể là phân lớp sai nếu ξi>1

Để xác định tham số b, chúng ta dùng những support vector mà, tương ứng với ξi=0 . Lần nữa, để đảm bảo tính ổn định của b ta nên tính theo trung bình.

(28)

Theo định lý Cover về sự phân tách mẫu, một bài toán phân lớp mẫu phức tạp mà chuyển sang không gian có số chiều cao bằng phép chuyển đổi phi tuyến thì có khả năng phân tách tuyến tính cao hơn khi chuyển sang không gian có số chiều thấp. Như vậy, ta có thể giải quyết vấn đề không phân tách tuyến tính bằng cách thực hiện phép chuyển đổi phi tuyến dữ liệu đầu vào sang không gian có số chiều cao hơn (thâm chí là vô cùng). Tuy nhiên, sự chuyển đổi như vậy sẽ làm tăng độ phức tạp tính toán và xác định số chiều phù hợp là vấn đề không dễ dàng. Thủ thuật kernel được đưa ra để giải quyết vấn đề này. Mấu chốt của thủ thuật kernel là xác định hàm kernel phù hợp để tính được tích vô hướng của mẫu dữ liệu sau khi đã thực hiện chuyển đổi mà không cần phải quan tâm số chiều là bao nhiêu.

Hình2: Biến đổi từ không gian dữ liệu sang không gian đặc trưng

Gọi Ф: X → H là phép biến đổi phi tuyến từ không gian đầu vào m chiều X vào không gian đặc trưng H mà ở đó các mẫu có thể phân tách tuyến tính. Khi đó đường phân cách tối ưu được định nghĩa như sau:

w∅T∅ ( x )+b=0 (20)

Không mất tính tổng quát, gán b = 0 và công thức đơn giản thành: w∅T∅ ( x )=0

(21) Làm tương tự như phần trên thì vector trọng số tối ưu là ∅∗w¿¿ trong không gian đặc trưng mới sẽ là: ∅∗¿=

i=1 n αi¿ ti∅ xi w¿ (22)

(29)

x αi¿t iT (¿¿i)∅ ( x )=0

i=1 n ¿ (23) Trong đó x (¿¿i)∅ (x )T

¿ là tích vô hướng của hai vector Ф(x) và Ф(xi). Từ đây, chúng ta

có thể áp dụng hàm kernel tích vô hướng.

Định nghĩa (Kernel tích vô hướng): Kernel là một hàm K(x, x’), sao cho với mọi x, x’ thuộc X, X là tập con của không gian m chiều Rm thỏa điều kiện sau:

K

(

x , x'

)

=∅T

(x )∅ ( x ' ) (24)

Trong đó Ф là phép biến đổi không gian đầu vào X sang không gian đặc trưng H. Theo đó, hàm xác định siêu phẳng tối ưu sẽ thành:

x αi¿ tiK (¿¿i , x )=0

i=1 n ¿ (25)

Ưu điểm của kernel là có thể xây dựng đường phân cách tối ưu mà không phải quan tâm chi tiết đến dạng hàm của phép biến đổi Ф. Như vậy, hàm kernel làm cho thuật toán không nhạy cảm với số chiều, tránh được các tính toán phức tạp khi tính tích vô hướng cũng như thiết kế bộ phân lớp. Định lý Mercer chỉ ra các thuộc tính mà hàm kernel K(x,x’) cần phải có.

Định lý Mercer: Cho K(x, x’) là một hàm đối xứng liên tục được định nghĩa trên miền giá trị đóng a ≤ x ≤ b và tương tự cho x’. Hàm K(x, x’) là kernel nếu có thể mở rộng theo dãy như sau:

K (x , x')=

i=1

λiφi(x )φi(x ') (26)

Trong đó, λi là hệ số dương với mọi i. Để sự mở rộng nói trên là hợp lệ và hội tụ thì cần điều kiện sau:

b a

K (x , x'

)ψ (x)ψ (x ')dxdx ’ (27) Đúng với mọi ψi

(30)

b a

ψ2

(x ) dx <∞ (28)

Diễn giải định lý Mercer: đặc điểm hữu ích nhất cần chú ý khi xây dựng kernel là bất kỳ một tập con hữu hạn ngẫu nhiên trong không gian đầu vào X thì ma rận xây dựng tương ứng với hàm kernel K(x, x’) là ma trận đối xứng và bán xác định, còn gọi là ma trận Gram.

K=(K (xi, x'j))i , j=1n

K là ma trận bán xác định nếu tất cả các trị riêng của nó là không âm. Một số bài toán, ràng buộc điều kiện ma trận là xác định dương, nghĩa là các trị riêng phải lớn hơn 0 để đảm bảo rằng bài toán sẽ hội tụ và giải pháp là duy nhất. Theo ràng buộc nói trên thì việc chọn hàm kernel vẫn khá phóng khoáng, Các loại hàm kernel có thể sử dụng như: Tuyến tính: K

(

x , x'

)

=xTx'+c (29) Đa thức: ax (¿¿T x'+c)d K

(

x , x'

)

=¿ (30) Gaussian: ¿

|

x−x'

|

∨¿2 2 σ2 −¿ K

(

x , x'

)

=exp ⁡¿ ) (31)

(31)

ẢNH MẪU

VECTOR HOÁ ẢNH MẪU PHÂN TÍCH THÀNH PHẦN CHÍNH ( PCA)

KHÔNG GIAN ĐẶC TRƯNG

HUẤN LUYỆN SVM

NHẬN DẠNG

ẢNH CẦN NHẬN DẠNG

VECTOR HOÁ ẢNH

ÁNH XẠ VÀO KHÔNG GIAN ĐẶC TRƯNG

KẾT QUẢ

SAI BIỆT VECTOR ẢNH MẪU VỚI VECTOR TRUNG BÌNH

SAI BIỆT VECTOR ẢNH NHẬN DẠNG VỚI VECTOR TRUNG BÌNH

CHƯƠNG 5 : XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG KHUÔN MẶT

5.1 Sơ đồ khối

ÁNH XẠ

(32)

5.2 Xây dựng chương trình nhận dạng

Phân tích thành phần chính PCA (Principal Component Analysis) 1. Giới thiệu

Phương pháp phân tích thành phần chính là một trong những kỹ thuật thành công nhất để nhận dạng và nén ảnh. PCA là phương pháp thống kê có tên gọi khác là phân tích hệ số. mục đích của PCA là giảm chiều của không gian dữ liệu (biến quan sát) thành không gian biến đặc trưng nhỏ hơn (biến độc lập) cần thiết để mô tả các dữ liệu có lợi hơn. Trong trường hợp này có sự tương qaun nhiều hơn với các biến quan sát.

Nhiệm vụ của PCA có thể là dự báo, loại bỏ sự trùng lặp, trích xuất các đặc trưng, nén dữ liệu…PCA là kỹ thuật phân loại, nó có thể làm việc trong miền tuyến tính, những ứng dụng có mô hình tuyến tính phù hợp như xử lý tín hiệu, xử lý ảnh, lý thuyết điều khiển hệ thống, truyền thông ….

Nhận dạng khuôn mặt là một trong những ứng dụng đó, hơn nữa nó có thể phân chia thành những lĩnh vực như xác minh khuôn mặt, phân loại khuôn mặt, hay là xác định giới tính. Những ứng dụng thiết thực nhất là theo dõi một đám đông, nội dung có chứa trong một video hay nhận dạng cá nhân (bằng lái xe), kiểm soát ra vào. .. Ý tưởng chính của sử dụng phương pháp PCA để nhận dạng khuôn mặt là biểu diễn một véc tơ điểm ảnh một chiều được xây dựng từ một ảnh 2 chiều bằng các thành phần cơ bản nhất trong không gian đặc trưng. Còn có thể gọi đó là phép chiếu lên không gian trị riêng. Không gian trị riêng được tính toán bằng cách xác định các véc tơ trị riêng (eigenvector) của ma trận hiệp phương sai được lấy từ tập ảnh các khuôn mặt.

Phần tiếp theo mô tả thuật toán của phương pháp PCA. Chi tiết về nhận dạng khuôn mặt được trình bày ở mục 3. Kết quả trình bày trong phần 4. Cuối cùng là một vài nhận xét và so sánh ở phần 5.

2. Thuật toán của PCA

Một ảnh 2 D có thể biểu diễn dạng véc tơ 1 chiều bằng cách nối các hàng (hoặc cột) thành một véc tơ 1 cột dài. Ta có M véc tơ kích thước N (hàng của ảnh x cột của ảnh) của một tập ảnh mẫu. pj là giá trị của các điểm ảnh

1 ... 2

, 1,..., 1

 

T

i N

xp p p iM

Gọi các ảnh trung bình trung tâm là các véc tơ ảnh trừ cho véc tơ ảnh trung bình. Gọi m là véc tơ ảnh trung bình

 

1 1 2 M i i m x M  

(33)

 

3

i xi m

  

Mục đích của ta là tìm một tập ei các đặc trưng lớn nhất được chiếu bởi các véc tơ φi lên không gian đặc trưng. Ta muốn tìm một tập của M véc tơ trực giao với véc tơ ei với số lượng nhiều nhất

2

 

1 1 4 M T i i n i e M    

Với ràng buộc trực giao

 

5

T l k lk e e 

Điều đó cho ta thấy rằng ei và λi là các véc tơ riêng và trị riêng của ma trận hiệp phương sai

 

6 T CAA Ở đây

1 2

... M A    . Ta thấy kích thước của ma trân C là NxN là rất lớn. Ví dụ một ảnh có kích thước là 64x64 sẽ tạo ra ma trận hiệp phương sai có kích thước

4096x4096 do đó không thể tính các véc tơ riêng một cách trực tiếp. Theo lý thuyết đại số tuyến tính thì véc tơ riêng và trị riêng có thể tính thông qua ma trận

T A A

có kích thước MxM. Gọi di và i là véc tơ riêng và trị riêng của

T A A ta có

 

7 T i i i A Ad d Nhân bên trái 2 vế của (7) ta được

8

 

T i i i AA Ad  Ad

Có nghĩa là các véc tơ riêng ei và giá trị riêng i của T AA tương ứng với Adi và i. i Ad cần được chuẩn hóa để bằng ei

Các véc tơ riêng tương ứng với các giá trị riêng khác 0 của ma trận hiệp phương sai tạo một trực giao cơ bản cho một không gian phụ mà ở đó hầu hết ảnh dữ liệu có thể được biểu diễn với một lượng sai số nhỏ. Các eigenvector được sắp xếp từ cao xuống thấp theo các eigenvalue. Các eigenvector kết hợp với các eigenvalue lớn nhất phản ánh những biến đổi lớn nhất của ảnh và ngược lại.

(34)

1 2... '

9

 

T M      ở đây T i ei i   

với I là ảnh khuông mặt thứ I trong không gian mới và nó là các thành phần cơ bản. các véc tơ ei cũng là các ảnh và được gọi là eigenimages hoặc eigenfaces.

Phương pháp đơn giản nhất để xác định khuôn mặt nhận dạng ở ngõ vào trong k khuôn mặt là tìm khoảng cách Euclit nhỏ nhất

 

10 k k      k

là véc tơ mô tả khuôn mặt thứ k. Nếu knhỏ hơn một ngưỡng c, thì khuôn mặt đó thuộc lớp k.

Referências

Documentos relacionados

Ao argumentar sobre a acessibilidade de pessoas com deficiência visual às plataformas audiovisuais, o artigo tem como objetivo apresentar meios de facilitar aos

Revisão sistemática que incluiu apenas estudos observacionais, com o objetivo de comparar a cirurgia tradicional de Maze III (realizada com incisões) à técnica

Foi possível verificar ainda que, neste momento da sequência,       diversas concepções sobre a natureza da luz estão convivendo dentro do espaço escolar que       não

Como dados de base foram utilizados: (i) um inventário histórico das manifestações de instabilidade ocorridas na bacia do Rio Grande da Pipa (1434 movimentos de vertente,

Neste trabalho será empregada a técnica de controle não linear baseada na Função Energia Generalizada de Controle para síntese de leis de controles estabilizantes para os

Dentre as principais metas alcançadas, destacam- se a definição desses objetos de custos, a atribuição das despesas e quem é beneficiado por elas, atualização da

Os limites impostos à fotografia na China não fazem mais do que reflectir o carácter  de uma sociedade unificada por uma ideologia de conflitos rígidos e inconciliáveis. O nosso

ESCOVA PARA ASPIRAÇÃO (T) Indicado para limpar o pó de superfícies delica- das graças às macias cerdas de que é dotado, como molduras, livros, etc.