CNN(Convolutional Neural Network) on  Raspberry pi

この記事はとても古くなっています。
Raspberry pi にmovidius を接続して OpenVinoを利用するという選択肢もあります。
Raspberry pi でも64bit OS を使う選択肢もあります。
最新の状況については、自ら調査してください。

以下の内容は 2018年02月28日に最終更新したものです。

----
最近調べている分野のリンク集です。

"CNN on  Raspberry pi"では分かりにくいので、タイトルを変更しました。

まず、Convolutional Neural Networkの学習自体は、（GPUなどで演算性能を高めた）PC上で行われています。
しかも、組み込み目的のために計算量を減らすようにしたうえで、学習と同じライブラリを使って実行がなされている。
そういう枠組みです。



- [Convolution Neural Network Step.1 code Raspberry pi]
(https://www.youtube.com/watch?v=e4v4BXMTgqo)


- Conference Paper [Deep Learning on a Raspberry Pi for Real Time Face Recognition]
(https://www.researchgate.net/publication/279537625_Deep_Learning_on_a_Raspberry_Pi_for_Real_Time_Face_Recognition)
　　　　　顔検出自体はOpenCVの顔検出(Viola-Jonesのアルゴリズム) を用いている。
　　　　　ここでも学習自体は、PCで実行されている(a NVIDIA GeForce GTX 780 GPU (40 minutes). )
　　　　　Fig. 1には誰かを識別するのための学習画像の例を示している。
　　　　  Fig. 2 には使用しているConvolutional Neural Network の構造が　示されている。　46×46 source image


- [Deep Learning (CNN) in Raspberry Pi 3](https://catdeep.wordpress.com/2016/04/29/deep-learning-cnn-in-raspberry-pi-3/)

- [Image Processing in Cellular Neural Networks with Python
on Raspberry Pi.](http://blog.ankitaggarwal.me/technology/image-processing-with-cellular-neural-networks-using-python-on-raspberry-pi/)


-　Course  [CS231n: Convolutional Neural Networks for Visual Recognition](http://cs231n.stanford.edu/index.html)





## [DeepBeliefSDK](https://github.com/jetpacapp/DeepBeliefSDK/tree/master)

- [Deep learning on the Raspberry Pi!]
(https://petewarden.com/2014/06/09/deep-learning-on-the-raspberry-pi/)


- [【 １．RaspberryPi に GitHub公開中の DeepBeliefSFDK を組込む方法 】](http://qiita.com/HirofumiYashima/items/8f0772091de49831c482)


##TensorFlow
まずは、一般的な環境を理解しましょう。
　[TensorFlow]https://www.tensorflow.org/

 Pythonはご使用のOSによっては標準のツール類に使われていますし、機械学習に興味をもっている方の場合は既にpythonを自覚しなくても使っている可能性があります。そのようなツール類の環境を破壊しないためにも、Virtualenv installをすべきでしょう。


　[Pip Installation]https://www.tensorflow.org/versions/r0.9/get_started/os_setup.html#pip-installation
  [Virtualenv install:] https://www.tensorflow.org/versions/r0.9/get_started/os_setup.html#virtualenv-installation
 [tensorflow/tensorflow/models] (https://github.com/tensorflow/tensorflow/tree/master/tensorflow/models) 
 [Tutorials]https://www.tensorflow.org/versions/master/tutorials/index.html

　MacOS上の記事[Pythonの環境構築からTensorFlowインストール](http://qiita.com/bohemian916/items/4f0736dcea932a162d9e)

[UbuntuにTensorFlowをインストール](http://qiita.com/yudsuzuk/items/092c38fee18e4484ece9)

[Ubuntu+Python2.7にTensorFlowを導入](http://qiita.com/w2-yamaguchi/items/a2dd816ff5db3e9406c9)
  この記事の方はVirtalBox上のUbuntuを利用しています。

[WindowsユーザーがTensorFlowをインストールしてみた](http://yaju3d.hatenablog.jp/entry/2016/03/27/022400)
 　　 この記事での利用環境 Windows 10 Home 64bit,　Oracle VM VirtualBox 5.0.16


[TensorFlowで始める深層学習　そもそも何が出来るの？](http://developers.gnavi.co.jp/entry/2016/01/28/TensorFlow%E3%81%A7%E5%A7%8B%E3%82%81%E3%82%8B%E6%B7%B1%E5%B1%A4%E5%AD%A6%E7%BF%92_%E3%81%9D%E3%82%82%E3%81%9D%E3%82%82%E4%BD%95%E3%81%8C%E5%87%BA%E6%9D%A5%E3%82%8B%E3%81%AE%EF%BC%9F)
 サンプルやチュートリアルについて日本語で少し紹介を書いてあります。

### TensorFlowをRaspberry Piで使う記事

- TensorFlow for Raspberry Pi (GitHub)[samjabrahams/tensorflow-on-raspberry-pi](https://github.com/samjabrahams/tensorflow-on-raspberry-pi)

- TensorFlowをRaspberryPiで実行できないかというGitHubでなされた議論(この中でsamjabrahams　氏が上のGitHubを述べている)[Tensorflow on Raspberry Pi #254](https://github.com/tensorflow/tensorflow/issues/254)

- YouTube [Convolutional Neural Networks in Tensorflow](https://www.youtube.com/watch?v=lTFOw8-P02Y)
     TensorFlowをPythonのインタフェースで利用している。

- [RaspberryPI3でTensorflowのマルチノードってできるんだ](http://qiita.com/sakuya398/items/d27746d1ee1ccf82d8c5)

- [Raspberry Pi 深層学習ライブラリで物体認識（Keras with TensorFlow・Open CV）](http://qiita.com/PonDad/items/c5419c164b4f2efee368)
 この方の記事は、かなり手順が詳しいのでお勧めです。
    - OpenCV3インストール
    - TensorFlowインストール
    - Keras インストール
    - 学習済みモデルの利用

- [TensorFlowのC++ライブラリをRasPiでビルドする](http://workpiles.com/2016/07/tensorflow-raspberry_pi-libs/)
- [TensorFlowをRaspberryPIにインストールする手順](http://qiita.com/mix_dvd/items/6b38859148a988c3fe06)

[RaspberryPI3でTensorflowのマルチノードってできるんだ](http://qiita.com/khayate/items/d27746d1ee1ccf82d8c5)

- [TensorFlowでディープラーニングによる『キュウリ』の仕分け](http://workpiles.com/2016/02/tensorflow-cnn-cucumber/)


[TesorFlow: Pythonで学習したデータをAndroidで実行](http://qiita.com/miyosuda/items/e53ad2efeed0ff040606)

[お手軽にrealtime画像認識をAndroid/iOSで動かす](http://qiita.com/mainyaa/items/4b4e4d47868133410a96)

[TensorFlowをAndroidで実行するための方法 自分用まとめ(更新通知用)](http://qiita.com/ornew/items/cf7e4478936fbf28b271)

[Android Bazaar Conference 2016 Spring 基調講演 まとめ (その1)](http://qiita.com/hidenorly/items/6366cb0b590ae4bef5b1)

[GoogleがRaspberry Pi用のAIツール/ライブラリの提供を充実、TensorFlowも](http://jp.techcrunch.com/2017/01/26/20170125google-planning-ai-tools-for-pi-makers-this-year/)

[GoogleがRaspberry Piで機械学習や人工知能を使えるツールを開発か](http://gigazine.net/news/20170127-google-develop-ai-raspberry-pi/)

[グーグル、「Raspberry Pi」向けAIツールを提供へ](https://japan.zdnet.com/article/35095490/)

[Google brings AI to Raspberry Pi](http://www.bbc.com/news/technology-38742762)


[Googleが携帯電話向けニューラルネットワークライブラリTensorflow Liteを発表](https://www.infoq.com/jp/news/2017/05/google-tensorflow-lite)


##Caffe

- [Raspberry Pi 2 でDeepDreamを動かしてみた](http://azarashi55.hatenablog.com/entry/2015/07/31/032620)

- [Deepdreaming on a Raspberry Pi 2](http://www.knight-of-pi.org/deepdreaming-on-a-raspberry-pi-2/)

- [Classifying everything using your RPi Camera: Deep Learning with the Pi](http://stevenhickson.blogspot.jp/2015/03/classifying-everything-using-your-rpi.html)

- [StevenHickson/RPi_CaffeQuery](https://github.com/StevenHickson/RPi_CaffeQuery)

- [Caffe (機械学習)の CIFAR-10 その４](http://blog.goo.ne.jp/sdpaninf/e/80782f7d606b4c570bd5907e2a42d570)

- Caffeを使った例 [Object Classification using Deep Learning and Raspberry PI](http://gautamsingaraju.blogspot.jp/2016/02/object-detection-using-deep-learning.html)


- Caffeを使った例 (上と同じものの別記事）[Voice and Image Interaction with Raspberry PI to identify fruits using Deep Learning](https://www.linkedin.com/pulse/voice-image-interaction-raspberry-pi-identify-fruits-gautam)

 　　　　学習自体はcloud上で行う流儀。その結果をRaspberryPi上で実行している。


##Chainer

[Chainer, Cupy入門](http://www.slideshare.net/unnonouno/chainer-cupy)

- [ラズパイゼロでChainerを動かす]
(http://soysoftware.sakura.ne.jp/archives/620)

- [fukatani/Chainer_training: I'm studying chainer - GitHub](https://github.com/fukatani/Chainer_training)

[Raspberry Piでchainerメモ](http://qiita.com/samacoba/items/9b75faa06151235ac7ca)
[ディープラーニングのフレームワークChainer使ってMac/Raspberry Piで画像認識](http://karaage.hatenadiary.jp/entry/2016/07/08/073000)


###**Keras**

[Keras: TensorFlowとTheanoのための深層学習ライブラリ](https://keras.io/ja/)

[Raspberry Pi 深層学習でリアルタイム顔認識（Keras・Open CV）](http://qiita.com/PonDad/items/cb78b14297ed16cc74ce)



----------------------------

- [MACHINE LEARNING, COMBUSTION ENGINES AND REAL-TIME CONTROL]
(https://www.raspberrypi.org/blog/machine-learning-engine-control/)


- [Machine Learning with Raspberry Pi]
(https://scientistnobee.wordpress.com/2014/06/20/machine-learning-with-raspberry-pi/)


--------------
Deep Learningの手法の比較記事

[ディープラーニングの有名ライブラリ5種を最短距離で試す半日コース（TensorFlow, Chainer, Caffe, DeepDream, 画風変換）](http://d.hatena.ne.jp/shu223/20160105/1451952796)

[Pythonで書けるDeepLearningのライブラリを比較してみた](http://nonbiri-tereka.hatenablog.com/entry/2015/12/16/003512)

[DNN（ディープラーニング）ライブラリ : chainerとTensorFlowの比較 (1)](http://qiita.com/ymfj/items/b2b72e4fda2d4eb9d980)


[Deep Learningライブラリ 色々つかってみた感想まとめ](http://sssslide.com/speakerdeck.com/contaconta/deep-learningraiburari-se-tukatutemitagan-xiang-matome)



注意：
　期待する内容についての学習済みのDeep Learning をRaspberryPi 3で運よく実行できたからといって、他のDeep Learningについても、RaspberryPi 3でうまくいくとは、かぎらないことをお忘れなく。一口にCNNといっても、使っているネットワークの階層と規模は極端に違います。


ネットワークの例
AlexNet：
　解説記事の例　http://tecmemo.wpblog.jp/2017/03/19/dl_alexnet/


[Convolutional Neural Networks (LeNet)](http://deeplearning.net/tutorial/lenet.html


[「RaspberryPi の産業用途」にRaspberry Pi搭載のGPUであるVideoCore IVを使う話を追記しました](https://qiita.com/nonbiri15/items/e726ed5c6f6f7017509f)