とある社会人ドクターのブログ

研究や読んだ書籍等の話をします

SSII day2

SSII2019 day2

プロジェクタ・カメラシステムが変わる! ~時間同期の制御で広がる応用~

マルチモーダル4Dセンシング ~リアルワールドのデジタル化~

セッション全体説明

  • 空間モデリング
    • 自動運転やARに必要
      • 3D modeloing

        • SLAM
          • ルンバやAR基盤としても使われる.
          • 意味
            • センサ姿勢とマップ同時推定をする
            • 測距センサによるSLAM
          • 手法
            • LiDAR
            • 画像
              • 画素値ベース
                • ORB-SLAM
              • 特徴点ベース
              • CNNベース
                • CNN-SLAM
                • DeepTAM
                • 単眼からメッシュ推定もできる
          • OSS
      • 4D modeling

        • なんで?
          • 時系列の変化も見たい
          • 車載カメラ,ドローンの普及
        • 将来的に
          • 実データがネット上に集まりリアルタイム情報抽出できる
    • 深層学習
      • 普及
    • マルチモーダル
      • 弱点を補う

        • LiDAR
        • ステレオ画像
        • 組み合わせてより密な情報を推定できる
      • 形状以外の物理量を統合

        • 3D温度マップ
      • なぜ必要か
        • 信頼性をあげる

ロボティクスにおけるSLAM手法と実用化例

  • ロボットの自律移動にはセンサ融合が必要
  • スキャンマッチングでもベイズ推定したい
    • 通常のスキャンマッチングは尤度のみを考慮
    • 最大事後確率推定によルウ位置合わせをベイズの定理に従って正則化最小二乗法で解く
    • 点群位置合わせで精度向上
  • 推定位置の不確実性を求めたい
    • 共分散を求めると不確実性がわかる
  • レーザの受光強度を使う
    • 通常のICPは形状だけだったので,平面だけだと位置合わせ失敗する
    • 強度も使うと拘束されるので良い
  • 自律ロボナビゲーション
    • つくばチャレンジ
      • OSSいっぱいあるけど屋外実環境での自律走行は難しい
      • 完走率低い
    • 自律走行のOSS
      • ROS
      • 製品のStencil
      • v-slamは少ない
    • SLAM手法
      • スキャンマッチング
      • ベイズフィルタ
      • グラフベース
      • SLAM使わない人もいる
        • GPS
        • オドメトリ
    • LiDAR
      • 色々な小型LiDARが出た
      • スタートアップも多い
    • ミリ波レーダもある
  • ルンバ的なやつ
    • パナソニックとの共同研究
    • ルンバ
      • 2014年にSLAM導入
      • フロアトラッキング
      • センサ融合
      • 2018年のモデルは地図を保持.地図の更新分割.大域位置推定.
    • ダイソン
      • 全方位カメラのv-slam
      • 2019年に地図保持,地図更新,地図結合.大域的情報保持.

3次元・マルチモーダル音環境認識

  • 音環境認識
    • 音イベントの「どこで」「どんな」を認識したい
  • システム
    • 収録された音を
      • 音源分離
      • 音源定位
      • 認識
    • 最終的にロボの行動計画をおこなう
  • 難しいこと
    • 観測音が混合されている
      • 教師ありでは難しい
    • 特定の音源は用意できるが自然音は取得難し
  • やりたいこと
    • マルチモーダルで対応したい
  • 深層学習
    • 混合音分離
      • ❌教師ありでは大量のデータが必要
    • 学習データの問題を解決
      • 音声と雑音分離(音声強調)
        • 音声をVAEでモデル化
        • ノイズを古典的確率モデル
      • 画像と音の共起関係を学習(音源分離)
        • 映像情報を学習するとどこから音が鳴ってるか推定できる
      • 多チャンネル録音の空間モデル
        • 近い遠いをモデル化
      • 音イベント識別
        • シーン分析など
      • 音声認識において
        • 人の唇のデータも同時に学習
  • OSS
    • HARP  

エンドユーザー向けSLAM技術の現在

  • モバイルのAR
    • 家具配置するアプリ
      • 古典的に解いていたがARkit, ARcoerでスケール推定までできるようになった
    • 手軽なAR体験,コンテンツ作成が研究要素として残った
  • 気軽なAR体験
    • ブラウザ上でARできるのは手軽
    • コンテンツに依存する
    • SoTAのWebAR
      • 8th Wallのライブラリが良い
    • WebSLAM
      • クライアントサイドでは特徴点抽出
      • サーバーサイドでは重いSLAM
  • 密な三次元復元
    • Depth推定するCNN
    • メッシュ形式で3次元推定できる
    • v-SLAMにCNN入れたやつもある
    • Mesh CNN-SLAM
    • 人物のオクルージョン対応できるようになった
    • 点群から見えの変換をできる

SSII day1

SSII day1メモ

チュートリアル GAN

GANの研究例

  • 理論と応用の二軸で研究が行われてる
  • 話すこと
    • 応用
      • GANの基礎
      • 安定性
      • モード崩壊
    • 応用

GANの説明

  • 概要
    • 登場人物
      • pdata
        • 手持ちのデータのランダムサンプリング
      • pz
      • G
        • zを入力にして,データを作成
        • 出力がG(z)
      • D
        • G(z)の出力もしくはp_data
    • 学習概念
      • G
        • 判別平面を本物のデータに近づける
      • D
        • 判別平面を遠ざける
  • 最適化

    • 問題設定
      • D
        • 本物のデータが入った時D(x)=1のとき最大
        • 偽物のデータが入った時D(x)=0
      • G
        • Dを騙す
    • 最適解の時
      • 本物のデータと作られたデータの分布が一致するから
  • なぜその最適化

  • 解く時

    • Gを固定
      • Dの最大化を見る
      • p_data/(p_data+p_g)の時に最大になる
    • Gを学習
      • 式を書き換えると,-log(4)+JS(p_data||p_g)になる
      • p_data=p_gの時に最小
    • 実際に解くとき
      • minmaxは交互に解く
    • まとめ
      • loss関数のminmaxゲームを解く
      • 最適な値の時,p_dataとp_gが一致する
    • ??????
      • ほんとに一致するの???
  • 数値実験

    • 簡単なガウス分布で数値実験
      • 実験結果はp_dataとp_zから取得したノイズをGで写像すると可能だった
    • 平成分布
      • 平成の分布もGANで近似可能
    • 平成分布を学習したモデルを令和分布へ転移学習
      • 読める結果
  • まとめ
    • GANは2つの分布を一致させるもの
    • 数式で書けない分布も近似できる
    • ナイーブに解くと失敗する
      • 不安定さ
      • モード崩壊
        • 作られるデータの確率分布が偏る
      • unwanted sample
        • p_dataになさそうなデータができる

          安定性

  • 問題点
    • 高解像度の画像生成をやりたい
      • mnistmですら不安定なのになんでできる?
      • 安定化の手法研究とその組み合わせ
  • 手法
    • TTUR
      • Dの学習率を大きくする
    • Zero-centreted gradient penralty
      • 正則化
      • 欲しい分布の近くにいてほしい
    • Spectral Norm.
  • Spectral Norm.
    • なにしたい
      • Dの勾配を小さくしたい
    • なんで?
    • GANの問題点
      • 勾配消失
        • Dが強すぎて勾配消失
        • 偽物を偽物と完全に見破ると勾配が消える
        • Gのlossを勾配が大きくなるように式変形する
        • 式変形したら勾配が大きくなりすぎるので不安定になる
        • deltaD/Dが大きい
      • deltaDを小さくして勾配を小さくしたい
        • Spectral Norm.が提案される
      • 手法
        • NNの各層の重みはある範囲で抑えられる
        • NNで出てくる活性化関数は大抵1-リプシッツ連続であるという仮定
      • まとめ
        • delta Dを小さくするためにspectral norm.提案

モード崩壊,Unwanted sample

実験的な結果が多くてまだまだ研究途上

  • モード崩壊
    • 何?
      • 生成データが偏る
  • Unwanted samle

    • 何?
      • p_dataに無いデータも作られる
  • モード崩壊とUnwanted sample問題は一緒では??

    • Gに入れるノイズがシングルガウス分布なのが問題???
      • 例えば,犬と馬の画像がガウシアンは非連結
      • この場合,NNで近似したGは連続関数なので近似できない
        • つながった近似
        • 片方だけ近似
  • 解決方法
    • Bourgain Embedding
      • N点のデータの距離を保ったままO(log(n))次元に埋め込む
      • 距離はHxWxC次元のユークリッド距離
  • まとめ
    • サンプリングするノイズの分布はきちんとしましょう
    • 最良のp_zの作成方法は謎
    • p_zがシングルガウス分布じゃない時の話は謎

ドメイン適応

  • 2つの分布を一致させる手法なので
  • ドメイン適応とは

    • オープンデータセットでモデル学習
      • 別の似たデータでは精度が出ない
    • つまり
      • ラベル付けしたデータと実運用で環境が違う時にどうしようか
    • やりたいこと
      • 以下のデータで良いモデルを作りたい
        • 手元のデータ
        • 運用環境のデータ
  • よくある手法

    • ドメイン間の特徴量空間を一致させる
    • 分布一致すると,ソース側の分類器が使いまわせる
  • 具体例
    • ADDA
      • データ
        • SOURCE: MNIST
        • Target: USPS
      • 手法
        • 特徴量空間を一致させるためにDを入れる
      • ナイーブにやると
        • 分布は合うけど,中身がグチャグチャになる
      • 改良
        • Target特徴抽出器をSourceのものをコピーしてから学習
        • ドメイン間で似ているという仮定がある
    • 最近の研究
      • 実データよりの話

        • 脳波から動作の予測にドメイン適応
          • 脳波は日毎に違うのでそれをドメイン適応で吸収する
        • Object Detection
          • 低次の特徴は強く一致
          • 高次の特徴は弱く一致
        • Sem.Seg.
          • 分布を合わせるときは,MCDでH-Div.の最小化
      • Disentangle

自動走行

話す内容

  • 自己位置推定, SLAM
  • 自動走行の課題と最新動向

自己位置推定,SLAM

  • 自己位置推定
    • 地図とセンサ観測をマッチング
    • 地図は更新しない
  • SLAM

    • 同時に自己位置推定と地図作成を行う
    • 地図を更新する
  • なぜ必要

    • 自動走行における処理の簡略化
    • 自動運転用の地図作成にSLAM必要
  • 歴史
    • 90年代
      • 自己位置推定の基礎ができる
    • 00年代
      • SLAMの基礎ができる
    • 10年代
      • GraphSLAM発展
        • 大規模環境下での地図作成が可能に
    • 00年代(V-SLAM)
    • 10年代(v-slam)

      • LSD-SLAM
        • 大規模な環境でもできる
    • 最近

      • VITAMINE-E提案
    • LiDARとv-SLAMの融合

      • 地図作成はliDAR
      • 自己位置は画像
      • これらの組み合わせ
  • 最近の研究

    • 深層学習とSLAMの融合
    • モデルベース,機械学習の両方抑える必要がある
  • 自動走行の課題

    • 性能保証
      • demoは多い
      • 性能保証や緊急対策がむずかしい
      • 推定結果の正しさも明示的に予測すべき
      • ロバスト性の向上
  • ロバスト性の向上
    • モデルの向上
  • 対応点探索を不要に
    • 画素をそのまま使って最適化
  • モデルと深層学習の融合
    • Sem.Seg.で画像のらベル推定できる
      • 自己位置推定に必要な静的な地物のみを見るようにする
  • 信頼性
    • 対応点の正しさを推定する
    • 深層学習で自己位置推定結果の正誤を予測
  • 全部深層学習でやってしまおう
  • 反復って点群位置合わせ
    • PointNetで点群マッチングを反復計算

点群

3次元点群とは

  • x,y,zの点の集合である
  • 画像との違い
    • 順番がバラバラ
  • 点群深層学習
    • PointNet以降増えた
  • 最近
    • CVPR2019
    • ICRA2019

点群深層学習

  • むずい
    • 順不同
    • 剛体変換にロバスト
    • スパース点群に対する畳み込み演算
  • 順不同
    • 点の順番が変わっても同じ形状
    • PointNetの解決方法
      • シンメトリック関数
        • 点ごとに対する特徴変換は順番に依存しない
        • Grobal Poolingならば順番に依存しない
          • 点群全体から集約した特徴量
  • 剛体変換不変性
    • 同じ物体であるが,並進・回転が発生するが同じクラスとして予測したい
    • PointNetの解決方法
      • Spatial Transfomer Network導入
        • 幾何変換のパラメータ推定
        • 入力と特徴量空間で変換
  • スパースな点群の畳み込み
    • Pointwise CNNのPointwise Conv
      • 剛体変換には対応できん
    • Tangent Conv.

    • Dynamic Graph CNN

      • エッジごとに特徴量計算
      • ノードごとにエッジの特徴量を集約

アプリケーション

  • ベンチマーク
  • Sem.Seg.
  • Detection
    • VoxelNet
  • ローカル位置合わせ
    • 3Dmatch
  • 大域位置合わせ
    • PointNetでルーカスカナデ
  • 形状補間
    • GANでオクルージョンを埋める

Pytorchのテンソルを取得してNumpy形式にする

AutoEncoderの潜在変数を可視化したい時にPytorchのテンソルを取得する手法で詰まったので書き留めておく.

 

GPU上で計算しているテンソルの値を取得する際には,

以下のように変換を噛ませる必要があった. 

 

PytorchのCUDA tensorをnumpyに変換

点群に関する表現学習手法の論文サーベイ

点群の表現学習に関する論文

Learning Localized Generative Models For 3D Point Clouds via Graph Convolution

3D-LMNet: Latent Embedding Matching for Accurate and Diverse 3D Point Cloud Reconstruction from a Single Image

実装はここ

Multiresolution Tree Networks for 3D Point Cloud Processing

実装はここ

3D Point Cloud Generative Adversarial Network Based on Tree Structured Graph Convolutions

Point Cloud GAN

SO-Net: Self-Organizing Network for Point Cloud Analysis

FoldingNet: Point Cloud Auto-encoder via Deep Grid Deformation

NeuralSampler: Euclidean Point Cloud Auto-Encoder and Sampler

Adversarial Autoencoders for Compact Representations of 3D Point Clouds

Learning Representations and Generative Models for 3D Point Clouds