ビールは 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ブラウザ上で深層ニューラルネットワークの推論を行える
生成のコストを個々のマシンに負担させることができる
初心者でも作れる
配信もできるようにしたい
なんで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 専用ファイルシステム
スケーラビリティがある
使用効率をあげる
透過圧縮
設計
先頭からのオフセットで全体を管理
Consistency Without Ordering ジャーナリングは使わずに、ポインタを相互に張る
対応したシステムコール
SSD との違い もっと早いだけ
DAX で直接読み書きする
設計がどのように変わるのか ブロック単位でなくてバイト単位でアクセスできるのが特徴
複数のプロセスが同時にアクセスできる
機械学習を用いたロボット制御のための汎用システムの開発
故障に強いロボット制御
- 環境の変化
- ゴミが落ちた床
- 不測のトラブル
- 故障
- ケーブル破損
環境の変化は歩行で対応する
- 真っ直ぐに進む
- 妥当な動作
手法
- 強化学習
- 時間がかかる
- 報酬設計が難しい
- 予期した動きになるとは限らない
- ロボットが壊れてしまう
- シミュレーション上での学習
- Sim to Real
- 現実がちがう。床との摩擦、出力トルク
- 強化学習とおなじデメリット
- 既存歩行パターンの改善
- 基本パターンから学習を開始
- 馬など
具体的に
- 基本歩行パターンから高評価なものを選定
- 初期位置に関して学習
- 動作パターンを学習
- 壊れることによって無駄な動きがでてくるが省略することができる
初期位置が重要な理由
壊れた足を補うようにバランスを取る必要がある 脚の先端位置を微調整できるようになっている 初期位置を学習した
10~20分で学習できる
マーカーをつけて、カメラで撮影して正しく動いているかを判定する
プログラミングしたほうが早いのではないか? ちょっとしたズレを見抜いて最適なものをやってくれる
反復運動に特化しているかもしれない
ボルダリングコース作成支援アプリケーション
課題帳にコースが表示されている 身長によって向き不向きなコースがある
- ホールド難易度の推定
- コース作成支援
- 身長情報の反映
折り紙
折り紙技術を利用する
Crane
複雑な折り紙アート
変形を構造で制御する
剛体折り紙
折り紙の本質
- 平面から立体へ
- 硬くなる
- 動きの制御
- 一箇所を動かすと全体が動く
折り紙技術は実用化されていない 作るのが難しいから
頂点の周りの角度の総和が 2π になるような制約条件がある
製造用データのソフトウェア CAM がない
厚みが障壁となる 厚み処理ソフトが存在しない
Rhinoceros + Grasshopper を使う