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

Đồ án phần mềm thiết kế nội thất bằng 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 (269.75 KB, 27 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: Đồán2

Thành viên: NguyễnQuốc Nam Sang – 17520976
Giảngviênhướngdẫn:ThSi.HoàngVănHà

Lớp: SE122.L11

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

1


MỤC LỤC
1.

Giới thiệu đề tài.................................................................................................................4

2.

Các kiến thức/công nghệ nền tảng............................................................................5

3.

Xây dựng ứng dụng.........................................................................................................7
3.1.


Tổng quan khảo sát các ứng dụng liên quan................................................7

3.2.

Phân tích, thiết kế, cài đặt phần mềm............................................................7

3.2.1.1. Phân tích, thiết kế yêu cầu phần mềm........................................................7
3.2.2.1. Các bên liên quan – Stakeholders.................................................................9
3.2.2.2. Các actors và mục tiêu....................................................................................10
3.2.2.3. Các usecase.........................................................................................................10
Mô tả tổng quan.....................................................................................10
3.2.2.3.1. Sơ đồ Use Case.......................................................................12
3.2.2.3.2. Đặc tả Use Cases....................................................................13
3.2.2.4. Sơ đồ Sequence..................................................................................................19
3.2.2.4.1. Sơ đồ Sequence cho UC-2 – Tìm kiếm mặt phẳng..................19
3.2.2.4.2. Sơ đồ Sequence cho UC-3 – Thay đổi danh mục.....................20
3.2.2.4.3. Sơ đồ Sequence cho UC-5 – Xóa nội thất đã đặt.....................21
3.2.2.4.4. Sơ đồ Sequence cho UC-6 – Chụp màn hình...........................22
3.2.2.5. Sơ đồ Activity.......................................................................................................23
3.2.2.5.1. Sơ đồ Activity cho UC-2 – Tìm kiếm mặt phẳng......................23
3.2.2.5.2. Sơ đồ Activity cho UC-2 – Thay đổi danh mục........................24
3.2.2.5.3. Sơ đồ Activity cho UC-2 – Chọn nội thất.................................25
3.2.2.5.4. Sơ đồ Activity cho UC-2 – Xóa nột thất đã đặt........................26
3.2.2.5.5. Sơ đồ Activity cho UC-2 – Chụp màn hình...............................27
3.3.

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



4.

Thiết kế Kiểm thử...........................................................................................................28

5.

Kết luận và hướng phát triển.....................................................................................29

6.

Tài liệu tham khảo..........................................................................................................30

3


1. GIỚI THIỆU ĐỀ TÀI
Tên đềtài: Phầnmềmthiếtkếnộithấtbằng AR sửdụng công nghệARcore
Lído chọnđềtài:
Vớisựpháttriển cơng nghệ liên tục như hiện nay thìthịtrườngnàocũngphải liên
tụcápdụng cơng nghệmớiđểcạnh tranh vàpháttriển, làmchủthịtrường.
Vàcơng nghệ AR chínhlàmộtmỏvàng chưa được khai thác,
nếpdụngvàođờisốngsẽcórấtnhiều cơng dụngmạnhmẽ,
giúpcảithiệncuộcsốngxãhội, tạonhiều cơ hội kinh doanh hơn cho các công ty
biếttậndụng công nghệmớilạ, mạnhmẽnày
Vớiphầnmềmthiếtkếnộithấtbằng AR của em sẽgiúp cho các cơng ty
designhoặccáccửahàngbánhàngnộithấtápdụng cơng nghệđểtriển khai
nhữngsảnphẩmcủamình cho kháchhàng ngay
tạinhà\phịngcủahọchỉbằngcácthiếtbịMobilecótíchhợp cơng nghệ AR trong
camera.
Tổng quan cácvấnđềchính:



Bàitốn: Sửdụng cơng nghệ AR đểthiếtkếmộtphầnmềmcótínhứngdụng



trong cuộcsốnghoặc cho xãhội.
Giớihạn/phạm vi: Những quy trìnhứngdụng,
nghiệpvụcủaphầnmềmđượctìmhiểutừnhữngphầnmềm trên



thịtrườngvàtự suy diễn ra với tư cáchlàmộtngườidùngsảnphẩm
Cácnội dung nghiên cứu/thựchiện: Nghiên cứucác quy
trìnhnghiệpvụvàápdụng cơng nghệARvàcác cơng nghệ liên quan



khácđểtriển khai đượcmộtphầnmềmhồnchỉnh
Kếtquảhướngtới: Mộtphầnmềmvàcógiátrịsửdụng khi triển khai.

4


2. CÁC KIẾN THỨC/CÔNG NGHỆ NỀN TẢNG
1. ARcore Introduction
ARcorelàmột thư việnopensourcecủagooglenhằmgiúp cho
cácdevelopercóthểtriển khai cơng nghệ AR vàoứngdụngcủamìnhmà khơng
phải nghiên cứu khoa họcvàcáchọcthuật liên quan khác.Thư viên
nàygiúpcácdevelopercóthểtìmhiểu hơn vềcác ngun lýthiếtkế AR

vàcáchướng liên quan đếnAR.Khisửdụng thư
việnthìbắtbuộcphảixàicácframework như UE hoặcUnity, bạncóthểtùybiến
thư việnđểsửdụng trên frameworkcủamình nhưng
sẽphảitựtìmhiểutừđầunhững nguyên lýcủa AR đểtriển khai trên
enginehoặcframeworkcủabản thân
2. ARcore
ARcorelàmộtthưviệngiúpcác Developer tíchhợp AR vơphầnmềmcủamình.
Vìnólàthưviện open source
nênsẽkhơngcócácchứcnăngcụthểmàchỉcócácchứcnăngđadụngđểcóthểtriển
khai AR trêncácnềntảngkhácnhau.
CáctínhnănghiệntạimàARcorecungcấpcho developer:
 Anchor: Khi ARcore update mơitrườngxungquanhthìnhững object
sẽcóhiệuứngtrơiđivà anchor giúpgiữ object
tạichỗtrongvịtrítươngđốivớithếgiớihiệntại.Chúng ta dùng anchor
đểđảmbảotrảinghiệmchongườidùngvàtínhchânthậtcủaphầnmềmcủa


chúng ta.
Camera Config: hỗtrợ Developer chỉnhsửa camera, cungcấpcácthơng
tin như CPU vàGPU.Lớpnàygiúp Developer



điềuchỉnhkhảnăngnhậnbiếtchiềusâucủa camera, FPS củacamera,…
Config: cho Developer
khảnăngchỉnhlạicáchiệunăngkhácnhaucủaARcorenhưPlaneFindingMo
de(phươngpháptìmkiếmmặtphẳng),UpdateMode(chỉnhsửahành vi




củaSession.Update()),…
Plane:Lớpmặtphẳng do ARcoretạo ra để Developer
sửdụngđịnhnghĩamặtphẳngngoàiđờithực qua Camera.

3. Unity

5


Unity là một “cross- flatform game engine” tạmhiểu là công cụ pháttriển
game đanềntảngđượcpháttriểnbởi Unity Technologies. Game engine
nàyđượcsử dụngđể pháttrển game trên PC, consoles, thiết bị di độngvà
trên websites.
Chứcnăngcốtlõiđadạng bao gồm: cungcấpcơngcụdựnghình (kếtxuấtđồhọa)
chocáchìnhảnh 2D hoặc 3D, cơngcụvậtlý (tínhtốnvàpháthiệnvachạm),
âmthanh, mãnguồn, hìnhảnhđộng, trítuệnhântạo, phânluồng, tạodị ng
dữliệuxửlý, quảnlýbộnhớ, dựngảnhđồthịvàkếtnốimạng. Nhờcócác engine
màcơngviệclàm game trởnêníttốnkémvàđơngiảnhơn.
Hỗtrợđanềntảng: Mộttrongcácthếmạnhcủa Unity3D
chínhlàkhảnănghỗtrợgầnnhưtồnbộcácnềntảnghiệncó bao gồm:
PlayStation 3, Xbox 360, Wii U, iOS, Android, Windows, Blackberry 10, OS
X, Linux, trìnhduyệt Web vàcả Flash. Nóicáchkhác, chỉvớimộtgói engine,
các studio cóthểlàm game chobấtkỳhệđiềuhànhnàovàdễdàng convert
chúng sang nhữnghệđiềuhànhkhácnhau. Đồngthời,
đâycũnglàgiảiphápchocác game online đanềntảng –
cóthểchơiđồngthờitrênnhiềuhệđiềuhành, phầncứngkhácnhaunhư Web, PC,
Mobile, Tablet….
Dễsửdụng: Unity3D được built trongmộtmơitrườngpháttriểntíchhợp,
cungcấpmộtPhầnmềmtồndiệnchocáclậptrìnhviên, từsoạnthảomãnguồn,
xâydựngcơngcụtựđộnghóađếntrìnhsửalỗi. Do

đượchướngđếnđồngthờicảlậptrìnhviênkhơngchunvà studio
chunnghiệp, nên Unity3D khádễsửdụng. Hơnnữa, đâylàmộttrongnhững
engine phổbiếnnhấttrênthếgiới,
ngườidùngcóthểdễdàngtìmkiếmkinhnghiệmsửdụngcủa “tiềnbối” trêncác
forum cơngnghệ.
Tínhkinhtếcao: Unity Technologies hiệncungcấpbảnmiễnphí engine
Unity3D chongườidùngcánhânvàcácdoanhnghiệpcódoanhthudưới 100.000
USD/năm. Vớibản Pro, ngườidùngphảitrả 1.500 USD/năm – một con
sốrấtkhiêmtốn so vớinhữnggì engine nàymanglại.

6


3. XÂY DỰNG ỨNG DỤNG
3.1. Tổng quan khảosátcácứngdụng liên quan
1.

Khảosát AppStore
 Trên thịtrườngthìchỉcóphầnmềmthiếtkếbằng AR của IKEA
làsửdụngđượcvànóvẫn chưa phổbiếnvớingườidùngphổ thơng khi


cóqítngườibiếtđếnnó.
Mục tiêu của em làphầnmềmnàysẽtạocảmgiác ai
cũngdùngđượcvàdễtiếpcậnđểmởrộngtiềm năng
vàthịtrườngcủabánhàngonline

3.1.2 KhảosátcáccửahàngonlinenhưShoppee, Tiki,…



Cáccủahàng online
đasốkhơngcódanhmụcđồnộithấthoặccónhưngrấtít,



doanhthutừviệcbánđồnộithấtgầnnhưkhơngđángkể
Hiệntạingườidùngvẫndựadẩmvàocácthợthủcơnghoặc ra
cửahàngđểchọnlựasảnphẩmchomìnhchứkhơngđặtmuađồnộithất
qua Phầnmềm online

3.2. Phântích, thiếtkế, càiđặtphầnmềm
3.2.1.1. Phân tích, thiếtkế yêu cầuphầnmềm
3.2.1.2. ucầuchứcnăng

u cầu
REQ-1

REQ-2

REQ-3

Trọngsố ưu tiên

Mơ tả

6

Phầnmềm cho
phépkháchhànglựamónđồnộithấtcầnthiết


6

Phầnmềm cho
phépkháchhàngpháthiệnmặtphẳngcần
trang tríđồnộithất

5

Phầnmềm cho
phépngườidùngđặtmónđồnộithấtmuốn
trang trí lên mặtphẳngxuấthiện
7


REQ-4

REQ-5

REQ-6

REQ-7

REQ-8

REQ-9

8

Phầnmềm cho phépkháchhàng xem danh
sáchcácmónđồnộithấthiệncó


7

Phầnmềm cho phépkháchhàngthay
đổitừnộithấtdướiđất sang trên tường

7

Phầnmềm cho
phépkháchhàngđiềuchỉnhvịtrícủanộithất

7

Phầnmềm cho
phépkháchhàngđiềuchỉnhhướngcủanộithất

7

Phầnmềm cho phépkháchhàngxóa đi
nộithấtthiếtkế khơng như mong muốn

6

Phầnmềm cho
phépkháchhàngchụplạimànhình sau khi
đãthiếtkế

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

Yêu cầu

REQ-10

REQ-11

Trọngsố ưu tiên

Mô tả

7

Ngườidùngcầncómộtthiếtbị tương thíchvới
AR

8

Ngườidùngphảicómạngđểtảiphầnmềmtừap
pstore

3.2.1.4. ucầugiaodiện

u cầu

Trọngsố ưu tiên

Mơ tả

8


REQ-12


REQ-13

REQ-14

REQ-15

2.

8

Phầnmềmcócácnútđểđổi sang
mónnộithấtcầnthiếtkế

8

Phầnmềmcónútđểxóamónnộithấtthiếtkế
khơng như mong muốn

7

Phầnmềmphảicónútchụplạimànhìnhđãthiết
kế

7

MànhìnhphảicónútđểđổithiếtkếgiữaMặtđất
vàMặttường

Đặctả u cầuphầnmềm


3.2.2.1. Các bên liên quan – Stakeholders
Các bên liên quan (stakeholders) lànhữngngườicó liên quan
vàảnhhướngtớicácyếutốhìnhthành nên dựán. Các bên liên quan đếnđềtài bao
gồm:


Kháchhàng

3.2.2.2. Cácactors vàmụctiêu
Actors

Mục tiêu

Usecases

Kháchhàng

Bậtphầnmềmvàcấpquyềncamera

UC-1

Kháchhàng

Tìmkiếmmặtphẳngđểthiếtkếnộithất

UC-2

Kháchhàng


Thayđổidanhmụcnhữngmónđồnộithấttừmặt
đất sang mặttường

UC-3

Kháchhàng

Chọnnộithấtđểthiếtkế trong khơng gian thực UC-4

Kháchhàng

Thiếtkế khơng ưng ý vàmuốnxóavậtđãđặt
trên mặtphẳng khơng gian thực

UC-5

Kháchhàng

Thiếtkếưng ý

UC-6
9


vàlưulạithiếtkếbằngcáchchụpmànhình

3.2.2.3. Cácusecase
Mơ tảtổng quan





UC-1: Cấpquyềncamera – bắtđầusửdụngphầnmềm
UC-2: Tìmkiếmmặtphẳngđểthiếtkếnộithất– đểbắtđầuthiếtkếnộithất
UC-3: Thay đổi danh mụcnhữngmónđồnộithấttừmặtđất sang mặttường–



đểkháchhàngcóthểchọnđịahìnhthiếtkế
UC-4: Chọnnộithấtđểthiếtkế trong khơng gian thực–



đểkháchhàngcóthểchọnvàthiếtkếcácsảnphẩmmìnhthích
UC-5: Thiếtkế khơng ưng ý vàmuốnxóavậtđãđặt trên mặtphẳng khơng
gian thực– đểthiếtkếlại



UC-6: Thiếtkế ưng ý và lưu lạithiếtkếbằngcáchchụpmànhình- đểlưu
lạithiếtkếbằngcáchchụpmànhình

10


3.2.2.3.1.

Sơ đồUseCase

3.2.2.3.2. ĐặctảUseCases

Usecase “Cấpquyền camera”
TênUseCase

UC-1: Cấpquyền camera
11


Tómtắt

Chứcnăngcấpquyền camera

Dịngsựkiệnchính

1. Phầnmềmhiểnthịpopup địiquyền camera
2. Ngườidùngchấpnhận cho quyền camera
3. Phầnmềmkiểm tra vàchạychươngtrình
(Dịngsựkiệnkhác: Khơngchoquyền
camera).
4. Phầnmềmkhơng hoạtđộng

Dịngsựkiệnkhác

1. Khơngchoquyền camera
Phầnmềmhiểnthịlỗivàđịilạiquyền.

Các u cầuđặcbiệt

Khơngcó

TrạngtháiPhầnmềmtrướckhi

thựcthiện use case

Actor: Kháchhàng

TrạngtháiPhầnmềmsaukhith
ựchiện use case

Ngườidùngchophépquyềnvàcóthểtiếnhànhs
ửdụngphầnmềm

Điềukiện: khơngcó

Usecase “Tìmkiếmmặtphẳng”
TênUseCase

UC-2: Tìmkiếmmặtphẳng

Tómtắt

ChứcnăngTìmkiếmmặtphẳng

Dịngsựkiệnchính

1.
Phầnmềmqtcácđiểmấntượngtrênmặtphẳngcầ
nthiếtkế
2.Phầnmềmhiện UI đãpháthiệnđượcmặtphẳng
3.
Phầnmềmchophépngườidùngđặtđồlênmặtphẳn
gđãpháthiện

(Dịngsựkiệnkhác: Khơngkiếmđượcmặtphẳng).
4. Phầnmềmkhơngchophépngườidùngđặtđồvật

Dịngsựkiệnkhác

1.: Khơngkiếmđượcmặtphẳng.
Phầnmềmkhơngchophépngườidùngđặtđồvật

Các u cầuđặcbiệt

Khơngcó

TrạngtháiPhầnmềmtrước
khithựcthiện use case

Actor: Kháchhàng

TrạngtháiPhầnmềmsauk
hithựchiện use case

Ngườidùngpháthiệnmặtphẳngthànhcơngvàchop
hépđặtđồvậtlênmặtphẳng

Điềukiện: cấpquyền camera

12


Usecase “Thayđổidanhmụcnộithất”
TênUseCase


UC-3: Thay đổi danh mụcnộithất

Tómtắt

Kháchhàngcóthểthay đổi danh
mụcnộithất

Dịngsựkiệnchính

1.Ngườidùngchọngiữahaidanhmụctường
vàmặtđất
2. Ngườidùngtiếptụcthiếtkế

Dịngsựkiệnkhác
Các u cầuđặcbiệt

Khơngcó

TrạngtháiPhầnmềmtrướckhithự
cthiện use case

Actor: Kháchhàng

TrạngtháiPhầnmềmsaukhithực
hiện use case

Ngườidùngcóthểthay đổi danh
mụcnộithất


Điểmmởrộng

Khơngcó

Điềukiện: Khơngcó

Usecase “Chọnnộithất”
TênUseCase

UC-4: Chọnnộithất

Tómtắt

Kháchhàngcóthểchọnnộithấtđểthiếtkế

Dịngsựkiệnchính

1. Kháchhàngchọnnộithấtđểthiếtkếtrên
UI
2.
Ngườidùngcóthểđặtnộithấtmìnhđãchọn
(Dịngsựkiệnkhác: Phầnmềm khơng thể
truy cập cơ sởdữliệu.)

Dịngsựkiệnkhác

1. Phầnmềm khơng thể truy cập cơ
sởdữliệu: Lỗitronglúcchọn
13



=>ucầungườidùngnênliênhệvớinhóm
pháttriển.
Các u cầuđặcbiệt

Khơngcó

TrạngtháiPhầnmềmtrướckhithự
cthiện use case

Actor: Kháchhàng

TrạngtháiPhầnmềmsaukhithực
hiện use case

Ngườidùngthiếtkếvớiđồvậtđãchọn

Điểmmởrộng

Khơngcó

Điềukiện: Khơngcó

Usecase “Xóanộithấtđãthiếtkế”
TênUseCase

UC-5: Xóanộithấtđãthiếtkế

Tómtắt


Ngườidùngcóthểxóanộithấtđãthiếtkế

Dịngsựkiệnchính

1. Ngườidùngbấmvào UI xóanộithấtđãthiếtkế
2. Phầnmềmxóanộithấtđãthiếtkếgần
nhất

đây

Dịngsựkiệnkhác
Các u cầuđặcbiệt

Khơngcó

TrạngtháiPhầnmềmtrướckh
ithựcthiện use case

Actor: Kháchhàng

TrạngtháiPhầnmềmsaukhit
hựchiện use case

Ngườidùngxóavậtđặtsaihoặckhơngđúngmong
muốntrênmànhình

Điểmmởrộng

Khơngcó


Điềukiện: Khơngcó

14


Usecase “Chụpmànhìnhsaukhithiếtkế”
TênUseCase

UC-6:Chụpmànhìnhsaukhithiếtkế

Tómtắt

Kháchhàngcóthểchụpmànhìnhsaukhithiết
kế

Dịngsựkiệnchính

1. Kháchhàngbấmnútchụpmànhình
2.
Phầnmềmsẽchụpmànhìnhvàlưuvàomáycủ
akháchhàng
3.Khách hàngcóthể xem mànhìnhđãchụp
ở trong foldercủamáymình

Dịngsựkiệnkhác
Các u cầuđặcbiệt

Khơngcó

TrạngtháiPhầnmềmtrướckhith

ựcthiện use case

Actor: Kháchhàng

TrạngtháiPhầnmềmsaukhithự
chiện use case

Kháchhàngchụpmànhìnhvàcómànhìnhđót
rong folder củakháchhàng

Điểmmởrộng

Khơngcó

Điềukiện: đãcấpquyền

3.2.2.4. Sơ đồSequence
Các sơ đồsequence cho mộtsốUseCase quan trọng

15


3.2.2.4.1.

Sơ đồSequence cho UC-2 –Tìmkiếmmặtphẳng

16


3.2.2.4.2.


Sơ đồSequence cho UC-3 – Thayđổidanhmục

17


3.2.2.4.3.

Sơ đồSequence cho UC-5 – Xóanộithấtđãđặt

18


3.2.2.4.4.

Sơ đồSequence cho UC-6 – Chụpmànhình

19


3.2.2.5. Sơ đồActivity
3.2.2.5.1.

Sơ đồActivity cho UC-2 –Tìmkiếmmặtphẳng

20


3.2.2.5.2.


Sơ đồActivity cho UC-2 –Thayđổidanhmục

21


3.2.2.5.3.

Sơ đồActivity cho UC-2 –Chọnnộithất

22


3.2.2.5.4.

Sơ đồActivity cho UC-2 –Xóanộtthấtđãđặt

23


3.2.2.5.5.

Sơ đồActivity cho UC-2 –Chụpmànhình

3.3. CácápdụngchínhcủaArcore và unity
3.3.1.1. Arcore
 SửdụngArcore plane finding


đểtìmkiếmmặtphẳngđểxửlýquytrìnhcủaphầnmềm
Arcore anchor

đểđảmbảonhữngvậtđượcđặtgiữvịtríđúngtheothờigianvàkhơngg



ianthực
Arcore session config đểđiềuchỉnh camera



vàứngdụngtheoucầu
Arcore Depth API đểnhậndiệnchiềusâucủakhơnggian

24


3.3.1.2. Unity
 Đồánsửdụng Unity đểxâydựngmộtphầnmềm android


sửdụngđươccôngnghệ AR trênđiệnthoạicủangườidùng
Cáccôngnghệcủa unity như Canvas đểthiếtkế UI, Camera
control,cáchệthống scripting của unity, hệthốngquảnlý object
tồntạitrong scene vàcáccôngnghệkháccủa unity
nhằmphụcvụviệcpháttriểnphầnmềm

4. THIẾT KẾ KIỂM THỬ
4.1.
1.

2.


4.2.
4.3.

Môitrườngkiểmthử
Test laptop:
 Unity editor 2020.1.17f
 Internet LAN
 Windows 10, chrome web
 Ram 16gb, chip I7-7700HQ
Test Mobile:
 Samsung S10e cóhỗtrợ AR
 Camera trướckhơngcólỗi
 Phầnmềm
Kếtquảthửnghiệm
 Phầnmềmchạyđầyđủcácchứcnăng
 Thửnghiệmtheousecasehồntồnkhơngcólỗi
Kếtquảsảnphẩm:
 Sảnphẩmtươngđốiđầyđủchứcnăng,
cóthểlàmphânphốinếutiếnhànhthêmvàiquytrìnhthẩmđịnhvàsửach



ứcnăng
UI/UX nhìnđẹpmắt, thờithượng
Phầnmềmchạymượttrênmáy

25



×