2025.03.25
How to : Bosonのisothermを使った温度表現
WEBマガジンイメージング

はじめに
撮影シーンの実際の温度を取得できるFLIR社のLWIRカメラBoson radiometryは、ピクセル毎に、そのピクセルが写している対象シーンの温度を得ることができます。通常は、PreAGCを利用してその温度データを取得するのですが、時に、データとしてではなく、「可視化」情報として、シーン内の温度分布を表現する必要があるかもしれません。
そのような場合は、Boson radiometry以降導入された、isothermという機能を用いて、シーンの温度情報を画像として表現することができます。
PreAGC・PostAGC画像とisotherm画像の違い
PreAGC
PreAGCは、BosonセンサがNUCにより均質化された状態で撮影したシーンを、16bit輝度階調で表現した14bitデータになります。画像は通常RGB各8bitで階調を構成していることと比して大幅に階調が細かくなりますので、それだけ、温度変化をなだらかな輝度変化として表現しています。センサが取得可能な遠赤外線放射すべてが含まれます。以下は、ここに掲載するため加工したものになります。
PostAGC
PostAGCはPreAGCが取得する「過剰な」データ領域、例えば、春先のシーンであれば、シーン内には、朝の最低気温5℃位から、日中であれば日光が当たることなどにより40℃位までの温度を持つ物体が混在するでしょう。しかし、それ以外の温度のものはほぼ存在しないでしょう。つまり、ダイナミックレンジすべてが常に使われているわけではありません。5~40℃に相当するデータを出力するピクセルに着目し、最小値~最大値間のみ使用して、8bit画像化することで、階調間のメリハリを得ようコントラストを向上させようという仕組みがAGCになります。以下は、PreAGCに掲載したスナップの後に撮影したPostAGC画像です。使用しているレンズのフォーカス距離より手前に腕があるため、ピンボケですが…。
AGCにはいくつか手法がありますが、単純に、最小値~最大値区間を256等分して8bitデータを割り当てた場合、それが5~40℃に相当するなら、隣り合う階調の温度差は35/256 = 0.14℃程度となります。つまり、0.14℃の差がないところは表現できない、24.9℃と25℃と25.1℃の区別はつかないであろう、ということになります。もし、撮影しているシーン内に、24.9℃~25.1℃の部分が多ければ、そこはすべて一色(同じ階調)で塗りつぶされることになります。
FLIRの場合、そのような、温度近隣の部分を可能な限り分別するために、5℃~40℃に相当する部分のヒストグラムを作成して、それに応じ、近隣の温度が少ない場合はまとめて1階層、多く立てこんでいるところは階層を多く割り当てて(分解能をあげて)、細かい温度の違いをできる限り表現しようとします。
isotherm
Radiometry機能を持つBosonであっても、PostAGC画像を用いるのであれば、AGCによって、何℃のものが階調いくつで表現されているかを一意に決定することはできません。すなわち、PostAGC画像からは、radiometry搭載機であっても温度を知ることはできません。PreAGC画像を参照しない限り温度情報は得られません。これでは、温度分布イメージを画像情報として知りたいアプリケーションにおいては、Boson外部に、PreAGCデータをもとに画像処理を行う必要がある、ということを意味します。
Boson radiometryおよびBoson+には、「isotherm」という機能が搭載されており、PreAGCデータをもとに、radiometry機であれば温度区間とそこに配置する疑似カラーを指定し、さらにその温度区間をどのように表現するかという指定を行うことで、Boson単体で、疑似カラー画像を作ることができます。次は、単純な設定だけを施して撮影したisotherm画像です。右側に温度分布を示すゲージがあります。
isothermにおける疑似カラーモード
isothermでは、温度区間における最低温度時の疑似カラーと、最高温度時の疑似カラーの2つを指定し、その区間での階調処理方法を指定します。例えば、最低温度として0℃、最高温度として5℃を指定した場合、0℃の時に黒、5℃の時に白、と指定すると、0~5℃区間を、黒~白の、指定の階調処理方法で処理して表現します。
区間
6種類設定できます。Isotherms controlsにおいて、Bosonが使用しているゲインモードの設定と、設定値の単位系(%、Counts = histgram数、Kelvin、Celsius、Fahrenheit)の指定を行います。実際のゲインモードとは同一ではありませんので、Bosonはhighゲインでセンスしていても、isothermにおいてはlowゲインレンジで表現することが可能です。
階調処理方法
階調処理方法には次の5種類が存在します。複数区間で同じ色が使用されないよう工夫されています。
Standard – PostAGC同様の処理(色選択、階調設定)を行います。
Linear RGB – 指定の2色間をリニアにRGBで表現します。
Linear HSV – RGB変化に際し、その補完をHSV (Hue Saturation Value)で行います。
Non-Linear – 2点間の値としての変化がリニアではないような配色を行います。
Single Color – 区間を単色で表現します。
Disable
6区間設定内容が合成された画像が出力となるので、まず、一区間のみ使用するところから順番に始めると良いだろうと思います。なお、複数区間でstandardを選択する場合、一番最初の区間で設定した疑似カラーと通しで使用されることに注意してください。
サンプル
次のスナップショットは、Highゲインでregion 2に、20~40℃のピクセルに、黄色からオレンジ色で標準階調を適用するように指示している例です。下側も上側もdisableしていますので、右側カラーゲージで、20~40相当区間にグラデーション表示されています。
サーマルカメラにおいて理解しておく必要があることとしては、空間が20℃であって、20℃に赤、と設定したら、画は真っ赤になる、ということです。物体にのみ着色されるわけではないことに注意してください。次の図においては、概ね、室温が20℃であるため、20℃に指定されている黄色(#FFFF00)が支配的な配色となっています。
次は、人物と推定される温度帯(を持つ部分)のみ、着色方法を変えた例です。すなわち、region 1の30~40℃帯のみLinear RGBで着色し、それ以外はstandardになっていますので、-273~150℃ほどまで、黒(#000000)~水色(#00FFFF)がPostAGC同様のグラデーションで着色されます。窓にはブラインドがかかっていますが、直射日光によって、温度が上がっているようです。
同じ設定で、指定の温度エリアを持つ「物体」が存在していなければ、次のようになります。Region 0および2は、この表現を行っています。