Pca & Stasm - Full

15
BÁO CÁO TÌM HIỂU VỀ PCA VÀ STASM Sinh viên thực hiện: Đỗ Vương Tiến - 0712444 Phan Thanh Trí- 0712476 Thời gian thực hiện: 06/09 – 20/09

Transcript of Pca & Stasm - Full

Page 1: Pca & Stasm - Full

BÁO CÁO TÌM HIỂU VỀ PCA VÀ STASM

Sinh viên thực hiện:

Đỗ Vương Tiến - 0712444

Phan Thanh Trí - 0712476

Thời gian thực hiện: 06/09 – 20/09

Page 2: Pca & Stasm - Full

Báo cáo tìm hiểu phương pháp PCA và mã nguồn STASM T9-2010

Mục lụcI. Về phương pháp PCA:.........................................................................................3

1. Giới thiệu:......................................................................................................3

2. Tổng quát:......................................................................................................3

3. Chi tiết............................................................................................................3

3.1 Dẫn nhập:..................................................................................................3

3.2 Một ví dụ trong không gian 3 chiều:.......................................................4

3.3 Về ma trận hiệp phương sai (Covariance matrix):................................5

3.4 Chéo hóa ma trận CX:..............................................................................6

3.5 Tổng kết PCA:...........................................................................................6

4. Chương trình mẫu..........................................................................................7

II. Báo cáo về STASM:.............................................................................................9

1. Các công việc đã thực hiện:...........................................................................9

2. Các kết quả thu được:...................................................................................9

2.1 Về Stasm:..................................................................................................9

2.2 Về Marki:..................................................................................................11

III. Tài liệu tham khảo...........................................................................................13

0712444 – [email protected] Trang | 2

Page 3: Pca & Stasm - Full

Báo cáo tìm hiểu phương pháp PCA và mã nguồn STASM T9-2010

I. Về phương pháp PCA:

1. Giới thiệu:- Principal Component Analysis (PCA) là phương pháp được sử dụng phổ biến hiện

nay trong việc phân tích dữ liệu. PCA sử dụng các phương pháp toán để rút trích lấy ra các đặc trưng cơ bản có thể đại diện cho cấu trúc bên trong của tập dữ liệu. Hay nói cách khác, nếu mô tả tập dữ liệu trong không gian n-chiều thì PCA sẽ có thể cung cấp 1 hình ảnh của cùng tập dữ liệu đó trong không gian k-chiều (Với k <= n)

- Xét 1 ví dụ, tưởng tượng hình ảnh một ngôi nhà với đầy đủ các bản vẽ thiết kế trong không gian 3 chiều, thì phương pháp PCA có thể cung cấp cho người dùng 1 góc nhìn trong không gian 2 chiều nhưng bao quát hầu như toàn thể kiến trúc tòa nhà.

2. Tổng quát:- Bước 1: Mô tả tập dữ liệu dưới dạng 1 ma trận m x n.

o Với m là số lượng các phương pháp đo lường (Measurement type) (Hay số

chiều không gian)o Với n là số lượng các bộ dữ liệu.

- Bước 2: o Loại bỏ giá trị trung bình ở mỗi phương pháp đo lường hay hàng ngang xi

o Hay còn gọi là đưa các giá trị dữ liệu về dưới dạng “mean deviation”

- Bước 3:o Tính toán các eigenvector của ma trận hiệp phương sai.

o Biểu diễn lại tập dữ liệu với không gian cơ sở mới.

3. Chi tiết1.1 Dẫn nhập:

Gọi X là ma trận m x n đã đề cập ở bên trên, Y là ma trận có được nhờ biến đổi X thông qua phép biến đổi P.

Y = PX (1)

Ta định nghĩa:

- pi là các hàng của P.

- xi là các cột của X (các X )

- yi là các cột của Y

Trong đó pi {p1, …, pm} là tập các vector cơ sở mới biểu diễn các cột của X

PX = [ p1⋮pm] [ x1…xm ]

0712444 – [email protected] Trang | 3

Page 4: Pca & Stasm - Full

Báo cáo tìm hiểu phương pháp PCA và mã nguồn STASM T9-2010

Y = [ p1 x1 ⋯ p1 xm⋮ ⋱ ⋮pmx1 ⋯ pm xm

]Nói cách khác, P là tập các vector cơ sở mới (basis vector) của X. Nhưng làm thế nào

để chọn P tốt?

1.2 Một ví dụ trong không gian 3 chiều:

X là tập dữ liệu ta có được khi tiến hành quan sát sự thay đổi vị trí của lò xo (không gian 3D) thông qua camera A (Tín hiệu thu được ở không gian 2D).

Ta biết rằng mọi vị trí của lò xo đều có thể được biểu diễn chỉ bằng 1 trục tọa độ duy nhất (song song với trục di chuyển của lò xo), nên các điểm chệch ra khỏi hướng di chuyển thẳng là các giá trị đã bị nhiễu. Mục tiêu của ví dụ là tìm ra hệ trục tọa độ 1 chiều x phân biệt tối đa các giá trị của tập mẫu và khử nhiễu.

Ta sử dụng 1độ đo tương quan giữa tín hiệu và nhiễu signal to noise:

SNR=σ2signalσ2noise

Với SNR >> 1 chỉ ra độ trong của dữ liệu và SRN thấp chỉ ra dữ liệu bị ảnh hưởng bởi nhiều.

0712444 – [email protected] Trang | 4

Page 5: Pca & Stasm - Full

Báo cáo tìm hiểu phương pháp PCA và mã nguồn STASM T9-2010

Hình (a) mô tả tập dữ liệu vị trí của lò xo trên không gian 2 chiều quay được bởi

camera A. Phương sai của tín hiệu σ 2signalvà nhiễu σ 2noise được biểu diễn bằng 2 đoạn thẳng

trực giao giữa tập dữ liệu. Ở hình (b), ta thực hiện phép quay các trục để tìm p* tối ưu sao cho thể hiện được nhiều nhất các bộ dữ liệu và SNR là lớn nhất.

Nhận xét rằng hướng phân biệt được nhiều mẫu dữ liệu nhất không phải là

xa=(1 ,0 ) hay ya= (0,1 ) mà là hướng song song với trục dài nhất của đám mây dữ liệu (Chéo

45 độ). Hay nói rõ hơn, muốn phân biệt càng nhiều mẫu dữ liệu khác nhau đồng nghĩa với việc đi tìm độ quay thích hợp cho hệ trục cơ sở ban đầu.

1.3 Về ma trận hiệp phương sai (Covariance matrix):

Xem xét 2 tập dữ liệu có được với việc loại bỏ kì vọng (hay dưới dạng mean deviation)

x ij=|x ij−x|

A = {a1, …, an} và B = {b1, …, bn}

Ta tính được hiệp phương sai (covariance) của ma trận tạo bởi A và B

σ 2AB=1n−1

A BT

X mni j={(x i−μi)m(x j−μ j)

n}

Với X mni j: phần tử X i j của ma trận m x n, μ j là kì vọng của vector cột j.

0712444 – [email protected] Trang | 5

Page 6: Pca & Stasm - Full

Báo cáo tìm hiểu phương pháp PCA và mã nguồn STASM T9-2010

Để thấy rõ mối tương quan giữa các thành phần của tập dữ liệu ban đầu X, ta biến đổi X về CX.

CX≡1n−1

XXT

Các đặc tính của ma trận hiệp phương sai CX:

- Là ma trận đối xứng m x m (Thể hiện mối tương quan giữa các chiều không gian)

- Đường chéo chính là phương sai (Variance) của mỗi chiều không gian (Hay mỗi cách đo đạc, máy camera khác nhau ở ví dụ trên)

- Các điểm ngoài đường chéo là hiệp phương sai (Covariance) của các chiều không gian với nhau.

Ma trận CX cho biết tất cả các mối liên hệ giữa các chiều không gian của tập dữ liệu X, phản ánh các giá trị nhiễu và dư thừa trong đó.

- Ở đường chéo chính, giả định các giá trị lớn(nhỏ) tương ứng với các vùng tập trung dữ liệu (hay nhiễu)

- Các điểm ngoài đường chéo giá trị lớn(nhỏ) tương ứng với việc trùng lặp thông tin cao(thấp)

1.4 Chéo hóa ma trận CX:

Trở về mục tiêu ban đầu đề ra, ma trận CY có được sau khi biến đổi CX phải thỏa các yêu cầu sau:

- Tối thiểu sự trùng lắp thông tin dùng các giá trị Covariance.

- Tối đa hóa tín hiệu thu được, bằng Variance.

Từ định nghĩa Covariance không âm Ta suy ra được giá trị tối thiểu của nó là 0 Ma trận hiệp phương sai biến đổi tối ưu Cy sẽ trở thành ma trận đường chéo Ma trận biến đổi P tìm bằng cách chéo hóa ma trận CX.

Từ đó PCA đặt ra 2 giả định:

- P là 1 ma trận trực chuẩn (Các vector trực giao và đã được chuẩn hóa) (orthonormal = orthogonal + normal)

- Thứ 2, các hướng với giá trị của phương sai (Variance) càng lớn thì càng “quan trọng”, hay “cơ bản”.

1.5 Tổng kết PCA:

Như vậy cuối cùng ta tìm ma trận trực chuẩn P thỏa 2 điều kiện sau:

- Y = PX.

0712444 – [email protected] Trang | 6

Page 7: Pca & Stasm - Full

Báo cáo tìm hiểu phương pháp PCA và mã nguồn STASM T9-2010

- CY≡1n−1

YY T=PC X là ma trận đường chéo.

Khi đó các hàng của P sẽ là các thành phần cơ bản của X.

Thuật toán PCA chứng minh được rằng ta có thể thỏa mãn các điều kiện trên bằng cách

chọn P với mỗi dòng pi là một eigenvector của XXT [1]

1. Chương trình mẫuMôi trường chạy: matlab.

function [signals,PC,V] = pca1(data)

% PCA1: Perform PCA using covariance.

% data - MxN matrix of input data

% (M dimensions, N trials)

% signals - MxN matrix of projected data

% PC - each column is a PC

% V - Mx1 matrix of variances

[M,N] = size(data);

% subtract off the mean for each dimension

mn = mean(data,2);

data = data - repmat(mn,1,N);

% calculate the covariance matrix

covariance = (1/(N-1)) * data * data';

% find the eigenvectors and eigenvalues

[PC, V] = eig(covariance);

% extract diagonal of matrix as vector

V = diag(V);

0712444 – [email protected] Trang | 7

Page 8: Pca & Stasm - Full

Báo cáo tìm hiểu phương pháp PCA và mã nguồn STASM T9-2010

% sort the variances in decreasing order

[junk, rindices] = sort(-1*V);

V = V(rindices);

PC = PC(:,rindices);

% project the original data set

signals = PC' * data;

Nguồn từ [1]

0712444 – [email protected] Trang | 8

Page 9: Pca & Stasm - Full

Báo cáo tìm hiểu phương pháp PCA và mã nguồn STASM T9-2010

II. Báo cáo về STASM:

1. Các công việc đã thực hiện:Chỉnh sửa, thay đổi source code để biên dịch và chạy thành công stasm.exe, marki.exe

trong môi trường Visual studio 98, 2008.

Dữ liệu thí nghiệm là bộ ảnh của BioID-FaceDatabase-V1.2.

2. Các kết quả thu được:2.1 Về Stasm:a. Tổng quan:

Stasm.exe là chương trình command line nhận tham số đường dẫn đến file ảnh. Ảnh được sử dụng có định dạng *.jpeg , *.pgm , *.bmp , *.ppm . Kích thước giới hạn (khoảng 180 pixels cho khuôn mặt) để có được hiệu quả trong khi thử nghiệm.

Trong source sử dụng 2 detector là Viona Jones và Rowley (mặc định là Viona Jones) và sử dụng 2 mô hình đánh điểm là 68 điểm (1D profiles) và 84 điểm (2D profiles)

Kết quả thực hiện được lưu vào file text stasm.log.

0712444 – [email protected] Trang | 9

Page 10: Pca & Stasm - Full

Báo cáo tìm hiểu phương pháp PCA và mã nguồn STASM T9-2010

Hình 1 : Ảnh chạy thử stasm.exe với bộ dữ liệu thử nghiệm BioID-FaceDatabase-V1.2

0712444 – [email protected] Trang | 10

Page 11: Pca & Stasm - Full

Báo cáo tìm hiểu phương pháp PCA và mã nguồn STASM T9-2010

Hình 2 : 1 số kết quả của stasm với bộ dữ liệu thử nghiệm BioID-FaceDatabase-V1.2

b. Kết quả chạy thử nghiệm:

Khi chạy thử với bộ test BioID-FaceDatabase-V1.2 , kết quả cho khá tốt với các land-mark sát với các đường biên của khuôn mặt .Tuy nhiên vẫn có 1 số trường hợp đánh dấu chưa được chính xác (phần lớn là do ảnh).

Hình 3: Các ảnh đánh dấu land-mark chưa được chính xác.

2.2 Về Marki:a. Tổng quan

Đây là một chương trình cho phép đánh dấu bằng tay các landmark nên trong dữ liệu

dùng để test cần đánh dấu 12 điểm land-mark, ngoài ra chương trình còn có giao diện giúp thấy được cách đánh thứ tự các land mark.

Marki sử dụng 1 file shape: trong file shape có chứa đường dẫn đến các thư mục chứa ảnh hiển thị và tọa độ các điểm đã được chọn làm land mark

0712444 – [email protected] Trang | 11

Page 12: Pca & Stasm - Full

Báo cáo tìm hiểu phương pháp PCA và mã nguồn STASM T9-2010

Hình 4: giao diện khi sử dụng Marki.

1 vài chức năng chính của marki :

- Lock : khóa chuột trái không cho chỉnh sửa vị trí land-mark.- Connect dots : nối các điểm land-mark thành các đoạn thẳng liên tiếp.- ShowNbr : hiển thị tất cả land-mark (màu đỏ)- ShowcurrentNbr : hiển thị land-mark đang thao tác (màu vàng)- Write Image , crop, zoom in-out , next-prev Image,… : các chức năng xử lý

ảnh- Next-prev point , auto jump to land-mark: di chuyển đến các land-mark tương

ứng

b. Kết quả chạy thử nghiệm: Cấu trúc 1 file shape

ss example.shap // cấu trúc header của 1 file shape đầu tiên phải có ss

# This is a small example shape file.# Expect a few warnings from the Rowley face detector when using# this shape file to build ASMs.

Directories ../tasm-example/images

"0000 B00" // 0000 + tên file ảnh{ 12 2 // số land-mark và hệ tọa độ-47.5 33.2-32.9 34.5-15.1 35.724.9 35.738.9 33.854.1 32.5-7.5 -4.315.4 -3.0-27.2 -36.6

0712444 – [email protected] Trang | 12

Page 13: Pca & Stasm - Full

Báo cáo tìm hiểu phương pháp PCA và mã nguồn STASM T9-2010

3.9 -32.231.2 -36.01.4 -50.6}

Như vậy khi ta muốn khởi động việc đánh dấu bằng tay cho 1 tấm ảnh , cần khởi tạo 12 điểm thuộc ảnh , sau đó dùng chức năng đánh lại vị trí ( click chuột trái) để tạo ra land-mark phù hợp theo ý.

Hình 6 : ảnh trước và sau khi dùng marki

III. Tài liệu tham khảo1. “A Tutorial on Principal Component Analysis”, Jonathon Shlens.2. http://en.wikipedia.org/wiki/Principal_component_analysis . Last modified: 11 Sep

2010 at 16:19. Last accessed: 14 Sep 2010.3. http://mathworld.wolfram.com/ 4. “Active Shape Models with Stasm”, Stephen Milborrow.

0712444 – [email protected] Trang | 13