Thermal Cam Boson
サーマルカムにコロナ対策の機能を追加中
空港や施設でサーモグラフィ画像で感染者を選別している映像があちこちに出ていますが、サーマルカムを使って実践する場合の注意点があります。
皮膚温度の測定ですが、絶対温度については測定誤差があり正確な温度の測定は出来ません。
先ず高熱を出した感染者を見つけ出す為のポイントを理解下さい。
顔の皮膚表面の温度は体温より低くなりますが、環境温度(測定場所の気温)によって変わります。気温10度前後では皮膚温度と体温との相関温度の誤差が大きく微熱の感染者との区別が難しくなります。
赤外線サーモグラフィによるパンデミック対策事例の紹介(大田二郎著)の資料に詳しく書いています。
測定誤差を少なくする為には気温20度~25度が良いそうです。
注意点としては季節によりますが、暑くなり過ぎると汗をかくので気加熱で皮膚の温度が下がってしまいます。
環境温度による体温と皮膚温度関係はThermal CamのLepton及びBOSONには使えない係数でした。むしろセンサーの周囲温度が大きく影響しています。
結論からいうとLeptonは体温の測定には不向きです。唯一の方法は毎回基準となる人の体温と皮膚温度を測定毎に校正する事である程度数値が安定しているようです。
この機会に温度表示の精度と誤差についてご説明します。
W&Tサーマルカムについて
現在使用しているセンサーはFLIR LeptonとFLIR BOSONです。
私達のシステムについて温度精度に関するご質問をに対する参考にして頂ければと思います。
まずセンサーからのデータは14bit(デジタル)なので温度に反応する制度はセンサー自体の仕様書の誤差と同じです。
2番目に放射温度計の基礎知識も必要です。
センサーは遠赤外線の8~14μmの波長を利用しています。
対象物の温度が同じでも表面の状態や材質でも測定する温度は違います。
その際に重要になるのが放射率です。
放射率=吸収率+反射率+透過率
同じ温度の物質でも反射したり透過したエネルギーの分だけ温度が低くなっています。
水は0.92~0.98、コンクリートは0.94、ガラスは0.75~0.95、木は0.50~0.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%減衰します。
熱電堆は絶対温度が測れません。その為、熱電対の温接点と冷接点をを使って補正して絶対温度に近づける様に放射温度測定機能付きがあります。(自動で温度補正されたでデータが出力される。)
BOSONも冷接点温度は出力出来ます。
- 先ずセンサー自体の誤差
- センサー部品が受ける環境温度
- 理論上空気は放射率0ですが、実際には気温35度で相対湿度80%の場合センサーから対象物まででエネルギーは20%減ってしまいます。
- 対象物の放射率
- センサーと測定対象物との角度
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の場合、
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);
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 |
校正はそれぞれの現場で体温と気温を測ってこの表を参考にすると良いでしょう。
コメント