|




HotTopic 9: LPSによるALOS/PRISMデータのステレオ標定とDEM抽出の試行
作成日 2006年07月05日
印刷については、PDFファイル(3.3MB)をご利用下さい。
国産の地球観測衛星 ALOS (だいち)のサンプルプロダクトの公開が始まりました。 ALOS の3つのセンサー PRISM 、 AVNIR ?U、 PALSAR の各プロダクトをダウンロード可能になっていますが、手始めに IMAGINE/LPS9.0 に既存の機能を使用して PRISM のデータをインポートし、 LPS で標定(ステレオ実体視ができる状態にすること)するための手順を検証してみました。
使用したデータは以下のサイトにあるPRISMのレベル1B2Rというプロダクトです。これより低次のプロダクト1Aや1B1は複数のファイルに分かれていますが、1B2Rでは一つのファイルに結合されていて扱いが楽だからです。
なお、このデータは未較正のデータと言うことですので、精度は二の次と考え、あくまでもステレオ状態にしてDEM抽出をすることを目標としています。
IMAGINE/LPS9.0には各種衛星データに特化した専用のインポーターやLPSのセンサーモデルDLLが多数搭載されていますが、ALOSについては現時点ではまだ未対応ですので、汎用的なツールを使用します。インポートはGeneric Binaryインポーター、LPSセンサーモデルはGeneric Pushbroomモデルを使用することができます。
1.データのダウンロード
1)以下のダウンロードサイトにアクセスします。
http://www.eorc.jaxa.jp/ALOS/doc/jsproduct.htm
2)ダウンロードしたPRISMデータは「PSM_F_1B2R」というような名前のフォルダーになっており、様々な情報が含まれていますが、この中のIMG-*という名前のファイルが画像データですので、入力ファイルとしてこれを選択します。
2.Generic Pushbroomインポーターによるインポート
1) IMAGINE/LPS のアイコンパネルから Import アイコンをクリックし、 Type として Generic Binary を選択します。
2)ダウンロードした PRISM データは「 PSM_F_1B2R 」というような名前のフォルダーになっており、様々な情報が含まれていますが、この中の IMG-* という名前のファイルが画像データですので、入力ファイルとしてこれを選択します。
3)出力ファイルは適当な名称をつけます。(ここでは前方視を prism_f.img 、直下視を prism_n.img 、後方視を prism_b.img としました。)

4)OK ボタンを押すと Generic Binary インポーターのダイアログが起動します。

5)ダウンロードサイトには ALOS データのフォーマット解説書の PDF も置いてあります。これを参考にデータセットのファイルを DataView ( Tools | View Binary Data )で読んでパラメーターを見つけ、入力します。今回使用しパラメーターは以下の表のようなものでした。視線方向によりカラム数が異なる点に注意して下さい。
| |
直下視 |
前方視 |
後方視 |
| Data Format |
BIL(またはBSQでも可) |
| Data Type |
Unsigned 8bit |
| File Header Bytes |
15401 |
17000 |
17057 |
| Image Record Length |
15401 |
17000 |
17057 |
| Line Header Bytes |
34 |
| #Rows |
14000 |
| #Cols |
15303 |
16902 |
16959 |
| #Bands |
1 |
入力したらPreviewボタンで試してみると良いでしょう。
また Save Options で名前をつけてそれぞれ保存しておけば次の機会に使用できます。
6)OK ボタンを押すとインポートが行われ、最終的には以下のような画像が 3 枚できあがります。

3.処理の実行
1)IMAGINE/LPS のアイコンパネルから LPS アイコンをクリックし、 LPS プロジェクトマネージャーを起動します。
2)メニューから File|New を選択し、適当なフォルダーにブロックファイルを作成します。

3)幾何モデルとしてPolynomial-based PushbroomカテゴリーのGeneric Pushbroomを選択してOKボタンを押します。

4)ブロックの座標定義として、参照データと同じUTM53(GRS1980/JGD2000)を選択します。またバーティカルデータムとして、標高の定義であるWGS84/Tokyo(MRE)を選択します。

5)OKボタンを押して、ブロックのセットアップは終了です。
4.画像の登録
1)フレーム追加アイコン をクリックし、1.でインポートした3つの画像を選択し、OKボタンを押します。

2)Pry.のセルが赤くなっている場合はそのセルをクリックし、ピラミッドレイヤーの作成を行います。

5.センサーパラメーターの定義
1)フレームプロパティ表示アイコン をクリックしてフレームエディターを起動します。下の図ではタイトルバーにprism_b.imgと表示されていますので、後方視画像の設定になります。

2)New...ボタンをクリックし、PRISMのセンサーパラメーターを入力します。焦点距離は文献(2)を参考に1939mmとし、ピクセルサイズは正確な値を得ることができなかったため、焦点距離1939mmと地上分解能2.5m、軌道高度691.65kmから比の計算をして0.00701mmとしました。もちろんこの値は正確さを欠くと思いますが、無いよりは良いと考えます。

3)Model Parametersタブでは、このあと計算される外部標定パラメーターを決定する際の多項式次数を入力します。ここでは調整結果を見て値を変更する作業を繰り返し、試行錯誤的に決定しました。

4)OKボタンを押してダイアログを閉じ、Frame EditorのFrame Attributesタブでクロストラック方向(左右)およびアロングトラック(前後)の入射角とピクセルサイズを設定※します。

5)Frame EditorダイアログでNextボタンを押し、prism_f.imgおよびprism_n.imgについても同様に設定※します。
| |
直下視 |
前方視 |
後方視 |
| Side Incidence |
0 |
0 |
0 |
| Track Incidence |
0 |
23.8 |
-23.8 |
| Ground Resolution |
2.5 |
2.5 |
2.5 |
※Track Incidence は文献(2)、 Ground Resolution は(3)より得ました。
6)OKボタンを押してダイアログを閉じるとInt.セルが緑色になります。
6.GCPの使用
1) アイコンからPoint Measurement Toolを起動します。
2) アイコンをクリックして水平方向の参照GCPの取得元を選択します。ここでは25000分の1地図画像をXYの参照データに使用しました。(もちろんこのデータの精度では2.5m分解能のPRISMデータの処理には不十分ですが、今回は処理を走らせること自体が目的ですのでこれで十分と考えます。)
3)Use Viewer As Referenceのチェックボックスを有効にし、地図画像からリファレンスGCP(X,Y,Z)を、PRISMの各視線方向の画像データそれぞれからインプットGCP(X,Y)を取得します。またGCPのZ値としては、地図画像に記述されている高さの値をそのまま使用することにしました。ここでは全部で10点のGCPと4点の検証点(チェックポイント)を取得しました。

4) アイコンをクリックしてタイポイントを自動発生させます。陸上の部分におよそ満遍なくポイントが取得されましたが、右上の山岳地域では取れていなかったため、手動で2点追加しました。下図で赤い点がGCP、オレンジが検証点、緑がタイポイントです。

5) アイコンをクリックしてPointタブから、すべてのGCPに対して同じ3mの誤差を与え、Runボタンから調整計算を実行します。
調整結果は以下のようになりました。

検証点でのエラーは画像座標では1ピクセルに収まっていて非常に良好ですが、地上座標ではX方向に約9m、Y方向に約18Z方向に約4mとなり、使用したGCPのソースが25000分の1地図画像であることを考えても、やや大き目かも知れません。
6)AcceptボタンをクリックしてOKボタンでTriangulation Summaryダイアログを閉じます。
7)Point Measurement Toolのダイアログを閉じると、プロジェクトマネージャー上のフットプリントは以下のようになっています。Triangulation Summaryでも明らかなように、Y(南北)方向のエラーが大きくなっているようです。センサーパラメーターや軌道推定の多項式次数を検討する必要があるのかも知れません。

7.ステレオ表示
Stereo Analyst( )でステレオ表示し、標定結果を目視で確認すると以下のようになりました。

前方視と後方視のステレオ表示 (元データ:(C)JAXA)

8.地形データの抽出
LPS ATEを使用すれば、標定済みのブロックから地形データ抽出を行うことができます。
TIN形式で出力することで、LPS TEを使用して編集を行うことができます。
1)LPS ATE( )を起動します。Output DTM Type:をTerramodel TINとし、Output FormとしてSingle DTM Mosaicを選択します。また、DTM Cell Sizeをデフォルト値よりも小さい10mとしました。最終的にデフォルト値の25mセルサイズのラスターDEMを得たい場合でもできるだけセルサイズを小さく設定(画像解像度の3倍程度まで)してTINとして抽出し、ラスター補間時に25mとすることにより、きれいなDEMを作ることができます。

2)ダイアログ下部のAdvanced Properties...をクリックしDTM Extraction Propertiesを開きます。
3)Image Pairタブを開きます。PRISMには3つの視線方向がありますので、これらの組み合わせにより前方−後方、前方−直下、直下−後方の3つのステレオペアができます。これらの各ペア毎に画像マッチングにより3Dポイント群を抽出し、自動的にマージした状態で出力することができます。

4)Area Selectionタブを開きます。ここでは、画像マッチングのパラメーターを設定しますが、AOIで定義した各地域の地形や土地被覆によって設定を変えることができます。

ここでは平地と山岳地域と海を定義しました。平地および山岳地域は以下のような定義を使用しました。山岳地域では視差が大きくどうしても相関が悪くなるため、 Search Size X: を大き目に、 Correlation Size: を最小の 3 にしました。また、海は Exclude Area とし、高さを 0 としました。

5)以上を設定条件として地形データ抽出を実行し、下図左のTINデータと右の相関の良し悪しを示すクオリティ画像を得ました。

山岳地域では色の変化が少ないことと視差が大きいことでどうしても相関が悪くなり、クオリティ画像で黄色や赤のピクセルが多くなります。そのような場所はポイントが取られないため、 TIN 上ではポイント間の間隔がまばらになっています。また、ミスマッチにより変な Z 値が計算されて鋭い凹凸となっている部分もあります。山岳地域のパラメーターには変更の余地がありそうです。
9.地形データの修正
1)LPS TE( )を起動し、ステレオペアとATEで作成したTINをステレオウィンドウに表示します。
2)Terrain Editingパネルにて、Select Allボタンをクリックしてすべてのポイントを編集対象とします。
3)編集オペレーターとしてRemove Elevation Spikesを選択し、Slope Toleranceを0.25※としてApplyします。(※この値は試行錯誤的に決定したものですので、調整の余地はあります。)
4)その他目立つエラー点を手動削除し、保存してTEを終了。
5)DataPrep→Create Surface....を起動。修正したTINを読み込み、セルサイズを25mとして補間し、ラスターDEMを得ました。

作成したDEMのレリーフ表示

3D表示:スパイク除去の前と後
10.オルソ画像の作成
作成したDEMを使用して直下視画像をオルソ幾何補正します。
1)プロジェクトマネージャーのテーブルで直下視画像に>を移動し、 アイコンをクリックします。
2)DTM Source: として DEM を選択し、DEM File Name: で作成した DEM を選択します。
3)OK ボタンを押して処理を実行します。出力された画像は、以下のように山岳地域でも地図とぴったり重なる画像となりました。
センサーパラメーターなどの重要な情報が得られない状況ではありましたが、とりあえず IMAGINE/LPS の汎用機能である Generic Binary インポーターおよび Generic Pushbroom センサーモデルで処理することが可能であることがわかりました。自動抽出による DEM もまずまずのものができました。相関パラメーターなどの調整でより高品位のものが作成できると期待できます。
今回は 25000 分の 1 地図画像を参照 GCP に使用しましたが、より高精度なデータを使用することで絶対精度の向上が見込まれます。また、今回使用したレベル 1B2R よりも低次のデータでは高精度の軌道情報が付属するため、 IMAGINE/LPS 側でそれを利用するための専用インポーターやセンサーモデル DLL が開発されれば、ほぼ全自動でかつ正確な標定を実現できることになります。
参考文献
(1) ALOS Product Format Description (PRISM) NEC TOSHIBA Space Systems, Ltd.
(2) TRIPLET-MATCHING FOR DEM GENERATION WITH PRISM, ALOS ---- A Case Study using Air-Borne Three Line Scanner Data. Tianen CHEN et al., ISPRS Commission III papers, Vol. XXXV, part B3 ( ISPRS ウェブサイト http://www.isprs.org/ より)
(3)ALOS ユーザハンドブック(独)宇宙航空研究開発機構 地球観測利用推進センター 平成 17 年 3 月
ALOS PRISM元データは、JAXAが提供のサンプルプロダクトを使用しました。
|