راهنمای برنامه‌نویس چهره‌های افزوده برای بنیاد AR

با نحوه استفاده از چهره‌های افزوده برای نمایش دارایی‌ها در بالای چهره انسان در برنامه خود آشنا شوید.

پیش نیازها

قبل از ادامه، مطمئن شوید که مفاهیم اساسی AR و نحوه پیکربندی یک جلسه ARCore را درک کرده اید.

تشخیص چهره ها

چهره ها توسط اشیاء ARFace که توسط ARFaceManager ایجاد، به روز و حذف می شوند نشان داده می شوند. یک بار در هر فریم، ARFaceManager یک رویداد facesChanged را فراخوانی می‌کند که شامل سه لیست است: چهره‌هایی که اضافه شده‌اند، چهره‌هایی که به‌روزرسانی شده‌اند، و چهره‌هایی که از آخرین فریم حذف شده‌اند. هنگامی که ARFaceManager چهره ای را در صحنه تشخیص می دهد، یک Prefab را با یک جزء ARFace متصل می کند تا چهره را ردیابی کند. Prefab را می توان null گذاشت.

برای راه اندازی ARFaceManager ، یک شی بازی جدید ایجاد کنید و ARFaceManager به آن اضافه کنید.

Face Prefab همان Prefab است که در ژست مرکز صورت به کار می رود. Maximum Face Count نشان دهنده حداکثر تعداد چهره هایی است که می توان ردیابی کرد.

به چهره های شناسایی شده دسترسی داشته باشید

از طریق مؤلفه ARFace که به Face Prefab متصل است به چهره های شناسایی شده دسترسی پیدا کنید. ARFace رئوس، اندیس ها، نرمال های راس و مختصات بافت را ارائه می دهد.

بخش هایی از یک چهره شناسایی شده

Augmented Faces API یک حالت مرکزی، سه حالت ناحیه ای و یک شبکه صورت سه بعدی را ارائه می دهد.

ژست وسط

حالت مرکزی، که مرکز سر کاربر را مشخص می کند، نقطه مبدا Prefab است که توسط ARFaceManager ارائه شده است. در داخل جمجمه، پشت بینی قرار دارد.

محورهای پوز مرکزی به شرح زیر است:

  • محور X مثبت (X+) به سمت گوش چپ است
  • محور مثبت Y (Y+) از صورت به سمت بالا اشاره می کند
  • محور Z مثبت (Z+) به مرکز سر اشاره می کند

موقعیت های منطقه

این ناحیه در پیشانی چپ، پیشانی راست و نوک بینی قرار دارد و قسمت های مهم صورت کاربر را مشخص می کند. پوزهای ناحیه همان جهت محوری پوز مرکز را دنبال می کنند.

برای استفاده از پوزهای منطقه، زیرسیستم ARFaceManager را به ARCoreFaceSubsystem پایین بیاورید و از subsystem.GetRegionPoses() برای به دست آوردن اطلاعات پوز برای هر منطقه استفاده کنید. برای مثالی از نحوه انجام این کار، نمونه استفاده Unity را در GitHub ببینید.

مش سه بعدی صورت

توری صورت از 468 نقطه تشکیل شده است که صورت انسان را تشکیل می دهد. همچنین نسبت به وضعیت مرکزی تعریف شده است.

برای تجسم مش چهره، یک ARFaceMeshVisualizer را به Face Prefab وصل کنید. ARFaceMeshVisualizer یک Mesh ایجاد می کند که با چهره شناسایی شده مطابقت دارد و آن را به عنوان مش در MeshFilter s و MeshCollider s متصل می کند. از MeshRenderer برای تنظیم Material مورد استفاده برای رندر چهره استفاده کنید.

پیش‌ساز AR Default Face Prefab یک ماده پیش‌فرض را روی مش‌های چهره شناسایی‌شده ارائه می‌کند.

برای شروع استفاده از چهره پیش فرض AR این مراحل را دنبال کنید:

  1. یک ARFaceManager راه اندازی کنید.
  2. در تب Hierarchy ، از + > XR > AR Default Face برای ایجاد یک شیء چهره جدید استفاده کنید. این شی موقت است و پس از ایجاد Face Prefab قابل حذف است.

  3. به AR Default Face در Inspector دسترسی پیدا کنید.

  4. چهره پیش‌فرض AR جدید ایجاد شده را از زبانه Hierarchy به پنجره Project Assets بکشید تا یک Prefab ایجاد کنید .

  5. Prefab جدید ایجاد شده را به عنوان Face Prefab در قسمت Face Prefab ARFaceManager تنظیم کنید.

  6. در تب Hierarchy ، شیء چهره را حذف کنید، زیرا دیگر به آن نیازی نیست.

به رئوس مجزای مش چهره دسترسی پیدا کنید

برای دسترسی به موقعیت رئوس فیس مش از face.vertices استفاده کنید. از face.normals برای دسترسی به نرمال های راس مربوطه استفاده کنید.

رئوس مجزای مش صورت را تجسم کنید

می‌توانید از Blender برای مشاهده آسان اعداد شاخصی که با رئوس فیس مش مطابقت دارند استفاده کنید:

  1. Blender را باز کنید و canonical_face_mesh.fbx از GitHub وارد کنید.
  2. به Edit > Preferences > Interface بروید.
  3. در منوی Display ، Developer Extras انتخاب کنید.

  4. چهره را با کلیک کردن روی آن در نمای سه بعدی انتخاب کنید و Tab را فشار دهید تا وارد حالت ویرایش شوید.

  5. منوی کشویی کنار درگاه نمای Overlays را باز کنید و Indices انتخاب کنید.

    شاخص های مش صورت مخلوط کن

  6. رئوسی که می‌خواهید عدد شاخص آن را تعیین کنید، برجسته کنید. برای برجسته کردن همه رئوس، از Select > All استفاده کنید.