カメラパラメータファイルを作るまでの一連の作業を紹介します。
用途に合ったものを、かなり精緻に製作する必要があります。実験環境へ設置でき、基準テンプレートを光シートの前後方向へ正確にトラバースできる必要があります。
校正板の基準点画像はISCCで作ることができます。OHPシートのような伸縮性のない媒体にプリントし、治具に張り付ければ完成です。2つのタイプから選べます。
オーソドックスで汎用性の高いタイプです。
直行格子型の周囲に、ある規則(2種類あります)に則って円状に基準点を並べたものです。円筒内の可視化で壁面近傍の精度を高めます。
基準点の密度は、解析精度に直結します。安易に減らせば精度は極端に下がります。逆に、必要以上に高密度にしても意味はなく、作業も大変になります。
が必要条件です。
配列規則上、意味ある位置には、それと判るマークを選んでおくと良いでしょう。これは解析精度とは無関係です。
ISCCでは、多用途に利用できるよう、いくつかのパターンから選べるようになっています。
撮影された基準点プレートの画像を見ただけで、
と、あとで非常に助かります。
シート光の位置を基準に、前後数箇所ずつプレートを移動させて、都度撮影します。その間、カメラは絶対に不動です。
一般的なステレオ計測での撮影方法を目安として示します。
撮影すべき位置と枚数については、「シート光の位置を含めること」意外は任意ですが、解析精度に直結するので注意してください
実験環境によってはやむを得ず、次のような撮影になることもあり得ます。
カメラパラメータは、カメラごと個別に定義されます。2台のカメラで撮影する枚数や位置が異なっても構いません。もっと言えば、基準点配列が異なっていても構いません。
カメラのピントの合う範囲に注意してください。校正板を光シートの前後に配置したとき、基準点がボケて撮影されてはダメです。
ここで出てくる、“奥行き方向z=何ミリ” という表記は、カメラパラメータの計算で使用されます。カメラパラメータを定義するために使用される座標系を「カメラパラメータ座標系」と呼んでいます。(ただ考えやすいようにそのようにしているだけのことなのですが)原点の位置が、シート光の上に規定されている点に注意してください。
カメラ校正板の撮影では、レーザ光を使うことはできません。別途用意した照明器具で基準テンプレートに光を当てて撮影します。
実験環境では、この光の入れ方が難しいことがあります。下に例を示します。
プレート前面に、均一に、明るくなり過ぎないように調整します。
ISCCを用いたカメラ校正作業の実際がどのようなものなのか、流れを見ていきましょう。
実験で使用したカメラ校正板の基準点配列の規則を、ISCCに教えてあげます。
直交格子型であれば、「縦と横のドットの間隔(距離)」をGUI上で指定するだけです。単位は mm です。カメラパラメータ座標系を決める要素です。
これで準備完了です。
画像を読み込んで、それらの「奥行き方向z」の位置を指定します。
この情報は、撮影した時に必ず、「画像ファイル」と「奥行き方向の位置」を対応付けて記録しておかなければなりません。単純にファイル名として記しておくのが最も簡単だと思います。
撮影した校正板画像で、基準点がどこにあるのかを指示します。これが「基準点抽出」と呼ばれる作業です。
校正板上にある基準点は、実際には面積を持ちますが、カメラ校正で必要な情報は「点」です(基準点像の重心)。
この行程により、画像内の基準点像の画素座標[単位:pixel]が決定します。
歪みが強かったり、光の反射によって判別しにくい場合もあるので、慎重に指定します。
ISCCには、強力な自動抽出機能が用意されています。この機能を有効に使えるような画像を撮影することが理想的です。
次に、抽出した基準点像の画素座標に、物理座標[単位:mm]を割り振ります。これが「ナンバリング」と呼ばれる作業です。
この作業は、実際には、物理座標そのものを個別に指定するのではなく、各点にインデックスを割り当てていく “番号付け” の作業になります。この作業工程が「ナンバリング」と呼ばれるのはそのためです。
カメラ校正板の基準点は、特定の規則に従って配列されています。直交格子型の校正板であれば、縦横方向の格子点の間隔[mm]が決められているわけです。その情報は、既にこの項の最初(第3.1項)で、ISCCに指定しました。
点の間隔が決められているので、あとは、原点(0,0)と縦横の正方向さえ決まれば、その点の物理座標は自動的に決まります。この原点と方向を決める作業を「ナンバリング開始点の指定」と呼びます。
この原点が、「カメラパラメータ座標系」の(X,Y)原点になります。Z原点は「シート光の位置」です。そのように第3.2項で指定しました。
ナンバリング開始点を指定し、自動ナンバリング機能を用いれば、ほとんどのケースで、すべての基準点像が一瞬でナンバリングされます。
部分修正が必要になることもあります。ISCCでは、手動でナンバリングを行うこともできるようになっています。
【参考】ナンバリングは手動でも行えます。
このようにして、画像内の基準点像の位置[pixel]と、それに対応する物理座標[mm]のペアをたくさん用意することが、カメラ校正作業の実際です。
あとはISCCがいろいろ面倒な計算をしてくれて、カメラパラメータなる数値情報をはき出してくれます。ファイルへ保存すれば、カメラパラメータファイルの出来上がりです。
カメラパラメータの良し悪しは、その収束性(残差)によって評価します。計算ログの最後に情報が提供されます。
参考情報として、“良い” カメラパラメータとして扱ってよいと思われる “残差の目安” を示しておきます。
Columnカメラパラメータの「残差」ってなに?
カメラパラメータの精度評価に使われる指標として「残差;Residual error」がありますが、これはいったいどのような値なのでしょうか。
当該のカメラパラメータで、ナンバリングされている基準点の物理座標を投影し、「投影先画素座標」を算出します。一方、基準点の画素座標は既知(既知画素座標)です。理論的には「投影先画素座標」と「既知画素座標」は、一致するはずですが、実際には両者の間にわずかな誤差が生じます。
この誤差について、平均、標準偏差、最大を計算したものが、「残差情報」としてカメラパラメータの計算ログの最後に記述されます。
ちなみに、“Number of diverged points” とは、「発散した点の数」という意味で、“「投影先画素座標」が画像内に収まらなかった点の数” を表しています。
ここまでの作業では、作成したカメラパラメータが “正しい” かどうかはチェックしていません。残差は単に収束性を確認しているだけで、当該のカメラパラメータが業務的な目的に合致しているものであるかどうかはチェックしていません。ナンバリングが正しく行われているかどうか、つまり、X、Y軸の方向や、連続した番号付けがなされているか、などについては、実際に画像を逆投影してみないと判断できません。
確認は、「奥行き方向z=0mm」の校正板画像を逆投影して行います。
この絵のように、歪んで撮影されている原画像(左)が、「歪みのない画像」(右)へ変換されることを確認します。
次に示す画像は、不適切な逆投影画像です。右上と左下が歪んでいます。基準点の不足などによるものでしょうか、原因を追究し、再作成する必要があります。
このような確認を、すべてのカメラパラメータに対して行います。カメラの数だけ「奥行き方向z=0mm」の逆投影画像が作られます。
すると、どうでしょう、すべて逆投影画像に表れる基準点は、見事に重なるはずです。実験精度や、カメラパラメータの計算精度の違いにより、若干重ならない部分があるかもしれませんが、原理的にはピタリと重なります。つまり、
ことが確認できます。 この原理が、ステレオPIVの解析処理を、2成分PIVのそれをシームレスに拡張するだけで行えるようにしているわけです。
Column照明位置ズレとは?
実験には誤差が “つきもの” です。ここでは、実際のシート光の位置(平面)と、カメラ校正用のプレートの位置のズレ について。
このズレを「照明位置ズレ」と呼んでいます。このズレは、ステレオPIVの精度に少なからぬ影響を及ぼします。
ISCCには、このズレをソフトウェア的に補正する機能が用意されています。詳しくは 「照明位置ズレ」とは? を参照ください。
カメラパラメータファイルはバイナリ形式なので、その内容を直接確認することはできません。そのため、ISCCに用意されているブラウザを使用します。
カメラパラメータそのものの情報だけでなく、残差情報も閲覧できます。また、ISCCを操作して設定した基準点情報や、逆投影範囲なども保存されていることが分かります。
[ 関連リンク ]
[ タグ ]
ISCC/カメラパラメータ/残差/照明位置ズレ/基準点抽出/ナンバリング/逆投影/基準テンプレート/カメラ校正板