Thêm phương diện vào hình ảnh

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

API tăng cường hình ảnh trong ARCore cho phép bạn tạo các ứng dụng thực tế tăng cường có thể phát hiện và phát triển 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 tập hợp hình ả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ữ đại 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.

Vào thời gian chạy, ARCore tìm kiếm các tính năng này trên các bề mặt phẳng trong môi trường người dùng. Điều 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 cung cấp.

Chức năng

ARCore có thể theo dõi tối đa 20 hình ảnh cùng lúc. ARCore sẽ không đồng thời phát hiện hoặc theo dõi nhiều trường hợp 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 lên tới 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 chỉ có một cơ sở dữ liệu có thể hoạt động tại thời điểm bất kỳ.

Hình ảnh có thể được thêm vào cơ sở dữ liệu Hình ảnh tăng cường vào thời gian chạy, tối đa giới hạn 1.000 hình ảnh trên mỗi cơ sở dữ liệu. Bạn có thể tải các cơ sở dữ liệu đã tạo trước đây xuống bằ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. Việc này sẽ giúp 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, ARCore sẽ ước tính kích thước và điều chỉnh giá trị ước tính này theo thời gian.

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

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

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

  • Hình ảnh chuyển động, chẳng hạn như quảng cáo trên xe buýt đi ngang hoặc hình ảnh trên một vật thể dẹt do người dùng giữ khi họ di chuyển tay.

Sau khi bắt đầu theo dõi hình ảnh, ARCore sẽ cung cấp thông tin ước tính về vị trí và hướng của từng hình ả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 thấy hình ảnh, ARCore tiếp tục "tracking" 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ị của họ. Khi làm như vậy, ARCore giả định rằng vị trí và hướng của hình ảnh là tĩnh và hình ảnh đó không tự di chuyển trong môi trường.

Toàn bộ hoạt động theo dõi diễn ra trên thiết bị. Bạn không cần 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:

  • lấp đầy ít nhất 25% khung hình của máy ảnh để phát hiện ban đầu.

  • Hình phẳng (ví dụ: không bị nhăn hoặc bọc xung quanh một chai).

  • Camera rõ ràng. Không được che khuất một phần, xem ở góc nghiêng cao hoặc xem khi máy ảnh di chuyển quá nhanh do làm mờ chuyển động.

Mức sử dụng CPU và các điểm cần lưu ý về hiệu suất

Tùy 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ể tăng mức sử dụng CPU của ARCore&3. Hãy cân nhắc tắt mọi tính năng không sử dụng trong thời gian trải nghiệm AR của bạn không yêu cầu. Điều này sẽ cung cấp thêm cho chu kỳ CPU của ứ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 bài viết 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 hình ảnh tham chiếu

  • Độ phân giải của hình ảnh phải tối thiểu là 300 x 300 pixel. Việc sử dụng hình ảnh có độ phân giải cao không cải thiện 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 màu không được sử dụng. Cả hình ảnh có màu và thang màu xám tương đương có thể được dùng làm hình ảnh tham chiếu hoặc do người dùng vào thời gian chạy.
  • Tránh hình ảnh có nén nặng vì điều này gây cản trở cho tính năng trích xuất tính năng.
  • Tránh sử dụng những hình ảnh có chứa nhiều tính năng hình học hoặc một vài tính năng (ví dụ: mã vạch, mã QR, biểu trưng và các hình minh họa khác) vì nếu làm như vậy sẽ làm giảm hiệu suất phát hiện và theo dõi.
  • Tránh sử dụng hình ảnh có mẫu lặp lại vì việc này cũng có thể gây ra vấn đề cho quá trình phát hiện và theo dõi.
  • Hãy dùng công cụ arcoreimg có trong SDK ARCore để nhận điểm chất lượng từ 0 đến 100 cho mỗi hình ảnh. Điểm chất lượng ít nhất phải là 75. Dưới đây là hai ví dụ:

    Ví dụ về hình ảnh 1 Ví dụ về hình ảnh 2
    Điểm: 0 Điểm: 100
    chứa các đặc điểm hình học lặp lại độ phân giải đủ; 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ành cho Android và Android NDK phát triển. Phiên bản 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ữ bản trình bày nén 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 hình ảnh sử dụng khoảng 6 KB.
  • Mất khoảng 30 mili giây để thêm một hình ảnh vào cơ sở dữ liệu vào thời gian chạy.
    • Thêm hình ảnh trên chuỗi nhân viên để tránh chặn chuỗi giao diện người dùng.
    • Hoặc, nếu có thể, hãy thêm hình ảnh vào thời gian 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 của hình ảnh, hãy chỉ định 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 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ì chúng có ảnh hưở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 hóa tính năng theo dõi

  • Nếu hình ảnh của bạn không bao giờ di chuyển từ vị trí ban đầu (ví dụ: áp phích gắn vào tường), bạn có thể đính kèm thẻ liên kết toàn cầu vào hình ảnh để tăng độ ổn định của tính năng theo dõi.
  • Hình ảnh thực tế phải chiếm ít nhất 25% hình ảnh của 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 tế vào khung máy ảnh của họ.
  • Không sử dụng hình ảnh và ước tính kích thước của hình ảnh cho đến khi trạng thái theo dõi của hình ảnh được theo dõi đầy đủ. Khi hình ảnh ban đầu được ARCore phát hiện 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 ra hình ảnh, nhưng chưa thu thập đủ dữ liệu để ước tính vị trí của hình ảnh đó trong không gian 3D.