المشكلات المعروفة واستكشاف الأخطاء وإصلاحها في Azure Kinect

تحتوي هذه الصفحة على مشكلات معروفة وتلميحات استكشاف الأخطاء وإصلاحها عند استخدام Sensor SDK مع Azure Kinect DK. راجع أيضاً صفحات دعم المنتج للمشكلات الخاصة بالأجهزة الخاصة بالمنتجات.

المشكلات المعروفة

  • مشكلات التوافق مع وحدات تحكم مضيف ASMedia USB (على سبيل المثال، مجموعة شرائح ASM1142)
    • يمكن إلغاء حظر بعض الحالات التي تستخدم برنامج تشغيل Microsoft USB
    • تحتوي العديد من أجهزة الكمبيوتر أيضاً على وحدات تحكم مضيفة بديلة، وقد يساعد تغيير منفذ USB3

لمزيد من المشكلات المتعلقة بـ Sensor SDK، تحقق من مشكلات GitHub

تجميع السجلات

يتم تمكين تسجيل K4A.dll من خلال متغيرات البيئة. بشكل افتراضي، يتم إرسال التسجيل إلى stdout ويتم إنشاء الأخطاء والرسائل الهامة فقط. يمكن تغيير هذه الإعدادات بحيث ينتقل التسجيل إلى ملف. يمكن أيضاً تعديل الإسهاب حسب الحاجة. فيما يلي مثال، لنظام Windows، لتمكين تسجيل الدخول إلى ملف باسم k4a.log، وسيلتقط التحذير والرسائل ذات المستوى الأعلى.

  1. set K4A_ENABLE_LOG_TO_A_FILE=k4a.log
  2. set K4A_LOG_LEVEL=w
  3. تشغيل السيناريو من موجه الأوامر (على سبيل المثال، عارض التشغيل)
  4. انتقل إلى k4a.log وشارك الملف.

لمزيد من المعلومات، راجع المشبك أدناه من ملف العنوان:

/**
* environment variables
* K4A_ENABLE_LOG_TO_A_FILE =
*    0    - completely disable logging to a file
*    log\custom.log - log all messages to the path and file specified - must end in '.log' to
*                     be considered a valid entry
*    ** When enabled this takes precedence over the value of K4A_ENABLE_LOG_TO_STDOUT
*
* K4A_ENABLE_LOG_TO_STDOUT =
*    0    - disable logging to stdout
*    all else  - log all messages to stdout
*
* K4A_LOG_LEVEL =
*    'c'  - log all messages of level 'critical' criticality
*    'e'  - log all messages of level 'error' or higher criticality
*    'w'  - log all messages of level 'warning' or higher criticality
*    'i'  - log all messages of level 'info' or higher criticality
*    't'  - log all messages of level 'trace' or higher criticality
*    DEFAULT - log all message of level 'error' or higher criticality
*/

تسجيل K4ABT.dll SDK تتبع النص الأساسي مشابه باستثناء أنه يجب على المستخدمين تعديل مجموعة مختلفة من أسماء متغيرات البيئة:

/**
* environment variables
* K4ABT_ENABLE_LOG_TO_A_FILE =
*    0    - completely disable logging to a file
*    log\custom.log - log all messages to the path and file specified - must end in '.log' to
*                     be considered a valid entry
*    ** When enabled this takes precedence over the value of K4A_ENABLE_LOG_TO_STDOUT
*
* K4ABT_ENABLE_LOG_TO_STDOUT =
*    0    - disable logging to stdout
*    all else  - log all messages to stdout
*
* K4ABT_LOG_LEVEL =
*    'c'  - log all messages of level 'critical' criticality
*    'e'  - log all messages of level 'error' or higher criticality
*    'w'  - log all messages of level 'warning' or higher criticality
*    'i'  - log all messages of level 'info' or higher criticality
*    't'  - log all messages of level 'trace' or higher criticality
*    DEFAULT - log all message of level 'error' or higher criticality
*/

لا يعدد الجهاز في إدارة الأجهزة

  • تحقق من حالة LED خلف الجهاز، إذا كان يومض باللون الكهرماني لديك مشكلة في اتصال USB ولم يحصل على طاقة كافية. يجب توصيل كبل مزود الطاقة بمحول الطاقة المتوفر. بينما يحتوي كبل الطاقة على نوع USB A متصل، يتطلب الجهاز طاقة أكثر مما يمكن أن يوفره منفذ USB للكمبيوتر الشخصي. لذلك، لا تتصل به بمنفذ كمبيوتر شخصي أو مركز USB.
  • تحقق من توصيل كبل الطاقة واستخدام منفذ USB3 للبيانات.
  • حاول تغيير منفذ USB3 لاتصال البيانات (توصية باستخدام منفذ USB بالقرب من اللوحة الرئيسية، على سبيل المثال، في الجزء الخلفي من الكمبيوتر).
  • تحقق من الكبل، قد تتسبب الكبلات التالفة أو ذات الجودة المنخفضة في تعداد غير موثوق به (يستمر الجهاز في "الوميض" في إدارة الأجهزة).
  • إذا كنت متصلاً بالكمبيوتر المحمول وكنت تعمل على البطارية، فقد يتم تقييد الطاقة بالمنفذ.
  • إعادة تشغيل الكمبيوتر المضيف.
  • إذا استمرت المشكلة، فقد تكون هناك مشكلة في التوافق.
  • إذا حدث فشل أثناء تحديث البرنامج الثابت ولم يتم استرداد الجهاز بنفسه، فقم بإعادة تعيين المصنع.

فشل فتح Azure Kinect Viewer

  • تحقق أولاً من تعداد جهازك في «إدارة الأجهزة» في Windows.

    كاميرات Azure Kinect في مدير الأجهزة من Windows

  • تحقق مما إذا كان لديك أي تطبيق آخر يستخدم الجهاز (على سبيل المثال، تطبيق كاميرا Windows). يمكن لتطبيق واحد فقط في كل مرة الوصول إلى الجهاز.

  • تحقق من سجل k4aviewer.err بحثًا عن رسائل الخطأ.

  • افتح تطبيق كاميرا Windows وتحقق من عمل ذلك.

  • جهاز دورة الطاقة، انتظر دفق LED لإيقاف التشغيل قبل استخدام الجهاز.

  • إعادة تشغيل الكمبيوتر المضيف.

  • تأكد من استخدام أحدث برامج تشغيل الرسومات على جهاز الكمبيوتر الخاص بك.

  • إذا كنت تستخدم الإصدار الخاص بك من SDK، فحاول استخدام الإصدار الذي تم إصداره رسمياً إذا كان ذلك يصلح المشكلة.

  • إذا استمرت المشكلة، فقم بتجميع السجلات وملاحظات الملفات.

يتعذر العثور على الميكروفون

  • تحقق أولاً من تعداد صفيف الميكروفون في إدارة الأجهزة.

  • إذا تم تعداد جهاز ويعمل بشكل صحيح في Windows، فقد تكون المشكلة أنه بعد تحديث البرنامج الثابت، قام Windows بتعيين معرف حاوية مختلف إلى كاميرا العمق.

  • يمكنك محاولة إعادة تعيينه بالانتقال إلى إدارة الأجهزة، والنقر بزر الماوس الأيمن فوق "Azure Kinect Microphone Array"، وتحديد "إلغاء تثبيت الجهاز". بمجرد اكتمال ذلك، افصل المستشعر وأعد إرفاقه.

    Azure Kinect Mic Array

  • بعد ذلك، أعد تشغيل Azure Kinect Viewer وحاول مرة أخرى.

مشكلات تحديث البرنامج الثابت للجهاز

  • إذا لم يتم الإبلاغ عن رقم الإصدار الصحيح بعد التحديث، فقد تحتاج إلى تشغيل دورة الجهاز.
  • إذا تمت مقاطعة تحديث البرنامج الثابت، فقد يدخل في حالة سيئة ويفشل في تعداده. افصل الجهاز وأعد توصيله وانتظر 60 ثانية لمعرفة ما إذا كان يمكنه استرداده. إذا لم يكن ثم تنفيذ إعادة تعيين المصنع

مشكلات جودة الصورة

  • ابدأ تشغيل عارض Azure Kinect وتحقق من موضع الجهاز بحثا عن التداخل أو إذا تم حظر أداة الاستشعار أو كانت العدسة غير نظيفة.
  • جرب أوضاع تشغيل مختلفة لتضييق نطاق المشكلة إذا كانت المشكلة تحدث في وضع معين.
  • لمشاركة مشكلات جودة الصورة مع الفريق، يمكنك:
  1. اتخاذ طريقة عرض الإيقاف المؤقت على عارض Azure Kinect والتقط لقطة شاشة أو
  2. تسجيل باستخدام مسجل Azure Kinect، على سبيل المثال، k4arecorder.exe -l 5 -r 5 output.mkv

الطوابع الزمنية غير المتسقة أو غير المتوقعة للجهاز

يمكن أن يؤدي استدعاء k4a_device_set_color_control مؤقتاً إلى إحداث تغييرات التوقيت على الجهاز التي قد تستغرق بضع التقاطات لتحقيق الاستقرار. تجنب استدعاء واجهة برمجة التطبيقات في حلقة التقاط الصورة لتجنب إعادة تعيين حساب التوقيت الداخلي مع كل صورة جديدة. بدلاً من ذلك، قم باستدعاء واجهة برمجة التطبيقات قبل بدء تشغيل الكاميرا أو فقط عند الحاجة إلى تغيير القيمة داخل حلقة التقاط الصورة. على وجه الخصوص، تجنب استدعاء k4a_device_set_color_control(K4A_COLOR_CONTROL_AUTO_EXPOSURE_PRIORITY).

توافق وحدة تحكم مضيف USB3

إذا كان الجهاز لا يعدد ضمن إدارة الأجهزة، فقد يكون ذلك بسبب توصيله بوحدة تحكم USB3 غير مدعومة.

بالنسبة إلى Azure Kinect DK على Windows، فإن Intel وTexas Instruments (TI) وRenesas هي وحدات التحكم المضيفة الوحيدة المدعومة. يعتمد Azure Kinect SDK على الأنظمة الأساسية لـ Windows على معرف حاوية موحد، ويجب أن يمتد عبر أجهزة USB 2.0 و3.0 بحيث يمكن ل SDK العثور على أجهزة العمق واللون والصوت الموجودة فعلياً على نفس الجهاز. على Linux، قد يتم دعم المزيد من وحدات تحكم المضيف لأن هذا النظام الأساسي يعتمد بشكل أقل على معرف الحاوية وأكثر على الأرقام التسلسلية للجهاز.

يصبح موضوع وحدات تحكم مضيف USB أكثر تعقيداً عندما يكون الكمبيوتر مثبتاً عليه أكثر من وحدة تحكم مضيف واحدة. عندما تكون وحدات تحكم المضيف مختلطة، قد يواجه المستخدم مشكلات حيث تعمل بعض المنافذ بشكل جيد والمنافذ الأخرى لا تعمل على الإطلاق. اعتماداً على كيفية توصيل المنافذ بالحالة، قد ترى جميع المنافذ الأمامية تواجه مشكلات في Azure Kinect

Windows: لمعرفة وحدة تحكم المضيف التي فتحتها إدارة الأجهزة

  1. عرض -> الأجهزة حسب النوع
  2. مع اتصال Azure Kinect، حدد الكاميرات-Azure> كاميرا Azure Kinect 4K
  3. عرض -> الأجهزة حسب الاتصال

استكشاف أخطاء منفذ USB وإصلاحها

لفهم منفذ USB المتصل على الكمبيوتر بشكل أفضل، كرر هذه الخطوات لكل منفذ USB أثناء توصيل Azure Kinect DK بمنافذ USB مختلفة على الكمبيوتر.

عمق القوى التلقائية للكاميرا

الليزر الذي تستخدمه كاميرا العمق لحساب بيانات عمق الصورة، له عمر محدود. لزيادة عمر الليزر إلى أقصى حد، ستكتشف كاميرا العمق عندما لا يتم استهلاك بيانات العمق. تتعطل كاميرا العمق عند دفق الجهاز لعدة دقائق ولكن الكمبيوتر المضيف لا يقرأ البيانات. كما أنه يؤثر على مزامنة الأجهزة المتعددة حيث تبدأ الأجهزة التابعة في حالة تدفق كاميرا العمق وتساعد إطارات العمق بنشاط في انتظار الجهاز الرئيسي لبدء مزامنة اللقطات. لتجنب هذه المشكلة في سيناريوهات التقاط الأجهزة المتعددة، تأكد من بدء تشغيل الجهاز الرئيسي في غضون دقيقة من بدء تشغيل أول تابع.

استخدام Body Tracking SDK مع Unreal

لاستخدام Body Tracking SDK مع Unreal، تأكد من إضافة <SDK Installation Path>\tools إلى متغير البيئة PATH ونسخ dnn_model_2_0.onnx وcudnn64_7.dll إلى Program Files/Epic Games/UE_4.23/Engine/Binaries/Win64.

استخدام Azure Kinect على نظام Linux بدون رأس

يستخدم محرك عمق Azure Kinect على Linux OpenGL. يتطلب OpenGL مثيل نافذة يتطلب اتصال جهاز عرض بالنظام. الحل البديل لهذه المشكلة هو:

  1. تمكين تسجيل الدخول التلقائي لحساب المستخدم الذي تخطط لاستخدامه. راجع هذه المقالة للحصول على إرشادات حول تمكين تسجيل الدخول التلقائي.
  2. قم بإيقاف تشغيل النظام، وافصل جهاز العرض وقم بإيقاف تشغيل النظام. يفرض تسجيل الدخول التلقائي إنشاء جلسة عمل x-server.
  3. الاتصال عبر ssh، وتعيين متغير البيئة DISPLAY export DISPLAY=:0
  4. ابدأ تشغيل تطبيق Azure Kinect.

يمكن استخدام الأداة المساعدة xtrlock لتأمين الشاشة على الفور بعد تسجيل الدخول التلقائي. أضف الأمر التالي إلى تطبيق بدء التشغيل أو الخدمة النظامية:

bash -c “xtrlock -b”

وثائق C# مفقودة

توجد وثائق Sensor SDK C#‎ هنا.

توجد وثائق Body Tracking SDK C#‎ هنا.

التغييرات التي تم إجراؤها على محتويات حزم Body Tracking

لم تعد حزم MSI وNuGet تتضمن ملفات حزمة Microsoft Visual C++‎ القابلة لإعادة التوزيع. قم بتنزيل أحدث حزمة هنا.

حزمة NuGet مرة أخرى، ولكن لم تعد تتضمن ملفات Microsoft DirectML أو NVIDIA CUDA وTensorRT.

الخطوات التالية

مزيد من معلومات الدعم