ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
TRƯƠNG QUỐC TUẤN
XÂY DỰNG HỆ THỐNG NHẬN DẠNG
KHUÔN MẶT VÀ HỖ TRỢ PHÂN TÍCH
THÓI QUEN KHÁCH HÀNG
Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01.01
TÓM TẮT LUẬN VĂN THẠC SĨ KHOA HỌC MÁY
TÍNH
Đà Nẵng – Năm 2017
Công trình được hoàn thành tại
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Người hướng dẫn khoa học: TS. Phạm Minh Tuấn
Phản biện 1: TS. Huỳnh Hữu Hưng
Phản biện 2: TS. Nguyễn Quang Thanh
Luận văn được bảo vệ trước Hội đồng chấm Luận văn tốt
nghiệp thạc sĩ khoa học máy tính họp tại Trường Đại học
Bách khoa vào ngày 13 tháng 08 năm 2017.
Có thể tìm hiểu luận văn tại:
- Trung tâm học liệu, Đại học Đà nẵng tại trường Đại học
5. Phương pháp nghiên cứu
5.1. Phương pháp lý thuyết
- Tiến hành thu thập và nghiên cứu các tài liệu có liên quan
đến kỹ thuật nhận dạng khuôn mặt, tính toán trong trí tuệ nhân tạo.
3
- Nghiên cứu lý thuyết về tính toán tuyến tính trong AI, nhận
dạng và phân tích các thói quen của khách hàng.
5.2. Phương pháp thực nghiệm
- Sử dụng SDK Realsense của Intel để xây dựng việc nhận
dạng hình ảnh khuôn mặt thông qua Camera, đưa dữ liệu vào cơ sở
dữ liệu.
- Xây dựng kỹ thuật tính toán tuyến tính trong AI để xác định
được các thói quen của người được nhận dạng
- Xây dựng tập dữ liệu huấn luyện ứng với khuôn mặt.
- Kiểm tra, thử nghiệm và đánh giá kết quả.
6. Ý nghĩa khoa học và thực tiễn
6.1. Ý nghĩa khoa học
- Áp dụng được thuật toán suy đoán hồi quy tuyến tính trong
AI vào việc phân tích thói quen thông qua việc nhận dạng khuôn mặt.
6.2. Ý nghĩa thực tiễn
- Ứng dụng việc nhận dạng khuôn mặt và phân tích thói quen
của khách hàng vào trong các lĩnh vực như khách sạn.
4
CHƯƠNG 1
TỔNG QUAN
1.1. GIỚI THIỆU, PHÂN LOẠI VỀ TRÍ TUỆ NHÂN TẠO
Expert systems
Hình 1.1. Các thể loại của trí tuệ nhân tạo
5
1.2. CÁC VẤN ĐỀ VỀ NHẬN DẠNG KHUÔN MẶT
Việc nhận dạng khuôn mặt để xác nhận cho vấn đề an toàn, các
thói quen ứng với từng khuôn mặt ấy được sử dụng rộng rãi. Không
những thế mà việc áp dụng nhận diện khuôn mặt xong, áp dụng với
việc dự đoán từ khuôn mặt để xác định hành vi, thói quen là một
trong những ứng dụng rất thực tiễn và mới mẻ trong rất nhiều lĩnh
vực.
Trong để tài nghiên cứu này, tôi đã kết hợp việc nhận dạng
khuôn mặt và trí tuệ nhân tạo (học máy) để áp dụng cho việc phân
tích thói quen khách hàng tại khách sạn.
1.2.1. Tìm hiểu về việc nhận dạng khuôn mặt (Face recognition)
Bài toán xác định khuôn mặt người là một kỹ thuật máy tính để
xác định các vị trí và các kích thước của khuôn mặt trong ảnh bất kỳ.
Kỹ thuật này nhận biết các đặt trưng khuôn mặt và bỏ qua những thứ
khác như: toà nhà, cây cối, cơ thể,…
Hệ thống nhận diện khuôn mặt có thể giúp:
Tra cứu thông tin tội phạm.
Giám sát bằng camera để phát hiện tội phạm tại các khu
Hình 1.2. Nhận diện khuôn mặt
1.2.2. Cảm xúc của khuôn mặt
Trong đề tài này, tôi không đi xa quá về việc làm thế nào để
nhận diện khuôn mặt và đặc tính của khuôn mặt một cách chi tiết, mà
chỉ mô tả khái quát và mô tả vài cảm xúc của khuôn mặt từ SDK
RealSense đã tích hợp như bên dưới:
Hình 1.3. Cảm xúc khuôn mặt (tt) [2]
7
1.3. CÁC TÁC ĐỘNG CỦA TRÍ TUỆ NHÂN TẠO VÀ ÁP
DỤNG ĐIỂN HÌNH
1.3.1. Tác động
Tác động đầu tiên của trí tuệ nhân tạo mà chúng ta có thể dễ
dàng nhận thấy chính là lượng thất nghiệp tăng cao. Nếu AI phát
triển hoàn thiện với khả năng thay thế con người trong các công việc
trí tuệ như chăm sóc sức khỏe, phục vụ, sản xuất theo dây chuyền tự
động, công việc văn phòng...
1.3.2. Các bài toán điển hình áp dụng các phương pháp
TTNT
Nhận dạng mẫu
Xử lý ngôn ngữ tự nhiên, Dịch tự động(dịch máy)
và Chatterbot
Điều khiển phi tuyến và Robotics
Computer vision, Thực tại ảo và Xử lý ảnh
Lý thuyết trò chơi và Lập kế hoạch (Strategic planning)
Trò chơi TTNT và Computer game bot
1.3.3. Những trí tuệ nhân tạo mạnh nhất hiện nay
9
CHƯƠNG 2
MÔ HÌNH NHẬN DẠNG KHUÔN MẶT &
HỖ TRỢ PHÂN TÍCH THÓI QUEN KHÁCH HÀNG
Trong cuốn luận văn này, tôi nghiên cứu phân tích khuôn mặt
nhằm để hỗ trợ nhận biết thói quen khách hàng, và sử dụng việc nhận
dạng khuôn mặt từ camera có sử dụng SDK Intel RealSense, qua đó
đánh giá được thói quen và dự báo mức độ an toàn đối với khách
hàng nhằm xây dựng mô hình hỗ trợ cho chiến lược, bảo mật của
doanh nghiệp, đẩy mạnh sự phát triển của doanh nghiệp.
2.1. PHÂN TÍCH BÀI TOÁN
Khách sạn A hoạt động trong lĩnh vực cho thuê phòng khách
sạn, đang chuẩn bị áp dụng việc nhận dạng khuôn mặt tại quầy tiếp
tân của khách sạn, để hỗ trợ cho việc phân tích thói quen, dự báo của
khách khi vào khách sạn. Từ đó góp phần cho việc xây dựng chiến
lược phát triển và hỗ trợ khách hàng của khách sạn.
Vấn đề mà khách sạn A muốn giải quyết là:
Khi khách hàng vào khách sạn, tại quầy tiếp tân thì có hệ thống
thu thập thông tin từ camera 3D của Intel có sử dụng SDK Intel Real
Sense để nhận diện khuôn mặt khách hàng,
Từ dữ liệu nhận dạng đó, đánh giá được hệ số dự báo (bình
thường/bất thường) của thói quen khách hàng. Với hệ số bình thường
có nghĩa là thói quen khách hàng này thường xuyên vào khách sạn
theo một khoảng thời gian với lịch trình tương đối đều đặn, ngược lại
bất thường có nghĩa là những thói quen khách hàng lần đầu vào
khách sạn, hoặc đã vào nhưng có lịch trình bất thường khi đến khách
sạn.
10
11
Trong đề tài này, tôi sử dụng SDK Intel RealSense để nhận
diện khuôn mặt qua camera, SDK có thể cho chúng ta
các loại nhận diện như sau:
- Xác định vị trí khuôn mặt (Face Location
Detection): định vị một khuôn mặt hoặc nhiều khuôn
mặt bên trong một hình chữ nhật, và từ đó tính toán
đưa ra được những vị trí nhận diện. [2]
- Xác định điểm ranh giới (Landmark
Detection): Đối với dữ liệu này, bao gồm 78 điểm
mốc quan trọng, thường được sử dụng để xác định
các tính năng riêng biệt (mắt, miệng, lông mày,…)
của một khuôn mặt đã được phát hiện. [2]
- Phát hiện mẫu (Pose Detection): Đối với dữ
liệu này, thì nhận diện được định hướng của khuôn mặt (theo góc
quay, độ nghiêng) [2]
Việc xác định khuôn mặt được nhận diện thì SDK sẽ tham
chiếu khuôn mặt thông qua camera, so sánh trong database của SDK
lưu trữ và đã được đăng ký, khi đó khuôn mặt sẽ được phát hiện và
trả về ID của khuôn mặt.
Dự đoán kết quả
Trong đề tài này, tôi sử dụng dữ liệu đầu vào là các khách hàng
check in vào khách sạn, và được xác định bởi tập dữ liệu có dự báo
bởi chuyên gia, vì vậy dữ liệu được giám sát để có thể qua dữ liệu
huấn luyện và cho ra kết quả dự bào. Vì vậy tôi áp dụng phương pháp
học có dám sát.
Phương pháp học có dám sát
Học có giám sát là một kỹ thuật của ngành học máy để xây dựng một
hàm (function) từ dữ liệu huấn luyện. Dữ liệu huấn luyện bao gồm
Vector X
y là một hàm tuyến
tính theo X
W
Tính
Tìm W sao
Ma
cho sai số
trận
bình
trọng
phương
số W
nhỏ nhất
Hàm
Để giải
- Có thể biểu diễn rõ ranh giới trong việc xác định hồi quy tuyến
tính.
14
- Hiệu quả trong việc tính toán và sử dụng trong huấn luyện và
dự báo.
- Giảm thiểu mức độ nhiễu.
Xây dựng dữ liệu huấn luyện
Trong đề tài này, tôi xây dựng tập dữ liệu huấn luyện bằng
cách thu thập dữ liệu từ các khách hàng trước với tập dữ liệu gồm
cặp dữ liệu (số lần xuất hiện của khách hàng, khoảng cách của lần
xuất hiện trước đó), dựa vào chuyên gia tính toán để đưa ra dữ liệu
theo dạng:
Số lần xuất hiện đều đặn, và xuất hiện đều đặn theo khoảng
cách nhất định: thì kết quả dự đoán là bình thường.
Số lần xuất hiện không đều đặn, và xuất hiện cũng không theo
khoảng cách nhất định thí kết quả dự đoán là bất bình thường.
Dữ liệu đưa vào là vector chứa các cặp dữ liệu (số lần xuất
hiện, khoảng cách xuất hiện), từ đó xây dựng mô hình dự đoán theo
phương pháp hồi quy tuyến tính (mô tả ở trên) để tạo kết quả dự
đoán phân bổ trong khoảng [0,1]. Từ đó, chúng ta sẽ xây dựng và lựa
chọn một ngưỡng (threshold - ngưỡng là một giá trị dùng để phân
tách các giá trị để phân biệt các miền dữ liệu phân biệt), với ngưỡng
này nhằm để kiểm tra các mức độ dự đoán của từng khách hàng.
Trong phần nghiên cứu đề tài này, tôi chọn giá trị của ngưỡng
= 0.5 để phân tách giá trị trung bình để xét mức độ dự đoán bình
thường hoặc bất thường. Điều này có nghĩa là kết quả dự đoán >=0.5
thì gọi là “bình thường”, ngược lại
x
Tuần 3
Từ bảng trên, tôi suy ra dữ liệu bảng dữ liệu để huấn luyện (giá
trị 1, giá trị 2) với chuyên gia dự báo (giá trị 3):
Bảng 2.2. Bảng dữ liệu để huấn luyện với chuyên gia dự báo
Giá trị
1:
Số lần
khách
hàng
xuất
hiện
trước
đó.
0
Giá trị 2:
Khoảng
cách của lần
xuất hiện
trước đó.
Được tính
theo số
ngày.
0
Giá trị 3:
Kết quả suy
xuất hiện, và khoảng
cách là 2 ngày trước,
kết quả dự đoán là 1
(bình thường)
16
3
2
1
4
1
0
5
2
0
6
2
1
17
2.3. THIẾT KẾ
Mô hình tổng quát
1
Camera sẽ thu nhận khuôn mặt khi khách
vào vào đúng vị trí của camera
Vào
2
Kết
quả
dự
báo
S
D
K
4
Tại quầy khách
sạn
3
I
n
t
DB
SDK
DB
APP
Kiểm tra AI
với khuôn
mặt của
Person ID
Khách hàng đã
vào khách sạn
trên 1 lần
Dựa vào tập
dữ liệu huấn
luyện để đưa
ra kết quả
DB
APP
Hình 2.2. Kiến trúc tổng quát của chương trình
Giải thích:
- (1) Tại quầy khách sạn: người khách vào khách sạn và
18
camera sẽ thu nhận hình ảnh
Tính ma trận chuyển vị
Tính độ nhiễu (hàm tổn thất)
So sánh từ dữ liệu huấn luyện, độ nhiều
và dữ liệu để test
Đưa ra kết quả suy đoán
2.3. THUẬT TOÁN CHÍNH
Linear regression
Hồi quy (regression) là một phương pháp học có giám sát
(supervised learning) trong máy học. Mục tiêu chính là tìm ra mối
quan hệ giữa các đặc trưng của một vấn đề nào đó. [5]
Data points
Linear
regression
Hình 2.5. Mô hình dữ liệu của phương pháp hồi quy tuyến tính [5]
20
CHƯƠNG 3
KẾT QUẢ VÀ THỰC NGHIỆM
3.1. MÔI TRƯỜNG PHÁT TRIỂN
Do chương trình sử dụng phần nhận diện khuôn mặt thông qua
SDK Intel RealSense, vì vậy cần phải chuẩn bị các bước sau:
3.1.1. Chuẩn bị cho môi trường
Required
Máy tính có cấu hình: 4th generation Intel®
21
Table: HistoryLog: lưu trữ quá trình khách rời camera
Table Train: lưu trữ dữ liệu mẫu để thực hiện huấn luyện,
cũng là table sẽ cập nhật lại sau khi khách hàng check out.
3.1.4. Setup chương trình
Để thực hiện chạy chương trình, chỉ cần thực hiện trong
package MSI, và install
3.2. DỮ LIỆU ĐẦU VÀO
Dữ liệu là từ khách hàng vào khách sạn, thực hiện check in,
cùng với tập dữ liệu huấn luyện thu thập được đã đăng ký trước đó,
từ đây sẽ giải quyết các yêu cầu của bài toán.
3.3. PHÂN TÍCH KẾT QUẢ
Như đã trình bày ở trên, tôi sử dụng SDK Intel RealSense để
tiến hành nhận dạng khuôn mặt, xem như đầu vào dữ liệu, sau đó xây
dựng mô hình dự đoán của tập dữ liệu thu thập được.
Vấn đề dự đoán, tôi sử dụng theo mô hình học có giám sát
(dùng phương pháp hồi quy tuyến tính)
- Dữ liệu để huấn luyện, tôi sử dụng 1000 dòng, chứa các
thông tin của khách hàng đã check in trước đó.
- Các mốc thời gian có thể được huấn luyện, chứa các thông
tin của lần xuất hiện trước đó, khoảng cách lần xuất hiện trước đó, và
kết quả suy đoán do chuyên gia cập nhật
- Kết quả đầu ra là dòng dữ liệu, cho biết mức độ bình thường
hoặc bất thường (theo như ngưỡng đã xác định ở mục 2.2 ở trên)
- Dữ liệu sau khi dự đoán được cập nhật vào table Train
Sau khi xây dựng được mô hình, triển khai thì tôi chạy với 100
dòng dữ liệu của các khách hàng với đa phần là dữ liệu bất thường thì
kết quả thu được theo dự báo thói quen là bất thường, trích xuất 100
Face
recognition
(image)
Kairos
Amazon
Google
Microsoft
IBM
OpenCV
Intel
RealSense
23
Face
Recognition
(video)
Cảm xúc
Tuổi & giới
tính
Nhiều
khuôn mặt
Nhận dạng
Thời gian để huấn luyện (giây)
135
76
17
5
188
369
5
1
(Time for training-s)
Thời gian dự báo (giây)
(Time for predictions-s)