rubrix
構築の背後にある主な動機は、自然言語処理とコンピューター ビジョンの分野内で概念を結びつけ、人工知能によって完全に強化されたビジュアル検索エンジンを用意することでした。これは、私たちが「結合類似性検索」と呼びたいものです。現在、 rubrix
は 2 つの主な機能があります。
アーキテクチャとrubrix
仕組みの詳細については、ここをクリックしてください。
rubrix
ここでサンプル クエリとしてrubrix
によって取得された画像の一部を確認できます。
このセクションでは、プロジェクトを起動して実行するための前提条件と手順について説明します。
現在、 rubrix
Linux 上で問題なく動作し、次の手順に従ってすべての前提条件パッケージを簡単にセットアップできます。
ご使用のマシンに適切なバージョンの conda をダウンロードします。
次のコマンドを使用してconda_install.sh
ファイルを実行してインストールします。
$ bash conda_install.sh
conda
bash プロファイルに追加します。
$ source ~ /.bashrc
rubrix/
(最上位ディレクトリ) に移動し、次のコマンドを使用して、含まれているenvironment.yml
ファイルを使用して conda 仮想環境を作成します。
$ conda env create -f environment.yml
次のコマンドを使用して仮想環境をアクティブ化します。
$ conda activate rubrix
setuptools エクストラを含むパッケージをインストールするには、 setup.py
ファイルを含むrubrix/
(最上位ディレクトリ) で次のコマンドを使用します。
$ pip install .
前提条件がインストールされたら、次の手順に従ってプロジェクトをビルドします。
rubrix/index
ディレクトリに移動します。
次のコマンドを使用して bash スクリプトsetup.sh
実行します。
$ bash setup.sh
これは何をするのでしょうか?
rubrix/index
内にdarknet/
構築して設定します。assets/index.json
ファイルを作成します。assets/imageEmbeddingLocations.json
ファイルを作成します。これは基本的に、データベース内のすべての画像を、データベース内のキャプションごとに生成された文埋め込みベクトルにマッピングします。assets/descriptors
ディレクトリに保存します。注:上記のスクリプトの実行が完了するまでに 1.5 ~ 2 時間かかる場合があります。
rubrix/assets
に保存します。rubrix/assets/index.json
とrubrix/assets/imageEmbeddingLocations.json
のローカル マシンに対する相対パスを変更することだけです。これは次のようにして実行できます。$ conda activate rubrix
>> > from rubrix . utils import fix_paths_in_index
>> > path_to_index = < absolute / path / to / rubrix / assets / index . json >
>> > path_to_emb = < absolute / path / to / rubrix / assets / imageEmbeddingLocations . json >
>> > fix_paths_in_index ( path_to_index , path_to_emb )
rubrix/rubrix/index
ディレクトリに移動し、次の bash スクリプトを実行します。 $ bash quick_setup.sh
これらの手順を完了すると、 rubrix
使用できるようになります。
rubrix/query/query_by_text
メソッドを実行します。rubrix/query/query_by_image_objects
メソッドを実行します。ここで実際の例に従うこともできます。
代わりに、Web ブラウザ上のアプリケーションとしてrubrix
使用することもできます。
rubrix/rubrix/web
ディレクトリに移動します。$ python app.py
これは、AWS 上の Ubuntu Linux サーバーなどのサーバーにrubrix
デプロイする場合に使用します。
$ sudo docker build -t < YOUR-NAME > /rubrix .
$ sudo docker run -p 9000:80 < YOUR-NAME > /rubrix
このための理想的なセットアップは、ホスト システム上に Apache/Nginx リバース プロキシ セットアップを持ち、この場合はポート9000
を指し、ホスト システムの Apache/Nginx が SSL を処理することです。これにより、SSL 証明書の再作成を心配することなく、アプリケーションを何度もデプロイできるようになります。
environment.yml
ファイルを使用しません。そこで行われた変更は Dockerized コンテナには反映されません。 以下のような、私たちが従うよう努めたいくつかの一般的なガイドラインを除いて、貢献に関する特定のガイドラインはありません。
改善できる点が見つかった場合は、プル リクエストを送信してください。私たちは、 rubrix
がプロジェクトとしてそれ自体の最高のバージョンであることを保証するために、いつでも喜んで改善を検討します。
何かを別の方法で実行する必要があると思われる場合 (または明らかに壊れている場合)、問題を作成してください。
詳細については、LICENSE ファイルを参照してください。