Tải bản đầy đủ (.pdf) (130 trang)

AR TOOLKIT ( BỘ CÔNG CỤ AR )

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 (10.27 MB, 130 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC NÔNG LÂM TP HCM
KHOA CÔNG NGHỆ THÔNG TIN

LUẬN VĂN TỐT NGHIỆP

ARTOOLKIT
Ngành

:Hệ thống thông tin

Giáo viên hướng dẫn: Th.S Nguyễn Thị Thanh Thủy
Niên khoá

: 2006-2010

Sinh viên thực hiện : Lê Thành Tâm
Nguyễn Thị Thúy Huỳnh
Hà Thị Mỹ Liên

TP.HỒ CHÍ MINH, tháng 9 năm 2010


LỜI CẢM ƠN
Trong đề tài này, để hoàn thành được chúng em đã cố gắng hết mình, và có rất nhiều
khó khăn tuy vậy chúng em đã vượt qua được để hoàn thành luận. Để vượt qua khó
khăn chúng em luôn có sự đồng hành của cha mẹ và qua đây chúng em muốn gởi lời
cám ơn đầu tiên đến cha mẹ chúng em, người đã tạo điều kiện cả về vật chất và tinh
thần cho chúng em trong thời quan qua để chúng em hoàn thành đề tài này.
Và chúng em xin chân thành cám ơn Ban giám hiệu, các giảng viên trường đại học


Nông Lâm TPHCM, quý thầy cô trong khoa Công Nghệ Thông Tin đã tận tình giảng
dạy, truyền đạt những kiến thức quý báu cho chúng em trong bốn năm học vừa qua.
Đặc biệt chúng em xin chân thành cảm ơn giảng viên Nguyễn Thị Thanh Thuỷ đã tận
tình hướng dẫn, giúp đỡ và tạo điều kiện thuận lợi cho chúng em trong suốt thời gian
thực hiện luận văn này.
Sau cùng chúng em xin chân thành cảm ơn các bạn sinh viên cùng lớp và cùng khoa
công nghệ thông tin đã giúp đỡ tài liệu, trao đổi học thuật giúp em hoàn thành đồ án
này.
Tp.HCM, ngày 27 tháng 05 năm 2009
Sinh viên,
Nguyễn Thị Thuý Huỳnh
Hà Thị Mỹ Liên
Lê Thành Tâm

i


DANH SÁCH CHỮ VIẾT TẮT
AR

Augmented Reality
Công nghệ AR

CS

Coordinate Systems
Hệ trục toạ độ

LIB


Library
Thư viện

SM

System Model
Mô hình hệ thống

ii


MỤC LỤC
Trang

1

GIớI THIệU ........................................................................................................1
1.1
Giới thiệu chung ......................................................................................1
1.2
Đặt vấn đề................................................................................................1
1.3
Phạm vi....................................................................................................2
2 TÌM HIểU CÔNG NGHệ ...................................................................................3
2.1
Giới thiệu công nghệ AR (Augmented Reality)......................................3
2.2
Một số ứng dụng và ý tưởng AR .............................................................4
2.2.1 Ứng dụng AR trong giáo dục ..................................................................4
2.2.1.1 Lớp học ảo...............................................................................................4

2.2.1.2 Construct 3D............................................................................................5
2.2.1.3 Magic Book .............................................................................................6
2.2.2 Ứng dụng trên điện thoại di động............................................................7
2.2.2.1 Trình duyệt Layar ....................................................................................7
2.2.2.2 Tạo vật thể 3D trên iPhone......................................................................8
2.2.2.3 Map Tracking ..........................................................................................9
2.3
ARToolkit..............................................................................................10
2.3.1 Giới thiệu ARToolkit ............................................................................10
2.3.2 Lịch sử phát triển...................................................................................11
2.3.3 Cách thức làm việc ARToolkit..............................................................13
2.3.4 Những hạn chế về tầm nhìn của hệ thống ARToolkit ...........................14
2.3.5 ARToolkit Framework ..........................................................................15
2.3.5.1 Giới thiệu...............................................................................................15
2.3.5.2 Cấu trúc framework ARToolkit ............................................................15
2.3.5.3 Các loại dữ liệu......................................................................................17
2.4
Hiệu chỉnh thông số camera ..................................................................18
2.4.1 Giới thiệu...............................................................................................18
2.4.2 Phương pháp hai bước...........................................................................19
2.4.2.1 Quá trình chạy calib_dist.......................................................................19
2.4.2.2 Quá trình chạy calib_cparam.................................................................25
2.4.3 Phương pháp một bước .........................................................................28
2.5
Các phép biến đổi toạ độ của ma trận ...................................................29
2.5.1 Phép biến đổi trong không gian hai chiều .............................................29
2.5.1.1 Rotated...................................................................................................29
2.5.1.2 Translated ..............................................................................................30
2.5.1.3 Scale ......................................................................................................30
2.5.1.4 Cắt .........................................................................................................31

2.5.2 Phép biến đổi trong không gian 3 chiều ................................................31
2.5.2.1 Rotated...................................................................................................31
2.5.2.2 Tranlated................................................................................................32
2.5.2.3 Scale ......................................................................................................32
2.5.2.4 Cắt .........................................................................................................33
2.6
Xác định vị trí tương đối camera và marker..........................................33
2.6.1 Coordinate Systems (CS) ......................................................................33
iii


2.6.2 Rotation & Translation ..........................................................................34
2.7
Thuật toán về tầm nhìn của ARToolkit .................................................35
3 GIẢI PHÁP.......................................................................................................37
3.1
Mô tả bài toán........................................................................................37
3.1.1 Bài toán giảng dạy môn hình học không gian .......................................37
3.1.2 Bài toán thể hiện hình ảnh 3D cho câu chuyện cổ tích .........................38
3.2
Giải pháp ..............................................................................................38
3.2.1 Bài toán giảng dạy môn hình học không gian .......................................38
3.2.1.1 Bài toán giảng dạy môn hình học không gian trong môi trường Java...39
3.2.1.1.1 Kiến trúc phần mềm.............................................................................39
3.2.1.1.2 Mô hình hoạt động ...............................................................................40
3.2.1.1.3 Mô tả các thành phần bên trong chương trình .....................................41
3.2.1.1.3.1 Gói thư viện lấy hình ảnh..................................................................44
3.2.1.1.3.2 Gói thư viện xử lí hình ảnh ...............................................................44
3.2.1.1.3.3 Gói thư viện thể hiện hình ảnh..........................................................44
3.2.1.2 Bài toán giảng dạy môn hình học không gian trong môi trường dotNet43

3.2.1.2.1 Kiến trúc phần mềm.............................................................................43
3.2.1.2.2 Mô hình hoạt động ...............................................................................44
3.2.1.2.3 Mô tả các thành phần bên trong chương trình .....................................46
3.2.1.2.3.1 Gói thư viện lấy hình ảnh..................................................................48
3.2.1.2.3.2 Gói thư viện xử lí hình ảnh ...............................................................48
3.2.1.2.3.3 Gói thư viện thể hiện hình ảnh..........................................................48
3.2.2 Bài toán thể hiện hình ảnh 3D cho câu chuyện cổ tích .........................47
3.2.2.1 Kiến trúc phần mềm ..............................................................................47
3.2.2.2 Mô hình hoạt động ................................................................................48
3.2.2.3 Mô tả các thành phần bên trong chương trình.......................................50
3.2.2.3.1Gói thư viện lấy hình ảnh......................................................................50
3.2.2.3.2Gói thư viện xử lí hình ảnh ...................................................................51
3.2.2.3.3Gói thư viện thể hiện hình ảnh..............................................................51
4 ĐÁNH GIÁ.......................................................................................................52
5 KếT LUậN ........................................................................................................55

iv


DANH MỤC CÁC HÌNH
Trang
Hình 1 Khi đeo thiết bị các em học sinh sẽ thấy công cụ ảo................................................... 4
Hình 2 Hệ thống Construct 3D................................................................................................ 5
Hình 3 Magic Book ................................................................................................................. 6
Hình 4 Trình Duyệt layar ........................................................................................................ 7
Hình 5 Vật thể 3D trên iPhone ................................................................................................ 8
Hình 6 Map tracking................................................................................................................ 9
Hình 7 Ví dụ ARToolkit........................................................................................................ 11
Hình 8 Sơ đồ phát triển ARToolkit ....................................................................................... 12
Hình 9 Mô hình hoạt động của ARToolkit............................................................................ 13

Hình 10 Kiến trúc ARToolKit.............................................................................................. 15
Hình 11 Cấu trúc của ARToolkit sử dụng Gsub Module ...................................................... 16
Hình 12 Cấu trúc của ARToolKit sử dụng Gsub_Lite Module............................................. 17
Hình 13 Luồng đi chính của video trong ARToolKit ........................................................... 17
Hình 14 Dòng dữ liệu ARToolkit.......................................................................................... 18
Hình 15 Các pattern calib_dist và calib_cpara ...................................................................... 19
Hình 16 Người dùng đánh dấu những điểm cần hiệu chỉnh.................................................. 21
Hình 17 Sau khu duyệt qua một lần các nút trên mặt phẳng................................................ 23
Hình 18 Hình ảnh kết quả sau hiệu chỉnh ............................................................................. 25
Hình 19 Vị trí ngang Line h4 ................................................................................................ 27
Hình 20 Vị trí đứng Line ....................................................................................................... 27
Hình 21 Vị trí cuối cùng của Line ......................................................................................... 28
Hình 22 Hệ thống Coordinate Systems ................................................................................ 34
Hình 23 Sơ đồ trình tự các thuật toán.................................................................................... 37
Hình 24 Kiến trúc phần mềm bài toán giảng dạy hình học không gian trong Java .............. 39
Hình 25 Mô hình hoạt động của ARToolkit trong Java ........................................................ 40
Hình 26 Hình học không gian 3D được thể hiện trên marker. .............................................. 41
Hình 27 Kiến trúc phần mềm bài toán giảng dạy hình học không gian trong dotNet........... 43
Hình 28 Mô hình hoạt động của bài toán giảng gạy môn hình học không gian trong dotNet.
............................................................................................................................................... 45
Hình 29 Hình học lập phương 3D được thể hiện trên marker............................................... 46
Hình 30 Kiến trúc phần mềm trong dotNet ........................................................................... 47
Hình 31 Mô hình hoạt động ARToolkit trong môi trường dotNet........................................ 49
Hình 32 Hình minh hoạ trong câu chuyện cổ tích................................................................. 50
Hình 33 Hình lập phương 3D minh hoạ khi chạy AR........................................................... 52
Hình 34 Hình cầu 3D minh hoạ khi chạy AR ....................................................................... 53
Hình 35 Các hình 3D cũng thể hiện khi chạy AR ................................................................. 53
Hình 36 Hình cầu 3D minh hoạ khi chạy AR ....................................................................... 54
Hình 37 Hình chóp 3D minh hoạ khi chạy AR ..................................................................... 54
Hình 38 Hình trụ 3D minh hoạ khi chạy AR ........................................................................ 55

v


NỘI DUNG BÁO CÁO
1 Giới Thiệu
1.1 Giới thiệu chung
Với sự phát triển vượt bậc của công nghệ như hiện nay, thì kết hợp giữa thế giới thực
và ảo không còn là chuyện khó khăn, siêu tưởng và nhất là với công nghệ
Augmented Reality (viết tắt là AR).
AR được coi là công nghệ của tương lai, nhờ khả năng đối chiếu hình ảnh thực tế với
dữ liệu trên máy tính để cung cấp cho người dùng thông tin cụ thể, nhanh chóng và
phù hợp nhất với người dùng.
Hiện nay framework phát triển AR là ARToolkit. Và đã có nhiều trường đại học
nghiên cứu về AR, trong đó có đại học Washington (Mỹ), đại học khoa học công
nghệ Graz (Áo) , đại học Osaka (Nhật),…và những hãng sản xuất như Hà Lan, Nhật,
v.v…
Với sự phát triển của AR thì đã cho ra những ứng dụng tiện ích có giá trị thực tiễn và
một số ứng dụng giúp ích cho giáo dục như construct 3D, tạo không gian ảo cho lớp
học, magic book, truyện kể 3D sinh động, v.v…và một số ứng dụng trên điện thoại di
động như trình duyệt Layar, tạo vật thể 3D trên iPhone, map tracking,… và mốt số
ứng dụng khác trong nhiều lĩnh vực khác.

1.2 Đặt vấn đề
Trong vấn đề giảng dạy, hình học không gian luôn là vần đề khó khăn của giáo viên
và học sinh. Học sinh khó hình dung hình dạng của các hình học không gian. Và việc
1


khó nhận dạng đó sẽ làm cho phương pháp giải bài toán trở nên sai lệch kết quả, làm
cho kết quả học tập trở nên kém, thành tích giữa học sinh và giáo viên không được

tốt. Vì vậy việc học hình học không gian hết sức quan trọng, và cũng hết sức khó
khăn nhưng giờ đây điều đó sẽ được đơn giản hoá với bộ thư viện ARToolkit. Với bộ
thư viện này chúng tôi xây dựng lớp học ảo dành cho bộ môn hình học không gian.
Chúng tôi sẽ show cho học sinh thấy những hình học không gian 3D trực quan, sinh
động hơn, phù hợp với thực tế hơn, và mở rộng hơn nữa chúng ta có thể tác động
trực tiếp trên các hình học không gian ấy thông qua thiết bị Bút ARToolkit.
Và tương tự như thế, trong truyện cổ tích, chỉ nhìn những câu chữ thì câu chuyện
không hấp dẫn, không sinh động, thậm chí không hiểu được nội dung câu chuyện
đang nói gì. Nhưng ngược lại với một câu chuyện có hình ảnh trực quan, sinh động,
thì sẽ làm cho câu chuyện đó trở nên cực kì hấp dẫn, thu hút các em học sinh hơn,
thậm chí luôn cả người lớn. Điều đó sẽ được giải quyết bằng cách ứng dụng công
nghệ ARToolkit vào câu truyện cổ tích. Với một câu truyện, chúng tôi xây dựng
những hình ảnh 3D tương ứng với từng đoạn trong câu chuyện và thông qua
ARToolkit chúng ta show cho các em các hình ảnh 3D đó. Và đương nhiên với một
câu chuyện có hình ảnh 3D như vậy thì câu chuyện sẽ không còn nhàm chán và trở
nên cực kì hấp dẫn.

1.3 Phạm vi
Giai đoạn 1 (đến cuối tháng 5/2010):
 Tìm hiểu tổng quan công nghệ ARToolkit.
 Cài đặt hệ thống ARToolkit.
 Tìm hiểu cách tạo ra marker, pattern để tạo ra từng marker, pattern tương ứng
với từng hình học không gian.
 Dùng openGl hiện thực từng hình học không gian.
 Xây dựng bài toán hiển thị hình học không gian 3 chiều lên từng marker.

2


Giai đoạn 2 (đầu tháng 6/2010 đến cuối tháng 8/2010):

 Các thuật toán trong ARToolkit.
 Cách duyệt ma trận.
 Tìm hiểu về tool của Blender để xây dựng hình ảnh 3D cho câu chuyện cổ
tích.
 Xây dựng bài toán hiển thị hình ảnh 3D cho câu truyện cổ tích.

2 Tìm hiểu công nghệ
2.1 Giới thiệu công nghệ AR (Augmented Reality)
Augmented Reality (AR) là công nghệ kết hợp giữa thế giới thực và thế giới ảo, là
lớp che phủ lên thế giới thực được ghi nhận thông qua thiết bị ghi hình bằng những
hình ảnh đồ hoạ máy tính.
Thuật ngữ Augmented Reality được cho là đã được đặt ra vào năm 1990 bởi một
nhân viên Boeing có tên là Thomas Caudell, và được các trường đại học tại Mỹ,
Nhật, Áo, và các nhà sản xuất tiếp tục phát triển. Và ngày nay cộng đồng mạng dùng
mã nguồn của AR để phát triển ứng dụng của họ.
Và AR ngày càng được phát triển hơn, với sự phát triển tiên tiến đó của công nghệ
AR thì sự tương tác giữa thế giới thực và kỹ thuật số sẽ trở nên dễ dàng và tiện dụng
hơn. Thông tin về thế giời thực và những đối tượng liên quan có thể được lưu trữ và
thể hiện thông tin trở lại trên màn hình video thực.
Trong tương lai AR sẽ là một keyword phổ biến với những ứng dụng rất thiết thực và
tiện ích như các ứng dụng trong giáo dục như tạo ra lớp học ảo không gian 3 chiều,
construct 3D, trong lịch sử, bảo tàng, thậm chí là trong y học, du lịch, giao thông,…
có thể nói AR được ứng dụng trong mọi lĩnh vực.

3


2.2 Một số ứng dụng và ý tưởng AR
2.2.1 Ứng dụng AR trong giáo dục
2.2.1.1


Lớp học ảo

Hình 1 Khi đeo thiết bị các em học sinh sẽ thấy công cụ ảo

Hệ thống giáo dục này đang được thử nghiệm tại Singapore, giúp các bài học của học
sinh không còn trừu tượng mà thay bằng những hình ảnh trực quan sinh động.
Hệ thống gồm những bảng được đặt trên bàn (trên bảng sẽ có những maker, pattern
thích hợp), thiết bị xử lí được đeo trên đầu của học sinh kết hợp camera quan sát, hệ
thống projecter.
Khi học sinh đeo thiết bị trên đầu và nhìn vào bảng, sẽ có sự tương tác giữa bảng,
thiết bị và camera, camera sẽ lấy hình ảnh từ bảng, thiết bị xử lí xử lí hình ảnh, so
sánh với cơ sở dữ liệu hiện tại, và hiển thị cho các em học sinh hình ảnh không gian
3 chiều tương ứng. Và thông qua hệ thống projecter được kết nối với hệ xử lí sẽ
4


show hình ảnh 3D mà các học sinh đeo kính nhìn thấy lên màn ảnh và học sinh khác
có thể nhìn thấy những gì mà bạn mình đang xem trên một màn hình lớn thông qua
hệ thống projecter.
Hình ảnh sẽ thể hiện khác nhau tuỳ theo tính chất của buổi học tương ứng với mỗi
marker và pattern khác nhau. Ví dụ: hình ảnh 3 chiều của hệ mặt trời, sự tương tác
giữa các hành tinh trong hệ mặt trời, hay cấu tạo bên trong của trái đất bằng cách mổ
trái đất ra, hoặc hình ảnh sẽ là sự sinh sôi nảy nở của cây cối.

2.2.1.2

Construct 3D

Hình 2 Hệ thống Construct 3D


Construct 3D là công cụ thiết kế dành cho toán học đặc biệt là hình học, được nghiên
cứu ở Đại học công nghệ Graz và đại học công nghệ Vienna. Phương pháp này giúp
học sinh dễ quan sát, với các phép toán hình học không gian phức tạp thì qua hình
ảnh 3D sẽ trở nên dễ dàng hơn phương pháp truyền thống.

5


Hệ thống gồm máy trạm PC với đồ hoạ cao, camera, và marker, pattern được bố trí
thích hợp, bút đặc biệt được kết nối với hệ thống, và hệ thống projecter trong phòng
học.
Khi học sinh nhìn vào marker, parttern thông qua camera đeo trên đầu thì camera ghi
nhận hình ảnh, hệ thống xử lí, so sánh với cơ sở dữ liệu hiện có trên máy trạm và
show cho họ thấy được không gian 3 chiều của hình học tương ứng với marker.
Hình ảnh 3D mà học sinh, sinh viên nhìn thấy được hệ thống projecter show lên màn
ảnh để cho những học sinh, sinh viên khác nhìn thấy những gì mà họ đang thấy. Họ
có thể cắt, ghép hình học thông qua bút cầm tay đã được kết nối với hệ thống máy
trạm.
Học sinh và giáo viên làm việc cùng nhau, giúp họ thấy được hình ảnh không gian 3
chiều của các hình hình học, học sinh có thể tương tác trực tiếp lên hình không gian 3
chiều này (thông qua bút cầm tay) và có thể quan sát, di chuyển xung quanh hình.

2.2.1.3

Magic Book

Hình 3 Magic Book

6



Magic book là hệ thống show cho người dùng hình ảnh cần thiết tương ứng với nội
dung trong một quyển sách. Giúp cho người dùng dễ hình dung, dễ hiểu nội dung
trong quyển sách hơn, không còn trừu tượng.
Hệ thống gồm bộ xử lí được đeo trên đầu, camera bố trí thích hợp cho người dùng, 1
quyển sách (có thể là truyện tranh hay tạp chí hay tài liệu giao dịch trong kinh
doanh,…), cấu trúc quyển sách là một bên là nội dung, một bên là marker và pattern.
Thông qua camera, khi nhìn vào trang có marker, pattern, hệ thống ghi nhận pattern
người dùng đang xem, tiến hành phân tích xử lí, so sánh với cơ sỡ dữ liệu hiện có,
show người dùng thấy được hình ảnh không gian 3 chiều tương ứng với mỗi trang
sách.

2.2.2 Ứng dụng trên điện thoại di động
2.2.2.1

Trình duyệt Layar

Hình 4 Trình Duyệt layar

7


Đây là sản phẩm của sự phối hợp giữa 5 nhà cung cấp nội dung ở Hà Lan, được coi
là trình duyệt AR dành cho thiết bị di động đầu tiên trên thế giới.
Hệ thống gồm một điện thoại di động có cài đặt AR, server kết nối của nhà sản xuất,
trình duyệt này hiện hoạt động trên điện thoại chạy hệ điều hành Android của
Google.
Hướng camera điện thoại về phía trước, camera sẽ ghi nhận hình ảnh, hệ thống tiến
hành phân tích, xử lí hình ảnh, so sánh với cơ sỡ dữ liệu hiện có và show người dùng

thấy những căn nhà đang được rao bán, thông tin khách sạn, nhà hàng, trung tâm
mua sắm, điểm rút tiền ATM, v.v... tuỳ thuộc vào không gian thực khách hàng đang
xem.
Thông tin về khách sạn, nhà hàng, trung tâm mua sắm,… được lưu trong cơ sở dữ
liệu tại server của nhà sản xuất.

2.2.2.2

Tạo vật thể 3D trên iPhone

Hình 5 Vật thể 3D trên iPhone

Hệ thống gồm một iPhone có cài đặt AR, một tấm bìa, trên được in marker, pattern.

8


Khi đưa camera của iPhone qua tấm bìa, đều chỉnh gốc độ hợp lí, camera ghi nhận
hình ảnh, hệ thống xử lí, phân tích, so sánh với cơ sở dữ liệu, và show trên màn ảnh
của iPhone ta sẽ nhìn thấy tương ứng với mỗi ô vuông là hình ảnh 3D.
Khi xoay tấm bìa thì hình ảnh 3D xoay theo, đến một góc nào đó (giới hạn cho phép)
thì sẽ không thấy được hình 3D thêm lần nữa.

2.2.2.3

Map Tracking

Hình 6 Map tracking

Hệ thống gồm 1 bản đồ địa phận nào đó, và 1 chiếc nokia N95 có cài đặt công nghệ

AR.
Bạn có thể tìm thấy 1 cách chính xác địa điểm khẩn cấp như bệnh viện, địa điểm cần
thiết như trạm xe buýt, nhà ga,… một cách dễ dàng và chính xác hơn, khi trên bản đồ
thực tế thể hiện chúng quá nhỏ, gây khó khăn khi tìm kiếm.
Khi mở chức năng AR trên mobile, chuyển hướng camera của mobile lên trên bản
đồ, chỉnh sửa khoảng cách thích hợp, để camera thu nhận hình ảnh, sau đó hệ thống
sẽ xử lí, so sánh cơ sở dữ liệu thực tại và hiện trên mobile những cột mốc chỉ những
9


nơi mà bạn muốn tìm kiếm (điều kiện là địa điểm ấy có được cập nhật trong cơ sở dữ
liệu). Khi địa điểm được chọn, sẽ hiển thị thông tin về địa điểm ấy.

2.3 ARToolkit
2.3.1 Giới thiệu ARToolkit
ARToolkit là thư viện phần mềm giúp lập trình các ứng dụng AR. Nó là một mã
nguồn mở giúp xây dựng những ứng dụng liên quan đến lớp phủ hình ảnh 3D ảo lên
đối tượng khởi tạo thực.
Một trong những phần khó nhất của việc phát triển một ứng dụng AR là tăng cường
tính chính xác góc nhìn thực của người dùng trong thời gian thực để các hình ảnh ảo
được chính xác các đối tượng liên kết với thế giới thực. ARToolKit sử dụng các kỹ
thuật tầm nhìn máy tính để tính toán vị trí camera thực và định hướng tương đối so
với marker card, cho phép lập trình để che phủ các đối tượng ảo lên các card. Việc
nhanh chóng, chính xác theo dõi được cung cấp bởi ARToolKit nên cho phép sự phát
triển nhanh chóng của các ứng dụng AR mới và thú vị.
ARToolkit hiện đang chạy trên SGI IRIX, máy tính có hệ điều hành linux, Mac OS
X, hệ điều hành Windows (95/98/NT/2000/XP).
Ví dụ:

10



Hình 7 Ví dụ ARToolkit

Hình ảnh nhân vật đứng trên tấm bìa là không gian 3 chiều ảo, nó được xuất hiện bởi
thiết bị mà người dùng đang đeo, khi người dùng di chuyển tấm bìa thì nhân vật trên
bìa di chuyển theo.

2.3.2 Lịch sử phát triển
AR Toolkit được phát triển vào năm 1999 khi Hirokazo Kato người Nhật đến
HITLab.
Sơ đồ lịch sử phát triển của ARToolkit.

11


Hình 8 Sơ đồ phát triển ARToolkit
12


Ngày nay ARToolkit được phát triển rộng rãi như đại học Washington(Mỹ), đại học
khoa học công nghệ Graz (Áo), đại học Osaka (Nhật),…và những hãng sản xuất
cũng đã đưa ứng dụng AR vào thực tế như ứng dụng đầu tiên Layar của Hà
Lan,v.v…

2.3.3 Cách thức làm việc ARToolkit
Để chạy ứng dụng ARToolkit chúng ta cần có 1 tấm bìa trên đó đã được đánh dấu
marker, pattern và lưu vào máy tính.
Marker là ô vuông bên ngoài được tô viền đen để nhận dạng hình ảnh.
Pattern hay còn gọi là template, là ma trận mà AR dùng các thuật toán để tạo ra từ

marker nào đó.
Cách thức hoạt động tạo ra hình ảnh ảo:

Hình 9 Mô hình hoạt động của ARToolkit

13


1.

Camera captures video từ thế giới thực và gởi đến máy tính.

2.

Phần mềm trên máy tính tìm kiếm thông qua mỗi video cho marker tương

ứng.
3.

Nếu marker được tìm thấy, phần mềm sử dụng một số toán học để tính toán vị

trí tương đối của camera thực và marker.
4.

Khi đó vị trí của camera được biết như là model đồ hoạ máy tính được vẽ

cùng vị trí với camera.
5.

Module này được vẽ trên đầu video của thế giới thực và chồng trên marker.


6.

Output cuối cùng được hiển thị trong màn hình thiết bị cầm tay, do vậy chúng

ta sẽ thấy hình ảnh đồ hoạ chồng lên trên thế giới thực.

2.3.4 Những hạn chế về tầm nhìn của hệ thống
ARToolkit
Hệ thống AR hạn chế về tầm nhìn toàn diện, đối tượng ảo được nhìn thấy khi marker
tracking toàn bộ, điều này hạn chế kích thước và sự di chuyển của vật thể ảo, nếu
người dùng che phủ một phần marker tracking thì sẽ ko thể nhìn thấy vật thể ảo.
Với các pattern lớn hơn, xa hơn các pattern đã được detected. Bảng dưới đây là phạm
vi tối đa cho phép sai lệch kích thước với 1 số marker, kết quả có được là do mẫu
marker của một số hãng sản xuất:
Kích

thước

mẫu Giới hạn cho phép

(inch)

(inch)

2.75

16

3.50


25

4.25

34

7.37

50

14


2.3.5 ARToolkit Framework
2.3.5.1

Giới thiệu

ARToolKit là một bộ công cụ phần mềm giống GLUT, cung cấp các chức năng định
sẵn cần để phát triển một chương trình AR.
AR hỗ trợ nhiều nền tảng để giảm sự phụ thuộc vào thư viện mà vẫn dễ dàng xây
dựng ứng dụng.
ARToolKit sử dụng OpenGL cho phần rendering, GLUT cho các windows/ event
handler, thư viện video phụ thuộc vào phần cứng và tiêu chuẩn API trên mỗi nền
tảng (ví dụ như win32 trong Windows).
Hình 10 tóm tắt các mối quan hệ giữa các ứng dụng của bạn, ARToolKit và các
library.

Hình 10 Kiến trúc ARToolKit


2.3.5.2

Cấu trúc framework ARToolkit
15


Thư viện ARToolKit bao gồm bốn phân hệ:
 AR module: core module với marker tracking, hiệu chỉnh và bộ sưu tập tham
số.
 Video module: một tập hợp của các video routines để chụp video đưa vào
frames. Đây là một wrapper trên platform tiêu chuẩn SDK.
 Gsub module: một bộ sưu tập routines cơ bản về thư viện đồ họa OpenGL và
GLUT.
 Gsub_Lite module: thay thế GSub với một bộ sưu tập đồ họa, bộ công cụ độc
lập của bất kỳ cửa sổ riêng.
Cấu trúc của ARToolkit sử dụng Gsub Module:

Hình 11 Cấu trúc của ARToolkit sử dụng Gsub Module

Cấu trúc của ARToolKit sử dụng Gsub_Lite Module:

16


Hình 12 Cấu trúc của ARToolKit sử dụng Gsub_Lite Module

Các modules tuân theo pipeline metaphor (video->tracking->display), do đó người
dùng có thể dễ dàng thay thế modules với bất kỳ thành phần khác (giống gsub như
với Open Inventor renderer).


Hình 13 Luồng đi chính của video trong ARToolKit

2.3.5.3

Các loại dữ liệu

ARToolKit thao tác rất nhiều loại giá trị khác nhau của biến. Bên trong, nó sử dụng
các biến toàn cục hạn chế phần re-entrant của code. Ngoài ra, tiêu chuẩn multiargument được sử dụng dựa trên một phương pháp tiếp cận data-flow.
ARToolKit sử dụng định dạng hình ảnh khác nhau giữa các modules khác nhau.
Hình 14 tóm tắt tất cả các định dạng khác nhau được hỗ trợ. Một số định dạng chỉ có
sẵn trên platform nhất định hoặc với phần cứng nhất định.

17


Hình 14 Dòng dữ liệu ARToolkit

2.4 Hiệu chỉnh thông số camera
2.4.1 Giới thiệu
Trong một video thông qua giao diện AR, hình ảnh video có thể biến dạng với
camera khác nhau, hiệu chỉnh thông số camera có thể làm giảm biến dạng của video.
Trong phần mềm ARToolkit, thuộc tính mặc định của camera được chứa trong file
camera_para.dat, khi chạy ứng dụng thì thông số camera sẽ được gọi.
Các thuộc tính quan trọng của camera được đo bao gồm các điểm trung tâm của
camera, các biến dạng thấu kính và độ dài tiêu cự camera.
Chường trình calib_dist được sử dụng để đo lường các điểm trung tâm và độ biến
dạng của ống kính, calib_cparam sản xuất các thuộc tính khác của camera. Cả hai
chương trình được thấy trong thư mục bin và mã nguồn của chúng là trong utils /
calib_dist và utils / calib_cparam.

ARToolKit cung cấp hai cách hiệu chỉnh thông số camera:
 Phương pháp hai bước: khó sử dụng, nhưng kết quả chính xác tốt hơn (tốt
hơn cho đo lường 3D).
18


 Phương pháp 1 bước: dễ sử dụng, cho độ chính xác đủ tốt cho hình ảnh che
phủ.

2.4.2 Phương pháp hai bước
Trước hết phải in mô hình các tập tin calib_cpara.pdf và calib_dist.pdf. Chúng nằm
trong thư mục patterns của gói ARToolkit.
Các pattern calib_cpara.pdf là một mạng lưới các line và cần được scale để các line
chính xác 40 mm.
Pattern calib_dist.pdf chứa 6 x 4 chấm mẫu và phải được thu nhỏ để các dấu chấm là
40 mm ngoài. Mỗi tập tin phải được in ra và dán vào tấm bìa cứng.
Hình dưới đây là những hình ảnh được nhìn thấy qua camera:

Hình 15 Các pattern calib_dist và calib_cpara

Chương trình calib_dist nên được chạy đầu tiên và sau đó calib_cparam, vì
calib_cparam sử dụng kết xuất của calib_dist. Trong phần còn lại của phần này
chúng tôi giải thích làm thế nào để chạy mỗi chương trình này.

2.4.2.1

Quá trình chạy calib_dist

19



×