yumetodoの旅とプログラミングとかの記録

旅や登山の記録やプログラミング関連の話とかフリーソフト紹介とか

内容メモと感想:【第1回PFLabフォーラム】自動運転からスパコン×Deep Learning、メニーコア×OS、ゲームAI、Xamarinまで豪華な内容盛り沢山!

タイトルの通り、PFLabフォーラムに行ってきた。

atnd.org

私は新宿税務署でアルバイトをしていて13:00まで新宿に拘束されていたので、加藤真平准教授による自動運転とベンチャー起業のお話は聞けなかった。

盛り上がりに欠けるというだけで呼ばれるちょまどさんと三宅さんぇ・・・

高精度3次元マッピング

自動操縦に必要なもの
  1. 周辺地図の構築
  2. 自分の位置の推定(localization)
  3. 行動計画
  4. Act!
三次元地図

→点群

すでに持っている3次元点群と新たに得た点群を重ね合わせる

How?

  • ICP
    すべての点群について計算→重い
  • NDT
    ボクセル(点群の小規模な部分集合)同士の位置合わせ(平均(傾向)・分散共分散行列(ばらつき))

やったこと

NDTの研究

インクリメンタルな地図登録

全部のボクセルを再計算する必要はないよね

従来のNDT : O(n):地図の点群数∝地図登録時間
インクリメンタルなNDT: O(1): 地図登録時間は一定

不均一なボクセルの更新

ボクセル内の点群がある程度貯まると、それ以上増えても平均・共分散に影響が少なくなる
→それ計算しなくてもいいよ!
→更新破棄

1msec程度の削減しかできなかった

モリーキャッシュが壊れそうなアルゴリズムだからまああんま早くならないだろうなぁ。

展望
  • 地図構築をGPU
  • ボクセルの大きさは不均一でもいい? # なんかNext HEVCみたい
  • ドローンで地図作ろう

ボクセルの大きさは不均一でもいいというのは、
rigayaの日記兼メモ帳 技研公開 2016
NHK技研でHEVC(今もっともよく使われているh.264の次世代のh.265のこと)の次世代コーデック開発で、 http://blog-imgs-104.fc2.com/r/i/g/rigaya34589/Giken2016_09s.jpg

圧縮の際の分割ブロック制御で似た話があったなぁ。


自動運転データストリーム

うん、私も???ってなりながら聞いてた。最後の方になってなんとなくわかったけど。

LiDARデータ: 360度回転画像を1frame
自己位置推定に使われる

→点群に変換

  • 地図とマッチング
  • 地図生成
  • etc

LiDARからRGB画像から抽出した物体までの距離を算出

Bagデータとして(生データ)収集

ーDeep Larningに流し込みにくい

変換ツールが必要やろ!

  • 撮影画像
  • Depth可視化画像

動画+LiDARでブレーキ予測できるか実験


Deep Larning

並列化された畳み込みニューラルネットワークのスケーラビリティに関する研究
→ # とは

ニューラルネットワークの大規模化

  • ResNet: 152層

CNN: 畳み込みニューラルネットワーク

パターン認識に特化

ちょっとこの辺は知識不足なので


この辺をあとで読もうを思っている。

→並列化したらうまく動くの? # GPUのほうが並列しているのは?

複数データの同時学習

  • Lowering Convlolution
  • 複数CPUでの学習

HTTとOpenMPとMPI

畳み込み層→重い
出力pixelごとに内積計算するから重い
→ Lowering Convlolution
→ 行列化→それは早い→行列生成がメモリーネック・浮動小数点演算→辛い

pipelined Lowering

細分化

特定の条件下でLowering < Pipelined

Lowering: 6倍
pipelined Lowering: +10% boost

マルチノード化で64並列で46倍


メニーコア

大体のCPUはせいぜい4Core

せいぜいみんなCoreは4つでしょ?Intel Xeon Phiなら>64 Core/ 256 threadやで

2g: 2次元メッシュアーキテクチャ

タイル→正方形状にネットワークにつながっている
タイル同士が通信

でも既存のOSじゃだめやろ!
→よろしいならばフルスクラッチ

まあメモリー管理はOSがやるべき仕事だからわかる。

github.com github.com

スピンロック

並列化するとどんどん遅くなる
→改善アルゴリズム(TTC, HCLH, etc…)多数→検証中

具体的には?
タイル内のロックは低コスト→どんどん使う

展望

高速計算以外でも使わないとアーキテクチャが死ぬ

  • 広帯域IO
  • 低消費電力


人工知能が拓くゲームの未来 - FINAL FANTASY XV が見せる人工知能の世界 -

ゲームAI
人工知能学会誌読もう

FINAL FANTASY XV

仲間、自然、モンスターがAIで動く

  • ルールベースのAI
  • プレイーやーの意思を読むAI
  • 自分の体の認識

現代は知能革命の時代に入りつつある

かつてはAIはゲームシステム内にあった

現代:

  • メタAI(予定調和)
  • キャラクターAI
  • ナビゲーションAI

が協調

AI量産のために

Luminous AI アーキテクチャを作った→アカデミックと違う

  • Luminous AI Graph
  • Luminous Navigation

単一の意思決定は十分でない
複数の意思決定を組み合わせる

→ロボットに適用

メタAI

体がない

映画監督

仲間同士で強調して動作したい

プレイヤーが寂しくないように

ex.) - プレイヤーや仲間のピンチを助けよ

キャラクターAI
  • 知能(AI graph)
  • 身体(ボディ・レイヤー)
  • アニメーション(AnimGraph)

の3つ

AnimGraphというツールでnode(それぞれモーション)を繋いでモーションのブレンド

環境世界 –{センサー・体}–> 知能世界(思考(認識の形成、意思決定、運動の構成)と記憶) –{エフェクト・体}–> 環境世界

  • 有限ステートマシン
  • 階層型ステートマシン

  • ステートマシーン

  • behavior tree

→いいとこ取りしたい

ハイブリッド型ノードフォーマット

www.slideshare.net

ステートマシーンのnodeがbehavior tree
逆も然り
Nodeの共有

→組合せ爆発を防ぐ

ナビゲーションAI
  • 地形を解析
  • 目的におおじた点を見つけ出す

目的地までのパスをを計算する

  • ダイクストラ法(同心円探索)
  • A*(スター)法(指向性探索) → 99%こっち

ナビゲーションメッシュ 地形の情報に合わせて歩ける部分のみ表示

スマートウェイポイント

3次元パス検索

立方体メッシュ(ボクセル化)→焼きなまし法で結合→A*アルゴリズム動かす→立方体のどこを動くか→さらに検索

戦略位置検出システム

自分の能力に合わせてポジショニングするシステム Point Query System

ステアリング
衝突回避
行きたい方向の空間の空きを見る
相互回避

移動モーション解析

  • 止まるときに現在の速度で停止までにかかる時間
  • 旋回性能

よなよなモンスターが頑張ってる

アンビエントAI

街にいる群衆を作る

オブジェクト側に知能を持たせる

キャラクターが近くに行くとキャラクターが操られる

オブジェクト: 情報発信

【会誌発行】人工知能学会誌 Vol. 32 No. 2 (2017/03) – 人工知能学会 (The Japanese Society for Artificial Intelligence) 表紙解説「ファイナルファンタジーXV


XamarinとMicrosoft Azure

Microsoft社の松屋宣伝担当・・・じゃなかった、テクニカルエバンジェリスト兼マンガ家の千代田まどか(ちょまど)さんの発表です。
特にメモ取る内容ではなかったというかツイート実況してたので以下ツイートまとめ。
ちょまどさんに実際に会うのはこれが初めてでしたが、某友人から「こいつはだめだ」みたいな話を聞いていたのでぶっちゃけそこまで期待してなんていなかったんだからねっ!(ツンデレ

内容的には blogs.msdn.microsoft.com に近い感じ。

な、なるほど?(わかっていない顔

セッションの説明 登壇者紹介

今日話すこと4つ

C#とは

暗黒の進化笑う。しかもその説明があながち間違っていないからあれだ。

私はF#知らない勢なのでfmfmという感じ

おまえらdynamicあるやん、という思い

ここでコンソールアプリケーションの説明で「コマンドプロンプト」という名前をど忘れしたちょまど氏。

C#をどんな言語かを見せるためにライブコーディングが始まりました。

REST API叩けばAsync/Awaitとかも見せられるから題材としては適当だよね。

www.infoq.com

本の虫: C++標準化委員会の文書のレビュー: P0022R1-P0092R1

[PDF] P0057R1: Wording for Coroutines

コルーチンの文面案。変更点は、とうとうキーワードが決定されたこと。co_await, co_yield, co_returnになった。なんだか泥臭い名前だ。しかし、await, yieldなど使えるわけがない。

future<void> g()
{
   std::cout << "processing f" << std::endl ;
   co_await f() ;
   std::cout << "resumed" << std::endl ;
}

うーむ。バイク小屋バイク小屋。

ちょっとここまでの講演に圧倒されて危機感を覚えたちょまどさんが慌てて追加した内容っぽい。

MRのほうがVRより古いって本当か?

Virtual reality - Wikipedia Mixed reality - Wikipedia

見ている感じそういう印象は受けないが・・・。

Xamarinのお話

ここで私の友人がXamarinのバグと戦った話を紹介しておきましょう。

Xamarin.Forms または私は如何にして心配するのをやめてバグを愛するようになったか — 173210's Blog

Xamarinとは

  1. 神奈川県座間市マスコットキャラクター
  2. 開発環境

ちょまど「名前空間の汚染が激しい」

ざまりん

Visual Studio 2017

Azure

内容的には

blogs.msdn.microsoft.com

のお話。

MBaaS

ここでプロジェクターが唐突に死亡する事件発生


終了

@meitel1014 (阪大勢) @blessingyukiとお話しつつ、ケンタッキーのチキンとミスドのなんかを食べつつして、その後3人で御茶ノ水まで歩いて各々帰りました。


感想

ちょまどさんのいいようではないけど、思ってたよりアカデミックな感じでびっくりした。

Deep Learningの話は予備知識がたりなさすぎて???ってなってたけど、3Dマッピングのあたりはなんとなく理解できた。

ゲームAIの話は、AIを考えるのはデザイナーの仕事なんだな、というのに驚いた。まあ結果AIを書くためのツールを作ったという話があったけど、そのツールそのものがかなりの価値があるんじゃないか、という思いだった。

ちょまどさんの発表は・・・、まあせっかくAzureの試用ライセンスもらったので使ってみようかなと思っています。