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ợpvới mình nhất, đây cũng sẽ đồng th
Trang 1ĐẠ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
Tp Hồ Chí Minh,Tháng 1 năm 2021
Trang 2LỜ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ể hoà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, hoà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 !
Trang 3MỤ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
Trang 43.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
Trang 5Lí
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ợpvớ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 toá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
Trang 6đượ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ặtphẳ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()),…
Trang 73 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 Trọng số ưu tiên Mô tả
nhiều mẫu kính khác nhauREQ-2 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ínhREQ-3
6 Phần mềm cho phép khách hàng chụp lại mànhình sau khi đã thiết kế
3.2.1.3 Yêu cầu phi chức năng
Yêu cầu Trọng số ưu tiên Mô tả
REQ-4
7 Người dùng cần có một thiết bị tương thích với ARREQ-5 6 Người dùng phải có mạng để tải phần mềm từ
CHplay
Trang 83.2.1.4 Yêu cầu giao diện
Yêu cầu Trọng số ưu tiên Mô tả
REQ-6 8 Phần mềm có các nút để đổi sang các mẫu
kính khác nhauREQ-7 7 Phần mềm phải có nút chụp lại màn hình đã
thiết kế
2 Đặ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
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
Trang 93.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
Trang 103.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
Trang 11(Dòng sự kiện khác: Không cho quyền camera).
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
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
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
Trang 12Use 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 yê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
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
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
Trang 133.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
Trang 143.2.2.4.2 Sơ đồ Sequence cho UC-2 – Tìm kiếm gương mặt
Trang 153.2.2.4.3 Sơ đồ Sequence cho UC-3 – Chọn mẫu kính phù hợp với gương mặt
Trang 163.2.2.4.4 Sơ đồ Sequence cho UC-4 – Chụp màn hình sau khi thử kính
Trang 173.2.2.5 Sơ đồ Activity
3.2.2.5.1 Sơ đồ Activity cho UC-1 – Cấp quyền camera
Trang 183.2.2.5.2 Sơ đồ Activity cho UC-3 – Chọn mẫu kính phù hợp với gương mặt
Trang 193.2.2.5.3 Sơ đồ Activity cho UC-2 – Chụp màn hình
3.3 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.
Trang 20 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
Camera trước không có lỗi
Phần mềm Arcore của google được cài đặt trên máy 4.2 Kết quả thử nghiệm
Phần mềm chạy đầy đủ các chức năng
Thử nghiệm theo usecase hoàn toàn không có lỗi
4.3 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
Trang 21mẫ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
Hoà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
Trang 22 https://stackoverflow.com/