Rapsberry pi(Raspbian Jessie)でTensorFlowを動かしてみた。
はじめに
TensorFlowはGoogleがオープンソースで公開した機械学習のライブラリ。ディープラーニング実装でTensorFlowが流行るかなと思ったが、サポートOSはMacOS/linuxOS/iOS。残念ながらWindowsOSは未サポート。それなら、Rapsberry pi(Raspbian Jessie)で動かないかなと思ったら、ありました。
インストール方法
- tensorflow-on-raspberry-piを利用して、TensorFlow0.8.0の環境をRapsberry pi(Raspbian Jessie)上に作ります。arm用ビルド対応が入ってます。ちなみにGoogleサポート外です。
- Rapsberry pi2で試しましたが数分で問題なくインストール出来ました。
$ sudo apt-get install python-pip python-dev $ wget https://github.com/samjabrahams/tensorflow-on-raspberry-pi/raw/master/bin/tensorflow-0.8.0-cp27-none-linux_armv7l.whl $ sudo pip install tensorflow-0.8.0-cp27-none-linux_armv7l.whl
MNISTをTensorFlow + Rapsberry pi(Raspbian Jessie)で動かしてるスクリーンショット
- 手書き文字学習の定番、MNIST For ML Beginnersを動かしてみました。
- CPU負荷325.6%!で、ゆっくりMNISTを計算してくれます。
まとめ
Rapsberry pi(Raspbian Jessie)でTensorFlowを動かしてみました。Rapsberry piでTensorFlowも動いちゃうなんて面白いですよね。ではまた。
参考文献
クラマー,ペレ,ガリンシャ,ジョージベストそしてクライフ. サッカーのモノクロ写真をディープラーニングで自動彩色をしてみた。
ディープラーニングを用いた自動彩色
ディープラーニングを用いた自動彩色、前から試してみたかったのですが、環境作りが億劫で手を付けていませんでした。しかし先日、早稲田大の研究チームから、
ディープネットワークを用いた大域特徴と局所特徴の学習による 白黒写真の自動色付け
という論文が発表され、 合わせてubuntuで環境構築が楽なコードも公開されたので、早速試してみました。
環境構築
こちらを参考に。
【自動彩色!】色塗り人工知能のインストール方法【Ubuntu】
テスト画像
サッカーの歴史的なモノクロ画像を中心に自動彩色してみました。
空と芝生が含まれる構図がそこそこ得意なようです。画像の特徴として肌の色はもうちょっと出て欲しいような気がします。
では、比較的上手くいった画像を。
クラマーさん
ペレ
ジョージベスト
ガリンシャ
- ガリンシャはモノクロのイメージが強いですが、そのイメージが変わる一枚に。
クライフ
https://itunes.apple.com/jp/album/cruyff-flying-dutchman/id512568042?i=512568348&uo=4&at=1010lmFA
おまけ:ローマの休日
まとめ
サッカーの歴史的写真を中心に、ディープラーニング自動彩色を試してみました。サッカーに寄せた画像で学習すればユニフォームの色分けなどはもう少し良くなるのではないでしょうか。やっぱりディープラーニングは、何を学習させるかが肝のように思います。世界中の画像を手元に置いてるところなら力技で出来るかもしれませんが。ではまた。
Raspberry pi 2(Raspbian Jessie)にROS indigo(ROS-Desktop,rqt,rviz)をインストールする
はじめに
Raspberry pi 2(Raspbian Jessie)にROS indigo(ROS-Desktop)をインストールする方法が 日本語ではなかったので、まとめました。 rqtやrvizが使えた方がデバッグで圧倒的に便利なので、おすすめです。 Raspberry pi 3でも、Raspbian Jessieなら同様の方法でインストールできると思います。
ROSのリポジトリを設定、認証キーを追加
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu jessie main" > /etc/apt/sources.list.d/ros-latest.list' $ wget https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -O - | sudo apt-key add -
aptのパッケージインデックスを更新
$ sudo apt-get update $ sudo apt-get upgrade
ROSビルド(ROS-Comm)に必要なパッケージをインストール
$ sudo apt-get install python-pip python-setuptools python-yaml python-distribute python-docutils python-dateutil python-six $ sudo pip install rosdep rosinstall_generator wstool rosinstall
ROSビルド(ROS-Desktop)に必要なパッケージをインストール
- ROS-Desktopのinstallに必要なboostが不足しているので追加する
- CMake is not able to find BOOST libraries
$ sudo apt-get install cmake libblkid-dev e2fslibs-dev libboost-all-dev libaudit-devl
rosdepを初期化する
$ sudo rosdep init $ rosdep update
catkinのワークスペースを作成する
$ mkdir ~/ros_catkin_ws $ cd ~/ros_catkin_ws
rosinstallでdesktopを選択する
- rqtやrvizが使えた方がデバッグで圧倒的に便利なので、desktopでinstallする。
- Installing ROS Indigo on the Raspberry Pi にdesktopのinstallに必要な手続きは飛び飛びで記載されているが分かりにくいので、以下順序立てて書く。
$ rosinstall_generator desktop --rosdistro indigo --deps --wet-only --exclude roslisp --tar > indigo-desktop-wet.rosinstall $ wstool init src indigo-desktop-wet.rosinstall
ROSビルド(ROS-Desktop)に必要なパッケージをソースビルドする
- desktopは、libconsole-bridge-dev, liblz4-dev, liburdfdom-headers-dev, liburdfdom-dev, collada-dom-devのソースビルドが必要
- ソースビルド用にexternal_srcディレクトリを用意する
$ mkdir ~/ros_catkin_ws/external_src $ sudo apt-get install checkinstall cmake $ sudo sh -c 'echo "deb-src http://mirrordirector.raspbian.org/raspbian/ testing main contrib non-free rpi" >> /etc/apt/sources.list' $ sudo apt-get update
libconsole-bridge-devをビルドする
$ cd ~/ros_catkin_ws/external_src $ sudo apt-get build-dep console-bridge $ apt-get source -b console-bridge $ sudo dpkg -i libconsole-bridge0.2*.deb libconsole-bridge-dev_*.deb
liblz4-devをビルドする
$ cd ~/ros_catkin_ws/external_src $ apt-get source -b lz4 $ sudo dpkg -i liblz4-*.deb
liburdfdom-headers-devをビルドする
$ cd ~/ros_catkin_ws/external_src $ git clone https://github.com/ros/urdfdom_headers.git $ cd urdfdom_headers $ cmake . $ sudo checkinstall make install
checkinstallコマンド後に、以下の設定画面となる。
0 - Maintainer: [ root@raspberrypi ] 1 - Summary: [ Package created with checkinstall 1.6.2 ] 2 - Name: [ urdfdom-headers ] 3 - Version: [ 20150804 ] 4 - Release: [ 1 ] 5 - License: [ GPL ] 6 - Group: [ checkinstall ] 7 - Architecture: [ armhf ] 8 - Source location: [ urdfdom_headers ] 9 - Alternate source location: [ ] 10 - Requires: [ ] 11 - Provides: [ urdfdom-headers ] 12 - Conflicts: [ ] 13 - Replaces: [ ] Enter a number to change any of them or press ENTER to continue:
2番のNameをurdfdom_headersからliburdfdom-headers-devに変更する。 2 を入力してEnter、liburdfdom-headers-dev と入力する。 再度確認の設定が表示されたら Enterで進む。
liburdfdom-devをビルドする
$ cd ~/ros_catkin_ws/external_src $ sudo apt-get install libboost-test-dev libtinyxml-dev $ git clone https://github.com/ros/urdfdom.git $ cd urdfdom $ cmake . $ sudo checkinstall make install
checkinstallコマンド後に、以下の設定画面となる。
0 - Maintainer: [ root@raspberrypi ] 1 - Summary: [ Package created with checkinstall 1.6.2 ] 2 - Name: [ urdfdom ] 3 - Version: [ 20150804 ] 4 - Release: [ 1 ] 5 - License: [ GPL ] 6 - Group: [ checkinstall ] 7 - Architecture: [ armhf ] 8 - Source location: [ urdfdom ] 9 - Alternate source location: [ ] 10 - Requires: [ ] 11 - Provides: [ urdfdom ] 12 - Conflicts: [ ] 13 - Replaces: [ ] Enter a number to change any of them or press ENTER to continue:
2番のNameをurdfdomからliburdfdom-devに変更する。 2 を入力してEnter、次に liburdfdom-dev と入力する。 再度確認の設定が表示されたら Enterで進む。
collada-dom-devをビルドする
$ cd ~/ros_catkin_ws/external_src $ sudo apt-get install libboost-filesystem-dev libxml2-dev $ wget http://downloads.sourceforge.net/project/collada-dom/Collada%20DOM/Collada%20DOM%202.4/collada-dom-2.4.0.tgz $ tar -xzf collada-dom-2.4.0.tgz $ cd collada-dom-2.4.0 $ cmake . $ sudo checkinstall make install
checkinstallコマンド後に、以下の設定画面となる。
0 - Maintainer: [ root@raspberrypi ] 1 - Summary: [ Package created with checkinstall 1.6.2 ] 2 - Name: [ collada-dom ] 3 - Version: [ 2.4.0 ] 4 - Release: [ 1 ] 5 - License: [ GPL ] 6 - Group: [ checkinstall ] 7 - Architecture: [ armhf ] 8 - Source location: [ collada-dom-2.4.0 ] 9 - Alternate source location: [ ] 10 - Requires: [ ] 11 - Provides: [ collada-dom ] 12 - Conflicts: [ ] 13 - Replaces: [ ] Enter a number to change any of them or press ENTER to continue:
2番のNameをcollada-domからcollada-dom-devに変更する。 2 を入力してEnterを押し、次に collada-dom-dev と入力する。 再度確認の設定が表示されたら Enterで進む。
collada_urdfにパッチを当てる
Re: [ros-sig-embedded] Re: Install ROS on Linaro (gumstix, pandaboard) の添付ファイル(0001-fixed-arm-build.patch)をダウンロードし、パッチを当てる。
$ cd ~/ros_catkin_ws/src/robot_model/collada_urdf/ $ patch -p1 < ~/0001-fixed-arm-build.patch
rvizのコードをARMビルド用に一部変更する。
Unable to compile rviz on ubuntu armhfを参考に、mesh_loader.cppに+で表記した行を追加する。この変更をしないとrvizのビルドが通らない。
$ nano ~/ros_catkin_ws/src/rviz/src/rviz/mesh_loader.cpp
#include <assimp/aiPostProcess.h> #include <assimp/IOStream.h> #include <assimp/IOSystem.h> #endif + # ifdef __arm__ // fix for ARM build + #include <strings.h> + bool Assimp::IOSystem::ComparePaths(const char *p1, const char *p2) const + { + return !::strcasecmp(p1, p2); + } + # endif
ROSビルド用にスワップメモリを拡張する
- ROSビルド時にメモリ不足のリンクエラーとなるので、スワップメモリを拡張する。
- 詳しくはこちら。Raspberry Pi でビルドがこんな感じで失敗したときの対処
- ROSビルドが終わったら元に戻す。
$ vi sudo raspi-config -> 8. Advanced Option を選択 -> A3 Memory Split -> GPU のメモリを 16MByte に設定 -> 下矢印キーで Finish を選択 -> Yes でreboot
$ sudo service dphys-swapfile stop
$ sudo nano /etc/dphys-swapfile
#CONF_SWAPSIZE=100 CONF_SWAPSIZE=1024
$ sudo service dphys-swapfile start
ROS依存関係の解消
- 下記を実行すると、python-rosdep, python-catkin-pkg, python-rospkg, python-rosdistro, sbclなど色々と不足している旨のエラーメッセージが出るが、pip経由やソースビルド経由で導入済みなので問題なし。
$ cd ~/ros_catkin_ws $ rosdep install --from-paths src --ignore-src --rosdistro indigo -y -r --os=debian:jessie
ROSのビルドを実行する
- 注意:ビルド完了まで数時間かかる。(スワップメモリを使用することもあり)
- -j4オプションだと途中でエラーになるので、初めから-j2オプションで行う。
- 上記まで手続きをこなしていれば、下記のrvizのビルドエラー以外は通る。
$ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/indigo -j2
rvizで以下のビルドエラーが出た場合は個別でビルドする。
Makefile:123: recipe for target 'all' failed make: *** [all] Error 2 <== Failed to process package 'rviz': Command '['/opt/ros/indigo/env.sh', 'make', '-j4', '-l4']' returned non-zero exit status 2 Reproduce this error by running: ==> cd /home/jorg/ros_catkin_ws/build_isolated/rviz && /opt/ros/indigo/env.sh make -j4 -l4 Command failed, exiting.
$ cd ~/ros_catkin_ws/build_isolated/rviz $ sudo make -j2
- 再度ROSビルドをかける
$ cd ~/ros_catkin_ws $ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/indigo
ROSビルド結果を反映させる
- --install-spaceオプションで/opt/ros/indigo/にインストールしているので、そこのsetup.bashでビルドを反映させる。
- source /opt/ros/indigo/setup.bashを.bashrcにも記述することで起動毎に自動反映できる。
$ source /opt/ros/indigo/setup.bash $ echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
ROS(roscore)を実行し、動作確認する
$ roscore
- 以下がエラーなしで立ち上がればROSのビルド完了!
... logging to /home/pi/.ros/log/9781754e-3a9d-11e5-8b98-b827ebe98f3c/roslaunch-raspberrypi-11718.log Checking log directory for disk usage. This may take awhile. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB. started roslaunch server http://raspberrypi:42226/ ros_comm version 1.11.19 SUMMARY ======== PARAMETERS * /rosdistro: indigo * /rosversion: 1.11.19 NODES auto-starting new master process[master]: started with pid [11735] ROS_MASTER_URI=http://raspberrypi:11311/ setting /run_id to 9781754e-3a9d-11e5-8b98-b827ebe98f3c process[rosout-1]: started with pid [11748] started core service [/rosout]
Raspbian Jessieで、roscore,rqt,rvizを立ち上げたスクリーンショット
- roscoreを起動、picameraのimage_topicを配信、rqt/rvizをリアルタイム表示している。
- 実際に動いてます!
参考文献
Installing ROS Indigo on the Raspberry Pi
Raspberry piにROS indigoをインストールする
CMake is not able to find BOOST libraries
Re: [ros-sig-embedded] Re: Install ROS on Linaro (gumstix, pandaboard)
バイエルン vs ドルトムントDFBポカール杯決勝 2016/5/21 香川真司 報道写真集
ウイイレ2016 myclubモード 選手能力値とチームレベルの関係について
チームレベルとは?
- ウイイレ2016でmyclubモードでは、
チームレベル
(レベル1から5まで)によって、対戦相手のマッチングが決まる。 - レベル3までは、普通の選手が多いので、
チームレベル
は気にならない。しかし、レベル4になると、イブラヒモビッチやポグバなどワールドクラスの選手に遭遇する。 - レベル5になると銀河系軍団ばかりでゴリ押しも。ストレスが溜まる。
- 好みの選手を操りつつ、ストレスなく、勝負も楽しむ。ウイイレ2016のmyclubモードは
チームレベル4がおすすめ
。
チームレベルとチーム力の関係
チームレベル
はチーム力の値
(スタメンとベンチ合計18人の選手能力値で決まる値 ※ベンチ外の選手は影響しない)で決定する。- チームレベルとチーム力の関係は下表通り。
- チーム力の値が
1650 以上 1799 以下
であればレベル4
となる。
チームレベル | チーム力 |
---|---|
3 | 1400 以上 1649 以下 |
4 | 1650 以上 1799 以下 |
5 | 1800 以上 |
チーム力と選手能力の関係
- PESFan.com Thread: Team levelsによると、チーム力
1150
のチームに選手能力値57~90
の選手を1人追加したところ以下のグラフの関係になったそう。(横軸:選手能力値、縦軸:チーム力の上昇値)
- 例えば、ジェイミー・ヴァーディ(選手能力値=
81
)をチーム追加した場合、チーム力はおおよそ157
上昇する。
- チーム力の上昇は選手能力値と強く相関がある。
- 実際、選手のレベルが上がった場合もチーム力は上昇する。
- 選手コストの影響もありそうだが軽微。
まとめ
- ストレスなく、ウイイレ2016myclubモードを楽しむには
チームレベル4が最適
。 - チーム力を
1650 以上 1799 以下
にすればチームレベル4になる
。 - チーム力の上昇は選手能力値と強く相関がある。
- 選手のレベルが上がると、チーム力も上昇する。
- チームレベルを調整すれば、ウイイレ2016myclubモードをもっと楽しめるかも。
グラフ化ツール
- Jupyter(IPython) Notebookを利用して、matplotlibでグラフ化したpythonコードを掲載する。
- GitHub GistとJupyter(IPython) Notebookの組み合わせは便利。
PES2016_Plot_PlayerStrength2TeamStrength.ipynb
参考サイト
PESFan.com Thread: Team levels
myClub in PES 2016: Balancing The Teams
GitHub Gistを使ってブログにJupyter(IPython) Notebookを表示する方法
以上
ウイイレ2016 レスター・シティFC、15-16 プレミア優勝時の能力値まとめ
はじめに
レスター・シティFCが、2015-16 シーズン プレミアリーグを制覇しました!
スモールクラブの快挙
1994-95シーズンにアラン・シアラー、クリス・サットンを要したブラックバーン・ローヴァーズFCがプレミアリーグを制して以来、スモールクラブの快挙です。
ウイイレ2016のレスターの記録
この魅力的なチーム、レスター・シティFC(ウイイレではイーストミッドランズ
)はもちろんウイイレ2016で操作することが出来ます。しかし毎年ウイイレの新作が発売されて行くため、このミラクルチームの能力値もいづれは振り返ることが難しくなります。
今回は歴史的なチームの記録として、ウイイレ2016におけるレスター・シティFCの能力値を残しておこうと思います。(2016/3/24配信のdatapack3.0準拠)
2015-16 レスター・シティFC
Starting Line-ups
GK
- 1 カスパー・シュマイケル(GK,78)
DF
MF
26 リヤド・マフレズ(RMF,81)
14 エンゴロ・カンテ(CMF,78)
4 ダニー・ドリンクウォーター(CMF,76)
11 マーク・オルブライトン(LMF,74)
FW
20 岡崎慎司(ST,79)
9 ジェイミー・ヴァーディ(CF,81)
Substitution
32 マーク・シュワルツァー(GK,77)
27 マルチン・ヴァシレフスキ(CB,77)
15 ジェフリー・シュラップ(LSB,77)
10 アンディ・キング(CMF,77)
13 ダニエル・アマーティ(CMF,69)
22 デマレイ・グレイ(LMF,67)
24 ネイサン・ダイアー(RMF,77)
33 ギョクハン・インレル(CMF,80)
23 レオナルド・ウジョア(CF,75)
Shinji Okazaki: Every Premier League Goal
まとめ
- ウイイレ2016における、Starting Line-upsの能力平均値は
78.0
。プレミアリーグでも中くらいの評価でした。 - ウイイレ2017でのレスター・シティFC(ウイイレでは
イーストミッドランズ
)はどうなるのでしょうね。大いに期待です。