Известные проблемы с Azure Kinect и устранение неполадок
На этой странице описаны известные проблемы при использовании пакета SDK для датчиков с Azure Kinect DK и советы по устранению неполадок. Дополнительные сведения о проблемах, связанных с оборудованием, см. на страницах поддержки продукта.
Известные проблемы
- Проблемы совместимости с контроллерами USB-узла ASMedia (например, ASM1142 набором микросхем)
- В некоторых случаях эту проблему можно устранить с помощью драйвера Microsoft USB
- На многих компьютерах есть альтернативные контроллеры узлов, также может помочь изменение порта USB3
Дополнительные сведения о проблемах, связанных с пакетом SDK для датчиков, см. в статье Проблемы с GitHub.
Сбор журналов
Ведение журнала для компонента K4A.dll включается с помощью переменных среды. По умолчанию журнал отправляется в stdout и формируются только ошибки и критические сообщения. Эти параметры можно изменить, чтобы журнал сохранялся в файл. Уровень детализации также можно настроить, как вам удобно. Ниже приведен пример для Windows, в котором журнал ведется в файле с именем k4a.log, а также записываются предупреждения и сообщения более высокого уровня.
set K4A_ENABLE_LOG_TO_A_FILE=k4a.log
set 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
*/
Ведение журнала для пакета SDK для отслеживания тела K4ABT.dll выполняется аналогично, за исключением того, что пользователи должны изменить другой набор имен переменных среды:
/**
* 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
*/
Устройство не перечислено в диспетчере устройств
- Проверьте светодиодный индикатор состояния на тыльной стороне устройства. Если он мигает желтым, у вас возникла проблема с подключением с помощью USB и он не получает достаточно энергии. Кабель питания должен быть подключен к нужному адаптеру питания. Несмотря на то что подключенный кабель питания USB имеет тип разъема А, устройству необходимо больше энергии, чем может обеспечить USB-порт компьютера. Поэтому не подключайте его к порту ПК или USB-концентратору.
- Убедитесь, что кабель питания подключен и для приема и передачи данных используется порт USB3.
- Попробуйте изменить порт USB3 для подключения к данным (рекомендуется использовать порт USB, расположенный близко к материнской плате, например на задней стороне ПК).
- Осмотрите кабель. Повреждения или низкое качество кабеля могут привести к ненадежному перечислению (устройство продолжает мигать в диспетчере устройств).
- Если вы подключились к ноутбуку и он работает от аккумулятора, это может привести к ограничению питания порта.
- Перезагрузите хост-компьютер.
- Если проблема не исчезла, причиной может быть проблема совместимости.
- Если во время обновления встроенного ПО произошел сбой и устройство не восстановилось самостоятельно, выполните сброс параметров до заводских настроек.
Не удается открыть средство просмотра Azure Kinect
Сначала убедитесь, что устройство перечисляется в Диспетчере устройств Windows.
Проверьте, используется ли устройство другим приложением (например, приложением камеры Windows). Доступ к устройству может получить только одно приложение за раз.
Проверьте журнал k4aviewer.err на наличие сообщений об ошибках.
Откройте приложение камеры Windows и проверьте, работает ли оно.
Выключите и включите устройство, перед использованием устройства подождите, пока светодиодный индикатор потоковой передачи погаснет.
Перезагрузите хост-компьютер.
Убедитесь, что вы используете последние версии графических драйверов на компьютере.
Если вы используете собственную сборку пакета SDK, попробуйте использовать официальную версию и проверьте, помогло ли это решить проблему.
Если проблема сохраняется, соберите журналы и отзывы файлов.
Не удается найти микрофон
Сначала убедитесь, что массив микрофонов перечислен в Диспетчере устройств.
Если устройство перечислено и правильно работает в Windows, проблема может быть связана с тем, что после обновления встроенного ПО Windows назначила другой идентификатор контейнера для камеры глубины.
Вы можете попытаться сбросить настройки: откройте Диспетчер устройств, щелкните правой кнопкой мыши "Массив микрофонов Azure Kinect" и выберите "Удалить устройство". После этого отсоедините датчик и снова подключите его.
Затем перезапустите средство просмотра Azure Kinect и повторите попытку.
Проблемы с обновлением встроенного ПО устройства
- Если после обновления не отображается правильный номер версии, возможно, потребуется выключить устройство и снова включить его.
- Если обновление встроенного ПО прервано, оно может перестать работать и не будет перечисляться. Отсоедините устройство и повторно подключите его, затем подождите 60 секунд, чтобы проверить, сможет ли оно восстановиться. Если нет, выполните сброс до заводских настроек.
Проблемы с качеством изображения
- Запустите средство просмотра Azure Kinect и проверьте размещение устройства: нет ли помех, не заблокирован ли датчик и нет ли грязи на объективе.
- Попробуйте использовать разные режимы работы, чтобы выяснить, появляется ли ошибка в каком-то определенном режиме.
- Чтобы показать проблему с качеством изображения своей команде, можно:
- приостановить просмотр в средстве просмотра Azure Kinect и сделать снимок экрана;
- сделать запись с помощью средства записи Azure Kinect, например
k4arecorder.exe -l 5 -r 5 output.mkv
.
Неправильные или непредвиденные метки времени устройства
Вызов k4a_device_set_color_control
может ненадолго вызвать изменения времени на устройстве, и для восстановления может потребоваться несколько захватов. Избегайте вызова API в цикле захвата изображения, чтобы избежать сброса внутренних расчетов времени с каждым новым изображением. Лучше вызовите API перед запуском камеры или в случае, если необходимо изменить значение во время цикла захвата изображения. В частности, старайтесь не вызывать k4a_device_set_color_control(K4A_COLOR_CONTROL_AUTO_EXPOSURE_PRIORITY)
.
Совместимость с контроллером узла USB3
Если устройство не перечислено в Диспетчере устройств, это может быть связано с тем, что оно подключено к неподдерживаемому контроллеру USB3.
Для Azure Kinect DK в Windows поддерживаются только контроллеры узлов Intel, Texas Instruments (TI) и Renesas. Пакет SDK для Azure Kinect на платформах Windows использует унифицированный идентификатор контейнера, и он должен охватывать устройства USB 2.0 и 3.0, чтобы пакет SDK мог найти устройства глубины, цвета и аудио, которые физически расположены на одном устройстве. В Linux могут поддерживаться дополнительные контроллеры узлов, так как эта платформа учитывает не идентификатор контейнера, а серийные номера устройств.
Разобраться с контроллерами узлов USB становится сложнее, если на компьютере установлено несколько контроллеров узлов. При использовании сразу нескольких контроллеров узлов пользователь может столкнуться с проблемами, когда некоторые порты работают нормально, а другие не работают совсем. В зависимости от того, как подключены порты к корпусу, можно заметить, что у всех внешних портов возникают проблемы при работе с Azure Kinect
Windows: как узнать, какой контроллер узла открыт в Диспетчере устройств
- Просмотр -> Устройства по типу
- При подключенной службе Azure Kinect выберите Камеры ->Камера 4K Azure Kinect
- Просмотр -> Устройства по подключению
Чтобы лучше понять, какой USB-порт подключен к компьютеру, повторите эти действия для каждого USB-порта, подключая Azure Kinect DK к разным USB-портам на компьютере.
Питание камеры глубины автоматически выключается
Лазер, используемый камерой глубины для вычисления данных глубины изображения, имеет ограниченный срок службы. Чтобы максимально продлить срок службы лазеров, камера глубины определяет, когда данные глубины не нужны. Питание камеры глубины выключается, когда устройство несколько минут выполняет потоковую передачу данных, но хост-компьютер не считывает данные. Это также влияет на синхронизацию нескольких устройств, когда подчиненные устройства запускаются в состоянии, когда камера глубины выполняет потоковую передачу и кадры глубины активны в ожидании, пока основное устройство не начнет синхронизировать захваченный материал. Чтобы избежать этой проблемы в сценариях захвата с нескольких устройств, убедитесь, что основное устройство запускается в течение минуты с момента запуска первого подчиненного устройства.
Использование пакета SDK для отслеживания тела с Unreal
Чтобы использовать пакет 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 необходим экземпляр окна, который требует, чтобы монитор был подключен к системе. Обходной путь для решения этой проблемы:
- Включите автоматический вход в учетную запись пользователя, которую вы планируете использовать. Инструкции по включению автоматического входа см. в этой статье.
- Выключите систему, отключите монитор и включите систему. При автоматическом входе принудительно создается сеанс x-сервера.
- Подключитесь через SSH и задайте для переменной среды DISPLAY значение
export DISPLAY=:0
. - Запустите приложение Azure Kinect.
Служебную программу xtrlock можно использовать для немедленной блокировки экрана после автоматического входа. Добавьте следующую команду в запускаемое приложение или службу systemd:
bash -c “xtrlock -b”
Отсутствует документация по C#
Документация по C# для пакета SDK для датчика находится здесь.
Документация по C# для пакета SDK для отслеживания тела находится здесь.
Изменения содержимого пакетов отслеживания тела
Ни пакеты MSI, ни пакеты NuGet больше не содержат файлы пакетов Распространяемых компонентов Microsoft Visual C++. Скачайте последнюю версию пакета по этой ссылке.
Пакет NuGet возвращается, однако он больше не включает файлы Microsoft DirectML или NVIDIA CUDA и TensorRT