読者です 読者をやめる 読者になる 読者になる

bohemia日記

おうちハックとか画像処理、DeepLearningなど

年収800万円以下でも回らない寿司を食べる研究

IoT ネタ

研究背景

近年、「回らない寿司」に関する研究が盛んに行なわれている。発端となったのは、こちらのツイートである。


年収800万円を境に「回らない寿司」が観測できるが、800万円に達しない人間でも「回らない寿司」を観測するための研究が盛んに行なわれている。


このように、イオン化、等速運動などを用いることにより、年収に依らない「回らない寿司」を観測する手法が提案されている。


最新の研究では、これらの手法を用いることなく、「回らない寿司」の観測に成功している。 id:yumu19手法 *1は、回転する寿司に対し、回転周期に合わせて、ある一定の場所にいる時のみ可視化、それ以外を不可視化することで、擬似的に「回らない寿司」の観測を試みるものであった。 f:id:bohemian916:20160927211145p:plain

この原理を利用しているゾートロープを用いた研究成果として、このように「回らない寿司」が観測できている。


しかしながら従来手法では、擬似的に「回らない寿司」を再現しているため、実際には静止しておらず、被験者は「回らない寿司」を食べることができない。食べられもしない「回らない寿司」を観測して食欲が上昇した結果、回る寿司を食べに行くことになり、被験者の「回らない寿司が食べたい」という欲求は満たされない。

そこで本研究では、回る寿司を物理的に静止させ、「回らない寿司」を作り出すことで、実際に食べられる「回らない寿司」を作ることを目的とする。

*1:湯村翼, とある法則の物理実験, ABPro2016

続きを読む

ディープラーニングで新しいポケモン作ろうとしたら妖怪が生まれた

ディープラーニング ポケモンGO 機械学習 画像処理

こんにちは。ぼへみあです。

先日はポケモンの個体値判別の記事を書いたらかつてないほどバズって驚きました。
今では、スクリーンショットを撮ったり、常駐してゲーム画面に被せるタイプの個体値チェッカーアプリがたくさん出てきてるので、分度器勢は消え去ったようです。

f:id:bohemian916:20160813112522p:plain

被せるタイプはとても便利で使っているのですが、基本的に入力は全て自分で行う必要があり、少し面倒です。 コンピュータビジョン研究者見習いとしては、全てローカルの画像認識で行わせたいところです。

そこで手始めに、ポケモンの種類を画像認識で判別するためにポケモンデータセットを作ったのですが、寄り道してポケモンから妖怪ができてしまったので、そのお話です。

続きを読む

【ポケモンGO】個体値厳選のやり方 〜レベル確認用分度器作成のススメ〜

ポケモンGO

こんにちは。ぼへみあです。

ポケモンGOがすごく流行ってますね。自分もガッツリやっています。 初代ポケモンしか出てこないということで、やはりカイリューが強いのだろうと思って育成しようとしたのですが、かなりレアなミニリュウを大量に捕まえなければいけないそうです。

そんなに簡単にミニリュウを集められるかよ! と思っていたのですが、ネットの情報で

「世田谷公園にミニリュウの巣がある」

との情報を掴んだので実際に行ってみると、大量の人とともに、ミニリュウがいました。

続きを読む

ろくろの上に逆回転のろくろを乗せたら上に乗せた物は止まる? をほぼ実現させた

IoT

こんにちは。ぼへみあです。

1年半前ほどに、ニコニコ動画で、こんなネタが話題になってました。

ろくろの上に逆回転のろくろ乗せたらどうなるのか検証してみた

www.youtube.com

これは、右回転で回るろくろの上に、左回転のろくろを乗せると、回転が相殺されて、上に載っているものは静止するのではないか、という仮説を元に、実際にやってみたという企画でした。

f:id:bohemian916:20160521234242p:plain ねとらぼ

この動画の投稿者のわこう氏は、この件について、ろくろを製造している「日本電産シンポ株式会社」のろくろの専門家に電話で質問していたのですが、担当の奥山氏によれば、

①下のろくろは上のろくろの重さを受けて遅くなる
②重さが載った分、上のろくろと同じ電力で同じ回転数にならないので、そこまで細かい調整は難しい

とのことでした。 f:id:bohemian916:20160521235526p:plain

結果、調整せずに同じ回転数のろくろをそのまま載せた場合、上のろくろの回転に準じて物体が回るだろうという結論で、 実際に試した結果も同様でした。

そこで今回、ろくろに与える電力を制御することで上の物体をほぼ静止させることができたので、レポートします。

使うもの

ろくろ

簡易型の電動ろくろです。単一電池2本で動きます。 わこう氏の動画で使われていたものと同じです。2個買いました。 f:id:bohemian916:20160522021618j:plain

Mabeee

スマホとつながるIoT乾電池です。この電池を組み込むだけで、出力をスマホから制御できてしまいます。今回ろくろを制御するキモのデバイスです。

MaBeee(マビー)

f:id:bohemian916:20160522002102p:plain Engadjet

このように単三電池の形をしていて、中に単四電池を入れて使います。 f:id:bohemian916:20160522001641j:plain

今回Makuakeというクラウドファンディングで出資して届いたものを使っています。
製品化が決定しており、Amazonで予約開始しています。2016/6/30発売のようです。

作製

届いたろくろには、2段階の速度調整があるだけで、逆回転の機能がありません。
そこで分解して回路を変更します。(といってもほとんどやることがありませんでしたが)

蓋を開けてみると、とてもシンプルな中身でした。 f:id:bohemian916:20160522003647j:plain

回路図を書いてみると、速度切り替えスイッチによって、使う電池を1本か2本かを切り替えて速度を変えているだけでした。
f:id:bohemian916:20160522004742p:plain

使われているモータは極性がないタイプのようで、電池の向きを変えれば簡単に回転の向きが変えられそうです。

Mabeeeは単四電池を入れて単三になるのですが、ろくろで使われているのは単一でした。そこでアダプタを噛ませて単一になってもらいます。 f:id:bohemian916:20160522005321j:plain

これを電池ボックスに、元の向きと逆にいれると、本来プラスが入るところに平らなマイナス側を入れたことによって、電池と端子の間に隙間ができてしまって電流が流れませんでした。
f:id:bohemian916:20160522005458j:plain

そこで、単一アダプタをアルミホイルとテープで改造し、きちんと端子と接触するように改造しました。
f:id:bohemian916:20160522005751j:plain

これで反対向きに回るろくろができたはずなので、Mabeeeを入れて制御のテストをしてみます。 Mabeeeの公式iOSアプリの中に、レバーという制御方式があるのでこれを使います。 スライダーを上げ下げすることで、各電池の出力を制御できます。

youtu.be

あと、ろくろをそのまま乗せると、ろくろの回転部とふちの高さの差がないため、接触してうまく回らないので、適当に回転部の高さを段ボールでかさ上げします。 f:id:bohemian916:20160522011637j:plain

また、上のろくろと下のろくろを簡単にを取り付け、取り外しできるように、マジックテープをつけます。 f:id:bohemian916:20160522011746j:plain

これでろくろを接続すれば完成です! f:id:bohemian916:20160522012604j:plain
下が反時計周り、上が時計周りに回る予定です。

いざ実験!

というわけで完成したので、実験します。
今回、上のろくろに乗ってもらうのは、俺の嫁ルイズ・フランソワーズ・ル・ブラン・ド・ラ・ヴァリエールちゃんです。 f:id:bohemian916:20160522012914j:plain
回すときは、飛んでいかないよう、テープで固定します。

それではやってみます。

youtu.be

出力MAXでは、上のろくろの回転に準じて回るので、上のろくろの回転数を調整しています。 人力フィードバック制御です。
前を向かせた状態で静止させようとして、いろいろ操作しています。若干揺れはありますが、ある程度止まっていると思います。

しかし、指でスライダーをちまちまコントロールするのは結構大変です。そこで、Mabeeeのアプリに搭載されている、スマホの角度で出力を制御する方法を試します。基本的に上のろくろの出力だけを制御できればいいので、傾きによって上のろくろの出力が変わるようにします。

youtu.be

さっきより操作しやすくなったせいか、より静止できていると思います。傾けるだけの操作は直感的でやりやすいですし、思ったより微調整がしやすかったです。

今後の課題

下のろくろが、回転し続けると明らかに回転数が落ちてきます。上のろくろがそこそこ重さがあるのと、電池ボックスの位置が中心でないため重心が偏り、本来回すはずの円形の陶芸粘土と比べてパワーを使っていると考えられます。
回転数が落ちてくると、その分上のろくろの回転数を落とす必要があるので、制御が大変です。また回転数が落ち続けるため、手放しで完全に静止することができませんでした。この問題を解決するには、下のろくろの電源を、電池からACアダプタに変更してしまうのがいいかと思います。

それでも、そもそも単一で動くはずのろくろを、単四でアダプタ噛ませて無理やり動かしてるので、上のろくろの電池消費による回転数ダウンは生じるかと思います。上のろくろは下のろくろによって回転するので、電源をコードをつなげるわけには行きません。よって完璧に手放しで静止させたいのなら、無接点給電を導入して、下のろくろから上のろくろに電力を供給し続け、回転に用いる電力を一定にすることが必要かと思います。

また、人力フィードバックではなく、赤外線か何か、非接触の回転センサを導入して、きちんとフィードバック制御させるのも一つの方法かと思います。

ろくろの上に逆回転のろくろを載せて、上のものを静止させる世界は、なかなか奥が深いようです。

ディープラーニングで色々な「だが断る」を作ってみた

機械学習 画像処理 ディープラーニング

こんにちは。突然ですが皆さんは、自分より優位に立っている人間がとても有益な話を自分に持ってきてくれて、相手も自分が断るはずがないと確信しているときに、突っぱねたくなることはありませんか?

そんなときに便利なのがこの画像です。
f:id:bohemian916:20160425220105p:plain

この画像はインパクトもあり、とても使いやすいのですが、「自分より優位に立っている人間がとても有益な話を自分に持ってきてくれて、相手も自分が断るはずがないと確信しているときに、突っぱねたくなる」という状況でも様々なパターンがあるわけで、一つの画像だけで対応するのは大変です。そこで今回は、ディープラーニングを用いた画風変換を用いて、いろんな岸辺露伴先生を作ってみたいと思います。

続きを読む

GPU搭載ノートPCにUbuntuとCUDAを入れるのに挫折した

機械学習

少し前に、GTX960M搭載のAlienware 13-R2を購入した。当初は予定になかったのだが、このPCをWindows10/Ubuntu14.04でデュアルブートし、CUDAを入れ、ChainerやTensorflowをGPUで学習を回せる環境を作ろうとしたのだが、問題が多すぎて挫折してしまったので、後の誰かのためと、万が一誰か問題を解決してくれる望みを託して記事を書いた。

続きを読む

人工知能って言葉、気軽に使いすぎじゃない?

ディープラーニング 機械学習

僕は、某IT企業の研究開発部署に勤めている。その部署は情報推薦や自然言語処理、画像処理などを用いて研究を行っている。しかしながら規模はとても小さい。
先日、会社の全社総会の壇上で、新サービスの担当者と社長が話すという企画があったのだが、こんなやりとりがあった。

担当者 :「つい先日新しいサービスをリリースしました! 今後はAIの分野も取り込んでやっていきたいです!」
社長:「人工知能なら、◯◯(うちの部署)がやってるよね? なんとかしてくれるよ」

ファッ!? すごいのが飛んできた!

人工知能への期待

近年は第3次人工知能ブームで、世の中の記事は人工知能、機械学習、ディープラーニングという言葉であふれ、バズワードとなっている。 シンギュラリティが来ると囃し立て、人間の仕事が人工知能に奪われるという記事がとても注目を浴びる。経産省も文科省も人工知能分野の予算を大幅に増やし、国をあげて人工知能の研究に取り組もうとしている。

f:id:bohemian916:20160304234741p:plain 人工知能で画像検索すると一番初めに出てくる画像

実際、近年の人工知能と飛ばれる分野の進歩は目を見張るものがある。学部生の時に研究していた自動運転は、当時は実用はまだ50~100年後の未来だと思って研究していたのが、5年後にはあと5年で実用化しそうな勢いである。

修士のときには囲碁などのボードゲームAIの研究をしていたが、囲碁は将棋に比べ状態空間が大きく、プロに勝てるのはまだまだ先の話だとされていた。当時は、モンテカルロ法に基づくUCTというアルゴリズムでコンピュータ囲碁にブレイクスルーが起きていたが、GoogleのAlphaGoは、それにディープラーニングを加えることにより、プロに勝ってしまった。*1こんな感じで、研究に関わってた人間でも驚くことばかりだ。

http://o.aolcdn.com/hss/storage/midas/88835d52d40df26f1818a7660048bdd6/203324014/Attachment.jpeg
AlphaGoに敗れた瞬間

みんなの人工知能に対する期待感もすごく、とにかくバズワードになっている。

あなたの言ってる人工知能って何のこと?

冒頭にも述べたように、「人工知能使っていい感じにしたい」というふんわりした話だったり、「AIをサービスに組み込み〜」というサービスのリリース文だったり、みんな気軽に人工知能って言いまくってる。以前にIoTって何だよ!って記事にも書いたけど、バズワードになるとみんな好き勝手にその言葉を使うので、とても広義になっていく。

例えば、サービスで使いたいと言っていた人工知能は、「ユーザーにとって最適なものを選んで教えてくれる」という、「情報推薦」と呼ばれる分野になる。IT系のサービスで人工知能って言ってたら、これに該当することが多い。

そのほかにも、「人工知能が答えてくれる」は「対話システム」だし、「ユーザーの行動を把握する」は「行動センシング」だし、生活支援してくれるロボットは「知能ロボティクス」。自動運転やコンピュータ将棋はそのままの言葉を使えばいい。

こういった、人工知能でひとくくりにされる技術たちは、それぞれ全然異なるモデルを構築して、それぞれに最適な手法を選んで実現されている。決して「人工知能」そのものがあって、それをいろんな分野に適用しているわけではない。万能じゃない
共通しているのは、「人の代わりに判断・行動してくれること」だけである。

f:id:bohemian916:20160305005326p:plain:h500
炎上した例の人工知能学会誌

言葉の意味の大切さ

その言葉がどのようなイメージを持っているかで、そのものの研究の取り組みの方向性が変わってしまうことさえある。特に科学方面では、人々に伝わりやすいSF映画やアニメが、言葉のイメージに影響を与えることが多い。
例えば、「ロボット」と聞くとどのようなイメージを持つだろうか。多くの人は、ガンダムとか鉄人28号とかの、人型で二足歩行のロボットを思い浮かべるのではなだろうか。これは明らかに、日本のロボットアニメが原因である。

自動運転研究の恩師の先生は、こうおっしゃっていた。

「ロボットアニメのせいで日本のロボット研究は遅れた。なぜなら日本が人型歩行ロボットを作っている間に、海外では車輪のついた効率的なロボットを作っていたからだ」

f:id:bohemian916:20160305010039p:plain 日本のロボットアニメに出てくるロボット身長比較

ルンバが登場してからは、日本でもようやく車輪がついたものや人型でないものでもロボットとして認識されるようになりつつある。 自動運転にしても、立派な「移動ロボット」なのだがその認識はなく、どうも「人工知能」と呼びたい人が多い気がする。

このように、言葉をきちんと使わないと、日本の競争力にも関わってくるかもしれない。今の人工知能という言葉は、どのSF映画やアニメに最も影響を受けているのだろうか。

人工知能を正しく理解してほしい

はっきり言って、人工知能とかディープラーニングという言葉を使うと興味を引きやすいし、バズりやすい。だから皆使いたがる。そして期待度がどんどん上がる。それはもう社会現象だから仕方がない。正直なところ、この分野に関わっている人間としては、注目されるのは悪くない気分だ。

だけれども、人工知能でできると期待されていることと、実際にできることには大きなギャップがある。そんなに万能じゃない。シンギュラリティだって悲観的に考えている研究者もいる。人工知能への期待や盛り上がりは過度なので、できることとできないことを正しく理解してもらい、適切な期待を寄せて頂きたい。

*1:昨年の人工知能学会でプロ2段の棋士に三子置いて負けていたレベルだったのに、この進歩は凄まじい・・・