Azure Kinect المشكلات المعروفة واستكشاف الأخطاء وإصلاحها
تحتوي هذه الصفحة على المشكلات المعروفة وتلميحات استكشاف الأخطاء وإصلاحها عند استخدام Sensor SDK مع Azure Kinect DK. راجع أيضا صفحات دعم المنتج للاطلاع على المشكلات الخاصة بأجهزة المنتج.
مشكلات معروفة
- مشكلات التوافق مع وحدات تحكم مضيف ASMedia USB (على سبيل المثال، مجموعة شرائح ASM1142)
- يمكن لبعض الحالات التي تستخدم برنامج تشغيل Microsoft USB إلغاء الحظر
- تحتوي العديد من أجهزة الكمبيوتر أيضا على وحدات تحكم مضيف بديلة وقد يساعد تغيير منفذ USB3
لمزيد من المشكلات المتعلقة ب Sensor SDK، تحقق من مشكلات GitHub
تجميع السجلات
يتم تمكين تسجيل الدخول للحصول على K4A.dll من خلال متغيرات البيئة. بشكل افتراضي يتم إرسال التسجيل إلى stdout ويتم إنشاء الأخطاء والرسائل الهامة فقط. يمكن تغيير هذه الإعدادات بحيث ينتقل التسجيل إلى ملف. يمكن أيضا تعديل الإسهاب حسب الحاجة. فيما يلي مثال ، على سبيل Windows ، لتمكين تسجيل الدخول إلى ملف ، يسمى k4a .log ، وسوف يلتقط رسائل تحذير ورسائل أعلى مستوى.
set K4A_ENABLE_LOG_TO_A_FILE=k4a.logset K4A_LOG_LEVEL=w- تشغيل السيناريو من موجه الأوامر (على سبيل المثال، تشغيل العارض)
- انتقل إلى 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 إدارة الأجهزة.

تحقق مما إذا كان لديك أي تطبيق آخر يستخدم الجهاز (على سبيل المثال، Windows تطبيق الكاميرا). يمكن لتطبيق واحد فقط في كل مرة الوصول إلى الجهاز.
تحقق من سجل k4aviewer.err بحثا عن رسائل خطأ.
افتح تطبيق الكاميرا Windows وتحقق من ذلك يعمل.
جهاز دورة الطاقة ، انتظر تدفق LED لإيقاف التشغيل قبل استخدام الجهاز.
إعادة تشغيل الكمبيوتر المضيف.
تأكد من أنك تستخدم أحدث برامج تشغيل الرسومات على جهاز الكمبيوتر الخاص بك.
إذا كنت تستخدم الإصدار الخاص بك من SDK ، فحاول استخدام الإصدار الذي تم إصداره رسميا إذا كان ذلك يعمل على إصلاح المشكلة.
إذا استمرت المشكلة، فقم بجمع السجلات وملاحظات الملف.
تعذر العثور على الميكروفون
تحقق أولا من أن صفيف الميكروفون قد تم تعداده في إدارة الأجهزة.
إذا تم تعداد جهاز ويعمل بشكل صحيح في Windows، فقد تكون المشكلة أنه بعد تحديث البرنامج الثابت قام Windows بتعيين معرف حاوية مختلف إلى Depth Camera.
يمكنك محاولة إعادة تعيينه بالانتقال إلى إدارة الأجهزة ، والنقر بزر الماوس الأيمن فوق "Azure Kinect Microphone Array" ، وتحديد "إلغاء تثبيت الجهاز". بمجرد اكتمال ذلك ، افصل المستشعر وأعد توصيله.

بعد ذلك أعد تشغيل Azure Kinect Viewer وحاول مرة أخرى.
مشكلات تحديث البرامج الثابتة للجهاز
- إذا لم يتم الإبلاغ عن رقم الإصدار الصحيح بعد التحديث، فقد تحتاج إلى إعادة تشغيل الجهاز.
- إذا تمت مقاطعة تحديث البرنامج الثابت ، فقد يصل إلى حالة سيئة ويفشل في التعداد. افصل الجهاز وأعد توصيله وانتظر 60 ثانية لمعرفة ما إذا كان بإمكانه التعافي. إذا لم يكن الأمر كذلك ، فقم بإجراء إعادة ضبط المصنع
مشكلات جودة الصورة
- ابدأ تشغيل Azure Kinect المشاهد وتحقق من موضع الجهاز بحثا عن التداخل أو إذا كان المستشعر محظورا أو كانت العدسة متسخة.
- جرب أوضاع تشغيل مختلفة لتضييق نطاق المشكلة إذا كانت المشكلة تحدث في وضع معين.
- لمشاركة مشكلات جودة الصورة مع الفريق، يمكنك:
- يمكنك إيقاف عرض Azure مؤقتا على عارض Kinect Azure والتقاط لقطة شاشة أو
- خذ التسجيل باستخدام مسجل 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 وTexasInstruments (TI)وRenesas هي وحدات تحكم المضيف الوحيدة المدعومة. تعتمد Azure Kinect SDK على الأنظمة الأساسية Windows على معرف حاوية موحد، ويجب أن تمتد عبر أجهزة USB 2.0 و3.0 حتى تتمكن SDK من العثور على أجهزة العمق واللون والصوت الموجودة فعليا على نفس الجهاز. على Linux ، قد يتم دعم المزيد من وحدات التحكم المضيفة لأن هذا النظام الأساسي يعتمد بشكل أقل على معرف الحاوية وأكثر على الأرقام التسلسلية للجهاز.
يصبح موضوع وحدات تحكم مضيف USB أكثر تعقيدا عندما يكون لدى الكمبيوتر أكثر من وحدة تحكم مضيف مثبتة. عندما تكون وحدات تحكم المضيف مختلطة ، قد يواجه المستخدم مشكلات حيث تعمل بعض المنافذ بشكل جيد والبعض الآخر لا يعمل على الإطلاق. استنادا إلى كيفية توصيل المنافذ بالعلبة، قد ترى جميع المنافذ الأمامية تواجه مشكلات في Azure Kinect
Windows: لمعرفة وحدة تحكم المضيف التي قمت بفتحها إدارة الأجهزة
- عرض -> الأجهزة حسب النوع
- مع اتصال Azure Kinect حدد الكاميرات-Azure> Kinect كاميرا 4K
- عرض -> الأجهزة حسب الاتصال

لفهم منفذ USB المتصل على الكمبيوتر بشكل أفضل، كرر هذه الخطوات لكل منفذ USB أثناء توصيل Azure Kinect DK بمنافذ USB مختلفة على الكمبيوتر.
تعمل كاميرا العمق تلقائيا على التفريغ
الليزر الذي تستخدمه كاميرا العمق لحساب بيانات عمق الصورة ، له عمر محدود. لتحقيق أقصى قدر من العمر الافتراضي لأشعة الليزر، ستكتشف كاميرا العمق متى لا يتم استهلاك بيانات العمق. يتم إيقاف تشغيل كاميرا العمق عندما يتم بث الجهاز لعدة دقائق ولكن الكمبيوتر المضيف لا يقرأ البيانات. كما أنه يؤثر على مزامنة الأجهزة المتعددة حيث تبدأ الأجهزة الفرعية في حالة تتدفق فيها كاميرا العمق وتساعد إطارات العمق بنشاط في انتظار بدء الجهاز الرئيسي في مزامنة اللقطات. لتجنب هذه المشكلة في سيناريوهات التقاط الأجهزة المتعددة، تأكد من بدء تشغيل الجهاز الرئيسي في غضون دقيقة واحدة من بدء تشغيل المرؤوس الأول.
استخدام SDK لتتبع الجسم مع Unreal
لاستخدام حزمة SDK لتتبع الجسم مع Unreal، تأكد من أنك أضفت <SDK Installation Path>\tools إلى متغير PATH البيئة ونسخت dnn_model_2_0.onnx وإلى cudnn64_7.dllProgram Files/Epic Games/UE_4.23/Engine/Binaries/Win64.
استخدام Azure Kinect على نظام Linux بدون رأس
يستخدم محرك عمق Azure Kinect على Linux OpenGL. يتطلب OpenGL مثيل نافذة يتطلب توصيل شاشة بالنظام. الحل البديل لهذه المشكلة هو:
- تمكين تسجيل الدخول التلقائي لحساب المستخدم الذي تخطط لاستخدامه. ارجع إلى هذه المقالة للحصول على إرشادات حول تمكين تسجيل الدخول التلقائي.
- قم بإيقاف تشغيل النظام وفصل الشاشة وتشغيل النظام. يفرض تسجيل الدخول التلقائي إنشاء جلسة عمل x-server.
- الاتصال عبر ssh وتعيين متغير DISPLAY env
export DISPLAY=:0 - بدء تشغيل تطبيق Azure Kinect.
يمكن استخدام الأداة المساعدة xtrlock لقفل الشاشة على الفور بعد تسجيل الدخول التلقائي. أضف الأمر التالي إلى تطبيق بدء التشغيل أو خدمة systemd:
bash -c “xtrlock -b”
وثائق C # المفقودة
توجد وثائق Sensor SDK C # هنا.
توجد وثائق SDK C # لتتبع الجسم هنا.
التغييرات التي تطرأ على محتويات حزم تتبع الجسم
لم تعد كل من حزمتي MSI و NuGet تتضمنان ملفات حزمة Microsoft Visual C++ القابلة لإعادة التوزيع. قم بتنزيل أحدث حزمة هنا.
عادت حزمة NuGet ولكنها لم تعد تتضمن ملفات Microsoft DirectML أو NVIDIA CUDA و TensorRT.