Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Cada dispositivo Azure Kinect DK incluye puertos de sincronización de 3,5 mm (Sincronización en y Sincronización out) que puede usar para vincular varios dispositivos juntos. Después de conectar los dispositivos, el software puede coordinar el tiempo de activación entre los dispositivos.
En este artículo se explica cómo conectar y sincronizar los dispositivos.
Ventajas de usar varios dispositivos Azure Kinect DK
Hay muchas razones para usar varios dispositivos Azure Kinect DK, incluidos los siguientes:
- Rellene las oclusiones. Aunque las transformaciones de datos de Azure Kinect DK producen una sola imagen, las dos cámaras (profundidad y RGB) están realmente separadas por una pequeña distancia. Es el desplazamiento lo que permite la existencia de oclusiones. Una oclusión se produce cuando un objeto de primer plano bloquea la vista de parte de un objeto de fondo para una de las dos cámaras de un dispositivo. En la imagen de color resultante, el objeto de primer plano parece proyectar una sombra sobre el objeto de fondo.
Por ejemplo, en el diagrama siguiente, la cámara del lado izquierdo ve el píxel gris "P2". Sin embargo, el objeto de primer plano blanco bloquea el haz IR de la cámara derecha. La cámara del lado derecho no tiene datos para "P2".
Los dispositivos sincronizados adicionales pueden proporcionar los datos ocluidos. - Examinar objetos en tres dimensiones.
- Aumente la velocidad de fotogramas efectiva a un valor superior a 30 fotogramas por segundo (FPS).
- Capture varias imágenes de color 4K de la misma escena, todas alineadas en 100 microsegundos (μs) del centro de exposición.
- Aumente la cobertura de la cámara dentro del espacio.
Planeamiento de la configuración de varios dispositivos
Antes de empezar, asegúrese de revisar las especificaciones de hardware de Azure Kinect DK y la cámara de profundidad de Azure Kinect DK.
Nota:
Quite la cubierta de plástico exterior para exponer los conectores Sync In y Sync Out.
Selección de una configuración de dispositivo
Puede usar cualquiera de los métodos siguientes para la configuración del dispositivo:
-
Configuración de cadena de Daisy. Sincronice un dispositivo maestro y hasta ocho dispositivos subordinados.
-
Configuración de estrella. Sincronice un dispositivo maestro y hasta dos dispositivos subordinados.
Uso de un desencadenador de sincronización externa
En ambas configuraciones, el dispositivo maestro proporciona la señal de desencadenamiento para los dispositivos subordinados. Sin embargo, puede usar un origen externo personalizado para el desencadenador de sincronización. Por ejemplo, puede usar esta opción para sincronizar capturas de imágenes con otros equipos. En la configuración de cadena de margarita o en la configuración de estrella, el origen del desencadenador externo se conecta al dispositivo maestro.
La fuente del disparador externo debe funcionar de la misma manera que el dispositivo maestro. Debe entregar una señal de sincronización que tenga las siguientes características:
- Activo alto
- Ancho del pulso: mayor que 8μs
- TTL/CMOS de 5V
- Capacidad máxima de conducción: no menos de 8 miliampos (mA)
- Compatibilidad de frecuencia: Exactamente 30 FPS, 15 FPS y 5 FPS (frecuencia de la señal VSYNC principal de la cámara de color)
El origen del desencadenador debe entregar la señal al puerto Sync in del dispositivo maestro mediante un cable de audio de 3,5 mm. Puede usar un cable estéreo o mono. Azure Kinect DK corta todas las mangas y anillos del conector de cable de audio juntos, y los coloca. Como se muestra en el diagrama siguiente, el dispositivo recibe la señal de sincronización solo de la punta del conector.
Para más información sobre cómo trabajar con equipos externos, consulte Uso de la grabadora de Azure Kinect con dispositivos sincronizados externos.
Nota:
Sync Out es la VSync para la cámara RGB. Las marcas de tiempo de todos los dispositivos se establecen en cero y comienzan a contar hacia arriba. Microsoft no ha caracterizado el ancho mínimo y máximo del pulso de sincronización y recomienda imitar el pulso generado por Sync Out of an Azure Kinect DK.
Planear la configuración de la cámara y la configuración de software
Para obtener información sobre cómo configurar el software para controlar las cámaras y usar los datos de imagen, consulte el SDK del sensor de Azure Kinect.
En esta sección se describen varios factores que afectan a los dispositivos sincronizados (pero no a los dispositivos únicos). El software debe tener en cuenta estos factores.
Consideraciones de exposición
Si desea controlar el tiempo preciso de cada dispositivo, se recomienda usar una configuración de exposición manual. En la configuración de exposición automática, cada cámara de color puede cambiar dinámicamente la exposición real. Dado que la exposición afecta al tiempo de sincronización, estos cambios rápidamente desajustan las cámaras.
En el bucle de captura de imágenes, evite establecer repetidamente la misma configuración de exposición. Llame a la API solo una vez cuando sea necesario.
Evitar interferencias entre varias cámaras de profundidad
Cuando varias cámaras de profundidad están capturando campos de visión superpuestos, cada cámara debe procesar su propio láser asociado. Para evitar que los láseres interfieran entre sí, las capturas de cámara deben desplazarse entre sí por 160μs o más.
Para cada captura de cámara de profundidad, el láser se enciende nueve veces y está activo durante solo 125μs cada vez. Después, el láser está inactivo para 1450μs o 2390μs, dependiendo del modo de funcionamiento. Este comportamiento significa que el punto inicial del cálculo de desplazamiento es de 125μs.
Además, las diferencias entre el reloj de la cámara y el reloj de firmware del dispositivo aumentan el desplazamiento mínimo a 160μs. Para calcular un desplazamiento más preciso para tu configuración, ten en cuenta el modo de profundidad que estás usando y consulta la tabla de tiempos en bruto del sensor de profundidad. Mediante el uso de los datos de esta tabla, puede calcular el desplazamiento mínimo (el tiempo de exposición de cada cámara) mediante la ecuación siguiente:
Tiempo de Exposición = (Pulsos IR × Ancho de Pulso) + (Períodos de Inactividad × Tiempo de Inactividad)
Cuando usa un desplazamiento de 160μs, puede configurar hasta nueve cámaras de profundidad adicionales para que cada láser se active mientras los demás láser están inactivos.
En su software, use depth_delay_off_color_usec o subordinate_delay_off_master_usec para asegurarse de que cada láser IR se activa en su propia ventana de 160μs o tiene un campo de vista diferente.
Nota:
El ancho real del pulso es de 125μs, pero indicamos 160us para proporcionar algún margen de acceso. Tomando NFOV UNBINNED como ejemplo, cada pulso de 125μs va seguido de 1450μs en reposo. Totalización de estas - (9 x 125) + (8 x 1450) - produce el tiempo de exposición de 12,8 ms. Lo más cercano que puedes intercalar la exposición de 2 dispositivos es hacer que el primer pulso de la segunda cámara coincida con el primer período de inactividad de la primera cámara. El retraso entre la primera y la segunda cámara podría ser tan corto como 125μs (el ancho de un pulso); sin embargo, recomendamos dejar cierto margen de tolerancia, de ahí los 160μs. Dados 160 μs, puede intercalar los períodos de exposición de un máximo de 10 cámaras.
Preparar los dispositivos y otro hardware
Además de varios dispositivos Azure Kinect DK, es posible que tenga que obtener equipos host adicionales y otro hardware para admitir la configuración que desea construir. Use la información de esta sección para asegurarse de que todos los dispositivos y hardware están listos antes de empezar a configurarse.
Dispositivos Azure Kinect DK
Para cada dispositivo azure Kinect DK que quiera sincronizar, haga lo siguiente:
- Asegúrese de que el firmware más reciente está instalado en el dispositivo. Para más información sobre cómo actualizar los dispositivos, vaya a Actualización del firmware de Azure Kinect DK.
- Quite la cubierta del dispositivo para mostrar los puertos de sincronización.
- Anote el número de serie de cada dispositivo. Usará este número más adelante en el proceso de instalación.
Equipos host
Normalmente, cada Azure Kinect DK usa su propio equipo host. Puede usar un controlador de host dedicado, en función de cómo use el dispositivo y la cantidad de datos que se transfieren a través de la conexión USB.
Asegúrese de que el SDK del sensor de Azure Kinect esté instalado en cada equipo host. Para más información sobre cómo instalar el SDK de sensor, vaya a Inicio rápido: Configuración de Azure Kinect DK.
Equipos Linux: memoria USB en Ubuntu
De forma predeterminada, los equipos host basados en Linux asignan el controlador USB solo 16 MB de memoria kernel para controlar las transferencias USB. Esta cantidad suele ser suficiente para admitir un único Azure Kinect DK. Sin embargo, para admitir varios dispositivos, el controlador USB tiene que tener más memoria. Para aumentar la memoria, siga estos pasos:
- Edite /etc/default/grub.
- Busque la siguiente línea:
Reemplácelo mediante esta línea:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.usbfs_memory_mb=32"Nota:
Estos comandos establecen la memoria USB en 32 MB. Se trata de una configuración de ejemplo al doble del valor predeterminado. Puede establecer un valor mucho mayor, según corresponda para la solución.
- Ejecute sudo update-grub.
- Reinicie el equipo.
Cables
Para conectar los dispositivos entre sí y a los equipos host, debe usar cables macho a macho de 3,5 mm (también conocido como cable de audio de 3,5 mm). Los cables deben tener menos de 10 metros de longitud y pueden ser estéreo o mono.
El número de cables que debe tener depende del número de dispositivos que use y también de la configuración específica del dispositivo. La caja de Azure Kinect DK no incluye cables. Tienes que comprarlos por separado.
Si conecta los dispositivos en la configuración en estrella, también debe tener un separador de auriculares.
Conectar dispositivos
Para conectar dispositivos Azure Kinect DK en una configuración en cadena
- Conecte cada Azure Kinect DK a la electricidad.
- Conecte cada dispositivo a su EQUIPO host.
- Seleccione un dispositivo para que sea el dispositivo maestro y conecte un cable de audio de 3,5 mm en su puerto de salida de sincronización .
- Conecte el otro extremo del cable al puerto Sync in del primer dispositivo subordinado.
- Para conectar otro dispositivo, conecte otro cable al puerto Sincronización de salida del primer dispositivo subordinado y al puerto Sincronización de entrada del siguiente dispositivo.
- Repita el paso anterior hasta que todos los dispositivos estén conectados. El último dispositivo debe tener solo una conexión de cable. Su puerto sync out debe estar vacío.
Para conectar dispositivos Azure Kinect DK en una configuración en estrella
- Conecte cada Azure Kinect DK a la electricidad.
- Conecte cada dispositivo a su EQUIPO host.
- Seleccione un dispositivo para que sea el dispositivo maestro y conecte el extremo único del divisor de auriculares en su puerto sync out .
- Conecte cables de audio de 3,5 mm a los extremos "divididos" del divisor de auriculares.
- Conecte el otro extremo de cada cable al puerto Sync in de uno de los dispositivos subordinados.
Comprobación de que los dispositivos están conectados y se comunican
Para comprobar que los dispositivos están conectados correctamente, use Azure Kinect Viewer. Repita este procedimiento según sea necesario para probar cada dispositivo subordinado en combinación con el dispositivo maestro.
Importante
Para este procedimiento, debe conocer el número de serie de cada Azure Kinect DK.
- Abra dos instancias de Azure Kinect Viewer.
- En Abrir dispositivo, seleccione el número de serie del dispositivo subordinado que desea probar.
Importante
Para obtener una alineación precisa de la captura de imágenes entre todos los dispositivos, debe iniciar el dispositivo maestro por última vez.
- En Sincronización externa, seleccione Sub.
- Seleccione Inicio.
Nota:
Dado que se trata de un dispositivo subordinado, Azure Kinect Viewer no muestra una imagen después de que se inicie el dispositivo. No se muestra ninguna imagen hasta que el dispositivo subordinado recibe una señal de sincronización del dispositivo maestro.
- Una vez iniciado el dispositivo subordinado, use la otra instancia de Azure Kinect Viewer para abrir el dispositivo maestro.
- En Sincronización externa, seleccione Maestro.
- Seleccione Inicio.
Cuando se inicia el dispositivo Azure Kinect maestro, ambas instancias de Azure Kinect Viewer deben mostrar imágenes.
Calibrar los dispositivos como un conjunto sincronizado
Después de comprobar que los dispositivos se comunican correctamente, está listo para calibrarlos para generar imágenes en un solo dominio.
En un solo dispositivo, las cámaras RGB y de profundidad están calibradas de fábrica para trabajar juntas. Sin embargo, cuando varios dispositivos tienen que trabajar juntos, deben calibrarse para determinar cómo transformar una imagen desde el dominio de la cámara que lo capturó al dominio de la cámara que desea usar para procesar imágenes.
Hay varias opciones para dispositivos de calibración cruzada. Microsoft proporciona el ejemplo de código de pantalla verde de GitHub, que usa el método OpenCV. El archivo Léame de este ejemplo de código proporciona más detalles e instrucciones para calibrar los dispositivos.
Para más información sobre la calibración, consulte Uso de las funciones de calibración de Azure Kinect.
Pasos siguientes
Después de configurar los dispositivos sincronizados, también puede aprender cómo usarlos