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

TÌM HIỂU ARCORE và xây DỰNG ỨNG DỤNG mô PHỎNG MAKEUP

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 (1.34 MB, 56 trang )

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN
KHOA CƠNG NGHỆ PHẦN MỀM

---

Đồ án 1
TÌM HIỂU ARCORE VÀ
XÂY DỰNG ỨNG DỤNG MÔ PHỎNG MAKEUP
--Giảng viên hướng dẫn: ThS Nguyễn Công Hoan
Sinh viên thực hiện
1. 18521279

Trần Thị Hà Phương

2. 18520265

Lê Thị Hồng Diệu

TPHCM, tháng 6 năm 2021


Lời cảm ơn
Đầu tiên, nhóm chúng em xin gửi lời cảm ơn đến tập thể quý thầy cô của
Trường Đại học Công nghệ Thông tin – Đại học Quốc gia Thành phố Hồ Chí Minh
và q thầy cơ của Khoa Cơng nghệ Phần mềm đã giúp chúng em có những kiến
thức nền tảng để thực hiện đề tài này.
Nhóm chúng em xin gửi lời cảm ơn tới thầy Nguyễn Công Hoan, là người đã
trực tiếp hướng dẫn nhóm thực hiện đồ án, hướng dẫn tận tình và đóng góp nhiều ý
kiến quý báu giúp chúng em hoàn thành tốt báo cáo của mình.
Trong thời gian thực hiện đề tài, nhóm đã vận dụng những kiến thức nền tảng


đã tích lũy đồng thời kết hợp với việc học hỏi và tiếp thu những kiến thức mới.
Chúng em đã cố gắng vận dụng những gì đã thu thập được để hồn thành đồ án tốt
nhất có thể. Tuy nhiên, trong q trình thực hiện, vẫn khơng tránh khỏi những thiếu
sót, chúng em mong nhận được sự thơng cảm và góp ý chân thành từ các thầy cơ.
Nhóm chúng em xin trân trọng cảm ơn ạ.

1


Nhận xét của giảng viên
__________________________________________________________
__________________________________________________________
__________________________________________________________
__________________________________________________________
__________________________________________________________
__________________________________________________________
__________________________________________________________
__________________________________________________________
__________________________________________________________
__________________________________________________________
__________________________________________________________
__________________________________________________________
__________________________________________________________
__________________________________________________________
__________________________________________________________
__________________________________________________________
__________________________________________________________
__________________________________________________________

2



MỤC LỤC
GIỚI THIỆU.................................................................................................. 5
1.

Giới thiệu chung .................................................................................. 5

2.

Lý do chọn đề tài ................................................................................. 5
Tìm hiểu về AR và ARCORE ............................................................... 6

I.

Về AR (Augmented Reality) ............................................................... 6

1.
a.

AR là gì?.......................................................................................... 6

b.

Ứng dụng của AR trong cuộc sống .................................................. 6

c.

Sự khác nhau giữa AR và VR ........................................................ 10


d.

Ưu nhược điểm của AR ................................................................. 10

e.

Các xu hướng phát triển AR trong tương lai .................................. 11
Về ARCore ........................................................................................ 12

2.
a.

Tổng quan ...................................................................................... 12

b.

Các thiết bị được hỗ trợ ................................................................. 12

c.

ARCore hoạt động như thế nào? .................................................... 12

d.

Tại sao lại chọn ARCore? .............................................................. 13
Một số công nghệ trong ARCore ....................................................... 14

3.
a.


API độ sâu trong ARCore .............................................................. 14

b.

Công nghệ post-capture AR ........................................................... 16

c.

Công nghệ Augmented Faces ........................................................ 17

d.

Công nghệ Augmented Images ...................................................... 18

II. Xây dựng ứng dụng mô phỏng makeup ............................................. 18
1.

Phát biểu bài toán .............................................................................. 18

2.

Khảo sát hiện trạng ............................................................................ 19
a.

Hiện trạng tin học .......................................................................... 19

b.

Hiện trạng tổ chức: Khơng có ........................................................ 19


c.

Hiện trạng nghiệp vụ ..................................................................... 19
3


3.

Yêu cầu.............................................................................................. 20

4.

Danh sách chức năng ......................................................................... 22
a.

Chức năng truy cập camera............................................................ 23

b.

Chức năng truy cập album ............................................................. 24

c.

Chức năng thay đổi độ sáng camera .............................................. 25

d.

Chức năng trang điểm toàn bộ ....................................................... 26

e.


Chức năng trang điểm từng phần ................................................... 27

f.

Chức năng chụp hình ..................................................................... 28

g.

Chức năng lưu hình ....................................................................... 29

5.

Phân tích ............................................................................................ 30
a.

Sơ đồ Use-case .............................................................................. 30
Thiết kế.............................................................................................. 39

6.
a.

Thiết kế kiến trúc ........................................................................... 39

b.

Thiết kế giao diện .......................................................................... 41
Xây dựng ứng dụng ........................................................................... 46

7.

a.

Chuẩn bị material .......................................................................... 46

b.

Sử dụng material............................................................................ 48

c. Đổi màu camera bằng Universal Render Pipeline (URP) và Post
processing .............................................................................................. 49
8.

Kiểm thử ............................................................................................ 50

III. Kết luận ................................................................................................ 51
1.

Môi trường phát triển và môi trường triển khai ................................. 51

2.

Kết quả thu được ............................................................................... 51

3.

Khó khăn ........................................................................................... 53

4.

Hướng phát triển ................................................................................ 54


THAM KHẢO ............................................................................................. 55

4


GIỚI THIỆU
1. Giới thiệu chung
Công nghệ AR (Augmented Reality – Thực tế tăng cường) hiện đang là một
công nghệ đang phát triển khá mạnh mẽ gần đây. Đa phần ứng dụng AR hiện nay
được tích hợp trên di động.
AR là một công nghệ cho phép lồng ghép thông tin ảo vào thế giới thực, nó
giúp người sử dụng tương tác với những nội dung ảo trong thực tại, ví dụ như: chụp
một bức ảnh và gắn kính, mũ, các hiệu ứng vào.
Một số ứng dụng AR nổi tiếng như: cơn sốt trò chơi Pokemon Go trong năm
2016, các tool chụp ảnh ứng dụng AR để gắn kính, mũ, tai thỏ trên message,
snapchat,...
2. Lý do chọn đề tài
Với đề tài ứng dụng ARCore và xây dựng ứng dụng makeup, chúng em muốn
giúp người sử dụng có những bức ảnh đẹp mà không cần tốn nhiều thời gian, công
sức để trang điểm. Điều này cũng có thể đem đến một giải pháp mới cho các doanh
nghiệp trong lĩnh vực marketing (không cần makeup cho người mẫu). Hệ thống
cũng có khả năng giúp các tiệm tóc/ makeup trong việc tư vấn cho khách hàng.

5


I.

Tìm hiểu về AR và ARCORE


1. Về AR (Augmented Reality)
a. AR là gì?
Augmented Reality (AR) là một cơng nghệ tích hợp các vật thể ảo vào thế
giới thực. Với công nghệ AR, ta có thể dễ dàng nhìn thấy khủng long dạo chơi
trong công viên, Godzilla và Kong đánh nhau trên mái nhà, các cuộc chiến
pokemon trên đường phố,… và nhiều hơn nữa những thứ thú vị khác.
b. Ứng dụng của AR trong cuộc sống
Công nghệ AR được sử dụng rộng rãi trong Công nghệ truyền thông Đa
phương tiện, các mơ hình 3D, hệ thống thời gian thực, AI, … và nhiều mảng khác.
Một ví dụ đơn giản nhất của AR – có thể tìm thấy ở bất kì chiếc SmartPhone nàolà máy ảnh và bộ lọc ảnh của ứng dụng Messenger, bạn có thể chụp hình và trang
trí thêm tai thỏ, răng nanh cho bức ảnh của mình.
Một số ứng dụng AR tiêu biểu trong thực tế như:
Gatwick airport passenger: Ứng dụng hỗ trợ chỉ hướng cho khách hàng trong
sân bay Gatw bằng AR map trong điện thoại. Gatwick airport passenger đã từng
được đoạt giải Sáng tạo dành cho thiết bị di động của năm và Ứng dụng di động
của năm

6


Hình 1.1: Ứng dụng Gatwick airport passenger

Ikea Place: Được xây dựng bằng công nghệ ARKit của Apple. Ikea Place cho
phép người dùng scan phịng của mình và đặt nội thất trang trí. Ứng dụng giúp
khách hàng của Ikea có thế dùng thử sản phẩm trước khi quyết định mua hàng.

7



Hình 1.2: Ứng dụng Ikea Place

Về mặt y tế, có một số ứng dụng cực kỳ thú vị từ việc cho phép sinh viên y
khoa đào tạo trong môi trường AR đến khám từ xa cho phép các chuyên gia y tế
tương tác với bệnh nhân. Trong các tình huống quan trọng, các ứng dụng AR có thể
cung cấp thơng tin tại thời gian thực đến khu vực điều trị để hỗ trợ các kế hoạch
chẩn đoán, phẫu thuật và điều trị. Điển hình là thiết bị y tế cầm tay AccuVein sử
dụng công nghê AR để quét mạng lưới tĩnh mạch của bệnh nhân.

8


Hình 1.3: Thiết bị AcuuVein

9


c. Sự khác nhau giữa AR và VR
VR

AR

Cảnh thực

Hoàn toàn là cảnh ảo

25 % ảo – 75% thực

75% ảo – 25% thực


Sử dụng được trên nhiều

Cần thiết bị chuyên dùng

Quang cảnh nền
Tỉ lệ Ảo –Thực
Thiết bị cần thiết

thiết bị
Khi sử dụng

Tương tác với các vật thể

Tương tác với cả thế giới

ảo nhưng vẫn gắn liền thế

ảo, bị tách rời hoàn tồn với

giới thực (vẫn thấy con

thế giới thực(khơng thấy bất

người thực trong cảnh thực) kì thứ gì trong thế giới thực)

d. Ưu nhược điểm của AR
● Ưu điểm
○ Hỗ trợ học tập
○ Tăng mức độ chính xác trong các ứng dụng mua bán online
○ Tạo ra các trò chơi mang lại cảm giác “thực” cho người dùng

○ Tạo ra các công cụ định hướng, hỗ trợ thông minh
● Nhược điểm
○ Tốn kém nhiều chi phí để xây dựng và duy trì các ứng dụng AR.
○ Có khả năng gây các vấn đề về sức khỏe tinh thần và thể chất cho
người dùng
○ Thiếu tính bảo mật
○ Các ứng dụng AR thường có hiệu năng sử dụng thấp (chạy chậm,
lag,…)

10


e. Các xu hướng phát triển AR trong tương lai
Công nghệ AR đã, đang và sẽ ngày càng phát triển mạnh mẽ. Trong tương lai,
cơng nghệ này có thể sẽ tạo một thay đổi lớn cho các thiết bị thông minh
(Smartphone, Máy tính bảng,…), smartphone sẽ dần bị thay thế bởi kính thơng
minh, tai nghe thơng minh và đồng hồ đeo tay điện tử. Bạn có thể gọi cho ai đó qua
Messenger, mở google map dị đường chỉ bằng một cái vẫy tay, nói một câu lệnh.
Các loại kính AR hiện có sẽ trở nên nhạt nhịa trong tương lai, với một chiếc
kính AR tương lai, các giác quan của chúng ta sẽ trở nên thực thế hơn, bạn sẽ cảm
thấy sự êm mượt khi sờ vào lông của một chú cún con “ảo”, hay cảm thấy bỏng rát
khi chạm vào ngọn lửa “ảo”, lạnh cóng khi gặp băng “ảo”.
Trong giáo dục, các loại tài liệu số 2D nhờ vào AR trong tương lai có thể “tiến
hóa” thành 3D, học sinh có thể sờ, chạm tay vào chúng như thật. Các sinh viên y
khoa sẽ có thể tiếp cận trực quan hơn trong việc học giải phẫu bởi các hình nhân
“ảo” được tạo ra bởi AR.
Các bảo tàng nghệ thuật, triển lãm, có thể được tích hợp vào kính thơng minh
để có thể xem được ở bất kì đâu, với những cảm xúc như thật.
Trong lĩnh vực y học và chăm sóc sức khỏe,sẽ xuất hiện các ứng dụng cho
phép người dùng dự đoán thể trạng bản thân sau một liệu trình điều trị, hoặc sau

khi sử dụng một loại thuốc. Điều này tạo điều kiện thuận lợi hơn cho việc tư vấn
các liệu trình điều trị.
Cơng nghệ AR sẽ còn phát triển mạnh mẽ nhiều hơn nữa trong tương lai, các
thơng tin ở trên chỉ là dự đốn. Có lẽ trong tương lai AR còn làm được nhiều thứ
hơn nữa.

11


2. Về ARCore
a. Tổng quan
ARCore là một nền tảng của Google được sử dụng để xây dựng các ứng dụng
AR. Với nhiều API khác nhau, ARCore cho phép chiếc điện thoại của bạn khả
năng cảm nhận môi trường, hiểu và tương tác với thế giới thực.
ARCore sử dụng 3 khả năng chính để tích hợp các nội dung ảo vào thế giới
thực thông qua điện thoại
Motion tracking(Theo dõi chuyển động): cho phép điện thoại hiểu và theo dõi
vị trí của chính nó trong thế giới thực
Environmental understanding(Hiểu về mơi trường): cho phép điện thoại phân
tích và nhận dạng được kích thước và vị trí của các bề mặt theo chiều dọc, ngang,
các góc cạnh của mặt đất và các đồ vật khác như bàn, ghế, vách tường,…
Light estimation(Ước tính ánh sáng) cho phép điện thoại ước tính được các
điều kiện(độ sáng, phủ bóng,…) của ánh sáng hiện tại.
b. Các thiết bị được hỗ trợ
ARCore được thiết kế để hoạt động trên thiết bị với hệ điều hành Android 7.0 hoặc
hơn.
c. ARCore hoạt động như thế nào?
Trên cơ bản thì ARCore làm 2 việc : theo dõi vị trí thiết bị trong thế giới thực
và xây dựng các thực thể ảo trên đó.
Bộ theo dõi chuyển động của ARCore sử dụng camera của điện thoại để xác

định các điểm tiêu biểu, và theo dõi cách các điểm tiêu biểu đó di chuyển theo thời
gian. Thông qua việc theo dõi các điểm tiêu biểu và đọc các cảm biến định hướng

12


của điện thoại, ARCore có thể quyết định được vị trí và cả hướng của điện thoại
trong khơng gian.
Trong khi xác định các điểm tiêu biểu, ARCore có thể dị tìm và nhận diện các
bề mặt phẳng- như bàn, ghế- và ước tính cả ánh sáng của mơi trường xung quanh.
Những khả năng trên cho phép ARCore xây dựng thực thể ảo trong mơi trường
thực. Bạn có thể xây dựng một chú mèo con ảo ở trên một tấm thảm trong thực tế.
Bộ theo dõi chuyển động cho phép bạn di chuyển xung quanh và nhìn chú mèo ảo
kia theo nhiều góc độ, thậm chí bạn có thể đi khỏi phịng và quay lại sau ít phút thì
bạn vẫn thấy chú mèo kia ngồi ở đó.

Hình 1.4: Mơ phỏng động vật

d. Tại sao lại chọn ARCore?
Bên cạnh ARCore, cịn có các nền tảng hỗ trợ AR khác như : ARKit, Vuforia.
Về mức độ hồn thiện, Vuforia được đánh giá ít hiệu quả hơn ARKit và ARCore.
ARKit chỉ hỗ trợ cho iOS, trong khi Vuforia và ARCore thì hỗ trợ cho cả 2 hệ điều
hành là iOS và Android. Nhưng so sánh về mức độ phổ biến thì nên chọn ARCore,
bởi 78% ứng dụng và game được hiện thực trên hệ điều hành Android với số lượng
người sử dụng đông đảo.

13


3. Một số công nghệ trong ARCore

a. API độ sâu trong ARCore
API độ sâu ra mắt năm 2020, với API này các thiết bị có thể tạo bản đồ độ sâu
trong thời gian thực (depth maps in real time) mà không cần các cảm biến chuyên
dụng. Các điểm dữ liệu trong map này được phân bố đều, “ mịn ” tạo nên khả năng
lấp đầy tất cả các điểm trống. Điều này làm giảm thiểu khả năng thiếu sót điểm
ảnh, giúp các nhà phát triển tạo hiệu ứng chiều sâu chính xác hơn, kể cả ở những
điểm bị mất ảnh.
Cơng nghệ API độ sâu “thơ” (ARCore Raw Depth API) có khả năng cung cấp
các bản vẽ chi tiết hơn về hình dạng các đối tượng trong ảnh thực bằng cách tạo các
bản đồ độ sâu “thô” (Raw Depth Map) tương ứng. Các Raw Depth Map này bao
gồm các điểm dữ liệu không “mịn”, và tạo nên một “bức ảnh tự tin” (confidence
image) có khả năng ước tính độ sâu từ Raw Depth Map.

Hình 1.5: Depth API

14


Raw Depth API cho phép khả năng ước lượng
độ sâu chính xác hơn và khả năng nhận thức về
khơng gian. Với khả năng này ta có thể lồng ghép
các thực thể ảo vào khớp với khơng gian thực
Hình 1.6: Một tấm thảm được người dùng upload lên và
lồng ghép vào chiếc ghế trong thế giới thực một cách chính
xác nhờ depth API

Một công nghệ khác cũng liên quan đến API độ sâu đó là Depth hit-test, cơng
nghệ này cho phép người dùng chạm vào một điểm trên màn hình và “đặt” một vật
thể ảo lên đó.


Hình 1.7: Một chú robot đỏ sẽ xuất hiện ở chỗ người dùng nhấp vào

Hiện tại, Unity đã có bài lab “ARCore Depth Lab” với cả hai ví dụ về Raw
Depth API và Depth hit-test. Bạn có thể tìm kiếm và thực hành ngay hơm nay.

15


b. Công nghệ post-capture AR
Một vài thử nghiệm AR phải được kiểm thử trong một điều kiện cụ thể. Điều
này gây ra một số bất lợi cho các developer cũng như với người dùng. Bới hoàn
cảnh khác nhau sẽ gây ra các hiệu ứng khác nhau khi sử dụng camera thực tế (do
khác nhau về độ sáng, vị trí, sensor cảm biến cho ra các kết quả không đồng
nhất,…)
Công nghệ Recording ARCore và Playback API (tạm dịch: công nghệ
ARCore thu hình và phát lại) cho phép các developer sử dụng một video ghi hình
để test AR. Với video ghi hình, lúc nào ta cũng thu được cùng một loại dữ liệu, độ
sáng nên sẽ cho ra các kết quả chính xác hơn.
Công nghệ Recording ARCore và Playback API cũng mở khóa nhiều cơ hội
cho việc ứng dụng trong thương mại. Một ví dụ đơn giản là: với cơng nghệ này,
người mua có thể dễ dàng mua sắm đồ nội thất mà khơng cần lo lắng liệu nó có hợp
với căn nhà của họ. Khách hàng chỉ việc quay video về ngơi nhà và ướm thử nội
thất với AR.

Hình 1.8: AR và video ghi hình

16


c. Cơng nghệ Augmented Faces

Đây có thể xem là cơng nghệ quan trọng nhất cần biết trong quá trình làm ứng
dụng MakeUp. Công nghệ cung cấp cho ứng dụng khả năng tự động xác định các
vùng khác nhau trên khuôn mặt, từ đó có thể “phủ” lên đó các cấu trúc tùy ý người
sử dụng. Lớp phủ này có thể phủ đúng theo đường nét và cấu trúc gương mặt.
Để phủ đúng kết cấu ảo lên khuôn mặt, API nhận diện và tạo ra một
“augmented face mesh”(lưới khuôn mặt tăng cường). Lưới này mà một mơ hình mơ
phỏng khn mặt ảo, bao gồm các đỉnh và cạnh.

Hình 1.9 và 1.10: Augmented face mesh và Augmented face mesh được phát hiện trên mặt

Khi chạy ứng dụng, API được gọi để dò tìm các đường nét khn mặt , sau đó
phủ cả kết cấu mơ hình lên khn mặt một cách chính xác.

17


d. Công nghệ Augmented Images
Công nghệ AR giúp chúng ta gắn ghép các thực thể ảo vào thế giới thực, tuy
nhiên thế giới thực thì ln chuyển động. Cơng nghệ này ra đời để theo dõi chuyển
động trong thế giới thực và áp dụng kịp thời các thay đổi đó.

Hình 1.11: Các chữ “ảo” di chuyển theo thực thể thật

II.

Xây dựng ứng dụng mơ phỏng makeup

1. Phát biểu bài tốn
Tầm nhìn


Áp dụng kiến thức tìm hiểu ARCore để xây dựng ứng dụng
trang điểm.

Mục tiêu

Cung cấp các chức năng trang điểm cơ bản: son môi, phấn
má hồng, phấn mắt, kẻ mắt.

Đối tượng

Người dùng có nhu cầu làm đẹp hình ảnh mà khơng cần
trang điểm ngồi đời, hoặc các thương hiệu mỹ phẩm dùng
để cung cấp mẫu dùng thử đến khách hàng bằng ứng dụng
AR.

18


2. Khảo sát hiện trạng
a. Hiện trạng tin học
Phần cứng:
● Thiết bị khảo sát: Redmi Note 9 Pro
● Hệ điều hành: Android
Phần mềm khảo sát:
● MakeupPlus - Selfie trang điểm
● YouCam Makeup - Selfie Editor & Magic Makeover Cam
● YuFace: Chụp Hình Đẹp, Chụp Ảnh Selfie Đẹp, Mịn Da
Người sử dụng:
● Trình độ chun mơn: chỉ cần biết sử dụng thiết bị di động cơ
bản(quay phim, chụp ảnh,...)


b. Hiện trạng tổ chức: Khơng có
c. Hiện trạng nghiệp vụ
● Thay đổi màu sắc camera:
○ Tăng cường hoặc hiệu chỉnh màu sắc của hình ảnh. Chức năng áp
dụng cho tồn màn hình camera, làm cho hình ảnh trơng đẹp hơn,
sắc nét và sống động
● Trang điểm:
○ Ứng dụng hỗ trợ tính năng trang điểm cho các phần như:
■ Son môi
■ Phấn má hồng
■ Kẻ mắt

19


■ Phấn mắt
● Chụp hình
● Lưu hình

3. Yêu cầu
a. Yêu cầu nghiệp vụ

Tên yêu cầu

STT

Quy định

1


Thay đổi màu sắc camera

QĐ 1

2

Trang điểm từng phần

QĐ 1

3

Trang điểm tồn bộ

QĐ 1

4

Chụp hình

QĐ 1

5

Lưu hình

QĐ 2

Quy định:

● QĐ 1: Người dùng cho phép ứng dụng kết nối với camera
● QĐ 2: Người dùng cho phép ứng dụng kết nối với album

20


b. u cầu cơng nghệ
STT

1

2

Nghiệp vụ
Dễ sửa lỗi

Dễ bảo trì

Mơ tả chi tiết
Xác định lỗi trung bình
trong 15 phút

Ghi chú
Khi sửa lỗi một chức năng,
không ảnh hưởng đến
chức năng khác

Thêm chức năng mới

Khơng ảnh hưởng chức


nhanh

năng đã có

Xây dựng phần mềm quản
3

Tái sử dụng

lý nhân sự ngành kinh

Cùng với các yêu cầu

doanh trong 3 ngày

4

Dễ mang
chuyển

Đổi sang hệ quản trị cơ sở
dữ liệu mới tối đa trong 2

Cùng với các yêu cầu

ngày

21



4. Danh sách chức năng

Hình 2.1: Sơ đồ luồng hoạt động của chức năng

22


a. Chức năng truy cập camera
Chức năng

Truy cập camera

Mô tả

Ứng dụng truy cập vào camera của người dùng

Mục đích

Sử dụng các tính năng trong ứng dụng

Vấn đề

Khơng có

Giải pháp

Khơng có

Rủi ro


Khơng có

Ngoại lệ

Khơng có

Chấp nhận

Người dùng cho phép truy cập camera

tiêu chí

23


b. Chức năng truy cập album
Chức năng

Truy cập album

Mô tả

Ứng dụng truy cập vào camera của thiết bị

Mục đích

Lưu hình vào thiết bị

Vấn đề


Khơng có

Giải pháp

Khơng có

Rủi ro

Khơng có

Ngoại lệ

Khơng có

Chấp nhận

Người dùng cho phép truy cập camera.

tiêu chí

24


×