実用的な知識

サーマル画像の処理

赤外線マッピングの概要

主に産業用途で、プラントの異常を迅速に検出し、メンテナンスの目標を明確にして運転効率の向上を図るために、赤外線イメージングを使用した赤外線マップの活用事例が増えています。

赤外線カメラの構造は通常のRGBカメラとは大きく異なります。まず、ほとんどの赤外線カメラの解像度は、最新のRGBカメラよりもはるかに低いものになります。また、長波長の赤外線を通すために、特殊な光学部品が必要です。また、多くの赤外線カメラにはシャッターが付いていますが、これは撮影には使用されず、センサーの内部キャリブレーションにのみ使用されます。

画像の撮影にかかる時間はカメラセンサーの「応答時間」に大きく依存しますが、多くの赤外線カメラではこの応答時間がRGBカメラの一般的な露光時間よりも長くなります。また、赤外線カメラの感度は時間の経過とともに変動(ドリフト)し、センサー全体でムラが生じやすい傾向があります。

赤外線プロジェクトに使用できる画像の形式

Pix4Dmapperでは、このセクションで説明されている推奨事項に従うことで、撮影された赤外線画像を処理できます。

形式
説明
RJPG
RJPG(ラジオメトリックJPG)画像は、画像のメタデータにラジオメトリックデータが埋め込まれた.jpg画像です。これはPix4Dmapperでサポートされている独自の画像形式です。RJPGは赤外線画像に推奨される画像形式です。
.tiff
.tiffグレースケール画像は、Pix4Dmapperでサポートされていますが、重要なラジオメトリックデータが含まれない可能性があります。
.jpg
Pix4Dmapperでは.jpgの赤外線画像がサポートされていますが、この画像形式はお勧めできません。.jpg画像は温度のカラーマップであるため温度の視覚的表現のみが含まれ、RAW値が含まれません。
追加情報:動画から抽出した赤外線画像を処理することもできますが、.jpg画像よりも.tiff画像の方が好ましいという理由と同じ理由から、この画像形式はお勧めできません。また、動画は画像のジオローケーションを含んでいることが少なく、静止画よりも圧縮されていることが多いという問題もあります。さらに、赤外線動画では画像のオーバーラップが過剰になることがあり、再構築にノイズが混入する可能性もあります。

サポートされている赤外線カメラと赤外線カメラが撮影する温度

センサーの推奨事項

Pix4Dmapperによってシーンを再構築するのに十分な視覚的内容を画像に含めるために、以下のものを使用することをお勧めします。

  • 解像度が640x480以上のセンサー。これより解像度が低いセンサーはサポート対象外で、通常はキャリブレーションできません。
  • 焦点距離の長いレンズを使用することも可能ですが、焦点距離の短いレンズ(9mm)を使用すると、画像に写る範囲が広くなります。

サポートされているカメラ

標準でサポートされている統合ソリューションとして、以下のカメラをお勧めします。

カメラモデル
絶対温度
相対温度
DJI Zenmuse XT
x
DJI Zenmuse XTR
x
FLIR Vue Pro
x
FLIR Vue Pro R
x
senseFly ThermoMAP
x
Aeryon Labs FLIR board
x
Workswell WIRIS 2nd Gen 640
x
Micasense Altum(マルチスペクトル+赤外線)
x
senseFly Duet T(RGB+赤外線)
x

FLIRのVue ProやTau2センサーをベースにしたカスタムカメラもサポートされています。カスタムカメラ統合の詳細については、こちらのセクションを参照してください。Duet-T画像の処理方法の詳細については、こちらsenseFlyの記事を参照してください。

重要:サポートされているカメラでプロジェクトを作成する際には、 「ピクセルサイズ」「焦点距離」の値が正しいことを確認してください。カメラの仕様については、カメラメーカーにお問い合わせください。カメラモデルのパラメータを変更する方法については、 How to use the Editing Camera Model Optionsを参照してください。

ラジオメトリック赤外線カメラ

名前に「R」が付いているカメラは、ラジオメトリックキャリブレーション済みのカメラです。このようなカメラを使用すると、画像のすべてのピクセルの絶対温度を記録できます。FLIR Vue Pro RとZenmuse XTRはどちらもラジオメトリックキャリブレーション済みのモデルで、絶対温度を記録します。画像はRJPG(ラジオメトリックJPG)形式で保存され、各ピクセルに温度データが埋め込まれた.jpg画像になります。

重要: ラジオメトリックキャリブレーション済みのカメラを使用した場合でも、照明の違いやシーン内のサーフェスの特性(材質、凹凸など)が熱放射率に影響するため、1つのプロジェクト内で確実に比較できるのは類似したサーフェスのみです。温度の絶対値が局所的に測定した値からどの程度異なるかは、カメラの特性に依存します。このような偏りはソフトウェアだけでは補正できず、ハードウェアレベルで対処する必要があります。現実的には、地上での局所的な温度測定値を基準として使用するのが最もシンプルで効果的な解決策です。

赤外線画像の撮影方法

赤外線プロジェクトで撮影したシーンをより良く再構築するために、画像取得時に以下のことを実行することをお勧めします。

  • オーバーラップ率を非常に高くする。前面と側面の画像のオーバーラップ率を90%とする。
  • 640x480以上解像度で画像を撮影する。
  • 画像がぶれないようにする。飛行速度を上げると画像がぶれることがあります。

赤外線データセットの処理方法

赤外線プロジェクトの処理

1. 新しいプロジェクトを作成します。詳細については、プロジェクトの作成方法 -Pix4Dmapper‐を参照してください。
正確な画像のジオローケーションを含む垂直画像データセットの場合は、処理テンプレート「Thermal Camera」を選択します。詳細については、Processing Options Default Templatesを参照してください。

重要:以下の場合は別の処理テンプレートを適用できます。
  • senseFlyのThermoMAPカメラで撮影したプロジェクトの場合は、処理テンプレート「ThermoMAP Camera」を選択します。詳細については、Processing Options Default Templatesを参照してください。
  • 画像のジオローケーションを含まない斜め画像データセットまたは垂直画像データセットの場合は、処理テンプレート「3D Models」を選択します。詳細については、Processing Options Default Templatesを参照してください。

2. 「ピクセルサイズ」「焦点距離」の値が正しく設定されていることを確認します。メニューバーで「プロジェクト」>「画像プロパティエディター...」をクリックし、「選択されたカメラモデル」セクションで「編集...」をクリックします。カメラモデルを変更する手順については、How to use the Editing Camera Model Optionsを参照してください。
3. 「処理中」バーで「開始」をクリックし、処理を開始します。赤外線指数マップがステップ「3. DSM、オルソモザイクおよび指数」で生成されます。

Micasense Altumのデータセットの処理

Micasense Altumは、青、緑、赤、レッドエッジ、近赤外(NIR)、熱赤外(LWIR)の6つのバンドを備えたカメラです。赤外線センサーの解像度は160×120ですが、高解像度のマルチスペクトルセンサーを搭載しているため、リグとして正常に画像を処理できます。

1. 画像をアップロードし、agマルチスペクトルテンプレートを使用します。
2. LWIRピクセル値を摂氏温度に変換するには、Thermal_ir=(lwir/100)-273.15という数式を使用します。

Micasenseのウェブサイトで、このカメラのデモデータセットが提供されています。

赤外線画像とRGB画像の両方を使用したデータセットの処理(3Dメッシュ/モデルの品質向上)

通常、赤外線カメラはRGBカメラに比べて解像度が低いため、3Dモデルの品質も低くなります。そこで、高解像度のRGB画像を使用して詳細な3Dモデル(メッシュ)を計算し、その上に赤外線テクスチャを投影します。これにより、最終的な赤外線3Dモデルの品質が大幅に向上します。赤外線画像とRGB画像の両方を使用してデータセットを処理するには、次の手順を実行します。

1. 上記の手順に従って、赤外線データセットに対してステップ「1. 初期処理」を実行します。
2. 別のPix4DプロジェクトでRGBデータセットに対してステップ「1. 初期処理」を実行します。
3. RGBプロジェクトと赤外線プロジェクトをマージします。プロジェクトのマージの詳細については、プロジェクトの融合方法を参照してください。
4. メニューバーで「処理」>「処理オプション」をクリックします。「2. 点群およびメッシュ」を選択し、「詳細」タブを選択します。「点群」および「メッシュ幾何学」画像グループの「Thermal IR」チェックボックスがオフに、「group1」チェックボックスがオンになっていることを確認します。「メッシュ構造」画像グループの「Thermal IR」チェックボックスがオンに、「group1」チェックボックスがオフになっていることを確認します。詳細については、Menu Process > Processing Options... > 2. Point Cloud and Mesh > Advancedを参照してください。

追加情報:この最後のステップでは、RGB画像から点群が生成され、このRGB点群からメッシュ幾何学が作成され、赤外線画像を使用してテクスチャリングが行われます。ただし、このマージはメッシュにのみ影響し、他のアウトプットには影響を与えません。

赤外線アウトプットの表示方法

rayCloudでの3D点群の表示

1. 「表示」> 「rayCloud」をクリックして「rayCloud」を開き、左側のサイドバーの「レイヤー」セクションにある「点群」チェックボックスをオンにして3D点群を読み込みます。詳細については、Menu View > rayCloud > Left sidebar > Layers > Point Cloudsを参照してください。
2. 表示:(オプション)左側のサイドバーの「点群」レイヤーで「プロパティを表示」を選択し、「シェーダー」「スクリーンに調整された区画、赤外線」または「球体点、赤外線」に変更します。

rayCloudでの3Dテクスチャメッシュの表示

1. 「Thermal Camera」処理テンプレートを使用して3Dテクスチャメッシュを出力する場合は、メニューバーで「処理」> 「3Dメッシュ構造を作成」をクリックします。詳細については、Menu Process > Generate 3D Textured Meshを参照してください。
2. 「表示」> 「rayCloud」をクリックして「rayCloud」を開き、左側のサイドバーの「レイヤー」セクションにある「三角メッシュ」チェックボックスをオンにして3Dテクスチャメッシュを読み込みます。詳細については、Menu View > rayCloud > Left sidebar > Layers > Triangle Meshesを参照してください。
3. 表示:(オプション)左側のサイドバーの「三角メッシュ」レイヤーで「プロパティを表示」を選択し、「シェーダー」「赤外線」に変更します。

指数計算機での赤外線指数マップの表示

1. 「表示」> 「指数計算機」をクリックして「指数計算機」を開きます。
2. サイドバーの「指数マップ」セクションで赤外線データを含むバンドを選択します。

メモ:赤外線データを含むバンドは画像の撮影に使用したカメラによって異なります。
ZenmuseXTRおよびFLIR Vue Pro R
Zenmuse XTRまたはFLIR Vue Pro Rで作成したプロジェクトでRJPG(ラジオメトリックjpg)画像を使用している場合は、バンドから絶対温度が直接取得されます。RJPGの詳細については、こちらの セクションを参照してください。
senseFly ThermoMAP
絶対温度を記録します。senseFly ThermoMAPカメラを使用して作成したプロジェクトでは、絶対温度指数マップを取得するために、 「温度[°Cまたは°F]」指数を使用する必要があります。この指数は、ThermoMAPプロジェクトでは自動的に読み込まれ、 「0.01*thermal_ir - 100」という数式で計算されます。
ZenmuseXTおよびFLIR Vue Pro
相対温度が計算されます。
Workswell WIRIS 2nd Gen 640
最新のWirisカメラは相対温度を記録します。グレースケールの.tiff画像を使用して処理を行い、 「0.04*thermal_ir - 273.15」という数式で指数を作成して絶対温度を表示することをお勧めします。
Micasense Altum LWIR
.tiff画像を使用して赤外線反射率マップを生成します。絶対温度を表示するには、 「Thermal_ir=(lwir/100)-273.15」という数式で指数を作成します。

3. 表示:(オプション)サイドバーの「カラーマップおよび詳細」セクションで、クラスの数を32に増やし、ドロップダウンリストから「等間隔」を選択します。Menu View > Index Calculator > Sidebar > 4. Color Maps and Prescriptionを参照してください。

連続した画像間の赤外線強度のばらつきを修正する方法

温度が時間の経過とともに揺れ動くように見える場合、それはカメラの特性によるものであり(通常、非冷却カメラではこのような挙動が見られます)、ソフトウェアでは補正できません。赤外線カメラは、一般的にはシャッターを閉じた状態で撮影することで自動的に輝度を再キャリブレーションする機能を備えています。温度が均一なサーフェスの赤外線画像を撮影しても、画像では温度にムラが現れます。カメラ特有のパターンが現れて、時間とともに大きく変動することもあります。

詳細はカメラメーカーにお問い合わせください。

非常に長い処理時間を短縮する方法

ステップ「1. 初期処理」の速度を左右する要因は主に2つあります。

  • 過剰なオーバーラップ:プロジェクト内のいくつかの画像が同じ場所から撮影されている場合、処理時間が指数関数的に増加します。時間ではなく距離に基づいてカメラをトリガーする飛行計画アプリ(Pix4Dcaptureなど)を使用することをお勧めします。または、ドローンが長時間同じ場所でホバリングしていた場合は、手動で画像を削除することをお勧めします。
  • カメラモデルの最適化:カメラの初期値が最適な値からかけ離れている場合、処理が遅くなることがあります。ピクセルサイズと焦点距離が正しく入力されていることを確認してください。How to use the Editing Camera Model Optionsを参照してください。

rayCloudに真っ白または真っ黒な画像が表示され、キャリブレーション成功率が低い場合の対処法

rayCloudに真っ白または真っ黒な画像が表示され、プロジェクトのキャリブレーション成功率が非常に低い場合、それは使用した赤外線カメラがPix4Dのデータベースに登録されていないことを意味しています。このような場合は、次の2つの対処法を取ることができます。

  • 推奨される対処法は、Pix4Dのデータベースに追加できるように、データセットのサンプルを当社に送っていただくことです。
  • もう1つの対処法は、処理を開始する前に、プロジェクトを閉じてテキストエディターで.p4dファイルを開き、<tangentialT2>の行と<cameraModelSource>の行の間に次の行を追加することです。
    <pixelValue pixelType="uint16" min="-1" max="-1"/>

「pixelType」はインプット画像のデータ型と一致している必要があります。たとえば、浮動小数点データや8ビットデータを使用する場合、上記の例では機能しません。

赤外線センサーのカスタム統合を使用する方法

カスタム統合を使用する場合は、Pix4Dmapperに必要なメタデータを画像のEXIFタグに統合する必要があります。Pix4Dmapperによって読み取られるすべてのEXIFタグを記載しているこちらのドキュメントEXIF and XMP tag information read by Pix4D Desktopに従ってください。

トラブルシューティングのガイドライン

赤外線データセットの処理がうまくいかない場合やキャリブレーションができない場合は、以下の点を必ず確認してください。

  • 画像が均一すぎないか。
  • カメラモデルの「ピクセルサイズ」「焦点距離」が正しく設定されているか。ピクセルサイズがEXIFから正しく読み込まれていないことがあります。このパラメータはメーカーによって提供されています。カメラモデルオプションの詳細については、How to use the Editing Camera Model Optionsを参照してください。
  • 画像のジオローケーションと方向が正しく、明らかな不備がないか。画像の位置と方向の詳細については、How to select/change the images geolocation and orientationを参照してください。
  • 「Thermal Camera」処理テンプレートを使用しているか。処理テンプレートの詳細については、Processing Options Default Templatesを参照してください。

上記の点を確認しても、まだプロジェクトをキャリブレーションできない場合や、プロジェクトが極端に歪んでいる場合は、以下の処理オプションを順次適用してみてください。

  • 内部カメラパラメータの最適化方法を「初期設定」にします。「初期設定」処理オプションの詳細については、Menu Process > Processing Options... > 1. Initial Processing > Calibrationを参照してください。
  • カメラモデルの歪みパラメータ(放射状歪みR1、R2、R3と接線歪みT1、T2)をゼロに設定します。カメラモデルオプションの詳細については、How to use the Editing Camera Model Optionsを参照してください。
  • それでもキャリブレーションできない場合は、その他のキャリブレーション方法(「標準」、「代替」)を使用して実行してみてください。詳細については、Menu Process > Processing Options... > 1. Initial Processing > Calibrationを参照してください。Thermal and Thermomapテンプレートでは、代替キャリブレーションパイプラインが使用されます。このパイプラインの前提条件は、データセットに斜め画像が含まれていないこと、地形が平坦で均質であることです。この前提条件に基づいてキャリブレーションを行うため、方向が35度以上の画像はキャリブレーションされません。標準キャリブレーションでの処理を試してください。
  • 赤外線データセットとして好ましいのは、オーバーラップ率が非常に高い(約95%)データセットです。ただし、同じ視点から撮影された画像でないこと、画像の中心点が異なっていることが重要です。Tau2(ビデオカメラ)などのカメラでは、特にドローンがホバリングしている場合、fpsが高すぎて同じ場所で多くの画像が撮影されることがあります。このような場合は、手動でデータセットの一部のフレームを削除する必要があります。