Công nghệ này đang được sử dụng rộng rãi trong nhiều lĩnh vực như giải trí, thương mại, giáo dục,… Với điểm mạnh là tăng cường tính trải nghiệm thực tế người dùng, công nghệ thực tế tăng
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
HUỲNH QUỐC TRUNG
LÊ QUỐC PHƯƠNG
KHÓA LUẬN TỐT NGHIỆP
ỨNG DỤNG CÔNG NGHỆ THỰC TẾ TĂNG CƯỜNG TRONG XÂY DỰNG HỆ THỐNG KINH DOANH ĐỒ NỘI
THẤT
APPLYING VIRTUAL REALITY TECHNOLOGY IN BUILDING
A FURNITURE BUSINESS SYSTEM
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
Trang 2ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
HUỲNH QUỐC TRUNG - 17520184
LÊ QUỐC PHƯƠNG - 17520134
KHÓA LUẬN TỐT NGHIỆP
ỨNG DỤNG CÔNG NGHỆ THỰC TẾ TĂNG CƯỜNG TRONG XÂY DỰNG HỆ THỐNG KINH DOANH ĐỒ NỘI
THẤT
APPLYING VIRTUAL REALITY TECHNOLOGY IN BUILDING
A FURNITURE BUSINESS SYSTEM
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
GIẢNG VIÊN HƯỚNG DẪN ThS HUỲNH HỒ THỊ MỘNG TRINH
Trang 3THÔNG TIN HỘI ĐỒNG CHẤM KHÓA LUẬN TỐT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ……… ngày ……… của Hiệu trưởng Trường Đại học Công nghệ Thông tin
1 ……… – Chủ tịch
2 ……… – Thư ký
3 ……… – Ủy viên
4 ……… – Ủy viên
Trang 4LỜI CẢM ƠN
Để có thể hoàn thành khóa luận một cách hoàn chỉnh, nhóm em đã nhận được rất nhiều sự hướng dẫn nhiệt tình của quý Thầy Cô Vì vậy, nhóm xin phép được gửi những lời cảm ơn chân thành nhất
Đầu tiên, nhóm em xin chân thành cảm ơn và bày tỏ lòng biết ơn sâu
sắc nhất đến ThS Huỳnh Hồ Thị Mộng Trinh, cô đã tận tình chỉ bảo,
hướng dẫn, truyền đạt những kinh nghiệm, kiến thức chuyên môn và các tài liệu liên quan để nhóm có thể hoàn thanh khóa luận tốt nhất Nhóm xin gởi đến cô những lời tri ân nhất đối với những điều mà cô đã dành cho nhóm
Nhóm cũng xin chân thành cảm ơn toàn thể quý thầy cô trong khoa Công Nghệ Phần Mềm và toàn thể quý thầy cô của Trường Đại Học Công Nghệ Thông Tin TP.HCM Quý thầy cô đã luôn tận tình truyền đạt những kiến thức, kinh nghiệm quý báu cũng như tạo mọi điều kiện thuận lợi nhất cho nhóm trong suốt quá trình học tập tại trường và đặc biệt hơn
là trong suốt quá trình thực hiện khóa luận này
Sau cùng, nhóm xin kính chúc toàn thể quý thầy cô trong khoa
Công Nghệ Phần Mềm, ThS Huỳnh Hồ Thị Mộng Trinh luôn dồi dào
sức khỏe, sự nhiệt huyết và thành công trong cuộc sống cũng như trong
sứ mệnh truyền đạt kiến thức cho các thế hệ trẻ mai sau
TP Hồ Chí Minh, ngày 30 tháng 06 năm 2021
Sinh viên 1 Sinh viên 2
Huỳnh Quốc Trung Lê Quốc Phương
Trang 5MỤC LỤC
TÓM TẮT KHÓA LUẬN 1
MỞ ĐẦU 2
Chương 1 TỔNG QUAN 4
1.1 Đặt vấn đề 4
1.2 Các ứng dụng tương tự 4
1.2.1 Houzz 5
1.2.2 Room Planner 6
1.2.3 Ứng dụng HomeStyler 7
1.2.4 Vấn đề của các phần mềm hiện tại 8
1.2.5 Hướng giải quyết vấn đề 8
1.2.6 Tóm lược 9
1.3 Mục tiêu 9
1.4 Phạm vi ứng dụng 10
Chương 2 TỔNG QUAN CÔNG NGHỆ 12
2.1 Công nghệ thực tế ảo tăng cường - Augmented Reality 12
2.1.1 Phần cứng 12
2.1.2 Ứng dụng của thực tế ảo tăng cường 12
2.2 ARCore 13
2.3 Unity 15
2.4 ReactJS và Redux 16
2.4.1 ReactJS 16
2.4.2 Redux 17
2.5 Firebase 19
Trang 62.5.1 Giới thiệu tổng quan 19
2.5.2 Ưu điểm của Firebase 20
2.5.3 Nhược điểm của Firebase 21
Chương 3 PHÂN TÍCH THIẾT KẾ ỨNG DỤNG 22
3.1 Phân tích 22
3.1.1 Danh sách yêu cầu của hệ thống 22
3.1.2 Đặc tả Use case 23
3.2 Thiết kế 31
3.2.1 Thiết kế lớp 31
3.2.2 Thiết kế giao diện 36
3.2.3 Thiết kế kiến trúc hệ thống 51
Chương 4 XÂY DỰNG ỨNG DỤNG 55
4.1 Thu thập và xử lý dữ liệu 55
4.1.1 Thu thập dữ liệu 55
4.1.2 Xử lý dữ liệu 56
4.2 Xây dựng ứng dụng 60
4.2.1 Ứng dụng Android 60
4.2.2 Ứng dụng Website 67
4.3 Triển khai 73
4.3.1 Ứng dụng ARFurnitureStore 73
4.3.2 Website ARFurnitureStore 73
4.3.3 Cơ sở dữ liệu Firebase 73
Chương 5 KẾT LUẬN 74
5.1 Kết quả đạt được 74
Trang 75.2 Thuận lợi, khó khăn và hướng phát triển 75
5.2.1 Thuận lợi 75
5.2.2 Khó khăn thách thức 75
5.2.3 Hướng phát triển 76
TÀI LIỆU THAM KHẢO 77
Trang 8DANH MỤC HÌNH ẢNH
Hình 1-1 Houzz - Ứng dụng trang trí nội thất 5
Hình 1-2 Ứng dụng RoomPlanner 6
Hình 1-3 Ứng dụng Homestyler 7
Hình 2-1 Ứng dụng công nghệ thực tế ảo tăng cường vào giáo dục 13
Hình 2-2 Ứng dụng ARCore vào sản phẩm 14
Hình 2-3 ARCore đo đạc, phát hiện mặt phẳng trong thế giới thực 15
Hình 2-4 Logo Unity 15
Hình 2-5 Logo ReactJS 16
Hình 2-6 Sự khác nhau giữa không sử dụng và sử dụng Redux 18
Hình 2-7 Logo của Firebase 19
Hình 2-8 Các nhóm sản phẩm của Firebase 20
Hình 3-1 Sơ đồ Use case 23
Hình 3-2 Sơ đồ thiết kế lớp 31
Hình 3-3 Sơ đồ các màn hình trên ứng dụng android 36
Hình 3-4 Sơ đồ màn hình ứng dụng website 37
Hình 3-5 Màn hình đăng nhập, đăng ký 38
Hình 3-6 Màn hình quét không gian 39
Hình 3-7 Màn hình bố trí nội thất 40
Hình 3-8 Màn hình danh mục sản phẩm 41
Hình 3-9 Màn hình chi tiết sản phẩm 42
Hình 3-10 Màn hình giỏ hàng 44
Hình 3-11 Màn hình danh sách sản phẩm yêu thích 45
Hình 3-12 Màn hình theo dõi đơn hàng 46
Hình 3-13 Màn hình quản lý danh sách danh mục 47
Hình 3-14 Màn hình thêm mới danh mục 48
Hình 3-15 Màn hình quản lý sản phẩm 49
Hình 3-16 Màn hình thêm mới sản phẩm 50
Hình 3-17 Kiến trúc tổng thế 51
Trang 9Hình 3-18 Kiến trúc ReactJS client 52
Hình 3-19 Kiến trúc ReactJS client 53
Hình 3-20 Kiến trúc tầng Firebase 54
Hình 4-1 Định dạng phổ biến nhất của mô hình 3D 55
Hình 4-2 Các mô hình 3D đi kèm theo file apk 56
Hình 4-3 Phương pháp sử dụng Addressable để cung cấp mô hình 3D 57
Hình 4-4 Tích hợp model-viewer vào ứng dụng website xem sản phẩm 59
Hình 4-5 Các khóa học AR trên Udemy 60
Hình 4-6 Cấu hình cho phiên làm việc của AR Core 61
Hình 4-7 Ứng dụng đặt các mô hình đơn giản 62
Hình 4-8 Thiết kế màn hình ứng dụng AR Furniture Store trên Figma 63
Hình 4-9 Màn hình trang trí nội thất 65
Hình 4-10 Xử lý va chạm 65
Hình 4-11 Mô phỏng trang trí nội thất 66
Hình 4-12 Xử lý đổ bóng chân thực 67
Hình 4-13 Màn hình đăng nhập 68
Hình 4-14 Màn hình danh mục sản phẩm 69
Hình 4-15 Màn hình chi tiết sản phẩm 70
Hình 4-16 Màn hình giỏ hàng 71
Hình 4-17 Màn hình đặt mua hàng 72
Hình 4-18 Màn hình quản lý 72
Trang 10DANH MỤC BẢNG
Bảng 1-1 Bảng so sánh chức năng giữa các ứng dụng trang trí nội thất 9
Bảng 3-1 Danh sách yêu cầu của hệ thống 22
Bảng 3-2 Danh sách Use case 23
Bảng 3-3 Đặc tả chức năng đăng nhập 24
Bảng 3-4 Đặc tả chức năng khởi tạo không gian 25
Bảng 3-5 Đặc tả chức năng bố trí nội thất 26
Bảng 3-6 Đặc tả chức năng xóa sản phẩm trong không gian 27
Bảng 3-7 Đặc tả chức năng xem danh mục, thông tin sản phẩm 28
Bảng 3-8 Đặc tả chức năng đặt mua sản phẩm 29
Bảng 3-9 Đặc tả chức năng quản lý danh mục sản phẩm 29
Bảng 3-10 Danh sách lớp 31
Bảng 3-11 Danh sách thuộc tính lớp USER 32
Bảng 3-12 Danh sách thuộc tính lớp PRODUCT 32
Bảng 3-13 Danh sách thuộc tính lớp CATEGORY 33
Bảng 3-14 Danh sách thuộc tính lớp CART 33
Bảng 3-15 Danh sách thuộc tính lớp BRANCH 34
Bảng 3-16 Danh sách thuộc tính lớp TRANSFER 34
Bảng 3-17 Danh sách thuộc tính lớp ORDER 34
Bảng 3-18 Danh sách thuộc tính lớp RATING 35
Bảng 3-19 Danh sách màn hình 37
Bảng 3-20 Bảng thành phần giao diện màn hình đăng nhập 39
Bảng 3-21 Bảng thành phần giao diện quét không gian 40
Bảng 3-22 Bảng thành phần giao diện bố trí nội thất 41
Bảng 3-23 Bảng thành phần màn hình danh mục sản phẩm 42
Bảng 3-24 Bảng thành phần màn hình chi tiết sản phẩm 43
Bảng 3-25 Bảng thành phần màn hình giỏ hàng 44
Bảng 3-26 Bảng thành phần màn hình sản phẩm yêu thích 45
Bảng 3-27 Bảng thành phần màn hình theo dõi đơn hàng 46
Trang 11Bảng 3-28 Bảng thành phần màn hình quản lý danh sách danh mục 47
Bảng 3-29 Bảng thành phần màn hình thêm mới danh mục 49
Bảng 3-30 Bảng thành phần màn hình quản lý sản phẩm 50
Bảng 3-31 Bảng thành phần màn hình thêm mới sản phẩm 51
Bảng 3-32 Bảng mô tả kiến trúc ReactJS client 52
Bảng 3-33 Bảng mô tả kiến trúc Unity 53
Bảng 3-34 Bảng mô tả kiến trúc tầng Firebase 54
Trang 12DANH MỤC TỪ VIẾT TẮT
AR Thực tế ảo tăng cường Augmented reality
Trang 13TÓM TẮT KHÓA LUẬN
Với sự phát triển không ngừng trong thời đại 4.0, nhu cầu về công nghệ của con người ngày càng được nâng cao hơn Xu hướng công nghệ hiện nay là tạo ra các môi trường ảo để tăng cường tính trải nghiệm trực quan trong thế giới thực Công nghệ này đang được sử dụng rộng rãi trong nhiều lĩnh vực như giải trí, thương mại, giáo dục,… Với điểm mạnh là tăng cường tính trải nghiệm thực tế người dùng, công nghệ thực tế tăng cường này có thể áp dụng vào lĩnh vực trang trí nội thất Ở các cửa hàng nội thất, việc trang trí nội thất
có sẵn sẽ tốn nhiều diện tích, không gian Bên cạnh đó, khách hàng không có được cái nhìn cụ thể về sản phẩm sẽ được trang trí như thế nào trong không gian của mình Do đó, việc áp dụng công nghệ thực tế tăng cường để tái tạo lại môi trường, giúp khách hàng có cái nhìn trực quan về sản phẩm cũng như giải quyết được các vấn đề của cửa hàng nội thất
Sau khi hoàn thành đề tài khóa luận, em thu được kết quả:
- Kiến thức về triển khai phần mềm
- Kiến thức về công nghệ thực tế tăng cường
- Kiến thức về ứng dụng thương mại điện tử
Trang 14MỞ ĐẦU
Ngày nay, công nghệ đang phát triển bùng nổ, chúng ta ngày càng thích ứng với những công nghệ mới, những kỹ thuật mới Đặc biệt các lĩnh vực liên quan tới môi trường ảo đang được các doanh nghiệp trong nước và nước ngoài quan tâm phát triển Với điểm mạnh giúp tăng tính trải nghiệm thực tế cho người dùng, công nghệ thực tế tăng cường đã mang lại nhiều ý tưởng cho các doanh nghiệp liên quan đến lĩnh vực thiết kế nói chung và các cửa hàng nội thất nói riêng Đối với các doanh nghiệp nội thất, việc trưng bày các sản phẩm của
họ tốn rất nhiều chi phí về mặt bằng cũng như nhân lực Ngoài ra, khách hàng cũng không thể có cái nhìn trực quan về sản phẩm trong không gian của họ nên
sẽ có trường hợp mua sản phẩm nhưng lại không ưng ý về sau
Với công nghệ thực tế tăng cường, khách hàng cũng như doanh nghiệp có thể giải quyết được các vấn đề của cả hai bên Những đồ nội thất sẽ được mô phỏng bằng môi trường ảo trong thế giới thực một cách chi tiết và chân thật, qua
đó giúp cho khách hàng có cái nhìn trực quan về sản phẩm họ sắp mua, cũng như doanh nghiệp giảm chi phí trưng bày sản phẩm và nhân lực
Công nghệ thực tế tăng cường là công nghệ mới, chưa phổ biến tại nước
ta và chưa đượclàm quen tìm hiểu Vì thế việc tạo ra một hệ thống thực tế tăng cường cũng đặt ra nhiều thách thức và khó khăn Người dùng muốn sử dụng được hệ thống cần phải sử dụng các thiết bị hỗ trợ thực tế tăng cường Trên thị trường hiện nay, các thiết bị công nghệ hỗ trợ thực tế tăng cường ngày càng nhiều, mở ra những tiềm năng mới cho công nghệ này
Nội dung thực hiện:
- Xây dựng ứng dụng hệ thống kinh doanh đồ dùng nội thất
- Xây dụng ứng dụng di động các chức năng thực tế tăng cường, hỗ trợ khách hàng trang trí các đồ dùng nội thất vào trong không gian thực tế của khách hàng
- Xây dựng các chức năng cơ bản của thương mại điện tử
Trang 15- Xây dựng website quản lý cửa hàng cho doanh nghiệp nội thất
Bố cục báo cáo gồm có 5 chương chính:
- Chương 1: Tổng quan
- Chương 2: Tổng quang về công nghệ
- Chương 3: Phân tích thiết kế ứng dụng
- Chương 4: Xây dựng ứng dụng
- Chương 5: Tổng kết
Trang 16Chương 1 TỔNG QUAN
1.1 Đặt vấn đề
Hiện nay, nhu cầu trang trí nội thất ngày càng tăng cao, nhưng thực tế khách hàng hầu như không có cái nhìn trực quan về tính hợp lý khi trang trí các sản phẩm vào trong không gian của mình Do đó, khách hàng có thể có những sự lựa chọn sai
và tốn thời gian để trang trí đồ dùng Nhận thấy được vấn đề đó, nhóm em đã đưa ra
ý tưởng thực hiện ứng dụng hệ thống kinh doanh đồ dùng nội thất sử dụng công nghệ thực tế ảo tăng cường Theo đó, ứng dụng sẽ là một ứng dụng trang trí nội thất vào trong không gian của người dùng
Ứng dụng sẽ được áp dụng công nghệ thực tế ảo tăng cường để tăng tính trải nghiệm cho người dùng, nhằm mô phỏng lại toàn bộ không gian thực tế của người dùng sau khi trang trí đồ dùng nội thất Những đồ nội thất, không gian và ánh sáng cũng sẽ được tối ưu để mang lại cho người dùng cái nhìn tốt nhất về sản phẩn nội thất Từ đó, người dùng sẽ nhận thấy được tính hợp lý của các đồ dùng nội thất và
sẽ giảm tránh việc lựa chọn sai sản phẩm, tốn thời gian mua hàng
Sau khi trang trí cho không gian, nếu người dùng thích thú với các đồ dùng nội thất, người dùng có thể đặt mua hoặc liên hệ với cửa hàng nội thất qua các chức năng thương mại điện tử Đây được xem là cầu nối giữa người mua hàng, cửa hàng kinh doanh đồ nội thất Bên cạnh đó, đối với các cửa hàng bán đồ nội thất, sản phẩm sẽ giúp giảm bớt chi phí về nhân lực quản lý, không gian mặt bằng,…
1.2 Các ứng dụng tương tự
Hiện nay, trên thị trường trong nước và ngoài nước có nhiều ứng dụng cung cấp chức năng trang trí và đặt mua sản phẩm nội thất Giúp tăng tính trải nghiệm cho người dùng trong việc sắp xếp bố trí đồ dùng cũng như đặt mua dễ dàng Người dùng có thể tương tác trực tiếp trên ứng dụng để có thể có cái nhìn tổng quan về sản phẩm nội thất khi được bố trí vào không gian của mình Các ứng dụng đều có các
Trang 17chức năng tương đối đủ để đem lại cho khách hàng những trải nghiệm tốt nhất Mà trong đó ta có thể kể đến như: Houzz, IKEA Place, Room Planner, Homestyler…
1.2.1 Houzz
Houzz là một trong những ứng dụng phổ biến trong thiết kế nội thất Với Houzz, người dùng có thể xem các sản phẩm nội thất để làm ý tưởng cho không gian của mình Ngoài ra người dùng còn có thể mua sắm các đồ dùng và thử nó vào không gian thông qua công nghệ thực tế tăng cường Bên cạnh đó người dùng
có thể tìm đọc các thông tin, mẹo trong việc sắp xếp không gian và nhận tư vấn, nhận xét từ những thiết kế của mình
Hình 1-1 Houzz - Ứng dụng trang trí nội thất Người dùng duyệt ảnh theo phòng, phong cách và vị trí, đồng thời đánh dấu các ảnh trong bộ sưu tập cá nhân mà trang web Người dùng có thể nhấp vào hình ảnh để tìm hiểu thêm về nhà thiết kế, đặt câu hỏi và tìm hiểu về các sản phẩm được gắn thẻ trong ảnh
Trang 18Ngoài các chức năng xem sản phẩm trong môi trường thực tế ảo, Houzz còn
có các chức năng cơ bản của thương mại điện tử như đặt mua hàng, đánh giá sản phẩm, …
1.2.2 Room Planner
Ứng dụng Room Planner là công cụ thiết kế nhà và nội thất trực tuyến cho phép người thiết kế không gian xung quanh, trang trí đồ nội thất và biểu diễn công trình trong môi trường 3D
Hình 1-2 Ứng dụng RoomPlanner Room Planner có 2 chức năng chính là biểu diễn thiết kế trong không gian dưới góc nhìn 2D và 3D, cho phép người dùng di chuyển trong không gian 3D Với thiết kế sàn ở góc nhìn 3D thì ảnh được lưu sẽ là ảnh 360 Những tiến trình thiết kế cũng sẽ được lưu lại Ảnh hướng nhìn 2D sẽ là ảnh được chụp từ trên xuống Ứng dụng sẽ cho phép người dùng di chuyển trong không gian 3D
Trang 19Khi có ảnh 360 được chụp, ứng dụng sẽ cho phép người dùng xem ảnh với kiểu nhìn 360
Tuy nhiên, hiện tại với tài khoản miễn phí, người dùng chỉ có thể thực hiện một vài chức năng cơ bản Để sử dụng toàn bộ chức năng, người dùng phải tốn phí để được nâng cấp tài khoản
1.2.3 Ứng dụng HomeStyler
Ứng dụng Homestyler là ứng dụng giúp cho người dùng thiết kế và trang trí căn phòng của mình Với Homestyle, người dùng có thể chụp ảnh không gian để tạo một phòng ảo Sau đó người dùng có thể bố trí các đồ nội thất vào không gian
đã tạo
Hình 1-3 Ứng dụng Homestyler Ngoài ra Homestyler còn hỗ trợ chức năng sử dụng công nghệ thực tế ảo tăng cường, giúp cho người dùng có thể xem sản phẩm tổng quan nhất có thể Các chức năng chính của Homestyler như:
- Đặt mô hình 3D chất lượng cao của các sản phẩm nội thất thực trong phòng của bạn
- Xóa các vật thể hiện có để thử các ý tưởng mới
Trang 20- Hình dung các kết hợp sản phẩm khác nhau
- Xem cách mô hình thực tế của thảm, tranh, gương và thực tế hơn trong không gian của bạn
1.2.4 Vấn đề của các phần mềm hiện tại
Công nghệ thực tế ảo tăng cường yêu cầu thiết bị phù hợp, hỗ trợ tính năng này Do đó có thể phần mềm sẽ không thích ứng trên một số thiết bị không hỗ trợ tính năng này Tuy nhiên công nghệ này đang phát triển, và hầu hết các thiết bị mới đã dần dần có hỗ trợ tính năng này
Để đáp ứng được tính chân thật nhất về các sản phẩm nội thất, yêu cầu phần mềm phải xử lý tốt các phần như ánh sáng, môi trường và không gian Từ những hiệu ứng này sẽ mang lại cho người dùng trải nghiệm thực tế hơn về sản phẩm Việc cải thiện chất lượng đồ họa trong môi trường thực tế ảo tăng cường sẽ tác động đến những mô hình nội thất
Sau khi trang trí xong không gian của mình, việc đặt mua các sản phẩm là nhu cầu tiếp theo của khách hàng Việc hỗ trợ các tính năng về thương mại điện
tử sẽ đáp ứng được nhu cầu của khách hàng cũng như đem lại lợi ích cho doanh nghiệp kinh doanh nội thất
1.2.5 Hướng giải quyết vấn đề
Xây dựng ứng dụng có chức năng thực tế ảo tăng cường hỗ trợ việc trang trí không gian của người dùng, nhằm giúp mô phỏng cho người dùng có cái nhìn trực quan hơn về các đồ nội thất mà doanh nghiệp đang kinh doanh
Phát triển tính năng thương mại điện tử kết hợp với công nghệ thực tế ảo tăng cường nhằm đáp ứng được nhu cầu của khách hàng cũng như doanh nghiệp Thiết kế môi trường ảo tốt nhất, cải thiện phần mềm nhằm giúp cho người dùng có những trải nghiệm về không gian cũng như đồ họa thực tế nhất có thể Xây dựng phần mềm quản lý dành cho doanh nghiệp, nhằm giúp doanh nghiệp có thể quản lý được thông tin của các cửa hàng cũng như khách hàng
Trang 211.2.6 Tóm lược
Sau khi sử dụng các ứng dụng tương tự trên thị trường hiện nay, ta có thể đưa ra bảng so sánh tổng quan các chức năng hiện có của các ứng dụng như sau: Bảng 1-1 Bảng so sánh chức năng giữa các ứng dụng trang trí nội thất
Houzz RoomPlanner Homestyler ARFurnitureStore
ảo tăng cường và các chức năng thương mại điện tử Do đó, việc ứng dụng công nghệ thực tế ảo vào hệ thống kinh doanh nội thất sẽ mang lại cho người dùng trải nghiệm tốt nhất Bên cạnh đó, việc kết hợp này giúp giải quyết được các vấn đề cho khách hàng cũng như doanh nghiệp
1.3 Mục tiêu
Từ bảng so sánh các chức năng ở trên nhóm em đưa ra đề xuất xây dựng hệ thống kinh doanh đồ dùng nội thất với các chức năng như:
Trang 22- Xem đồ dùng nội thất dưới dạng 3D
- Tích hợp công nghệ thực tế ảo tăng cường vào việc trang trí đồ dùng nội thất
Hệ thống được cung cấp thông tin đồ nội thất, trang trí nội thất như bàn, ghế, sofa, giường hay các chậu cây nhỏ, Hệ thống sử dụng bộ cơ sở dữ liệu được cửa hàng cung cấp Cụ thể là thông tin về những đồ nội thất mà cửa hàng đang kinh doanh gồm: mô hình ba chiều, kích thước, vật liệu Dữ liệu về mô hình ba chiều sẽ được thêm trực tiếp vào website quản trị, và dữ liệu này sẽ được đồng bộ với trên cả ứng dụng website và ứng dụng di động
Các chức năng chính và thao tác của phần mềm đều được thực hiện trong môi trường thực tế ảo tăng cường Người dùng sẽ có cái nhìn trực quan hơn trong việc
bố trí các đồ dùng nội thất vào không gian mà không cần phải sừ dụng đồ dùng thật Các chức năng thương mại cho phép khách hàng dễ dàng đặt mua các sản phẩm trực tiếp trên ứng dụng mà không cần phải trực tiếp vào của hàng Với sự phát triển mạnh mẽ của ngành thương mại điện tử, sự kết hợp này sẽ mang lại nhiều
Trang 23tiềm năng cũng như sự phát triển cho các doanh nghiệp kinh doanh đồ dùng nội thất
Trang 24Chương 2 TỔNG QUAN CÔNG NGHỆ
2.1 Công nghệ thực tế ảo tăng cường - Augmented Reality
Thực tế ảo tăng cường (Augment Reality) là góc nhìn trực tiếp hay gián tiếp
về môi trường vật lý, thực tế nơi mà các yếu tố được tăng cường bởi những thông tin nhận thức do máy tính tạo ra trên nhiều phương thức cảm quan bao gồm thị giác, thính giác, xúc giác và khứu giác
Giá trị chính của thức tế tăng cường là nó đưa ra các thành phần của thế giới
số vào nhận thức của con người về thế giới thật thông qua việc tích hợp cảm giác nhập vai Các hệ thống AR đầu tiên cung cấp những trải nghiệm nhập vai đầu tiên được phát minh vào năm 1990
hỗ trợ được nền tảng AR Sau đó sử dụng các thuật toán và công nghệ khác đi kèm để tái lập hình ảnh của vật thể vào không gian thực Ví dụ, khi tạo ra một chiếc ghế ảo, thiết bị cần tính toán sao cho đặt chiếc ghế đó vào không gian thật (nhà ở, văn phòng) sao cho chuẩn xác nhất theo kích thước thực tế
2.1.2 Ứng dụng của thực tế ảo tăng cường
Ngày nay, công nghệ thực tế ảo đang được ứng dụng rộng rãi trong nhiều lĩnh vực như: Kinh doanh, dạy học, nghiên cứu, trò chơi giải trí,… Chẳng hạn
Trang 25như trong lĩnh vực giáo dục, để nâng cao chất lượng đào tạo, hiện nay rất nhiều nhà phát triển, điển hình trong đó là Microsoft đã ứng dụng công nghệ thực tế ảo tăng cường vào giảng dạy Công nghệ thực tế ảo sẽ tái hiện chân thật các mô hình như: Máy móc, chi tiết cơ khí, các bộ phận cấu tạo cơ thể người và rất nhiều thứ khác vào trong không gian thực tế
Hình 2-1 Ứng dụng công nghệ thực tế ảo tăng cường vào giáo dục
2.2 ARCore
ARCore cung cấp SDK cho nhiều môi trường phát triển phổ biến nhất Các SDK này cung cấp các API gốc cho tất cả các tính năng AR cần thiết do chính Google phát triển, bao gồm 3 công nghệ chính hỗ trợ cho nhà phát triển:
- Theo dõi chuyển động: điện thoại của chúng ta có thể biết nó đang ở đâu trong thế giới thực
- Phát hiện môi trường: khả năng nhận diện các mặt phẳng như mặt bàn, mặt đất, tường, trong thế giới thực thông qua camera
- Điều chỉnh ánh sáng: có thể phát hiện được cường độ ánh sáng qua lens của camera và điểu chỉnh ánh sáng phù hợp với mẫu ảo
Trang 26Theo dõi chuyển động của ARCore dựa trên 2 thông tin: thông tin hình ảnh từ máy ảnh và các phép đo quán tính bằng đơn vị đo lường quán tính (IMU) của thiết
bị
Hình 2-2 Ứng dụng ARCore vào sản phẩm Môi trường thực tế ảo tăng cường được kết hợp với hình ảnh trong thế giới thực thu được từ máy ảnh của thiết bị với nội dung ảo, chẳng hạn như các đối tượng 3D hoặc thông tin kỹ thuật số
Khi điện thoại di chuyển khắp môi trường xung quanh, ARCore sẽ theo dõi
vị trí của điện thoại so với thế giới xung quanh Quá trình này được gọi là COM hay
đo đạc và ánh xạ
ARCore xem xét dữ liệu thu được từ camera và phát hiện các đặc điểm khác biệt, được gọi là điểm đặc trưng Sau đó, hệ thống sẽ sử dụng những điểm này để tìm ra sự thay đổi vị trí của nó Thông tin hình ảnh được kết hợp với các phép đo quán tính từ thiết bị để ước tính vị trí và hướng của máy ảnh so với thế giới thực theo thời gian
Trang 27Hình 2-3 ARCore đo đạc, phát hiện mặt phẳng trong thế giới thực
Bằng cách căn chỉnh vị trí và hướng của camera ảo hiển thị nội dung 3D đúng với vị trí và hướng của camera trên thiết bị, ARCore hiển thị nội dung ảo từ góc nhìn chính xác Hình ảnh ảo đó được phủ lên trên hình ảnh camera của thiết bị, làm cho nội dung ảo xuất hiện như một phần của thế giới thực
2.3 Unity
Unity là một game engine chuyên phát triển các trò chơi điện tử trên PC, console, android, iOS, và là một trong những engine cho phép ứng dụng ARCore mạnh mẽ nhất ở thời điểm hiện tại
Hình 2-4 Logo Unity
Trang 28Mặc dù Unity không được dùng với mục đích chính là làm phần mềm, nhưng với sự hỗ trợ mạnh mẽ về AR cũng như có kiến thức nền tảng về engine này nhất, Unity là một lựa chọn hợp lý để thực hiện khóa luận có ứng dụng AR
Sức mạnh của ReactJS xuất phát từ việc tập trung vào các thành phần riêng
lẻ Chính vì vậy, thay vì làm việc trên toàn bộ ứng dụng web, ReactJS cho phép một developer có thể phân tách giao diện người dùng phức tạp thành các thành phần đơn giản hơn
Đặc điểm nổi bật của ReactJS:
- ReactJS tạo ra cho chính nó các phần tử DOM ảo – React tạo ra một bộ nhớ cache cấu trúc dữ liệu trong bộ nhớ, tính toán sự khác biệt kết quả và sau đó
Trang 29cập nhật DOM được hiển thị của trình duyệt một cách hiệu quả Giúp cải thiện hiệu suất trên sản phẩm
- Giúp việc viết các đoạn code Javascript dễ dàng hơn: ReactJS sử dụng cú pháp đặc biệt là JSX cho phép ta có code HTML trong code Javascript
- Hiệu năng cao đối với các ứng dụng có dữ liệu thay đổi liên tục, dễ dàng sửa lỗi và bảo trì
Nhược điểm:
- ReactJS là thư viện ở tầng UI không phải MVC framework, chỉ giúp tạo ra phần view Do đó muốn tích hợp vào framework MVC phải cấu hình lại và kết hợp với nhiều công cụ khác
- Không phù hợp với SEO
- Khó tiếp cận cho người mới
2.4.2 Redux
Redux là công cụ quản lý trạng thái cho các ứng dụng Javascript được lấy cảm hứng từ kiến trúc Flux của Facebook Giúp quản lý các trạng thái một cách nhất quán và dễ dàng kiểm thử
Redux thường là được dùng thường xuyên với React Tuy nhiên hoàn toàn
có thể sử dụng với các framework khác như Angular, Angular, Backbone, Falcor, Deku…
Trang 30Hình 2-6 Sự khác nhau giữa không sử dụng và sử dụng Redux
Redux được xây dựng dựa trên 3 nguyên lý:
- Nguồn dữ liệu duy nhất: State của toàn bộ ứng được chứa trongStore
duy nhất
- Trạng thái chỉ được phép đọc: Cách duy nhất để thay đổi trạng thái của
ứng dụng là phát một Action (là một đối tượng mô tả hành động xảy ra)
- Thay đổi chỉ bằng hàm thuần túy: Để chỉ ra cách mà trạng thái được
biến đổi bởi action chúng ta dùng gọi là Reducer
Quá trình xử lý của Redux trải qua các bước chính sau:
1 Tầng view yêu cầu 1 Action Action Creator tạo ra một Action yêu
cầu đã định dạng trước và gửi lại
2 Action được gửi tự động
3 Store nhận Action sau đó gửi vào State hiện tại và Action cho Root
Reducer
4 Root Reducer chia State ra thành nhiều phần và gửi cho từng
subreducers biết cách xử lý chúng
Trang 315 Subreducers tạo ra 1 bản copy từ phần nhận được và thay đổi trên bản copy Sau đó gửi lại bản copy cho Root Reducer
6 Khi tất cả subreducers trả về các phần, Root Reducer ghép chúng lại tạo thành một State và gửi lại cho Store Store thay thế State cũ bằng
State mới
7 Store giao tiếp với tầng view layer binding là có State mới
8 Tầng view layer binding báo Store gửi State mới
9 Tầng view layer binding kích hoạt render view
2.5 Firebase
2.5.1 Giới thiệu tổng quan
Firebase là một nền tảng cơ sở dữ liệu đám mây do Google phát triển để tạo các ứng dụng website và di động Ban đầu nó là một công ty độc lập được thành lập vào năm 2011 Vào năm 2014, Google đã mua lại nền tảng này và hiện nó là sản phẩm chủ lực của họ để phát triển ứng dụng Chức năng chính là giúp cho người lập trình đơn giản hóa các thao tác với cơ sở dữ liệu
Hình 2-7 Logo của Firebase Firebase cung cấp cho chúng ta 2 nhóm sản phẩm chính tập trung vào 2 đối tượng là:
- Phát triển và kiểm thử các ứng dụng được thiết kế
- Phân tích dữ liệu và tối ưu hóa trải nghiệm đối với người dùng
Trang 32Hình 2-8 Các nhóm sản phẩm của Firebase Các chức năng chính của FirebaseCloud bao gồm:
- Khả năng truy vấn cơ sở dữ liệu nhanh chóng và mạnh mẽ
- iOS, Android và SDK web có quyền truy cập dữ liệu ngoại tuyến
- Đồng bộ hóa dữ liệu thời gian thực
- Sao chép dữ liệu tự động, đa vùng với tính nhất quán mạnh mẽ
- SDK máy chủ Node, Python, Go và Java Firebase hướng đến sự đơn giản và dễ sử dụng luôn là ưu tiên hàng đầu, trong khi vẫn đảm bảo rằng Cloud Firestore có thể mở rộng quy mô để cung cấp tài nguyên cho cả những ứng dụng lớn nhất
2.5.2 Ưu điểm của Firebase
So với các hệ cơ sở dữ liệu khác đang hiện hành, Firebase có những ưu điểm nổi bật sau:
- Đồng bộ hóa dữ liệu giữa các thiết bị trong thời gian thực: SDK
Android, iOS và Javascript của Firebase được đồng bộ hóa dữ liệu với ứng dụng gần như ngay lập tức Điều này giúp cho chúng ta có thể dễ
Trang 33dàng xây dựng các ứng dụng Realtime, tự động đồng bộ hóa dữ liệu trên các thiết bị và xây dựng các tính năng tương tác thời gian thực
- Sử dụng bộ sưu tập và tài liệu để cấu trúc và truy vấn dữ liệu: Mô
hình dữ liệu này quen thuộc và trực quan đối với nhiều nhà phát triển
Các truy vấn chia tỷ lệ với kích thước của tập kết quả chứ không phải kích thước của tập dữ liệu, vì vậy ta sẽ nhận được hiệu suất tương tự khi tìm nạp 1 kết quả từ tập hợp cơ sở dữ liệu có kích thước 100 hoặc 100.000.000
- Cho phép truy cập dữ liệu ngoại tuyến thông qua cơ sở dữ liệu mạnh
mẽ trên thiết bị: Cơ sở dữ liệu cục bộ này có nghĩa là ứng dụng của sẽ
hoạt động trơn tru, ngay cả khi người dùng mất kết nối Chế độ ngoại tuyến này khả dụng trên Website, iOS và Android
2.5.3 Nhược điểm của Firebase
Bên cạnh những ưu điểm trên, việc sử dụng Firebase vẫn còn những hạn
chế sau:
- Người dùng không có quyền truy cập mã nguồn: Trong quá trình phát
triển ứng dụng, nhà phát triển có thể muốn thay đổi những tính năng của nó, việc không thể truy cập mã nguồn khiến việc này trở nên khó khăn
- Chỉ hoạt động với cơ sở dữ liệu NoSQL: Firebase sử dụng Json và hầu
như không có tính năng SQL mặc dù đã có những cải tiến đáng kể trên Cloud Tuy nhiên, cơ sở dữ liệu của Firebase vẫn không thể sử dụng
cơ sở dữ liệu quan hệ
- Truy vấn chậm: Mặc dù đã có những phát triển trên Cloud Firestore,
Firebase vẫn có những hạn chế về kích thước API, kích thước tài liệu, hạn chế kết nối đồng thời và truy vấn với hiệu suất chậm
Trang 34Chương 3 PHÂN TÍCH THIẾT KẾ ỨNG DỤNG
3.1 Phân tích
3.1.1 Danh sách yêu cầu của hệ thống
Dựa vào các yêu cầu và quy trình nghiệp vụ của các doanh nghiệp nội thất Nhóm đã đưa ra danh sách thể hiện các nghiệp vụ mà hệ thống cần có:
Bảng 3-1 Danh sách yêu cầu của hệ thống
1 Đăng nhập, đăng ký Được xây dựng trên nền tảng
Android và website
2 Khởi tạo không gian
Được xây dựng trên nền tảng Android Khởi tạo không gian xung quanh để bố trí nội thất
3 Bố trí nội thất
Được xây dựng trên nền tảng Android Sử dụng các vật thể 3D
do doanh nghiệp cung cấp
4 Đặt mua nội thất Được xây dựng trên nền tảng
Trang 353.1.2 Đặc tả Use case
3.1.2.1 Danh sách Use case
Hình 3-1 Sơ đồ Use case Bảng 3-2 Danh sách Use case
1 Đăng nhập, đăng ký Cho phép người dùng đăng nhập
đăng ký vào hệ thống
2 Khởi tạo không gian Khởi tạo không gian xung quanh để
bố trí nội thất Người dùng sử dụng
Trang 36thiết bị di động quét môi trường xung quanh để khởi tạo không gian
3 Bố trí nội thất
Nghiệp vụ này cho phép người dùng
bố trí các vật phẩm nội thất vào không gian đã được khởi tạo Người dùng có thể thêm, xóa, thay đổi vị trí các đồ dùng nội thất trong không gian của mình
4 Đặt mua nội thất Cho phép người dùng có thể đặt mua
các sản phẩm người dùng đã chọn
5 Xem danh sách, thông tin nội
thất
Cho phép người dùng xem danh sách
và thông tin các sản phẩm doanh nghiêp đang kinh doanh
6 Quản lý
Nghiệp vụ này xây dụng dành cho doanh nghiệp với các chức năng như: Quản lý danh mục, sản phẩm, người dùng, đơn hàng, chi nhánh,…
Các bảng từ 3-3 đến 3-9 đặc tả các chức năng của hệ thống:
Bảng 3-3 Đặc tả chức năng đăng nhập
Đăng nhập
Tên Use case Đăng nhập
Mô tả Đăng nhập tài khoản của người dùng
Người thực hiện Người dùng
Điều kiện trước xử lý Hệ thống khởi động thành công
Trang 37khẩu và hiển thị lại trang đăng nhập
Dòng sự kiện khác
Hệ thống kiểm tra sự tồn tại của tài khoản trong cơ
sơ dữ liệu Nếu sai thông tin đăng nhập, hệ thống sẽ thông báo cho người dùng
Yêu cầu nhập lại thông tin đăng nhập Yêu cầu đặc biệt
Phi chức năng
Ghi chú và vấn đề Thực hiện trên nền tảng di động và website
Bảng 3-4 Đặc tả chức năng khởi tạo không gian
Khởi tạo không gian
Tên Use case Khởi tạo không gian
Mô tả
Khởi tạo không gian xung quanh để bố trí nội thất Người dùng sử dụng thiết bị di động quét môi trường xung quanh để khởi tạo không gian
Người thực hiện Người dùng
Điều kiện trước xử lý Người dùng đã đăng nhập thành công
Sau xử lý
Trang 38Các bước thực hiện
1 Sau khi đăng nhập thành công, hệ thống chuyển đến chức năng khởi tạo không gian
2 Người dùng di chuyển xung quanh không gian
để thiết bị có thể nhận biết được môi trường xung quanh
3 Nếu quét môi trường thành công, người dùng
có thể thực hiện chức năng bố trí nội thất Nếu quét môi trường không thành công, yêu cầu người dùng quét lại
Dòng sự kiện chính
Hiển thị màn hình camera Người dùng di chuyển camera để quét không gian Kết thúc khởi tạo không gian
Người thực hiện Người dùng
Điều kiện trước xử lý Người dùng đã khởi tạo không gian thành công
Sau xử lý Hiển thị các vật phẩm 3D đã được đặt trong không
gian
Trang 39Các bước thực hiện
1 Sau khi quét không gian thành công, người dùng chọn mở danh sách sản phẩm
2 Chọn sản phẩm muốn bố trí vào không gian
3 Nhấn đặt sản phẩm vào không gian
4 Di chuyển, xoay chọn vị trí mong muốn bố trí
5 Nhấn đặt
Dòng sự kiện chính
Chọn mở danh sách sản phẩm Chọn sản phẩm mong muốn
Di chuyển lựa chọn vị trí đặt đồ Nhấn đặt
Dòng sự kiện khác
Yêu cầu đặc biệt
Phi chức năng
Ghi chú và vấn đề Thực hiện trên nền tảng di động
Bảng 3-6 Đặc tả chức năng xóa sản phẩm trong không gian
Xóa sản phẩm trong không gian
Tên Use case Xóa sản phẩm trong không gian
Mô tả Cho phép người dùng có thể xóa bỏ các sản phẩm
không mong muốn ra khỏi không gian Người thực hiện Người dùng
Điều kiện trước xử lý Sản phẩm đã được đặt vào trong không gian
Sau xử lý Sản phẩm không còn tồn tại trong không gian bố trí
Trang 40Nhấn xóa Dòng sự kiện khác
Yêu cầu đặc biệt
Phi chức năng
Ghi chú và vấn đề Thực hiện trên nền tảng di động
Bảng 3-7 Đặc tả chức năng xem danh mục, thông tin sản phẩm
Xem danh sách, thông tin sản phẩm
Tên Use case Xem danh sách, thông tin sản phẩm
Mô tả Cho phép người dùng xem danh sách và thông tin các
sản phẩm doanh nghiêp đang kinh doanh Người thực hiện Người dùng
Điều kiện trước xử lý Người dùng đã vào hệ thống
Sau xử lý Hiển thị thông tin về danh mục, sản phẩm cho người
Ghi chú và vấn đề Thể hiện thông tin của danh mục và sản phẩm Thực
hiện trên nền tảng di động và website