Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cesiumを用いた3次元リアルタイムデータの可視化について
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
ノーザンシステムサービス | Northern System Services
November 11, 2024
Technology
350
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Cesiumを用いた3次元リアルタイムデータの可視化について
ノーザンシステムサービス | Northern System Services
November 11, 2024
More Decks by ノーザンシステムサービス | Northern System Services
See All by ノーザンシステムサービス | Northern System Services
[FOSS4G 2024 Japan LT] LLMを使ってGISデータ解析を自動化したい!
nssv
1
3.8k
[FOSS4G 2024 Japan] CesiumのShaderを用いた気象データ3Dアニメーションについて
nssv
0
3.5k
[FOSS4G 2023 Japan@FUKUI] 他天体におけるCesium の活用 ― Cesium を使って小惑星に行こう ―
nssv
0
190
日本語が話せるオープンアクセス大規模言語モデルの評価
nssv
0
140
[FOSS4G 2014 Tokyo] オープンデータとオープンソースGISを用いたWEB上でのインタラクティブ可視化手法について
nssv
0
97
[FOSS4G 2016 Tokyo] Deep Learning with FOSS4G
nssv
0
57
[FOSS4G 2016 Hokkaido] Cesiumマニアックス
nssv
0
88
[FOSS4G 2017 Hokkaido] CS立体図とディープラーニングによる崩落地形予想について
nssv
0
110
[FOSS4G 2019 Niigata] AIによる効率的危険斜面抽出システムの開発について
nssv
0
420
Other Decks in Technology
See All in Technology
Terraformモジュールは、なぜ「魔境」化するのか
hayama17
1
200
AI活用を推進するために ファインディが下した、一つの小さな決断
starfish719
0
250
Rubyで音を視る
ydah
1
100
コードレビューを制するチームがソフトウェアデリバリーのフローを制す / Beyond Code Review: Distributing Its Responsibilities Across the SDLC
mtx2s
4
1.2k
製造業のクラウド活用最適解〜AI,DXを加速するデータ基盤の作り方〜
hamadakoji
0
400
Agentic ERPをどう設計するか ー 受発注エージェントを動かす、現場の知見と設計思想ー
recerqainc
1
1.6k
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.8k
AIを「創る」と「使う」の循環 — HRテックが実践するリアルなAI組織実装
taketo957
0
1.7k
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
3
220
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.8k
Databricks 月刊サービスアップデート 2026年05月号
tyosi1212
0
210
実装は速くなった、レビューはどうする? ― 自身のレビューをAIで再現させるサーヴァントエンジニアリングのすゝめ / Implementation got faster. So what about reviews? — An invitation to Servant Engineering: Recreating your own code reviews with AI
nrslib
7
4k
Featured
See All Featured
Accessibility Awareness
sabderemane
1
130
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
580
Leo the Paperboy
mayatellez
7
1.8k
RailsConf 2023
tenderlove
30
1.5k
How to build a perfect <img>
jonoalderson
1
5.6k
Code Reviewing Like a Champion
maltzj
528
40k
How to Think Like a Performance Engineer
csswizardry
28
2.6k
Everyday Curiosity
cassininazir
0
220
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
200
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
Transcript
株式会社ノーザンシステムサービス 和山亮介 Cesiumを用いた3次元リアルタイムデータの 可視化について 平成27年情報システム研究会
自己紹介 岩手にある (株)ノーザンシステムサービス という会社で 地図やドローンを使ったりした可視化の研 究開発をしています。 最近はドローンのDIYを始めたりしてます。 色々面白いものを置いてあるので、興味が ある方は是非当社までお越しください! Twitter:@wayama_ryousuke
None
なぜドローンのデータを 使いたかったのか?
ドローンで 災害救助等に使える システム作れないか? DFID - 英国国際開発省 CC BY 3.0 ネパール地震でのドローンを使った災害救助
https://www.flickr.com/photos/dfid/16691214064
東日本大震災時、救助場所を住所で言われた際に、被災前 の住所と被災後では津波で目標となる建物が流出してしまい、 救助ヘリで現場へたどり着くのに時間がかかったそうです。 また、現状把握のためのフライト中にも要救助者の救出が 優先する場合もあり、現状把握に時間がかかったそうです。 参照:第14回 全国消防救助シンポジウム 記録集 https://ja.wikipedia.org/wiki/%E3%83%88%E3%83%A2%E3%83%80%E3%83%81%E4%BD%9 C%E6%88%A6
https://ja.wikipedia.org/wiki/%E6%9D%B1%E6%97%A5%E6%9C%AC%E5%A4% A7%E9%9C%87%E7%81%BD http://www.fdma.go.jp/neuter/topics/kyukyu_kyujyo_kokusaikyouryoku/symposium14.pdf
災害発生時にドローンを即時飛行 させ現場の被害状況を把握して、 同時に3次元形状を被災前の地図と重ねて可 視化することで、より迅速に救助活動ができ るのではないか? という思いから研究開発が始まった。 https://en.wikipedia.org/wiki/Parrot_AR.Drone#/media/File:2_Parrot_AR.Drone_2.0_in_flight.jpg
そもそもドローンから 取れるデータって どんなのがあるの? https://en.wikipedia.org/wiki/File:AR.Drone_2.0_flying_over_suburd_in_Avignon,_France.jpg
1.動画:主カメラや副カメラでとった動画。 WiFi等でリアルタイム受信できるものが多い。 2.静止画:マルチスペクトルビーム画像やGPS 情報が付随したEXIF付き画像。SfMで使う場合 はカメラが垂直に下を向くことが大前提。 3.各種センサデータ:LiDARの点群データ等 4.テレメトリデータ:リアルタイムのGPS情報 や機体制御情報等 ドローンから取れる代表的なデータ
1.WiFi:リアルタイムデータ。但し画像・動画とかはVGAクラス。HD クラスは別途装備が必要だったり。 今回はこのVGA画像からリアルタイム データを作ります。 2.モバイル通信(LTE等)、衛星通信等:リアルタイムデータ。自立運 転などで使用。WiFiと比べると遅延があり通信速度が遅い場合が多い。テ レメトリデータなどのASCIIデータなら問題ない。FPV(自分視点でのリア ルタイム操作)等遅延が重要な用途には向かない。 3.SDカード等:RAWデータや高解像度のデータを保存して撮影後に確 認できる。SDKによってはWiFi経由で直接取得可能。超高精度(0.03m
メッシュ!)なDEM や高解像度のオルソ画像が必要なときはこちら。 4.USB等:nVIDIAのtk1等、組み込み向けPCでオンボードでカメラデー タ等を処理する場合はこちら。RS232CやGPIOとかもある。 データの取得方法は?
1.v-SLAM (visual SLAM) : リアルタイムで単眼カメラの動画 データから自己位置推定と環境地図を作成する技術。今回使ったのは LSD-SLAM。他にはORB-SLAMやSVO、PTAM等がある。これ系の技 術は大体はPTAMを親として派生した技術。 また、 LiDAR等の高価なセンサを使用せずとも安価なカメラで点群
データを得られる。最近は精度も良い。 取得したデータはどう加工するの?-1 https://www.youtube.com/watch?v=GnuQzP 3gty4 LSD-SLAM ORB-SLAM SVO PTAM https://www.youtube.com/watch?t=142&v=Y 9HMn6bd-v8 https://www.youtube.com/watch?v=2YnIMfw6bJY https://www.youtube.com/watch?v=8DIS RmsO2YQ
2.SfM(Structure from Motion):オルソ画像やタイル画像、DEM が必要な場合はこちら。商用で最も有名なのはAgisoftのPhotoScan。 最近だとドローン用WEBサービスのPix4Dが目立ってきている。 非商用であればVisualSfM等がある。オープンソースであれば OpenMVG、OpenSfMなどが有名。 v-SLAMと同じく安価なカメラのみで点群やその他情報を作成できる。 取得したデータはどう加工するの?-2 https://www.flickr.com/photos/crschmidt/15260888506/
PhotoScan Pro Pix4D https://pix4d.com/ VisualSfM http://ccwu.me/vsfm/ OpenMVG OpenSfM https://github. com/mapillary /OpenSfM https://github.com/openMVG/openMVG/
3.ワークフローSfM:画像ファイルを用意するだけでオルソ画像 や3Dモデルを作るところまでを自動化したもの。オープンソース ではOpenDroneMapが有名。 取得したデータはどう加工するの?-3
4. ジオリファレンス:点群データやセンサデータなどは大抵は ローカル座標系なので、地理空間で使うにはジオリファレンスが必 要になる。テレメトリにあるGPS情報やEXIFのGPS情報は精度に 誤差が生じやすいので緯度経度における精度が重要であればGCP (グランドコントロールポイント。写真の特定のピクセル座標に対 する緯度経度情報。最低3点以上)を予め作っておく必要がある。 今回の検証でも精度の部分で問題になった。今後の課題。 取得したデータはどう加工するの?-4 http://www.lancaster.ac.uk/staff/jamesm/software/sfm_georef.htm
http://grass.osgeo.org/grass70/manuals/addons/v.ply.rectify.html
1.オルソ画像: GeoTIFFとかジオリファレンスされたものであればそのままQGIS等のGISソフトで 開いて分析できる。 ジオリファレンスなしの場合はジオリファレンスの手間がある。別途GCPデータを 作っておく必要がある。 加工した成果物はどう利用するの?-1 http://www.gsi.go.jp/gazochosa/gazochosa40001.html 例:電子国土基本図(オルソ画像)の整備
2.DEM: 地形学や自然地理学における地形分析や、水流や地塊運動のシミュレーションや、 立体地図の作成等、3次元情報を活かしたい場合に使用する。 加工した成果物はどう利用するの?-2 http://www.gsi.go.jp/gyoumu/gyoumu41000.html 西之島立体図
3.テクスチャ付き3Dメッシュオブジェクト: SfM等は高さ情報だけではなく形状も再現するので、例えば中空になっている橋の ような建造物も多少の歪みはあるが再現する。最近では建造物の形状や高さ情報か らの再現した3D可視化ではなく、こちらを用いることが多くなっている。大規模な 3D都市モデルを構築したい場合等で利用する。 オープンソースのcesiumで作成したものもある。 加工した成果物はどう利用するの?-3 http://betaserver.icgc.cat/cesium/Girona3D.html 例1:スペイン旧市街のシティモデリング http://www.google.com/url?q=http%3A%2F%2Fwww.3dcitydb.net%2F3dcitydb%2Ffileadmin%2F3
DWebClient%2Findex.html&sa=D&sntz=1&usg=AFQjCNHsudbJnq9rcLt8kFaipqTaHBd5EA 例2:インタラクティブな3D可視化と大規模な3D都市モデル
4.ポイントクラウド:SfMやv-SLAM、 LiDARで取得した点群 データ。物体認識や障害物回避等の自動運転系で使ったりする。今 回は3次元地図に使用します。 加工した成果物はどう利用するの?-4 http://subspace.nicta.com.au/#publicDemos https://www.youtube.com/watch?v=r9LegSK6MfU 例1:Cesiumでのポイントクラウド表示例 例2:ポイントクラウドを用いた自動運転例
ドローンで取れるデータや 加工方法や利用方法については 分かった。 ではこれらをどうやって 3次元地図に表示するのか
やっぱりGoogle Earth? https://www.google.co.jp/intl/ja/earth/
それともBing Maps? http://apps.microsoft.com/windows/en-us/app/bing-maps-preview/75ce2a6a-8a25-4916-83d0-19b8e7b60787
いいえ。Cesiumです。 https://cesiumjs.org/Cesium/Apps/HelloWorld.html
・ Cesiumは、プラグインなしでWebブラウザ上で3D地図や2D地図を表示す るためのJavaScriptライブラリ。WebGLに対応したブラウザ上で動作する。 ざっくり言えばGoogle Earthのオープンソース版のようなもの。 Cesiumとは? https://cesiumjs.org/index.html https://cesiumjs.org/Cesium/Apps/Sandcastle/index.html
1.Google EarthのWEB版も最初考えたが、そもそも現時点で最新の Chromeで動作しないので候補から外れた。 2. Google Earth等の商用アプリは基底部分をいじれないので、欲しい機能 を自前で実装できないため、オープンソースであるのは必須要件だった。 Cesiumは基底部分はもとより、UIも大幅に変更可能なのもかなりポイント高 い。 3.WebGLに対応したブラウザであれば端末を選ばない。
4.ドローンからのデータを扱う上で、サーバからリアルタイムで大量のデー タを扱うにはブラウザ上でWebSocketやWebRTC等のHTML5技術と親和性が 高いものが良かった。 5.KMLやGeoJSON等馴染み深いデータソースをそのまま使えるため、過去 の資産を活かしやすい。 なぜCesium?-1
6.比較的短期間(およそ1ヶ月)でどんどんバージョンアップしてバグや新 機能が盛り込まれていく。比較的活発に活動している。 7.特定用途に向けたプラグインが色々ある。地下空間データ対応、点群デー タ表示対応、VR対応、Leapmotion対応等。 なぜCesium?-2 http://cesiumjs.org/plugins/index.html
ここがヘンだよCesium 仕様がダイナミックに変わるので、緯度経度の変換や取得方法、 オブジェクトへのズーム方法など重要な部分の書き方が代わった りするのでソースの修正が大変。最近は落ち着いている。 今回使用しているのは6月1日に発表されたv1.10だが、以前は v1.2のsubspaceプラグインを使用して点群を表示していた。 これはv1.9までのバージョンでは点群を表示する方法がなく、 サードパーティ製のプラグイン( subspace )に頼らざるを得な
かったが、これはv1.2固定対応で、バグ対応や高速化対応その他 もろもろの最新版の利用を断念せざるを得ない状況だった。 根幹の仕様が滅多に変更がないのであればプラグインも上位互 換性が上がると思われるが、まだ今の段階ではそこまで成熟して いないので、どうしても最新版で使いたい場合はプラグインに パッチを当てるしか無い。
SfMやv-SLAMで出力された点群や3Dメッシュオブジェクトをcesium上で 変換して表示する。 ・点群(PLY形式)→ファイルをロードし、そのまま緯度経度高度+ カラーをPointジオメトリに割り当てる。 ・3Dメッシュオブジェクト(obj形式)→COLLADA(MeshLab等) →glTF→バイナリ形式で読み込む。(Cesium1.10以降) Cesiumで3Dデータを見るためには? http://www.cs.cornell.edu/~snavely/bundler/ http://meshlab.sourceforge.net/ SfM
MeshLab Cesium Pictures
動画像から3次元情報を作るやり方としては SfMとv-SLAMがある。 ・SfMは精度優先。IN:画像群。OUT:多様。 ・v-SLAMは速度優先。IN:動画。OUT:点群のみ。 というようにそれぞれ特性が違うので、用途に合わせて選択 する。 今回はSfMを災害後における詳細調査用、v-SLAMを災害 時のリアルタイム調査用として想定し、それぞれの性能評価 をおこなった。
・全体的に高精度DEMや高解像度オルソ画像、3Dメッシュオブジェクト を作るのは向いてるが、詳細にやろうとすれば計算時間がかなり掛かる。 処理枚数やCUDAの可否にもよるが17枚(4608x3455)の静止画で GPUなし、CPU:Core-i5 3.4Ghz、メモリ32GBの場合、 OpenDroneMapでは6時間程度かかった。GPUが使えると10倍以上早 くなる。SfMではGPU必須と言ってもいい。スタンドアローンで使いたい のであればnVIDIAのtk1がおすすめ! SfMの場合-1 http://queue.acm.org/detail.cfm?id=2206309
http://www.nvidia.co.jp/object/jetson-tk1-first-mobile-supercomputing-embedded-20140326-jp.html nVIDIA tk1
・品質や計算速度ではAgisoftのPhotoScan Proが圧倒的。ジオリ ファレンスもEXIFがあれば自動でやってくれる。このジオリファ レンスの自動化のためだけに購入してもよいかもしれない。 SfMの場合-2 http://www.agisoft.com/pdf/PS_1.1%20-Tutorial%20(BL)%20-%20Orthophoto,%20DEM%20(without%20GCP).pdf
・無償で使えるソフトとしてはVisualSfMが有名だが非商用でしか 使えない。商用で使う場合は別途連絡が必要。ジオレファレンスは GCPファイルを別途用意すればいけるが、EXIFからは自動では とってくれない。EXIFからとっているのはカメラの焦点距離など の情報で、カメラのキャリブレーションを行っている。 SfMの場合-3 http://ccwu.me/vsfm/
・オープンソースではOpenDroneMapがワークフローとしては有 名。単体としてはPMVS、CMVS、Bundler、OpenMVG、 OpenSfM、Micmac等。 SfMの場合-4 https://github.com/OpenDroneMap/OpenDroneMap http://www.cs.cornell.edu/~snavely/bundler/ https://github.com/openMVG/openMVG/ https://github.com/mapillary/OpenSfM http://logiciels.ign.fr/?Telechargement,20 PMVS
OpenDroneMap CMVS Bundler OpenMVG OpenSfM Micmac
・OpenDroneMapは画像さえ用意すればバッチ処理でオルソ画像、 テクスチャ付き3Dメッシュ、ポイントクラウドまでは自動で作成 できるが、ジオリファレンスの精度が厳しい。GCP使っても改善し なかった。今後のアップデートに期待。 SfMの場合-5 https://github.com/OpenDroneMap/OpenDroneMap https://smathermather.wordpress.com/category/3d/opendronemap-3d/
・オープンソースのSfMではジオリファレンスの精度が宜しくない ため、GCP等で補う必要があった。 ・しかし自動化のためにはGCPを使わずにEXIFのGPS情報を使用 して調整したいという思いがあり、試行錯誤していくと・・・ 世にも奇妙な現象に遭遇! SfMの場合-6
SfMの場合-7 OpenDroneMapの例-1 Fig.1 沈没遺跡 Fig.2 空中庭園 Fig.3 蜃気楼
SfMの場合-8 OpenDroneMapの例-2 Fig.4 空中ベンチ Fig.5 孤独な惑星
SfMの場合-9 OpenSfMの例 Fig.1 名状しがたい公園 Fig.2 名状しがたい博物館
・オープンソースのSfMは精度や速度の論点の前にそもそもGCPで はなくEXIFのGPS情報から自動計算できる正確なジオリファレン スを出来るソフトがなかった。もしかしたら見落としているものが あるかも。 ・今のところ一番精度が良かったのはPLY+GCP+Grass GISでの ジオリファレンス。 ・GCPを使う場合、人の手間がかかるため、自動化が難しい。自前 実装の早いかもしれない。 ・もしEXIFのGPS情報からのSfMのジオ
リファレンスが正確にできるやり方知っ ていたら教えて下さい! SfMを使った感想
① EXIF付き画像をフォルダに入れて、そのフォルダ内で OpenDroneMap/run.pl を実行することでOpenDroneMapのワークフローが実行される。 ② 実行後には点群データとオルソ画像、 3Dメッシュオブジェク トが生成される。 ③ テキチャ付き3Dメッシュオブジェクト(obj)はそのままの形
式だとcesiumに表示できないため、一旦Meshlab等でCOLLADA形 式に変換し、更にそこからcesiumライブラリ経由でglTF形式に変 換することでようやくcesium上に3Dモデルとして表示が可能とな る。 参考:SfMで作ったものをCesiumで 表示するには?-OpenDroneMap編
① EXIF付き画像を「images」フォルダにいれて、パラメータ等が記載された「config.yaml」を用意する。 OpenSfM/bin/run_all フォルダ名 【フォルダ構造例】 testData/ └config.yaml └images/ └img_00.jpg └img_01.jpg
└img_02.jpg └img_03.jpg └img_04.jpg └img_05.jpg 【実行例】 OpenSfM/bin/run_all testData ② 実行後にはJSON形式の点群データができる。デフォルトのままだとECEF座標系(地球中心・地球固定直交 座標系)で出力されるためECEF座標系⇒緯度経度の変換を行う必要があった。 ③ Ply形式にPythonで変換後、Cesiumで表示が可能となる。ただし建物の横から撮った写真であればジオリ ファレンスの精度はそこまで問題ではないが、航空写真のような上から撮った写真の場合は激しくずれる。高さ がハードコーディングされていたりしたので、恐らく横からの画像に特化している? 参考:SfMで作ったものをCesiumで 表示するには?-OpenSfM編
①任意のフォルダに画像、スクリプトファイル(下記参照)、画像同士の組み合わせを記載したXMLファイル、プロジェクションを記載したXMLファイルなどを入れる。 ②Micmacには様々なツールが入っている。 各ツールを実行するスクリプトを書く。 【例】UAS_test.sh ----------------------------------------------- #!/bin/sh BIN_DIR=$1 CHANT_DIR=$2 ${BIN_DIR}mm3d OriConvert
OriTxtInFile GPS_WPK_Grand-Leez.csv Nav-Brut-RTL
[email protected]
MTD1=1 NameCple=FileImagesNeighbour.xml CalcV=1 ImC=R0040536.JPG NbImC=25 ${BIN_DIR}mm3d Tapioca File FileImagesNeighbour.xml -1 ${BIN_DIR}mm3d Tapas RadialBasic "R0040536.JPG|R0040537.JPG|R0040535.JPG|R0040578.JPG|R0040498.JPG|R0040499.JPG|R0040579.JPG|R0040538.JPG|R0040577.JPG|R0040534.JPG|R0040497.JP G|R0040500.JPG|R0040580.JPG|R0040456.JPG|R0040616.JPG|R0040576.JPG|R0040496.JPG|R0040617.JPG|R0040455.JPG|R0040457.JPG|R0040615.JPG|R0040539.J PG|R0040501.JPG|R0040581.JPG|R0040533.JPG" Out=Sample4Calib-Rel ${BIN_DIR}mm3d AperiCloud "R0040536.JPG|R0040537.JPG|R0040535.JPG|R0040578.JPG|R0040498.JPG|R0040499.JPG|R0040579.JPG|R0040538.JPG|R0040577.JPG|R0040534.JPG|R0040497.JP G|R0040500.JPG|R0040580.JPG|R0040456.JPG|R0040616.JPG|R0040576.JPG|R0040496.JPG|R0040617.JPG|R0040455.JPG|R0040457.JPG|R0040615.JPG|R0040539.J PG|R0040501.JPG|R0040581.JPG|R0040533.JPG" Sample4Calib-Rel Out=Sample4Calib-Rel.ply ${BIN_DIR}mm3d Tapas RadialBasic "R.*.JPG" Out=All-Rel InCal=Sample4Calib-Rel ${BIN_DIR}mm3d CenterBascule "R.*.JPG" All-Rel Nav-Brut-RTL tmp CalcV=1 ${BIN_DIR}mm3d OriConvert OriTxtInFile GPS_WPK_Grand-Leez.csv Nav-adjusted-RTL
[email protected]
MTD1=1 Delay=-0.0854304 ${BIN_DIR}mm3d CenterBascule "R.*.JPG" All-Rel Nav-adjusted-RTL All-RTL ${BIN_DIR}mm3d ChgSysCo "R.*JPG" All-RTL SysCoRTL.xml@SysCoBL72_EPSG31370.xml All-BL72 ${BIN_DIR}mm3d AperiCloud "R.*.JPG" All-BL72 Out=All-BL72-cam.ply WithPoints=0 ${BIN_DIR}mm3d Malt Ortho "R.*JPG" All-BL72 DirMEC=MEC DefCor=0 AffineLast=1 Regul=0.005 HrOr=0 LrOr=0 ZoomF=1 ${BIN_DIR}mm3d to8Bits MEC/Z_Num8_DeZoom1_STD-MALT.tif ${BIN_DIR}mm3d Nuage2Ply "MEC/NuageImProf_STD-MALT_Etape_8.xml" Scale=8 Attr="MEC/Z_Num8_DeZoom1_STD-MALT_8Bits.tif" Out=CanopySurfaceModel.ply ----------------------------------------------- ③スクリプトを実行 ./UAS_test.sh micmac/bin ※感想:PDFのマニュアルが約350ページもあり心が折れた。 参考:SfMで作ったものをCesiumで 表示するには?- Micmac編
・計算速度+精度+大規模地図対応+時間経過によるドリフト修正 対応を考えると現状ではLSD-SLAMになる。 v-SLAMの場合-1 http://vision.in.tum.de/research/lsdslam?redirect=1
・ORB-SLAMも候補に入れていたが、ドキュメントやTIPS等の情 報や品質がLSD-SLAMに及ばず、見送る。 v-SLAMの場合-2 http://webdiis.unizar.es/~raulmur/orbslam/
・ LSD-SLAMは安定した品質で カメラキャリブレーションさえしっかり していれば かなりの精度。逆に言うとカメラキャリブレーションに失敗していると、カオスに なる。 激しく揺らしても大丈夫。ただし、回転とかはダメ。 v-SLAMの場合-3 http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration カメラキャリブレーションの例
LSD-SLAM実行例
・カメラはローリングシャッターだと品質が酷い。 ビッグバンエフェクトと呼称している。 v-SLAMの場合-4 https://www.flickr.com/photos/sorenragsdale/3192314056 ローリングシャッターの例 ビッグバンエフェクト
・通常だとポイントクラウドファイル(ply)を 手動で保存するが、手動でキーを押さなければ ならなかったため、5秒間隔でポイントクラウ ドファイルを生成するようにパッチをあてた。 ・全キーフレームの点群データを取得しようと すると、あっという間にGB単位のデータになっ てしまうため、最新キーフレームデータ(差 分)のplyファイルを生成するようにパッチをあ てた。 LSD-SLAMのパッチポイント
リアルタイムデータ3D地図のデモ
・SfMと同様にジオリファレンスができていない。 ・カメラのGPS座標はテレメトリで取得しているので、カメラから 点群までの深さ情報を元にグローバル座標へ変換できそう。 ・カラー情報はLSDーSLAMでは取得できない。ORBーSLAMだと できるようになるらしい。出来るようになったら試したい。 ・ar-droneのようなローリングシャッター+VGA以下+30fps以下 だと精度が極端に落ちる。QVGAに落とすと精度が向上した。 ・カメラを選ぶ。グローバルシャッターで120°以上の広角でVGA のモノクロで30~60fpsを推奨されており、ドローンは普通ローリ ングシャッターなので精度が落ちる。
・最初に平行移動してからでないとトラッキングが失敗する。 課題
・wifiを前提とするとwifi範囲内でしか使えないため、長距離での利用が難しいため、 自立運転を目指す。またLSDーSLAMから位置推定してChainer+DQN(Deep Q- Network)による障害物を学習により回避する自立運転を予定。 ・実際に現場で使うにはまだまだ完成度が足りないため、フィールド実験したいが、 人がいるところでは飛ばせないので、ドローン専用実験場のようなところで実験し たい。ちょうどこの前、仙北市「ドローン特区」でドローンのデモンストレーショ ンがあり、一般企業でも自由に使えるようであれば検討したい。 今後の予定 分散深層強化学習でロボット制御
http://research.preferred.jp/2015/06/distributed-deep-reinforcement-learning/ https://www.youtube.com/watch?v=a3AWpeOjkzw PFI様による分散深層強化学習でロボット制御 Chainer+DQN(Deep Q-Network)でやっている。必見 https://www.youtube.com/watch?v=2JYFSiWDV-4 0719仙北市田沢湖スキー場ドローンデモ飛行
追記 ドローンを飛ばす前に読んでおいたほうがよい資料 http://dil-opac.bosai.go.jp/publication/nied_report/PDF/81/81-5inoue.pdf 防災科学技術研究所研究報告 第 81 号 自然災害調査研究のための マルチコプター空撮技術 著:
井上 公 内山庄一郎 鈴木比奈子 ドローンを用いた詳細DEM (0.5mメッシュ)やオルソ 画像作成と運用に対する考察 をまとめたもの。操作方法だ けではなく事故や保険などに も言及しており非常に広範で よくまとまっている。 オススメ
・cesium+Oculus+LeapMotion+PointCloud おまけ 3D地図の応用事例-1 データをまるで魔法のように思いのままに探求できます。 但し周りからの視線は考えないようにしてください。
・cesium+NetCDF おまけ 3D地図の応用事例-2 NetCDFのような位置付き多次元データをリアルタイムボリュームレンダ リングし、5分位でのカラー表示や変数の範囲選択で自由自在にデータを 観測できます。また、Cesiumの公式サイトでデモを確認できます。 http://cesiumjs.org/demos/GridViz.html
ノーザンシステムサービスでは一緒に 研究したい、仕事してみたい 研究者・学生・企業の方を募集しており ます。 今回の発表でピンときたものがあれば 是非お声がけください!
[email protected]
最後に・・・
ご清聴ありがとうございました。