04 Aug 2017, 08:38

Real-Time(Fast) Style TransferでノートPCのWEBカメラからの動画にゴッホのスタイルをとらんすふぁー

fast.ai cutting-edge-dl-for-coders-part2の Lesson9の課題で、Fast Style Transferを実装した。

[https://www.youtube.com/embed/tEUtFeF4v8Q?ecver=1]

はじめに

前回の続きです。Lesson8ではStyle Transferを試した。

今回は、その続き。

Lesson9の課題は、Perceptual Losses for Real-Time Style Transferという論文を読んで理解し、Fast Style Transferを実装せよとのこと。

概要

前回のNeural Style Transferでは、学習に時間がかかることが問題だった。

この論文で書かれた手法をつかうと、学習したネットワークに画像を入力すると、順伝搬のみの計算でStyle Transferができる。GPUだと一瞬で(CPUだと一瞬じゃなかった)できる。なので、Real-Timeな画像処理=動画作成ができる。

これはすごい!

ネットワークの全体像は以下のような感じ。論文より引用。

Image Transform NetworkLoss Network の2つのネットワークを組み合わせる。

Image Transform Networkのアーキテクチャは、以下のサブドキュメントが詳しい。

Loss Networkは、VGG-16を用いる(全結合層をとったもの)。Content Loss と Style Lossを足しあわせ(これを Perceptual Lossと定義している)、損失関数とする。やっていることは、Lesson8のStyle Transferに似ている。

この損失関数を使って Image Transform Networkを 誤差逆伝播法で最適化する。Loss Networkは学習させない(公開済みの重みを使う)、Image Transform Networkのみ学習させる。

学習には、MS COCOという画像データを論文では利用していたが、Lesson9では、ImageNetからの抜粋画像(http://files.fast.ai/data/)を利用した。

ちょっと言葉足らずなので、詳しくは以下の記事を参考に。とても詳しく書いてあって参考になった。感謝。

結果

今回も、与えられたJupyter Notebookをコピペして作成。コードの意味が理解できていないという情けない状況。がんばろう

ノートPCの webcamから動画を取り込んで、fast style transfer で変換して、再度出力するということをやったが、ノートPCの非力なCPUでは、リアルタイムでは行かなかった。

02 Aug 2017, 04:34

Neural Style Transerで京都渡月橋の写真にゴッホのスタイルをとらんすふぁー

fast.ai Part2

fast.ai の Cutting Edge Deep Learning for Coders を始めた。

Lesson8のテーマは Artistic Transfer。いわゆる Style Transfer。絵のスタイルをディープラーニングで抽出して、別の画像に転移させるというもの。

Part1は Practical(実践) という題名だった。その意味するところは、Kagglerになれ というものだった。

Part2は、Cutting Edge(最先端)という題名だ。その意味するところがわかった。それは、論文を読め ということだった。Part2では、論文を読んでそれを実装するというのが課題として課せられるようだ。英語も数学もツライのに、論文なんて読んだことないから、無理だよ!!挫折しそう。

Neural Algorithm of Artistic Style

Lesson8では、アート系のディープラーニングの先駆けになった論文、A Neural Algorithm of Artistic Styleを読んで、再実装して、さらには結果をブログに書いてねという課題が出された。

というわけで、実装してみた。

元となるコードはちゃんと提供されている。それを写経しただけ。Keras版と PyTouch版がある。

理論の方は、素晴らしく解説された記事があるので、それを紹介。

コンテンツとスタイルの特徴抽出

このNeural Style Transferという方法は、異なる画像からコンテンツとスタイルを別々に特徴抽出して、それらを足しあわせて一枚の画像を生成する。

まずは、元となるコンテンツ画像。京都嵐山の渡月橋。去年旅行で行ってきた。

このコンテンツ画像からコンテンツの特徴を抽出したものが以下。

スタイル画像は、定番のゴッホの星月夜。

スタイルの特徴を抽出した画像が以下。

結果

そして最後に、コンテンツとスタイルを合成した画像が以下。

おまけ

こんなこともできる。

25 Jul 2017, 13:23

MQTTでMindstorms EV3のロボットカーを パソコンのキーボードからリモコン操作

LEGO Mindstorms EV3 を パソコンのキーボードから操作してみます。

私は、LEGO Mindstorms EV3の教育版を買ったので、家庭版と違いリモコンがありません。でも、ラジコンのようにロボットカーを操作したい!そこで、MQTTというプロトコルを利用して、ノートPCのキーボードを使ってロボットカーを制御する方法を思いつきました。

まずは、結果をどうぞ!

[https://www.youtube.com/embed/kl_07BWGNWo?ecver=1]

環境

  • Publisher(PC) Ubuntu 16.04
  • Subscriber(ev3) ev3dev
  • Python 3.6
  • ev3dev-lang-python

ロボットの組み立て

この本に載っているtribotを作成しました。

Setup

MQTTという軽量な通信プロトコルを使った方法がev3devのサイトに紹介されていたので、それを参考にする。

MQTTではpublisher(出版者)が発するメッセージをbroker(仲介者)がsubscriber(購読者)へ配信する。今回は、publisherが ノートPC, brokerとsubscriberが ev3になる。

ev3に brokerサーバソフトをインストールする。mosquittoというソフトをインストール

sudo apt-get install mosquitto

インストールが完了すると、サービスが立ち上がる。

続いて、mqttをPythonで使うための pahoというソフトをノートPCと ev3の両方にインストール。

sudo apt-get install python3-pip
sudo pip3 install paho-mqtt

PC 側

pip3 install paho-mqtt

これで、MQTT で通信する準備は整った。

punput

Pythonで押されたキーボードのキーの取得をするために、punputというライブラリを利用する。

ラズパイカーで同じようなことを考えている人のブログ記事を発見した。これはありがたい。

コード

最後に、書いたコードが以下。これで、キーボードの十字キーを使ってロボットカーをリモコン代わりに操作することができた。

28 Nov 2015, 18:28

mindwave moblie で 瞑想力を鍛える!瞑想の効果と可視化について

はじめに

ストレスが多い世の中ですが、ストレス対処法には瞑想がオススメ。

グーグル・インテル・ゴルードマンサックスなどの大手企業が研修に瞑想を 取り入れ、スティーブ・ジョブズ、ビル・ゲイツ、イチローなどの成功者 たちが瞑想に取り組んでいます.

今日は、瞑想の効果と、mindwave mobile による瞑想状態の可視化について まとめて見ました.

瞑想の効果

瞑想には、さまざまな効果が確認されています.

  • ストレスがへる
  • 不安がなくなる
  • 集中力が上がる
  • アイディア力が上がる
  • ポジティブ思考になれる
  • やる気を起こす
  • よく眠れる
  • うつな気分が緩和される

個人的な体験

個人的な体験を書くと、自分が瞑想に興味を持ったのは、 ケリー・マクゴナガル著『スタンフォードの自分を変える教室』の本で 瞑想がやる気を引き出すことが解説されていたからでした.

それまで、瞑想というと、仏教に結びついた宗教臭さを感じていたのですが、 この本を読むことで、そんな胡散臭さが拭い去ら、瞑想に前向きな思いを持ちました.

ブログ記事からの引用

その他、瞑想の効果についてたくさんのブログにかかれています. いくつかピックアップしてみます.

不眠の原因となる自律神経の乱れや、不安、ストレスなどが瞑想を行うことに よって改善されるため、眠りやすくなることがわかりました。

瞑想は宗教と一切関係ない。瞑想は、宗教が誕生する前から存在していたんだ。

瞑想中の脳は普段行っている「情報処理」が停止している状態であるとわかっています。 瞑想時には、脳が情報処理を行っていることを示す「ベータ波」が減少するそうです

スティーブ・ジョブズ、ビル・ゲイツ、イチロー、マドンナ、ビートルズ、ク リント・イーストウッド、ヒラリー・クリントン、ビルフォード、リチャード・ ギア、稲盛和夫、長谷部誠、長嶋茂雄などのように、成功者の中には『瞑想』 を実践している、あるいは実践していた人がたくさんいます。

mindwave mobile

瞑想のコツは、呼吸に集中してなにもかんがえないこと.

さて、瞑想しようとしたとき、自分は本当に瞑想できているのだろうか??

そこで、そんな瞑想状態を可視化するためのツールか存在する! それが、これ、mindwave mobileだ.

1万7000円するが、思い切って買ってしまいました!

瞑想の脳トレをしよう!

これをつかうと、脳波データを取得することができます.

瞑想中の脳波は、アルファ波やθ波がでている状態. これを、mindwaveによって可視化しようと思いました.

筋トレも具体的な数値が見えるとやる気がでるように、 脳トレも、*具体的な数値目標* がみえるようになれば、 やる気が出るのでは??

mindwaveには、様々なAPPが無料・有料で公開されている. 瞑想用のアプリもあるので、紹介する.

Meditation Journal

PC用有料アプリ.

日々の瞑想状態をカレンダに記録していくアプリ. 一日の瞑想状態の平均値や分散値などの統計グラフを 見ることができる. これを毎日つかっている.

瞑想Hack!!

さて、本題. 瞑想データをPythonから取得するライブラリがある.

このライブラリを利用して、瞑想データを取得するスクリプトを書いてみた.

from NeuroPy import NeuroPy

# コールバック用メソッド
def meditation_callback(value):
    print "Meditation Rate:", value
    return None

# 接続
obj = NeuroPy("COM4")

# コールバック関数を登録
obj.setCallBack("meditation", meditation_callback)

# 処理をスタート
obj.start()

while True:
    None

コンソールから実行すると、瞑想データが0-100の間で取れる.

さて、これからどんなハッキングをしようかな.

以上、Happy Hacking!!

19 Jul 2015, 06:57

夏休みの自由研究 は OANDA APIを利用して FX システムトレード

夏休みの自由研究として、FX システムトレードをしようと画策中. この記事は、そのスナップショット.

やったこと

OANDA API 、とくに oandapyを利用して、 Pythonから 為替取引ができるようにした. oandapyは python3 で動作するようにフォークした

Dukascopyからヒストリカルデータをダウンロードして(これは手動)、 そのデータを利用して、バックテストを実施. バックテストの結果を matplotlibでグラフ化.

損益のグラフ

移動平行線のクロスで売買するグラフ

参考にしたコード

一人ではとうていできないので、以下のコードを参考にした.

MT4との比較

メリット

  • 好きな言語が使える

    OANDA APIは REST APIなので、どんな言語でも使える. 自分は Python!

  • Linux環境で動作

    Linux環境で動作することで、Amazon AWSの EC2上で動作させることができる.

  • Pythonのデータ解析ライブラリがつかえる

    Pythonを利用しているので、Pythonの便利なデータ解析ライブラリを 利用することができます. Numpy, Pandas, Scipy, Matplotlib…

    ta-libなんという、テクニカル指標に特化したライブラリもある.

デメリット

  • バックテストのデータを自分で用意する必要がある.
  • プラットフォームを自分で実装するのが大変.

    MT4プログラミングはMT4というプラットフォームのおかげで、 用意にコーディングやテストができたけれども、 OANDA APIを利用すると、自前ですべてプログラミングしないといけない.

今後の予定

ようやく動作しそうな?ベースができたので、 これから取引のロジックを考えていこうと思う. ここからが本当の自由研究!

以上、Happy Hacking!!

06 Jul 2015, 13:23

夢の寝室環境システムを自作しました!!

以前、このブログとは別のブログを持っていたのだが、久しぶりに見たら消滅していた。。

どうしても救済したい内容があったので、このブログに記事を転載しておく.

以下、転載. 約3年前のお話なので、今はまったく存在しません…

転載内容: 夢の寝室環境システム

今日は自分の作った現段階での寝室環境システムを紹介します。

就寝編

以下のような流れで眠りにつきます。

  • 光目覚ましをSleepモードで消す
  • アロマディフューザーでラベンダーの香りをスリープモードでかける
  • 究極の眠れるCDを流す
  • 間接照明で青く部屋をライトアップ
  • 30分後に、電気を消す
  • 1時間後に音楽停止して、パソコンをスリープモードにする

光目覚ましをSleepモードで消す

まずは、光目覚ましを使って次第に部屋を暗くしていきます。

アロマディフューザーでラベンダーの香りをスリープモードでかける

心地良い睡眠のためにはアロマは欠かせません。 睡眠タイマー機能付きのアロマディフューザーを使います。 無印のアロマディフューザーがコストパフォーマンスがよいと思います。

ラベンダーが好きなので、ラベンダーの匂いを使います。

究極の眠れるCDを流す

睡眠用の癒しの音楽を聞きながら寝ます。 睡眠用の音楽はいろいろと試しましたが、これが一番好きです。

間接照明で青く部屋をライトアップ

光目覚ましとは別に、間接照明を利用して青く部屋を照らします。 いろんな色に光るLED間接照明を利用します。

間接照明と合わせると、太陽が沈んでいくような雰囲気となり気に入っています。

30分後に電気を消す

ここまでは単体の快眠グッズを利用しているだけで、 システムっぽくないですが、ここからシステムっぽくなります。

リモコン操作できる間接照明を利用して, 指定時刻になったら間接照明を完全に落とします。

リモコンを自由に制御できる機械『iRemocon』を利用します。

間接照明に対して、パソコンで時間を計測していて30分たったところで、 パソコンからiRemoconに間接照明を消すように信号を送り、iRemoconから消します。

1時間後に音楽停止して、パソコンをスリープモードにする

最後に、パソコンをスリープモードにします。 利用するのは、フリーソフトの『WakeMeUp!!』です。

起床編

起床編は、就寝編の逆の手順で目覚めていきます。以下のような流れです。

  • 起床15分前に、エアコンとアロマ起動
  • 光目覚ましで少しずつ明るくなる
  • 起床時間になると、電気がつき、音楽が流れる。

起床15分前に、エアコンとアロマ起動

iRemoconを利用することで、エアコンとアロマを事前に起動しておきます。

アロマディフューザーはリモコン制御できるちょっと高めのやつを使っています。 起床用と就寝用でアロマディフューザーを分けて使ってます。

光目覚ましで少しずつ明るくなる

寝る前に仕掛けた光目覚ましによって、部屋が次第に明るくなっていきます。 起床時間になると、電気がつき、音楽が流れる

パソコンのWakeMeUp!!によって、起床時間になると起床用のプログラムが実行されます。

これによって、部屋の天井灯がつき、Youtubeから音楽が流れます。 音楽は次第にボリュームを上げていって、最後にはボリュームマックスでうるさくなります。

まとめ

自動化したからといって、全く寝坊がなくなったわけではないです。(汗)

心地良い睡眠を得るには、心理的な部分もおおく働いているとおもいます。

睡眠グッズはお金さえ払えば頑張らなくても効果があるという点がいいですね。

メンタル面との合わせ技で頑張っていこうと思います。

以上、Happy Hacking!!