kawasin73のブログ

技術記事とかいろんなことをかくブログです

未踏 Demo Day に行ってきた

ビールは 1 日 4 缶まで。どうもかわしんです。

2018 年度の未踏プロジェクトの Demo Day という名の成果発表会が秋葉原で 2/16 と 2/17 の2日間に渡って行われ、中高の同級生が未踏プロジェクトに採択されて発表するというので聞いてきました。

MITOU2018 Demo Day/2018年度(第25回)未踏IT人材発掘・育成事業 成果報告会 開催のご案内:IPA 独立行政法人 情報処理推進機構

懇親会でビールを 3 杯飲んで、家に帰ってからも感動が冷めやまず今ビールを 1 缶飲みながらこの記事を書いてます。

全体的な印象

話を聴きながら思ったことは、さすが未踏ということだけあって技術的にさらにもう一歩深掘りしているものが多かったということです。

テーマを聞いて僕なりにだいたいこんなことをするんだろうなということが考えつくのですが、そこまでは当たり前のように開発した上で、さらにもうひと押しして新しい機能を技術的課題を突破して開発し、システムの利便性を上げて報告会に望んでいるという印象を受けました。

なので、毎回期待を上回るものが聞けてワクワクしながら発表を聞くことができました。

また、そのもうひと押しというのはだいたい機械学習遺伝的アルゴリズムなどで解決していることが多かったです。

僕は流行りに惑わされることが嫌だったので機械学習はやらないと、あえて決めてシステム開発に振ってエンジニアをやってきましたが、アプリケーションをもうひと押し使いやすくするためのツールとして機械学習を入れ込むことが必要になってきているのではないかと感じさせられました。

面白かった発表

特に印象に残ったのは以下の発表です。

AI 実況プレイ動画生成の発表は、プレゼンテーションのクオリティが常軌を逸していました。

プレゼンはエンターテイメントショーだということをマジマジと見せつけられました。

僕はスティーブ・ジョブスとかのプレゼンが好きでその演出とかに感動してしまうタイプなのですが、完全にエンターテイメントとしてストーリーを構成されている上に、そのプレゼンを死ぬほど練習したんだろうなということがうかがえるくらい完璧なプレゼンでした。

プレゼンのストーリーに必要のない過多な情報は全て切り捨て、質疑応答に回すという大胆な方法で、圧倒的わかりやすさとストーリーの没入感を演出していました。

このプレゼンは、もう一度観たいと思うほど感動した発表でした。

また、研究の内容もマリオカートの実況動画を作るためのステップを3つに分割して、それぞれのステップの課題を解決するための技術開発を行なっていてものすごいクオリティでした。 それぞれのステップが 1 つプロダクトになるレベルのことをやっていました。

面白かったです。

これはシンプルにプロダクトの完成度とそのプロダクトによる世界への影響度が半端ないと感じました。

数文字の文字のフォントを作ることによって最大 34 万字のフォントを自動生成するのは誰でもフォントを作ることができるため革新的です。 フォント生成をサーバーサイドではなくここのブラウザ上で行うことでサーバーコストを抑えることができるという有益な特徴を持っています。

また、デモやプロモーションの動画がとてもワクワクさせられました。

これが 2 日間で一番興奮した発表です。

発表の動画のビジュアルの完成度は圧倒的で、プレゼンの構成やスライドの作り方などもすごく考えられているんだろうなと伝わりました。

3D プリンターに印刷以上の機能を持たせるという既存の固定概念をぶっ壊して 3D プリンタを再発明するというテーマで、おそらく世界で誰もやっていないだろうことをやっており、新しい未来を作るんだという心意気が伝わってきました。

しかし研究の内容はテーマの鮮やかな感じとは打って変わって、解決したい大きな目標に達するまでに発生する課題を一つ一つ地道に潰しながら次のステップに進み、また課題を潰して次のステップに進み、という泥臭さがあり、発表の鮮やかさ、テーマの鮮やかさの中からもその泥臭さが伝わってきて、この1年という時間を妥協せずにこの研究に費やしてきたんだなと感動しました。

てか、1.5mm ~ 2.3mm という絶妙な数値なんだよ。その1つ1つのステップでレベルで試行錯誤してるのかよ。どんだけ時間がかかるんだ。

まさに努力の結晶という言葉がぴったりなプロダクトでドン引きしました。

人型ロボットを小学生から作り続けている高校生 2 人による発表でした。手作りのロボットのモーションを初心者でも簡単に作れるようにするアプリケーションでした。

これはもうひと押しどころか、もうふた押しくらいあるような深みのある研究でした。

ロボットのモーションを GUI で作れるようになるためのプラグインの開発を終えた後に、シミュレータのモデルと現実のモデルの重さや重心を合わせるために、ロボットを分解することなく各パーツの重さや長さを様々なポーズをさせた時の重心の位置の違いによって計測するというシステムを開発し(ひと押し目)、さらに GUI で作ったモーション(例えば二足歩行)が作成者の意図通りになるように遺伝的アルゴリズムを使ってシミュレーションして自動的に最適化させる(ふた押し目)というものでした。

ユーザーが求めているのはモーションを簡単に作ることだけではなく、自分が求めている動きによって機能が達成されることですが、とことんまでユーザーに求められるものを追求し、それに必要な技術的な課題を突破していく様は鮮やかですらありました。 僕は発表を聞いていて声が漏れました。


これらの他にも面白い発表ばかりでしたが、そろそろ眠いのでこのくらいにします。

また、発表の内容は後々 IPA の youtube で公開されるそうなので見てみてください。

発表でとったメモ

以下は、発表でとったメモです。両日とも遅刻していったので最初の発表のメモは薄いです。

また、メモの内容が薄い部分は僕がその発表に集中しすぎてメモを取ることを忘れてしまっているのでご容赦ください。


1 日目


タブ分類ブラウザ

氾濫するタブ一覧を自動で整理するモバイルブラウザ

モバイルブラウザのタブでメモを取る

キーワードだけでなく検索結果も含まれるから思い出しやすい

Search for Later メソッド

Leita

1週目のリテンションが悪い

ゲーム実況AI

マリオカートの実況をする

  • 見る
  • 感じる
  • 話す

見る

画面上の出来事を認識する

深層学習

  • 画像認識
    • CNN
  • 動作認識
    • LRCN
    • 1秒分の動作を認識
  • 物体検出
    • SSD
    • どこになるがあるかを検出

学習用のデータがない マリオカートコーパスの収集システムも作った

感じる

感情 ラッセルの感情モデル

喜怒哀楽の4つの感情を表す

ルールベース?

人間からデータをもらう プレイ中の心拍数

話す

どんなときにどんなリアクションをするのか。 既存の実況動画を分析する

毎回おなじリアクションになってしまう

自分なりのリアクションを生み出す

RNN を使う 多様なリアクションを取れる

リアクションを自動分類

展望

いろいろなゲームを実況する ゲームに関係ないことも話す

何をしようという意思は実況できるか?

顔の外見を変える顔拡張マスクの開発

お面

  • 正体を隠す
  • なりたい人やものに変化する

顔前面にディスプレイを設置 うまくいかなかった。思い、視界が悪い

お面を土台に

  • フォトクロミズムと赤外線ライト
    • 小型化が困難
    • 明るいところでは見えにくい

設計方針を決める

サーモクロミックと加熱回路層

銀ナノインクでプリントすることで回路をつくることを容易にした

ヒルベルト回路

文字形状を自動生成する Web フォント制作支援ソフトウェア

DeepGlyph

日本語フォントは、漢字が多いため制作コストが高い そのため日本語フォントは普及していない

普及させるために制作支援ソフトウェアを作った

ベクターデータとラスタデータをシームレスに行き来できる

生成の仕組み

深層学習を利用したスタイル変換

文字を画像として生成する

  • Content Reference
  • Style Reference

GAN でクロリティの高い書体を作り出す GAN を導入すると直線や曲線がなめらかになる

生成されたフォントの評価が難しい

Seed component 元になる文字

Glyph Wiki 34万字

WebDNN プレビュー Webブラウザ上で深層ニューラルネットワークの推論を行える

生成のコストを個々のマシンに負担させることができる

初心者でも作れる

https://deepglyph.app

配信もできるようにしたい

なんで10個なのか Seed component

C++ パッケージマネージャ

conan がある 使いづらい

poac

コミュニケーションロボットの会話制御ソフトウェア

なにを会話すればいいかわからない。 ロボットを十分に活用できていない

複数のロボット同士が会話する

同じ外見やアーキテクチャのロボット同士で会話する

GUI によるロボットプログラミング 1体の利用を想定した環境 できることは限られている

Roboript

  • Sota
  • Robohon
  • Pepper
  • Nao

ブロックベースの GUI プログラミング

話す順番を制御できる

Android アプリでプログラミング

ROS で通信 Android アプリが制御する ステップでブロックを当てはめる

ロボット場でロボットを制御するアプリを動かせる

保険で実証実験 子供を惹きつける

あらゆるアセットを管理するビジネスロジックを兼ね備えた汎用型分散台帳基盤の開発

リエータがシステム運営者を選ぶ

活動が、ビットコインにおけるマイニングの代替となる

Proof of Creator

フォロー・フォロワーの有向グラフで表現

Proskenion

Merkle Patricia Tree

3D プリンタ

印刷以外もできるようにする

動くものを 3D ぷりんたで 破壊可能

3D プリンタの普及

印刷していないときのほうが長い これからは 3D プリンタが余る

直交ロボットだからプリント以外できるのは当たり前といえば当たり前

3D プリンタがその機能になる

エンドエフェクタ

エンドエフェクタ。ロボットの手みたいなもの 着脱可能なエンドエフェクタ

エンドエフェクタを 3D プリンタが印刷する

動くものを印刷する造形手法

中空にサポート材が必要

  • フィラメントのタレを利用

接地面と離れるくらいの厚みのタレをつくる

  • 剥がす・剥がさない

剥がれる場所 接地面を大きくする ガラスプレートに押し付ける

剥がれない場所 接地面を小さくするために、小さな柱をつける

  • 橋渡し

中空を作れる 柱を縁で繋いで橋渡しをする

  • 破壊可能なサポート材

3D プリンタでサポート材を破壊する

45 度だとサポート材のサポート材が必要ない

吹っ飛ばすために応力シミュレーションをする

  • 組み立て

ベベルギア 複雑な形状だと破壊できるサポート材でもできない

印刷後に組み立てる

デザインソフトウェア

パスを組み立てる

G-code を生成する

CAD 空間上と 3Dプランタうえの配置をする

エンドエフェクタの先端とエクストルーダの座標はことなるため

既存の3Dプリンタ

印刷いがいの動きを 3D プリンタに命令できるようにした

まとめ

  • 削ることができる
  • ディスプレイ表示
  • 既存のものを動かす

使わなくなったフィラメントを再利用 その場にあるものをふぃらめんとにする

宇宙開発でやくだつ


2 日目


認識 AI を迅速に賢くするフレームワークの構築

物体の画像認識

多視点画像収集 ロボットアームで多視点の画像を撮ることができる

自動アノテーション ものの周囲にAR マーカーを置くことで画像のものの輪郭を推測し、四角で囲む

15時間 -> 4分

学習データの準備

画像収集

ロボットアームのカメラ 回転ステージ

配置換えを自動化

画像を採用するかは特許技術になる

変形に対応できる さまざまな大きさに対応できる

ヒューマノイドロボット

人間型のロボット

ロボットの設計手法を情報発信してきた

知識がなくても動作をつくれる

歩かせるまでに9ヶ月かかった

40 分で素人ができるようになった

機体のモデルをつくる必要がある 重さなどが必要 分解しないで測る

Reficere 2分で1パーツ計測できる 重心センサーでわかる

誤差は 1.8%

Blender という 3DCG のソフトウェア ロボット用ではない

BlendMotion というアドオン

思った通りに動くようにシミュレーション環境で遺伝的アルゴリズムで試行錯誤する

倒れないように学習させる

ざっくりうごきをつくって、遺伝的アルゴリズムで最適化する 目的関数はどうするのか Blender の中で設定できる

分野限定型検索エンジンと分散型検索エンジン

kearch

自由な検索エンジンをつくる

作るのに莫大なリソースが必要

検索エンジンの不透明性

小リソースでだれでもデプロイ可能 アルゴリズムが公開 検閲ができない

分野を限定した検索エンジンを複数つなぎ合わせる

メタ検索エンジン、専門検索エンジン

専門検索エンジン

フォーカスクローリング 分野を限定する

メタ検索エンジン

Federated search

ユーザのクエリから専門検索エンジンを選ぶ

省リソース

専門分野のせってい

単語のリスト 起点となるURLのリスト

public と protected を選べる

Google とも接続できる

分野を学習する

分野外は辿らない

専門検索エンジンからメタ検索エンジンにサマリーをおくって、メタ検索エンジンのクエリの判断に役立てる

くろーるできているのか

起点となる URL 出てくるのは有用な情報になるのか?

ユーザのクエリを全てに流しているのか? 複数の場合はどのようにマージするのか 上位3つにクエリを投げる

一人称ライフログ映像から顔検出に基づいた社会活動量計の開発

ユーザ近傍におけるコンピューティング環境の開発

ローカル環境で使える物理基盤

便利な機能をパッケージ化

  • ネットワーク提供
  • 情報共有などのサービス提供

インターネットやネットワーク環境がなくてもサービスを提供できる

遠隔地との通信が不安定(遅延、トラフィックの集中)になる欠点がある

エッジコンピューティングが解決策

閉じた環境での共有ならクラウドサービスを使わなくてもいいのではないか

エッジコンピューティングの課題

  • ネットワーク構築
    • 設置する機材
  • システム運用
    • 故障、移動
  • コンピュータ制御機構
    • 柔軟に制御

一眼レフカメラのケースに入るくらい

tiparcel

ラズパイをアクセスポイントとして運用する 72Mbps

1万円のルーターは 800Mbps

72Mbps でも youtube 6台使えるくらい十分

電子ペーパーをモニタにした

Captive Portal は認証画面を自動で出す機能

認証画面ではなくサービス画面をだす

ストレージを気にした

ハードウェアを含めてパッケージ化されている ソフトウェアとして汎用化できないか その課題はなにか

ネットワークブートに依存している バイナリが arm に依存している

将来的にはシングルボードで動かしていく方針

NVDIMM 向けファイルシステムの開発

AEON

strace

システムコールの中身が違う

VMDIMM 不揮発性 RAM 速くて永続化する

速度を追求した設計 領域の使用効率をあげる

NOVA NVDIMM 専用ファイルシステム

スケーラビリティがある

使用効率をあげる

透過圧縮

設計

全体にカーネルアドレス空間マッピング

先頭からのオフセットで全体を管理

カーネルからユーザランドへコピー mmap で直接みれる?

Consistency Without Ordering ジャーナリングは使わずに、ポインタを相互に張る

対応したシステムコール

SSD との違い もっと早いだけ

DAX で直接読み書きする

設計がどのように変わるのか ブロック単位でなくてバイト単位でアクセスできるのが特徴

複数のプロセスが同時にアクセスできる

機械学習を用いたロボット制御のための汎用システムの開発

故障に強いロボット制御

  • 環境の変化
    • ゴミが落ちた床
  • 不測のトラブル
    • 故障
    • ケーブル破損

環境の変化は歩行で対応する

  • 真っ直ぐに進む
  • 妥当な動作

手法

  • 強化学習
    • 時間がかかる
    • 報酬設計が難しい
    • 予期した動きになるとは限らない
    • ロボットが壊れてしまう
  • シミュレーション上での学習
    • Sim to Real
    • 現実がちがう。床との摩擦、出力トルク
    • 強化学習とおなじデメリット
  • 既存歩行パターンの改善
    • 基本パターンから学習を開始
    • 馬など

具体的に

  • 基本歩行パターンから高評価なものを選定
  • 初期位置に関して学習
  • 動作パターンを学習
    • 壊れることによって無駄な動きがでてくるが省略することができる

初期位置が重要な理由

壊れた足を補うようにバランスを取る必要がある 脚の先端位置を微調整できるようになっている 初期位置を学習した

10~20分で学習できる

マーカーをつけて、カメラで撮影して正しく動いているかを判定する

プログラミングしたほうが早いのではないか? ちょっとしたズレを見抜いて最適なものをやってくれる

反復運動に特化しているかもしれない

ボルダリングコース作成支援アプリケーション

課題帳にコースが表示されている 身長によって向き不向きなコースがある

  • ホールド難易度の推定
  • コース作成支援
  • 身長情報の反映

折り紙

折り紙技術を利用する

Crane

複雑な折り紙アート

変形を構造で制御する

剛体折り紙

折り紙の本質

  • 平面から立体へ
  • 硬くなる
  • 動きの制御
    • 一箇所を動かすと全体が動く

折り紙技術は実用化されていない 作るのが難しいから

頂点の周りの角度の総和が 2π になるような制約条件がある

製造用データのソフトウェア CAM がない

厚みが障壁となる 厚み処理ソフトが存在しない

Rhinoceros + Grasshopper を使う