ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN
Tìm hiểu ARcore và xây dựng ứng dụng
mô phỏng makeup
Môn: Đồ án 2
Thành viên: Trần Xuân Liêm - 17520680
Giảng viên hướng dẫn: Nguyễn Công Hoan
Lớp: SE122.L11.PMCL
Tp Hồ Chí Minh,Tháng 1 năm 2021
1
LỜI NĨI ĐẦU
Lời đầu tiên, em xin bày tỏ lịng biết ơn sâu sắc đến thầy Nguyễn Công Hoan –
Giảng viên hướng dẫn môn Đồ án 2 - SE122.L11.PMCL, người đã cùng đồng hành
và tận tình hướng dẫn cho em qua những buổi thảo luận. Chính nhờ sự giúp đỡ hết
lịng của thầy mà em mới có thể hồn thiện được được đồ án này một cách suôn sẻ
nhất.
Mặc dù kiến thức của em vẫn cịn hạn hẹp nên khơng thể tránh khỏi những thiếu
sót nhưng em đã cố gắng hoàn thiện đồ án đúng thời hạn, hạn chế mắc lỗi nhất có
thể. Vì vậy,em rất mong đợi nhận được những ý kiến đóng góp quý báu từ thầy và
qua đó lắng nghe, tiếp thu để rút kinh nghiệm, tự sửa chữa, hồn thiện bản thân
mình trên tinh thần nghiêm túc, tự giác học hỏi.
Chân thành cảm ơn !
2
MỤC LỤC
1.
Giới thiệu đề tài.......................................................................................................................3
2.
Các kiến thức/công nghệ nền tảng..........................................................................................4
3.
Xây dựng ứng dụng.................................................................................................................6
3.1.
Tổng quan khảo sát các ứng dụng liên quan......................................................................6
3.2.
Phân tích, thiết kế, cài đặt phần mềm................................................................................6
3.2.1.1.
Phân tích, thiết kế yêu cầu phần mềm........................................................................6
3.2.2.1.
Các bên liên quan – Stakeholders...............................................................................7
3.2.2.2.
Các actors và mục tiêu................................................................................................8
3.2.2.3.
Các usecase.................................................................................................................8
Mô tả tổng quan.......................................................................................8
3.2.2.3.1. Sơ đồ Use Case.........................................................................9
3.2.2.3.2. Đặc tả Use Cases......................................................................9
3.2.2.4.
Sơ đồ Sequence........................................................................................................13
3.2.2.4.1. Sơ đồ Sequence cho UC-1 – Cấp quyền camera.....................13
3.2.2.4.2. Sơ đồ Sequence cho UC-2 – Tìm kiếm gương mặt..................13
3.2.2.4.3. Sơ đồ Sequence cho UC-3 – Chọn mẫu kính phù hợp với gương
mặt
14
3.2.2.4.4. Sơ đồ Sequence cho UC-4 – Chụp màn hình sau khi thử kính.14
3.2.2.5.
Sơ đồ Activity...........................................................................................................14
3.2.2.5.1. Sơ đồ Activity cho UC-1 – Cấp quyền camera.........................14
3.2.2.5.2. Sơ đồ Activity cho UC-3 – Chọn mẫu kính phù hợp với gương
mặt
14
3.2.2.5.3. Sơ đồ Activity cho UC-2 – Chụp màn hình...............................14
3
3.3.
Các áp dụng chính của Arcore và SceneForm.................................................................15
4.
Thiết kế Kiểm thử.................................................................................................................15
5.
Kết luận và hướng phát triển.................................................................................................16
6.
Tài liệu tham khảo.................................................................................................................17
1. GIỚI THIỆU ĐỀ TÀI
Tên đề tài: Phần mềm thử kính bằng AR sử dụng công nghệ ARcore
4
Lí do chọn đề tài:
Thực tế tăng cường (AR) hiện đang là một trong những công nghệ tiên tiến nhất
trên thế giới hiện nay. Đó cũng là lý do cơng nghệ này đang ứng dụng rất nhiều
trong lĩnh vực của đời sống với tốc độ nhanh chóng. Điều này cũng khiến nhiều
người chưa hiểu hết về tầm quan trọng của AR đối với các doanh nghiệp và lợi ích
mà nó đem lại.
Với phần mềm thử kính bằng AR, em đem đến giải pháp cho những người dùng
đang mong muốn được thử nhiều loại kính khác nhau để chọn ra được cái thích hợp
với mình nhất, đây cũng sẽ đồng thời sẽ là giải pháp cho các doanh nghiệp khi
khách hàng của họ có thể được thử qua sản phẩm một các trực tiếp mà không cần
phải đi đến cửa hàng, điều này sẽ giúp cải thiện trải nghiệm mua sắm của khách
hàng, tăng doanh thu của cửa hàng.
Tổng quan các vấn đề chính:
Bài tốn: Sử dụng cơng nghệ ARCore của google để thiết kế một phần mềm
có tính ứng dụng trong cuộc sống hoặc cho xã hội.
Giới hạn/phạm vi: Trang thiết bị trong quá trình xây dựng phần mềm, các
nguồn tài liệu tham khảo.
Các nội dung nghiên cứu/thực hiện: Nghiên cứu các quy trình nghiệp vụ
và áp dụng công nghệ AR và các công nghệ liên quan khác để triển khai
được một phần mềm hoàn chỉnh.
Kết quả hướng tới: Một phần mềm và có giá trị sử dụng khi triển khai.
2. CÁC KIẾN THỨC/CÔNG NGHỆ NỀN TẢNG
1. ARcore Introduction
ARCore là một nền tảng của Google dùng để trải nghiệm thực tế ảo tăng cường.
ARCore sử dụng các API khác nhau, giúp điện thoại của bạn có thể cảm nhận
5
được môi trường xung quanh, hiểu được thế giới thực và tương tác với các
thông tin trong thế giới thực. Một số API đã có sẵn trên Android và iOS để cho
phép chia sẻ trải nghiệm về AR.
ARCore sử dụng 3 khả năng chính để tích hợp nội dung ảo với thế giới thực
thông qua camera điện thoại:
Motion tracking giúp điện thoại hiểu được và theo dõi được vị trí của nó
so với thế giới thực.
Environmental understanding giúp điện thoại phát hiện được kích cỡ
và vị trí của tất cả các bề mặt: ngang, dọc và các góc cạnh bề mặt như mặt
đất, mặt bàn hay bức tường...
Light estimation giúp điện thoại ước lượng được điều kiện ánh sáng của
môi trường.
2. ARcore
ARcore là một thư viện giúp các Developer tích hợp AR vơ phần mềm của
mình. Vì nó là thư viện open source nên sẽ khơng có các chức năng cụ thể mà
chỉ có các chức năng đa dụng để có thể triển khai AR trên các nền tảng khác
nhau.
Các tính năng hiện tại mà ARcore cung cấp cho developer:
Anchor: Khi ARcore update môi trường xung quanh thì những object sẽ có
hiệu ứng trơi đi và anchor giúp giữ object tại chỗ trong vị trí tương đối với
thế giới hiện tại.Chúng ta dùng anchor để đảm bảo trải nghiệm cho người
dùng và tính chân thật của phần mềm của chúng ta.
Camera Config: hỗ trợ Developer chỉnh sửa camera, cung cấp các thông tin
như CPU và GPU.Lớp này giúp Developer điều chỉnh khả năng nhận biết
chiều sâu của camera, FPS của camera,..
Plane:Lớp mặt phẳng do ARcore tạo ra để Developer sử dụng định nghĩa mặt
phẳng ngoài đời thực qua Camera.
Config: Cho develop khả năng tinh chỉnh lại các hiệu năng khác nhau của
Arcore như PlaneFindingMode, UpdateMode (chỉnh sửa các hành vi của
Session.Update()),…
6
3. XÂY DỰNG ỨNG DỤNG
3.1.
Tổng quan khảo sát các ứng dụng liên quan
3.1.1 Khảo sát Chplay, Appstore
Một số phần mềm dùng để khảo sát gồm có rounz, GlassOn. Tuy
nhiên các phần mềm lại ít được người dùng biết đến và sử dụng.
3.2.
Phân tích, thiết kế, cài đặt phần mềm
3.2.1.1. Phân tích, thiết kế yêu cầu phần mềm
3.2.1.2. Yêu cầu chức năng
Yêu cầu
REQ-1
REQ-2
REQ-3
Trọng số ưu tiên
Mô tả
6
Phần mềm cho phép khách hàng thay đổi
nhiều mẫu kính khác nhau
6
Phần mềm cho phép khách hàng phát hiện
gương mặt để áp dụng mẫu kính
6
Phần mềm cho phép khách hàng chụp lại màn
hình sau khi đã thiết kế
3.2.1.3. Yêu cầu phi chức năng
Yêu cầu
REQ-4
REQ-5
Trọng số ưu tiên
Mơ tả
7
Người dùng cần có một thiết bị tương thích
với AR
6
Người dùng phải có mạng để tải phần mềm từ
CHplay
7
3.2.1.4. Yêu cầu giao diện
Yêu cầu
REQ-6
REQ-7
2.
Trọng số ưu tiên
Mô tả
8
Phần mềm có các nút để đổi sang các mẫu
kính khác nhau
7
Phần mềm phải có nút chụp lại màn hình đã
thiết kế
Đặc tả yêu cầu phần mềm
3.2.2.1. Các bên liên quan – Stakeholders
Các bên liên quan (stakeholders) là những người có liên quan và ảnh hướng tới các
yếu tố hình thành nên dự án. Các bên liên quan đến đề tài bao gồm:
Người dùng
3.2.2.2. Các actors và mục tiêu
Actors
Mục tiêu
Use cases
Người dùng
Bật phần mềm và cấp quyền camera
UC-1
Người dùng
Tìm kiếm gương mặt người dùng
UC-2
Người dùng
Chọn mẫu kính phù hợp với gương mặt
UC-3
Người dùng
Chụp màn hình sau khi thử kính
UC-4
8
3.2.2.3. Các usecase
Mô tả tổng quan
UC-1: Cấp quyền camera – bắt đầu sử dụng phần mềm
UC-2: Tìm kiếm gương mặt người dùng
UC-3: Chọn mẫu kính phù hợp với gương mặt
UC-4: Chụp màn hình sau khi thử kính
9
3.2.2.3.1.
Sơ đồ Use Case
3.2.2.3.2.
Đặc tả Use Cases
Use case “Cấp quyền camera”
Tên Use Case
UC-1: Cấp quyền camera
Tóm tắt
Chức năng cấp quyền camera
Dòng sự kiện
chính
1. Phần mềm hiển thị popup đòi quyền camera
2. Người dùng chấp nhận cho quyền camera
3. Phần mềm kiểm tra và chạy chương trình
10
(Dịng sự kiện khác: Khơng cho quyền camera).
4. Phần mềm khơng hoạt động
Dịng sự kiện
khác
1. Khơng cho quyền camera
Các u cầu đặc
biệt
Khơng có
Trạng thái Phần
mềm trước khi
thực thiện use
case
Actor: Người dùng
Trạng thái Phần
mềm sau khi thực
hiện use case
Người dùng cho phép quyền và có thể tiến hành sử dụng
phần mềm
Phần mềm hiển thị lỗi và địi lại quyền.
Điều kiện: khơng có
Use case “Tìm kiếm gương mặt”
Tên Use Case
UC-2: Tìm kiếm gương mặt
Tóm tắt
Chức năng Tìm kiếm gương mặt
Dịng sự kiện
chính
1. Phần mềm quét gương mặt người dùng
2. Phần mềm phát hiện được gương mặt người dùng
3. Phần mềm áp dụng mẫu kính đang chọn lên gương mặt
người dùng
Dịng sự kiện
khác
1.: Không kiếm được gương mặt: Phần mềm không áp
dụng được mẫu kính.
Các u cầu đặc
biệt
Khơng có
Trạng thái Phần
mềm trước khi
thực thiện use
case
Actor: Người dùng
Trạng thái Phần
mềm sau khi thực
hiện use case
Phát hiện gương mặt và áp dụng mẫu kính đang được chọn.
Điều kiện: cấp quyền camera
11
Use case “Chọn mẫu kính phù hợp với gương mặt”
Tên Use Case
UC-3: Thay đổi mẫu kính
Tóm tắt
Khách hàng có thể thay đổi mẫu kính để lựa chọn
được mẫu mà mình u thích
Dịng sự kiện chính
1. Người dùng chọn mẫu kính mình muốn thử
2. Người dùng tiếp tục lướt qua các mẫu khác nhau
Dịng sự kiện khác
Khơng có
Các u cầu đặc biệt
Khơng có
Trạng thái Phần mềm
trước khi thực thiện
use case
Actor: Người dùng
Trạng thái Phần mềm
sau khi thực hiện use
case
Người dùng chọn được mẫu kính phù hợp với mình
Điểm mở rộng
Khơng có
Điều kiện: Khơng có
Use case “Chụp màn hình sau khi thử kính”
Tên Use Case
UC-4: Chụp màn hình sau khi thử kính
Tóm tắt
Khách hàng có thể chụp màn hình sau khi thử mẫu kính
mình thích
Dịng sự kiện chính
1. Khách hàng bấm nút chụp màn hình
2. Phần mềm sẽ chụp màn hình và lưu vào máy của
khách hàng
3.Khách hàng có thể xem màn hình đã chụp ở trong
folder của máy mình
Dịng sự kiện khác
Khơng có
Các u cầu đặc biệt
Khơng có
Trạng thái Phần mềm Actor: Khách hàng
trước khi thực thiện
Điều kiện: đã cấp quyền
use case
Trạng thái Phần mềm Khách hàng chụp màn hình và có màn hình đó trong
sau khi thực hiện use folder của khách hàng
12
case
Điểm mở rộng
Khơng có
3.2.2.4. Sơ đồ Sequence
Các sơ đồ sequence cho một số Use Case quan trọng
3.2.2.4.1.
Sơ đồ Sequence cho UC-1 – Cấp quyền camera
13
3.2.2.4.2.
Sơ đồ Sequence cho UC-2 – Tìm kiếm gương mặt
14
3.2.2.4.3.
Sơ đồ Sequence cho UC-3 – Chọn mẫu kính phù hợp với gương mặt
15
3.2.2.4.4.
Sơ đồ Sequence cho UC-4 – Chụp màn hình sau khi thử kính
16
3.2.2.5. Sơ đồ Activity
3.2.2.5.1.
Sơ đồ Activity cho UC-1 – Cấp quyền camera
17
3.2.2.5.2.
Sơ đồ Activity cho UC-3 – Chọn mẫu kính phù hợp với gương mặt
18
3.2.2.5.3.
3.3.
Sơ đồ Activity cho UC-2 – Chụp màn hình
Các áp dụng chính của Arcore và SceneForm
3.3.1.1. Arcore
ar.core.AugmentedFace được sử dụng để xác định gương mặt và
cung cấp các phương thức liên quan đến các vùng trên gương mặt.
core.TrackingState để mô tả trạng thái theo dõi của Arcore.
19
ar.core.Config giữ các cài đặt được sử dụng để định cấu hình
session mà ở đây là Config.AugmentedFaceMode.
3.3.1.2. SceneForm
ar.sceneform.rendering.ModelRenderable dùng để render một
mơ hình 3D bằng cách gắn nó vào một Node với thiết lập có thể
render (setRenderable(Renderable)).
ar.sceneform.rendering.Renderable lớp cơ sở để render trong
không gian 3D bằng cách gắn vào một Node với thiết lập có thể
render (setRenderable(Renderable)).
ar.sceneform.ux.AugmentedFaceNode được sử dụng để hiển thị
các hiệu ứng trên gương mặt nhờ vào tính năng của ARCore's
AugmentedFace.
ar.sceneform.ux.ArFragment dùng để triển khai ArFragment.
Không yêu cầu thêm quyền bổ sung nào và sử dụng cấu hình mặc
định cho ARCore.
4. THIẾT KẾ KIỂM THỬ
4.1.
1.
2.
4.2.
4.3.
Môi trường kiểm thử
Test laptop:
Android studio 3.5.1
Windows 10
Ram 8gb, chip I7-8750H
Test Mobile:
Google Pixel 2 có hỗ trợ AR
Camera trước khơng có lỗi
Phần mềm Arcore của google được cài đặt trên máy
Kết quả thử nghiệm
Phần mềm chạy đầy đủ các chức năng
Thử nghiệm theo usecase hồn tồn khơng có lỗi
Kết quả sản phẩm:
Sản phẩm chỉ mới tương đối đầy đủ các chức năng chính, nếu muốn
phân phối thì cần phải thêm một số chức năng tiện dụng hơn như lưu
20
mẫu kính người dùng thích, chỉ địa điểm có bán mẫu kính đó cho
người dùng,…
UI/UX nhìn đơn giản, dễ dàng tiếp cận.
Phần mềm chạy mượt trên các hệ máy hỗ trợ Arcore của google.
5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
5.1.
Kết quả đạt được
Học tập được cách sử dụng ARcore
Học tập được các nguyên lý thiết kế một phần mềm AR
Học tập được các công nghệ SceneForm để phát triển một phần mềm
android.
Phần mềm có giá trị sử dụng kể cả cho người mới.
5.1.1.1. Hạn chế
Hạn chế về thời gian tìm hiểu.
Khơng có teamate để cùng tìm hiểu sâu hơn về hệ thống.
Khơng có tài liệu phổ thơng, tài liệu tìm hiểu cịn hạn chế.
Khơng deploy lên Chplay do khơng có đủ kinh phí.
Phần mềm cịn tương đối sơ sài chưa thể gọi là hoàn chỉnh.
5.1.1.2. Hướng phát triển
Phát triển các chức năng phụ giúp cải thiện trải nghiệm của người
dùng hoặc các chức năng có giá trị kinh doanh hơn đối với một
doanh nghiệp bán kính.
Hồn thiện các chức năng chính để đảm bảo chất lượng sản phẩm,
tối ưu hơn trong việc nhận diện gương mặt (nhận diện được trên
hai gương mặt cùng một lúc).
Thêm nhiều mẫu sản phẩm hơn vào phần mềm.
6. TÀI LIỆU THAM KHẢO
6.1.
6.2.
6.3.
Arcore:
/> />SceneForm:
/>Khác:
21
/>
22