Tải bản đầy đủ (.docx) (28 trang)

Đồ án Phần mềm thiết kế nội thất AR Sử dụng công nghệ ARcore

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 (277.78 KB, 28 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Phần mềm thiết kế nội thất bằng AR
Sử dụng công nghệ ARcore
Môn: Đồ án 2

Thành viên: Nguyễn Quốc Nam Sang – 17520976
Giảng viên hướng dẫn: ThSi.Hoàng Văn Hà

Lớp: SE122.L11

Tp Hồ Chí Minh,Tháng 1 năm 2021

1


MỤC LỤC

2


1. GIỚI THIỆU ĐỀ TÀI
Tên đề tài: Phần mềm thiết kế nội thất bằng AR sử dụng công nghệ ARcore
Lí do chọn đề tài:
Với sự phát triển công nghệ liên tục như hiện nay thì thị trường nào cũng phải
liên tục áp dụng công nghệ mới để cạnh tranh và phát triển, làm chủ thị
trường.
Và cơng nghệ AR chính là một mỏ vàng chưa được khai thác, nếu áp dụng
vào đời sống sẽ có rất nhiều cơng dụng mạnh mẽ, giúp cải thiện cuộc sống xã
hội, tạo nhiều cơ hội kinh doanh hơn cho các công ty biết tận dụng công nghệ


mới lạ, mạnh mẽ này
Với phần mềm thiết kế nội thất bằng AR của em sẽ giúp cho các công ty
design hoặc các cửa hàng bán hàng nội thất áp dụng công nghệ để triển khai
những sản phẩm của mình cho khách hàng ngay tại nhà\phịng của họ chỉ
bằng các thiết bị Mobile có tích hợp cơng nghệ AR trong camera.
Tổng quan các vấn đề chính:


Bài tốn: Sử dụng cơng nghệ AR để 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: Những quy trình ứng dụng, nghiệp vụ của phần
mềm được tìm hiểu từ những phần mềm trên thị trường và tự suy diễn



ra với tư cách là một người dùng sản phẩm
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.

3



4


2. CÁC KIẾN THỨC/CÔNG NGHỆ NỀN TẢNG
1. ARcore Introduction
ARcore là một thư viện open source của google nhằm giúp cho các
developer có thể triển khai cơng nghệ AR vào ứng dụng của mình mà
khơng phải nghiên cứu khoa học và các học thuật liên quan khác.Thư viên
này giúp các developer có thể tìm hiểu hơn về các ngun lý thiết kế AR
và các hướng liên quan đến AR.Khi sử dụng thư viện thì bắt buộc phải xài
các framework như UE hoặc Unity, bạn có thể tùy biến thư viện để sử dụng
trên framework của mình nhưng sẽ phải tự tìm hiểu từ đầu những nguyên
lý của AR để triển khai trên engine hoặc framework của bản thân
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,…
Config: cho Developer khả năng chỉnh lại các hiệu năng khác nhau
của ARcore như PlaneFindingMode(phương pháp tìm kiếm mặt



phẳng),UpdateMode(chỉnh sửa hành vi của Session.Update()),…
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.

3. Unity
Unity là một “cross- flatform game engine” tạm hiểu là công cụ phát triển
game đa nền tảng được phát triển bởi Unity Technologies. Game engine

5


này được sử dụng để phát trển game trên PC, consoles, thiết bị di động và
trên websites.
Chức năng cốt lõi đa dạng bao gồm: cung cấp cơng cụ dựng hình (kết xuất
đồ họa) cho các hình ảnh 2D hoặc 3D, cơng cụ vật lý (tính tốn và phát
hiện va chạm), âm thanh, mã nguồn, hình ảnh động, trí tuệ nhân tạo,
phân luồng, tạo dò ng dữ liệu xử lý, quản lý bộ nhớ, dựng ảnh đồ thị và kết
nối mạng. Nhờ có các engine mà cơng việc làm game trở nên ít tốn kém
và đơn giản hơn.
Hỗ trợ đa nền tảng: Một trong các thế mạnh của Unity3D chính là khả
năng hỗ trợ gần như toàn bộ các nền tảng hiện có bao gồm: PlayStation 3,
Xbox 360, Wii U, iOS, Android, Windows, Blackberry 10, OS X, Linux, trình

duyệt Web và cả Flash. Nói cách khác, chỉ với một gói engine, các studio
có thể làm game cho bất kỳ hệ điều hành nào và dễ dàng convert chúng
sang những hệ điều hành khác nhau. Đồng thời, đây cũng là giải pháp cho
các game online đa nền tảng – có thể chơi đồng thời trên nhiều hệ điều
hành, phần cứng khác nhau như Web, PC, Mobile, Tablet….
Dễ sử dụng: Unity3D được built trong một mơi trường phát triển tích hợp,
cung cấp một Phần mềm tồn diện cho các lập trình viên, từ soạn thảo mã
nguồn, xây dựng cơng cụ tự động hóa đến trình sửa lỗi. Do được hướng
đến đồng thời cả lập trình viên khơng chun và studio chun nghiệp,
nên Unity3D khá dễ sử dụng. Hơn nữa, đây là một trong những engine phổ
biến nhất trên thế giới, người dùng có thể dễ dàng tìm kiếm kinh nghiệm
sử dụng của “tiền bối” trên các forum cơng nghệ.
Tính kinh tế cao: Unity Technologies hiện cung cấp bản miễn phí engine
Unity3D cho người dùng cá nhân và các doanh nghiệp có doanh thu dưới
100.000 USD/năm. Với bản Pro, người dùng phải trả 1.500 USD/năm – một
con số rất khiêm tốn so với những gì engine này mang lại.

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

1.

Khảo sát AppStore
• Trên thị trường thì chỉ có phần mềm thiết kế bằng AR của IKEA là
sử dụng được và nó vẫn chưa phổ biến với người dùng phổ thơng



khi có q ít người biết đến nó.
Mục tiêu của em là phần mềm này sẽ tạo cảm giác ai cũng dùng
được và dễ tiếp cận để mở rộng tiềm năng và thị trường của bán
hàng online

3.1.2 Khảo sát các cửa hàng online như Shoppee, Tiki,…


Các của hàng online đa số khơng có danh mục đồ nội thất hoặc
có nhưng rất ít, doanh thu từ việc bán đồ nội thất gần như khơng



đáng kể
Hiện tại người dùng vẫn dựa dẩm vào các thợ thủ công hoặc ra
cửa hàng để chọn lựa sản phẩm cho mình chứ khơng đặt mua đồ
nội thất qua Phần mềm online

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 lựa món
đồ nội thất cần thiết

6

Phần mềm cho phép khách hàng phát hiện
mặt phẳng cần trang trí đồ nội thất

5

Phần mềm cho phép người dùng đặt món
đồ nội thất muốn trang trí lên mặt phẳng
xuất hiện
7


REQ-4


REQ-5

REQ-6

REQ-7

REQ-8

REQ-9

3.2.1.3.

REQ-10

REQ-11

Yêu cầu

Phần mềm cho phép khách hàng xem
danh sách các món đồ nội thất hiện có

7

Phần mềm cho phép khách hàng thay đổi
từ nội thất dưới đất sang trên tường

7

Phần mềm cho phép khách hàng điều
chỉnh vị trí của nội thất


7

Phần mềm cho phép khách hàng điều
chỉnh hướng của nội thất

7

Phần mềm cho phép khách hàng xóa đi nội
thất thiết kế không như mong muốn

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ế

Yêu cầu phi chức năng

u cầu

3.2.1.4.

8

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

8

Người dùng phải có mạng để tải phần
mềm từ appstore

Yêu cầu giao diện

Trọng số ưu tiên

Mô tả

8


REQ-12

REQ-13

REQ-14

REQ-15

8

Phần mềm có các nút để đổi sang món nội
thất cần thiết kế


8

Phần mềm có nút để xóa món nội thất
thiết kế khơng như mong muốn

7

Phần mềm phải có nút chụp lại màn hình
đã thiết kế

7

Màn hình phải có nút để đổi thiết kế giữa
Mặt đất và Mặt tường

Đặc tả yêu cầu phần mềm

2.

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:


Khách hàng

3.2.2.2. Các actors và mục tiêu
Actors

Mục tiêu


Use cases

Khách hàng

Bật phần mềm và cấp quyền camera

UC-1

Khách hàng

Tìm kiếm mặt phẳng để thiết kế nội thất

UC-2

Khách hàng

Thay đổi danh mục những món đồ nội thất
từ mặt đất sang mặt tường

UC-3

Khách hàng

Chọn nội thất để thiết kế trong không gian
thực

UC-4

Khách hàng


Thiết kế không ưng ý và muốn xóa vật đã
đặt trên mặt phẳng không gian thực

UC-5

Khách hàng

Thiết kế ưng ý và lưu lại thiết kế bằng cách

UC-6
9


chụp màn hình

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 mặt phẳng để thiết kế nội thất – để bắt đầu thiết kế nội



thất
UC-3: Thay đổi danh mục những món đồ nội thất từ mặt đất sang mặt




tường – để khách hàng có thể chọn địa hình thiết kế
UC-4: Chọn nội thất để thiết kế trong không gian thực – để khách hàng



có thể chọn và thiết kế các sản phẩm mình thích
UC-5: Thiết kế khơng ưng ý và muốn xóa vật đã đặt trên mặt phẳng



khơng gian thực– để thiết kế lại
UC-6: Thiết kế ưng ý và lưu lại thiết kế bằng cách chụp màn hình - để
lưu lại thiết kế bằng cách chụp màn hình

10


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

11


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
(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: Khách hà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 mặt phẳng”
Tên Use Case

UC-2: Tìm kiếm mặt phẳng

Tóm tắt

Chức năng Tìm kiếm mặt phẳng

Dịng sự kiện
chính

1. Phần mềm quét các điểm ấn tượng trên mặt phẳng
cần thiết kế
2. Phần mềm hiện UI đã phát hiện được mặt phẳng

3. Phần mềm cho phép người dùng đặt đồ lên mặt
phẳng đã phát hiện
(Dịng sự kiện khác: Khơng kiếm được mặt phẳng).
4. Phần mềm không cho phép người dùng đặt đồ vật

Dịng sự kiện
khác

1.: Khơng kiếm được mặt phẳng.

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

Actor: Khách hàng

Phần mềm không cho phép người dùng đặt đồ vật

Điều kiện: cấp quyền camera
12


case
Trạng thái Phần
mềm sau khi

thực hiện use
case

Người dùng phát hiện mặt phẳng thành công và cho
phép đặt đồ vật lên mặt phẳng

Use case “Thay đổi danh mục nội thất”
Tên Use Case

UC-3: Thay đổi danh mục nội thất

Tóm tắt

Khách hàng có thể thay đổi danh mục nội thất

Dòng sự kiện chính

1. Người dùng chọn giữa hai danh mục tường và
mặt đất
2. Người dùng tiếp tục thiết kế

Dòng sự kiện khác
Các yê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: Khách hàng

Trạng thái Phần
mềm sau khi thực
hiện use case

Người dùng có thể thay đổi danh mục nội thất

Điểm mở rộng

Khơng có

Điều kiện: Khơng có

Use case “Chọn nội thất”
Tên Use Case

UC-4: Chọn nội thất

Tóm tắt

Khách hàng có thể chọn nội thất để thiết kế
13


Dòng sự kiện chính

1. Khách hàng chọn nội thất để thiết kế trên UI
2. Người dùng có thể đặt nội thất mình đã chọn

(Dịng sự kiện khác: Phần mềm khơng thể truy cập
cơ sở dữ liệu.)

Dòng sự kiện khác

1. Phần mềm không thể truy cập cơ sở dữ liệu: Lỗi
trong lúc chọn => Yêu cầu người dùng nên liên hệ
với nhóm phát triển.

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: Khách hàng

Trạng thái Phần
mềm sau khi thực
hiện use case

Người dùng thiết kế với đồ vật đã chọn

Điểm mở rộng

Khơng có


Điều kiện: Khơng có

Use case “Xóa nội thất đã thiết kế”
Tên Use Case

UC-5: Xóa nội thất đã thiết kế

Tóm tắt

Người dùng có thể xóa nội thất đã thiết kế

Dòng sự kiện chính

1. Người dùng bấm vào UI xóa nội thất đã thiết kế
2. Phần mềm xóa nội thất đã thiết kế gần đây nhất

Dòng sự kiện khá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: Khách hàng

Trạng thái Phần
mềm sau khi thực


Người dùng xóa vật đặt sai hoặc khơng đúng mong
muốn trên màn hình

Điều kiện: Khơng có

14


hiện use case
Điểm mở rộng

Khơng có

15


Use case “Chụp màn hình sau khi thiết kế”
Tên Use Case

UC-6: Chụp màn hình sau khi thiết kế

Tóm tắt

Khách hàng có thể chụp màn hình sau khi thiết kế

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
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: Khách hàng

Trạng thái Phần
mềm sau khi thực
hiện use case

Khách hàng chụp màn hình và có màn hình đó
trong folder của khách hàng

Điểm mở rộng

Khơng có

Điều kiện: đã cấp quyền

3.2.2.4. Sơ đồ Sequence

Các sơ đồ sequence cho một số Use Case quan trọng

16


3.2.2.4.1.

Sơ đồ Sequence cho UC-2 – Tìm kiếm mặt phẳng

17


3.2.2.4.2.

Sơ đồ Sequence cho UC-3 – Thay đổi danh mục

18


3.2.2.4.3.

Sơ đồ Sequence cho UC-5 – Xóa nội thất đã đặt

19


3.2.2.4.4.

Sơ đồ Sequence cho UC-6 – Chụp màn hình


20


3.2.2.5. Sơ đồ Activity
3.2.2.5.1.

Sơ đồ Activity cho UC-2 – Tìm kiếm mặt phẳng

21


3.2.2.5.2.

Sơ đồ Activity cho UC-2 – Thay đổi danh mục

22


3.2.2.5.3.

Sơ đồ Activity cho UC-2 – Chọn nội thất

23


3.2.2.5.4.

Sơ đồ Activity cho UC-2 – Xóa nột thất đã đặt

24



3.2.2.5.5.

3.3.

Sơ đồ Activity cho UC-2 – Chụp màn hình

3.3.1.1.

Các áp dụng chính của Arcore và unity

3.3.1.2.

Arcore
• Sử dụng Arcore plane finding để tìm kiếm mặt phẳng để xử lý


quy trình của phần mềm
Arcore anchor để đảm bảo những vật được đặt giữ vị trí đúng



theo thời gian và khơng gian thực
Arcore session config để điều chỉnh camera và ứng dụng theo



yêu cầu
Arcore Depth API để nhận diện chiều sâu của không gian


Unity
25


×