构建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
作为一个项目是其本身的最佳版本。
如果您认为某些事情应该采取不同的方式(或者只是简单地破坏),请创建一个问题。
有关更多详细信息,请参阅许可证文件。