新しいアプリにコロナ対策の機能(New apps against COVID-19)

Blog

Thermal Cam Boson

Raspberry PI Zero W image

サーマルカムにコロナ対策の機能を追加中

空港や施設でサーモグラフィ画像で感染者を選別している映像があちこちに出ていますが、サーマルカムを使って実践する場合の注意点があります。

皮膚温度の測定ですが、絶対温度については測定誤差があり正確な温度の測定は出来ません。

先ず高熱を出した感染者を見つけ出す為のポイントを理解下さい。

顔の皮膚表面の温度は体温より低くなりますが、環境温度(測定場所の気温)によって変わります。気温10度前後では皮膚温度と体温との相関温度の誤差が大きく微熱の感染者との区別が難しくなります。

赤外線サーモグラフィによるパンデミック対策事例の紹介(大田二郎著)の資料に詳しく書いています。

測定誤差を少なくする為には気温20度~25度が良いそうです。

注意点としては季節によりますが、暑くなり過ぎると汗をかくので気加熱で皮膚の温度が下がってしまいます。

環境温度による体温と皮膚温度関係はThermal CamのLepton及びBOSONには使えない係数でした。むしろセンサーの周囲温度が大きく影響しています。

結論からいうとLeptonは体温の測定には不向きです。唯一の方法は毎回基準となる人の体温と皮膚温度を測定毎に校正する事である程度数値が安定しているようです。

この機会に温度表示の精度と誤差についてご説明します。

W&Tサーマルカムについて

現在使用しているセンサーはFLIR LeptonFLIR BOSONです。

私達のシステムについて温度精度に関するご質問をに対する参考にして頂ければと思います。

まずセンサーからのデータは14bit(デジタル)なので温度に反応する制度はセンサー自体の仕様書の誤差と同じです。

2番目に放射温度計の基礎知識も必要です。

センサーは遠赤外線の8~14μmの波長を利用しています。

対象物の温度が同じでも表面の状態や材質でも測定する温度は違います。

その際に重要になるのが放射率です。

放射率=吸収率+反射率+透過率

同じ温度の物質でも反射したり透過したエネルギーの分だけ温度が低くなっています。

水は0.920.98、コンクリートは0.94、ガラスは0.750.95、木は0.500.80

refer to 5 FACTORS INFLUENCING RADIOMETRIC TEMPERATURE MEASUREMENTS by FLIR Systems, Inc.

理論上、空気は0で1の吸収率は黒体と呼ばれるものです。

refer to 5 FACTORS INFLUENCING RADIOMETRIC TEMPERATURE MEASUREMENTS by FLIR Systems, Inc.

 

実際は100mで(気温35度湿度80%)20%減衰します。

放射率の誤差と温度の誤差は計算では補正出来ないので注意して下さい。
詳細は放射率を調べて見てください。
センサーの感度の誤差と放射率で赤外線メーカーは±3から±5の温度誤差と書いています。
FLIRの赤外線センサーは感度としては0.05k(0.05度)
2種類のモデルがあり一つは熱電堆(熱を電気に変えるセンサーのみ)で放射温度測定機能なしと熱電堆に放射温度測定機能付きです。

熱電堆は絶対温度が測れません。その為、熱電対の温接点と冷接点をを使って補正して絶対温度に近づける様に放射温度測定機能付きがあります。(自動で温度補正されたでデータが出力される。)

Lepton3.0の場合(放射温度測定機能無し)は代わりにチップ温度と冷接点温度がi2cで確認出来るようになってます。なのでソフトで補正する必要がある。
BOSONも冷接点温度は出力出来ます。
ですから温度表示についての注意点を良く理解してください。
  1. 先ずセンサー自体の誤差
  2. センサー部品が受ける環境温度
  3. 理論上空気は放射率0ですが、実際には気温35度で相対湿度80%の場合センサーから対象物まででエネルギーは20%減ってしまいます。
  4. 対象物の放射率
  5. センサーと測定対象物との角度

refer to 5 FACTORS INFLUENCING RADIOMETRIC TEMPERATURE MEASUREMENTS by FLIR Systems, Inc.

 

6.測定物の測定範囲

refer to 5 FACTORS INFLUENCING RADIOMETRIC TEMPERATURE MEASUREMENTS by FLIR Systems, Inc.

 

何が言いたいかと言うと、この赤外線センサーは相対温度を測る機器を理解してください。
上記の注意点から温度はあくまで参考と考えるべきです。
もちろん放射温度測定機能付きのセンサーを環境温度に影響受けにくい様に設計したケースの入れると温度表示はより真値に近づきます。

ご参考までに

今回ソフトウェアを作るにあったって氷や沸騰するお湯と常温の水を測定した温度で校正しています。恒温槽などの設備がないのでどこまで正確な測定が出来ているかは分かりませんが、温度表示はあくまで参考にして下さい。
上記注意点を全て正確に校正(補正)出来てればさらに真値に近くと思います。
今後より正確な温度に改変されたい方は下記を参考にして下さい。
正直センサー単体の個体差もあり校正してもキリはないと思います。LEPTONの場合、
その係数は
0.56
459.67
1.8
0.05872
472.22999
32.0
read_lepton_frame();
     
     for (int frame_number = 0; frame_number < 60; frame_number++){     
       for (i = 0; i < 82; i++)
       {
          p=lepton_image[frame_number][i] ;
          if(i >= 2){ 
              if(p < min) min = p;
              if(p > max) max = p;
          }
          if(i==0) lepton_image[frame_number][i]=(p & 0x00ff);
       }
     }     
     diff = max - min;
     diff = diff / 256.0f;
     if(diff < 0.56f) diff = 0.56f; // 0.66

        lepton_command(SYS, 0x10 >> 2 , GET); //センサー温度i2cから取得
        float aux=read_data() ;

        float fpatemp = aux/ 100.0f;
        float fpatemp_f = fpatemp * 1.8f - 459.67f;

       Serial.println(fpatemp-273.15);
        value_min = ((0.05872 * (float)min - 472.22999f + fpatemp_f));
        value_min= (value_min - 32.0f) / 1.8f;    
        value_max = ((0.05872 * (float)max - 472.22999f + fpatemp_f));
        value_max = (value_max - 32.0f) / 1.8f;

       Serial.println(value_min);
       Serial.println(value_max);
BOSONの場合も 多項式で計算しました。(Polynomial)
37.4度 39.2度 41.2度 42.5度 43.5度 43.9度 44.2度 44.4度 45.7度 38度 42.9度 45度
35.33554 35.12206 34.94778 35.41229 34.83185 35.17665 35.5 34.39114 36.01798 36.51264 35.46224 35.31798

校正はそれぞれの現場で体温と気温を測ってこの表を参考にすると良いでしょう。

 

コメント

タイトルとURLをコピーしました