¿Cómo puedo obtener los valores de calor reales de una cámara térmica y conocer los valores de los píxeles?

Estoy trabajando con la cámara térmica FLIR y usando el código proporcionado por Pure Engineering. Recientemente tuve un problema con las imágenes proporcionadas por la cámara porque me di cuenta de que los píxeles son relativos entre sí. Lo que significa que el objeto más caliente de la imagen tendrá el color más claro independientemente del calor real del objeto.

Este es un problema importante para mí porque estoy tratando de determinar si alguien está en el objeto y no puedo hacerlo si los valores de los píxeles están cambiando en relación con la cantidad de calor en la imagen. Intenté mirar el código y descubrir cómo modificarlo para obtener los valores de calor reales.

¿Alguien aquí ha trabajado antes con FLIR y sabe cómo hacerlo? O puede intentar mirar el código y decirme qué podría cambiar para obtener valores de calor reales.

Este no es el uso previsto para la cámara de visión térmica . Para obtener temperaturas de forma remota, necesita un dispositivo dedicado que lo proporcione. Las cámaras le brindan una imagen posprocesada que se mejora especialmente para su vista.
Necesita alguna forma de correlacionar los valores de los píxeles con las temperaturas reales. Comenzaría usando un sensor IR (bolómetro) apuntando en la misma dirección para darle una temperatura promedio, que puede asignar al valor de píxel promedio y extrapolar los otros valores desde allí. Con calibración y cuidado, puede obtener suficiente precisión para su propósito.
¿A qué cámara FLIR te refieres? Hay más de 1 en el mercado...
La cámara a menudo tiene una función de rango de bloqueo y una lectura de píxeles más alta... depende del modelo de cámara, supongo.
@BrianDrummond No ayudará si se usa algún tipo de AGC local. El rango dinámico no tiene que ser el mismo en toda la imagen. sin hablar de un hecho de que los sensores térmicos adolecen de una falta de uniformidad muy grave...
@EugeneSh. Los sensores térmicos serían efectivamente un sistema de medición "ponderado en el centro", sí, necesitaría algún tipo de calibración para correlacionarlo con el propio AGC de la cámara, y es posible que no sea razonablemente preciso en todo el campo.
@BrianDrummond Puedo decir que, como alguien que trabajaba en una empresa (aunque no en FLIR), desarrollando cámaras de visión térmica, había algunos algoritmos de mejora caseros no lineales locos. Aunque se pueden apagar...

Respuestas (1)

El código al que se vinculó es, al menos en parte, el culpable. Busca entre los valores recibidos y encuentra los valores máximo y mínimo. Luego escribe el rango (máximo-mínimo) en el archivo pgm para escalar y resta el mínimo de todos los valores.

Esto es necesario para que la imagen sea visible dentro del rango normal de valores para una imagen en escala de grises.

Puede obtener los valores originales de la matriz lepton_image. Esos no se han escalado en el código, por lo que deberían estar más directamente relacionados con la temperatura. La hoja de datos dice que el AGC está desactivado de forma predeterminada, por lo que puede esperar que los valores que reciba sean proporcionales a la temperatura (siempre que su código no active el AGC en alguna parte).

En un escaneo rápido a través de la hoja de datos , no veo cómo convertir el valor bruto a la temperatura. Debería obtener números entre -8192 y 8192 (14 bits con signo) Si la radiometría está desactivada, entonces 0 (cero) debería ser la misma temperatura que el sensor mismo. Puede pedirle al chip su temperatura y calcular a partir de ahí, si puede averiguar la escala.

Suponiendo que el rango de 14 bits cubre todo el rango de 0 a 400 grados Kelvin para el que está clasificado el Lepton, puede activar la radiometría y escalar de tal manera que -8192 sea cero Kelvin y 8192 sea 400 Kelvin y ver si eso coincide con las temperaturas esperadas: debería.


Más información: AGC significa "Control automático de ganancia". En este caso, se utiliza para reducir los valores digitalizados de 14 bits (-8192 a 8192) a un valor de 8 bits (0 a 255).

Necesitará el Documento de descripción de la interfaz del software Lepton para ver cómo activar (o desactivar) el AGC. Pero, según la hoja de datos del Lepton, el AGC está desactivado de forma predeterminada. Todo lo que necesita hacer es evaluar los números en lepton_array en el código que enumeró y buscar números por encima de cierto umbral. Tendrá que experimentar para ver qué umbral se necesita. También puede encontrar que el umbral tendrá que cambiar dependiendo de la temperatura ambiente; puede obtenerlo del Lepton usando el comando "SYS FPA Temperature Kelvin" (página 40 del Documento de descripción de la interfaz).


Este enlace me parece implicar que obtener temperaturas directas del Lepton no será fácil; parece que solo puede hacerlo si paga lo suficiente y firma un NDA.

http://www.flir.com/cvs/cores/knowledgebase/index.cfm?view=67336

Dicho esto, realmente no necesitas la temperatura real. Todo lo que necesita es apagar el AGC y no confundir las cosas con su propio código. Luego puede buscar temperaturas en algún umbral por encima de la temperatura del sensor.

Gracias por la respuesta. En realidad, no sé la temperatura, solo necesito poder saber cuándo alguien está en la imagen o no. Es por eso que quería deshabilitar la escala. He visto la parte del código que se ocupa del escalado y trataré de eliminarla. Sin embargo, ¿puede decirme qué significa AGC y cómo puedo controlarlo? Nunca antes había trabajado con hardware, así que perdónenme por mi ignorancia.
@IsabelAlphonse: he agregado a mi respuesta. A ver si eso ayuda.