1. Trang chủ
  2. » Luận Văn - Báo Cáo

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)

35 376 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 35
Dung lượng 1,07 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

TRẦ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 2

MỤ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 3

CHƯƠ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 4

5.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 5

GIỚ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 6

9 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 7

Trì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 8

CHƯƠ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 9

1.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 10

nhữ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 11

1.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 12

CHƯƠ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 13

PCA 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 14

phầ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 15

hiệ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 17

CHƯƠ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ế

Ngày đăng: 04/02/2015, 12:46

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Trần Thị Điểm, Tô Đình Thi, Huỳnh Hữu Thuận, “Thực Hiện SoPC Cho Ứng Dụng Nén và Nhận Dạng Dùng Lượng Tử Hóa VecTor”, Hội Nghị Khoa Học Trường Đại Học KHTN lần 6, tháng 11 năm 2008.Tiếng Anh Sách, tạp chí
Tiêu đề: Thực Hiện SoPC Cho Ứng Dụng Nén và Nhận Dạng Dùng Lượng Tử Hóa VecTor
[2] Thuan Huynh, Thuong Cao, Diem Tran, Phuong Nguyen, Anh Dinh , “Designing a hardware accelerator for vector quantization as a component of a SoPC”, CCECE/CCGEI, pp.479-484, May 2008 Sách, tạp chí
Tiêu đề: Designing a hardware accelerator for vector quantization as a component of a SoPC
[3] Diem Tran, Thuong Cao, Thuan Huynh, Phuong Nguyen, “A SoPC for Vector Quantization Application”, Interational Symposium on Electrical-Electronics Engineering, Ton Duc Thang University, pp.26-30, February 2009 Sách, tạp chí
Tiêu đề: A SoPC for Vector Quantization Application
[4] Diem Tran, Thi To, Phu Bui, Phuong Nguyen, “Designing a Harware Accelerator for Vector Quantization and Principal Component Analysis as a Component of SoPC”, Proceedings of the 5 th Vietnamese Japanese Scientific Exchange Conference, pp.159-162, October 2009 Sách, tạp chí
Tiêu đề: Designing a Harware Accelerator for Vector Quantization and Principal Component Analysis as a Component of SoPC
[5] A. Nakada, et al., “A fully Parallel Vector Quantization Processor for Real Time Motion Picture Compression”, IEEE J. Solid State Circuit, vol. 34, pp.822- 829, 1999 Sách, tạp chí
Tiêu đề: A fully Parallel Vector Quantization Processor for Real Time Motion Picture Compression
[6] M. Ishikawa, K. Ogawa, T. Komoro, i. Ishii, “A CMOS Vision Chip with SIMD Processing Element Array for 1ms Image Processing”, IEEE International Solid- State Circuits Conference, pp.206-207, 1999 Sách, tạp chí
Tiêu đề: A CMOS Vision Chip with SIMD Processing Element Array for 1ms Image Processing
[7] Kresimir Delac , Mislav Grgic, Sonja Grgic, “Independent Comparative Study of PCA, ICA, and LDA on the FERET Data Set”, International Journal of Imaging Systems and Technology, vol.15, no. 5, pp.252 – 260, 13 Apr 2006 Sách, tạp chí
Tiêu đề: Independent Comparative Study of PCA, ICA, and LDA on the FERET Data Set
[8] Pentland, B. Moghaddam, T. Starner, “View-Based and Modular Eigenspaces for Face Recognition”, Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, Seattle, Washington, USA, pp.84-91, 21-23 June 1994 Sách, tạp chí
Tiêu đề: View-Based and Modular Eigenspaces for Face Recognition
[9] M.A. Turk, A.P. Pentland, ”Face Recognition Using Eigenfaces”, Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, Maui, Hawaii, USA, pp.586-591, 3-6 June 1991 Sách, tạp chí
Tiêu đề: Face Recognition Using Eigenfaces
Tác giả: M.A. Turk, A.P. Pentland
Nhà XB: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition
Năm: 1991
[10] M.S. Bartlett, J.R. Movellan, T.J. Sejnowski, “Face Recognition by Independent Component Analysis”, IEEE Trans. on Neural Networks, Vol. 13, No Sách, tạp chí
Tiêu đề: Face Recognition by Independent Component Analysis
[11] W. Zhao, R. Chellappa, A. Krishnaswamy, “Discriminant Analysis of Principal Components for Face Recognition”, Proc. of the 3rd IEEE International Conference on Face and Gesture Recognition, FG'98, Nara, Japan, pp.336-341, 14-16 April 1998 Sách, tạp chí
Tiêu đề: Discriminant Analysis of Principal Components for Face Recognition
Tác giả: W. Zhao, R. Chellappa, A. Krishnaswamy
Nhà XB: Proc. of the 3rd IEEE International Conference on Face and Gesture Recognition
Năm: 1998
[12] I.T. Jolliffe, “Principal Component Analysis”, 2nd edition, Springer, chapter 6, pp.111-147, October 1, 2002 Sách, tạp chí
Tiêu đề: Principal Component Analysis
[13] Lindsay Ismith, “A Tutorial on Principal Components Analysis” February 26, 2002 Sách, tạp chí
Tiêu đề: A Tutorial on Principal Components Analysis
[14] William T. Vetterling, Brian P. Flannery, “Numerical Recipes in C++: The Art of Scientific Computing”, Chapter 11, pp.463-493, Cambridge University, Oct 7, 2009 Sách, tạp chí
Tiêu đề: Numerical Recipes in C++: The Art of Scientific Computing
[15] N. Kambhatla and T.K. Leen, “Dimension Reduction by Local PCA”, Chapter 7, pp.1493-1516, 1997 Sách, tạp chí
Tiêu đề: Dimension Reduction by Local PCA
[18] Altera Corporation (2009), SOPC Builder volume, URT: http://www.altera.com/literature/lit-sop.jsp Sách, tạp chí
Tiêu đề: SOPC Builder
Tác giả: Altera Corporation
Năm: 2009
[17] Altera Corporation (8/2006), Stratix EP2S180 DSP Deverlopment Board, URL: http://www.altera.com/products/devkits/altera/kit-dsp-2S180.html Link

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Quá trình huấn luyện [7] - 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)
Hình 1.1 Quá trình huấn luyện [7] (Trang 10)
Hình 4.1: Thuật toán phần cứng cho hệ thống nhận dạng mặt ngườ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)
Hình 4.1 Thuật toán phần cứng cho hệ thống nhận dạng mặt người (Trang 19)
Hình 4.2: Sơ đồ tổng quát cho thuật toán Jacobi - 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)
Hình 4.2 Sơ đồ tổng quát cho thuật toán Jacobi (Trang 21)
Hình 4.3: SoPC cho ưng dụng nhận dạng mặt người  Toàn bộ hệ thống được tính hợp trên một chip duy nhất - 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)
Hình 4.3 SoPC cho ưng dụng nhận dạng mặt người Toàn bộ hệ thống được tính hợp trên một chip duy nhất (Trang 23)
Hình 4.4: Sơ đồ khối tính trung bình  4.2.1.2.  Khối tìm độ dư thừa của từng ảnh mẫu - 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)
Hình 4.4 Sơ đồ khối tính trung bình 4.2.1.2. Khối tìm độ dư thừa của từng ảnh mẫu (Trang 24)
Hình 4.6: Sơ đồ khối bộ nhân  4.2.2. Mạch tính khoảng cách Euclide và tìm vị trí trung khớp nhất - 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)
Hình 4.6 Sơ đồ khối bộ nhân 4.2.2. Mạch tính khoảng cách Euclide và tìm vị trí trung khớp nhất (Trang 25)
Hình 4.7: Sơ đồ mạch khối thiết kế vector quantization - 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)
Hình 4.7 Sơ đồ mạch khối thiết kế vector quantization (Trang 25)
Bảng 5.1: Kết quả nhận dạng qua các tập dữ liệu khác nhau - 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)
Bảng 5.1 Kết quả nhận dạng qua các tập dữ liệu khác nhau (Trang 27)
Hình 5.1: Kết quả thực nghiệm trên phần cứng cho trường hợp 1 - 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)
Hình 5.1 Kết quả thực nghiệm trên phần cứng cho trường hợp 1 (Trang 28)
Hình 5.3: Kết quả thời gian thực hiện trên phần mềm của các bộ gia tốc PCA - 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)
Hình 5.3 Kết quả thời gian thực hiện trên phần mềm của các bộ gia tốc PCA (Trang 30)
Hình 5.4:  Kết quả thời gian thực hiện trên phần cứng của các bộ gia tốc PCA - 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)
Hình 5.4 Kết quả thời gian thực hiện trên phần cứng của các bộ gia tốc PCA (Trang 30)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w