建立rubrix
的主要動機是擁有一個完全由人工智慧驅動的視覺搜尋引擎,將自然語言處理和電腦視覺領域的概念聯繫起來,我們稱之為「組合相似性搜尋」。目前rubrix
有兩個主要功能:
請點擊此處了解有關架構和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 extras 安裝軟體包,請在包含setup.py
檔案的rubrix/
(頂級目錄)中使用以下命令:
$ pip install .
安裝先決條件後,請按照以下說明建置專案:
導航到rubrix/index
目錄。
使用以下命令執行 bash 腳本setup.sh
:
$ bash setup.sh
這是做什麼的?
rubrix/index
中建置並設定darknet/
以使用 YOLOv4 進行物件檢測。assets/index.json
文件,該文件本質上是將 YOLOv4 訓練的所有物件映射到包含它們的圖像的逆圖像索引。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
方法。您也可以在此處遵循一個工作範例。
另一種方法是使用rubrix
作為網頁瀏覽器上的應用程式。
rubrix/rubrix/web
目錄。$ python app.py
這適用於您想要在伺服器上部署rubrix
,例如 AWS 上的 Ubuntu Linux 伺服器
$ 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
文件,因為在任何類型的生產環境上使用 conda 都是一場噩夢。在那裡所做的更改不會反映在 Dockerized 容器中。 除了我們試圖遵循的一些一般準則之外,沒有具體的貢獻準則,例如:
如果您發現可以改進的地方,請發送拉取請求!我們總是樂於看到改進,以確保rubrix
作為一個專案是其本身的最佳版本。
如果您認為某些事情應該採取不同的方式(或只是簡單地破壞),請建立一個問題。
有關更多詳細信息,請參閱許可證文件。