সিনফর্মের জন্য অগমেন্টেড ফেস ডেভেলপার গাইড

আপনার নিজের অ্যাপে কিভাবে অগমেন্টেড ফেস ফিচার ব্যবহার করবেন তা জানুন।

নমুনা অ্যাপ তৈরি করুন এবং চালান

AugmentedFaces Java অ্যাপ তৈরি এবং চালানোর জন্য:

  1. অ্যান্ড্রয়েড স্টুডিও সংস্করণ 3.1 বা তার বেশি খুলুন। Augmented Faces এর সাথে কাজ করার জন্য একটি ফিজিক্যাল ডিভাইস (এবং Android এমুলেটর নয়) ব্যবহার করার পরামর্শ দেওয়া হয়। ডিভাইসটি ইউএসবি এর মাধ্যমে ডেভেলপমেন্ট মেশিনের সাথে সংযুক্ত হওয়া উচিত। বিস্তারিত পদক্ষেপের জন্য অ্যান্ড্রয়েড কুইকস্টার্ট দেখুন।

  2. আপনার প্রোজেক্টে AugmentedFaces Java নমুনা আমদানি করুন।

  3. অ্যান্ড্রয়েড স্টুডিওতে, রান ক্লিক করুন . তারপরে, স্থাপনার লক্ষ্য হিসাবে আপনার ডিভাইসটি চয়ন করুন এবং আপনার ডিভাইসে নমুনা অ্যাপ্লিকেশন চালু করতে ওকে ক্লিক করুন।

  4. নমুনা অ্যাপে ক্যামেরা অ্যাক্সেস দিতে অনুমোদন ক্লিক করুন।

    অ্যাপটিকে সামনের ক্যামেরাটি খুলতে হবে এবং অবিলম্বে ক্যামেরা ফিডে আপনার মুখটি ট্র্যাক করতে হবে। এটি আপনার কপালের উভয় পাশে শিয়ালের কানের চিত্র স্থাপন করা উচিত এবং আপনার নিজের নাকের উপরে একটি শিয়াল নাক স্থাপন করা উচিত।

সিনফর্মে অগমেন্টেড ফেস ব্যবহার করা

  1. Sceneform এ সম্পদ আমদানি করুন

  2. ARCore সেশন কনফিগার করুন

  3. সনাক্ত করা মুখ অ্যাক্সেস পান

  4. সনাক্ত করা মুখের উপর প্রভাব রেন্ডার করুন

Sceneform এ সম্পদ আমদানি করুন

নিশ্চিত করুন যে আপনি অগমেন্টেড ফেস-এর জন্য যে সম্পদগুলি ব্যবহার করেন তা স্কেল করা এবং সঠিকভাবে অবস্থান করা হয়েছে। টিপস এবং অনুশীলনের জন্য, বর্ধিত মুখের জন্য সম্পদ তৈরি করা দেখুন।

টেক্সচার এবং 3D মডেলের মতো সম্পদগুলিকে Sceneform-এ একটি বর্ধিত ফেস মেশে প্রয়োগ করতে, প্রথমে সম্পদগুলি আমদানি করুন৷

রানটাইমে, *.sfb মডেলগুলি লোড করতে ModelRenderable.Builder ব্যবহার করুন এবং মুখের জন্য একটি টেক্সচার লোড করতে Texture.Builder ব্যবহার করুন৷

// To ensure that the asset doesn't cast or receive shadows in the scene,
// ensure that setShadowCaster and setShadowReceiver are both set to false.
ModelRenderable.builder()
    .setSource(this, R.raw.fox_face)
    .build()
    .thenAccept(
        modelRenderable -> {
          faceRegionsRenderable = modelRenderable;
          modelRenderable.setShadowCaster(false);
          modelRenderable.setShadowReceiver(false);
        });

// Load the face mesh texture.
Texture.builder()
    .setSource(this, R.drawable.fox_face_mesh_texture)
    .build()
    .thenAccept(texture -> faceMeshTexture = texture);

ফেস মেশ ওরিয়েন্টেশন

সিনফর্মের জন্য ফেস মেশের অভিযোজন লক্ষ্য করুন:

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

অগমেন্টেড ফেস-এর জন্য সামনের দিকের (সেলফি) ক্যামেরা ব্যবহার করতে এবং ফেস মেশ সমর্থন সক্ষম করতে ARCore সেশন কনফিগার করতে হবে। Sceneform এ এটি করতে, ARfragment ক্লাস প্রসারিত করুন এবং কনফিগারেশন ওভাররাইড করুন:

@Override
protected Set<Session.Feature> getSessionFeatures() {
  return EnumSet.of(Session.Feature.FRONT_CAMERA);
}

@Override
protected Config getSessionConfiguration(Session session) {
  Config config = new Config(session);
  config.setAugmentedFaceMode(AugmentedFaceMode.MESH3D);
  return config;
}

আপনার কার্যকলাপ বিন্যাসে এই সাবক্লাসড ArFragment ক্লাস পড়ুন।

সনাক্ত করা মুখ অ্যাক্সেস পান

AugmentedFace ক্লাস Trackable ক্লাস প্রসারিত করে। আপনার অ্যাপের ক্রিয়াকলাপে, addOnUpdateListener() পদ্ধতি থেকে এটিকে কল করে সনাক্ত করা মুখটিতে অ্যাক্সেস পেতে AugmentedFace ব্যবহার করুন।

// Get list of detected faces.
Collection<AugmentedFace> faceList = session.getAllTrackables(AugmentedFace.class);

মুখের জন্য প্রভাব রেন্ডার করুন

প্রভাব রেন্ডারিং এই পদক্ষেপগুলি জড়িত:

for (AugmentedFace face : faceList) {
  // Create a face node and add it to the scene.
  AugmentedFaceNode faceNode = new AugmentedFaceNode(face);
  faceNode.setParent(scene);

  // Overlay the 3D assets on the face.
  faceNode.setFaceRegionsRenderable(faceRegionsRenderable);

  // Overlay a texture on the face.
  faceNode.setFaceMeshTexture(faceMeshTexture);

  …
 }