Thời gian gần đây cùng với sự phát triển của công nghệ hiện đại, các lĩnh vực ứng dụng ngày càng đa dạng và phong phú đã mang lại những hiệu quả cực kỳ thiết thực. Ngày nay với xu hướng thiết kế ứng dụng nhằm tích hợp toàn bộ hệ thống trên một chip (System On Chip-SoC) với giá thành rẻ đang được nghiên cứu và đầu t ư rộng rãi không chỉ ở Việt Nam mà trên toàn thế giới.Với sự ra đời của công nghệ FPGA (Field Programmable Gate Array), một loại linh kiện logic khả trình kết hợp với kỹ thuật SoPC (System On Programmable Chip) đã cho phép người thiết kế linh hoạt hơn trong quá trình cài đặt các ứng dụng chạy thực tế và kiểm tra sản phẩm trước và sau khi thiết kế IC (Integrated Circuit). Ngày nay với sự ra đời của công nghệ SoC (System On Chip) đã tăng cường khả năng xử lý cũng như tích hợp hệ thống trên một chip cho các ứng dụng phức tạp. SoC tích hợp các khối phần cứng riêng rẽ vào một Chip với kiến trúc hoạt động song song và độc lập nhau [1][2]. Do đó, luồng dữ liệu sẽ được xử lý song song dẫn đến tốc độ hệ thống được tăng lên. Bản chất của SoC là sử dụng CPU nhúng như một trung tâm xử lý phát các tín hiệu để điều khiển các bộ gia tốc (hay các khối xử lý riêng rẽ) hoạt động. Ở đây CPU chỉ đóng vai trò phát tín hiệu điều khiển mà không xử lý dữ liệu nên tốc độ hệ thống được cải thiện rất đáng kể. Đặc điểm này được xem là điểm khác biệt lớn giữa một SoC và một máy tính cá nhân (PC). Ngoài ra, hệ thống SoC còn có giá thành thấp, tiết kiệm diện tích và mức tiêu thụ công suất thấp. Một hệ thống SoC được nghiên cứu trong đề tài là hệ thống SoPC được tích hợp trên FPGA. Một số ưu điểm của một hệ thống SoPC trên FPGA so với một máy tính cá nhân: Tiết kiệm điện năng Tốc độ xử lý và cấu hình nhanh Nhỏ, gọn, ít chiếm diện tích Thời gian khởi động nhanh và có thể khởi động lại dễ dàng. Nhận dạng nói chung và nhận dạng mặt người nói riêng là những ứng dụng khá phổ biến đã và đang được nghiên cứu rất rộng rãi. Nhiều thuật toán khác nhau đã ra đời để cải tiến chất lượng của kỹ thuật nhận dạng [16] như: Neural Network, Hidden Markov Model, PCA (Principle Component Analysis), ICA (Independent Component Analysis)…Tuy nhiên các thuật toán này hầu hết đều được mô phỏng và chạy trên các phần mềm: Matlab, Visual C++. Ngoài ra để áp dụng thực tế hầu hết các thuật toán này được lập trình và khởi động cùng với một hệ thống máy tính hoặc được cài đặc vào các thiết bị điện thoại khá đắt tiền. Với thực tế trên, tác giả chọn đề tài “Thiết kế SoPC cho ứng dụng nhận dạng mặt người dùng phân tích thành phần chính (PCA) và lượng tử hóa vector (VQ)”. Tác giả hi vọng với đề tài này sẽ tạo ra được một hệ thống nhận dạng mặt người với tốc độ xử lý nhanh, tích hợp trên một chip duy nhất, giá thành thấp và kết cấu hệ thống đơn giản nhằm có thể áp dụng rộng rãi vào trong thực tiễn. BỐ CỤC LUẬN VĂN Chương 1: Phần tổng quan. Mục tiêu chính của chương này sẽ giới thiệu một cách tổng quan nhất về bài toán nhận dạng mặt người. Qua đó cũng trình bày một số thuật toán nhận dạng mặt người được sử dụng rộng rãi nhất thời gian gần đây. Chương 2: Phân tích thành phần chính Phần này tập trung giới thiệu các đặc điểm của thuật toán PCA và cách sử dụng thuật toán PCA trong bài toán nhận dạng mặt người. Chương 3: Công cụ SoPC Builder Giới thiệu công cụ SoPC của hãng Altera trên công nghệ FPGA. Chương này sẽ nêu rõ các đặc điểm của công cụ SoPC. Cách khởi tạo và hoạt động một thành phần mới trong hệ thống SoPC. Chương 4: Hệ thống SoPC cho ứng dụng nhận dạng mặt người
Trang 1TRẦN THỊ ĐIỂM
THIẾT KẾ SOPC CHO ỨNG DỤNG NHẬN DẠNG MẶT NGƯỜI DÙNG PHÂN TÍCH THÀNH PHẦN CHÍNH (PCA) VÀ LƯỢNG TỬ HÓA VECTOR (VQ)
Chuyên ngành: Vật Lý Điện Tử-Hướng Kỹ Thuật
Mã số: 60 44 03
LUẬN VĂN THẠC SĨ VẬT LÝ VÔ TUYẾN VÀ ĐIỆN TỬ- KỸ THUẬT
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS NGUYỄN HỮU PHƯƠNG
THÀNH PHỐ HỒ CHÍ MINH-NĂM 2009
Trang 2MỤC LỤC
MỤC LỤC 1
GIỚI THIỆU ĐỀ TÀI 4
CHƯƠNG 1: TỔNG QUAN BÀI TOÁN NHẬN DẠNG MẶT NGƯỜI 7
1.1 TỔNG QUAN BÀI TOÁN NHẬN DẠNG MẶT NGƯỜI 7
1.2 CÁC PHƯƠNG PHÁP NHẬN DẠNG MẶT NGƯỜI 7
1.2.1 Mô hình Markov ẩn (Hidden Markov Model) 7
1.2.2 Support vector Machines (SVM) 7
1.2.3 Mạng neural 8
1.2.4 Principal Component Analysic (PCA) 8
1.2.5 Linear Discriminant Analysis (LDA) 8
1.2.6 Independent Component Analysis (ICA) 8
1.3 CÁC BƯỚC THỰC HIỆN BÀI TOÁN NHẬN DẠNG MẶT NGƯỜI 9
1.4 KHÓ KHĂN VÀ THÁCH THỨC TRONG BÀI TOÁN NHẬN DẠNG MẶT NGƯỜI 10
1.5 ỨNG DỤNG CỦA BÀI TOÁN NHẬN DẠNG MẶT NGƯỜI 10
CHƯƠNG 2: PHÂN TÍCH THÀNH PHẦN CHÍNH 11
2.1 THÀNH PHẦN CHÍNH 11
2.2 CHỌN THÀNH PHẦN CHÍNH 11
2.2.1 Phương pháp tích lũy phần trăm trên tổng số biến 12
2.2.2 Phương pháp dựa trên kích thước của những biến trong những thành phần chính 12
2.3 CÁC BƯỚC THỰC HIỆN BÀI TOÁN PCA 13
2.3.1 Chuẩn hóa về kích thước 13
2.3.2 Thực hiện phép trừ trung bình 13
2.3.3 Tạo ma trận hiệp phương sai 13
2.3.4 Tìm các trị riêng và vector riêng tương ứng 14
2.3.5 Xác định các thành phần và vector đặc trưng 14
2.3.6 Hình thành tập dữ liệu 14
Trang 3CHƯƠNG 3: CÔNG CỤ SOPC BUILDER 16
3.1 KHÁI NIỆM SOPC 16
3.2 SOPC BUILDER 16
3.3 AVALON BUS 16
3.3.1 Avalon bus module 16
3.3.2 Các thiết bị ngoại vi Avalon 17
3.4 COMPONENT TRONG SOPC 17
CHƯƠNG 4: HỆ THỐNG SOPC CHO ỨNG DỤNG NHẬN DẠNG MẶT NGƯỜI .18
4.1 THUẬT TOÁN PHẦN CỨNG CHO ỨNG DỤNG NHẬN DẠNG MẶT NGƯỜI 18
4.1.1 Tập dữ liệu 18
4.1.2 Tìm mặt trung bình 19
4.1.3 Tính sự sai lệch giữa từng mặt người và mặt trung bình 19
4.1.4 Tìm trị riêng và vector riêng 19
4.1.5 Thực hiện phép quay PCA 20
4.1.6 Tính khoảng cách Euclide 21
4.2 HỆ THỐNG SOPC CHO ƯNG DỤNG NHẬN DẠNG MẶT NGƯỜI 22
Toàn bộ hoạt động của khối tính trung bình được mô tả cụ thể trong hình 4.4 23 Hình 4.4: Sơ đồ khối tính trung bình 23
Hình 4.5: Sơ đồ khối tính độ dư thừa 23
Hình 4.6: Sơ đồ khối bộ nhân 24
4.2.2 Mạch tính khoảng cách Euclide và tìm vị trí trung khớp nhất 24
CHƯƠNG 5: KẾT QUẢ THỰC NGHIỆM 26
5.1 KẾT QUẢ THUẬT TOÁN PCA ĐƯỢC KIỂM NGHIỆM TRÊN PHẦN MỀM 26 5.2 KẾT QUẢ THỰC NGHIỆM TRÊN PHẦN CỨNG 26
5.2.1 Kết quả tổng hợp và phân tích mạch 26
5.2.2 Một số kết quả kiểm nghiệm trên phần cứng 27
Trang 45.3 SO SÁNH HIỆU QUẢ THỰC HIỆN TRÊN PHẦN CỨNG VÀ TRÊN
PHẦN MỀM 28
5.3.1 Khối vector quantization 28
5.3.2 Các bộ gia tốc cho thuật toán PCA 28
5.3.3 Toàn bộ hệ thống 29
CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 31
6.1 KẾT LUẬN 31
6.2 HƯỚNG PHÁT TRIỂN 31
TÀI LIỆU THAM KHẢO 33
Trang 5GIỚI THIỆU ĐỀ TÀI
Thời gian gần đây cùng với sự phát triển của công nghệ hiện đại, các lĩnh vực ứng dụng ngày càng đa dạng và phong phú đã mang lại những hiệu quả cực kỳ thiết thực Ngày nay với xu hướng thiết kế ứng dụng nhằm tích hợp toàn bộ hệ thống trên một chip (System On Chip-SoC) với giá thành rẻ đang được nghiên cứu và đầu tư rộng rãi không chỉ ở Việt Nam mà trên toàn thế giới.Với sự ra đời của công nghệ FPGA (Field Programmable Gate Array), một loại linh kiện logic khả trình kết hợp với kỹ thuật SoPC (System On Programmable Chip) đã cho phép người thiết kế linh hoạt hơn trong quá trình cài đặt các ứng dụng chạy thực tế và kiểm tra sản phẩm trước và sau khi thiết kế IC (Integrated Circuit)
Ngày nay với sự ra đời của công nghệ SoC (System On Chip) đã tăng cường khả năng xử lý cũng như tích hợp hệ thống trên một chip cho các ứng dụng phức tạp SoC tích hợp các khối phần cứng riêng rẽ vào một Chip với kiến trúc hoạt động song song và độc lập nhau [1][2] Do đó, luồng dữ liệu sẽ được xử lý song song dẫn đến tốc độ hệ thống được tăng lên Bản chất của SoC là sử dụng CPU nhúng như một trung tâm xử lý phát các tín hiệu để điều khiển các bộ gia tốc (hay các khối xử
lý riêng rẽ) hoạt động Ở đây CPU chỉ đóng vai trò phát tín hiệu điều khiển mà không xử lý dữ liệu nên tốc độ hệ thống được cải thiện rất đáng kể Đặc điểm này được xem là điểm khác biệt lớn giữa một SoC và một máy tính cá nhân (PC) Ngoài
ra, hệ thống SoC còn có giá thành thấp, tiết kiệm diện tích và mức tiêu thụ công suất thấp Một hệ thống SoC được nghiên cứu trong đề tài là hệ thống SoPC được tích hợp trên FPGA Một số ưu điểm của một hệ thống SoPC trên FPGA so với một máy tính cá nhân:
9 Tiết kiệm điện năng
9 Tốc độ xử lý và cấu hình nhanh
9 Nhỏ, gọn, ít chiếm diện tích
Trang 69 Thời gian khởi động nhanh và có thể khởi động lại dễ dàng
Nhận dạng nói chung và nhận dạng mặt người nói riêng là những ứng dụng khá phổ biến đã và đang được nghiên cứu rất rộng rãi Nhiều thuật toán khác nhau
đã ra đời để cải tiến chất lượng của kỹ thuật nhận dạng [16] như: Neural Network, Hidden Markov Model, PCA (Principle Component Analysis), ICA (Independent Component Analysis)…Tuy nhiên các thuật toán này hầu hết đều được mô phỏng
và chạy trên các phần mềm: Matlab, Visual C++ Ngoài ra để áp dụng thực tế hầu hết các thuật toán này được lập trình và khởi động cùng với một hệ thống máy tính hoặc được cài đặc vào các thiết bị điện thoại khá đắt tiền Với thực tế trên, tác giả chọn đề tài “Thiết kế SoPC cho ứng dụng nhận dạng mặt người dùng phân tích thành phần chính (PCA) và lượng tử hóa vector (VQ)” Tác giả hi vọng với đề tài này sẽ tạo ra được một hệ thống nhận dạng mặt người với tốc độ xử lý nhanh, tích hợp trên một chip duy nhất, giá thành thấp và kết cấu hệ thống đơn giản nhằm có thể áp dụng rộng rãi vào trong thực tiễn
BỐ CỤC LUẬN VĂN
Chương 1: Phần tổng quan
Mục tiêu chính của chương này sẽ giới thiệu một cách tổng quan nhất về bài toán nhận dạng mặt người Qua đó cũng trình bày một số thuật toán nhận dạng mặt người được sử dụng rộng rãi nhất thời gian gần đây
Chương 2: Phân tích thành phần chính
Phần này tập trung giới thiệu các đặc điểm của thuật toán PCA và cách sử dụng thuật toán PCA trong bài toán nhận dạng mặt người
Chương 3: Công cụ SoPC Builder
Giới thiệu công cụ SoPC của hãng Altera trên công nghệ FPGA Chương này
sẽ nêu rõ các đặc điểm của công cụ SoPC Cách khởi tạo và hoạt động một thành phần mới trong hệ thống SoPC
Chương 4: Hệ thống SoPC cho ứng dụng nhận dạng mặt người
Trang 7Trình bày thuật toán nhận dạng mặt người trên phần cứng Mục tiêu chính của chương này sẽ mô tả rõ đặc điểm và cách hoạt động của từng khối thiết kế trong hệ thống nhận dạng mặt người
Chương 5: Kết quả thực nghiệm
Chương này trình bày các kết quả thực nghiệm cho cả phần cứng và phần mềm
Chương 6: Kết luận và hướng phát triển của đề tài
Trang 8CHƯƠNG 1: TỔNG QUAN BÀI TOÁN NHẬN
DẠNG MẶT NGƯỜI
1.1 TỔNG QUAN BÀI TOÁN NHẬN DẠNG MẶT NGƯỜI
Nhận dạng nói chung, nhận dạng mặt người nói riêng là một bài toán đã và đang được nghiên cứu rất rộng rãi Các nghiên cứu đi từ bài toán đơn giản, mỗi ảnh chỉ có một khuôn mặt người nhìn thẳng vào thiết bị thu hình và đầu ở tư thế thẳng đứng trong ảnh trắng đen Cho đến bài toán mở rộng với nhiều trường hợp phức tạp hơn như ảnh màu, nhiều khuôn mặt trong cùng một ảnh, nhiều tư thế thay đổi trong ảnh… Không những thế bài toán còn mở rộng cả phạm vi nghiên cứu: từ môi trường xung quanh khá đơn giản (trong phòng thí nghiệm) cho đến môi trường xung quanh rất phức tạp (như trong thực tế)
1.2 CÁC PHƯƠNG PHÁP NHẬN DẠNG MẶT NGƯỜI
1.2.1 Mô hình Markov ẩn (Hidden Markov Model)
Mô hình Markov ẩn phân loại đặc điểm mặt dựa vào các thuộc tính của chuỗi Markov Một chuỗi các biến ngẫu nhiên được lấy ra dựa vào các giá trị pixel tương ứng tạo ra chuỗi Markov nếu xác suất hệ thống ở trong trạng thái Xn+1 ứng với thời điểm n+1 phụ thuộc vào xác suất hệ thống ở trong trạng thái này ứng với thời điểm
n Trong chuỗi Markov sự chuyển dời từ trạng thái này sang trạng thái khác có thể xảy ra, nhưng kết quả của các kí tự ngõ ra mới là quyết định Mặc khác, trong mô hình Markov ẩn, đặc điểm đối tượng ngõ ra phụ thuộc theo xác suất Do đó, kết quả
là chúng ta có một phân bố xác suất của các đối tượng ngõ ra ở mỗi trạng thái Kết quả này dùng để thực hiện việc so sánh giữa hai khuôn mặt [16]
1.2.2 Support vector Machines (SVM)
Support vector Machines (SVM) thực tế là phương pháp phân loại nhị phân Bằng cách tạo ra các vector hỗ trợ Các vector hỗ trợ bao gồm một tập con nhỏ của các dữ liệu huấn luyện được trích ra bằng thuật toán Mục tiêu của SVM là tìm ra siêu mặt phẳng đặc biệt để có ranh giới phân biệt lớn nhất [16]
Trang 91.2.3 Mạng neural
Mạng neural được sử dụng khá rộng rãi để nhận dạng mặt người bằng cách kết hợp với các phương pháp liệt kê ở trên [16] Kỹ thuật mạng neural là mô phỏng cách thức các neural hoạt động trong não người Điều này được xem như lý do chính cho vai trò của nó trong nhận dạng mặt người Một mạng neural có khả năng hiệu chỉnh các trọng số theo sự sai biệt trong quá trình huấn luyện
1.2.4 Principal Component Analysic (PCA)
PCA sử dụng phương pháp trích đặc trưng từ phép biến đổi Karhunen-Loeve Nguyên tắc của phương pháp PCA là tìm ra một không gian đặc trưng mới với số chiều giảm hơn nhiều so với số chiều ban đầu nhưng vẫn đảm bảo đặc tính của tập
dữ liệu Kết hợp tuyến tính các biến được tạo ra ta được các vector tương ứng hay các thành phần chính Số lượng biến được tạo ra ít hơn số lượng biến trong cơ sở dữ liệu ban đầu Bài toán nhận dạng mặt người sử dụng kỹ thuật này được áp dụng khá rộng rãi và đạt được hiệu quả cao [8] [9] Lý thuyết về ứng dụng của PCA sẽ được trình bày chi tiết ở chương 2
1.2.5 Linear Discriminant Analysis (LDA)
LDA là phương pháp khắc phục được hạn chế của phương pháp PCA là sự giới hạn kích thước của tập dữ liệu bằng việc đưa vào các biệt số tiêu chuẩn [11] LDA cực đại hoá tỷ số phương sai giữa các lớp (between-class) và phương sai trong một lớp (within-class) trong bất kỳ tập dữ liệu nào Vì vậy phương pháp này đảm bảo sự phân tách tối đa
1.2.6 Independent Component Analysis (ICA)
Phân tích thành phần độc lập là trường hợp tổng quát của phân tích thành phần chính [10] Bài toán phân tích thành phần chính dựa vào mối quan hệ giữa những pixel trong tập dữ liệu, những xác suất bậc cao xem như không chứa nhiều thông tin
và được bỏ qua Tuy nhiên, trong bài toán nhận dạng những thông tin quan trọng có thể chứa trong những mối quan hệ xác suất bậc cao của những pixels trong ảnh Để tìm ra không gian nhạy với những xác suất bậc cao, phương pháp ICA đã ra đời ICA trích những thành phần chính của thông tin tối ưu bằng phép biến đổi qua
Trang 10những neural từ hàm sigmoidal
1.3 CÁC BƯỚC THỰC HIỆN BÀI TOÁN NHẬN DẠNG MẶT NGƯỜI
Quá trình nhận dạng chia làm 2 phần [7] như hình 1.1 và hình 1.2 Trong đó: X: tập dữ liệu gồm nhiều tấm ảnh khác nhau của nhiều đối tượng khác nhau Tập ảnh này được sắp xếp lại vào trong một ma trận X với mỗi ảnh tương ứng với một vector cột
Xmean: ảnh trung bình của tập dữ liệu
X%: Ma trận chứa giá trị trừ giữa ảnh trung bình với từng ảnh trong tập dữ liệu X
) ( g mean
X W
) ( ) (
0
2 0 1 0
G
P P d
P P d P P d
Trang 111.4 KHÓ KHĂN VÀ THÁCH THỨC TRONG BÀI TOÁN NHẬN DẠNG MẶT NGƯỜI
Trong quá trình nhận dạng bài toán gặp một số khó khăn sau:
¾ Hướng của khuôn mặt đối với máy ảnh như nhìn thẳng, nhìn nghiêng, hay nhìn từ trên xuống Cùng trong một ảnh có thể có nhiều khuôn mặt ở những
¾ Mặt người bị che khuất bởi các đối tượng khác có trong ảnh
¾ Trục tọa độ của máy ảnh so với ảnh
¾ Kích thước khác nhau của các khuôn mặt người và đặc biệt là trong một ảnh
¾ Màu sắc của môi trường xung quanh hay màu sắc quần áo của người được
chụp lấy ảnh
1.5 ỨNG DỤNG CỦA BÀI TOÁN NHẬN DẠNG MẶT NGƯỜI
Nhận dạng mặt người được áp dụng rất rộng rãi trong đời sống cũng như trong khoa học kỹ thuật Một vài ứng dụng về nhận dạng mặt người được liệt kê như sau:
¾ Hệ thống tương tác giữa người và máy: giúp những người bị tật hoặc khiếm khuyết có thể trao đổi Những người bị khiếm khuyết thông qua một số ký hiệu: nháy mắt, điệu bộ khuôn mặt có thể biểu lộ những gì họ muốn Đó là các bài toán điệu bộ của bàn tay (hand gesture) hoặc điệu bộ khuôn mặt
¾ Nhận dạng người A có phải là tội phạm truy nã hay không, giúp cơ quan an ninh quản lý con người Công việc nhận dạng có thể ở trong môi trường bình thường cũng như trong bóng tối (sử dụng camera hồng ngoại)
¾ Hệ thống quan sát theo dõi và bảo vệ Các hệ thống camera sẽ xác định đâu
là con người và theo dõi con người đó xem họ có vi phạm gì không, ví dụ xâm phạm khu vực nào không được vào
Trang 12CHƯƠNG 2: PHÂN TÍCH THÀNH PHẦN CHÍNH
Phân tích thành phần chính là một kỹ thuật phân tích biến đổi được nghiên cứu khá rộng rãi và biết đến nhiều Thuật toán này lần đầu tiên được giới thiệu bởi Pearson (1901), và được phát triển một cách độc lập bởi Hotelling (1933) [12] Giống như những phương pháp phân tích biến đổi, thuật toán này không được sử dụng rộng rãi cho tới khi kỹ thuật máy tính ra đời Ý tưởng chính của thuật toán phân tích thành phần chính là giảm số chiều của tập dữ liệu có sự tương quan lớn giữa các biến Mặc dù giảm số chiều của biến nhưng vẫn duy trùy sự biến đổi nhiều nhất có thể của tập dữ liệu ban đầu Đặc điểm của những biến mới này là không còn đặc tính tương quan giữa chúng Một đặc điểm khác của các biến là chúng được sắp xếp để một vài biến đầu tiên nhất thể hiện hầu những đặc trưng của tất cả các biến ban đầu Trong PCA độ dư thừa có thể đo được bởi sự tương quan giữa các phần tử
dữ liệu Mối tương quan thực hiện dựa trên cơ sở thống kê bậc 2 Thực chất của PCA là giải quyết bài toán tìm trị riêng và vector riêng cho ma trận đối xứng
2.1 THÀNH PHẦN CHÍNH
Trong phép biến đổi PCA, vector x được đưa về giá trị trung tâm bằng cách trừ với giá trị trung bình của nó Giá trị trung bình được ước lượng từ các mẫu x(1),x(2),x(3),….x(T) Sau khi đã trung tâm hóa các mẫu, x sẽ được biến đổi tuyến tính thành vector y với m hệ số (m<n), vì vậy độ dư thừa được quy vào mối tương quan và sẽ bị loại bỏ Tất cả quá trình trên được thực hiện bằng việc quay hệ thống tọa độ trực giao làm cho các hệ số của x trong hệ tọa độ mới không còn trực giao Cùng lúc đó, sự biến đổi hình chiếu của x lên hệ trục tọa độ mới được cực đại hóa Trục tọa độ thứ nhất (thành phần chính thứ nhất) biểu diễn sự thay đổi lớn nhất, trục thứ 2 (thành phần chính thứ hai) đáp ứng với sự sai khác lớn nhất theo hướng vuông góc với trục thứ nhất, và cứ tiếp diễn như thế
2.2 CHỌN THÀNH PHẦN CHÍNH
Sai số bình phương trung bình sẽ cho chúng ta biết được bao nhiêu tỉ lệ thành phần chính bị loại bỏ Nếu ta chọn m = n khi đó sai số là 0, nhưng lúc này thuật toán
Trang 13PCA không còn ý nghĩa Vấn đề đặc ra là sự thỏa hiệp giữa sai số có thể chấp nhận
và số thành phần chính giữ lại Đã và đang có rất nhiều công trình nghiên cứu để
tìm ra giải pháp tối ưu cho việc giữ lại bao nhiêu thành phần chính [12] Một số
nghiên cứu được nêu ra như:
2.2.1 Phương pháp tích lũy phần trăm trên tổng số biến
Dựa trên tổng số biến có trong tập dữ liệu ban đầu, từ trên kết quả thực nghiệm
tác giả nhận xét và đưa ra công thức cho việc giữ lại bao nhiêu thành phần chính
Trong đó l k: trị riêng thứ k
m: số m thành phần chính đầu tiên
P: p biến trong tập dữ liệu cần trích đặc trưng
s ij : là biến của tập dữ liệu ban đầu
Theo thực tế khảo sát phương pháp này chọn số thành phần chính cần loại bỏ là
khoảng 70% đến 90%
2.2.2 Phương pháp dựa trên kích thước của những biến trong những thành
phần chính
Phương pháp trước được áp dụng cho trường hợp ma trận hiệp biến hoặc ma
trận tương quan Phương pháp này đặt ra được áp dụng đặc biệt cho trường hợp ma
trận tương quan Ý tưởng của quy luật là nếu tất cả các thành phần của tập dữ liệu
đầu là độc lập thì những thành phần chính của chúng có cùng một trục biến đổi và
có sự biến đổi là đơn vị Vì vậy những thành phần chính khác có sự biến đổi nhỏ
hơn 1 sẽ chứa ít thông tin hơn những thành phần ở trục gốc, hay ta hoàn toàn có thể
loại bỏ những thành phần này mà không ảnh hưởng nhiều tới kết quả cuối cùng
Quy luật này còn được gọi là quy luật Kaiser [12] Quy luật chỉ giữ lại những thành
Trang 14phần chính lớn hơn hoặc bằng 1 và loại bỏ những thành phần nhỏ hơn 1
Ngoài ra còn một số phương pháp khác như:
• Dùng giản đồ Scree [12]
• Dựa vào số thành phần với những trị riêng không cân bằng kết hợp với
những giả thuyết theo công thức toán học [12]
• Phương pháp chọn m thành phần chính theo Cross-Validatory [12]
Qua những phân tích bên trên ta đi đến một kết luận là tùy thuộc vào những đối
tượng khảo sát khác nhau khi dùng thuật toán PCA mà dẫn đến việc cần giữ bao
nhiêu thành phần chính cho thích hợp
2.3 CÁC BƯỚC THỰC HIỆN BÀI TOÁN PCA
2.3.1 Chuẩn hóa về kích thước
Để thuận tiện cho quá trình minh họa, ta xét một tập dữ liệu đầu vào 2 chiều
Đặc trưng của tập dữ liệu này là nó có thể cho ta thấy biểu đồ của dữ liệu và cách
thức PCA phân tích dữ liệu tại mỗi bước là rõ ràng nhất [13] Để đảm bảo yêu cầu
trong quá trình xử lý tất cả dữ liệu của tập huấn luyện phải được chuẩn hóa về cùng
một đầu kiện ban đầu
2.3.3 Tạo ma trận hiệp phương sai
Khi dữ liệu đưa vào là hai chiều thì ma trận hiệp phương sai được tạo ra là ma
trận hai chiều Nếu khi dữ liệu đưa vào là n chiều thì ma trận hiệp phương sai được
tạo ra sẽ là n chiều Tất cả các phần tử không nằm trên đường chéo là các đại lương
dương, và với kì vọng là cả hai biến x và y cùng tăng lên Tập hợp một số lượng lớn
các vector là đối tượng chính của PCA Mục đích là tìm trong tập dữ liệu vector
trực giao U m mà nó diễn tả sự phân bố của dữ liệu Vector riêng thứ k của ma trận
Trang 15hiệp phương sai U k sẽ được chọn làm thành phần chính nếu trị riêng λ đạt giá trị k
cực đại:
2 1
1
M T
n
U M
(2.6) A=[Φ Φ1, , ,2 ΦM]
Với ma trận
2.3.4 Tìm các trị riêng và vector riêng tương ứng
Ma trận hiệp phương sai là ma trận vuông, ta có thể tìm được các vector
riêng trương ứng với các trị riêng cho ma trận này dựa vào các bước đã được trình
bày ở phần trên Không gian được tạo nên từ các vector riêng được gọi là không
gian con của tập ảnh huấn luyện
2.3.5 Xác định các thành phần và vector đặc trưng
Đây là giai đoạn nén dữ liệu và làm giảm số chiều của dữ liệu Ta xác định các
vector riêng từ ma trận hiệp phương sai và bước tiếp theo là sắp xếp các trị riêng
theo thứ tự từ lớn đến nhỏ Các vector riêng ứng với các trị riêng lớn nhất được
chọn làm các hành phần chính của dữ liệu, bên cạnh đó ta có thể bỏ qua các thành
phần ít quan trọng của dữ liệu Khi bỏ bớt các thành phần đó ta sẽ làm mất đi thông
tin của dữ liệu, tuy nhiên dữ liệu sẽ bị mất ít nếu như trị riêng có giá trị nhỏ
2.3.6 Hình thành tập dữ liệu
Sau khi đã lựa chọn thành phần là các vector riêng mà ta muốn giữ lại trong dữ
liệu để làm vector đặc trưng, từ đó tạo nên không gian con cho tập dữ liệu, để thu
được tập dữ liệu tại sau khi biến đổi thực hiện phép nhân sau:
FinalData=RowFeatureVector x RowDataAdjust
Vì trong quá trình loại bỏ bớt một số thành phần của tập dữ liệu đã làm mất đi
thông tin của dữ liệu Nếu ta lấy tất cả các vector riêng của dữ liệu thì dữ liệu ban
Trang 16đầu sẽ được lấy lại một cách đầy đủ Dữ liệu ban đầu thu được qua phép biến đổi được cho bởi công thức:
có số chiều, kích thước nhỏ hơn không gian mặt lúc đầu là cho quá trình nhận dạng
Trang 17CHƯƠNG 3: CÔNG CỤ SOPC BUILDER
3.1 KHÁI NIỆM SOPC
System on Programmable chip (SoC) là một ý tưởng về sự tích hợp tất cả mọi thành phần của một hệ thống vào một mạch tích hợp (IC) Mạch này có thể bao gồm cả các chức năng số, tương tự, hoặc cả hai Ứng dụng điển hình cho ý tưởng này là các hệ thống nhúng Các SoC có ưu điểm là giá thành thấp và đơn giản Thiết
bị logic khả trình (PLD: Programmable logic device) là một thiết bị được tạo ra từ các cổng logic, có khả năng lập trình được để tạo các ứng dụng khác nhau Từ ý tưởng trên, thuật ngữ SoPC (system on programmable chip) ra đời Toàn bộ thiết kế
hệ thống sẽ được tạo trên một thiết bị logic khả trình (PLD) Lĩnh vực này thường ứng dụng để thử nghiệm các hệ thống trước khi chế tạo các IC
3.2 SOPC BUILDER
SoPC Builder là một công cụ phần mềm để tạo các hệ thống SoPC của hãng Altera [18] SoPC Builder cung cấp một môi trường đồ họa và chuẩn hóa cho việc tạo ra một thiết kế hệ thống trên chip bao gồm các thành phần như CPU, giao tiếp
bộ nhớ, các thiết bị ngoài chuẩn và cả các thiết bị ngoài do người dùng tự định nghĩa SoPC Builder còn cho phép người dùng tuỳ chọn giao tiếp với các thành phần độc lập của module hệ thống SoPC sẽ kết nối tất cả các thành phần này lại và tạo ra một module hệ thống duy nhất, tự động tạo ra các kết nối cần thiết để nối các thiết bị lại với nhau
3.3 AVALON BUS
Avalon bus là một kiến trúc bus giản đơn, được thiết kế để kết nối các vi xử lý nhúng và các thiết bị ngoại vi trong một hệ thống trên chip khả trình (SoPC) Avalon bus là một giao tiếp mà đặc tả các kết nối cổng giữa các thiết bị master và slave, đồng thời đặc tả thời gian liên lạc giữa các thiết bị
3.3.1 Avalon bus module
Avalon bus module là xương sống của một module hệ thống Đó là con đường chính để giao tiếp giữa các thành phần thiết bị ngoại vi trong một thiết kế