1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án xây dựng chương trình thực tại ảo trên android

56 74 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 56
Dung lượng 2,17 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thông qua bộ công cụ này chúng tôi đã xây dựng một ứng dụng đơn giản cho phép người dùng chọn một hình ảnh làm marker và hiển thị những đồ vật 3D khi camera nhận diện được marker đó.. Có

Trang 1

e ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Lê Vũ Huy

XÂY DỰNG CHƯƠNG TRÌNH

THỰC TẠI ẢO TRÊN ANDROID

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin

HÀ NỘI - 2016

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Lê Vũ Huy

XÂY DỰNG CHƯƠNG TRÌNH

THỰC TẠI ẢO TRÊN ANDROID

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin

Cán bộ hướng dẫn : ThS Vũ Quang Dũng

HÀ NỘI – 2016

Trang 3

VIETNAM NATIONAL UNIVERSITY, HANOI UNIVERSITY OF ENGINEERING AND TECHNOLOGY

Le Vu Huy

CREATE AUGMENTED REALITY APPLICATION

BASED ON MOBILE DEVICES

BACHELOR THESIS Major: Information Technology

Supervisor: M.S Vu Quang Dung

HA NOI – 2016

Trang 4

LỜI CẢM ƠN

Lời đầu tiên, tôi xin gửi lời cảm ơn chân thành sâu sắc đến ThS.Vũ Quang Dũng

đã tận tình hướng dẫn, giúp đỡ tôi trong quá trình thực hiện khóa luận này

Tôi cũng xin gửi lời cảm ơn tới các anh chị, các bạn trong Toshiba Lab đã giúp

đỡ, tạo điều kiện nghiên cứu tốt nhất cho tôi Cám ơn anh Nguyễn Bảo Ngọc, anh Trần

Hữu Trung, bạn Bùi Xuân Hiền, Vũ Thị Ngọc đã luôn hỗ trợ, giúp tôi có thể hoàn thành

đề tài một cách tốt nhất

Lời cuối cùng, chúng tôi xin gửi lời cảm ơn tới gia đình, người thân và bạn bè -

những người luôn ở bên tôi những lúc khó khăn nhất, luôn động viên tôi, khuyến khích

tôi trong cuộc sống cũng như học tập, công việc

Tôi xin chân thành cảm ơn !

Sinh viên

Lê Vũ Huy

Trang 5

LỜI CAM ĐOAN

Tôi xin cam đoan các kết quả trình bày trong khóa luận này do tôi thực hiện dưới

sự hướng dẫn của ThS.Vũ Quang Dũng

Tất cả các tham khảo từ những nghiên cứu liên quan đều được nêu nguồn gốc một cách rõ ràng từ danh mục tài liệu tham khảo trong khóa luận Khóa luận không sao chép tài liệu, công trình nghiên cứu của người khác mà không chỉ rõ về mặt tài liệu tham khảo

Các thống kê, các kết quả trình bày trong khóa luận này đều được lấy từ thực nghiệm khi chạy chương trình

Sinh viên

Lê Vũ Huy

Trang 6

TÓM TẮT

Tóm tắt:

Ngày nay, công nghệ tăng cường thực tại ảo (Augmented Reality) đang dần trở nên gần gũi với con người hơn và ứng dụng trong hầu hết các lĩnh vực từ mua sắm cho đến tương tác ảo Được phát triển từ công nghệ VR (Virtual Reality), Augmented Reality xây dựng một khung nhìn và bổ sung những vật thể đồ họa 2D hay 3D vào môi trường thật qua các lớp thông tin hỗ trợ và được hiển thị trên các thiết bị điện tử như smartphone, tablet Nhờ vậy, AR sẽ mang đến cho chúng ta trải nghiệm ảo ngay trước mắt thông qua các hình ảnh và khung nhìn ảo được tạo

ra nhờ các thiết bị thông minh

Trong khóa luận này, chúng tôi sẽ đi vào tìm hiểu nguyên lý của công nghệ tăng cường thực tại ảo, và cách thức hoạt động của ARToolkit Thông qua bộ công cụ này chúng tôi đã xây dựng một ứng dụng đơn giản cho phép người dùng chọn một hình ảnh làm marker và hiển thị những đồ vật 3D khi camera nhận diện được marker đó Qua quá trình thiết kế và cài đặt, chúng tôi đã hiểu hơn về quá trình xây dựng một ứng dụng AR và cách áp dụng nó vào các bài toán thực tế

Trải qua quá trình xây dựng và thực nghiệm, hệ thống đáp ứng được cơ bản các yêu cầu bài toán đặt ra Hiệu suất của ứng dụng xây dựng bằng ARToolkit ở mức cao và độ trễ thấp Tuy nhiên để trở thành một nền tảng được ứng dụng rộng rãi thì cần phải nâng cấp và cải tiến nhiều về hiệu suất, chức năng và các tài liệu liên quan

Từ khóa : Thực tại ảo, Thực tại ảo tăng cường, ARToolkit, Marker

Trang 7

ABSTRACT

Abstract:

Nowaday, the Augmented Reality (AR) technology has gradually become familiar with people and been applied in many of real-life fields Developed from the Virtual Reality technology, AR implements the views and supplements 2D or 3D graphics in the real environment through layers of supported information These graphics will be displayed on electronic devices such as smartphones, tablets and so on Therefore, AR will bring us virtual experiences before eyes through virtual images and views created thanks to smart devices

In this thesis, we will go into a deep analysis of principles of the virtual reality enhancing technology and the way of ARToolkit works By this toolkit, we created a simple application which allows users to choose a image as marker and display 3D objects if the camera can identify that marker Thanks to the design and installment, we understand more about the process of building an AR application and how to apply it into real problems

We have built a testing application system in order to meet the basic requirements that problems posed The application is based on ARToolkit and it has high efficiency and low latency Also, we need to improve the efficiency, functions and related documents for this toolkit to be widely applied

Từ khóa : Virtual reality, Augmented reality, ARToolkit, Marker

Trang 8

MỤC LỤC

TÓM TẮT iii

ABSTRACT iv

MỤC LỤC v

DANH MỤC HÌNH VẼ vii

DANH MỤC BẢNG BIỂU ix

DANH MỤC TỪ VIẾT TẮT x

Mở đầu 1

Chương 1: Cơ sở lý thuyết và công nghệ 3

1.1 Thực tại ảo và công nghệ tăng cường thực tại ảo 3

1.1.1 Khái niệm 3

1.1.2 Các phương pháp thực hiện AR 6

1.2 ARToolkit 7

1.3 Xử lý đồ họa 7

1.4 Mô hình MVP 8

Chương 2: Phân tích yêu cầu 11

2.1 Đặc tả yêu cầu 11

2.1.1 Yêu cầu chức năng 11

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

Chương 3: Thiết kế và xây dựng hệ thống 14

3.1 Kiến trúc hệ thống 14

3.1.1 Kiến trúc client 16

3.1.2 Kiến trúc server 17

3.2 Thiết kế ca sử dụng 18

3.3 Biểu đồ tuần tự 24

Trang 9

3.4 Cấu trúc cơ sở dữ liệu 28

Chương 4: Kết quả thực nghiệm 31

4.1 Môi trường thực nghiệm 31

4.2 Dữ liệu thực nghiệm 31

4.3 Kết quả thực nghiệm 33

4.3.1 Tạo marker 33

4.3.2 Giao diện quản lý marker 35

4.3.3 Camera nhận diện 37

Chương 5: Kết luận và định hướng phát triển 40

TÀI LIỆU THAM KHẢO 43

Trang 10

DANH MỤC HÌNH VẼ

Hình 1.1 Trải nghiệm kính thực tế ảo trong lĩnh vực giải trí 3

Hình 1.2 Tính năng nhận diện khuôn mặt của Google Glass 4

Hình 1.3 Người dùng trải nghiệm kính thực tế ảo Hololens 5

Hình 2.1 Ví dụ về Square marker 12

Hình 2.2 Ví dụ về pattern marker 12

Hình 3.1 Kiến trúc toàn bộ hệ thống 14

Hình 3.2 Mô hình MVP với chức năng Edit marker 16

Hình 3.3 Biểu đồ ca sử dụng 18

Hình 3.4 Ca sử dụng Sign up 24

Hình 3.5 Ca sử dụng Login 25

Hình 3.6 Ca sử dụng Get all marker 25

Hình 3.7 Ca sử dụng Create marker 26

Hình 3.8 Ca sử dụng Edit marker 26

Hình 3.9 Ca sử dụng Delete marker 27

Hình 3.10 Ca sử dụng Download marker 28

Hình 3.11 Ca sử dụng Scan marker 28

Hình 3.12 Cấu trúc các bảng cơ sở dữ liệu 29

Hình 4.1 Hình ảnh thử nghiệm 1 (1600x870) 31

Hình 4.2 Hình ảnh thử nghiệm 3 (1852x1389) 32

Hình 4.3 Hình ảnh thử nghiệm 2 (592x760) 32

Hình 4.4 Màn hình tạo mới một marker 33

Hình 4.5 Qúa trình sinh dữ liệu nhận diện phía server 34

Hình 4.6 Menu chính của ứng dụng 35

Hình 4.7 Danh sách các marker trên server 35

Hình 4.8 Màn hình xem chi tiết marker 36

Hình 4.9 Danh sách các marker ở local 36

Trang 11

Hình 4.10 Một vật thể 3D khác được vẽ bởi OpenSceneGraph 37 Hình 4.11 Camera nhận diện ra marker và vẽ lên vật thể 3D 37 Hình 4.12 Thử nghiệm với các hình ảnh khác 38

Trang 12

DANH MỤC BẢNG BIỂU

Bảng 3.1 Giải tích các thành phần trong kiến trúc hệ thống 15

Bảng 3.2 Đặc tả ca sử dung Sign up 19

Bảng 3.3 Đặc tả ca sử dụng Login 19

Bảng 3.4 Đặc tả ca sử dụng View all marker 20

Bảng 3.5 Đặc tả ca sử dụng Create new marker 20

Bảng 3.6 Đặc tả ca sử dụng Edit marker 21

Bảng 3.7 Đặc tả ca sử dụng Delete marker 22

Bảng 3.8 Đặc tả ca sử dụng download marker 22

Bảng 3.9 Đặc tả ca sử dụng Scan marker 23

Bảng 3.11 Giải thích ý nghĩa của bảng User 29

Bảng 3.12 Giải thích ý nghĩa của bảng Marker 29

Bảng 3.13 Giải thích ý nghĩa của bảng Model 30

Trang 13

DANH MỤC TỪ VIẾT TẮT

một hệ quản trị cơ sở dữ liệu

họa 3D dựa trên OpenGL

LGPL Lesser General Public License Giấy phép phần mềm công

cộng

Trang 14

Mở đầu

Kể từ khi công nghệ thực tại ảo ra đời đến nay, nó đã đóng góp một phần không nhỏ cho các ứng dụng phục vụ cuộc sống, và dần dần đã trở thành một phần không thể thiếu trong nhiều lĩnh vực y tế, khoa học, giải trí, quân sự… đáp ứng các nhu cầu thương mại, nghiên cứu, giáo dục Công nghệ thực tại ảo đang trở thành xu thế của công nghệ tương lai, định hướng chiến lược của các công ty công nghệ

Hiện nay trên thế giới đã có nhiều ứng dụng của AR phục vụ cuộc sống Chẳng hạn như chiếc điện thoại Amazon Fire với tính năng Firefly tự động nhận diện và tìm thông tin đồ vật Và mới đây nhất là chiếc kính Hololens của Microsoft với khả năng đưa con người vào thế giới kết hợp giữa thật và ảo, hơn nữa còn cho phép người dùng tương tác với môi trường ảo Có thể kể ra vô vàn các ứng dụng của công nghệ này, các ứng dụng trình diễn sản phẩm mua sắm trực tuyến, các thiết bị vật dụng trong gia đình, các mô hình, chi tiết máy, các ứng dụng trò chơi thực tại ảo, trình diễn sản phẩm…

Nắm bắt được tiềm năng to lớn của công nghệ AR, nhiều công ty công nghệ lớn

đã bắt đầu tự xây dựng các sản phẩm AR cho riêng mình, nổi bật như tập đoàn PTC với

bộ công cụ lập trình Vuforia được dùng để xây dựng ứng dụng cho Hololens Năm 2014, Facebook đã hoàn tất thương vụ mua lại Oculus Rift với giá hơn 2 tỷ đô để phát triển những thiết bị VR cho riêng mình Samsung cũng đang có những dự định của riêng mình với kính áp tròng có công nghệ AR, hay chiếc kính thực tế ảo GEAR VR đang gây chú

ý trong giới công nghệ trong thời gian vừa qua

Nhóm sinh viên chúng tôi gồm 2 thành viên là tôi Lê Vũ Huy và bạn Bùi Xuân Hiền đã cùng nhau xây dựng chương trình này Qua tìm hiểu và đánh giá về các bộ công

cụ lập trình AR, chúng tôi đã lựa chọn ARToolkit SDK để tìm hiểu về nguyên lý của

AR và xây dựng một ứng dụng AR đơn giản Ứng dụng này cho phép người dùng chụp một hình ảnh hoặc chọn một hình ảnh có sẵn làm marker Với mỗi marker, ứng dụng sẽ đọc dữ liệu ảnh và xử lý để sinh ra một bộ dữ liệu nhận diện Sau khi đã có dữ liệu nhận diện, người dùng có thể sử dụng chính ứng dụng đó mở camera và nhận diện marker đó

và vẽ lên trên màn hình những hình khối 3D tại vị trí marker đó Nhờ quá trình tracking liên tục của ARToolkit, dù camera di chuyển nhưng hình vẽ 3D vẫn được vẽ đúng tại vị

Trang 15

trí của marker, do đó tạo nên cảm giác như là đồ vật ở thế giới thật đã được thay bằng các đối tượng ảo

Ứng dụng này có chức năng đơn giản nhưng đã được xây dựng một cách khá hoàn thiện, từ quá trình xử lý dữ liệu trên server, liên kết dữ liệu giữa server và client,

và cả quá trình nhận diện marker ở client Từ đó cho thấy những điểm mạnh mà bộ công

cụ ARToolkit mang lại cho các lập trình viên và các nhà phát triển

Xác định yêu cầu trong chương trình thực nghiệm

Bài toán có thể được tóm tắt đơn giản như sau:

Yêu cầu 1: Tạo ra các dấu hiệu nhận biết marker

Đầu vào: 1 hình ảnh định dạng jpg (marker)

Đầu ra: bộ 3 file dữ liệu nhận diện marker

Yêu cầu 2: Nhận diện và hiển thị dữ liệu liên quan

Đầu vào: Hình ảnh stream thu từ camera và dữ liệu nhận diện marker

Đầu ra: Hình vẽ 3D vẽ lên marker

Như vậy trong khóa luận này, chúng tôi đưa phương pháp xây dựng một ứng dụng chạy trên nền tảng Android đáp ứng được vấn đề đã nêu ở trên

Nhóm chúng tôi gồm 2 sinh viên là tôi Lê Vũ Huy và bạn Bùi Xuân Hiền đã cùng nhau phát triển ứng dụng này Tôi tập trung vào phát triển tính năng, giao diện ứng dụng trên client Android và việc render đồ họa 3D Bạn Bùi Xuân Hiền tập trung vào việc phát triển server và cung cấp các API để giao tiếp giữa client và server

Cấu trúc khóa luận

Các phần còn lại của khóa luận này có cấu trúc như sau:

Chương 2: Cơ sở lý thuyết và công nghệ - trình bày các thuật toán, so sánh, công

nghệ được sử dụng

Chương 3: Phân tích và xây dựng chương trình - chương này sẽ có các thiết kế

của hệ thống thực nghiệm như các kiến trúc, cơ sở dữ liệu, biểu đồ thiết kế

Chương 4: Kết quả thực nghiệm – kết quả demo bao gồm đánh giá và so sánh Chương 5: Kết luận và tương lai phát triển - tóm lược kết quả mà khóa luận đạt

được, những điểm hạn chế, đặc biệt là đưa ra định hướng phát triển nhằm đưa hệ thống trở thành một nền tảng được ứng dụng rộng rãi

Trang 16

Chương 1: Cơ sở lý thuyết và công nghệ

Để có thể giải quyết các yêu cầu đặt ra, chúng tôi sử du ̣ng những cơ sở lý thuyết

và công nghệ sau đây

1.1 Thực tại ảo và công nghệ tăng cường thực tại ảo

1.1.1 Khái niệm

VR (Virtual Reality) là công nghệ cho phép con người quan sát những vật ở thế

giới thật trong thế giới ảo thông qua thiết bị điện tử nào đó, ví dụ: kính thực tại ảo, Google Cardboard, Oculus Rift,… VR thay thế hoàn toàn thế giới thực tế bằng thế giới

ảo bằng các thành phần công nghệ như hình ảnh, âm thanh, video Người dùng có thể

sử dụng công nghệ này để xem phim, chơi game, và khi đó, các cảnh trong phim, game

đó sẽ diễn ra trực tiếp trước mắt bạn y hệt như bạn là một nhân vật trong đó Ngoài ra người dùng còn có thể tương tác với thế giới ảo bằng cách quay đầu, giọng nói, hoặc chuyển động tay, chân thông qua các thiết bị hỗ trợ1

1 http://www.baomoi.com/kinh-thuc-te-ao-vr-se-cuu-vot-nganh-game-pc/c/18503126.epi

Hình 1.1 Trải nghiệm kính thực tế ảo trong lĩnh vực giải trí

Trang 17

AR (viết tắt của Augmented Reality) được phát triển lên từ VR nhưng khác một

điều là AR bổ sung các thông tin, chi tiết cho thế giới thực, còn VR thay thế hoàn toàn thế giới thực bằng các thành phần trong thế giới ảo Các thông tin bổ sung ở đây có thể dưới dạng hình ảnh, âm thanh, video… Ngoài ra người dùng còn có thể tương tác với các vật thể ảo qua màn hình cảm ứng của điện thoại Hiện nay có một số công ty nổi bật trong lĩnh vực này như: PTC Inc, Metaio, Microsoft, Wikitude, DAQRI,…

Một hệ thống AR gồm có 3 thành phần chính: thế giới thực, các thiết bị phần cứng nhận diện và các phần mềm hỗ trợ Chìa khóa của một ứng dụng AR là làm thế nào để tích hợp được được những nội dung bổ sung vào thế giới thực nhanh và chính xác nhất Để làm được điều này, các thiết bị phần cứng cần tính toán được vị trí của tọa

độ thế giới thực từ camera, tọa độ này là tương đối so với thiết bị và thay đổi liên tục khi camera di chuyển Khi đã tính toán được các vector định hướng, thiết bị sẽ vẽ thêm các thành phần tăng cường, xây dựng nên một môi trường kết hợp giữa thực tế và ảo

Một số ứng dụng AR trên thực tế

Google Glass của Google được giới thiệu lần đầu ra công chúng vào tháng 4 năm

2013 Với khá nhiều tính năng như có thể đóng vai trò là một chiếc điện thoại, chụp ảnh, camera nhận diện khuôn mặt, Google Glass đã trở thành 1 thiết bị đột phá trong thế giới thiết bị đeo được Tuy nhiên do giá thành quá đắt đỏ, bị đánh giá là không hữu dụng và

Hình 1.2 Tính năng nhận diện khuôn mặt của Google Glass

Trang 18

một số vướng mắc trong chính sách sử dụng, Google Glass đạt doanh số rất thảm hại và Google đã dừng bán chiếc kính này vào tháng 1 năm 2015 Cho tới thời điểm này, chưa

có thông tin gì thêm về thế hệ tiếp theo của Google Glass, tuy nhiên chúng tôi có thể iết chắc chắn rằng, đây sẽ là một hướng đi tiềm năng trong tương lai gần và chắc chắn Google sẽ không bỏ qua nó Dưới đây là một hình ảnh về ứng dụng của Google Glass, nguồn2

Gây được tiếng vang lớn trong thời điểm ra mắt, chiếc kính thực tế ảo Hololens của Microsoft đã khiến cả thế giới phải trầm trồ vì những gì nó làm được Khác với tất

cả các thiết bị trước đó, Hololens là một chiếc kính có màn hình trong suốt, giúp người dùng có thể nhìn xuyên qua nó và thấy các nội dung ảo được hiện lên trên những gì đang diễn ra ngoài đời thực Cụ thể hơn, thiết bị có một loạt các cảm biến để nhận dạng cử chỉ của 5 đầu ngón tay và sử dụng thông tin này cùng với lớp kính màu để tạo ra những hình ảnh mà người dùng có thể quan sát và tương tác từ nhiều góc độ khác nhau Thêm vào đó, camera cũng đóng vai trò trong việc xác định vật thể trong phòng và sau đó vi

xử lý sẽ đảm nhận vai trò để “ghi đè” hình ảnh “ảo” lên thế giới “thực” và hiển thị kết quả lên màn hình của kính Với một tương lai sáng lạng, Hololens đang chiếm được

2 http://theapplegoogle.com/tag/google-glass/

Hình 1.3 Người dùng trải nghiệm kính thực tế ảo Hololens

Trang 19

niềm hi vọng của người dùng và các nhà phát triển, tuy nhiên Microsoft hiện chưa hé lộ thông tin gì về ngày ra mắt chính thức, giá phiên bản thương mại Có lẽ người dùng sẽ còn phải đợi một thời gian khá lâu nữa mới được tận tay dùng thử sản phẩm này

1.1.2 Các phương pháp thực hiện AR

Các ứng dụng sử dụng công nghệ tăng cường thực tại ảo hiện nay thường sử dụng

3 phương pháp chính sau để nhận biết vật thể:

a) Dựa trên vị trí

Hiển thị các thông tin bổ sung liên quan đến thông tin vị trí có thể lấy được từ GPS Hoặc có thể kết hợp thêm các thông tin vị trí, cảm biến từ trường theo hướng và cảm biến gia tốc do độ nghiêng để xác định một vị trí để trình bày thông tin về vật đó Phương pháp này phục thuộc vào độ chính xác của GPS và các cảm biến liên quan

b) Marker tracking (nhận diện bằng dấu hiệu)

Với phương pháp này, phần mềm cần được học trước dữ liệu nhận diện tương ứng với một dấu hiệu (marker) nào đó, và được định nghĩa sẵn các nội dung tăng cường gắn với nó

Các dấu hiệu nhận biết thường có khuôn mẫu nhất định được sinh ra theo một quy tắc nào đó và thường bị giới hạn

c) Markerless tracking (nhận diện không cần dấu hiệu)

Phương pháp markerless tracking không yêu cầu một dấu hiệu nhận diện nào cả, thiết bị sẽ sử dụng camera và các cảm biến để phát hiện môi trường xung quanh, từ đó

vẽ các vật thể 3D vào môi trường đó Trải nghiệm AR này sẽ mở ra một khả năng vô tận cho các ứng dụng thương mại và giải trí Nếu kết hợp với Google Glass, người dùng

sẽ có những trải nghiệm vô cùng ấn tượng

Chương trình trong khóa luận này chúng tôi làm theo phương pháp Marker Tracking

Trang 20

1.2 ARToolkit

ARToolkit là một bộ công cụ lập trình Augmented Reality mã nguồn mở cung cấp thư viện theo dõi (tracking) hình ảnh và bổ sung lớp đồ họa ảo vào thể giới thực ARToolkit là một thư viện AR rất phổ biến với 739,110 lượt tải tính đến thời điểm viết khóa luận này.3

ARToolkit được phát triển đầu tiên bởi Giáo sư Hirokazu Kato ở Viện Khoa Học

và Công nghệ Nara (Nhật) năm 1999 và được phát hành bởi HIT Lab thuộc trường Đại Học Washington (Mỹ) Năm 2001, công ty thương mại ARToolworks được thành lập

và phát hành phiên bản ARToolkit v1.0 dưới dạng mã nguồn mở trên trang web của HITLab Kể từ đó, các viện nghiên cứu bắt đầu sử dụng ARToolkit như là cơ sở của việc nghiên cứu và giảng dạy về công nghệ tăng cường thực tại ảo Năm 2008, ARToolkit được phát triển trên các ngôn ngữ Java, C# bởi nyatla Trải qua hơn 15 năm phát triển, ARToolkit SDK được phát triển toàn diện, không chỉ số ngôn ngữ nó hỗ trợ

mà còn cải thiện cả về hiệu năng và giao diện Năm 2015 ARToolworks được mua lại bởi DAQRI, một công ty nghiên cứu về giao tiếp người – máy và sản xuất các thiết bị đeo thông minh Bộ công cụ ARToolkit trước kia chỉ được phát hành dưới giấy phép trả phí, nay đã được phát hành miễn phí dưới giấy phép LGPL v3.0 [2]

Trang 21

viên có thể tạo ra ảnh 3 chiều cả tĩnh và động với chất lượng cao Theo nguyên lý, ARToolkit sẽ tính toán tọa độ theo một hình thức phù hợp để có thể sử dụng trực tiếp với OpenGL, ngoài ra nó còn hỗ trợ việc render video chạy nền bằng OpenGL

OpenSceneGraph

OpenSceneGraph (OSG) là một framework mã nguồn mở cung cấp các mô hình,

sơ đồ, đối tượng 3D với chất lượng cao, cho phép người dùng tùy biến các mô hình và

đồ họa đó một cách hiệu quả, linh hoạt, dễ dàng thay đổi ARToolkit đã được tích hợp thêm thư viện libARosg, phục vụ việc thực hiện các tác vụ cơ bản liên quan đến render các đối tượng 3D từ file OSG

OpenVRML

VRML là một chuẩn tập tin định nghĩa vị trí đỉnh, cạnh cho một đa giác 3D và

có thể định nghĩa màu, ánh sáng, độ trong suốt cho các mặt của đa giác đó OpenVRML

là một engine mã nguồn mở chuyên render đồ họa cho các tập tin định dạng VRML và X3D, nó đã được tích hợp vào ARToolkit kể từ phiên bản 4.3 (ra mắt ngày 31/10/2007) trong thư viện libARvrml Tuy nhiên do hiệu năng không cao, ARToolkit đã ngừng hỗ trợ cập nhật thư viện libARvrml từ phiên bản 4.5 Mặc dù vậy, thư viện libARvrml vẫn được tích hợp trong các phiên bản tiếp theo của ARToolkit

DirectX

ARToolkit không trực tiếp hỗ trợ DirectX, tuy nhiên việc theo dõi (tracking) của ARToolkit là một tiến trình render độc lập, do đó DirectX vẫn có thể được sử dụng, miễn là lập trình viên có thể cài đặt tiến trình xử lý đồ họa riêng

Trong bài toán này, chúng tôi sử dụng thư viện OpenSceneGraph để render và hiển thị vật thể 3D Với hiệu năng tốt, hỗ trợ hiệu ứng chuyển động, cùng với kho đồ họa có sẵn, OpenSceneGraph đã được dùng làm thư viện xử lý đồ họa chính của ARToolkit

1.4 Mô hình MVP

MVP (Model – View – Presenter) là một mô hình kiến trúc hướng giao diện người dùng, được thiết kế để tạo thuận lợi cho việc kiểm thử đơn vị (unit testing) và

Trang 22

tăng tính tách biệt giữa tầng dữ liệu và tầng hiển thị dữ liệu trong mô hình MVC Mô hình MVP cho phép tách tầng trình diễn (Presenter) ra khỏi tầng dữ liệu (Model), vì vậy tương tác với giao diện được tách biệt với cách nó được biểu diễn trên màn hình (View), hay nói cách khác, tất cả logic khi người dùng tương tác được tách ra và đưa vào tầng trình diễn Thiết kế lý tưởng nhất là với cùng một logic được áp dụng cho nhiều View khác nhau và hoán đổi được cho nhau

Điểm khác biệt giữa mô hình MVP với mô hình MVC là vị trí cũng như chức năng của tầng Presenter so với tầng Controller Trong mô hình MVP, tầng View là tầng duy nhất tiếp nhận tương tác người dùng, thay vì cả 2 tầng View và tầng Controller như trong mô hình MVC Logic xử lý tương tác cũng như logic xử lý dữ liệu hiển thị được tách ra trong tầng Presenter thay vì được gộp chung với tiếp nhận tương tác trong Controller

Trong Android, có một vấn đề phát sinh từ thực tế là các cơ chế xử lý tương tác trong Android được kết hợp chặt chẽ giữa giao diện người dùng và xử lý, truy cập dữ liệu Việc kết hợp này có thể giúp giảm thiểu lượng code trong ứng dụng cũng như gộp các xử lý, logic trong ứng dụng vào cùng một nơi Nhưng đối với một ứng dụng liên tục phát triển, hay một ứng dụng lớn, việc này khiến cho lượng code trên mỗi logic trở nên rất lớn, các logic xen lần, chồng chéo lên nhau, rất khó cho việc đọc hiểu, bảo trì cũng như mở rộng

Việc phân lớp ứng dụng có thể giảm đi hiệu năng do ứng dụng cần thêm nhiều tài nguyên, nhưng sẽ tăng nhiều lần khả năng nâng cấp và bảo trí phần mềm, không những thế còn mở rộng khả năng cho phép kiểm thử từng phần của ứng dụng trở nên dễ

Trang 23

dàng hơn Chính vì thế việc cân nhắc giữa hiệu năng và tính dễ dàng mở rộng, bảo trì là hết sức quan trọng

Nhận thấy điểm mạnh của mô hình MVP, chúng tôi đã lựa chọn nó để phát triển ứng dụng này Đây cũng đang là một trong những mô hình phổ biến của các công ty lớn trong phát triển ứng dụng Android

Trang 24

Chương 2: Phân tích yêu cầu

 Sinh dữ liệu nhận diện từ một hình ảnh

 Quản lý marker: thêm marker mới, sửa marker đã có, xóa một marker, xem danh sách toàn bộ các marker trên server và các marker có sẵn ở local

 Nhận diện marker

Trong hệ thống này, admin có tất cả các chức năng của user, ngoài ra admin còn có thể quản lý các user hiện có (thêm, sửa, xóa user)

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

Bài toán 1: Sinh dữ liệu nhận diện từ một hình ảnh

Để tạo marker mới, người dùng sẽ chụp một hình ảnh hoặc chọn ảnh từ thư viện

và gửi lên server Server xử lý và sinh ra một bộ dữ liệu nhận diện cho mỗi marker

Trong các ứng dụng AR thường có rất nhiều loại marker, nhưng chúng ta có thể chia chúng ra làm 3 loại chính:

Trang 25

2D Barcode marker: Marker này là 1 hình vuông có viền đen bao

quanh bên ngoài, ở trong là 1 ma trận n*n các ô đen và trắng (n thường dao động từ 4 đến 16) Ưu điểm của 2D barcode marker là đơn giản, nhận diện nhanh, tuy nhiên marker lại bị giới hạn về số lượng Nếu tăng n lên thì khả năng nhận diện sẽ khó hơn và tốn nhiều thời gian hơn

Square marker: Loại marker này là 1 dạng biến thể của marker ma trận,

vẫn có một viền đen bao quanh ở ngoài, tuy nhiên ở bên trong sẽ là 1 hình đen trắng tùy ý Khi camera nhận diện, hình bên trong viền đen sẽ được nhận diện thành 1 ma trận n*n với số n do ứng dụng quy định (tùy thuộc vào từng bài toán cụ thể)

Image marker: Loại marker này là 1 hướng đi mới đang được nhà phát

triển quan tâm, khắc phục được những giới hạn của square marker Thay vì

bị giới hạn bởi 1 hình vuông viền đen, image marker cho phép người dùng

Hình 2.1 Ví dụ về 2D barcode marker

Hình 2.2 Ví dụ về square marker

Trang 26

dùng 1 hình ảnh màu để làm dấu hiệu nhận biết Bù lại marker này sẽ có dữ liệu nhận biết lớn hơn và thời gian sinh ra dữ liệu nhận biết lâu hơn

Trong khóa luận này, chúng tôi sẽ đi vào nghiên cứu và cài đặt AR sử dụng

Image marker vì ưu điểm có thể sử dụng bất kỳ hình ảnh nào để làm marker

Bài toán 2: Quản lý marker

Sau khi người dùng đăng nhập, ứng dụng sẽ chuyển về màn hình hiển thị danh sách marker Với mỗi marker, người dùng có thể lựa chọn để xem chi tiết, sửa thông tin marker, xóa marker, thay đổi model gắn với marker đó

Bên cạnh danh sách các marker đang có trên server, người dùng có thể xem được danh sách những marker hiện có trong thiết bị Khi user download một marker từ server,

bộ dữ liệu nhận diện sẽ được tải về và lưu vào bộ nhớ thiết bị

SQLite là hệ quản trị cơ sở dữ liệu có ưu điểm là dung lượng nhẹ, do đó nó được

sử dụng phổ biến cho hầu hết các ứng dụng mobile (bao gồm Android và iOS)

Bài toán 3: Nhận diện marker

Khi ngườ i dùng mở camera trong ứng dụng, ARToolkit sẽ nhận đầu vào là video stream của camera và tracking liên tục Nếu phát hiện marker, ứng dụng sẽ tính toán vị trí của marker, các vector định hướng của marker, từ đó vẽ lên các đối tượng 3D đã được gán từ trước

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

Tính dễ dùng: giao diện thân thiện, các icon to, dễ hiểu

Độ tin cậy: Hệ thống hoạt động đúng theo các chức năng yêu cầu

Tính sẵn sàng: Hệ thống hoạt động ổn định, các thao tác thực hiện chính xác

Yêu cầu về hiệu năng sử dụng: Hiển thị thông tin tốt, tránh giật lác, đơ máy Thời gian

phản hồi của hệ thống nhanh

Trang 27

Chương 3: Thiết kế và xây dựng hệ thống

3.1 Kiến trúc hệ thống

Hình 3.1 Kiến trúc toàn bộ hệ thống

Trang 28

Bảng 3.1 Giải tích các thành phần trong kiến trúc hệ thống

lưu trữ và quản lý marker, user

các API RESTful để giao tiếp giữa server và client

FFI Foreign Function Interface: 1 bộ công cụ trên Ruby on Rails,

cho phép server gọi đến các thư viện sử dụng ngôn ngữ C/C++

hình ảnh đầu vào và sinh ra bộ dữ liệu nhận diện của marker

Google Cloud

Message

Một thư viện của Google giúp server đẩy (push) các notification về thiết bị Android

Model sẽ đảm nhiệm chức năng liên kết với database và xử lý

tracking, matching, graphics rendering,…

lưu trữ các marker

Ngày đăng: 04/11/2020, 23:41

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w