発想と実装の 間 をつなぐメディア

VRにbot,OS,形態素解析にディープラーニングまで!JavaScriptの限界を超えた鉄人達の変態的所業まとめ

javascript。今やwebの表現になくてはならない存在で、デジマなフィールドで働く僕らにもかなり身近な存在ですが、今回は『JSでそこまでやれんの?!』『いやそれはおかしい!』と言わざるを得ない事例をあえてチョイスしてご紹介。

何が何でもjavascriptでやるんだ!やれるはずなんだ!うるせー黙ってろ!!とでも叫ばんばかりの熱いパトスをぜひ感じてください。

深層学習がブラウザオンリーで!まさかのJS駆動ディープラーニングエンジン『ConvNetJS』

ConvNetJSSource

デジマラボでも以前各種のライブラリを紹介してきましたが、そのどれもがクラウドサーバ上で稼働しているもの。

なので、当然のように利用にあたっては通信が必要でした(ものすごく当たり前ですが)

が、このConvNetJSはなんとjsベース。つまりクライアントPCの中で稼働してしまうとのこと。

もはや意味が分かりません。

細かい仕様的な話は公式のドキュメントを見ていただけば良いとして、その発想自体がぶっ飛んでて最高です。敬意すら覚えます。

ちなみにデモが提供されているのは以下の機能。

とりあえず見て欲しいデモ

上記の動画は単なるスクショのGifですが、こちらのデモ画面に移動してもらうと、その異常性が良く分かるかと。

選択、もしくはアップロードされた画像を畳み込みニューラルネットワークで解析 ⇒ その精度をどんどん上げていく。。。というデモなんですが、これ、JSで動いてるらしいです。

もちろん今はまだ『やれそうだからやってみた!』という変態技術の一つに過ぎませんが、例えばドローン単体での画像解析(通信なし)とか、その場で状況予測しながら行動制御とか。意外な可能性にドキドキしてしまいます。

VRコンテンツをJSで動かせ!mozilla渾身のVR実装ライブラリ『A-flame』

A-flameGithub

ギーク御用達なブラウザ『Firefox』でおなじみ、僕達の mozilla が帰ってくるかもしれません。

タイトルまんまですが、JSのライブラリを1行読み込むだけで本格的なVRコンテンツの作成を可能にする『A-flame』。こいつが色々熱いです。

詳しいデモの設定方法やコードの解説はこちらが超充実していますが、公式のドキュメントもかなりの充実っぷり。本当にダウンロードしてサーバーにアップ ⇒ コード数行イジるだけでもうVRコンテンツが稼働してしまいます。

上記は公式デモですが、githubで配布されているデモも全部で6種類あり、ソースもわかりやすいのでぜひいじってみてください。これ面白い。

作成が困難と言われるVRがこんだけお手軽なものになるのであれば…!結構、具体的な施策としてweb CMなんかに採用を考えてしまう企業も出てくるかもですね。

結局は企画勝負でしょうが、とりあえずこれをJSライブラリとして実現したmozillaさん最高です。

話題の顔認識もJSで!jQueryライブラリ『FACE DETECTION』の可能性

FACE DETECTIONGithub

こちらもちょっと変わり種。『顔認識してアプリケーション作りたい!なにがなんでもJSで!』という、何というか色々開発者の心配がしたくなるコンセプトですが、ガチです。ガチで動きます。

画像の読み込み後にライブラリを実行し、画像内に人間の顔があるかどうか?を判別。

顔のエリアを矩形やラインで表示しつつ、取得した座標情報、独自算出した顔認識の信頼度なんかを返してくれるというもの。 >> 詳細な利用方法はこちらを参照

なんと動画上で認識を行うことが可能らしく、まとめてだからなんだ!と言いたくなる無駄高機能ですが、人材や婚活系など、人間の顔情報を扱うようなサービスではちょっとおもしろい使いみちがあるかも知れません。(デバイス毎の画像サイズ変更表示時に、人間の顔を中央に持ってきて切れないように配置。などなど)

もはや『だからなんでそれをJSでやったよ…』という次元ですが、多分本人超楽しかったんだろーな。とは思います。

webアプリやサイトとの相性はもちろん、Iotな現場にも活きそうな可能性を気合で見せてくれてます。素敵です。

何の意味が?いやでも意外と…? JSオンリーで動く謎チャットbot2種

まずそもそも、チャットbotフレームワークはその多くが Node.js などのサーバーサイドなJSで駆動している(MSのflamework他)ので、JSで動く!てだけならなんか当たり前な感じ。

なんですが、以下で紹介するのはどういうわけか「クライアント側で全処理を実行する」という、謎の努力によって生み出されたJS botフレーム達です。

クライアント側でやったらそれってつまりすごく手間のかかった独り言じゃね?と、思わなくもないですが、その心意気になんか乾杯したくなったので紹介を。


liouh/chat-bot

liouh/chat-bot DemoGithub

完全ローカルで動く、テスト用っぽいチャットbot。完全な人工無能タイプ。なので当然というか何というか、超ベーシックな答しか返してくれません。が、一応動きます。

デフォでフックに指定されているのは『hello』『what’s up?』『haha』『no!』『is that all?』『talk to you later』だけなのですが、これをチャットにポストすると何か返してくれる。みたいな構造。

カスタムもカンタンですし、意外とこういうシンプルなのがローカル上で動くと便利かもしれないですね。


MiNeRa bot

MiNeRa botSource

もうちょっと本気でチャットbotの中身をJSのライブラリとして作成 ⇒ リリースしてしまった強者もいるようで。

なんとちゃんとTinySegmenterで形態素解析 ⇒ 分かち書きした上で、これまたJSオンリーでやってるマルコフ連鎖からそれっぽい返信文を生成 ⇒ レスポンスしてくれる。という。。

マインクラフトのオフラインチャット上で動くものらしいので、ちょっとデモを出すことができませんが、うーむ。

いい感じに変態ですね。好きです。

一見イロモノ?と思いきや、意外と使えてしまうというJS製OS『OS.js』

OS.js DemoGithub

もはや何を言っているのかもわからない感じですが、JSでOSを作った変態がいるらしいです。世界は広い。完全なオープンソースで開発中の『OS.js』のご紹介です。

発表当時は結構な話題になったので、知ってる人も多いかも。ですが、開発は大体2011年頃からスタート。2014年頃からはあんまり開発が活発ではなくなっているみたいですが、IoT本格化の流れの中でまた活性化…するといいなぁとか個人的には思ってたり。

実際に自前の環境で組む場合の詳細なハウツーはこちらを参照。

デモで遊んで見ればわかりますが、そーーーとーーー軽快に動きます。ヤバイですこれ。

超軽快なヘットレスブラウザなノリで、サーバー内で駆動するライトな別OSとか…。ちょっと何か作ってみたくなりますよね。

これは使える!JS駆動の日本語形態素解析&自動改行ライブラリ

trkbt10/mikan.jsGithub

ちょっと前リリースされ、話題にもなった日本語形態素解析&自動改行位置調整スクリプト『Budou』。皆さんご存知でしょうか?

ざっくり要約すると、『日本語って英語と違って単語の途中で折り返しちゃうじゃん?あれって気持ち悪くね?じゃあ機械学習を利用してなんとかなんじゃね?』というアプローチをGoogleクラウドAPIを用いて単語分割 ⇒ Pythonで書き出しちゃえ。みたいなソリューションだったんですが

これをなんと JSオンリーでなんとかしちゃったのがこの『mikan.js』を使ったソリューションらしいです。

どうやらnodeを用いてサーバーサイドで駆動させるのもOK。jQueryでフロント(クライアントサイド)から動かすのもOKというCoolな仕様なようで、Class名やスタイルを指定することも可能という『そう。それが欲しかった』というハイパーな作り。

日本語をより美しく。でも複数のデバイスに対応して表示させたいweb界隈のマーケシーンにドンピシャで使いやすいライブラリかと。

多分これは流行る。

IoT時代の主役になるか?無限すぎるJSの可能性

直接的に今スグにデジマうんぬんに使える話ではない(あってたまるか)ネタですが、現在のマーケットで活躍する多くの技術、手法が、わずか数年前にはそれこそ『なんのために?!ww』という扱いだったことを考えると…?

いやぶっちゃけ軽い、環境を選ばない、なにより利用人口が半端ない。という意味で、JSが次のIoT時代の主役になる可能性は充分ありますしね。

先行しまくる偉人達の知恵は、とりあえずありがたがりつつこれからに期待していきましょう。

ではまたー。

中村 健太 by
数多くのメディアコンサルとコンテンツクリエイティブに関わってきた経験を持つ株式会社ビットエーのCMO。KaizenPlatformのグロースコンサルとしても知られ、2014年より一般社団法人日本ディレクション協会の会長を務める。主な著書に「Webディレクターの教科書」「Webディレクション最新常識」など。