高速ラベリング処理 天体データ
巨大な画像データに対するラベリング処理例 (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.
>
ラベリング後、擬似カラー化した画像
(サイズが大きすぎて、ブラウザーで表示できない為)
|
擬似カラーBMPをビュワーで確認します。
15:18:26.45
>lineprofile.exe labelingCryst.bmp
[ 擬似カラー画像 (原寸大 PseudoColor.bmp 576,000,054 Byte):
PseudoColor.zip 13,215,197 Byte ]
ラベルに関する詳細は、 "
1B ラベリンファイルの構成" を参照下さい。
ソフトに関して
使用したアプリケーションソフト
終わりに
画像処理では、対象物にラベリングされていると、効率的に処理できる事が多くありますが、この
ラベリング処理自体が大変時間のかかる処理であったり、巨大な画像を処理の対象に出来ない
場合があったりし、強力な手段であるにもかかわらず、十分に利用されているとは思えないので、
今回ここで、ラベリングプログラムを提供する事にしました。
ダウンロード頂いた、
CrystApp.zip
の中には、もう少し詳しいチュートリアルが同胞されています
ので併せてご確認下さい。
tutorial.bat を起動して頂ければ、簡単に見る事が出来ます。
ご意見やお問い合わせは、
vision@cryst.tv
まで宜しくお願いします。
最後になりましたが、皆様のお役に立てれば幸いです。