Principios técnicos de Unitykinect
kinect 1: basado en el principio de la tecnología de codificación de luz de Prime Sense, se codifica la luz invisible y luego se detecta el haz codificado para determinar la orientación del objeto.
kinect2: Principio TOF (mayor precisión, sensibilidad y resolución), determina la orientación del objeto en función del tiempo que tarda la luz en reflejarse. Eso sí, es casi imposible detectar el vuelo. velocidad de la luz, por lo que la intensidad del haz de luz emitido se vuelve sinusoidal con el tiempo, y luego se calcula el valor de diferencia de fase cuando regresa. Por lo tanto, al usarlo, trate de evitar reflejos de los objetos en la escena y no mueva el Kinect. , de lo contrario ocurrirán problemas.
2. Bibliotecas de código abierto que se pueden estudiar: Openni, KinectSDK, biblioteca de gestos NITE, Kinect-ms-sdk. Como soy un novato y estoy relativamente familiarizado con el SDK de Kinect, lo resumiré desde el principio y lo analizaré en detalle cuando tenga la oportunidad.
3. En primer lugar, cuando utilizas Kinect, primero debes entender qué puede hacer y qué datos puede obtener.
De hecho, mirando su SDK, lo sabemos. que puede Los datos obtenidos incluyen: voz, imágenes en color, imágenes de profundidad y datos esqueléticos (este es el propósito proporcionado por los desarrolladores para reconocer algoritmos basados en profundidad y color). Qué datos nuevos se pueden desarrollar a partir de este tipo de datos y qué funciones interesantes se pueden desarrollar están completamente determinados por la capacidad y la curiosidad del desarrollador sobre el mundo. (El SDK oficial ya proporciona expresiones, modelado facial, reconocimiento de voz, evaluación de gestos y otras funciones). No se espera que otras se proporcionen pronto)
4. Flujo del programa de uso de Kinect:
Inicie el programa--Obtenga la cámara Kinect--Abra el lector--Abra Kinect--Obtenga los datos de cuadro relevantes del lector--Usar datos de cuadro--Cerrar el cuadro--Cerrar el lector--Cerrar Kinect-- Cerrar programa
Este es un flujo de trabajo completo de Kinect. Este proceso es necesario para obtener datos de color, profundidad y huesos, y nuestra operación principal es utilizar datos de marco en esta etapa. El resto de operaciones son básicamente iguales.
4.1 Abrir Kinect es muy sencillo: al principio del programa, escribe en la unidad la función Start
_Sensor = KinectSensor.GetDefault();
if (_Sensor ! = null)
{
_Reader = _Sensor.ColorFrameSource.OpenReader();
if (! _Sensor.IsOpen)
{
_Sensor.Open();
}
}
Esto abre con éxito el sensor y el lector Kinect.
4.2 Cerrar el programa
Tenga cuidado de no apagar Kinect aleatoriamente antes de obtener los datos, de lo contrario los datos serán inexactos. Generalmente, Kinect se apaga cuando usted lo hace. a punto de cerrar el programa. Para continuar, hay un OnApplicationQuit() especial en la unidad de la clase mono. Lo que debemos hacer aquí es apagar Kinect.
El código es el siguiente:
void OnApplicationQuit()
{
if (_Reader ! = null)
{
_Reader.Dispose();
_Reader = null;
}
if (_Sensor ! = null)
{
si (_Sensor.IsOpen)