サーマル画像の処理
本記事の内容
赤外線マッピングの概要
赤外線プロジェクトに使用できる画像の形式
どのPix4Dソフトウェアで赤外線画像を処理できますか?
サポートされている赤外線カメラと温度
DJI Mavic 3T Enterprise、Mavic 2 Dual Enterprise Advanced、Zenmuse H20T、Zenmuse H20N などのサーマルカメラ画像を処理する方法
赤外線画像の撮影方法
赤外線データセットの処理方法
赤外線アウトプットの表示方法
連続した画像間の赤外線強度のばらつきを修正する方法
非常に長い処理時間を短縮する方法
rayCloudに真っ白または真っ黒な画像が表示され、キャリブレーション成功率が低い場合の対処法
赤外線センサーのカスタム統合を使用する方法
トラブルシューティングのガイドライン
赤外線マッピングの概要
主に産業用途で、プラントの異常を迅速に検出し、メンテナンスの目標を明確にして運転効率の向上を図るために、赤外線イメージングを使用した赤外線マップの活用事例が増えています。
赤外線カメラの構造は通常のRGBカメラとは大きく異なります。まず、ほとんどの赤外線カメラの解像度は、最新のRGBカメラよりもはるかに低いものになります。また、長波長の赤外線を通すために、特殊な光学部品が必要です。また、多くの赤外線カメラにはシャッターが付いていますが、これは撮影には使用されず、センサーの内部キャリブレーションにのみ使用されます。
画像の撮影にかかる時間はカメラセンサーの「応答時間」に大きく依存しますが、多くの赤外線カメラではこの応答時間がRGBカメラの一般的な露光時間よりも長くなります。また、赤外線カメラの感度は時間の経過とともに変動(ドリフト)し、センサー全体でムラが生じやすい傾向があります。
赤外線プロジェクトに使用できる画像の形式
PIX4Dmapperでは、このセクションで説明されている推奨事項に従うことで、撮影された赤外線画像を処理できます。
どのPix4Dソフトウェアで赤外線画像を処理できますか?
- PIX4Dmapper および PIX4Dengine は、推奨される撮影条件に従って取得されたすべての種類の赤外線画像(RJPG、.tiff、.jpg)を処理できます。
- PIX4Dfields は、Micasense Altum / Altum-PT および Sentera 6X カメラのサーマルバンドを処理し、実際の温度値を算出します。
-
PIX4Dfields および PIX4Dreact は、多くのドローンで取得された .jpg 形式の赤外線画像を処理し、温度を視覚的に表現したカラーマップを提供します。
- PIX4Dmatic は赤外線画像の処理をサポートしておらず、RGB画像のみ対応しています。
- PIX4Dcloud / PIX4Dcloud Advanced 単体では、rjpeg形式およびグレースケールの赤外線画像の処理をサポートしていません。ただし、グレースケールのJPG画像をPIX4Dcloud上に直接アップロードすることは可能です。しかし、結果に放射補正誤差、スケールの不整合、キャリブレーションの不正確さが生じる場合があるため推奨されません。この場合は PIX4Dmapper を使用して画像を処理することをお勧めします。
PIX4Dmapper および PIX4Dcloud を使用して赤外線画像を処理する方法については、以下のセクションで詳しく説明しています。
PIX4Dcloud / PIX4Dcloud Advanced と PIX4Dmapper を使用した赤外線画像の処理
PIX4Dcloud は PIX4Dmapper と組み合わせて使用することで、rjpeg やグレースケール形式の赤外線画像をクラウド上で処理できます。そのためには、まず PIX4Dmapper でプロジェクトを作成し、PIX4Dcloud にアップロードして処理を行います。
-
PIX4Dmapper でプロジェクトを作成し、処理テンプレートとして Thermal Camera(赤外線カメラ) を選択します。
-
PIX4Dcloud にプロジェクトをアップロードします(プロジェクト > プロジェクトファイルをアップロード...)。
-
処理が完了したら、プロジェクトファイルをダウンロードします。
-
PIX4Dmapper または 他社製ソフトウェア(QGIS や ArcGIS Pro など)で結果を表示します。
追加情報: 赤外線プロジェクトを PIX4Dcloud で処理した場合、PIX4Dcloud 上では結果が表示されません。これは、反射率マップがクラウド上での可視化に対応していないためです。
ただし、処理結果をダウンロードしてローカル環境で確認することができます。
サポートされている赤外線カメラと赤外線カメラが撮影する温度
センサーの推奨事項
PIX4Dmapperによってシーンを再構築するのに十分な視覚的内容を画像に含めるために、以下のものを使用することをお勧めします。
- 解像度が640x480以上のセンサー。これより解像度が低いセンサーはサポート対象外で、通常はキャリブレーションできません。
- 焦点距離の長いレンズを使用することも可能ですが、焦点距離の短いレンズ(9mm)を使用すると、画像に写る範囲が広くなります。
サポートされているカメラ
標準でサポートされている統合ソリューションとして、以下のカメラをお勧めします。
FLIRのVue ProやTau2センサーをベースにしたカスタムカメラもサポートされています。カスタムカメラ統合の詳細については、こちらのセクションを参照してください。Duet-T画像の処理方法の詳細については、こちらのsenseFlyの記事を参照してください。
ラジオメトリック赤外線カメラ
名前に「R」が付いているカメラは、ラジオメトリックキャリブレーション済みのカメラです。このようなカメラを使用すると、画像のすべてのピクセルの絶対温度を記録できます。FLIR Vue Pro RとZenmuse XTRはどちらもラジオメトリックキャリブレーション済みのモデルで、絶対温度を記録します。画像はRJPG(ラジオメトリックJPG)形式で保存され、各ピクセルに温度データが埋め込まれた.jpg画像になります。
DJI Mavic 3T Enterprise、Mavic 2 Dual Enterprise Advanced、Zenmuse H20T、Zenmuse H20N などのサーマルカメラ画像を処理する方法
Pix4Dのソフトウェアでは現在、Mavic 3T Enterprise、Matrice 30T、Mavic 2 Dual Enterprise Advanced、Zenmuse H20T、Zenmuse H20N などの一部DJI製サーマルカメラで取得された赤外線画像から、温度値を含む反射率マップを生成することができません。これは、これらのカメラで取得される赤外線画像のメタデータ構造が他の一般的な赤外線カメラと異なり、Pix4Dソフトウェアが利用する FLIR SDK では rjpeg 画像として正しく認識できないためです。その結果、ソフトウェアはこれらの画像を赤外線画像としてではなく、RGB画像として処理します。
Pix4Dのソフトウェアでこれらの画像を正しく処理するには、サードパーティ製ソフトウェアを使用して rjpeg 画像を温度情報を保持した TIFF ファイルに変換し、その後Pix4Dのソフトウェアで処理する方法が回避策として有効です。詳細については「Thermal images conversion」をご参照ください。
PIX4Dmapper、PIX4Dfields、または PIX4Dreact でサーマル画像(.jpg形式)を処理する場合、それらは標準的なRGB画像として扱われます。生成されたオルソモザイクは可視化目的でのみ利用可能であり、.jpg形式には温度データが保持されないため、マップ上の任意のオブジェクトやピクセルから温度値を抽出または測定することはできません。
赤外線画像の撮影方法
赤外線プロジェクトで撮影したシーンをより良く再構築するために、画像取得時に以下のことを実行することをお勧めします。
- オーバーラップ率を非常に高くする。前面と側面の画像のオーバーラップ率を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を参照してください。
赤外線アウトプットの表示方法
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. サイドバーの「指数マップ」セクションで赤外線データを含むバンドを選択します。
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が高すぎて同じ場所で多くの画像が撮影されることがあります。このような場合は、手動でデータセットの一部のフレームを削除する必要があります。