Lepton® 3.1RとLepton UWに歪み除去を適用する方法
1 はじめに
赤外線(IR)Lepton 3.1RおよびLepton UWは、それぞれ95°°の広視野角(WFOV)および160°°のWFOVレンズを使用します。樽型歪みはWFOVレンズによって生じ、画像の中心が周辺部よりもわずかに大きくなります。これにより、周辺部では直線が曲がっているように見えます。樽型歪みは、多くの画像処理用途では望ましくありません。このアプリケーションノートでは、OpenCV組み込み機能を使用して、Lepton 3.1RおよびLepton UW出力に歪み補正(デワープ)を適用する方法について説明します。
2 画像歪み
2.1 概要
WFOV レンズを使用すると、撮像装置はより大きな範囲の画像をキャプチャーできますが、歪みが生じ、物体が変形したように見えます。一般的に、カメラには放射状と接線状の2種類の歪みがあります。放射状歪みとは、直線が中心から内向きまたは外向きに曲がる歪みで、接線歪みとは、レンズが画像面に対して傾斜し、画像が歪んでいるように見える歪みです。レンズの歪みを修正するには、カメラをキャリブレーションして変換マトリックスを計算し、カメラの画像平面へのマッピングを修正します。

図1. 放射状歪み(左)および接線歪み(右)
キャリブレーション手順は、Lepton 3.1RとLepton UWの間で数学的にわずかに異なります。レンズが異なるため、画像化する幾何学的歪みは異なります。どちらも放射状の歪みを持つように見えますが、Lepton 3.1R画像は直線的な境界線で構成され、Lepton UWは魚眼効果として一般的に知られている円形の境界線を持っています。極度に歪んだ境界線のため、Lepton UWの直線にシーンのコンテンツをマッピングすることは、より複雑です。レンズタイプに対応するさまざまな歪みモデルが、この区別を補正するためのキャリブレーションに組み込まれています:Lepton 3.1R用の広角の直線歪みモデルとLepton UW用の魚眼歪みモデル。
2.2 デワープ変換の適用
OpenCVの手法を使用してレンズの歪みを修正するためには、カメラは歪みをモデル化するためのテストパターンをキャプチャーすることでキャリブレーションされます。IRカメラを使用してキャリブレーションパターンをキャプチャーするのは簡単ではないため、カメラの歪みを特徴付ける以下のデフォルトマトリックスを使用することが推奨されます。キャリブレーションパターンのキャプチャー方法に関する簡単なガイドは、セクション 2.3 に記載されています。

図2. カメラマトリックス
これらのマトリックスは、入力画像とともに引数画像としてカメラと画像間の平面マッピングを修正するために次のOpenCV組み込み関数に渡されます。デモンストレーション用のPythonのサンプルコードは、セクション2.4に記載されています。
Lepton 3.1R:
Lepton UW:

カメラマトリックスと新カメラマトリックスがあることに注意してください。両者とも固有のカメラパラメータを表します。唯一の違いは、カメラマトリックスが元の固有のカメラパラメータを定義するのに対し、新カメラマトリックスが元のカメラマトリックスをスケーリングおよびシフトすることです。歪み解除機能で新カメラ マトリックスを指定しなければ、デフォルトでカメラ マトリックスを使用します。このマトリックスは、入力と同じIFOVを持つ直線画像を出力します。直線を取得するためのトレードオフとして、入力画像の角にあるいくつかのピクセルが失われます。上記の全ピクセルバージョンの新カメラマトリックスを適用すると、入力からすべてのピクセルを保持するオプションが利用できますが、境界の周りに黒いピクセルが新たに発生します。図3および4は、サンプル入力と起こり得る出力を示しています。
![]()
図3. LEPTON 3.1R - オリジナル(左)、直線出力(中央)、全ピクセルバージョン出力(右)
![]()
図4. LEPTON UW - オリジナル(左)、直線出力(中央)、全ピクセルバージョン出力(右)
2.3 カメラキャリブレーション
OpenCVウェブサイトでは、キャリブレーションプロセスの詳細な説明を行いサンプルアプリケーションコードを提供しているため、このアプリケーションノートでは詳細を網羅していません。ドキュメントは、https://docs.opencv.org/3.4/d4/d94/tutorial_camera_calibration.htmlで入手できます。
セクション2.2で紹介したように、IRでキャリブレーションパターンキャプチャーを取るのは簡単ではありません。IRカメラキャリブレーションの効果的なキャプチャーを行うには、以下のガイドに従ってください。
1. セットアップ
- サーマルチェッカーボードの表示には適していないため、円形グリッドのキャリブレーションパターンを使用します。非対称または対称の円グリッドが機能します。
- 8x8円形グリッドを推奨します。
- 段ボールに接着され、高エネルギー出力ライトを短時間照射するか日光に照らされたキャリブレーションパターンの用紙印刷で熱コントラストを作り出すことができます。
2. 撮影
- キャプチャには、少なくともLepton 3.1Rの6x6円形グリッドと、Lepton UWの4x4円形グリッドが表示されるようにします。
- WFOVにより、画像の境界付近の一部の円がぼやける場合があります。
- 円形グリッドの各キャプチャは、FOVの一部のみを占める必要があります。
- キャプチャのコレクションは、FOVのほとんどの領域にまたがる必要があります。つまり、中心付近の円形グリッドのキャプチャを1または2、FOVの境界の周囲のキャプチャを8から10にします。
- 合計10~12回のキャプチャで最適のキャリブレーションが提供され、それ以上のキャプチャは有利ではありません。

図5. 中央(左)、右下(中央)、中央下(右)のLEPTON 3.1Rキャリブレーションパターンキャプチャの例

図6. 中央(左)、右下(中央)、中央下(右)のLepton UWキャリブレーションパターンキャプチャの例
2.4 サポート
サンプルスクリプトLepton_Dewarp_example.py1はこちらでダウンロードできます。
テクニカルサポートについては、FLIRサポートセンターhttp://support.flir.comをご覧ください。
