Jetpack XR-এর জন্য ARCore ব্যবহার করে আপনার অ্যাপে গভীরতার তথ্য পুনরুদ্ধার করুন

আপনার অ্যাপটি Jetpack XR-এর জন্য ARCore-এর মাধ্যমে গভীরতার তথ্য পুনরুদ্ধার করতে পারে, যাতে ডিভাইসের ভৌত বস্তুগুলি কতটা কাছাকাছি তা নির্ধারণ করা যায়।

Jetpack XR সেশনের জন্য একটি ARCore তৈরি করুন

জেটপ্যাক এক্সআর সেশনের জন্য ARCore এর মাধ্যমে হেড পোজ তথ্য পান। একটি Session পেতে একটি সেশনের জীবনচক্র বুঝতে দেখুন।

সেশন কনফিগার করুন

XR সেশনে ডিফল্টভাবে ডেপথ ম্যাপ রিট্রিভাল সক্ষম করা হয় না। ডেপথ ম্যাপ রিট্রিভাল সক্ষম করতে, সেশনটি কনফিগার করুন এবং একটি DepthEstimationMode সেট করুন:

val newConfig = session.config.copy(
    depthEstimation = Config.DepthEstimationMode.SMOOTH_ONLY,
)
when (val result = session.configure(newConfig)) {
    is SessionConfigureSuccess -> TODO(/* Success! */)
    is SessionConfigureConfigurationNotSupported ->
        TODO(/* Some combinations of configurations are not valid. Handle this failure case. */)
    else ->
        TODO(/* The session could not be configured. See SessionConfigureResult for possible causes. */)
}

DepthEstimationMode এর নিম্নলিখিত মানগুলি উপলব্ধ:

  • DISABLED : দৃশ্যের গভীরতা সম্পর্কে কোনও তথ্য সরবরাহ করা হয়নি।
  • RAW_ONLY : গভীরতা অনুমান কাঁচা গভীরতা এবং আত্মবিশ্বাসের মান দিয়ে সক্ষম করা হয়।
  • SMOOTH_ONLY : মসৃণ গভীরতা এবং আত্মবিশ্বাসের মান সহ গভীরতা অনুমান সক্ষম করা হয়েছে।
  • SMOOTH_AND_RAW : গভীরতা অনুমান কাঁচা এবং মসৃণ গভীরতা এবং আত্মবিশ্বাস উভয় মানের সাথেই সক্ষম।

কাঁচা গভীরতার মানচিত্র উচ্চ নির্ভুলতার সাথে গভীরতার অনুমান প্রদান করে, কিন্তু কাঁচা গভীরতার চিত্রগুলিতে ক্যামেরার ছবিতে সমস্ত পিক্সেলের জন্য গভীরতার অনুমান অন্তর্ভুক্ত নাও থাকতে পারে। বিপরীতে, মসৃণ গভীরতার মানচিত্রগুলি প্রতিটি পিক্সেলের জন্য আনুমানিক গভীরতা প্রদান করে, তবে গভীরতার অনুমানের মসৃণতা এবং ইন্টারপোলেশনের কারণে প্রতি-পিক্সেল গভীরতার ডেটা কম সঠিক হতে পারে।

গভীরতার তথ্য পুনরুদ্ধার করুন

একটি প্রদত্ত ক্যামেরার জন্য গভীরতার তথ্য পেতে, DepthMap ব্যবহার করুন:

val depthMap = DepthMap.left(session) ?: return

বিভিন্ন ডিভাইসের ক্ষমতা ভিন্ন। স্টেরিও ক্যামেরা কনফিগারেশনযুক্ত ডিভাইসগুলি left এবং right ক্যামেরার জন্য নন-নাল ডেপথ ম্যাপ প্রদান করে। একইভাবে, একক ক্যামেরাযুক্ত ডিভাইসগুলি mono ব্যবহার করে নন-নাল ডেপথ ম্যাপ প্রদান করে।

গভীরতার মান গণনা করুন

আপনি ফলাফলের গভীরতা মানচিত্র থেকে গভীরতা এবং আত্মবিশ্বাসের মান পেতে পারেন:

val depthMap = DepthMap.left(session) ?: return

ব্যবহৃত কনফিগারেশন সেটিং এর উপর নির্ভর করে, smoothDepthMap অথবা rawDepthMap ব্যবহার করে সংশ্লিষ্ট গভীরতা মানচিত্র অ্যাক্সেস করুন। এই মানচিত্রগুলিতে থাকা পরিমাপগুলি মিটারে প্রকাশ করা হয়। আপনি smoothConfidenceMap এবং rawConfidenceMap ব্যবহার করেও আত্মবিশ্বাসের মান অ্যাক্সেস করতে পারেন। এই মানগুলি 0 থেকে 255 পর্যন্ত, যেখানে 255 সর্বোচ্চ আত্মবিশ্বাসের প্রতিনিধিত্ব করে।

ডিবাগ বা ভিজ্যুয়ালাইজেশনের উদ্দেশ্যে একটি গভীরতা মানচিত্র রেন্ডার করতে, ARCore পরীক্ষা অ্যাপের গভীরতা অংশটি দেখুন।