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 (329.28 KB, 7 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

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


<i>Tóm tắt: 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 </i>
<i>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 </i>
<i>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. </i>
<i>Phần mềm được thử nghiệm trên kít phát triển Pandaboard của hãng Texas </i>
<i>Instrument sử dụng chip 02 lõi ARM-Cotex A9 với hệ điều hành Linux. Kết quả thử </i>
<i>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 </i>
<i>vào thực tiễn trên nhiều lĩnh vực. </i>


<i> </i>


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 đề


Khn 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 khn 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 q 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.


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

người dùng can thiệp sâu, tối ưu hóa các phép tốn để tăng khả năng tính tố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 tốn, ước lượng để đưa ra bộ thơng số ảnh đầu vào đảm bảo tốc


độ tính tố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 tốn nhận dạng khn 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 khn 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 khn mặt,
ngồ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 tốn lớn và kết quả xử
lý thấp đối với các đối tượng ở khoảng cách xa.


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

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 tốn sẽ được giải quyết qua các bước chính như


sau:


1. Khởi tạo: tính tốn khn 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


<i>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 </i>
<i>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 </i>
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à
<i>WH. Ví dụ, nếu ảnh dữ liệu có dạng hình vng kích thước 256, thì số chiều của </i>
khơng gian để biểu diễn ảnh trên đó sẽ là 65,536.


<i>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 ở </i>
<i>dạng vector cột X<sub>i</sub></i>, khi đó ta có giá trị trung bình các ảnh mặt sẽ là:


1
1 <i>m</i>


<i>i</i>
<i>i</i>


<i>X</i> <i>X</i>



<i>m</i>


<sub></sub>

<i>(1) </i>


Sai khác giữa các mặt với giá trị trung bình được tính theo công tức:


<i>i</i> <i>Xi</i> <i>X</i>


   <i>(2) </i>


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:


1 2... <i>m</i>



<i>A</i>    <i>(3) </i>


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à : <i>C</i> <i>AT</i>*<i>A</i> trong đó <i><sub>A</sub>T</i> <sub> là ma trận chuyển vị của ma trận dữ liệu đầu </sub>


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à<sub>1</sub><sub>2</sub>...<i><sub>m</sub></i>0, vector riêng

<i>a</i><sub>1</sub>,...,<i>a<sub>m</sub></i>

,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ơ
<i>sở trực chuẩn cho không gian mới là ME. Các vector dữ liệu ban đầu được biểu </i>
diễn trong không gian đặc trưng thơng qua phép tốn quay:


*



<i>T</i>


<i>MF</i> <i>ME</i> <i>A</i> <i>(4) </i>


Trong đó <i>MF</i> 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 tố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
<i>ảnh cơ sở. Mỗi ảnh đầu vào của q trình nhận dạng có dạng là vector cột X có cỡ </i>
<i>kích thước WH </i>


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

<i>X</i> <i>X</i>


   <i>(5) </i>


Toạ độ của vector ảnh đầu vào biểu diễn trong khơng gian đặc trưng có dạng:
*


<i>T</i>


<i>IF</i><i>ME</i>  <i>(6) </i>


Độ tương quan<i>Si</i>giữa ảnh cần nhận dạng và tập ảnh dữ liệu được xác định
<i>thông qua khoảng cách Euclide của vector IF với các cột của ma trận MF: </i>





1


1 <i><sub>i</sub></i>


<i>Si</i>


<i>IF</i> <i>MF</i>


  <i>(7) </i>


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 tố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 tốn hỗ trợ q trình tính tố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 q trình tính toán. Nhờ cách xử lý này làm giảm đáng kể
thời gian tính tốn.


<i>H×nh 1. Lưu đồ thuật tốn chương trình nhận dạng.</i>


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

<i>H×nh 2. Giao diƯn chính của hệ nhận dạng khuôn mặt. </i>
Giao diện gm có 4 phần chính:


1. Vùng hiển thị tín hiệu video từ camera


2. Vùng khuôn mặt được phát hiện và cắt phục vụ cho quá trình nhận dạng
3. Vùng hiển thị kết quả khuôn mặt sau khi nhận dạng


4. Vựng hiển thị các thông số quá trình nhận dạng bao gồm thời gian tính tốn,
chỉ số mặt tương quan lớn nhất và giá trị tương quan. Vùng này được thể hiện
dưới dạng 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 tố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 tốn.
Ngồ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 tố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 tố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. Ngồ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.


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

<i>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. </i>
Kích thước ảnh


mỈt(pixel) 40x44 80x88 100x110 150x165 200x220 232x256
Thêi gian tÝnh trung


b×nh (ms) 4 9 12 23 31 39


Khoảng cách trung
bình bắt đầu quá trình


nhận diện(m)


3.5 2.5 2.2 1.8 1.5 1.2


Độ 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:


<i>Bảng 2. Kết quả thử nghiệm thuật toán với các kích thước ảnh </i>
<i> khác nhau sau ba lần trùng khớp kết quả. </i>
Kích thước ảnh


mỈt(pixel) 40x44 80x88 100x110 150x165 200x220 232x256
Thêi gian tÝnh trung


b×nh (ms) 12 27 36 69 93 117


Kho¶ng cách trung
bình bắt đầu quá trình


nhận diện(m)


3.5 2.5 2.2 1.8 1.5 1.2


Độ chính xác 87.4% 90.2% 94.5% 95.6% 96.4% 97.1%


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 tố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.


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

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
tố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ả.


<i>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 </i>
<i>không vũ trụ, Học viện kỹ thuật Qn sự đã giúp đỡ nhiệt tình nhóm nghiên cứu trong q trình tiến </i>
<i>hành thử nghiệm thuật tốn. </i>


Tµi liƯu tham kh¶o


<i>[1]. Herve Abdi and Lynne J. Williams, “Principal component analysis,” Wiley </i>
Interdisciplinary Reviews: Computational Statistics, 2: 433–459.


<i>[2]. Matthew A. Turk and Alex P. Pentland, “Face recognition using eigenfaces.” </i>
In Proceedings CVPR 91, IEEE Computer Society Conference on Computer
Vision and Pattern Recognition, 1991.


<i>[3]. Peter N. Belhumeur, Joao P. Hespanha, and David J. Kriegman, “Eigenfaces </i>


<i>vs. fisherfaces: Recognition using class specific linear projection,” IEEE </i>


Transactions On Pattern Analysis And Machine Intelligence, 19(7):711–720,
July 1996.



<i>[4]. W. Zhao, R. Chellappa, P. J. Phillips, and A. Rosenfeld “Face recognition: A </i>
<i>literature survey,” ACM Computing Surveys,35(4):399-458, December 2003 </i>
<i> [5]. Rafael C. Gonzalez, Richard E. Woods, “Digital Image Processing,” 2nd </i>


edition, Prentice Hall, Upper Saddle River, NJ, pp 693-750.


<i> [6]. Robert Laganière, “OpenCV 2 Computer Vision Application Programming </i>
<i>Cookbook,” Published by Packt Publishing Ltd. 32 Lincoln Road, </i>
Olton,Birmingham, B27 6PA, UK.


<i> [7]. I.T. Jolliffe, ‘Principal Companent Analysis,” 2nd edition, Springer, New </i>
York, 2005.


abstract


building face recognition tool in
real time based open source


<i>This paper presents research building face recognition tool in real time </i>
<i>based open source with using principal companent analysis. Initial test </i>
<i>results show that the tool has worked quite effectively and be able to apply </i>
<i>in practice in many fields.</i>


Keywords: Computer vision, Image processing, Face recognition, PCA


<i> </i>
<i>Nhận bài ngày 08 tháng 9 năm 2013 </i>
<i>Hoàn thiện ngày 08 tháng 01 năm 2013 </i>
<i>Chấp nhận đăng ngày 14 tháng 01năm 2014 </i>


<i>Địa chỉ: * Khoa Hàng không Vũ trụ, Học viện KTQS. </i>


</div>

<!--links-->

×