Visual Studio 2015 で Cinder のセットアップ

はじめて Visual Studio を使うこともあったけれど、Cinder のセットアップが意外と時間 & 手間を要したので、初心者向けの記事ということで、ここでは備忘録も兼ねて Visual Studio 2015 のインストールから、Cinder のセットアップまで、通して解説する。

もちろん、この記事が誰かに読まれる頃にはこの内容も古くなっているはずなので、実際に作業する際には公式の Windows セットアップGit+Cinder をご確認いただきたい。 ( 公式のウェブでは git のコマンドが間違っていたり、各種参考リンクがリンク切れしていたりするのだが……。 )

続きを読む

@shi3z さんの "Caffeモデル+Selective Search+Chainer"を使ってみる

@shi3z さんが Caffe 使った一般物体認識のスクリプトを書いていたので、試してみた。

元ネタ:
Caffeモデル+Selective Search+Chainerを使って、写真のどの部分に何があるのかなんとなく判定させてみる - shi3zの長文日記
CUDAなしMacで、Chainer使ってCaffeモデルをインポートして画像認識させてみる - shi3zの長文日記

まず、OpenCV 入れていない人はそこから。
PythonでOpenCVを使う@Mac - Qiita
ちなみに僕はうまくリンクが貼れておらず、ここも参考にした。
osx - python cannot import opencv because it can't find libjpeg.8.dylib - Stack Overflow

他にも依存関係があるので、pip で一括インストール。

pip install numpy selectivesearch
pip install chainer -U

ちなみに Chainer は upgrade でインストールしないと、CaffeFunction が入らないので、upgrade オプション必須。

googlenetのモデルをインストール + モデルデータを取得

git clone https://github.com/pfnet/chainer.git
cd chainer/examples/modelzoo
python download_model.py googlenet
# これで bvlc_googlenet.caffemodel というモデルがダウンロードされるので、これを取得
python download_mean_file.py

Cuda をセットアップする
CUDA開発環境を構築する~[Mac OSX編] | ヤノラボ:やのしん研究所
この辺を読めばいけるはず。
MBAではさすがにやらなかったけど、、、。

最後に、shi3z さんが
Caffeモデル+Selective Search+Chainerを使って、写真のどの部分に何があるのかなんとなく判定させてみる - shi3zの長文日記
に書いてるスクリプトをコピペして、image.py とか適当にファイルをつくる。

一通り上記をやってから、

python image.py hoge.jpg googlenet bvlc_googlenet.caffemodel

とやると動くはず。

hoge.jpg は適当なイメージファイル名、
bvlc_googlenet.caffemodel は先ほど download_model.py を実行して得られたモデルファイル。

initdb: could not change permissions of directory

postgresql を初期化する際に設定ファイルの権限で詰まった。 ただ純粋に権限系をいじればよい。

sudo mkdir /usr/local/var/postgres
sudo chmod 775 /usr/local/var/postgres
sudo chown ユーザ名 /usr/local/var/postgres
initdb /usr/local/var/postgre

RequireJS + WordPress

以前、こんな記事を書いた。 Bower + RequireJS - Code to Fab

そもそもなんでこんなことをしていたかと言えば、WordPress のテーマ用の開発だったのだが、こんなに準備しても冷静に考えれば WordPress の場合は PHP の方で JavaScript の実行が制御されてしまうから、当然のごとくぽっと置いただけではうまくいかない。 調べてみると、wp_enqueue_scripts() を使って以下のようにすればいいらしい:

JavaScript を呼び出したい WordPress 側:

<?php
  // WordPress の関数を使って baseUrl のパスを作成
  $componentsUri = get_template_directory_uri() . '/js/components';
  // wp_enqueue_script を使って require.js を呼び出し
  wp_enqueue_script('requirejs', $componentsUri.'/requirejs/require.js');
  // require.js に baseUrl のパスを渡す
  wp_localize_script('requirejs', 'require', array(
      'baseUrl' => $componentsUri,
      'deps'    => array( get_template_directory_uri() . '/js/main.js')
  ));
?>

呼び出される main.js 側:

// 渡された変数を使って baseUrl をセット
requirejs.config({
  baseUrl: requirejs.toUrl('')
});

これだけで OK 。

割とすっきりかける。 Browserify ならもっと楽に書けそう。

参考: WordPress › WordPress Ideas — RequireJS