「技術」カテゴリーアーカイブ

スマートフォンのカメラで血圧を計る研究とそのアプリ

経皮的工学イメージング(Transdermal Optical Imaging)によるスマートフォン血圧測定 というトロント大・杭州師範大学附属医院の共同研究が発表されています。スマートフォンのカメラで撮影するだけで、映った人物の血圧を計るという研究です。

現在のスマートフォンのカメラでも、顔の表皮付近のタンパク質から反射された光を検出できるそう。特に、血液中のヘモグロビンに反射した光を追跡することで、表面近くを流れる血流の変化が取れます。これを機械学習によって処理することで、1328人の被験者の95%程度の正確さで血圧を当てることができたということ。

ただ、この1328人のほとんどが白人系と東アジア系だったということで、今回の検証モデルでは、色が濃い肌の人についてはまだまだ正確に計れないのだそう。

この研究をベースにしたスマートフォン用のアプリ Anura が Android, iPhone 向けに配布されています。

僕の手持ちのスマートフォンは対応していなかったので試せていませんが、現バージョンでは顔の表面を撮影した短い動画から、安静時心拍数とストレスレベルを測定することができるそうです。今回論文発表された血圧測定についても、すべての人が使えるようになるには数年掛かるそうですが、テスト的に搭載されるのも近いかもしれません。

今でも個人が自宅で血圧測定することはできますが、専用の機械はそれなりの値段がしますし、毎日腕に巻いて計り記録をつけるのもたいへんです。既に高血圧と判定されて医者から気をつけるように言われた人ぐらいしか測定はしていないでしょう。

カメラで写すだけで測定できる今回の技術、すべての人種に対する判定の精度があがれば、パソコンのカメラや監視カメラも併せて常に人々の血圧が測定され、健康状態の変化がフィードバックされたり異常な状態が素早く検知されて医療的な対処が提案されたり、というSF的な未来も近づいているのかもしれませんね。

https://itunes.apple.com/app/anura/id1358813934

via Quartz

マルコフ連鎖キーボード – 入力結果でキー配列が動的に変わる

markovkeyboard は、キーボード配列の新しい提案です。なんと、一字タイプする事にキー配列が変化します。

ツール本体は emacs lisp のコードで、emacs の IME として読ませて起動します。

一文字タイプすると、これまでの文字列から次に来そうな文字をより打ちやすい箇所に配置した「新配列」にキーボードが変わります。

ドキュメントによれば、”the”をたくさんタイプする人なら、ホームキーで’t’を打つと、同じキーが次に’h’に変わり、次は’e’になるだろう、ということ。なるほど。予測がうまくはまる文章を打つなら、ホーム付近のキーだけで文章が書けるようになったりするのかもしれませんね。

ガイド無しに打てるとは到底思えないので、下半分に「現在の」キー配列を表示して使ってみました。…これは苦しい。自分の環境のせいかもしれませんが、一文字打ってガイドのキー配列が切り替わるのにも数秒掛かることがあり、これで楽々と文章が入力できるようになるには時間が掛かりそうです。

# この markovkeyboard を試すために、ひさしぶりに Emacs を起動しましたが(というか、インストールから始めました)、昔あんなに使ってたのにほとんどのコマンドを忘れててたいへんでした。

既存の文章を使ってマルコフ連鎖データを用意するツールも同梱されているので、自分の過去の文章を食わせれば、より正確な予測がされるということです。

個人的には初めてT-Code方式を見た時を超える衝撃でした。機械に人間はどこまで寄り添えるのかというチャレンジ精神を感じます。

キートップが液晶やeインクになってて表示を切り替えられるキーボードも今はありますし、キーボード上で直接キーを確認できたら、ちょっとは使い物になりますかね?

via Hacker News

ペンや筆の動きを推測してコピーできるロボットの研究

ブラウン大学のコタニ・アツノブさんらの研究 Teaching Robots To Draw(ロボットに描き方を教える)は、手書きの文字や絵画をロボットに真似させるというものです。

漢字を含め、ギリシャ語、タミル語、ヒンディー語など様々な文字について、文字のフォントや書き順情報を知っているわけでもなく、書いている途中の様子を見るでもなく、書かれた結果から書き順を推測して、同じような結果になるように書くのだそうです。

動画のデモを見ると、書き順は必ずしも人間が書いたオリジナル通りでもなく、しかし書き終わった結果はオリジナルと似ている、という感じですね。

今の結果としては、単純なコピーや写真の方が複製として優秀なのでしょうけれど、書き順を再現できるということは将来的に契約のサインを真似たり、タッチを含めた名画の複製ができたりする可能性がありますね。まるっきりの複製ではなく筆致が似てるということから、亡くなった書家や画家の新作(風)、みたいな作品もそのうち生まれ得るのかもしれません。

via Tech Explorist

GrandType – キータイプの間隔データを機械学習させ、ユーザーを特定するプロジェクト

GradTypeは、英文を入力する際のキータイピングの癖を使って、今誰がタイプしているのかを特定しようという実験プロジェクトです。

まず、GitHub で認証した状態で、出てくる英文を入力することを繰り返します。すべて小文字で良く、正しい文字とスペースキーを打った時しか先へは進みません。打ち間違えたとしても間違えた文字は入らないのでそのまま続けます。

この時、サービスの裏側ではキーと次のキーが打たれる間の時間を記録し、RNNで学習させているそうです。

文章のバリエーションはそれほど多くありません。数十回入力した後で、ログアウトし、ユーザーとして認識していない状態で同じように英文をタイプすると、

RNNでより「似ている」と判定されたユーザー5名が表示されます。

多数のユーザーが試しているためか、なかなか当ててくれませんでした。(一回は自分のユーザー名が当てられたのを見ましたが、スクリーンショットを撮っていませんでした)

実用的にはスペルを打ち間違えたり直したりするデータを使った方が、より個人の特定はしやすいだろうと思いますが、研究としてはキーとキーの間隔時間だけでどこまでやれるかというのを見ているようです。

匿名で入力できる、と思われているようなサイトにおいても、個人の癖を収集して人物の同定を行うなんてことも、より簡単にできるようになっていくかもしれませんね。

Hacker News では、それへの対策として、キータイプの癖を攪乱するというツールも紹介されていました。匿名個人の特定ではなく、認証にタイピングの癖を使うといった研究もあるようです。

ソースコードが公開されています。

via Hacker News

css-only-chat CSSだけで動くブラウザチャット

ケビン・クッチャさん(Kevin Kuchta)のkkuchta/css-only-chat は、JavaScript を使わない非同期ウェブチャットサーバーです。

二つ(以上)のブラウザからこのサーバに接続し、アルファベットをクリックしてメッセージを作り送信すると、同じサーバに接続した他のブラウザでも即時表示される、いわゆるブラウザチャットです。しかし面白いのは、このページで JavaScript は使われていないというところ。

送信側

CSS の :active 疑似クラスを使うことで、ある領域をクリックした際に、はじめて画像ファイルを読み込ませることができます。つまり、ボタンが押されたタイミングを画像ファイルの読み込みでサーバ側から検知できるということ。

「同じボタンが2度目押された時は(画像はもうブラウザ側にロード済なので)サーバはわからないのでは?」となりますが、たとえば “a””a” と押した時は、接続しっぱなしの状態で、元のボタンを隠し、新たに「”a”を押した」という情報を持った別の画像ファイル名を持つボタンを表示しているようです。これをすべてのボタンに対して行うことで、ボタンが持つ画像ファイルのパスが、過去のすべてのタイプ内容を保持することになります。

受信側

表示はどうやって更新してるのか、も解説されています。接続しっぱなしの状態で、これまで送った html が不要になったら、style タグを送って過去の要素を display:none で隠し、新たにページ内容を追記します。

これを、自身か他のブラウザから新たなデータが届くまで待機しながら繰り返しているということ。じゃあソースコードはとても長くなるのでは、と思って Chrome でソースを表示しようとしましたが、何も表示されません。Firefox では何千桁もある一行のソースコードを確認できました。

今のところデモサイトは用意されていないので、試すには自分で動かす必要があります。

via Hacker News

BugBug – 機械学習によるバグの自動トリアージ by Mozilla/Firefox

Mozilla Hacks で、2月から導入された BugBug というバグレポートの自動分類ツールの紹介が読めます。

Mozilla の様々な製品/コンポーネントに対して発行されたバグ報告を、とりあえずどの製品のどのコンポーネントに属するものかを分類して、そのコンポーネントの担当者に早く届くようにする、というのか今回のツール導入の目的だそうです。

大災害時などに負傷者の治療作業の順番をつける「トリアージ」と同様のことをバグに対して行う「バグトリアージ」というわけ。

“Teaching machines to triage Firefox bugs” より、概念図

これまではというと、ボランティアや開発者が人手でバグを分類し設定することで担当者に届けられていたのですが、ここの分類に日数が掛かっていて、バグが解消されるまでの期間が長くなっていた、と。

機械学習で分類させるには、どんなバグレポートがどのコンポーネントに対するものか、という過去の正しいデータが必要ですが、Mozilla でこれまで発行されたバグレポートは20年以上の期間での153万件を越えるそう。

これが人力でおおむね正しく分類されているので、これをXGBoostに食わせることで、新たに到着したバグレポートが属するコンポーネントの予測が自動的にできるのだそうです。

2月末に一部のプロダクトに対して導入運用を始め、350件のバグを自動分類し、そのチケットの解決までの日数の(外れ値を除いた)中央値は2日間と改善されたそう。ちなみに、今は60%の信頼度で分類して、80%以上の適合率を達成しているそうです。

今後の計画としては、重複チケットの検出、バグレポートに欠けている内容(たとえばバグの再現方法)を見つけて報告者に追加してもらう、リリース版での重要なバグを素早く発見する、などを検討しているということ。

大きな製品になるとバグレポートも膨大に届き、切り分けだけでたいへんな人的リソースを必要とするのでしょうけれど、その部分の自動化は開発側にも利用者側にも大きな恩恵を与えそうですね。

via VentureBeat