日記とか、工作記録とか

自分に書けることを何でも書いてゆきます。作った物、買ったもの、コンピュータ系の話題が多くなるかもしれません。

Apache alikeを試してみる(その1:準備と前置き)

たくさんの写真のなかから、似ている画像を探せるソフトウェアを探していました。

全く同一のファイルを探すのであれば、PerlRuby等のスクリプトでファイルのMD5をチェックするような方法が有効です。数が多いとそれなりに時間はかかりますが、誤りなく判定することができるでしょう。

しかし、「似ている」画像となると話は簡単ではありません。人間が写真を見比べて「似ている」と感じるのはどんなときでしょうか。人によって判定結果が異なることもあるでしょう。ましてやコンピュータにこれを判定させることなどできるのでしょうか。

そんな要求に応えようとするプロジェクトがあることを知ったので、今回試してみました。なかなか苦労するところもあり、またネットを見る限り個人で試している人も少ない様子です。今後数回に分けて、Apache alikeのデモが動作するところまでを(苦労した点を織り交ぜつつ)書いてみたいと思います。

  1. Apache alikeを試してみる(その1:準備と前置き) - 日記と、買い物記録
  2. Apache alikeを試してみる(その2:前提環境構築) - 日記と、買い物記録
  3. Apache alikeを試してみる(その3:alikeのインストール&コンパイル) - 日記と、買い物記録
  4. Apache alikeを試してみる(その4:データの作成) - 日記と、買い物記録
  5. Apache alikeを試してみる(その5:デモWebサーバの起動) - 日記と、買い物記録
  6. Apache alikeを試してみる(おまけ:run_desc_extractor.pyの改良) - 日記と、買い物記録
  7. Apache alikeを試してみる(おまけ2:動作例とサンプル画像) - 日記と、買い物記録

参考

まず情報源を探します。環境構築について日本語で説明されているWebページは、さしあたり以下の場所にあります。説明と書きましたが、この方は実際にApache alikeを作成されている方のようです(READMEに名前があります)。

OSSの類似画像検索プロジェクト Apache alike のご紹介

基本的には上記の内容に沿って作業をしますが、記事は1年以上前のものですので、使用する前提ソフトウェアのバージョンは異なります。

環境

当初Windowsで試すことを考えていたのですが、参考ページを読んだところ相当難しそうだという印象を受けましたので、素直にMac OSで試すことにしました。ハードウェアは最新とは言えませんが、OSについては最新の環境です。

関連ソフトウェア

Apache alikeが動作するには、多数の周辺ソフトウェアが必要です。主な関連ソフトウェアは以下のようなものです。私はほとんどのものを触ったことがありませんでした。Hadoopを研修でちょっと試してみた程度です。

その他の関連ツールとして以下のようなものが登場します。

ディレクトリ構成

私はよくわからないまま進めてしまったので、ある程度計画は持っておいたほうが良いなという印象を持ちました。私が環境構築したディレクトリ構成は以下の通りです。

  • $HOME/alike/ (Apache alikeのインストール先)
    • $HOME/alike/trunk/demo/ (最終的なデモ環境の作成場所)
    • $HOME/alike/trunk/demo/solrhome/ (Apache Solrのルートディレクトリ)
    • $HOME/alike/trunk/demo/demoserver.py (Pythonで書かれたデモ用の簡易Webサーバ)

入門 機械学習

入門 機械学習

集合知プログラミング

集合知プログラミング