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 AR có thể phát hiện và tăng cường 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ộ 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 đặc điểm từ thông tin thang màu xám trong mỗi hình ảnh và lưu trữ bản trình bày của các đặc điểm 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 các đặc điểm này trên các bề mặt phẳng trong môi trường của người dùng. Nhờ đó, ARCore phát hiện được những hình ảnh này trên thế giới và ước tính vị trí, hướng cũng như kích thước của chúng nếu không được cung cấp.

Tính năng

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

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, tối đa là 1.000 hình ảnh cho mỗi cơ sở dữ liệu. Bạn có thể tải các cơ sở dữ liệu đã tạo trước đó 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 bạn 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 thông tin ước tính này theo thời gian.

  • Nếu bạn cung cấp kích thước thực tế, ARCore sẽ 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 sự khác biệt giữa kích thước rõ ràng 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ố định, chẳng hạn như ảnh in treo 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 một chiếc xe buýt đang chạy qua hoặc hình ảnh trên một đối tượng phẳng mà người dùng cầm khi di chuyển tay.

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 trong mỗi 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 và hình ảnh không tự di chuyển trong môi trường.

Mọi hoạt động theo dõi đều diễn ra trên thiết bị. 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:

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

  • Phẳng (ví dụ: không bị nhăn hoặc quấn quanh chai).

  • Đảm bảo máy ảnh quay rõ mặt bạn. Các biển báo không được bị che khuất một phần, xem ở góc xiên cao hoặc xem khi máy ảnh di chuyển quá nhanh do bị mờ chuyển động.

Những điều 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 đã bật, việc bật tính năng Ả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 việc tắt mọi tính năng không dùng đến trong những thời điểm trải nghiệm AR không yêu cầu các tính năng đó. Điều 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 phần 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 khảo

  • Độ phân giải của hình ảnh phải ít nhất 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.
  • Không sử dụng thông tin về màu sắc. Cả hình ảnh màu và hình ảnh thang màu xám tương đương đều có thể được dùng làm hình ảnh tham chiếu hoặc do người dùng sử dụng trong thời gian chạy.
  • Tránh sử dụng hình ảnh được nén nhiều vì điều này sẽ ảnh hưởng đến quá trình trích xuất tính năng.
  • Tránh sử dụng 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à các hình vẽ đường nét khác) vì điều này sẽ dẫn đến hiệu suất phát hiện và theo dõi kém.
  • Tránh sử dụng hình ảnh có mẫu lặp lại vì điều này cũng có thể gây ra vấn đề về việc phát hiện và theo dõi.
  • Sử 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. Bạn nên có điểm chất lượng tối thiểu là 75. Dưới đâ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 đủ; 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. Thư viện này được tích hợp vào SDK Unity và trình bổ trợ Unreal của ARCore.
  • Cơ sở dữ liệu lưu trữ bản trình bày nén của các đặc điểm được trích xuất từ dữ liệu thang màu xám trong hình ảnh tham chiếu. Mỗi mục nhập hình ảnh chiếm khoảng 6 KB.
  • Quá trình thêm hình ảnh vào cơ sở dữ liệu trong thời gian chạy mất khoảng 30 mili giây.
    • Thêm hình ảnh trên 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 tại thời điểm biên dịch bằng công cụ arcoreimg có trong SDK ARCore.
  • Nếu bạn biết kích thước vật lý dự kiến của hình ảnh, hãy chỉ định kích thước đó. Thông tin này 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 tế lớn (trên 75 cm).
  • Tránh lưu trữ nhiều hình ảnh không dùng đến trong cơ sở dữ liệu vì việc này sẽ ả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 hoá tính năng theo dõi

  • Nếu hình ảnh của bạn không bao giờ di chuyển khỏi vị trí ban đầu (ví dụ: áp phích được gắn trên tường), bạn có thể đính kèm đinh neo vào hình ảnh để tăng độ ổn định của tính năng theo dõi.
  • Hình ảnh thực 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 điều chỉnh hình ảnh thực tế cho vừa với khung máy ảnh của họ.
  • Không sử dụng thông tin ước tính về tư thế và kích thước 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 chỉ định kích thước thực tế dự kiến, 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í của hình ảnh đó trong không gian 3D.