My Research Memo + Silly Story

個人的に興味があったことや、研究やプロジェクトに関する備忘録やプロジェクトの後輩に向けての資料についてまとめていこうと思っています。真面目なこと以外のこともブログに書こうかなと思っています。

「Caffeをはじめよう」 第6章CNNについてのメモ 

いつもの長い前置き

以前書いたOpenCVopencv_contribについての記事は、タイトルの本のCNNのサンプルを実行するために行ったことで、やっとすべてのサンプルを実行することができたのでここにメモをしていきます。

正直の感想として、この本の最小のCaffeについての説明はすごく良かったと思います。実際、Caffeについて「ここを参考にすれば、できるよ!」といえるようなサイトはCaffeのHPぐらいじゃないかと思うぐらい情報が乏しいなかで、この本は本当にありがたいと思います。

しかし、応用になってくると著者のPCと同じような状態だと簡単に実行できるかもしれないが、そんな状態の人はまずいない。よって、その状態に近づけるために行ったことをメインにメモをしていきます。

CNNを実行する際に行ったこと

1.BINGのコンパイル&実行

2.候補領域をつかって、detect.pyを実行してリストを作成

3. 2のリストを使って、確信度を求めてクラス識別する


本題

1.BINGのコンパイル&実行

ここで、行ったことは

typenull.hatenablog.com

昔の記事で、ビルドの下準備をした。

次に、bvlc_reference_rcnnの学習済みモデルをダウンロードをした。 caffeがインストールされているディレクトリ内で

./scripts/download_model_binary.py models/bvlc_reference_rcnn_ilsvrc13

次に、detect.pyの依存ファイルであるnumexprとtablesをダウンロードでpipでダウンロード すればよいのだが上手くいかない。というより、それらのダウンロードにまた必要なパッケージが 存在しており、それらのダウンロードを行う。また、numpyが参照できていないという問題もでてきたので そのこともメモをする。

必要になったものは、pandas, python-datautil, skiimage-image, scipy

それらをすべてインストールをした。 しかし、インストールされたものやNumpyがインポートエラーが起きた。

原因として、環境変数であるPYTHONPATHにライブラリが含まれていないためである。

ここで、PYTHONのライブラリのディレクトリでdist-packageとsite-packageの2種類ある。 それらの違いは以下のとおりである

dist-package -> 公式でインストールしたものでUbuntuであれば、apt-getでインストールしたもの         Ex. python-numpyのように、python-から始まるパッケージ

site-package -> 公式以外でインストールしたライブラリでpipを使ってインストールしたもの

よって、必要なパッケージはsite-packageに入っているので、そのパスをPYTHONPATHに入れれば終わり あとは、リストの作成を行う。 コンパルしたBINGを使って、caffeのサンプルに入っている魚の自転車に乗った人の画像を使用する。 コンパルしたもののディレクトリ内で実行した。

2.候補領域をつかって、detect.pyを実行してリストを作成

1.で最後に実行して作成したboundingbox.csvを使って実行した所エラーで止まる。 わたしの場合は、CPUモードで実行したためか実行できなかった。 よって、csvファイルの大体半分のパラメータを削除した。

そしたら、上手く言った。

3.2のリストを使って、確信度を求めてクラス識別する

個々に関しては、あっさり終わったため割愛します。

ダラダラとまとめ

今回、一番の不安な点としてcsvファイルの中身のパラメータを半分ほど削除したことである。

しかし、実行した結果上手くいったのが幸いだった。 ここで、疑問に感じたのはどれくらい減らして問題ないかということ。

なるべく早く試していこうと思う。 あと、今回からmarkdown形式で記事を書いたが、意外と上手く言ったので慣れよう。