NHẬN DẠNG KHUÔN MẶT XỬ LÝ SONG SONG VÀ PHÂN TÁN MAPREDUcE

NHẬN DẠNG KHUÔN MẶT XỬ LÝ SONG SONG VÀ PHÂN TÁN MAPREDUCE

Các phương pháp nhận dạng khuôn mặt đang được ứng dụng rất rộng rãi và đem lại các lợi ích to lớn cho người sử dụng trong các hệ thống xác thực: kiểm soát ra vào, máy chấm công ,kiểm soát thang máy, bảo mật, giám sát tội phạm,...

Bên cạnh độ chính xác, các phương pháp nhận dạng khuôn mặt truyền thống phải đối mặt với vấn đề đó là tiêu tốn nhiều thời gian để nhận dạng, khả năng tính toán lớn và có thể áp dụng cho các hệ thống phân tán với môi trường dữ liệu lớn đang phát triển hiện nay để xử lý và phân tích dữ liệu một cách hiệu quả.

Để giải quyết vấn đề này, chúng tôi đề xuất một phương pháp rút trích đặc trưng khuôn mặt bằng cách sử dụng kỹ thuật Gabor wavelet và mô hình xử lý song song MapReduce ở giai đoạn huấn luyện và nhận dạng nhằm cải thiện thời gian đáp ứng của hệ thống.

Dữ liệu của chúng tôi được tổ chức và lưu trữ trên hệ thống tập tin phân tán HDFS (Hadoop Distributed File System) nhằm tận dụng khả năng chịu lỗi và hiệu suất truy cập cao.

Các thí nghiệm cho thấy phương pháp đề xuất cải thiện đáng kể hiệu quả về mặt thời gian và độ chính xác nhận dạng khuôn mặt.

I. CÁC CÔNG VIỆC LIÊN QUAN


1. Phép biến đổi Gabor Wavelet


1.1. Tổng quan về phép biến đổi Gabor wavelet

Phép biến đổi Gabor

Phép biến đổi Gabor 2


         a) Phần thực của bộ lọc                              b) Phần biên độ chính của bộ lọc

Hình minh họa một họ của Gabor wavelet với 5 tỉ lệ và 8 hướng

Hình 1. Hình minh họa một họ của Gabor wavelet với 5 tỉ lệ và 8 hướng

1.2. Biểu diễn hình ảnh sử dụng bộ lọc Gabor wavelet

Biểu diễn hình ảnh sử dụng bộ lọc Gabor wavelet

Giả sử chúng ta có ảnh khuôn mặt đầu vào như hình 2.

Ảnh khuôn mặt

Hình 2. Ảnh khuôn mặt

Sau khi áp bộ lọc Gabor lên ảnh thì phần đáp ứng về biên độ được biểu diễn như hình 3

Phần biên độ của bộ lọc Gabor

Hình 3. Phần biên độ của bộ lọc Gabor

2. Spark và hệ thống tập tin phân tán HDFS (Hadoop Distributed File System)

Apache Spark được phát triển vào năm 2009 bởi AMPLab tại đại học California. Spark cung cấp mô hình thực thi cho phép tính toán trên cụm nhằm làm tăng khả năng tính toán.

Bên cạnh đó, Spark hỗ trợ tính toán tại bộ nhớ trong giúp truy xuất dữ liệu nhanh hơn bộ nhớ ngoài. Trong một số kết quả thực nghiệm cho thấy Spark có thể chạy nhanh gấp 10 đến 100 lần so với Hadoop [8,9].

Spark Core trong cấu trúc các tầng của Spark là một thành phần của Spark:cung cấp những chức năng cơ bản nhất của Spark như lập lịch cho các tác vụ, quản lý bộ nhớ, phục hồi lỗi, tương tác với các hệ thống lưu trữ…

Đặc biệt, Spark Core cung cấp API để định nghĩa RDD (Resilient Distributed DataSet) là tập hợp của các thành phần được phân tán trên các nút (node) của cụm được xử lý một cách song song.

Trong nghiên cứu này, chúng tôi thực hiện các công việc rút trích đặc trưng, phân loại theo mô hình MapReduce trong môi trường Spark.

Hadoop là nền tảng hỗ trợ việc ứng dụng công nghệ thông tin xử lý phân tán các tập dữ liệu lớn trên các cụm máy tính.

Hadoop cung cấp hệ thống file phân tán (HDFS) và hỗ trợ mô hình MapReduce cho phép các ứng dụng làm việc với nhiều nút với hàng petabyte dữ liệu. Một cụm máy tính cài đặt hệ thống HDFS có hai loại nút:

Nút tên (NameNode), hay còn gọi là nút chủ (master), và nút dữ liệu (DataNodes), hay còn gọi là nút tớ (worker). NameNode quản lý không gian tên hệ thống tập tin.

Nó duy trì cây hệ thống tập tin và siêu dữ liệu cho tất cả các tập tin và thư mục trong cây. NameNode nhận biết các DataNode mà trên đó tất cả các khối cho một tập tin được đặt phân tán.

Các DataNode lưu trữ và lấy khối khi nó được gọi (bởi người dùng hoặc từ nút chủ).


3. Mô hình MapReduce

MapReduce là một trong những thành phần chính của Hadoop, đây là mô hình lập trình có khả năng mở rộng một cách tuyến tính.

Nó thực thi dựa trên một cụm các máy tính gọi là cluster, công việc thực thi sẽ được chia thành hai giai đoạn: giai đoạn Map và giai đoạn Reduce.

Hình 2 biểu diển mô hình xử lý song song và phân tán MapReduce.


Trong giai đoạn Map, dữ liệu đầu vào được chia thành các thành phần nhỏ, và các thành phần này sẽ được xử lý song song và phân tán bởi các tiến trình Map. Mỗi phần sẽ được xử lý bởi một tiến trình Map.

Một khi dữ liệu được xử lý,đầu ra của nó sẽ là các cặp {khóa, giá trị}, dữ liệu này sau đó sẽ được chuyển cho tiến trình Reduce.

Hadoop sắp xếp đầu ra của tiến trình Map theo khóa. Mỗi tiến trình Reduce nhận danh sách các giá trị liên quan đến khóa, đầu ra sẽ được lưu vào hệ thống lưu trữ file phân tán của Hadoop.

Tiến trình Reduce sẽ không thể bắt đầu cho tới khi tiến trình Map hoàn thành.

Mô hình MapReduce

Hình 2. Mô hình MapReduce

4. Phương pháp máy học K - láng giềng gần nhất (KNN)

K - láng giềng gần nhất là phương pháp được sử dụng đề phân lớp dữ liệu. Nó là thuật toán học có giám sát, kết quả của truy vấn được phân lớp dựa trên luật số đông. Thuật toán K-láng giềng gần nhất được sử dụng đề phân lớp các đối tượng mới dựa trên các thuộc tính và các mẫu huấn luyện.

Việc phân lớp không sử dụng bất kỳ mô hình hiệu chỉnh nào. Với một truy vấn, chúng ta tìm K đối tượng (hay điểm huấn luyện) gần nhất đề thực hiện truy vấn.

Sau đây là ý tưởng của phương pháp máy học dựa trên K- láng giềng gần nhất:


- Đối với một tập hợp các mẫu huấn luyện: Lưu lại tất các các mẫu huấn luyện và xây dựng một mô hình phân lớp như được biểu diễn trong hình 3.

Phân lớp với K-láng giềng gần nhất

Hình 3. Phân lớp với K-láng giềng gần nhất

- Đối với mẫu cần phân lớp / dự đoán: xem xét mối quan hệ giữa mẫu đó với các mẫu huấn luyện để gán giá trị cho hàm mục tiêu (nhãn hoặc một giá trị số).

Phương pháp này làm việc tốt đối với việc phân lớp đa lớp và khả năng chịu nhiễu cao, quá trình huấn luyện có chi phí thấp.

Tuy nhiên, chúng ta phải chọn giá trị tham số K và hàm độ đo tương đồng phù hợp giữa các mẫu. Ngoài ra, nó có thể sẽ phân lớp sai với các thuộc tính không liên quan.

Các phương pháp tính khoảng cách hoặc độ tương tự khi sử dụng KNN:

* Khoảng cách city block Khoảng cách city block cũng được biết đến với các tên gọi khác như: khoảng các Manhattan, khoảng cách Boxcar. Công thức xác định khoảng cách của hai điểm p = (p1, p2,..., pn) và q = (q1, q2,..., qn) được xác định như sau:

công thức 1* Khoảng cách Euclide

Giả sử p = (p1, p2,..., pn) và q = (q1, q2,..., qn) là hai điểm trong không gian n chiều, khi đó khoảng cách từ p đến q được tính toán theo công thức sau: 

công thức 2

* Độ đo tương tự Cosine

Độ đo cosine được sử dụng để tính toán sự tương tự giữa các vector. Cho hai vector A và B độ đo tương tự của hai vector được tính toán theo công thức sau:

công thức 3

Trong đó A B i i , lần lượt là các phần tử của vector A, B tương ứng

II. PHƯƠNG PHÁP NHẬN DẠNG KHUÔN MẶT ĐỀ XUẤT

Trong bài viết này, chúng tôi xây dựng một hệ thống nhận dạng khuôn mặt sử dụng phép biến đổi Gabor wavelet và mô hình tính toán song song MapReduce.

Phương pháp đề xuất gồm hai giai đoạn huấn luyện và nhận dạng được biểu diễn trong hình 4. Đầu tiên ở giai đoạn huấn luyện, chúng tôi sử dụng bộ lọc Gabor để trích xuất đặc trưng của khuôn mặt.

Dữ liệu đặc trưng được trích xuất lưu trữ trên hệ thống tâp tin phân tán HDFS. Ở giai đoạn nhận dạng,chúng tôi sử dụng giải thuật K-láng giềng gần nhất để dự đoán nhãn và đưa ra kết quả nhận dạng.

Quá trình này được thực hiện theo cơ chế MapReduce nhằm cải thiện tốc độ tính toán.
Vấn đề cơ bản của nhận dạng khuôn mặt đó là việc sử dụng bộ lọc Gabor để trích xuất các điểm đặc trưng.

Thay vì sử dụng lược đồ các điểm đặc trưng trên khuôn mặt, các điểm năng lượng cao sẽ được sử dụng để so sánh các khuôn mặt, điều này không chỉ giúp giảm khối lượng tính toán mà còn tăng độ chính xác của giải thuật do không cần nhận dạng các điểm đặc trưng thủ công.

Mô hình hệ thống nhận dạng khuôn mặt

Hình 4. Mô hình hệ thống nhận dạng khuôn mặt

2.1. Giai đoạn huấn luyện


Ở giai đoạn huấn luyện, từ tập hợp các ảnh huấn luyện, chúng tôi thực hiện trích xuất đặc trưng của khuôn mặt và lưu trữ vào cơ sở dữ liệu bằng phép biến đổi Gabor wavelet.

Giải thuật trích xuất đặc trưng gồm 2 bước chính (Hình 5):


- Bước 1: Xác định vector đặc trưng bằng phép biến đổi Gabor wavelet.
- Bước 2: Lưu trữ vector đặc trưng trên hệ thống tập tin HDFS

Mô hình huấn luyện ảnh với MapReduce

Hình 5. Mô hình huấn luyện ảnh với MapReduce

Quá trình huấn luyện ảnh khuôn mặt được thực hiện như hình 5. Từ tập hợp các ảnh đầu vào, chúng được chia thành các tập ảnh con và sẽ trích xuất đặc trưng của mỗi ảnh theo cơ chế MapReduce.

Mỗi ảnh sẽ được trích xuất đặc trưng bởi một tiến trình Map. Dữ liệu đầu ra của tiến trình Map là các vector đặc trưng ảnh.

Sau đó, ở tiến trình Reduce, các vector đặc trưng này được sắp xếp và tập hợp lại tạo thành các vector đặc trưng của mỗi ảnh khuôn mặt đồng thời được lưu trữ vào hệ thống tập tin phân tán HDFS.

2.2. Giai đoạn nhận dạng

Từ cơ dữ dữ liệu của các vector đặc trưng của ảnh huấn luyện, chúng tôi thực nhiện việc nhận dạng bằng phương pháp máy học K-láng giềng gần nhất.

Ý tưởng chính là trích xuất đặc trưng của ảnh cần nhận dạng và sau đó sử dụng mô hình K-láng giềng gần nhất đề phân lớp.

Mô đun nhận dạng ảnh

Hình 6. Mô đun nhận dạng ảnh

Quá trình huấn luyện ảnh được minh họa như hình 6. Từ cơ sở dữ liệu chứa các đặc trưng của ảnh huấn luyện và đặc trưng của ảnh kiểm tra, chúng tôi thực hiện Map vector đặc trưng của ảnh cần kiểm tra nhận dạng vào cơ sở dữ liệu chứa các vector đặc trưng đã huấn luyện. Kết quả của giai đoạn này sẽ là đầu vào của tiến trình Reduce.

Giai đoạn Reduce sẽ sắp xếp các vector đặc trưng và kết hợp chúng lại với nhau dựa trên nhãn khóa để cập nhật lại giá trị mới tương ứng khóa này.

Dựa trên phương pháp KNN, hệ thống đưa ra quyết định nhãn gần nhất với ảnh kiểm tra và hiển thị kết quả nhận dạng khuôn mặt.

III. KẾT QUẢ NGHIÊN CỨU

Trong bài viết này chúng tôi tiến hành thực nghiệm hệ thống trên hai tập cơ sỡ dữ liệu ảnh khuôn mặt AT&T (của AT&T Laboratories Cambridge) và Yale (của UCSD Computer Vision). Cơ sở dữ liệu ảnh AT&T gồm có 40 đối tượng, mỗi đối tượng có 10 ảnh khuôn mặt trạng thái khác nhau.

Ảnh được chụp và thời gian khác nhau, có sự thay đổi ánh sáng, biểu cảm của khuôn mặt (mở mắt, nhắm mắt, cười, ngạc nhiên,…). Kích thước ảnh là 92 x 112 pixel. Tất cả ảnh được chụp ngược sáng, nền ảnh đồng nhất.

Cơ sở dữ liệu ảnh Yale: gồm 165 ảnh xám định dạng GIF của 15 đối tượng, mỗi đối tượng có 11 ảnh khuôn mặt. Các ảnh được chụp với các trạng thái và đặc điểm khác nhau: cười, vui vẻ,có kính, không kính, nháy mắt,…

Kích thước ảnh là 20x243 pixel. Quá trình nhận dạng khuôn mặt được thực hiện như mô tả ở giai đoạn nhận dạng (hình 6).

Chúng tôi chọn số ảnh huấn luyện và kiểm tra theo tỷ lệ 3:1. Số node sử dụng là 3, trong đó 1 node cho master quản lý tiến trình và 2 node cho slaver thực thi rút trích đặc trưng và nhận dạng.

Sau đây là kết quả thực nghiệm với độ chính xác được trình bày trong Bảng 1 và thời gian thực hiện biểu diễn trong Bảng 2.


Để đánh giá so sánh về độ chính xác chúng tôi sử dụng 2 phương pháp đó là igenfaces và Gabor wavelet.

Bảng 1. Độ chính xác nhận dạng khi sử dụng phương pháp Eigenfaces kết hợp với KNN

bảng 1

Nhìn vào kết quả của bảng 1 ta thấy rằng, khi sử dụng phương pháp tính khoảng cách city block trong KNN để nhận dạng khuôn mặt thì tỷ lệ Eigenvector tối ưu được giữ lại để tạo cơ sở dữ liệu nhận dạng ảnh là khoảng 20%.

Bởi vì khi tăng số lượng Eigenvector lên thì tỷ lệ nhận dạng không tăng mà còn giảm, lý do là khi tăng số lượng Eigenvector thì cũng chính là tăng số lượng thông tin trên ảnh cần giữ lại.

Việc giữ lại quá nhiều thông tin như vậy có thể sẽ kèm theo các thông tin nhiễu nên sẽ làm ảnh hưởng đến kết quả nhận dạng.

Đối với phương pháp tính khoảng cách Euclide trong KNN ta thấy rằng không thích hợp với bài toán nhận dạng khuôn mặt theo phương pháp Eigenfaces vì tỷ lệ nhận dạng không cao.

Ở bảng 1 cũng cho thấy thấy rằng kết quả nhận dạng của tập dữ liệu AT&T cao hơn Yale. Lý do là giữa các ảnh khuôn mặt trong tập dữ liệu Yale có sự biến đổi rất lớn về ánh sáng, biểu cảm, phông nền,… so với các ảnh trong cơ sở dữ liệu AT&T.

Nhìn vào bảng 2 ta thấy rằng kích thước cửa sổ chập tối ưu là khoảng 10 x 10. Tham số này rất quan trọng trong việc trích đặc trưng ảnh. Chúng ta cần chọn kích thước cửa sổ đủ nhỏ để thu được những đặc điểm quan trọng và đủ lớn để tránh phần dư thừa.

Trong nghiên cứu này, chúng tôi sử dụng độ đo tượng tự correlation hoặc cosine đều cho kết quả nhận dạng tương đối giống nhau.

Bảng 2 cũng cho ta thấy rằng khi thực hiện nhận dạng khuôn mặt sử dụng kỹ thuật Gabor wavelet thì kết quả nhận dạng tương đối cao và ít bị ảnh hưởng bởi nhiễu thông tin (cả 2 tập dữ liệu đều cho kết quả nhận dạng tương đương nhau trong khi hai cơ sở dữ liệu có sự khác biệt rất lớn giữa các ảnh như: biểu cảm, độ chiếu sáng, phông nền,…)

Bảng 2. Độ chính xác nhận dạng khi sử dụng phương pháp Gabor wavelet kết hợp với KNN

bảng 2

Bảng 3. Thời gian thực hiện

Thời gian thực hiện

Từ kết quả thực nghiệm ta thấy: Độ chính xác của phương pháp đề xuất là như nhau với tập dữ liệu huấn luyện được lưu trữ cục bộ trên một máy tính và được lưu trữ trên hệ thống tập tin phân tán HDFS với 3 node thực nghiệm sử dụng mô hình MapReduce.

Tuy nhiên, nếu tập dữ liệu được lưu trữ trên hệ thống tập tin phân tán HDFS và phương pháp đề xuất sử dụng mô hình MapReduce thì thời gian tính toán được cải thiện nhanh hơn so với phương pháp không sử dụng mô hình MapReduce.

IV. KẾT LUẬN

Nhận dạng khuôn mặt là một lĩnh vực hấp dẫn đối với việc nghiên cứu trên máy tính. Các hệ thống xác thực hiện nay như: điện thoại thông minh, rút tiền tự động, chấm công,… đang ngày càng gia tăng ứng dụng nhận dạng

Khuôn mặt nhằm đảm bảo tính an toàn và bảo mật thông tin. Bên cạnh đó, con người có khả năng nhận ra một khuôn mặt quen thuộc một cách dễ dàng.

Tuy nhiên, khả năng nhớ của con người là có giới hạn. Việc nghiên cứu mô phỏng khả năng nhận dạng của bộ não con người đối với việc nhận dạng khuôn mặt dựa trên máy tính là rất cần thiết.

Trong bài viết này chúng tôi đã xây dựng một hệ thống nhận dạng khuôn mặt sử dụng bộ lọc Gabor để rút trích đặc trưng và KNN để thực hiện nhận dạng khuôn mặt. Quá trình thực hiện trích xuất đặc trưng và nhận dạng được thực hiện với mô hình MapReduce.

Độ chính xác nhận dạng trung bình là 91%. Phương pháp đề xuất cải tiến hiệu quả về mặt thời gian tính toán đồng thời giải quyết hiệu quả bài toán về khả năng hạn chế về tài nguyên của máy tính như bộ nhớ, khả năng xử lý, phù hợp cho các hệ thống làm việc trong môi trường dữ liệu lớn./.

Phan Anh Cang, Lê Hoàng Son, Phan Thượng Cang

=============================

DaiHanCorp Viet Nam
Nhà Cung Cấp Giải Pháp Chuyên Nghiệp

 

Tin tức liên quan