kentaPtの日記

主に画像解析のことなどの勉強記録として投稿します。もし何かございましたら、github (https://github.com/KentaItakura)などからご連絡いただけると幸いです。

FLIRカメラで取得した熱画像をRGB画像に変換してみよう

1. はじめに

この記事では、FLIR社の赤外線カメラを用いて、取得した画像をRGB画像に変換する方法について述べます。ここでは、Pythonを用います。

赤外線カメラの詳細や、そのカメラの応用事例については以下のページが参考になりました。

atcl-dsj.com

本記事では、FLIR社製の赤外線カメラを用います。以下に、そのカメラの例を掲載します。

画像出展

www.flir.jp

FLIR社の赤外線カメラで取得した画像の例を以下に示します。温度によって、色分けされて示されています。この画像では、約22度から27度の範囲の温度が観測されています。

また、このカメラは、同時にRGB画像(色画像)を取得している場合が多く、この温度情報を持った画像をRGB画像に変換することができます。

その変換は、以下のFLIR Toolsと呼ばれるソフトウェアを用いて行うことができます。FLIR Toolsのインストール方法は以下のページをご覧ください。

flir-jp.custhelp.com

また以下の動画もわかりやすかったです。

www.youtube.com

このソフトウェアを用いて、以下のように、赤外線カメラの画像をRGB画像に変換することができます(以下の図はイメージです)。

また、各ピクセルの持つ温度の値もCSVファイルとして取り出すことができます。

しかし、FLIR Toolsでは、1枚ずつ、読み込み、作業をすることが必要で、大量の画像をまとめて、同じ処理を繰り返すことは難しいです。

そこで、本記事では、以下のレポジトリを用いて、赤外線カメラの画像を、RGB画像に変換し、さらに、温度情報のCSVファイルを自動保存する方法について述べます。

なお、本記事で用いている画像やコードも以下のレポジトリのサンプルを用いています。

github.com

また、上のレポジトリをフォークし、少しアレンジを加えたものが以下のページで、本記事で用いるコードや原稿はここにアップロードされています。

github.com

2. 環境構築について

2.1. Exif toolのダウンロード

exiftoolの概要やそのダウンロードの方法や使い方は以下のページに記載しています。

kentapt.hatenablog.com

exiftoolを用いて、赤外線カメラの画像のメタ情報を取得した時の結果の例です。取得したカメラのモデル情報なども記載されていることがわかります。

2.2. Pythonの実行環境について

まずは、このレポジトリのファイルをダウンロードします。

github.com

環境構築については、以下の2つの方法を紹介します。

  1. 必要なパッケージをインストールする
  2. 私の作ったanaconda環境をそのまま自分のPCに複製する

2の方法が簡単ですが、OSの違いなどで複製できない場合もあるため、1から説明します。

2.2.1. 必要なパッケージをインストールする

1. pythonのインストール

ここでは、python3.7を用いた。OSはWindowsを使用。

2. flirimageextractorのインストール

pip install flirimageextractor

にて、flirimageextractorをインストールする

pypi.org

3. その他、コードを実行しながら、必要なパッケージをインストールする

3章で示すコマンドにて、必要なパッケージを適宜インストールしてください。

2.2.2. この記事で用いたanaconda環境をそのまま自分のPCに複製する

さきほど述べたように、以下のレポジトリをダウンロード、または、クローンし、envフォルダの中にenv.ymlが存在していることを確認します。

github.com

以下のページにあるように、

conda env create -n 新たな環境名 -f ファイル名.yml

で、環境の複製が可能です。

qiita.com

今回の場合は、env.ymlが存在しているフォルダに移動し、

conda env create -n myEnv -f env.yml

を実行することで環境の複製を行うことができます。

3. メインコードの実行

3.1. exiftoolのパスの設定

demo.pyの35行目周辺に以下のコードがあります。ご自身のexiftoolのパスに置き換えてください。Dドライブではなく、Cドライブにexiftoolを置くほうがよいかもしれません。

exiftoolpath = "C:\Program Files (x86)\exif\exiftool.exe”

3.2. demo.pyの実行

demo.pyutilities.py のあるディレクトリで、demo.pyを実行すると、Test_Imagesフォルダ内の画像に対して、テストコードが実行されます。特に引数の設定は必要ありません。

私はAnaconda環境を用いているため、Anaconda Promptから実行しています。

このコードにより、熱画像からRGB画像およびCSVファイルの保存を行います。

また、以下のような画面が出てくれば、左の赤外線画像と右のRGB画像の順に、右クリックで、対応している点を選びます。できるだけ多くの対応点を選択し、エンターボタンを押してください。

赤外線カメラの画像と、そのRGB画像には、ずれ(offset)があり、補正をする必要があります。上で述べた、exiftoolsをつかって、そのoffset値を読み取ることもできるのですが、必ずしもぴったりといくわけではなく、手動による補正が必要な場合もあるようです。

これにより、FLIR社製の赤外線カメラの画像をRGB画像に変換し、さらに、その温度情報をCSVファイルに書き込むことができます。

4. まとめ

この記事では、Pythonを用いて、FLIRの赤外線カメラの画像からRGBおよび、温度情報を表す、CSVファイルを取得することができました。この方法を用いて、経時的に取得した大量の画像や、多視点からの画像を自動的に処理できそうです。