Video Astronomy

ToUcam Proの画像を処理する −Registax編−

伊賀祐一

2003/03/01


Registaxとは

図1 Registax

RegistaxはオランダのCor Berrevoets氏を中心として開発されているフリーウェアの天文ソフトウェアです。月面や惑星の画像処理に特化したソフトウェアで、ToUcam Proで撮影した惑星のビデオ画像の処理には欠かせないものです。多くの特徴を持っていますが、その一部の機能を紹介します。

  • ビデオ画像としてAVI形式のファイルを読み込むことができます。画像サイズは1024x1024以下ならば2500フレームまでを処理することができます(ファイルサイズは2GBまで)。
  • BMP、JPEG形式の連番ファイルを300枚まで読み込むことができます。
  • FITS形式は1枚だけを扱うことができます。
  • 惑星像のスタックのために、惑星の自動配置(Align)を行います。
  • さらに最適化(Optimisation)を行うことで、画像の評価を行います。
  • 惑星像のスタック(Stack)を自動的に行います。
  • ウェーブレット変換による画像処理(Image Processing)を行います。

Registaxの入手先
Registaxダウンロードサイト(Aberrator)
http://aberrator.astronomy.net/registax

現在のバージョンはv1.1.0です。


ToUcam Proのビデオ画像での実際の処理
ToUcam Proで撮影した惑星のビデオ画像(AVI形式)を実際にRegistaxで処理を行ってみましょう。

ここで紹介するRegistaxの使い方は、私個人が解釈した方法です。正しい使い方から外れている可能性もありますので、正式なRegistaxのマニュアルをお読みください。Registaxのそれぞれの処理のページでHelpボタンで表示されます。また、開発者自身の図入りの解説がダウンロードサイトに公開されています。

日本語のマニュアル
新川勝仁氏が原作者の許可をいただいて日本語訳を公開されています。
http://bird.zero.ad.jp/~zba03198/alpo/Registax/registax_J.html
panel1_J.rtf入力の選択
panel2_J.rtfフレームの位置合わせ
panel3_J.rtfフレームをスタックする
panel4_J.rtfImage Processing画像処理
panel5_J.rtf一般(準備中)

マニュアルはリッチ・テキスト形式(RTF)なので、IE以外では直接には読めない可能性があります。一度ファイルに保存してから、Microsoft Wordなどで開いてください。

(1) AVIファイルの読み込み(Select Input)
Select InputタブのSelect Inputボタンをクリックすると、ファイル選択ダイアログが表示されます。ファイルタイプをAVIにして、処理するAVIファイルを指定します。ファイルを開いた直後は、最初のフレームが表示されます。


図2 AVIファイルの読み込み

※RegistaxでAVIファイルが読み込めない。
このような時は以下の点をチェックしてみて下さい。

  • AVIのフレーム数が2500を超えている(テストしてみると厳密には2466フレームまででした)
  • AVIファイルのサイズが2GBを超えている。
  • 音声ストリームが入っている(ToUcamではCapture AudioをOFFにしましょう)
  • キャプチャした際のAVIのCODEC(圧縮方法)がインストールされていない。
  • (2) フレームの選択

    図3 フレームの選択
    Show frame listのチェックをONにすると、フレームリストのダイアログが表示されます。ここで処理に用いるフレームを選択します。

    フレーム番号をクリックすることで、指定されたフレームが表示されます。ここでは、明らかにシーイングが劣化している固まったフレームや、途中で雲がかかったようなフレームなどを取り除いていきます。私はあまり厳密にフレームの選別を行っていません。できるだけ多くのフレームをスタックすることが良い結果を生んでいますし、アライン処理時に、フレーム画像の評価を行って評価の高い順序に整列してくれるからです。ただし、雲がかかって暗くなった画像は逆に評価が高くなるようで、そのような画像だけを取り除いています。

    フレームリストのチェックを一つずつ外すのは大変ですので、複数選択の方法をマスターしてください。あるフレームを左クリックして反転させ、SHIFTキーを押した状態でスペースキーを押すか、フレームリストをダブルクリックします。これで複数のフレームのチェックを反転することができます。

    フレームの選択が終了したら、最も良いフレームをクリックして移動しておきます。この指定したフレームにアラインは行われます。また、最適化ではこの指定フレームとの誤差の距離を表示します。

    最後に、ToUcamはカラー画像ですから、Colour Processingのチェックを忘れないようにしましょう。

    (3) 画像の特徴部分の指定
    アラインを行うために、重ね合わせの評価を行う画像の領域を指定します。Alignment Boxから適当なサイズを選択します。衛星などの小さな対象は64ピクセルで十分ですが、木星などでは256ピクセルを指定します。

    画像表示ウィンドウにカーソルを移動すると、ピクセルサイズに応じた矩形が表示されます。対象の画像領域を囲むように移動して、左クリックします。画面はAlign Framesタブに自動的に切り替わります。領域の指定に失敗したら、Select Inputタブに戻って、再度領域指定を実行します。木星などでは256ピクセルでも入りきらないと思いますが、最もコントラストに高い領域を設定してください(私は周辺部よりも、木星の中心部を指定しています)。


    図4 画像の特徴部分の指定

    (4) 画像の位置合わせと最適化(Align Frames)
    Align Framesタブでは、各フレームの画像の位置合わせ(Align)と最適化(Optimisation)を行います。この処理はひたすら時間がかかります。位置合わせだけ行う方法もありますが、私は同時に最適化も実行しています。このためにOptionsのAuto-OptimisationのチェックをONにして、Align & stackボタンを実行します。

    Filtersで指定する2個のパラメータはマニュアルでは重要のようですが、私はデフォルト値をそのまま使っています。まだ、きちんと理解できていないということですが、とりあえず処理はできています(実際、低空の火星ではmisalignがでて、本当はパラメータをいじらないといけないようです)。

    重要なことは、画面右上のFiltersの項目でQuality estimateの値を決めることが位置合わせに必要です。このためには、Registration propertiesダイアログの右上に表示されるQuality値が0.1-0.2の範囲になるように、Quality estimateのピクセル値を調整します。大気の状態でずいぶん変化しますので、毎回チェックすることを忘れないようにします。


    図5 画像の位置合わせと最適化

    (5) 画像のスタック(Stack Frames)
    画像の位置合わせと最適化が終了すると、画像のスタック(Stack)処理が自動的に行われます。misalignが起こらなければ、全フレームがスタックされます。

    自分でStack Framesタブで戻ってきた際は、Stackボタンをクリックすることで、スタックが実行されます。


    図6 画像のスタック

    (6) 画像のスタックの設定
    スタック時に、どれだけのフレームを使用して処理を行うかを、Stackgraphの2個のスライドバーで設定を行います。このグラフは、画像の評価の高い順番にフレームが左から並んでいます。

    マニュアルではQuality-Cutoffでスタックに使用する画質の下限を指定し、Difference-Cutoffでフレームと参照画像との差異の割合を指定できるように書かれています。私は現在の所、Quality-Cutoffだけを使用して、何種類かのスタックフレーム数の画像を作成して比較しています。スライドバーの動きだけでは細かな設定はできませんが、矢印キーで1フレームの設定が可能です。


    図7 画像のスタックの設定

    (7) 画像処理(Image Processing)
    スタック処理が終了すると、いよいよ画像処理を行います。Registackのスタック処理も秀逸ですが、ウェーブレット(Wavelet)変換による画像処理は凄いとしか言いようがありません。従来の画像復元などと比較して、はるかに良質の画像を生み出してくれます。でも実際にスタックされた画像だけでは、枚数が多いので滑らかになってはいますが、とても報告できるレベルではありません。

    ウェーブレット変換では、画像の空間周波数別に強度を調整することで画像処理を行います。空間周波数というのは、簡単に言えば小さな模様とか大きな模様とかを識別することです。この空間周波数の帯域を、Registaxではレイヤー(layer)と呼び、6個までのレイヤーを取り扱うことができます。これが右側に縦に並んでいるボタンに相当します。

    どのレイヤーにどの帯域(模様の大きさ)を割り付けるかが大切です。Wavelets layersではDyadicとLinearの2つの選択があります。Dyadicをチェックすると、レイヤーには1,2,4,8,16,32と2のべき乗値が固定で割り振られます。Linearの場合は、Initial(初期値)とStep(ステップ)でレイヤーに割り付ける値を変化させることができます。Initial=1,Step=1ならば1,2,3,4,5,6となり、Initial=1,Step=3ならば1,4,7,10,13,16となります。レイヤーのサイズは、強調する模様の大きさに相当し、小さな値は小さな模様の特徴部に、大きな値は大きな模様の特徴部に適用されます。しかし、サイズは対象となる惑星のサイズに依存し、使用する望遠鏡や合成Fによって異なります。

    それぞれのレイヤーの右側のボタンをクリックすると、そのレイヤーサイズでのプレビューが見られます。実際の惑星面でどの模様の特徴が見えるのか、プレビューが示してくれます。そのレイヤーのスライドバーを右にシフトすると特徴が浮かび上がってきます。この操作をそれぞれのレイヤーで繰り返します。あまり模様の特徴が出ないようならば、LinearにしてInitalとStepを変更してみます。

    私の場合はDyadicで行うことが多いのですが、これは参考程度に考えてください。


    図8 画像処理

    (8) ウェーブレット変換
    下図の木星の画像での処理を例として、ウェーブレット変換の処理を説明します。

    実際のパラメータの決め方
    右上のWavelet LayersをLinearにします。この場合は、その下のInitialとStepの入力が有効になります。Initial=1、Step=1としてみます。これでその下の6個のウェーブレット・レイヤーの値が1,2,3,4,5,6となります。

    上から順番に右のプレビューボタンをクリックします。ノイズが多いレイヤーは使いません。ノイズの少ないレイヤーでは、それぞれの空間周波数に応じた画像が見事に浮き出されます。このレイヤーのスライドバーを移動させて、パラメータを調整します。まずは大きく右に振って、その効果を確認してから、次第に値を下げていきます。どぎつい画像処理にならないように注意して、少し抑え目が良い結果を生みます。

    この時、画像がハイライトに飛んでなってしまいますので、画面の下のContrastの値を積極的に下げます。ウェーブレット・レイヤーを変更するたびに、コントラストも調整する必要があります。

    画像処理が思ったようにいかない場合は、Initial値とStep値を変えて実行します。それでも思った効果が出ないようなときには、Wavelet LayersをDyadicにしてみます。この場合は、6個のウェーブレット・レイヤーの値は2のべき乗(1,2,4,8,16,32)になります。

    ヒントになるかどうかは分かりませんが、気のついた点を挙げておきます。
    • 露出不足の画像だと、惑星の周辺にリング状の偽の模様が出やすい。
    • 露出オーバー気味だと、画像のハイライト部が白飛びしてしまう。
    • 実際に使うレイヤーは1つか、あるいは2つぐらい。

    図9 ウェーブレット変換

    最後に画像処理でできあがった画像の保存をSaveコマンドで行います。

    Stack Framesタブに戻ってスタックする枚数を変更して、Image Processingタブで画像処理を行うことを何回か繰り返します。

    (9) プロジェクトの保存と読み込み
    一連の処理をプロジェクトとして保存し、後でプロジェクトを読み込んで実行できる機能があります。ここまでに位置合わせ(Align)と最適化(Optimisation)、スタック(Stack)、画像処理(Image Processing)と、長時間の処理を行ってきましたが、これらの情報がファイルに保存できます。必ずプロジェクトの保存は行いましょう。保存したプロジェクトがあれば、後日にプロジェクトを読み込めば(Load)、たちどころにスタックされた画像までを呼び出すことができます。


    Registaxの処理時間
    とにかくビデオ画像はフレーム数が膨大であり、Registaxでの処理はとても時間がかかリます。ちなみにどれぐらいの処理時間を要するかを測ってみました。
    CPUメモリOS処理時間
    Pentium-II(300MHz)256MBWindows NT70分
    Celeron(366MHz)128MBWindows 9860分
    Pentium-4(1.7GHz)512MBWindows 200010分
    Celeron(700MHz)196MBWindows ME80分?

    データ:750フレーム、Align/Optimisation/Stackまでの処理時間計測

    処理時間はCPU性能に依存するようです(Windows MEでの処理時間がCPUの割りに異常に長いようですが...)。速いCPUがあれば、何本ものビデオ画像を処理するのも苦痛ではないということでしょうか。

    最後に
    このページでは、Registaxの処理の一例を紹介しました。まだまだマニュアルをきちんと読んでいない事と経験不足から、充分な情報をお伝えできませんでした。誤った記述に気付かれた方、別な方法で処理をやっておられる方、情報をご提供ください。


    ToUcam Proのページへ戻る  月惑星研究会関西支部