Công nghệ theo dõi chuyển động của ARCore sử dụng camera của điện thoại để xác định các điểm thú vị, được gọi là các tính năng và theo dõi cách các điểm đó di chuyển theo thời gian.. Các
Trang 1BÁO CÁO ĐỒ ÁN 2 TÌM HIỂU ARCore VÀ XÂY DỰNG
Họ tên sinh viên: Phạm Duy Cường 17520309 (CQ)
Nguyễn Ngọc Hiển 17520460 (CLC)
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
Trang 2LỜI CẢM ƠN
Đầu tiên, nhóm tác giả xin gởi lời cảm ơn chân thành đến tập thể quý Thầy
Cô Trường Đại học Công nghệ thông tin – Đại học Quốc gia TP.HCM và quý Thầy
Cô khoa Công nghệ phần mềm đã giúp cho em có những kiến thức cơ bản làm nền tảng để thực hiện đề tài này
Đặc biệt, em xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới Thầy Huỳnh Tuấn Anh Thầy đã trực tiếp hướng dẫn tận tình, sửa chữa và đóng góp nhiều ý kiến giúp em hoàn thành tốt và đúng hạn báo cáo môn học của mình
Trong thời gian một học kỳ thực hiện đề tài, em đã vận dụng những kiến thức nền tảng đã tích lũy đồng thời kết hợp với việc học hỏi và nghiên cứu những kiến thức mới Từ đó, em vận dụng tối đa những gì đã thu thập được để hoàn thành một báo cáo đồ án tốt nhất Tuy nhiên, trong quá trình thực hiện, em không tránh khỏi những thiếu sót Chính vì vậy, em rất mong nhận được những sự góp ý từ phía các Thầy Cô nhằm hoàn thiện những kiến thức mà em đã học tập và là hành trang để
em thực hiện tiếp các đề tài khác trong tương lai
Xin chân thành cảm ơn các quý Thầy Cô !
Sinh viên thực hiện Phạm Duy Cường Nguyễn Ngọc Hiển
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN
Trang 4
A Tìm hiểu về ARCore
I Tổng quan về ARCore
1 Nguồn gốc của ARCore
Nói một cách đơn giản, AR là sự kết hợp của dữ liệu kỹ thuật số và đầu vào giác quan của con người trong thế giới thực thời gian thực dường như được gắn (đăng ký) với không gian vật lý AR thường được kết hợp với tăng cường thị giác, trong đó đồ họa máy tính kết hợp với hình ảnh thế giới thực tế Sử dụng thiết bị di động, chẳng hạn như điện thoại thông minh hoặc máy tính bảng, AR kết hợp đồ họa với video Chúng tôi gọi đây là video xem qua cầm tay
ARCore là một bộ công cụ phát triển phần mềm do Google phát triển,
cho phép xâu dựng các ứng dụng thực tế tăng cường
ARCore sử dụng 3 công nghệ chính để tích hợp nội dung ảo với thế
giới thực thông qua camera điện thoại của bạn
Theo dõi chuyển động cho phép điện thoại hiểu và theo dõi vị trí
của nó so với thế giới
Hiểu biết về môi trường xung quanh cho phép điện thoại di động
phát hiện kích thước và vị trí của các bề mặt phẳng nằm ngang ,
chẳng hạn như mặt đất , mặt bàn ,vv
Ước tính ánh sáng cho phép điện thoại ước tính điều kiện ánh
sáng hiện tại của môi trường
2 Thiết bị hỗ trợ
ARCore được thiết kế để hoạt động trên nhiều loại điện thoại Android
đủ điều kiện chạy Android 7.0 trở lên
ARCore hỗ trợ các thiết bị sau:
Google Pixel và Pixel XL
Trang 5 Samsung Galaxy S8 (G950U, G950N, G950FD, G950FD, SM-G950W, SM-G950U1)
SM-3 ARCore hoạt động như thế nào ?
Về cơ bản ARCore đang làm hai việc : theo dõi vị trí của thiết bị di
động khi nó di chuyển và xây dựng hiểu biết của riêng nó về thế giới
thực
Công nghệ theo dõi chuyển động của ARCore sử dụng camera của điện thoại
để xác định các điểm thú vị, được gọi là các tính năng và theo dõi cách các điểm đó di chuyển theo thời gian Với sự kết hợp giữa chuyển động của những điểm này và số đọc từ cảm biến quán tính của điện thoại, ARCore xác định cả vị trí và hướng của điện thoại khi nó di chuyển trong không gian Ngoài việc xác định các điểm chính, ARCore có thể phát hiện các bề mặt phẳng, như bàn hoặc sàn nhà và cũng có thể ước tính ánh sáng trung bình ở khu vực xung quanh nó Những khả năng này kết hợp với nhau để cho phép ARCore xây dựng sự hiểu biết của riêng mình về thế giới xung quanh
Sự hiểu biết của ARCore về thế giới thực cho phép bạn đặt các đối tượng, chú thích hoặc thông tin khác theo cách tích hợp hoàn toàn với thế giới thực Bạn
có thể đặt một chú mèo con đang ngủ trưa trên góc bàn cà phê hoặc chú thích một bức tranh với thông tin tiểu sử về nghệ sĩ Theo dõi chuyển động có nghĩa là bạn có thể di chuyển xung quanh và xem những vật thể này từ mọi góc độ, và ngay cả khi bạn quay lại và rời khỏi phòng, khi bạn quay lại, chú mèo con hoặc chú thích sẽ ở ngay nơi bạn để nó
4 Các khái niệm cơ bản
a) Theo dõi chuyển động
Khi điện thoại của bạn di chuyển khắp thế giới, ARCore sử dụng một quy trình được gọi là bản địa hóa và ánh xạ đồng thời , hoặc SLAM, để hiểu vị trí của điện thoại so với thế giới xung quanh ARCore phát hiện các đặc điểm khác biệt trực quan trong hình ảnh camera đã chụp được
gọi là điểm đặc trưng và sử dụng các điểm này để tính toán sự thay đổi
về 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ừ IMU của thiết bị để ước tính tư thế (vị trí và hướng) của máy
ảnh so với thế giới theo thời gian
Trang 6Bằng cách căn chỉnh tư thế của máy ảnh ảo hiển thị nội dung 3D của bạn với tư thế của máy ảnh của thiết bị do ARCore cung cấp, các nhà phát triển có thể hiển thị nội dung ảo từ góc nhìn chính xác Hình ảnh ảo được hiển thị có thể được phủ lên trên hình ảnh thu được từ máy ảnh của thiết bị, làm cho nó có vẻ như thể nội dung ảo là một phần của thế giới thực
b) Hiểu biết về môi trường
ARCore không ngừng nâng cao hiểu biết về môi trường thế giới thực bằng cách phát hiện các điểm đặc trưng và mặt phẳng
ARCore tìm kiếm các cụm điểm đặc trưng dường như nằm trên các bề mặt ngang hoặc dọc chung, như bảng hoặc tường và cung cấp các bề
mặt này cho ứng dụng của bạn dưới dạng mặt phẳng ARCore cũng có
thể xác định ranh giới của từng mặt phẳng và cung cấp thông tin đó cho ứng dụng của bạn Bạn có thể sử dụng thông tin này để đặt các đối tượng ảo nằm yên trên bề mặt phẳng
Vì ARCore sử dụng các điểm đặc trưng để phát hiện mặt phẳng, các bề mặt phẳng không có vân, chẳng hạn như bức tường trắng, có thể không được phát hiện đúng cách
c) Hiểu biết sâu sắc
ARCore có thể tạo bản đồ độ sâu, hình ảnh chứa dữ liệu về khoảng cách giữa các bề mặt từ một điểm nhất định, sử dụng máy ảnh RGB chính từ
cung cấp để mang lại trải nghiệm người dùng chân thực và nhập vai, chẳng hạn như làm cho các vật thể ảo va chạm chính xác với các bề mặt quan sát hoặc làm cho chúng xuất hiện phía trước hoặc phía sau các vật thể trong thế giới thực
d) Ước tính ánh sáng
ARCore có thể phát hiện thông tin về ánh sáng của môi trường và cung cấp cho bạn cường độ trung bình và hiệu chỉnh màu sắc của một hình ảnh camera nhất định Thông tin này cho phép bạn chiếu sáng các vật thể ảo của mình trong cùng điều kiện với môi trường xung quanh chúng, làm tăng cảm giác chân thực
e) Tương tác người dùng
Trang 7ARCore sử dụng thử nghiệm lần truy cập để lấy một tọa độ (x, y) tương ứng với màn hình của điện thoại (được cung cấp bằng cách nhấn hoặc bất kỳ tương tác nào khác mà bạn muốn ứng dụng của mình hỗ trợ) và chiếu tia vào chế độ xem thế giới của máy ảnh, trả lại bất kỳ mặt phẳng nào hoặc đặc điểm của các điểm mà tia giao nhau, cùng với vị trí của giao điểm đó trong không gian thế giới Điều này cho phép người dùng chọn hoặc tương tác với các đối tượng trong môi trường
f) Điểm định hướng
Các điểm định hướng cho phép bạn đặt các đối tượng ảo trên các bề mặt
có góc cạnh Khi bạn thực hiện kiểm tra lượt truy cập trả về một điểm đặc trưng, ARCore sẽ xem xét các điểm đặc trưng gần đó và sử dụng các điểm đó để ước tính góc của bề mặt tại điểm đặc trưng đã cho ARCore sau đó sẽ trả lại một tư thế có tính đến góc độ đó
Vì ARCore sử dụng các cụm điểm đặc trưng để phát hiện góc của bề mặt, các bề mặt không có vân, chẳng hạn như bức tường trắng, có thể không được phát hiện đúng cách
g) Điểm neo và có thể theo dõi
Tư thế có thể thay đổi khi ARCore cải thiện sự hiểu biết về vị trí của chính nó và môi trường của nó Khi bạn muốn đặt một đối tượng ảo, bạn
cần xác định một điểm neo để đảm bảo rằng ARCore theo dõi vị trí của
đối tượng theo thời gian Thông thường, bạn tạo một neo dựa trên tư thế được trả lại bởi một bài kiểm tra lượt truy cập, như được mô tả trong tương tác người dùng
Thực tế là các tư thế có thể thay đổi có nghĩa là ARCore có thể cập nhật
vị trí của các đối tượng môi trường như mặt phẳng và các điểm đặc trưng theo thời gian Máy bay và điểm là một loại đối tượng đặc biệt
được gọi là có thể theo dõi Giống như tên cho thấy, đây là những đối
tượng mà ARCore sẽ theo dõi theo thời gian Bạn có thể neo các đối tượng ảo vào các đối tượng có thể theo dõi cụ thể để đảm bảo rằng mối quan hệ giữa đối tượng ảo của bạn và đối tượng có thể theo dõi vẫn ổn định ngay cả khi thiết bị di chuyển xung quanh Điều này có nghĩa là nếu bạn đặt một bức tượng Android ảo trên bàn làm việc của mình, nếu ARCore sau đó điều chỉnh tư thế của máy bay được liên kết với bàn làm việc, bức tượng Android sẽ vẫn xuất hiện ở trên đầu bảng
h) Hình ảnh tăng cường
Trang 8Hình ảnh tăng cường là một tính năng cho phép bạn xây dựng các ứng dụng AR có thể phản hồi các hình ảnh 2D cụ thể như bao bì sản phẩm hoặc áp phích phim Người dùng có thể kích hoạt trải nghiệm AR khi họ hướng máy ảnh của điện thoại vào các hình ảnh cụ thể - ví dụ: họ có thể hướng máy ảnh của điện thoại vào áp phích phim và để một nhân vật bật ra và tạo cảnh
ARCore cũng theo dõi các hình ảnh chuyển động, chẳng hạn như bảng quảng cáo bên hông xe buýt đang di chuyển
Hình ảnh có thể được biên dịch ngoại tuyến để tạo cơ sở dữ liệu hình ảnh hoặc từng hình ảnh có thể được thêm vào trong thời gian thực từ thiết bị Sau khi đăng ký, ARCore sẽ phát hiện những hình ảnh này, ranhgiới của hình ảnh và trả lại tư thế tương ứng
Trang 95 Môi trường phát triển
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 như theo dõi chuyển động, hiểu biết về môi trường và ước tính ánh sáng Với những khả năng này, bạn có thể tạo trải nghiệm AR hoàn toàn mới hoặc nâng cao các ứng dụng hiện
có bằng các tính năng AR
6 Thiết lập môi trường phát triển trên Android
7.0 (cấp độ API 24) trở lên
https://github.com/google-ar/arcore-android-sdk.git
Trang 10Trong Android Studio, mở dự án mẫu HelloAR trong <ARCore SDK
Folder>/samples/java_arcore_hello_ar
Dự án mẫu đã xây dựng phụ thuộc vào một số phiên bản phần mềm nhất định, chẳng hạn như Gradle và Android SDK Nếu các yêu cầu phụ thuộc được yêu cầu không được cài đặt, Android Studio sẽ yêu cầu bạn cho phép tải xuống và cài đặt chúng trên máy của bạn
các thiết bị ảo như Android Emulator Để chuẩn bị thiết bị của bạn:
Adb install -r -d arcore-preview.apk
Trang 137 So sánh ARCore và ARKit
Trước tiên hãy hiểu những điều cơ bản về ARKit ARKit là một khuôn khổ để xây dựng thực tế tăng cường cho iOS, nhằm mục đích đưa nội dung ảo vào các cảnh trong thế giới thực một cách chính xác và chân thực Khung ARKit cung cấp hai công nghệ AR, một là thực tế tăng cường dựa trên cảnh 3D (SceneKit)
và công nghệ kia là thực tế tăng cường dựa trên cảnh 2D (SpriktKit) Cốt lõi của ARKit là cung cấp hỗ trợ cho một số chức năng chính cơ bản, bao gồm theo dõi chuyển động, phát hiện mức độ và dự đoán ánh sáng xung quanh
Theo dõi chuyển động: thiết bị di động cung cấp một bộ đồng xử lý chuyển động chuyên dụng Chức năng này sử dụng VIO (Visual Inertial Odometry) để ước tính vị trí và chuyển động ba chiều của thiết bị dựa trên dữ liệu được ống kính chụp
Phát hiện mặt phẳng ngang: mặt phẳng nằm ngang có thể được xác định
và đối tượng ảo có thể được đặt chính xác trong cảnh vật lý thực
Dự đoán ánh sáng xung quanh: Bóng và hiệu ứng ánh sáng thực tế được điều chỉnh cho phù hợp với các đối tượng ảo
Hình ảnh sau đây là sự so sánh các ví dụ demo chính thức trong hai khuôn khổ Bên trái là iPhone 7 và bên phải là Samsung S8 Các mặt phẳng được xác định và các đối tượng được thêm vào Sau khi xoay, các điểm đặc trưng sẽ thay đổi đáng kể và sau đó định vị lại
Điểm giống và khác nhau
Cảm nhận ánh sáng: Cả ARKit và ARCore đều có thể ước tính đơn giản về ánh sáng xung quanh ARKit cung cấp cho nhà phát triển các tùy chọn về cường độ và nhiệt độ màu, trong khi ARCore cung cấp các giá trị cường độ điểm ảnh đơn (API Android Studio) và Shader (API Unity)
Tạo và định vị hình ảnh: ARCore và ARKit đều sử dụng hình ảnh đám mây điểm rời rạc Trình theo dõi sẽ xác định trước xem có hình ảnh được tải sẵn hay không Nếu không, mô hình mới sẽ được tùy chỉnh và phạm vi 3D dưới góc nhìn của máy ảnh sẽ thu được Khi bạn di chuyển thiết bị, máy ảnh sẽ chụp một hình ảnh mới và tải nó vào mô hình 3D mới được tạo, liên tục thêm nội dung ARKit sử dụng "cửa sổ trượt" khi xây dựng bản đồ Chỉ dữ liệu thời gian và khoảng cách mới nhất sẽ được lưu vào bản đồ Dữ liệu
cũ sẽ tự động bị bỏ qua ARCore sẽ quản lý và duy trì dữ liệu và
Trang 14bản đồ lớn hơn, đồng thời nội dung đã lưu sẽ Lâu dài và ổn định hơn
Bố cục thị trường: ARKit chỉ hỗ trợ các thiết bị có bộ vi xử lý A9 trở lên, tương ứng với các mẫu iPhone 6s trở lên Tính đồng bộ cao của hệ thống điện thoại di động cũng đã đặt nền móng cho thiết bị khổng lồ của Apple Hiện tại, phiên bản ARCore xem trước chỉ dành cho một số ít mẫu máy và Hệ thống, cùng với các nhà sản xuất OEM hoạt động độc lập, vẫn còn tụt hậu về mức độ phổ biến trong ngắn hạn
Phát triển sản phẩm: ARKit đã được phát hành trước vài tháng Đã
có nhiều ứng dụng thực tế cho thấy trí tưởng tượng không giới hạn của các nhà phát triển Việc phát hành gần đây của ARCore vẫn yêu cầu các nhà phát triển mở mang đầu óc, nhưng Tango trước đây đã là 2-3 Các công cụ phát triển và hỗ trợ kỹ thuật đã được tích lũy trong năm, điều này sẽ mang lại sự chuyển đổi tốt và trợ giúp cho các nhà phát triển đã cam kết với AR trong một thời gian dài
So sánh, các chức năng cốt lõi của ARCore và ARKit là tương tự nhau Trong bản demo, hiệu suất theo dõi của ARCore trên các thiết bị được
hỗ trợ rất gần với khả năng nhận dạng của ARKit ARCore có một số lợi thế trong việc xây dựng và di dời bản đồ, còn ARKit có lợi thế trong tích hợp và theo dõi Một số lợi thế kỹ thuật, mỗi loại có một vị trí trên thị trường, sự lựa chọn chủ yếu phụ thuộc vào sở thích cá nhân của nhà phát triển
Trang 168 Sự khác biệt giữa VR và AR
Một lời giải thích chính thức hơn:
Thực tế ảo: Sử dụng máy tính để tạo không gian ảo, sử dụng kính thực
tế ảo có thể khiến người dùng hoàn toàn chìm đắm trong môi trường hỗn hợp ảo, sử dụng nguyên lý thị giác hai mắt, thế giới ảo trong kính là 3D lập thể, không thể nhìn thấy Môi trường thực tế
Thực tế tăng cường: Nó có thể tích hợp thông tin ảo (vật thể, hình ảnh, video, âm thanh, v.v.) vào môi trường thực, làm phong phú thế giới thực
và xây dựng một thế giới ảo tưởng toàn diện hơn
Đối với người dùng mới làm quen, lời giải thích trực quan và có cơ sở nhất là
VR không cần mở máy ảnh, chỉ có cảnh ảo, không có cảnh thực trước mặt bạn
và một số lượng lớn các tác phẩm điện ảnh và truyền hình cũng như các buổi hòa nhạc trực tiếp đã được sản xuất ở định dạng VR Phiên bản Daydream 2.0 ra mắt gần đây đề xuất Xem trước tức thì Việc phát triển trên nền tảng Unity cho phép điện thoại di động và máy tính kết hợp với nhau để nâng cao hiệu quả phát triển
Về AR, lực lượng chính là Dự án Tango và ARCore Trước đây sử dụng giải pháp kết hợp phần mềm và phần cứng có cấu hình cao để cung cấp các dịch vụ như nhận thức môi trường và theo dõi vị trí Nó được sử dụng trong định vị trong nhà, mô hình ba chiều, người máy và các lĩnh vực khác và được áp dụng cho các thiết bị di động Sản phẩm rất hạn chế;