Tính cấp thiết của đề tài Ngày nay với sự phát triển của nền khoa học máy tính và việc nhận dạng hình ảnh khuôn mặt thông qua camera đã ứng dụng vào rất nhiều trong cuộc sống của chúng
Trang 1ĐẠ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
Trang 2Cô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 Bách khoa
- Thư viện khoa Công nghệ thông tin, Trường Đại học
Bách khoa - Đại học Đà Nẵng
Trang 3MỞ ĐẦU
1 Tính cấp thiết của đề tài
Ngày nay với sự phát triển của nền khoa học máy tính và việc nhận dạng hình ảnh khuôn mặt thông qua camera đã ứng dụng vào rất nhiều trong cuộc sống của chúng ta nhằm để thực hiện các việc phát hiện đối tượng, khách hàng để bảo mật, cảnh báo hoặc các ứng dụng như robot để điều khiển việc giúp đỡ tự động từ hình ảnh khuôn mặt thu nạp được
Cùng với sự phát triển của trí tuệ nhân tạo là đặc trưng của lĩnh vực dự đoán, phân tích các dự báo trong thế giới kỹ thuật số có tính học máy, đòi hỏi cần phải thu thập dữ liệu và cho hệ thống máy tính học dần các dữ liệu để phân tích đưa ra kết quả dự đoán
Lĩnh vực thu thập dữ liệu khuôn mặt kết hợp với trí tuệ nhân tạo nhằm đưa ứng dụng thực tế vào cuộc sống cũng còn mới mẽ và được nhiều giới chuyên gia rất quan tâm Trong đó việc nhận dạng hình ảnh khuôn mặt và phân tích đưa ra kết quả dự đoán các hành vi, thói quen đối với khách hàng tại khách sạn cũng là một ứng dụng có tính khoa học và thực tiễn cao, giúp cho khách sạn có được đầy đủ thông tin của khách hàng khi vào khách sạn, nhằm phục vụ cho việc cảnh báo, giúp đỡ, phục vụ khách được chu đáo hơn
Vì vậy, xuất phát từ nhu cầu đấy, tôi đã chọn đề tài luận văn thạc sĩ:
“XÂY DỰNG HỆ THỐNG NHẬN DẠNG KHUÔN MẶT
& HỖ TRỢ PHÂN TÍCH THÓI QUEN KHÁCH HÀNG"
2 Mục tiêu nghiên cứu
Xây dựng ứng dụng nhận diện khuôn mặt thông qua nền tảng SDK Intel RealSense và áp dụng thuật toán của trí tuệ nhân tạo (học
Trang 4máy) nhằm phân tích thói quen của đối tượng được nhận diện, đáp ứng được các bước:
- Nghiên cứu và tạo ứng dụng nhận dạng khuôn mặt dựa trên nền tảng SDK RealSense của Intel
- Sử dụng việc nhận dạng khuôn mặt này và phân tích thói quen của khách hàng áp dụng phương pháp tính toán của Trí tuệ nhân tạo (học máy)
3 Nội dung nghiên cứu
- Tìm hiểu về việc nhận dạng khuôn mặt (face recognition) thông qua SDK Intel RealSense
- Tìm hiểu đặc tính cơ bản của khuôn mặt
- Tìm hiểu về phương pháp và thuật toán suy đoán hồi quy (linear regression)
4 Đối tượng và phạm vi nghiên cứu
4.1 Đối tượng nghiên cứu
- Nhận dạng khuôn mặt thông qua SDK RealSense của Intel
- Các đặc điểm thói quen của khách hàng
- Giải thuật tính toán theo phương pháp hồi quy tuyến tính
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
Trang 5- 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
- 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
Trang 6CHƯƠNG 1 TỔNG QUAN
1.1 GIỚI THIỆU, PHÂN LOẠI VỀ TRÍ TUỆ NHÂN TẠO
Giới thiệu
Trí tuệ nhân tạo (tiếng Anh: Artificial
Intelligence hay Machine Intelligence, thường được viết tắt là AI) là trí tuệ được biểu diễn bởi bất cứ một hệ thống nhân tạo nào Thuật ngữ này thường dùng để nói đến các máy tính có mục đích không nhất định và ngành khoa học nghiên cứu về các lý thuyết và ứng dụng của trí tuệ nhân tạo
Các phương pháp
Học máy (Machine learning)
Xử lý ngôn ngữ tự nhiên (Natural language processing)
Xử lý ngôn ngữ tiếng nói (Speech)
Hệ chuyên gia (Expert systems)
Dự báo, tối ưu hóa (Planning, optiomization)
Natural language processing (NLP)
Speech
Expert systems Planning, optiomization
Robotics
Vision
Trang 71.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 vực công cộng
Tìm trẻ lạc dựa vào các camera đặt ở các nơi công cộng
Phát hiện các nhân vật cần theo dõi
Phát hiện tội phạm tại các nơi công cộng
Có thể dùng trong khoa học để so sánh một thực thể với nhiều thực thể khác v/v…
Việc nhận diện khuôn mặt làm việc như thế nào?
Để xây dựng một hệ thống nhận dạng khuôn mặt, người ta phải có đầu vào là một ảnh kỹ thuật số hay 1 khung hình video Hệ
Trang 8thống kiểm tra và cho ra kết quả hình ảnh này là ai (đã có trong cơ sở
dữ liệu), việc nhận dạng này gồm 3 bước:
- Phát hiện khuôn mặt có trong hình/ video (face detection)
- Trích rút đặc trưng của khuôn mặt (feature extraction)
- Nhận dạng khuôn mặt (face recognition)
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]
Trang 91.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
Những tên tuổi lớn đang đầu tư mạnh tay cho trí tuệ nhân tạo hiện nay gồm có Google, Facebook, Amazon, IBM, Microsoft và một
số hãng khác
Google: Google DeepMind, Hệ thống học máy TensorFlow
miễn phí cho tất cả mọi người
Facebook: Facebook cũng có công nghệ AI học sâu dùng để nghiên cứu hành vi người dùng
Apple: Tạo giọng nói của Vocal IQ
Trang 10 Elon Musk: Elon Musk đang hợp sức với nhiều hãng công
nghệ khổng lồ như Amazon, LinkedIn và PayPal phát triển trí tuệ nhân tạo nguồn mở
Microsoft: Dự án Oxford giúp phân tích hành vi người dùng
thông qua các giao diện chương trình ứng dụng (API) giọng nói, biểu cảm và khuôn mặt, Future Decoded
IBM: Watson
Skype: Cung cấp khả năng dịch thuật theo thời gian thực,
nhận dạng giọng nói người dùng và chuyển sang chữ viết (text) khi người dùng nói
Salesforce: MetaMind chuyên về học sâu
1.4 KHÁI QUÁT SDK INTEL REALSENSE
Công nghệ Intel RealSense là gì?
Intel RealSense, công nghệ mới do Intel phát triển, đang được xem là sẽ làm thay đổi cách thức tương tác truyền thống của con người với các thiết bị máy tính, hoạt động bằng cách sử dụng camera 3D
Trang 11CHƯƠ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
Trang 12Với công việc yêu cầu từ khách sạn, thì tôi sẽ sử dụng camera 3D Intel có SDK Intel Real Sense để nhận diện khuôn mặt, và xây dựng mô hình dự đoán theo phương pháp học có giám sát [4] nhằm
để phân tích dự báo bình thường/bất thường của khách hàng
Đối với phương pháp nhận diện khuôn mặt: sử dụng Camera 3D và SDK Intel Real Sense để thu thập các khuôn mặt của khách hàng thì chỉ cần mua 1 thiết Camera 3D của Intel hoặc sử dụng Camera có sẳn trong laptop (nhưng độ chính xác của thiết bị không được tốt, đồng thời chế độ nhận dạng khuôn mặt không theo chiều 3D như trình bày ở chương 1), và cài đặt SDK Intel Real Sense có trên trang web của Intel, hoặc tham khảo tại chương 3 cho việc download) Trong đề tài này, tôi sẽ sử dụng SDK Intel Real Sense nhằm tận dụng tối đa sự hỗ trợ về nhận diện khuôn mặt, xây dựng việc nhận diện được nhanh chóng và tối ưu hơn, thay vì phải nghiên cứu và tự xây dựng phần nhận diện khuôn mặt
Đối với phương pháp học có giám sát: tôi lấy nguồn dữ liệu trước đây của khách sạn và kết quả tính toán suy luận, dự đoán từ chuyên gia đã đánh giá việc khách hàng check in vào khách sạn Để phân tích dự báo thay chuyên gia, tôi xây dựng tập mô hình dự đoán
từ dữ liệu khách hàng đã check in vào khách sạn, mô hình này thông qua việc xây dựng sẵn tập dữ liệu học có giám sát theo dạng cơ sở dữ liệu với các trường dữ liệu (số lần xuất hiện, khoảng cách xuất hiện
và kết quả dự đoán), dựa trên dữ liệu của kết quả này, cho kết luận là bình thường hoặc bất thường thay cho chuyên gia Để thực hiện, tôi xây dựng một thuật toán theo mô hình hồi quy tuyến tính (linear regresstion) để xác định kết quả dự báo
2.2 MÔ HÌNH ĐỀ XUẤT
Phương pháp nhận diện khuôn mặt
Trang 13Trong đề 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
Trang 14các cặp gồm đối tượng đầu vào (vector) và đầu ra mong muốn Đầu
ra của một hàm có thể là một giá trị liên tục hay có thể là dự đoán kết quả cho một đối tượng đầu vào Nhiệm vụ của chương trình học có giám sát là dự đoán giá trị của hàm cho một đối tượng bất kỳ là đầu vào hợp lệ, sau khi đã xem xét một số ví dụ huấn luyện (đã học được
từ dữ liệu huấn luyện) [4]
Hình 2.1 Kiến trúc của SDK Intel RealSense [2]
Phương pháp suy đoán hồi quy tuyến tính:
Trong đề tài này, tôi sử dụng phương pháp suy đoán hồi quy tuyến tính (linear regression), cần thiết kế các giá trị đầu vào và kết quả mong đợi đầu ra của các hàm theo các bước sau:
Trang 15Bảng 2.1 Bảng phương pháp suy đoán hồi quy tuyến tính
Bước Công thức Giá trị đầu
đề học quá (over fitting) trong học máy
với q = 2:
Hạng hợp thức L2
Những ưu điểm của kỹ thuật hồi quy tuyến tính:
- Có thể biểu diễn rõ ranh giới trong việc xác định hồi quy tuyến
tính
W
Trang 16- 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 <0.5 gọi là “bất thường”
Ví dụ bảng dữ liệu như dưới đây được thu thập từ khách hàng
đã check in vào khách sạn: