Quantcast
Channel: C#
Viewing all articles
Browse latest Browse all 1853

Consejos y trucos para desarrollar aplicaciones con el SDK para Intel RealSense 2014 R1

$
0
0

La siguiente es una colección de consejos y trucos para usar con el SDK para Intel RealSense 2014 R1. RealSense

Ajuste del rendimiento:

  1. Deshabilite las modalidades que no utilice, solo llame a las funciones específicas necesarias. Revise en especial las modalidades múltiples en manos o rostro, como hand_facade, blob/contorno, o uso de una segunda mano (por ejemplo: quizá no necesite hacer seguimiento de manos cuando use gestos).
  2. Use distintos subprocesos para modalidades diferentes (excepto gestos de dos manos). Esto será útil para ejecutar solamente la modalidad requerida para cada sección. Pero recuerde que los cambios a subprocesos pueden usar mucha CPU.
  3. Especifique los gestos que realmente se usen y solo busque los gestos que especificó (clasificación de gestos).
     
  4. Solo siga las articulaciones o los puntos de referencia necesarios (quizá no necesite más que la punta de la nariz o una única articulación).

Seguimiento de articulaciones de dedos (¡gracias, Marty!): para mejorar la estabilidad (menos movimientos repentinos), limite la cantidad de articulaciones que siga, a partir de estos consejos:
Los dedos que se doblan son dependientes entre sí: con solo seguir dos articulaciones, se pueden doblar los cuatro dedos de manera realista. Solo el índice se puede cerrar individualmente o permanecer levantado mientras los demás están cerrados, por eso necesita su propio seguimiento de articulaciones. Pero para los demás dedos:
 cuando se dobla el dedo mayor, arrastra con él al anular y el meñique;
 cuando se dobla el anular, también lo hacen el mayor y el meñique;
 cuando se dobla el meñique, bajan el mayor y el anular.
Rotación: la cantidad de grados que puede girar una falange específica de un dedo humano está determinada por la longitud de la falange (no por la articulación). La falange distal (la punta) del dedo mayor se puede doblar menos que la falange media, y la falange media menos que la proximal (la inferior). Solo se necesita un cover index del script de seguimiento: Joint_Index_IT1 en todas las articulaciones; dedos mayor, anular y meñique: Joint_Middle_ITI en todas las articulaciones.
Manos de niños: las manos pequeñas son difíciles de captar. En Gold R1, deje transcurrir cinco segundos para incorporar la información.

  1. Ponga la cámara en pausa cuando no sea necesaria.
  2. Limite los fps de la aplicación (30/60) para favorecer la sincronización con la menor cantidad de fps de RSSDK, al menos cuando la cámara esté activa.
  3. Desasocie el juego de los fotogramas del RSSDK (no espere fotogramas).
  4. Ejecute su aplicación y busque si hay secciones enlazadas a GPU o CPU.
  5. Tenga presente que identificar una mano es un proceso lento y consume muchos recursos; hay que esforzarse por evitarlo. Se debe advertir a los usuarios cuando estén por salir del campo de visión, para que hagan más lentos los movimientos, etc.
  6. Use la memoria caché cuando sea posible, para evitar la sobrecarga de búsqueda de componentes. El almacenamiento persistente evita crear objetos y estructura de datos en cada fotograma.
  7. Reduzca la resolución de pantalla (puede permitir aumentar los fps en hasta 30 %). Intel pide 1380x.
  8. No mezcle bibliotecas de 32 y 64 bits.
  9. Formas de reducir el uso intensivo de CPU: represente primero los objetos cercanos, reduzca texturas y limite las llamadas a punto flotante.

Consejos sobre qué modalidad usar:

  • Para la apertura de mano, se requiere el modo de esqueleto; no funciona con el modo de contorno.
  • Movimiento de cabeza (cabeceo, guiñada, alabeo): use "detección de postura" de seguimiento de rostro.
  • Reemplazos de navegación o cursor: el módulo de controlador no táctil está específicamente diseñado para esto.

Consejos de usabilidad

  1. Suavizado: el método más fácil es a menudo promediar fotogramas (se sugiere un promedio de no más de 25 fotogramas).
    Atención: la caja de herramientas de Unity tiene buenas herramientas de suavizado.
    Use el mejor de los cuatro tipos de suavizado (todos pueden ser 1D, 2D o 3D) para las acciones:
        Estabilizar: el mejor para la interfaz de usuario porque mantiene la ubicación actual hasta que se realiza un movimiento amplio.
        Cuadrático: bueno para la estabilización de la interfaz de usuario porque depende del tiempo.
        Ponderado: permite asignar diferentes pesos por sección (gaussiano, uniforme, etc.).
        Resorte: el mejor para juegos; efecto lineal que depende del tiempo.
    Atención: el suavizado de extracción de contorno y manos usa la escala 0-1 (máx.).
              En resorte y cuadrático, el valor predeterminado es 0.5.
    Asegúrese de desechar todas las instancias después de desechar PXCMSenseManager.
    En el caso de las manos, config->EnableStabilizer(true) está activado de manera predeterminada, pero se puede establecer como falso ("false").
  2. Gestos múltiples: no use gestos similares en simultáneo (por ejemplo: pulgares arriba/abajo y puño).
  3.  Consulte las pautas de diseño https://software.intel.com/sites/default/files/managed/0b/0a/RealSenseSDKdesignGuidelinesGold.pdf

Configuración de la cámara:

  1. Para establecer los valores de cámara de manuals_member_functions23.htmlincluidos SetColorAutoWhiteBalance y SetColorAutoExposure, debe agregar el parámetro auto = false para que se tome la configuración manual. Además, se prevé que aparezcan los mensajes item_unavailable y device_failed en los errores.
  1. Para los valores predeterminados de cámara, la intención fue lograr un color y una profundidad generales. Como se puede ver en los ejemplos de módulos, puede agregar configuraciones de cámara a su código, lo cual ayudará con las diferencias entre módulos, tales como movimiento rápido y segmentación, como por ejemplo:  device.SetDepthConfidenceThreshold(1); device.SetIVCAMFilterOption(6);
    Para que el rendimiento sea óptimo, Intel sugiere:

ModuloUmbral de
confianza
Opción
de filtro
Potencia
de láser
PrecisiónCompromiso
movimiento vs. límites
Mano, rostro1616Media0
3dseg0616Poca21
Seguimiento de objetos, emociones6516Media0

Problemas conocidos:

  • Si algunos de los ejemplos no funcionan, asegúrese de que su nombre de carpeta de usuario contenga nada más que caracteres del alfabeto inglés.
  • Java: solo funciona HandsViewer, no secuencia sin procesar.
  • Mapeo de color a profundidad: pérdida de memoria en PXCProjection::CreateColorImageMappedToDepth. Use mapeo de profundidad a color.

Encontrará más consejos y trucos en Consejos y trucos para cuando se usa Unity con el RSSDK; para temas específicos, busque en el foro del SDK para RealSense.


  • RSSDK
  • RealSense
  • camera
  • tips
  • F200
  • R1
  • tricks
  • Immagine icona: 

  • Debugging
  • Strumenti di sviluppo
  • Sviluppo di videogame
  • Ottimizzazione
  • Esperienza utente e progettazione
  • SDK Intel® RealSense™
  • Tecnologia Intel® RealSense™
  • C#
  • C/C++
  • Java*
  • JavaScript*
  • Unity
  • Tecnologia Intel® RealSense™
  • Videocamera anteriore F200
  • Laptop
  • Desktop
  • Sviluppatori
  • Studenti
  • Microsoft Windows* 8
  • Area tema: 

    IDZone

    Includere in RSS: 

    1

    Co_author: 

    BRYAN B. (Intel)
    meghana-rao (Intel)

    Viewing all articles
    Browse latest Browse all 1853

    Trending Articles



    <script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>