Thêm kích thước vào hình ảnh

Hướng dẫn dành riêng cho nền tảng

API Hình ảnh tăng cường trong ARCore cho phép bạn xây dựng các ứng dụng thực tế tăng cường có thể phát hiện và tích hợp hình ảnh 2D trong môi trường của người dùng, chẳng hạn như áp phích hoặc bao bì sản phẩm.

Bạn cung cấp một bộ ảnh tham chiếu. ARCore sử dụng thuật toán thị giác máy tính để trích xuất các tính năng từ thông tin thang màu xám trong mỗi hình ảnh và lưu trữ nội dung biểu diễn của các tính năng này trong một hoặc nhiều cơ sở dữ liệu Hình ảnh tăng cường.

Trong thời gian chạy, ARCore sẽ tìm kiếm những tính năng này trên bề mặt phẳng trong môi trường của người dùng. Việc này cho phép ARCore phát hiện những hình ảnh này trên thế giới và ước tính vị trí, hướng và kích thước nếu không có các hình ảnh đó.

Tính năng

ARCore có thể theo dõi tối đa 20 hình ảnh cùng lúc. ARCore sẽ không phát hiện hoặc theo dõi đồng thời nhiều thực thể của cùng một hình ảnh.

Mỗi cơ sở dữ liệu Hình ảnh tăng cường có thể lưu trữ thông tin tối đa 1.000 hình ảnh tham chiếu. Không có giới hạn về số lượng cơ sở dữ liệu, nhưng tại mỗi thời điểm, chỉ một cơ sở dữ liệu có thể hoạt động.

Bạn có thể thêm hình ảnh vào cơ sở dữ liệu Hình ảnh tăng cường trong thời gian chạy, với giới hạn là 1.000 hình ảnh cho mỗi cơ sở dữ liệu. Bạn có thể tải cơ sở dữ liệu đã tạo trước đây xuống bằng cách sử dụng kết nối mạng.

Khi thêm hình ảnh, bạn có thể cung cấp kích thước thực của hình ảnh để phát hiện. Làm như vậy sẽ cải thiện hiệu suất phát hiện hình ảnh.

  • Nếu không cung cấp kích thước thực tế, ARCore sẽ ước tính kích thước và tinh chỉnh con số ước tính này theo thời gian.

  • Nếu cung cấp kích thước thực, ARCore sẽ sử dụng kích thước được cung cấp và ước tính vị trí cũng như hướng của hình ảnh, bỏ qua mọi khác biệt giữa kích thước mẹ hoặc kích thước thực tế và kích thước thực tế được cung cấp.

ARCore có thể phản hồi và theo dõi những hình ảnh:

  • Hình ảnh được cố định vào đúng vị trí, chẳng hạn như ảnh in treo trên tường hoặc tạp chí trên bàn

  • Các hình ảnh chuyển động, chẳng hạn như quảng cáo trên một chiếc xe buýt đang đi qua hoặc hình ảnh trên một đối tượng phẳng do người dùng cầm khi họ di chuyển tay xung quanh.

Sau khi bắt đầu theo dõi một hình ảnh, ARCore sẽ cung cấp thông tin ước tính về vị trí và hướng của hình ảnh cho từng khung hình. ARCore liên tục tinh chỉnh các số liệu ước tính này khi thu thập thêm dữ liệu.

Sau khi phát hiện hình ảnh, ARCore sẽ tiếp tục "theo dõi" vị trí và hướng của hình ảnh, ngay cả khi hình ảnh tạm thời di chuyển ra khỏi chế độ xem máy ảnh vì người dùng đã di chuyển thiết bị. Khi điều này xảy ra, ARCore giả định rằng vị trí và hướng của hình ảnh là tĩnh, đồng thời hình ảnh đó không tự di chuyển qua môi trường.

Toàn bộ quá trình theo dõi đều diễn ra trên thiết bị. Bạn không cần có kết nối Internet để phát hiện và theo dõi hình ảnh.

Yêu cầu

Hình ảnh phải:

  • Điền ít nhất 25% khung hình máy ảnh được phát hiện ban đầu.

  • Bề mặt phẳng (ví dụ: không bị nhăn hoặc bao bọc quanh chai).

  • Chụp ảnh rõ nét trước máy ảnh. Ảnh không được che khuất một phần, nhìn thấy ở góc quá nghiêng hoặc không được nhìn thấy khi máy ảnh di chuyển quá nhanh do bị mờ chuyển động.

Những điểm cần cân nhắc về hiệu suất và mức sử dụng CPU

Tuỳ thuộc vào các tính năng ARCore đã được bật, việc bật Hình ảnh tăng cường có thể làm tăng mức sử dụng CPU của ARCore. Hãy cân nhắc tắt mọi tính năng không dùng đến trong thời gian trải nghiệm thực tế tăng cường (AR) không cần đến. Việc này sẽ cung cấp thêm chu kỳ CPU cho ứng dụng của bạn, đồng thời cải thiện hiệu suất nhiệt và thời lượng pin.

Để biết thêm thông tin, hãy xem nội dung các điểm cần cân nhắc về hiệu suất.

Các phương pháp hay nhất

Mẹo chọn ảnh tham chiếu

  • Hình ảnh phải có độ phân giải tối thiểu 300 x 300 pixel. Việc sử dụng hình ảnh có độ phân giải cao không cải thiện được hiệu suất.
  • Bạn có thể cung cấp hình ảnh tham chiếu ở định dạng tệp PNG hoặc JPEG.
  • Thông tin về màu sắc không được sử dụng. Cả hình ảnh có màu và thang màu xám tương đương đều có thể được người dùng sử dụng làm hình ảnh tham chiếu hoặc để người dùng sử dụng trong thời gian chạy.
  • Tránh sử dụng hình ảnh ở chế độ nén quá nhiều vì hình ảnh này sẽ ảnh hưởng đến việc trích xuất đối tượng.
  • Tránh hình ảnh có chứa nhiều đặc điểm hình học hoặc rất ít đặc điểm (ví dụ: mã vạch, mã QR, biểu trưng và hình minh hoạ khác) vì những hình ảnh này có thể khiến hiệu suất phát hiện và theo dõi kém.
  • Tránh hình ảnh có mẫu lặp lại vì điều này cũng có thể gây ra các vấn đề về việc phát hiện và theo dõi.
  • Hãy sử dụng công cụ arcoreimg có trong SDK ARCore để đạt điểm chất lượng trong khoảng từ 0 đến 100 cho mỗi hình ảnh. Bạn nên sử dụng điểm chất lượng tối thiểu là 75. Sau đây là hai ví dụ:

    Hình ảnh ví dụ 1 Hình ảnh ví dụ 2
    Điểm số: 0 Điểm số: 100
    chứa các đặc điểm hình học lặp lại độ phân giải vừa đủ; chứa nhiều tính năng độc đáo

Mẹo tạo cơ sở dữ liệu hình ảnh

  • Sử dụng công cụ arcoreimg cho Android để tạo tệp cơ sở dữ liệu hình ảnh. Công cụ này chỉ dùng để phát triển Android và Android NDK. Công cụ này được tích hợp vào SDK Unity và trình bổ trợ ARCore Unreal.
  • Cơ sở dữ liệu lưu trữ một bản trình bày nén của các tính năng được trích xuất từ dữ liệu thang màu xám trong các hình ảnh tham chiếu. Mỗi mục nhập hình ảnh chiếm khoảng 6 KB.
  • Mất khoảng 30 mili giây để thêm hình ảnh vào cơ sở dữ liệu trong thời gian chạy.
    • Thêm hình ảnh trên một luồng worker để tránh chặn luồng giao diện người dùng.
    • Hoặc, nếu có thể, hãy thêm hình ảnh vào thời điểm biên dịch bằng cách sử dụng công cụ arcoreimg có trong SDK ARCore.
  • Nếu bạn biết kích thước thực tế dự kiến của một hình ảnh, hãy chỉ rõ kích thước đó. Thông tin này giúp cải thiện hiệu suất phát hiện và theo dõi, đặc biệt là đối với các hình ảnh thực lớn (trên 75 cm).
  • Tránh giữ nhiều hình ảnh không dùng đến trong cơ sở dữ liệu, vì có tác động nhỏ đến hiệu suất hệ thống do mức sử dụng CPU tăng lên.

Mẹo tối ưu hoá việc theo dõi

  • Nếu hình ảnh không bao giờ di chuyển từ vị trí ban đầu (ví dụ: một áp phích gắn trên tường), bạn có thể đính kèm một neo vào hình ảnh để tăng độ ổn định khi theo dõi.
  • Hình ảnh thực tế phải chiếm ít nhất 25% hình ảnh máy ảnh để phát hiện ban đầu. Bạn có thể nhắc người dùng đưa hình ảnh thực vào khung máy ảnh.
  • Đừng sử dụng ước tính kích thước và tư thế của hình ảnh cho đến khi trạng thái theo dõi của hình ảnh là theo dõi đầy đủ. Khi ARCore phát hiện hình ảnh ban đầu và không có kích thước thực tế dự kiến nào được chỉ định, trạng thái theo dõi của hình ảnh đó sẽ bị tạm dừng. Điều này có nghĩa là ARCore đã nhận dạng hình ảnh nhưng chưa thu thập đủ dữ liệu để ước tính vị trí trong không gian 3D.