エクサウィザーズ Engineer Blog

株式会社エクサウィザーズのエンジニアチームブログ

論文がネイチャーの姉妹誌「Nature Protocols」に掲載されました

こんにちは、エクサウィザーズの遠藤太一郎です。

私が参加した研究プロジェクトの成果が英科学誌「Nature Protocols」に掲載されましたので、ご報告です。 細胞を画像解析し、自動で分類する仕組みの再現方法などを、詳細に記述しています。 前回のCell掲載に引き続き、画像解析の深層学習のところで貢献しました。

論文は以下のURLから確認可能です。

https://www.nature.com/articles/s41596-019-0183-1

f:id:taichiroendo:20190708162740p:plain 本論文より引用

エクサウィザーズでは各種大学や研究機関と、共同研究を始めとし様々な連携を行っています。技術顧問の先生方とのディスカッションを始め、京都大学・理研AIPとの機械学習勉強会など、共催のイベントなども積極的に開催しています。

優秀なエンジニア、社会課題を一緒に解決してくれる魔法使い”ウィザーズ”を募集していますので、ご興味を持たれた方はぜひご応募ください。 採用情報|株式会社エクサウィザーズ

ExaWizards Engineer Blogでは、定期的にAIなどの技術情報を発信していきます。Twitter (https://twitter.com/BlogExawizards) で更新情報を配信していきますので、ぜひフォローをよろしくお願いします!

ディープラーニング初心者の僕がエクサウィザーズで6週間インターンして圧倒的成長した話

はじめに

はじめまして。エクサウィザーズでインターン生としてお世話になりました中野と申します。
このブログを通して、エクサウィザーズでのインターンの雰囲気やどんなことが学べるのかが伝わればと思います。

自己紹介

京都大学の修士一年生で、機械の制御について研究しています。
フィリピン旅行で力こそ正義だと気づき、最近ボクシングをはじめました。
インターン開始時、ディープラーニングを除く機械学習の経験は多少あったものの、ディープラーニング実装の経験はほとんどありませんでした。

やったこと①

概要

この、DonkeyCarというメカメカしいラジコンの自動運転に挑戦しました。
香港から輸入することで購入できます。日本円にしてだいたい35000円だそうです。

f:id:sonias:20190205135137p:plain

余談ですが、ドンキーというと某ゴリラを想像したのですが、ロバという意味らしいです。

組み立て

f:id:sonias:20190205151021p:plain

f:id:sonias:20190205151019p:plain

プラモデルの組み立てのようで楽しかったです。
ハンダ付けなどは不要でした
配線の解説ページが見つからず苦労しましたが、脳死して総当たりすることで無事通電させることができました。 その他にも、公式サイトが不親切なためデフォルトでないログインパスワードがわからないなど、ハマることが多々ありましたが、メンターの小野さんに相談し、何度も助けていただきました。

学習

教師データとして、DonkeyCar視点の画像を入力とし、その時のスロットルとタイヤの角度を出力としたデータを用い、DonkeyCar視点の画像からスロットルとタイヤの角度を算出するモデルを作成しました。 ネットワークはNVIDIAのPilotNetを参考に作成しました。 DonkeyCarにはシミュレーションソフトが存在するため、シミュレーション上でのデータでモデルを作成し、その後現実のデータで転移学習し、実機で自動運転を行う、という方針で学習を進めました。 以下、今回使用したネットワーク図です。

f:id:sonias:20190205173600p:plain

シミュレーション

教師データ作成

シミュレーションでの教師データは、道路の中心線に追従するPID制御で取得します。 PID制御の神パラメータを探し当て、教師データを作成しました。

自動運転

シミュレーション上のランダムに生成されたデータのみで学習したモデルで走行している様子が以下になります。 カーブなどにも対応しているのが見て取れます。

f:id:sonias:20190206122819g:plain

実運転

教師データ作成

転移学習のための実機で教師データを取得しました。 データ取得の際の操作はPS4コントローラーで行いました。データに関しては先程と同様に、カメラが取得した画像とその時のスロットルとタイヤの角度が紐ついて保存されます。 余計なデータが入らぬよう頑張るうちに、操作が熟練しました。

f:id:sonias:20190226150024p:plain

1本線上を走行

追従していることが見て取れます!!

2本線の間を走行

先程より難しいのか、最後にコースアウトしていますが、追従している様子が見て取れます!

考察・展望

  • シミュレーションではタイヤの角度を急に変化できるが、実機だと連続的にしか変化できないなどといった、実機とシミュレーションの違いを転移学習でうまく調整できました。
  • 2本線の場合だとコースアウトしたときのデータセットが必要そう。(1本線だとコースアウトが存在しないため)
  • RasberryPiの計算能力上げて画像処理を挟んだり、処理を複雑化してみたいです。

大変だったこと

マニュアル通りの環境だとプログラムが動かず、環境構築が大変でした。
メンターの小野さんに相談しまくることでなんとか解決しました。

やったこと②

概要

Dueling DQNという深層強化学習を用いた自動運転をシミュレーション上で実装して、挙動を検証しました。

学習

学習風景です。 報酬を、道路の中心ラインに近いほど大きく設定し、入力をDonkeyCar視点の画像に対して、タイヤの角度を学習しました。

f:id:sonias:20190205154512g:plain

以下、ネットワーク図になります。 f:id:sonias:20190205180539p:plain

結果

スムーズではありませんが、コースを示すラインに反応し動いています。

f:id:sonias:20190205174411g:plain

考察・展望

  • 道路の中心方向にタイヤの角度を向けても、短期的に見れば中心方向から離れていくことが起きているので、それを考慮できるアルゴリズムを適応すればどうなるか検証してみたいです。

タイムスケジュール

参考にですが、どのようなタイムスケジュールでおこなったかを記しておきます。
ほとんど進捗の無い週がありますが、サボっていたわけではなく、それだけ自由にシフトを組ませていただいたということですので、あしからず。

1週目

  • ディープラーニングの学習
  • ディープラーニングのネットワークの論文読み
  • WideResNetやLTSMをPytorchで実装

2週目

  • DonkeyCar組み立て

3週目

  • 走行コース作成
  • 走行モデル学習
  • RaspberryPi環境構築

4週目

  • 強化学習の学習
  • RaspberryPi環境構築

5週目

  • 強化学習実装
  • 実機データ収集

6週目以降

  • 実機自動運転

環境

内装

きれいで過ごしやすかったです。
おやつ、バリスタ使い放題でだったため、たくさん利用させていただきました。
バリスタで作るコーヒー美味しかったです。 f:id:sonias:20190205134641p:plain

就活相談

リクルート出身の半田さんが就活相談に乗ってくださりました。
就活を深く考えず進めようとしていた僕でしたが、半田さんへの相談により、軸や着眼点が明確になり、時間が無い中で就活を効率的に進める方法を理解しました。
また、僕の要望に応じて、外資金融や最大手SIer出身の社員の方とのミーティングを設定していただき、その点においてもキャリアを考えることにおいて大変参考になりました。

プログラミング環境

  • MacBookProメモリ16GB付与+社内GPU使い放題でした。
  • 無限に書籍買ってもらえました。
  • インターン生のためsudo権限が無いことで環境設定で少し詰まりました。

通勤・待遇

京都大学から徒歩1分。
シフトが柔軟に組めて、インターンが研究会やテストの阻害になることも一切ありませんでした。
給料をいただきながら勉強させてもらえるので、プログラミングに抵抗ない人はとりあえずインターン応募すべきだと思いました。夜勤で命削っていたころよりも給料が高くて衝撃でした。
もっと早く知りたかったなぁという気持ちがあります。 東京の学生は機会に恵まれていて羨ましい。。

最後に

2ヶ月という限られた時間でしたが、得られるのもが大きく濃密なインターンとなりました。
メンターの小野さんが実践と理論をいい感じに組み合わせてわかりやすく教えてくださり、ディープラーニングを学ぶ最短ルートを歩めたように思います。 そのおかげで、ディープラーニング初心者は脱することができたように感じます。
社員の皆さん、メンターの小野さん、2ヶ月間ありがとうございました。

画像の内容をAIが文章で答えるデモ

f:id:kentaro-suto:20190124195850j:plain

こんにちは。エクサウィザーズAIエンジニアの須藤です。

エクサウィザーズ が提供しているAIプラットフォームexaBaseに、「画像の内容をAIが答える」という事例があります。 画像解析とテキスト生成という、ディープラーニングでも特に成功している分野の組み合わせであり、いかにも人工知能らしい応用例となっています。

今回、これをWebブラウザ環境に移植できたので報告します。 いつもよりモデルが大規模なため動作環境が限られるのですが、特別な設定などは必要ありませんので、気軽に試していただきたいと思います。

作り方

このアプリケーションは、画像解析を担当する学習済みInceptionモデル*1と、テキスト生成を担当するLSTMモデルの2つで構成されています。 処理の流れは以下の通りです。

  1. 必要なモデルを読み込む。
  2. 画像を取得する。
  3. 画像をデータに変換する。
  4. 画像データをInceptionモデルに与え、特徴量を得る。
  5. LSTMモデルに、特徴量と開始コードを与え、次の単語の確率を推論する。
  6. 最も確率の大きい単語を選び、画面に書き出す。
  7. LSTMモデルに、特徴量と選んだ単語の番号を与え、次の単語の確率を推論する。
  8. 終端コードが選ばれるまで4と5を繰り返す。

元のコードはPython + Kerasで書かれていました。 これをJavaScript + Tensorflow.jsに書き直します。 読み込みや推論など、元々フレームワークを使用していた部分は、JavaScriptでも同等の機能で置き換えることができます。 その他のPythonで直接記述されていた部分は、JavaScriptに翻訳する必要があります。

また、オリジナルのモデルでMergeレイヤーが使われていましたが、これはTensorflow.jsがまだ扱えないクラスです。 Concatenateレイヤーを使ってモデルを書き直す必要がありました。

動作環境

モデルの規模が大きくメモリを大量に消費するためか、動作できる環境が限られます。 参考までに私の環境での検証結果を示します。 ハード環境によっては異なる結果になるかもしれません。

プラットフォーム ブラウザ バージョン 対応状況
macOS Safari 12 × 実行途中で再読み込み
macOS Chrome 71
macOS Firefox 64
macOS Opera 57 × 読み込みでエラー
Windows IE 11 × JavaScriptが未対応
Windows Edge 42 x 読み込み中に再読み込み
Windows Chrome 71 × 読み込みでエラー
Windows Firefox 64
Windows Opera 58 × 読み込みでエラー

使い方

  1. このページにアクセスしてください。 https://base.exawizards.com/view/modelDetail?id=41

  2. ページの中ほどのリンクをクリックして、しばらくお待ちください。 f:id:kentaro-suto:20190124182906p:plain

  3. 2つのモデルを別々に読み込んでいます。このように表示されたら折り返し地点です。 f:id:kentaro-suto:20190124185412p:plain

  4. UIが表示されたら、サンプル画像を選択するか、ローカルファイルを読み込ませてください。 f:id:kentaro-suto:20190124185754p:plain

5.画像を説明するテキストが表示されます。 f:id:kentaro-suto:20190124185923p:plain

結果の例

手持ちの画像で検証しました。

画像 テキスト ひとこと
f:id:kentaro-suto:20190124190550j:plain two white and white cat standing on top on the roof 白茶でなくて白白なのが惜しいですが、ほぼ合っています。
f:id:kentaro-suto:20190125133238j:plain cows are standing on the grass near the grass たまに同じ言葉を繰り返します。
f:id:kentaro-suto:20190124191659j:plain the snow covered street is covered with snow 雪が積もりまくっていますね。
f:id:kentaro-suto:20190124192218j:plain the cake is on the plate with the other fruit ばななが入ったお菓子、正解です。
f:id:kentaro-suto:20190124190820j:plain an open box with some food on it 国籍も不明だし、なるほどなんらかの食べ物としか言えませんね。
f:id:kentaro-suto:20190124192613j:plain there is some food that is on the table とにかく食べ物なことはわかるようです。
f:id:kentaro-suto:20190124192917j:plain the yellow flower is growing on the side オレンジの花が嫌いなんでしょうか。
f:id:kentaro-suto:20190124193151j:plain cars parked on the side walk near trees うまくいっている例です。
f:id:kentaro-suto:20190124193727j:plain the seagull is standing on the boardwalk near the stairs 階段も遊歩道も実は近くにあります。「ありそうな雰囲気」で判断しているのかもしれません。
f:id:kentaro-suto:20190124193331j:plain an image shows an image on the page to describe 説明できていない感じが伝わります。

まとめ

ブラウザ上で動く、画像の内容をAIが答えるデモを作りました。

尚、エクサウィザーズは優秀なエンジニア、社会課題を一緒に解決してくれる魔法使い”ウィザーズ”を募集しています。ご興味を持たれた方はぜひご応募ください。 採用情報|株式会社エクサウィザーズ

ExaWizards Engineer Blogでは、定期的にAIなどの技術情報を発信していきます。Twitter (https://twitter.com/BlogExawizards) で更新情報を配信していきますので、ぜひフォローをよろしくお願いします!

*1:Inceptionモデルの重みは Apacheライセンスの下で公開されています

ブラウザで動く落書き判定モデルの作り方

はじめに

こんにちは。エクサウィザーズAIエンジニアの須藤です。

昨年の弊社忘年会の出し物として、落書き判定モデルを作りました。 お題に合わせて絵を書いて、AIにそれと判定させたら勝ちになるゲームです。 思いのほかちゃんと判定してくれて、ほっとしました。 取り立てて目新しさはありませんが、皆さんにも遊んでいただきたいと思い、ここで紹介します。

exaBaseのモデル詳細ページで実際に遊べます。 ブラウザだけで動作しますので、お気軽にお試しください。

データセット

Googleが提供しているQuick, Draw!というゲームのデータを使用します。 これは、お題に合う絵を描いて、AIに判定してもらうというゲームです。 制限時間は20秒で、AIが候補に挙げた時点でクリアとなります。 世界中のプレーヤーによって描かれた絵が、学習用データベースとして無償で提供されています

データセットには

  • ストローク
  • ストロークを画像(28x28x1)にしたもの
  • カテゴリー
  • 国情報
  • 時刻情報

などが含まれています。今回は画像とカテゴリーだけを用いて学習を行います。 ストロークを利用する学習モデルについては、以前の川畑さんの記事をご覧ください。

画像データはカテゴリー別にNumPy形式のバイナリファイルになっていて、Pythonで

np.load('cat.npy', mmap_mode='r')

とすると読み込むことができます。 1500万人が遊んだというだけあって、約5千万サンプル、約40GBの巨大なデータです。

カテゴリーは以下の通りで、全部で347あります。

エッフェル塔 万里の長城 モナリザ 空母 飛行機 目覚まし時計 救急車 天使 動物の移動 蟻 金床 りんご 腕 アスパラガス 斧 バックパック バナナ 包帯 納屋 バット 野球 バスケット バスケットボール コウモリ バスタブ ビーチ くま あごひげ ベッド 蜂 ベルト ベンチ 自転車 双眼鏡 鳥 誕生日ケーキ ブラックベリー ブルーベリー 本 ブーメラン ボトルキャップ 蝶ネクタイ ブレスレット 脳 パン 橋 ブロッコリー ほうき バケツ ブルドーザー バス ブッシュ 蝶 サボテン ケーキ 電卓 カレンダー ラクダ カメラ 迷彩 キャンプファイヤー ろうそく 大砲 カヌー 車 人参 城 ネコ 天井ファン 携帯電話 チェロ 椅子 シャンデリア 教会 サークル クラリネット 時計 雲 コーヒーカップ コンパス コンピューター クッキー 冷却装置 ソファー 牛 カニ クレヨン クロコダイル 王冠 遊覧船 カップ ダイヤモンド 食器洗い機 飛び込み台 犬 イルカ ドーナツ ドア ドラゴン 化粧ダンス ドリル ドラム アヒル ダンベル 耳 肘 象 封筒 消しゴム 眼 めがね 面 扇風機 羽 柵 指 消火栓 暖炉 消防車 魚 フラミンゴ 懐中電灯 ビーチサンダル フロアランプ 花 空飛ぶ円盤 足 フォーク カエル フライパン 庭用ホース 庭 キリン あごひげ ゴルフクラブ ぶどう 草 ギター ハンバーガー ハンマー 手 ハープ 帽子 ヘッドホン ハリネズミ ヘリコプター ヘルメット 六角形 ホッケーパック ホッケースティック 馬 病院 熱気球 ホットドッグ 温水浴槽 砂時計 観葉植物 家 ハリケーン アイスクリーム ジャケット 刑務所 カンガルー 鍵 キーボード 膝 ナイフ はしご ランタン ノートパソコン 葉 脚 電球 ライター 灯台 稲妻 線 ライオン 口紅 ロブスター ロリポップ メールボックス 地図 マーカー マッチ メガホン マーメイド マイクロフォン 電子レンジ 猿 月 蚊 バイク 山 マウス 口ひげ 口 マグカップ キノコ 爪 ネックレス 鼻 海洋 八角形 たこ 玉ねぎ オーブン ふくろう ペンキ缶 絵筆 ヤシの木 パンダ ズボン ペーパークリップ パラシュート オウム パスポート 落花生 梨 豆 鉛筆 ペンギン ピアノ ピックアップトラック 額縁 豚 枕 パイナップル ピザ ペンチ 警察車 池 プール アイスキャンデー はがき じゃがいも コンセント 財布 ウサギ アライグマ 無線 雨 虹 レーキ リモコン サイ ライフル 川 ジェットコースター ローラースケート ヨット サンドイッチ のこぎり サックス スクールバス はさみ サソリ ドライバー ウミガメ シーソー 鮫 羊 靴 ショーツ シャベル シンク スケートボード 頭蓋骨 超高層ビル 寝袋 笑顔 かたつむり ヘビ スノーケル スノーフレーク 雪だるま サッカーボール 靴下 快速艇 クモ スプーン スプレッドシート 四角 殴り書き リス 階段 星 ステーキ ステレオ 聴診器 縫い目 一時停止標識 コンロ イチゴ 街路灯 サヤインゲン 潜水艦 スーツケース 太陽 白鳥 セーター スイングセット 剣 注射器 Tシャツ テーブル ティーポット テディベア 電話 テレビ テニスラケット テント 虎 トースター つま先 トイレ 歯 歯ブラシ 歯磨き粉 竜巻 トラクター 信号機 列車 木 三角形 トロンボーン トラック トランペット 傘 下着 バン 花瓶 バイオリン 洗濯機 スイカ ウォータースライダー 鯨 ホイール 風車 ワインボトル ワイングラス 腕時計 ヨガ シマウマ ジグザグ

画像を可視化してみると、かなり雑で記号的な絵になっていることがわかります。

f:id:kentaro-suto:20190110180140j:plain f:id:kentaro-suto:20190110180208j:plain f:id:kentaro-suto:20190110180218j:plain f:id:kentaro-suto:20190121170519j:plain f:id:kentaro-suto:20190121170607j:plain f:id:kentaro-suto:20190121170631j:plain f:id:kentaro-suto:20190121170716j:plain f:id:kentaro-suto:20190121170745j:plain f:id:kentaro-suto:20190121170815j:plain f:id:kentaro-suto:20190121170851j:plain

モデル

畳み込みと全結合による、ごくシンプルなモデルです。 Python+Kerasで実装しました。

model = Sequential()
model.add(Reshape((28,28,1), input_shape=(784,)))
model.add(Conv2D(64, 5, padding='same')) #畳み込み
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Conv2D(64, 5, padding='same'))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(MaxPooling2D())
model.add(Conv2D(128, 5, padding='same'))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Conv2D(128, 5, padding='same'))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(MaxPooling2D())
model.add(Conv2D(128, 5, padding='same'))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Conv2D(128, 5, padding='same'))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Flatten()) #ここから全結合
model.add(Dense(1024, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(345, activation='softmax'))
model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

学習

データセットからランダムにサンプルを選んで、入力(画像データ)から出力(カテゴリーごとの確率)が得られるように、学習を行います。

学習量は

  • バッチサイズ=100
  • ステップ数=40000
  • エポック数=100
  • のべ=4億サンプル

でした。

インターフェイスと使い方

使い方を、実装詳細とともに解説します。 インターフェイスはHTML+JavaScript+Tensorflow.jsで作成しました。 Tensorflow.jsの基本的な使い方については以前の記事をご参照ください。

1.ページを開く

このページにアクセスします。 ページを開くとすぐに読み込みが始まります。 ダウンロードデータは全部で8.4MBあります。ネットワーク環境によってはお時間をいただくかもしれません。

2.絵を描く

ページ全体がキャンバスになっています。 ドラッグで線を描いてください。 f:id:kentaro-suto:20190111194202p:plain

判定時には線が描かれた領域だけがモデルに合わせてリサイズされるので、どこにどんな大きさで描いても大丈夫です。 間違えたら「リセット」で全消去できます。

リサイズで線の太さがバラつかないように、線を描画するとき、同時にストロークデータとしても保存しています。

3.判定させる

「送信」ボタンを押すと判定処理を開始します。

保存したストロークデータを用いて28×28の領域に再描画をします*1。 描いたピクセルを配列に変換し*2、モデルに入力します。

4.結果を見る

判定結果を表示します。

f:id:kentaro-suto:20190111195534p:plain

モデルの出力は各カテゴリーの確率として得られます。 その中で、最も大きなものに対応するカテゴリー名を表示します。 他のカテゴリーの確率は、詳細をクリックすると見られるテーブルに書き出します。

実行例

f:id:kentaro-suto:20190111200253p:plain f:id:kentaro-suto:20190111200309p:plain f:id:kentaro-suto:20190111200346p:plain f:id:kentaro-suto:20190115103611p:plain
これはドアで、 これが枕です。 四角と判定させるには、場違いな正確さが要求されます。 円については、そこまでシビアではありません。
f:id:kentaro-suto:20190111200204p:plain f:id:kentaro-suto:20190115103907p:plain f:id:kentaro-suto:20190111203526p:plain f:id:kentaro-suto:20190115101151p:plain
うっかりネコにしましまを描くと、高確率で虎になります。 学習データ全部、殴り書きのようなものなので、 リアルさにこだわると、却って判別されないことがあります。 極限まで図案化するのがいいようです。
f:id:kentaro-suto:20190115143611p:plain f:id:kentaro-suto:20190111202410p:plain f:id:kentaro-suto:20190115143713p:plain f:id:kentaro-suto:20190111201550p:plain
よくわからないなにかを描いても 必ず、347カテゴリーのどれかに判定します。 難しそうなカテゴリーも 意外に簡単な特徴で判定している場合があります。

まとめ

落書き判定モデルを作りました。 花とか月といった、誰でも同じようになる絵は高い精度で認識します。 期待通りに認識しない場合もありますが、間違い方に妙な納得感があったりします。 機械学習の面白くて不思議なところです。

尚、エクサウィザーズは優秀なエンジニア、社会課題を一緒に解決してくれる魔法使い”ウィザーズ”を募集しています。ご興味を持たれた方はぜひご応募ください。 採用情報|株式会社エクサウィザーズ

ExaWizards Engineer Blogでは、定期的にAIなどの技術情報を発信していきます。Twitter (https://twitter.com/BlogExawizards) で更新情報を配信していきますので、ぜひフォローをよろしくお願いします!

*1:このとき学習データに合わせて線の太さを1.5ピクセルにするのが重要です。 1ピクセルではまともに判定しません。 この対策を思いつくまでに大分手こずりました。

*2:このとき背景が0になるように、明るさの反転も行います。

いつでも心電図が取れたとして? CES 2019 レポート 3日目

こんにちは。ロボットチーム、ソフトウェアエンジニアの鳥居です。

昨日に引き続き、CES 2019のレポートです。エンジニア視点で面白かったものを紹介します。

ウェアラブルデバイスによる医療データの収集

f:id:eitaro-torii-exwzd:20190111184142j:plain
バイオメトリックセンサが入った様々なウェアラブルデバイス (Valencell)

医療に関するセッションや医療・健康に関するプロダクトの展示も多数ありました。その中の1つで「ヒアラブル(hearable)」デバイスの話が面白かったので紹介します。

ヒアラブルデバイスはウェアラブルデバイスの1種で、音楽を聴くために身に付けるもののことを指します。ヒアラブルデバイスは肌に直接触れるので、センサーを取り付けることで健康状態に影響する様々な情報を取得することができます。このようなデバイスは年々増えており、また取得されるデータも検査のタイミングだけでなく身につけている限り連続的に取得できるようになると思われます。より質の良いデータを得ることで、医師や患者のコミュニケーションが円滑になったり、患者自身がより自分の身体を知ることが期待されます。一方、データの増加に伴って重要になるのは「必要な情報をいかに絞り込むか」という点ですが、これは今後発展していく分野と考えられています。

ヒアラブルデバイスが特徴的なのは、このようなウェアラブルデバイスの中でも多くの割合を占めていることと、他にも活用の場面があると考えられていることです。耳に埋め込むデバイスはその内側から「本人が喋った声」を抽出することができるので音声入力のデバイスとして使用したり、聞き分けたい音を動的に切り替えるような「Augmented hearing」などの方向性が考えられています。

写真は Valencell という会社がセンサを提供しているウェアラブルデバイスを集めた展示のものです。既に多くの種類のデバイスで自身の健康状態が把握できるようになっています。

オピオイド問題への解決策

f:id:eitaro-torii-exwzd:20190111183902j:plain
神経痛と対応する脊椎の位置を示す展示 (NANS)

アメリカでは現在、麻薬系鎮痛剤を多量に処方されてしまうことで依存症や過剰摂取による死亡事故が発生しており、この問題はオピオイド問題と呼ばれています。オピオイドは特に慢性の痛みに対して処方されることが多く、オピオイドを使わない方法として神経に電気的な刺激を与えることで慢性の痛みを軽減するアプローチが提案されています。写真は神経痛を抑えるために脊椎のどの位置を刺激すればよいかを表したモデルで、この位置に電気的な刺激を与えるデバイスを埋め込んで薬の代わりに電気刺激で痛みを和らげることができます。アメリカでのみ問題となっていることですが、技術で社会的な問題に挑戦する姿勢は素晴らしいと思います。

エクサウィザーズでは医療の問題を解決したいエンジニアを募集しています。ご興味を持たれた方はぜひご応募ください!採用情報|株式会社エクサウィザーズ

また、ExaWizards Engineer Blogでは、定期的にAIなどの技術情報を発信していきます。Twitter (https://twitter.com/BlogExawizards) で更新情報を配信していきますので、ぜひフォローをよろしくお願いします!

5Gの可能性とは CES 2019 レポート 2日目

こんにちは。ロボットチーム、ソフトウェアエンジニアの鳥居です。

昨日に引き続き、CES 2019のレポートです。エンジニア視点で面白かったものを紹介します。

5Gとエッジコンピューティング

CESでは展示の他に、業界のリーダーが集まって特定のトピックについて話をするイベントが多数開催されています。5Gとエッジコンピューティングについてのセッションが面白そうだったので聞きに行ってみました。

興味深かった話をざっくり箇条書きで:

  • 5Gによる通信が一般で使われるようになると「どこで計算するか」の依存性が薄くなる
    • レイテンシが小さくなりスループットが上がるので、データの受け渡しがすぐにできるようになる
    • 例えば、現在の AR/VR用のヘッドマウントディスプレイは本体に計算処理を行うモジュールが含まれるのでサイズが大きめだが、このモジュールを外して小さくすることができる
  • 計算のトレンドは振り子のように揺れている
    • (1980年代)メインフレーム,集中型 -> (1990年代) PC, 分散型 -> (2000年代) クラウド, 集中型 -> (20XX年代) エッジコンピューティング, 分散型
    • 消費者が持っている計算リソースが年々増加しており、高速なlast 1 mileの通信の登場によってエッジコンピューティングのメリットが大きくなる。

IBMの量子コンピューター

昨日のキーノートで、https://newsroom.ibm.com/2019-01-08-IBM-Unveils-Worlds-First-Integrated-Quantum-Computing-System-for-Commercial-Use#assets_all:IBMが商用量子コンピュータについてのアナウンスがありました。IBMのブースに模型が展示されてますので行ってみました。

f:id:eitaro-torii-exwzd:20190110134721j:plain
IBM Q System One の模型

研究室の外で動く商用量子コンピュータは世界初ということで、次の世代のコンピューティングを始めようとする意気込みが伝わってきました。

エクサウィザーズでは新しい時代のエンジニアリングに挑戦したいエンジニアを募集しています。ご興味を持たれた方はぜひご応募ください!採用情報|株式会社エクサウィザーズ

また、ExaWizards Engineer Blogでは、定期的にAIなどの技術情報を発信していきます。Twitter (https://twitter.com/BlogExawizards) で更新情報を配信していきますので、ぜひフォローをよろしくお願いします!

次はVPUの時代が来る? CES 2019 レポート 1日目

こんにちは。ロボットチーム、ソフトウェアエンジニアの鳥居です。

新しいプロダクトのアイデアを得るために、ロボットチーム3名でコンシューマー・エレクトロニクス・ショー(CES) というイベントに参加しています。アメリカのラスベガスで毎年開催されているイベントで、今年の一般公開は1/8〜1/11の日程となっています。

この記事では、エンジニア視点で面白かったものをピックアップして紹介していきたいと思います。

AIセキュリティカメラ、VPU

f:id:eitaro-torii-exwzd:20190109105311j:plain
CES 2019 Innovation Awardを受賞した SimCam

家庭用の監視カメラですが、顔識別やネットワークの機能が備わっているものです。画像の識別の機能はクラウドベースで提供されているものが多いですが、このプロダクトは小さなカメラの中にVisual Processing Unit (VPU)を搭載しているため、クラウドへのデータアップロードが不要となっています。クラウド利用のコストが不要になることやプライバシー保護の観点で優れた特徴です。Google Assistant や Amazon Alexaとも連携ができ、その場合でも画像をアップロードすることなく動作することができます。展示では「知らない人が玄関に近づいたらAlexaが声を掛ける」という使用例が出ていました。

面白いなと思ったのは、既存ハードウェアでは解決できてない問題を新しい種類のハードウェアを使って解決しに行っているところです。AIを使った計算というとGPUを使うものと思ってしまいますが、識別を主に行うプロダクトにはGPUは過剰なリソースとなり消費電力などの問題を抱えてしまいます。VPUはカメラから取得した画像を処理するのに特化した計算機で、画像向けの機械学習の計算に適した構造のハードウェアとのことです。カメラの中にVPUを積むアイデアがいくつもの問題を解決していてプロダクトとしての魅力を高めていることにとても面白いと思いました。

展示会場ではVPUというキーワードを他にも聞くことができました。画像処理AIの消費者向けプロダクトは、VPUがキーワードになるのかもしれません。

オムロンのパレタイジングと卓球

f:id:eitaro-torii-exwzd:20190109113313j:plain
卓球ロボット (オムロン)

f:id:eitaro-torii-exwzd:20190109112726j:plain
パレタイズ (オムロン)

ロボットの展示コーナーで一番最初に見えてくるのがオムロンの卓球ロボットでした。ロボットアームの先にラケットが付いていて、人がロボットと対戦すると対戦終了後に「ここをこうするともっと上手くなる」というチャートが表示されるという展示でした。その横で同じロボットを使ったパレタイジングのデモがあるのですが、パレタイジングがとても速い!目を引く卓球の展示と、単体だとちょっと地味なパレタイジングのデモを同じロボットでやっているのをみて、見せ方が面白さを感じました。

エクサウィザーズでは新しいプロダクトを作ることに興味のあるエンジニアを募集しています。ご興味を持たれた方はぜひご応募ください!採用情報|株式会社エクサウィザーズ

また、ExaWizards Engineer Blogでは、定期的にAIなどの技術情報を発信していきます。Twitter (https://twitter.com/BlogExawizards) で更新情報を配信していきますので、ぜひフォローをよろしくお願いします!