第34回日本情報地質学会講演会 講演要旨集 035-036頁 2023年

二次元点群展開処理手法の改良
北尾 馨*

Improvement of processing method for 2D point cloud mapping
Kaoru KITAO** 合資会社キューブワークス CubeWorks Inc., 4-1, Mizukino-2, Moriya, Ibaraki 302-0121, Japan. Email: kitao@cubeworks.co.jp

キーワード：点群，GPU，WebGL 2.0，Transform feedback，行列Key words : Point cloud, GPU, WebGL 2.0, Transform feedback, Matrix

１．はじめに
著者は北尾（2020）において迅速測図約 170 万点の点群を，北尾・西岡（2022）において磁気異常補正値約 560 万点の点群をそれぞれ二次元のウェブ地図上に展開するアプリケーションを開発し，これらを紹介した．その後開発を重ね，数千万点程度の点群を展開することが可能であることも確認している．
しかし技術の進展等もありこれまで採用していた処理手法等に改善の余地があることが判明した．本件では，従前の仕組みに各種改良を施した点群展開アプリケーションを開発して良好な動作を確認したので，その概要を紹介する．

２．アプリケーションの概要
本件では気象庁が過去の台風資料として公開している台風位置表（気象庁，2023）のうち CSV 形式ファイルを利用して，時系列の台風位置とその経路を二次元ウェブ地図上に展開するアプリケーションを開発した．

CSV 形式ファイルは台風の発生年を基準として 2001 年から 2022 年までの 22 点であり，含まれる台風の総数は 538件である．各ファイルは見出し行に加えて 1 行 1 件で台風の位置と時刻および階級等の情報を格納し，その総数は19,747 件である．本件ではこれらのファイルから表示に使用する項目のみを抽出して新たな CSV 形式ファイルを作成した．抽出した項目を表 1 に示す．
アプリケーションは起動時，保持する全ての台風位置を点で，点をつないで得られる台風の経路を線で描画し，各点を当該位置における台風の階級に応じた色で着色している（図 1）．機能として台風の発生日による抽出が可能であり，年または月またはその両方を指定して発生日がその条件に該当する台風を表示することができる．図 2 に 2010 年 9 月に発生した台風のみを抽出して表示した例を示す．

第 1 表 アプリケーションで使用した台風情報の項目

項目名
年
月日時
台風番号
台風名
階級

緯度
経度
中心気圧

説明
UTC
UTC
UTC
UTC
西暦の下 2 桁+その年の発生番号
アジア名
2 最大風速 17m/s 未満
3 最大風速 17m/s 以上，25m/s 未満
4 最大風速 25m/s 以上，33m/s 未満
5 最大風速 33m/s 以上（2-5：熱帯低気圧，3-5：台風）
6 温帯低気圧7 中心が北西太平洋（赤道より北，東経 180度より西）の外にあり，6 時間以内に中心が北西太平洋の中に入る熱帯低気圧
度
度hPa

第 1 図 アプリケーションの初期表示

第 2 図 2010 年 9 月発生の台風を抽出表示した例

36

第 3 図 2010 年 9 月発生の台風を中心気圧のグラデーションで着色，表示した例

第 4 図 点の情報をポップアップ，ツールチップで表示した例

点の色は台風の階級別での着色に加えて，台風の当該位置における中心気圧に対応したグラデーションで着色することも可能である．図 3 に 2010 年 9 月に発生した台風の位置と経路を中心気圧のグラデーションで着色，展開した例
を示す．
これらの他にアプリケーションは点のマウスオーバーで表示中の色調での値を表示する機能，点をクリックしてその点が保持する情報を表示する機能を装備している（図 4）．

３．作成データ
本件ではアプリケーションで使用するデータとして３種類のファイルを生成した．
・CSV 形式ファイル（22 ファイル）
元の CSV 形式ファイルからアプリケーションの表示で使用する項目のみを抽出してファイルを生成した．点をクリックした際のポップアップ表示で使用している．
・点群 PNG 形式ファイル（22 ファイル）
作成した CSV 形式ファイルから西岡（2023）の仕様に従って点群 PNG 形式ファイルを生成した．点群の描画にはこのファイルを使用している．
・色調決定ファイル（階級用と中心気圧用）
点の着色規則を定めた PNG ファイルを生成した．

その結果を再利用することで処理負荷を軽減することが可能であると推察し，実装した．
位置座標の場合，復元した値をさらに画面上の位置座標に変換（アフィン変換）する演算が必要になるが，この演算は地図の縮尺変更や地図移動により与えるパラメータが変わるため，描画の都度実行する．
4.2 GPU の特性に合わせたプログラムの最適化
CPU は万能な演算装置であるが GPU は元来出力に特化した演算装置であり演算の種類によって得手不得手がある．
例えば if 節による条件分岐は不得手でその処理負荷が高く，処理する点の数が増えると動作の遅延を体感できるほどである．条件分岐が必要な処理は三項演算子や GLSL 組み込み関数である step 関数（値が閾値未満で 0，閾値以上で 1を返す）等で書き換えて処理負荷軽減を図る．
また GPU は行列による演算を得意としており，前述のアフィン変換は行列を用いて演算することで負荷を軽減できる．復元式 1 における赤文字で示した部分は GLSL 組み込み関数である dot 関数を用い，(𝑟, 𝑔, 𝑏)と(65536,256,1)の内積として演算することで処理負荷を軽減できる．
4.3 パラメータの事前加工
パラメータを GPU に転送して加工すると，その演算が全ての点に対して実行されるため非効率的である．例えば復元式 1 における青文字で示した部分がそれに該当する．
加工が必要なパラメータについては GPU に転送する前に JavaScript（CPU）で演算しておき，その結果を転送して使用することで処理負荷を軽減できると推察する．
4.4 点の識別処理の見直し
WebGL の以前のバージョンで点を識別するには，位置や各種値に加えて点を識別するための値を GPU に転送する必要があった．そのため GPU に転送するデータ量が増え，GPU メモリ空間の逼迫を招く可能性があった．
WebGL 2.0 では点データの並び順を格納した暗黙の変数
gl_VertexID が利用可能となった．このため別途点識別のための値を転送しなくても点を識別することが可能になり，GPU メモリの使用量抑制を実現することができた．

５．おわりに本件では，最新技術を利用した二次元ウェブ地図上での点群展開処理手法の改良について紹介したが，無償で利用可能な十分大量の点群データを得ることが出来ず，2 万点弱の少ない点群で検証することしか出来なかった．著者は本
件の成果により，相応の GPU を搭載したコンピュータであれば 1 億点程度の点群を高速展開することが可能であろうと予測している．今後は十分大量で，値から色調を決定する機能を必要とする点群データを用いて本件の改良が効果的であることの検証をおこないたいと考えている．

文
４．改良点
4.1 点群データの事前加工
点群 PNG 形式ファイルでデータを受け取る場合，基本的に各ピクセルの色（RGB）を元の値に復元する演算が必要である．その数式の一例を以下に示す．

𝑣 = ( 𝒓 × 𝟔𝟓𝟓𝟑𝟔 + 𝒈 ∗ 𝟐𝟓𝟔 + 𝒃 + 𝑒𝑡 ) × 𝟏𝟎!𝒇 ·· （復元式 1）
𝑟: R 値，𝑔: G 値，𝑏: B 値，𝑒𝑡: オフセット，𝑓: 係数常用対数
従来はこの演算を描画の都度実行していたが，WebGL の最新バージョン（WebGL 2.0）で実装された Transformfeedback により，起動時に 1 度だけ演算を実行して以降は

献

気象庁 (2023) 気象庁｜台風位置表. https://www.data.jm
a.go.jp/yoho/typhoon/position_table/index.html
北尾馨 (2020) WebGL を用いた点群を展開するウェブ地図アプリケーションの試作. 情報地質, vol.31, no.3, pp.79-85.
北尾馨・西岡芳晴 (2022) 点群 PNG を用いたウェブ地図上での点群展開とポリライン群の描画. 第 33 回日本情報地質学会講演会, 講演要旨集, pp.47-48.
西岡芳晴 (2023) 点群 PNG. https://gsj-seamless.jp/labs/pcpng/（ウェブサイトの確認日：2023 年 5 月 17 日）