Znane problemy i rozwiązywanie problemów z zestawem Azure Kinect
Ta strona zawiera znane problemy i porady dotyczące rozwiązywania problemów podczas korzystania z zestawu Sensor SDK z zestawem Azure Kinect DK. Zobacz również strony pomocy technicznej produktów dotyczące problemów specyficznych dla sprzętu produktu.
Znane problemy
- Problemy ze zgodnością z kontrolerami hosta USB ASMedia (na przykład mikroukładem ASM1142)
- Niektóre przypadki używania sterownika USB firmy Microsoft mogą odblokować
- Wiele komputerów ma również alternatywne kontrolery hosta i zmiana portu USB3 może pomóc
Aby uzyskać więcej problemów związanych z zestawem Sensor SDK, zapoznaj się z tematem Problemy z usługą GitHub
Zbieranie dzienników
Rejestrowanie dla K4A.dll jest włączone za pomocą zmiennych środowiskowych. Domyślnie rejestrowanie jest wysyłane do stdout, a generowane są tylko błędy i komunikaty krytyczne. Te ustawienia można zmienić, aby rejestrowanie przechodziło do pliku. Szczegółowość można również dostosować zgodnie z potrzebami. Poniżej znajduje się przykład dotyczący systemu Windows włączenia rejestrowania do pliku o nazwie k4a.log i przechwycenia komunikatów ostrzegawczych i komunikatów wyższego poziomu.
set K4A_ENABLE_LOG_TO_A_FILE=k4a.log
set K4A_LOG_LEVEL=w
- Uruchamianie scenariusza z poziomu wiersza polecenia (na przykład uruchamianie przeglądarki)
- Przejdź do k4a.log i udostępnij plik.
Aby uzyskać więcej informacji, zobacz poniższy klip z pliku nagłówka:
/**
* 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
*/
Rejestrowanie dla zestawu Body Tracking SDK K4ABT.dll jest podobne, z tą różnicą, że użytkownicy powinni modyfikować inny zestaw nazw zmiennych środowiskowych:
/**
* 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
*/
Urządzenie nie wylicza w Menedżerze urządzeń
- Sprawdź stan LED za urządzeniem, jeśli bursztynowy problem z łącznością USB i nie ma wystarczającej mocy. zasilania powinien być podłączony do dostarczonej karty zasilanej. Podczas gdy zasilający ma typ USB A podłączony, urządzenie wymaga większej mocy niż port USB komputera może być zasilany. Nie należy więc łączyć się z nim z portem komputera ani koncentratorem USB.
- Sprawdź, czy podłączono zasilający i używasz portu USB3 dla danych.
- Spróbuj zmienić port USB3 dla połączenia danych (zalecenie, aby użyć portu USB w pobliżu płyty głównej, na przykład z tyłu komputera).
- Sprawdź, uszkodzone lub niższej jakości mogą powodować zawodne wyliczenie (urządzenie utrzymuje "" w Menedżerze urządzeń).
- Jeśli masz połączenie z laptopem i działa na baterii, może to być ograniczenie zasilania do portu.
- Uruchom ponownie komputer hosta.
- Jeśli problem będzie się powtarzać, może wystąpić problem ze zgodnością.
- Jeśli wystąpił błąd podczas aktualizacji oprogramowania układowego, a urządzenie nie zostało odzyskane samodzielnie, wykonaj resetowanie do ustawień fabrycznych.
Nie można otworzyć programu Azure Kinect Viewer
Najpierw sprawdź, czy urządzenie wylicza w systemie Windows Menedżer urządzeń.
Sprawdź, czy masz inną aplikację przy użyciu urządzenia (na przykład aplikacji aparatu systemu Windows). Tylko jedna aplikacja jednocześnie może uzyskiwać dostęp do urządzenia.
Sprawdź dziennik k4aviewer.err pod kątem komunikatów o błędach.
Otwórz aplikację aparatu windows i sprawdź, czy to działa.
Urządzenie cyklu zasilania, poczekaj na wyłączenie przesyłania strumieniowego diody LED przed użyciem urządzenia.
Uruchom ponownie komputer hosta.
Upewnij się, że używasz najnowszych sterowników graficznych na komputerze.
Jeśli używasz własnej kompilacji zestawu SDK, spróbuj użyć oficjalnie wydanej wersji, jeśli to rozwiąże problem.
Jeśli problem będzie się powtarzać, zbierz dzienniki i prześlij opinię.
Nie można odnaleźć mikrofonu
Najpierw sprawdź, czy tablica mikrofonów jest wyliczona w Menedżer urządzeń.
Jeśli urządzenie jest wyliczane i działa poprawnie w systemie Windows, problem może być taki, że po aktualizacji oprogramowania układowego system Windows przypisał inny identyfikator kontenera do aparatu głębi.
Możesz spróbować go zresetować, przechodząc do Menedżer urządzeń, klikając prawym przyciskiem myszy pozycję "Azure Kinect Microphone Array" i wybierając pozycję "Odinstaluj urządzenie". Po zakończeniu odłącz i ponownie dołącz czujnik.
Po wykonaniu tego polecenia uruchom ponownie program Azure Kinect Viewer i spróbuj ponownie.
Problemy z aktualizacją oprogramowania układowego urządzenia
- Jeśli prawidłowy numer wersji nie zostanie zgłoszony po aktualizacji, może być konieczne włączenie cyklu zasilania urządzenia.
- Jeśli aktualizacja oprogramowania układowego zostanie przerwana, może dojść do złego stanu i nie można wyliczyć. Odłącz i ponownie dołącz urządzenie i poczekaj 60 sekund, aby sprawdzić, czy może odzyskać urządzenie. Jeśli nie, wykonaj resetowanie do ustawień fabrycznych
Problemy z jakością obrazu
- Uruchom przeglądarkę Azure Kinect i sprawdź położenie urządzenia pod kątem interferencji lub jeśli czujnik jest zablokowany lub obiektyw jest zanieczyszczony.
- Spróbuj użyć różnych trybów operacyjnych, aby zawęzić, jeśli problem występuje w określonym trybie.
- W przypadku problemów z jakością obrazu w zespole można wykonywać następujące czynności:
- Wykonaj widok wstrzymania w przeglądarce Azure Kinect i wykonaj zrzut ekranu lub
- Rejestrowanie przy użyciu rejestratora Azure Kinect, na przykład
k4arecorder.exe -l 5 -r 5 output.mkv
Niespójne lub nieoczekiwane znaczniki czasu urządzenia
Wywołanie k4a_device_set_color_control
może tymczasowo wywołać zmiany czasu w urządzeniu, które może potrwać kilka przechwytów w celu stabilizacji. Unikaj wywoływania interfejsu API w pętli przechwytywania obrazów, aby uniknąć resetowania wewnętrznych obliczeń chronometrażu przy użyciu każdego nowego obrazu. Zamiast tego wywołaj interfejs API przed uruchomieniem aparatu lub po prostu wtedy, gdy trzeba zmienić wartość w pętli przechwytywania obrazu. W szczególności unikaj wywoływania metody k4a_device_set_color_control(K4A_COLOR_CONTROL_AUTO_EXPOSURE_PRIORITY)
.
Zgodność kontrolera hosta USB3
Jeśli urządzenie nie wylicza się w menedżerze urządzeń, może to być spowodowane tym, że jest podłączony do nieobsługiwanego kontrolera USB3.
W przypadku zestawu Azure Kinect DK w systemach Windows, Intel, Texas Instruments (TI) i Renesas są jedynymi obsługiwanymi kontrolerami hosta. Zestaw Azure Kinect SDK na platformach Windows opiera się na ujednoliconym identyfikatorze kontenera i musi obejmować urządzenia USB 2.0 i 3.0, aby zestaw SDK mógł znaleźć głębokość, kolor i urządzenia audio, które znajdują się fizycznie na tym samym urządzeniu. W systemie Linux więcej kontrolerów hosta może być obsługiwanych, ponieważ ta platforma korzysta mniej z identyfikatora kontenera i więcej numerów seryjnych urządzeń.
Temat kontrolerów hosta USB staje się jeszcze bardziej skomplikowany, gdy na komputerze jest zainstalowany więcej niż jeden kontroler hosta. Gdy kontrolery hosta są mieszane, użytkownik może napotkać problemy, gdy niektóre porty działają prawidłowo, a inne w ogóle nie działają. W zależności od tego, jak porty są połączone z tym przypadkiem, mogą pojawić się wszystkie porty frontu, które mają problemy z zestawem Azure Kinect
Windows: aby dowiedzieć się, jaki kontroler hosta został otwarty Menedżer urządzeń
- Widok —> urządzenia według typu
- Po nawiązaniu połączenia z zestawem Azure Kinect wybierz pozycję Aparaty fotograficzne Azure> Kinect 4K
- Widok —> urządzenia według połączenia
Aby lepiej zrozumieć, który port USB jest podłączony na komputerze, powtórz te kroki dla każdego portu USB podczas łączenia zestawu Azure Kinect DK z różnymi portami USB na komputerze.
Automatyczna kamera głębinowa wyłącza
Laser używany przez kamerę głębinową do obliczania danych głębokości obrazu, ma ograniczoną żywotność. Aby zmaksymalizować żywotność laserów, aparat głębi wykrywa, kiedy dane głębokości nie są używane. Kamera głębinowa wyłącza moc, gdy urządzenie jest przesyłane strumieniowo przez kilka minut, ale komputer hosta nie odczytuje danych. Ma to również wpływ na synchronizację wielu urządzeń, w których podrzędne urządzenia są uruchamiane w stanie, w którym kamera głębokości przesyła strumieniowo, a ramki głębokości są aktywnie pomocne w oczekiwaniu, aż urządzenie główne rozpocznie synchronizowanie przechwytywania. Aby uniknąć tego problemu w scenariuszach przechwytywania wielu urządzeń, upewnij się, że urządzenie główne rozpoczyna się w ciągu minuty od rozpoczęcia pierwszego podrzędnego.
Korzystanie z zestawu Body Tracking SDK z rozwiązaniem Unreal
Aby użyć zestawu BODY Tracking SDK z rozwiązaniem Unreal, upewnij się, że dodano <SDK Installation Path>\tools
do zmiennej środowiskowej PATH
i skopiowano dnn_model_2_0.onnx
element i cudnn64_7.dll
do Program Files/Epic Games/UE_4.23/Engine/Binaries/Win64
elementu .
Korzystanie z zestawu Azure Kinect w bezgłowym systemie Linux
Aparat głębokości zestawu Azure Kinect w systemie Linux używa biblioteki OpenGL. OpenGL wymaga wystąpienia okna, które wymaga, aby monitor był połączony z systemem. Obejściem tego problemu jest:
- Włącz automatyczne logowanie dla konta użytkownika, którego planujesz użyć. Zapoznaj się z tym artykułem, aby uzyskać instrukcje dotyczące włączania automatycznego logowania.
- Wyłącz system, odłącz monitor i włącz system. Automatyczne logowanie wymusza utworzenie sesji x-server.
- Nawiązywanie połączenia za pośrednictwem protokołu ssh i ustawianie zmiennej env DISPLAY
export DISPLAY=:0
- Uruchom aplikację Azure Kinect.
Narzędzie xtrlock może służyć do natychmiastowego zablokowania ekranu po automatycznym zalogowaniu. Dodaj następujące polecenie do aplikacji startowej lub usługi systemd:
bash -c “xtrlock -b”
Brak dokumentacji języka C#
Dokumentacja języka C# zestawu Sensor SDK znajduje się tutaj.
Dokumentacja zestawu Body Tracking SDK języka C# znajduje się tutaj.
Zmiany zawartości pakietów Body Tracking
Pakiety MSI i NuGet nie zawierają już plików pakietu Microsoft pakiet redystrybucyjny programu Visual C++. Pobierz najnowszy pakiet tutaj.
Pakiet NuGet jest z powrotem, jednak nie zawiera już plików Microsoft DirectML ani NVIDIA CUDA i TensorRT.