高速ラベリング処理  天体データ

巨大な画像データに対するラベリング処理例    (2010/05/05)


はじめに

画像処理用のサンプルデータとして、遠方を捕らえた天体写真はバックが均一で十分に暗く(輝度処理
を含む)、識別がし易いと同時に大量の対象物を含み、また、多くは円形に近い形をしているが、複雑な
形状として認識される場所を多く含むので、格好の材料です。 銀河を捉えた多くの画像があるが今回は、
中心の銀河ではなく周辺の星を計測の対象として、PIA12832 (original)を 処理対象の画像として使用
します。
PIA12832
は、6666 x 6666 画素のデータとして公開されていますが、これを 12000 x 12000 画素に拡大し、
十分に輝度が低い部分を全て 0 に置き換えた画像を、 24ビットのBMPファイル(celestial.zip) に変換
して検証用の画像にしまた。

BMP画像のラインプロファイルを表示するツールの使い方は、" lineprofile.exe の使い方の詳細"を
参照してください。
 
オリジナルの画像では、輝度の低い部分で、バラつきがあるが、事前に0に輝度変換した画像がテスト用
画像であり、下の図はその画像のラインプロファイルで、変換されているの事が直接確認できる。
このラインプロファイルを表示するツールでは、画面の下が、X座標方向の輝度0を表し、画像との境界部
が、輝度値255を表している。また、画面の右端が、Y軸方向の輝度0を表し、画像との境界部が輝度値
255を表している。


評価用の画像データ(celestial.zip)



ラベリング用プログラムに関して

このプログラムは、ラベリング処理のみを高速で行うCUI のプログラムです。 BMPのラインプロファイルを
表示するプログラムと、ラベルデータを擬似カラーBMPファイルに変換するソフトと共に提供されています。
このプログラムでは、輝度が0の画素を背景の画像、それ以外の値を持つ画素は対象物のを構成する
画素と判断します。 対象物は、画像の縁か、背景で囲まれている画素の集合体です。
"ラベリ ングファイルの構造" に関しては、リンク先を確認してください。 画像データの構造に関しては
"BMPファイル の構造" のリンク先を確認してください。
この画像内の対象物数は 400,000 個を超えてしまいますが、ミッドレンジクラスのパソコンを使用して
も、2秒程度の処理時間で、ラベリングが完了します。 ただし、プログラム自体は、画像データ(411MB)
の読み込みとラベルデータ(549MB)の書き出しの時間を含み、1分程度の処理時間が必要となります。
ここで提供されているラベリングソフトウエアは、読み込める画像の大きさが144,000,000 画素
制限されています。 これは、12,000x12,000 画素の画像であり、A4 のデータを 1200 dpi で取り込んだ
時のサイズにほぼ匹敵します。 通常の使用では支障のない大きさと考えています。

md5sum: f59160fa150bf8c06408d80789c5c41a CrystApp.zip


ラベリング用プログラムのセットアップ方法

celestial.zip をダウンロードし、zip ファイルを展開します。 CrystApp.zip もダウンロードし、zip ファイルを
展開します。 (展開方法は"zipファイルの展開方法" を参照して下さい) 以下のファイルが展開されますので、
各自の作業用の場所に、Labeling.exe、Label2colorBMP.exe、lineprofile.exe をコピーしてください。
(先にダウンロードし展開した celestialディレクトリにコピーするのが適切と考えます)

      README.txt                           このファイル
      使用許諾.txt              &          提供プログラムの利用条件
      MD5SUM.txt                           ディレクトリは以下のファイルの MD5 値
      tutorial.bat                         チュートーリアル用のバッチファイル
      tutorial                             チュートーリアルで使用するディレクトリ
      bmp                                  チュートーリアルで使用する画像の格納ディレクトリ
      bmp/sample.bmp                       チュートーリアルで使用する画像
      bmp/sample2.bmp                      チュートーリアルで使用する画像
      Label2colorBMP                       ラベルデータから擬似カラーBMPファイルの作成
      Label2colorBMP/Label2colorBMP.exe    擬似カラーBMPの作成ツール
      Label2colorBMP/Label2colorBMP.txt    擬似カラーBMPの作成ツールの概要
      Labeling                             高速ラベリングソフト
      Labeling/Labeling.exe                ラベリングツール
      Labeling/Labeling.txt                ラベリングツールの概要
      LineProfile                          BMP ファイルビュ-ワー
      LineProfile/lineprofile.exe          BMPファイルの表示ツール
      LineProfile/lineprofile.txt          BMPファイルの表示ツールの概要

      sample                               サンプルプログラム集 (CUIプログラム)
      sample/Clipping                      BMPファイルを読み込み、指定された値以下の輝度の画素を
      sample/Clipping/clipping.c           C言語のソースコード    
輝度0に置き換える
      sample/Clipping/clipping.exe         画像の輝度値をクリッピングするツール
      sample/Clipping/clipping.txt         画像の輝度値をクリッピングするツールの概要
      sample/LogicalOperation              BMPファイル間で論理演算を行い結果をBMPファイルとして保存する
      sample/LogicalOperation/bmp32lop.c   C言語のソースコード
      sample/LogicalOperation/bmp32lop.exe 画像(間)で Not、And、Or、Exor の論理演算を行うツール
      sample/LogicalOperation/bmp32lop.txt 画像(間)で Not、And、Or、Exor の論理演算を行うツールの概要
      sample/Measurement                   ラベリングデータから対象物の固有値を算出し出力する(text、BMP)
      sample/Measurement/measurement.c     C言語のソースコード
      sample/Measurement/measurement.exe   ラベルデータから面積、重心を計算し、擬似カラーBMPにプロット、
      sample/Measurement/measurement.txt   画像計測用ソフトの概要   
計 測ファイルとして保存
      sample/rmLargeObj                    ラベルデータから指定値以上の大きさの対象物を削除する
      sample/rmLargeObj/rmLargeObj.c       C言語のソースコード
      sample/rmLargeObj/rmLargeObj.exe     巨大対処物除去ツール
      sample/rmLargeObj/rmLargeObj.txt     巨大対処物除去ツールの概要
      sample/rmSmallObj                    ラベルデータから指定値以下の大きさの対象物を削除する
      sample/rmSmallObj/rmSmallObj.c       C言語のソースコード
      sample/rmSmallObj/rmSmallObj.exe     微小対象物除去ツール
      sample/rmSmallObj/rmSmallObj.txt     微小対象物除去ツールの概要
      sample/showBMPh                      BMPファイルのヘッダー部の値を視覚化しする
      sample/showBMPh/showBMPh.c           C言語のソースコード
      sample/showBMPh/showBMPh.exe         BMPファイルヘッダー表示ツール
      sample/showBMPh/showBMPh.txt         BMPファイルヘッダー表示ツールの概要



プログラムの実行関して

プログラムは、CUIのプログラムなので、"コマンドプロンプト"等をひらいて直接コマンドを起動して
下さい。 GUIから使用する場合は、事前にバッチファイルを作成するか、ショートカットを作成し、
ショートカットのプロパティを変更する事で、対処できます。
コマンドラインから実行する場合は、次のようになります。

15:12:45.65 > dir
   
:
2010/05/02  13:28       432,000,056 celestial.bmp
2010/05/01  16:20            49,664 Labeling.exe
    :
15:13:32.52 > Labeling.exe celestial.bmp

'celestial.bmp' Loading....
Loading the image data was completed.

Labeling Done!  426020 objects were found.

File 'labelingCryst.lbl' is being written.
File 'labelingCryst.cfg' is being written.

15:13:47.85 >
  画像中に 426,020 個の対象物が見つかりました。
  OSの キャッシュが効果的に機能し、処理自体が、15秒で完了しています。
15:13:47.85 > dir
    :
2010/05/02  13:28       432,000,056 celestial.bmp
2010/05/01  16:20            49,664 Labeling.exe
2010/05/05  15:13                54 labelingCryst.cfg
2010/05/05  15:13       576,000,000 labelingCryst.lbl
    :
15:13:58.88 >



ラベルデータから擬似カラーBMPを作成します。擬似カラーは、隣接する画像に極力
似た色の割り当てを行わず。また、重複した色を使わないように考慮されています。
擬似カラーとラベルデータは、可逆変換で、いつでもラベル値から擬似カラーの値を
知る事ができますし、擬似カラーの値からラベル値を知る事が出来ます。

15:16:02.92 > Label2colorBMP.exe labelingCryst labelingCryst.bmp

15:16:55.79 > dir
    :
2010/05/02  13:28       432,000,056 celestial.bmp
2010/05/01  16:
20            42,496 Label2colorBMP.exe
2010/05/01  16:20            49,664 Labeling.exe
2010/05/05  15:16       576,000,054 labelingCryst.bmp
2010/05/05  15:13                54 labelingCryst.cfg
2010/05/05  15:13       576,000,000 labelingCryst.lbl
2010/05/01  16:20            31,744 lineprofile.exe
    :
15:18:26.17 >

仕様変更により、対象物数が変わります。
本来削除されていた、輝度が (3,0,0)、(0,1,0)、(0,0,8) ...の低輝度の画素が、新たに
ラベリングの対象に加わるため。
仕様変更前
>
> Labeling.exe celestial.bmp

'celestial.bmp' Loading....
Loading the image data was completed.

Labeling Done!  426020 objects were found.

File 'labelingCryst.lbl' is being written.
File 'labelingCryst.cfg' is being written.


>

仕様変更後
> Labeling.exe celestial.bmp

'celestial.bmp' Loading....
Loading the image data was completed.

Labeling Done!  483195 objects were found.

File 'labelingCryst.lbl' is being written.
File 'labelingCryst.cfg' is being written.


>


ラベリング後、擬似カラー化した画像
(サイズが大きすぎて、ブラウザーで表示できない為)
仕様変更前: PC.zip 13,215,197 縮小版
仕様変更後: PCNew.zip 14,696,724 縮小版



擬似カラーBMPをビュワーで確認します。
15:18:26.45 >lineprofile.exe labelingCryst.bmp


[ 擬似カラー画像 (原寸大 PseudoColor.bmp 576,000,054 Byte):  PseudoColor.zip 13,215,197 Byte ]
ラベルに関する詳細は、 "1B ラベリンファイルの構成" を参照下さい。


ソフトに関して

使用したアプリケーションソフト
Labeling.exe
lineprofile.exe
Label2colorBMP.exe



終わりに

画像処理では、対象物にラベリングされていると、効率的に処理できる事が多くありますが、この
ラベリング処理自体が大変時間のかかる処理であったり、巨大な画像を処理の対象に出来ない
場合があったりし、強力な手段であるにもかかわらず、十分に利用されているとは思えないので、
今回ここで、ラベリングプログラムを提供する事にしました。

ダウンロード頂いた、CrystApp.zip の中には、もう少し詳しいチュートリアルが同胞されています
ので併せてご確認下さい。 tutorial.bat を起動して頂ければ、簡単に見る事が出来ます。
ご意見やお問い合わせは、vision@cryst.tv まで宜しくお願いします。

最後になりましたが、皆様のお役に立てれば幸いです。





go to TopPage go to CategoryTop