SONY Neural Network Console をインストールする

SONYがDeep learning 用のGUIツールをリリースしました。
https://dl.sony.com/ja/
無料で試せるので自分のPCにインストールしてみました。


SONYのHPからダウンロードを選択すると、メールアドレスにダウンロードにリンクが送られてきます


ボタンをクリックしてダウンロードします


900MB超えの大きなファイルです。


ダウンロード完了するまで気長に待ちましょう。


解凍すると以下のファイルが確認できます。インストーラはないので、適当なフォルダに移動します。このときProgram Files 以外のフォルダに移動します。


起動してサンプルプログラムを開いてみます。
データファイルも自動でダウンロードされるので簡単に学習と実行が確認できます


手書き文字認識のプロジェクトです。
元々が0から9までの文字ですが、すぐに動作確認できるように4と9のみのデータも利用できます

Tensorflow のサンプルを実行してみる iOS

Tensorflowのサンプルを実行しているサイト

http://qiita.com/MJeeeey/items/390853bf0a2890638c4b

を参考に、なぞってみました。

 

brew のインストール
自分のMACには入っていなかったようで、手順通りbrewをインストールします。
https://brew.sh/index_ja.html
ターミナルで以下を実行すればインストールが完了します

RETURNをクリックすることが要求されるのでRETURNをクリック

brewのインストールが完了しました。

 

automake, libtoolのインストール

brewを使って

brew install automake

brew install libtool

でエラーもなくインストールできました。

 

tensorflow-master.zip をダウンロー。
https://github.com/tensorflow/tensorflow

Download ZIPをクリックしてtensorflowをダウンロードします

 

学習済みモデル(inception5h.zip)のダウンロード。
https://storage.googleapis.com/download.tensorflow.org/models/inception5h.zip

モデルもファイルに保存するでダウンロードします

 

ダウンロードした2つのファイルを解凍

 

フォルダtensorflow-master を適当な場所に移動します。

 

解凍したモデルファイルの

imagenet_comp_graph_label_strings.txt
tensorflow_inception_graph.pb
をexample>ios>camera>data にコピーします
tensorflow-master/tensorflow/contrib/makefile
に移動します
ここで、./build_all_ios.sh をターミナルから実行します
1時間以上待つ事になります。
次に
tensorflow/examples/ios/camera
に移動して
pod install
を実行します
プロジェクトに必要なライブラリがインストールされました。
次に
tf_camera_example.xcworkspace
をXcodeから開きます
そのままだとコンパイルできないので
build identifier とTeamを自分用に変更します
コンパイルし、実機で実行します
MACのキーボード部分の画像では、
Computer Keyboard
Notebook
Space Bar
と判定しているのがわかります.
今回は、imagenetで学習済みのモデルを使ってdeeplearningを実行してみました。
次のiOSでは、coreML で機械学習がサポートされるので環境は良くなるでしょう。
機械学習系のアプリはPC(Python)でモデルを作り、iPhoneで実行というのがメインになってくると思います。

This app has crashed because it attempted to access privacy-sensitive data without a usage description. [SWIFT3]

iPhoneアプリを製作中に、simulatorで動作していたコードを実機で実行しようとすると以下のエラーが出てクラッシュしました。

 

This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app’s Info.plist must contain an NSMicrophoneUsageDescription key with a string value explaining to the user how the app uses this data.

 

Info.plistの記述が足りないためです。このアプリはマイクからの音声を利用するので

Info.plistに

NSMicrophoneUsageDescription

を追加しました。

 

記入した内容は以下の通りです。

<key>NSMicrophoneUsageDescription</key>
<string>マイクにアクセスします</string>

 

これで起動時に一回だけ確認を求められますが、2回目以降は確認なしで実行できます

AKAZE 特徴量のサンプルコード[Python]

画像のAKAZE特徴量を求めるコードを確認しました。

AKAZEはKAZEの高速版で、回転、スケール不変の特徴量です。Pythonからは、

cv2.AKAZE_create()

で簡単に利用できます。

 

前回の投稿と同じように、RGBのカラー画像を読み込んでBチャンネルのみをとりだしAKAZE特徴量を求めます

実行結果は以下の通りです。

画像はフリー素材で確認しています。AKAZEでは2000以上の特徴点が検出されています。

ORBはデフォルトで500個が上限になっていました。

 

 

ORB特徴量を確認する[Python]

Python上でORB特徴量を求めるデモを確認してみます。

 

流れは、フォルダ内の画像を取得して画像を読み込み(cv2.imread)ます。

画像サイズをリサイズし、表示。

 

BGR、3チャンネルをBGRそれぞれに分離し、Bチャンネルのみを使います

 

ORB特徴量を使うには

detector = cv2.ORB_create()

とし、

keypoints = detector.detect(ImgB)

とすることで特徴量が計算できます。

 

out = cv2.drawKeypoints(rgbImg, keypoints, None)

でオリジナル画像にマーキングします。

 

実行結果は以下の通りです。

 

上が元画像で、下が特徴量部分にマーキングした画像です。

ORBは特許上でも制約がなく使えるので、トラッキングや機械学習で応用可能です。

OpenCVでファイルを読み込み表示する[Python]

OpenCV3でjpgファイルを読み込んで、表示するサンプルアプリを作り動作確認をしました。

拡張子がjpgのファイル一覧を取得するには以下のようにします。

JpgFiles = glob.glob(os.path.join(DataDir,’*.jpg’))

 

ファイルを読み込むには

cv2.imread(imgFileName) とします。

 

コードは以下の通りです。

 

読み込んだ画像はcv2.resizeで640×480の大きさにリサイズします。

plt.imshow()で画像を表示するにはcv2.cvtColor でBGRからRGBに変更します。

実行すると以下のようになります。

 

Pillow(Python Imaging Library)を使って画像を読み込む[Pyhton]

PythonからPillowを使って画像ファイルをよみこんでみました。

Pillowを使うには、

from PIL import Image とします。

 

Pyhtonのpyファイルがある場所にsample1フォルダがあり、フォルダ内にフリー素材画像をいれました。

globでファオルダ内のファイル一覧を作り読み込んで表示します。

大きさが様々なので、読み込んだファイルは640×480にリサイズします。

実行すると以下のように画像が表示されます。

 

TensorFlow をWindows10にインストール

Windows10のノートPCにTensorFlowをインストールしたので備忘録として残しておきます。

Anaconda の開発環境にTensorFlowをインストールしました

 

1:Anacondaのインストール
https://repo.continuum.io/archive/index.html
から
Anaconda3-4.3.0-Windows-x86_64.exe 421.2M 2017-01-27 14:19:41
をダウンロードしインストーラを実行する。
Python 3.5がインストールされる。

各パッケージのpythonのバージョンは以下のページでわかる。Python 3.5を選択すること
https://docs.continuum.io/anaconda/oldpkglists

後に入れるTensorFlowがpython3.5を要求してくるので、anacondaは最新版(python3.6)を入れず、アーカイブから古いバージョンを選択します。

 

2:TensorFlowのインストール
anaconda のコンソールを管理者で実行
pip install –upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-0.12.1-cp35-cp35m-win_amd64.whl

 

3:Kerasのインストール
anacondaのコンソールを管理者で実行して
pip install keras

KerasはTensorFlowと一緒に使うと見やすいコードで記述することができ便利です。

 

4:conda のアップデート
conda update conda

 

5:anacondaのアップデート
conda update anaconda

結構時間がかかります。

 

以上でTensorFlowが使えるようになります。

定期的に実行するタイマー[SWIFT3]

ある処理を定期的に実行したい場合は以下の通りです。

下のコードでは、2秒毎に実行する定期タイマーを実装しています。selector で定期実行させる関数を指定してあげるだけです。

 

指定時間経過後に実行[SWIFT3]

iOSのSWIFTでプログラミングしていると非同期の関数が多いので、指定時間後に実行したいことがよくあります

DispatchQueue.main.asyncAfter

を使って実現します。