Tải bản đầy đủ (.pdf) (7 trang)

Xây dựng công cụ nhận dạng khuôn mặt theo thời gian thực hiện trên nền hệ điều hành mã nguồn mỡ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (320.24 KB, 7 trang )

Nghiên cứu khoa học công nghệ

Xây dựng công cụ nhận Dạng khuôn mặt
theo thời gian thực trên nền hệ điều hành
mã nguồn mở
Nguyễn Bá Đại*, Dương Quốc Dũng**

Tóm tt: Bài báo trình bày kết quả nghiên cứu xây dựng phần mềm nhận diện
khuôn mặt theo thời gian thực trên hệ điều hành mã nguồn mở áp dụng phương
pháp trích rút các thành phần chính ma trận đặc trưng, đặc tính màu của ảnh.
Phần mềm được thử nghiệm trên kít phát triển Pandaboard của hãng Texas
Instrument sử dụng chip 02 lõi ARM-Cotex A9 với hệ điều hành Linux. Kết quả thử
nghiệm ban đầu cho thấy công cụ đã làm việc khá hiệu quả và có khả năng áp dụng
vào thực tiễn trên nhiều lĩnh vực.
Từ khóa: Thị giác máy, Xử lý ảnh, Nhận dạng đối tượng, Mã nguồn mở, Nhận dạng mặt, PCA.

1. đặt vấn đề

Khuôn mặt người đóng vai trò quan trọng trong các tương tác xã hội của chúng
ta, cho phép chúng ta nhận dạng được người này với người khác. Việc nhận dạng
đối tượng dựa vào khuôn mặt nhận được sự quan tâm đáng kể trong những năm gần
đây do tiềm năng của nó cho hàng loạt các ứng dụng trong điều khiển robot, trong
các ứng dụng an ninh như xuất nhập cảnh, quản lý tòa nhà, quản lý các ca kíp làm
việc trong các phân xưởng, nhận dạng và truy bắt tội phạm Nhận dạng mặt người
(Face Recognition) là một lĩnh vực nghiên cứu của ngành thị giác máy (Computer
Vision) và có liện hệ mật thiết với các nghiên cứu của ngành sinh trắc học. Nó có
nhiều điểm tương tự với các nghiên cứu nhận diện mống mắt hay nhận dạng vân
tay mà các nghiên cứu đã đạt đến sự chín muồi. Tuy nhiên nhận khuôn mặt vẫn còn
là một vấn đề phức tạp, khoa học đang gặp nhiều khó khăn khi giải quyết nó đặc
biệt là bài toán xây dựng hệ thống làm việc theo thời gian thực do các giới hạn về
tốc độ, bộ nhớ lưu trữ đối với các Board hoạt động độc lập.


Hệ thống nhận dạng khuôn mặt thời gian thực là hệ thống nhận dạng khuôn mặt
từ những hình ảnh video mà được cung cấp bởi camera. Như vậy, hệ thống này sử
dụng cùng lúc hai kỹ thuật đó là kỹ thuật nhận diện khuôn mặt và kỹ thuật nhận
dạng, phân lớp đối tượng.
Ngày nay, các hệ thống nhúng phát triển mạnh mẽ và được ứng dụng rất rộng rãi
trong các hệ thống kỹ thuật cũng như các thiết bị cầm tay. Hệ thống nhúng với hệ
điều hành đóng vai trò quan trọng trong quá trình phát triển đó. Có rất nhiều các hệ
điều hành nhúng được ra đời như các hệ điều hành Windows CE, VxWorks (Wind
River Systems), Windows NT, QNX RTOS và Linux.
Trong những hệ điều hành trên, hệ điều hành mã nguồn mở Linux được đặc biệt
quan tâm vì sức mạnh cũng như tài nguyên to lớn của nó cho việc phát triển các hệ
thống nhúng với CPU đa lõi. Một thực tế không thể phủ nhận là Linux hay nói
chung các dòng hệ điều hành phát triển từ Unix là tốc độ xử lý nhanh hơn hẳn các
Window bởi lý do Linux đạt được hiệu quả cao trong việc quản lý và sử dụng tài
nguyên hệ thống. Ngoài ra nó là hệ điều hành miễn phí với mã nguồn mở, cho phép

Tạp chí Nghiên cứu KH&CN Quân sự, Số 29, 02 - 2014

53


Kỹ thuật điện tử & Khoa học máy tính

người dùng can thiệp sâu, tối ưu hóa các phép toán để tăng khả năng tính toán, đáp
ứng yêu cầu thời gian thực trong một số bài toán.
Mục tiêu của đề tài là nghiên cứu xây dựng công cụ nhận dạng mặt trên các thiết
bị có tốc độ xử lý cũng như tài nguyên hữu hạn để áp dụng cho các bài toán thực
tiễn cụ thể làm việc theo thời gian thực, ví dụ như các bộ chấm công cho nhân viên
công ty, nhà máy; thiết bị giám sát vào ra cho các đơn vị có tính an ninh, bảo mật
cao...Thiết bị phải đảm bảo gọn nhẹ, hoạt động ổn định và nhận diện được các đối

tượng đang di chuyển ở tốc độ của người đi bộ bình thường. Trong phạm vi bài báo,
tác giả nghiên cứu ứng dụng các kỹ thuật nhận diện đối tượng, phương pháp sử
dụng khuôn mặt đặc trưng (Eigenfaces) kết hợp với phương pháp so sánh tương
quan để so khớp và nhận dạng đối tượng. Trong đó, tác giả tập trung nghiên cứu
khả năng ứng dụng của phương pháp mặt đặc trưng (Eigenfaces) cho bài toán xây
dựng bộ đặc trưng nhận dạng mặt, đồng thời xem xét các thông số ảnh hưởng đến
thời gian tính tính toán, ước lượng để đưa ra bộ thông số ảnh đầu vào đảm bảo tốc
độ tính toán đáp ứng yêu cầu bài toán thời gian thực trên board nhúng. Từ các
thông số thu được, tác giả đã tiến hành thử nghiệm trên kít phát triển Pandaboard
của hãng Texas Instrument sử dụng chip 02 lõi ARM-Cotex A9 với hệ điều hành
Linux và thu được kết quả khả quan.
2. nội dung giải quyết

2.1. Lựa chọn phương pháp
Như đã nói ở trên, để giải quyết bài toán nhận dạng mặt người theo thời gian
thực, cần giải quyết các vấn đề về nhận diện khuôn mặt và nhận dạng, phân lớp đối
tượng.
Để giải quyết bài toán nhận dạng khuôn mặt người, hiện tại có hai hướng chính
được sử dụng là:
Nhận dạng dựa trên các đặc trưng của các phần tử trên khuôn mặt (Feature
Based Face Fecognition). Khi đó, các chi tiết trên khuôn mặt (như vị trí, diện tích,
hình dạng của mắt, mũi, miệng) và mối quan hệ hình học giữa chúng (như khoảng
cách của hai mắt, khoảng cách hai lông mày, tương quan giữa các bộ phận ) được
sử dụng làm đặc trưng cho bài toán so khớp đối tượng ở giai đoạn tiếp theo. Phương
pháp này có ưu điểm là gần với cách con người sử dụng để nhận biết khuôn mặt,
ngoài ra phương pháp này loại bỏ được các sai số trong các trường hợp như ảnh bị
nghiêng hay nhiễu do điều kiện ánh sáng. Tuy nhiên nhược điểm lớn nhấtcủa
phương pháp này là thuật toán khá phức tạp, khối lượng tính toán lớn và kết quả xử
lý thấp đối với các đối tượng ở khoảng cách xa.
Nhận dạng dựa trên tổng thể khuôn mặt (Appearance Based Face Recognition).

Lúc này quá trình nhận dạng không đi xét các chi tiết trên khuôn mặt nữa, mà
chúng ta xem khuôn mặt là một vector trong không gian nhiều chiều từ đó có thể
đánh giá tương quan của các đối tượng thông qua đánh giá vị trí tương quan của
các vector. Tuy nhiên việc sử dụng tất cả các dữ liệu trong ảnh để dùng cho bài
toán nhận dạng, phân lớp là không cần thiết, đặc biệt đối với nhóm dữ liệu có cùng
chiều hướng biến đổi như mặt người, nên phương pháp phân tích thành phần chính
được đề xuất và được sử dụng phổ biến cho lớp bài toán này. Ưu điểm của phương
pháp phân tích thành phần chính (Principal Companent Analysis PCA) được tác
Herve Abdi và Lynne J.William tổng hợp trong nghiên cứu của mình [1] là có thể
loại bỏ một số chiều của không gian dữ liệu mà vẫn duy trì sự biến đổi nhiều nhất
54

N.B. Đại, D.Q. Dũng , Xây dựng công cụ nhận dạng khuụn mặt... mó ngun m


Nghiên cứu khoa học công nghệ

của tập hợp các vector dữ liệu ban đầu. Từ đó, Matthew A. Turk và Alex P.
Pentland đã phát triển phương pháp nhận dạng mặt sử dụng khuôn mặt đặc
trưng[2], là phương pháp cụ thể cho bài toán nhận dạng mặt mà tác giả sử dụng cho
việc xây dựng công cụ. Khi đó, bài toán sẽ được giải quyết qua các bước chính như
sau:
1. Khởi tạo: tính toán khuôn mặt đặc trưng từ tập ảnh dữ liệu đầu vào và xây
dựng không gian đặc trưng nhiều chiều mới cho bộ ảnh đặc trưng.
2. Đối với ảnh cần nhận dạng, thực hiện việc biểu diễn trên không gian đặc
trưng, tính toán độ tương quan với các vector của tập dữ liệu.
3. Đánh giá độ tương quan để truy xuất kết quả.
2.2. Các bước tiến hành
Xây dựng không gian đặc trưng cho tập ảnh dữ liệu
Giả sử các ảnh mặt I(x,y) biểu diễn thành các mảng giá trị cường độ sáng hai

chiều có kích thước lần lượt là W và H, nếu biểu diễn thành dạng vector trong
không gian, thì kích thước của vector hay nói cách khác chiều của không gian sẽ là
WH. Ví dụ, nếu ảnh dữ liệu có dạng hình vuông kích thước 256, thì số chiều của
không gian để biểu diễn ảnh trên đó sẽ là 65,536.
Nếu tập ảnh đầu vào của chúng ta gồm m phần tử, mỗi phần tử được biểu diễn ở
dạng vector cột Xi, khi đó ta có giá trị trung bình các ảnh mặt sẽ là:
1 m
X Xi
(1)
m i 1
Sai khác giữa các mặt với giá trị trung bình được tính theo công tức:
(2)
i X i X
Từ đó, tập hợp các giá trị sai khác của tập ảnh dữ liệu so với giá trị trung bình
tạo thành ma trận A có dạng:
A 1 2 ... m
(3)
Từ đây xây dựng ma trận hiệp phương sai. đây ta sử dụng một thủ thuật của
Mathew A.Turk và Alex P.Pentland [2] là đảo chiều nhân ma trận làm giảm đáng
kể số chiều của ma trận để tìm các vector và giá trị riêng dễ dàng hơn mà vẫn hiệu
quả tốt là : C AT * A trong đó AT là ma trận chuyển vị của ma trận dữ liệu đầu
vào A, C là ma trận hiệp phương sai. Khi đó các giá trị riêng xác định được chỉ còn
là 1 2 ... m 0 , vector riêng a1 ,..., am ,thực hiện đánh giá và lựa chọn số
trị riêng và vector riêng làm cơ sở trực chuẩn cho không gian mới. Gọi ma trận cơ
sở trực chuẩn cho không gian mới là ME. Các vector dữ liệu ban đầu được biểu
diễn trong không gian đặc trưng thông qua phép toán quay:
(4)
MF ME T * A
Trong đó MF là ma trận chứa tọa độ các vector ảnh của tập dữ liệu trong không
gian mới.

Tính toán độ tương quan của ảnh nhận dạng với tập ảnh dữ liệu
Đối với các ảnh nhận dạng: ảnh được chuẩn hóa kích thước so với tập dữ liệu
ảnh cơ sở. Mỗi ảnh đầu vào của quá trình nhận dạng có dạng là vector cột X có cỡ
kích thước WH
Sai khác giữa ảnh đầu vào và giá trị trung bình tập dữ liệu:

Tạp chí Nghiên cứu KH&CN Quân sự, Số 29, 02 - 2014

55


Kỹ thuật điện tử & Khoa học máy tính

(5)
X X
Toạ độ của vector ảnh đầu vào biểu diễn trong không gian đặc trưng có dạng:
(6)
IF ME T *
Độ tương quan Si giữa ảnh cần nhận dạng và tập ảnh dữ liệu được xác định
thông qua khoảng cách Euclide của vector IF với các cột của ma trận MF:
1
Si
(7)
1 IF MFi
Giá trị Si càng lớn thì ảnh đầu vào càng giống với thành phần Fi của ma trận
MF, từ đó ta có thể đưa ra kết luận cho ảnh cần nhận dạng.
3. Xây dựng công cụ và lựa chọn tham số

3.1. Phương pháp, công cụ thực hiện
Công cụ được xây dựng trên nền hệ điều hành mã nguồn mở Ubuntu với sự hỗ

trợ của thư viện xử lý ảnh OpenCV. Các ảnh của tập huấn luyện cũng như ảnh nhận
dạng thu được trải qua quá trình nhận diện, tiền xử lý và chuẩn hóa kích thước
tương tự nhau và tương tự với các điều kiện khi tiến hành nhận dạng. Việc nhận
diện sự có mặt của mặt đối tượng trong ảnh được tiến hành dựa vào việc sử dụng
các lớp đối tượng Haar Cascade trong OpenCV.
Trong chương trình, chúng tôi thử nghiệm nhận diện các đồng nghiệp trong cơ
quan, mỗi đối tượng nhận dạng đưa vào cơ sở dữ liệu 5 ảnh, ở các trạng thái khác
nhau cùng với một số lượng các ảnh được download từ internet. Số lượng đối tượng
được sử dụng cho cho việc nhận dạng thử nghiệm là 50 người, số ảnh trong cơ sở
dữ liệu là 500. Việc tiền xử lý dữ liệu cơ sở ban đầu, tính toán ma trận tương quan
và các giá trị riêng được tác giả sử dụng các công toán hỗ trợ quá trình tính toán và
chỉ thực hiện khi khởi động chương trình. Các kết quả thu được sẽ được lưu trữ vào
file và truy xuất trong quá trình tính toán. Nhờ cách xử lý này làm giảm đáng kể
thời gian tính toán.

Hình 1. Lu thut toỏn chng trỡnh nhn dng.
Từ thuật toán trên, tác giả đã xây dựng được công cụ phần mềm chạy trên
Pandaboard ARM-Cotex A9, giao diện được thể hiện ở hình dưới.

56

N.B. Đại, D.Q. Dũng , Xây dựng công cụ nhận dạng khuụn mặt... mó ngun m


Nghiên cứu khoa học công nghệ

Hình 2. Giao diện chính của hệ nhận dạng khuôn mặt.
Giao diện gm cú 4 phn chớnh:
1. Vựng hin th tớn hiu video t camera
2. Vựng khuụn mt c phỏt hin v ct phc v cho quỏ trỡnh nhn dng

3. Vựng hin th kt qu khuụn mt sau khi nhn dng
4. Vựng hin th các thông số quá trình nhận dạng bao gồm thời gian tính toán,
chỉ số mặt tương quan lớn nhất và giá trị tương quan. Vùng ny c th hin
di dng text v ch thay i khi có sự xuất hiện của mặt người trong trường
quan sát của camera.
Tuy nhiên, trong quá trình thực hiện, đối với một thiết bị phần cứng cụ thể, ở
đây sử dụng Pandaboard ARM-Cotex A9, tác giả nhận thấy có rất nhiều yếu tố ảnh
hưởng tới các đặc tính hoạt động của chương trình như thời gian tính toán, khoảng
cách tới đối tượng khi chương trình bắt đầu nhận diện, độ chính xác của thuật toán.
Ngoài các yếu tố thuộc về tính năng của thiết bị như tốc độ xử lý của chip và thuật
toán chương trình đã được tối ưu hóa, thì kích thước của tập ảnh dữ liệu và ảnh
nhận dạng có là yếu tố có ảnh hưởng lớn tới các đặc tính hoạt động. Rõ ràng là khi
kích thước ảnh giảm xuống, thời gian tính toán sẽ giảm, tuy nhiên việc giảm chiều
dữ liệu sẽ làm mất đi khá nhiều thông tin trong ảnh, như thế hiển nhiên sẽ làm độ
chính xác nhận dạng cũng giảm xuống. Như vậy để đảm bảo yêu cầu làm việc theo
thời gian thực và độ chính xác khi làm việc của thiết bị, cần cân nhắc kỹ để lựa
chọn kích thước ảnh hợp lý. Nhận thấy việc tính toán thời gian xử lý của chương
trình theo kích thước của ảnh một cách chính xác là hết sức khó khăn, tác giả đề
xuất tìm thông số kích thước ảnh hợp lý nhất thông qua việc thử nghiệm các bộ giá
trị khác nhau. Ngoài ra, từ việc thử nghiệm ta còn đánh giá được một số đặc tính
của chương trình thay đổi theo kích thước ảnh.

Tạp chí Nghiên cứu KH&CN Quân sự, Số 29, 02 - 2014

57


Kỹ thuật điện tử & Khoa học máy tính

Bảng 1. Kết quả thử nghiệm thuật toán với các kích thước ảnh khác nhau.

Kích thước ảnh
40x44 80x88 100x110 150x165 200x220 232x256
mặt(pixel)
Thời gian tính trung
4
9
12
23
31
39
bình (ms)
Khoảng cách trung
bình bắt đầu quá trình
3.5
2.5
2.2
1.8
1.5
1.2
nhận diện(m)
Độ chính xác
64.6% 78.7% 82.3%
88.2%
92.2%
94.1%
Trong quá trình truy xuất kết quả, để tránh xảy ra các điểm bất thường, tác giả
nhận thấy, việc xuất ra kết quả sai thường chỉ xảy ra một cách ngẫu nhiên sau đó
lại trả về giá trị chân lý. Tác giả đề xuất đưa ra việc chấp nhận kết quả nhận dạng
chỉ được truy xuất khi có liên tiếp một số lần nhận dạng có cùng kết quả. Trường
hợp nhận dạng có cùng một kết quả sai ở một số lần liên tiếp khác nhau là rất hiếm

xảy ra nên cách xử lý này làm cho kết quả nhận dạng tăng lên một cách đáng kể.
Với việc truy xuất kết quả cho ba lần xử lý liên tiếp, tác giả thu được một kết quả
khả quan hơn :
Bảng 2. Kết quả thử nghiệm thuật toán với các kích thước ảnh
khác nhau sau ba lần trùng khớp kết quả.
Kích thước ảnh
mặt(pixel)
Thời gian tính trung
bình (ms)
Khoảng cách trung
bình bắt đầu quá trình
nhận diện(m)
Độ chính xác

40x44 80x88 100x110 150x165 200x220 232x256
12

27

36

69

93

117

3.5

2.5


2.2

1.8

1.5

1.2

94.5%

95.6%

96.4%

97.1%

87.4% 90.2%

4. Kết luận

Từ các kết quả thử nghiệm, tác giả nhận thấy, đối với từng mục đích sử dụng
công cụ (chấm công, quản lý đối tượng ra vào khu vực, hay làm nhiệm vụ cảnh báo
an ninh) chúng ta sẽ đánh giá yêu cầu để lựa chọn thông số hợp lý nhất.
Với mục đích chương trình hoạt động thử nghiệm nhận diện theo thời gian thực
các đối tượng ra vào cơ quan (Khoa), tác giả căn cứ vào kết quả và lựa chọn được
yếu tố quyết định đến tính năng bài toán là kích thước ảnh chuẩn cho tập dữ liệu
cũng như cho ảnh mặt đầu vào nhận diện. Với kích thước ảnh đầu vào có kích
thước 640x480 và kích thước quy chuẩn mặt các đối tượng về 100x110, tốc độ phát
hiện mặt và nhận dạng mặt của chương trình khá nhanh, đảm bảo phát hiện tách

được mặt của đối tượng, xử lý và đưa ra 27 kết quả nhận dang trong 1 giây, đảm
bảo được tốc độ yêu cầu.
Độ chính xác thống kê thực nghiệm trên tập ảnh cơ sở dữ liệu thực (cán bộ giáo
viên trong Khoa) đạt xấp xỉ 94.5% kết quả chính xác trên tổng số lần mà chương
trình truy xuất kết quả.

58

N.B. Đại, D.Q. Dũng , Xây dựng công cụ nhận dạng khuụn mặt... mó ngun m


Nghiên cứu khoa học công nghệ

Trong quá trình thực nghiệm, tác giả nhận thấy rằng hệ thống cần cải tiến thuật
toán để có thể loại bỏ tối đa những yếu tố nhiễu do môi trường nhận dạng, cũng
như tối ưu hóa tốc độ của chương trình nhằm giảm công suất làm việc cho chíp
nhằm đảm bảo tính tin cậy cũng như tài nguyên của hệ nhúng. Đồng thời thử
nghiệm trên tập mẫu thực lớn hơn nhắm đánh giá chính xác được kết quả.
Lời cảm ơn: Nhóm tác giả xin gửi lời cám ơn chân thành tới các giáo viên trong Khoa Hàng
không vũ trụ, Học viện kỹ thuật Quân sự đã giúp đỡ nhiệt tình nhóm nghiên cứu trong quá trình tiến
hành thử nghiệm thuật toán.

Tài liệu tham khảo

[1]. Herve Abdi and Lynne J. Williams, Principal component analysis, Wiley
Interdisciplinary Reviews: Computational Statistics, 2: 433459.
[2]. Matthew A. Turk and Alex P. Pentland, Face recognition using eigenfaces.
In Proceedings CVPR 91, IEEE Computer Society Conference on Computer
Vision and Pattern Recognition, 1991.
[3]. Peter N. Belhumeur, Joao P. Hespanha, and David J. Kriegman, Eigenfaces

vs. sherfaces: Recognition using class specic linear projection, IEEE
Transactions On Pattern Analysis And Machine Intelligence, 19(7):711720,
July 1996.
[4]. W. Zhao, R. Chellappa, P. J. Phillips, and A. Rosenfeld Face recognition: A
literature survey, ACM Computing Surveys,35(4):399-458, December 2003
[5]. Rafael C. Gonzalez, Richard E. Woods, Digital Image Processing, 2nd
edition, Prentice Hall, Upper Saddle River, NJ, pp 693-750.
[6]. Robert Laganiốre, OpenCV 2 Computer Vision Application Programming
Cookbook, Published by Packt Publishing Ltd. 32 Lincoln Road,
Olton,Birmingham, B27 6PA, UK.
[7]. I.T. Jolliffe, Principal Companent Analysis, 2nd edition, Springer, New
York, 2005.
abstract
building face recognition tool in
real time based open source
This paper presents research building face recognition tool in real time
based open source with using principal companent analysis. Initial test
results show that the tool has worked quite effectively and be able to apply
in practice in many fields.
Keywords: Computer vision, Image processing, Face recognition, PCA

Nhận bài ngày 08 tháng 9 năm 2013
Hoàn thiện ngày 08 tháng 01 năm 2013
Chấp nhận đăng ngày 14 tháng 01năm 2014
Địa chỉ: * Khoa Hàng không Vũ trụ, Học viện KTQS.
** Khoa Kỹ thuật điều khiển, Học viện KTQS.

Tạp chí Nghiên cứu KH&CN Quân sự, Số 29, 02 - 2014

59




×