Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa pagina contiene problemi noti e suggerimenti per la risoluzione dei problemi quando si usa Sensor SDK con Azure Kinect DK. Vedere anche le pagine di supporto del prodotto per questioni specifiche all'hardware del prodotto.
Problemi noti
- Problemi di compatibilità con i controller host USB ASMedia (ad esempio, ASM1142 chipset)
- Alcune situazioni che utilizzano il driver USB Microsoft possono risolvere problemi di blocco
- Molti PC hanno anche controller host alternativi e la modifica della porta USB3 può aiutare
Per altri problemi relativi a Sensor SDK, vedere Problemi di GitHub
Raccolta di registri
Il log degli eventi per K4A.dll è abilitato attraverso variabili di ambiente. Per impostazione predefinita, la registrazione viene inviata a stdout e vengono generati solo errori e messaggi critici. Queste impostazioni possono essere modificate in modo che la registrazione venga inserita in un file. La verbosità può essere regolata in base alle necessità. Di seguito è riportato un esempio, per Windows, su come abilitare la registrazione su un file, denominato k4a.log, che acquisirà messaggi di avviso e di livello superiore.
set K4A_ENABLE_LOG_TO_A_FILE=k4a.log
set K4A_LOG_LEVEL=w
- Eseguire lo scenario dal prompt dei comandi (ad esempio, visualizzatore di avvio)
- Passare a k4a.log e condividere file.
Per altre informazioni, vedere l'estratto seguente del file header.
/**
* 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
*/
La registrazione del Body Tracking SDK K4ABT.dll è simile, tranne che gli utenti devono modificare un set diverso di nomi di variabili di ambiente.
/**
* 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
*/
Il dispositivo non viene riconosciuto in Gestione periferiche.
- Controllare il LED di stato dietro il dispositivo, se lampeggia ambra si verifica un problema di connettività USB e non ha una potenza sufficiente. Il cavo di alimentazione deve essere collegato all'alimentatore fornito. Mentre il cavo di alimentazione ha un tipo USB A connesso, il dispositivo richiede più alimentazione rispetto a una porta USB PC può fornire. Quindi, non connetterlo a una porta PC o a un hub USB.
- Verificare di avere collegato il cavo di alimentazione e di usare la porta USB3 per i dati.
- Provare a modificare la porta USB3 per la connessione dati (consiglio di usare la porta USB vicina alla scheda madre, ad esempio, nel retro del PC).
- Controllare il cavo, i cavi danneggiati o di qualità inferiore possono causare enumerazione inaffidabile (il dispositivo mantiene il "lampeggiamento" in Gestione dispositivi).
- Se ti sei connesso al portatile e stai utilizzando la batteria, potrebbe ridurre l'alimentazione alla porta.
- Riavviare il PC host.
- Se il problema persiste, potrebbe verificarsi un problema di compatibilità.
- Se si è verificato un errore durante l'aggiornamento del firmware e il dispositivo non è stato ripristinato da solo, eseguire ripristino delle impostazioni predefinite.
Non è possibile aprire il visualizzatore di Azure Kinect
Assicurati innanzitutto che il tuo dispositivo venga enumerato in Gestione dispositivi Windows.
Controllare se è presente un'altra applicazione usando il dispositivo (ad esempio, applicazione fotocamera Windows). Solo un'applicazione alla volta può accedere al dispositivo.
Controllare k4aviewer.err log per i messaggi di errore.
Aprire l'applicazione fotocamera di Windows e verificare che funzioni.
Riavviare il dispositivo e attendere che il LED di streaming si spenga prima di usare il dispositivo.
Riavviare il PC host.
Assicurati di usare i driver di grafica più recenti nel PC.
Se si usa la propria build di SDK, provare a usare la versione ufficialmente rilasciata se questo risolve il problema.
Se il problema persiste, raccogliere i log e inviare feedback.
Impossibile trovare il microfono
Verificare prima che la matrice di microfoni sia enumerata in Gestione dispositivi.
Se un dispositivo è enumerato e funziona correttamente in Windows, il problema potrebbe essere che dopo l'aggiornamento del firmware Windows ha assegnato UN ID contenitore diverso a Depth Camera.
È possibile provare a reimpostarlo passando a Gestione dispositivi, facendo clic con il pulsante destro del mouse su "Array microfono di Azure Kinect" e scegliendo "Disinstalla dispositivo". Al termine, scollegare e ricollegare il sensore.
matrice di microfoni di Azure Kinect
Dopo aver riavviato Azure Kinect Viewer e riprovare.
Problemi di aggiornamento del firmware del dispositivo
- Se il numero di versione corretto non viene segnalato dopo l'aggiornamento, potrebbe essere necessario riavviare il dispositivo.
- Se l'aggiornamento del firmware viene interrotto, potrebbe verificarsi uno stato non valido e non eseguire l'enumerazione. Scollegare e ricollegare il dispositivo e attendere 60 secondi per verificare se è in grado di eseguire il ripristino. Se no, eseguire un ripristino delle impostazioni di fabbrica di
Problemi di qualità dell'immagine
- Avviare visualizzatore di Azure Kinect e controllare il posizionamento del dispositivo per individuare eventuali interferenze o se il sensore è bloccato o l'obiettivo è sporco.
- Provare diverse modalità operative per determinare se il problema si verifica in una modalità specifica.
- Per la condivisione dei problemi di qualità delle immagini con il team, è possibile:
- Interrompere la visualizzazione su del visualizzatore di Azure Kinect e acquisire uno screenshot oppure
- Prendi come esempio la registrazione usando il registratore Azure Kinect , ad esempio
k4arecorder.exe -l 5 -r 5 output.mkv
Marcature temporali dei dispositivi incoerenti o imprevisti
Le modifiche temporanee di tempistica sul dispositivo causate dalla chiamata k4a_device_set_color_control
potrebbero richiedere alcune acquisizioni per stabilizzarsi. Evitare di chiamare l'API nel ciclo di acquisizione di immagini per evitare di reimpostare il calcolo di intervallo interno con ogni nuova immagine. Chiamare invece l'API prima dell'avvio della fotocamera o solo quando è necessario modificare il valore all'interno del ciclo di acquisizione immagini. In particolare, evitare di chiamare k4a_device_set_color_control(K4A_COLOR_CONTROL_AUTO_EXPOSURE_PRIORITY)
.
Compatibilità del controller host USB3
Se il dispositivo non è enumerato in Gestione dispositivi, potrebbe essere perché è collegato a un controller USB3 non supportato.
Per Azure Kinect DK in Windows , Intel, Texas Instruments (TI)e Renesas sono i controller host supportati solo. Azure Kinect SDK sulle piattaforme Windows si basa su un ID contenitore unificato e deve estendersi su dispositivi USB 2.0 e 3.0 in modo che l'SDK possa trovare la profondità, il colore e i dispositivi audio che si trovano fisicamente nello stesso dispositivo. In Linux, è possibile supportare più controller host perché tale piattaforma si basa meno sull'ID contenitore e altro ancora sui numeri di serie del dispositivo.
L'argomento dei controller host USB diventa ancora più complicato quando un PC ha più di un controller host installato. Quando i controller host sono misti, un utente potrebbe riscontrare problemi in cui alcune porte funzionano correttamente e altre non funzionano affatto. A seconda di come le porte sono cablate nella struttura, è possibile che si verifichino problemi con tutte le porte frontali dell'Azure Kinect.
Windows: Per scoprire quale controller host hai, apri Gestione dispositivi
- Visualizzazione - Dispositivi> per tipo
- Con Azure Kinect collegato, selezionare Fotocamere ->Fotocamera Azure Kinect 4K
- Vista - dispositivi> per tipo di connessione
Per comprendere meglio quale porta USB è connessa nel PC, ripetere questi passaggi per ogni porta USB mentre si connette Azure Kinect DK a porte USB diverse nel PC.
La fotocamera di profondità si spegne automaticamente
Il laser utilizzato dalla fotocamera di profondità per calcolare i dati di profondità dell'immagine ha una durata limitata. Per massimizzare la durata dei laser, la fotocamera di profondità rileverà quando i dati di profondità non vengono utilizzati. La fotocamera di profondità si spegne quando il dispositivo è in streaming per alcuni minuti, ma il PC host non legge i dati. Influisce anche sulla sincronizzazione multi-dispositivo, dove i dispositivi subordinati vengono avviati in uno stato in cui la fotocamera di profondità è in streaming e i fotogrammi di profondità sono attivamente trattenuti nell'attesa che il dispositivo principale inizi a sincronizzare le catture. Per evitare questo problema negli scenari di acquisizione di più dispositivi, assicurarsi che il dispositivo master venga avviato entro un minuto dall'avvio del primo subordinato.
Uso dell'SDK per il tracciamento del corpo con Unreal Engine
Per usare Body Tracking SDK con Unreal, assicurarsi di aver aggiunto <SDK Installation Path>\tools
alla variabile di ambiente PATH
e copiato dnn_model_2_0.onnx
e cudnn64_7.dll
in Program Files/Epic Games/UE_4.23/Engine/Binaries/Win64
.
Uso di Azure Kinect nel sistema Linux headless
Il motore di profondità di Azure Kinect in Linux usa OpenGL. OpenGL richiede un'istanza di una finestra, che necessita di un monitor collegato al sistema. Una soluzione alternativa per questo problema è:
- Abilitare l'accesso automatico per l'account utente che si intende usare. Per istruzioni su come abilitare l'accesso automatico, consultare questo articolo.
- Spegnere il sistema, disconnettere il monitor e accendere il sistema. L'accesso automatico forza la creazione di una sessione x-server.
- Connettersi tramite ssh e impostare la variabile DISPLAY env
export DISPLAY=:0
- Avviare l'applicazione Azure Kinect.
L'utilità xtrlock può essere usata per bloccare immediatamente la schermata dopo l'accesso automatico. Aggiungere il comando seguente all'applicazione di avvio o al servizio systemd:
bash -c “xtrlock -b”
Documentazione C# mancante
La documentazione di Sensor SDK C# si trova qui.
La documentazione del Body Tracking SDK C# si trova qui .
Modifiche al contenuto dei pacchetti di tracciamento corporeo
I pacchetti MSI e NuGet non includono più i file di Microsoft Visual C++ Redistributable Package. Scaricare il pacchetto più recente qui.
Il pacchetto NuGet è tornato, tuttavia non include più i file Microsoft DirectML, NVIDIA CUDA e TensorRT.