GIỚI THIỆU ĐỀ TÀITên đềtài: Phầnmềmthiếtkếnộithấtbằng AR sửdụng công nghệARcore Vớiphầnmềmthiếtkếnộithấtbằng AR của em sẽgiúp cho các công tydesignhoặccáccửahàngbánhàngnộithấtápdụng cô
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
Trang 2MỤ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
Trang 33.3 Các áp dụng chính của Arcore và unity 27
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
Trang 41 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
Vớiphầnmềmthiếtkếnộithấtbằng AR của em sẽgiúp cho các công tydesignhoặccáccửahàngbánhàngnộithấtápdụng công nghệđểtriển khai
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àitoá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
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ềmhoànchỉnh
Kếtquảhướngtới: Mộtphầnmềmvàcógiátrịsửdụng khi triển khai.
Trang 52 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ểnkhai công nghệ AR vàoứngdụngcủamìnhmà không phải nghiên cứu khoahọcvàcáchọcthuật liên quan khác.Thư viên nàygiúpcácdevelopercóthểtìmhiểu hơnvềcác nguyên 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ênlý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
nênsẽkhôngcócácchứcnăngcụthểmàchỉcócácchứcnăngđadụngđểcóthểtriểnkhai ARtrêncácnềntảngkhácnhau
CáctínhnănghiệntạimàARcorecungcấpcho developer:
Anchor: Khi ARcore update môitrườngxungquanhthìnhững 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ủachú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ủacamera, FPS củacamera,…
khảnăngchỉnhlạicáchiệunăngkhácnhaucủaARcorenhưPlaneFindingMode(phươngpháptìmkiếmmặtphẳng),UpdateMode(chỉnhsửahành vi củaSession.Update()),
…
sửdụngđịnhnghĩamặtphẳngngoàiđờithực qua Camera
3 Unity
Trang 6Unity 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ínhtoá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 gametrởnêníttốnkémvàđơngiảnhơn
chínhlàkhảnănghỗtrợgầnnhưtoà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 gamechobấ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ềmtoàndiệnchocáclậptrìnhviên, từsoạnthảomãnguồn,
đượchướngđếnđồngthờicảlậptrìnhviênkhôngchuyênvà studio chuyênnghiệp, nênUnity3D khádễsửdụng Hơnnữa, đâylàmộttrongnhững enginephổ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 Unity3Dchongườidùngcánhânvàcácdoanhnghiệpcódoanhthudưới 100.000 USD/năm VớibảnPro, 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
Trang 7 Mục tiêu của em làphầnmềmnàysẽtạocảmgiác ai
vàthịtrườngcủabánhàngonline3.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 racửahàngđểchọnlựasảnphẩmchomìnhchứkhôngđặtmuađồnộithất quaPhầ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
lên mặtphẳngxuấthiện
Trang 8REQ-4 8 Phầnmềm cho phépkháchhàng xem danh
sáchcácmónđồnộithấthiệncó
đổitừnộithấtdướiđất sang trên tường
phépkháchhàngđiềuchỉnhvịtrícủanộithất
phépkháchhàngđiềuchỉnhhướngcủanộithất
nộithấtthiếtkế không như mong muốn
sau khi đãthiếtkế
3.2.1.3 Yêu cầu phi chức năng
Yêu cầu Trọngsố ưu tiên Mô tả
REQ-10 7 Ngườidùngcầncómộtthiếtbị tương thíchvới AR
3.2.1.4 Yêucầugiaodiện
Yêu cầu Trọngsố ưu tiên Mô tả
Trang 9REQ-12 8 Phầnmềmcócácnútđểđổi sang
mónnộithấtcầnthiếtkế
như mong muốn
REQ-15 7 MànhìnhphảicónútđểđổithiếtkếgiữaMặtđấtvàMặtt
ường
2 Đặctả yê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 quanvàả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 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
Trang 103.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ế
Trang 113.2.2.3.1.Sơ đồUseCase
3.2.2.3.2 ĐặctảUseCases
Usecase “Cấpquyền camera”
Trang 12Tó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)
2.Phầnmềmhiện UI đãpháthiệnđượcmặtphẳng
3
Phầnmềmchophépngườidùngđặtđồlênmặtphẳngđãpháthiện
Trang 13Usecase “Thayđổidanhmụcnộithất”
Dòngsựkiệnkhác 1 Phầnmềm không thể truy cập cơ sởdữliệu:
Trang 14Lỗitronglúcchọn
=>Yêucầungườidùngnênliênhệvớinhómpháttriển
Trang 153.Khách hàngcóthể xem mànhìnhđãchụp ở trong foldercủamáymình
Trang 163.2.2.4.1.Sơ đồSequence cho UC-2 –Tìmkiếmmặtphẳng
Trang 173.2.2.4.2.Sơ đồSequence cho UC-3 – Thayđổidanhmục
Trang 183.2.2.4.3.Sơ đồSequence cho UC-5 – Xóanộithấtđãđặt
Trang 193.2.2.4.4.Sơ đồSequence cho UC-6 – Chụpmànhình
Trang 203.2.2.5 Sơ đồActivity
3.2.2.5.1.Sơ đồActivity cho UC-2 –Tìmkiếmmặtphẳng
Trang 213.2.2.5.2.Sơ đồActivity cho UC-2 –Thayđổidanhmục
Trang 223.2.2.5.3.Sơ đồActivity cho UC-2 –Chọnnộithất
Trang 233.2.2.5.4.Sơ đồActivity cho UC-2 –Xóanộtthấtđãđặt
Trang 243.2.2.5.5.Sơ đồActivity cho UC-2 –Chụpmànhình
Arcore session config đểđiềuchỉnh camera vàứngdụngtheoyêucầu
Arcore Depth API đểnhậndiệnchiềusâucủakhônggian
Trang 25 Windows 10, chrome web
Ram 16gb, chip I7-7700HQ
2 Test Mobile:
Samsung S10e cóhỗtrợ AR
Camera trướckhôngcólỗi
Phầnmềm4.2 Kếtquảthửnghiệm
Trang 265 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
5.1 Kếtquảđạtđược
HọctậpđượccáchsửdụngARcore
Họctậpđượccác nguyên lýthiếtkếmộtphầnmềm AR
Họctậpđượccác công nghệUnityđểpháttriểnmộtphầnmềmandroid
Phầnmềmcógiátrịsửdụngkểcả cho ngườimới
5.1.1.1 Hạnchế
Không cóđủthời gian đểpháttriển thêm
Không cóđồngđộiđểbànbạc, có ý kiếnkhách quan hơn
Không cótàiliệuphổ thông như cácnghiệpvụkhác
Không deploy lên Appstorevì không đủkhả năng và chi phí
Phầnmềmcòn tương đối sơ sài chưa thểgọilàhoànchỉnh
5.1.1.2 Hướngpháttriển
Trang 27 Thêm thắtcácmodelnộithấtđể đa dạnghóasảnphẩm
6 TÀI LIỆU THAM KHẢO