rubrix
구축한 주요 동기는 자연어 처리 및 컴퓨터 비전 분야의 개념을 연결하는 인공 지능으로 완전히 구동되는 시각적 검색 엔진을 갖추는 것이었습니다. 이는 우리가 "결합 유사성 검색"이라고 부르는 것입니다. 현재 rubrix
에는 두 가지 주요 기능이 있습니다.
아키텍처와 rubrix
작동 방식에 대한 자세한 내용을 보려면 여기를 클릭하십시오!
rubrix
의 활동 여기에서 샘플 쿼리를 위해 rubrix
가 검색한 일부 이미지를 확인할 수 있습니다.
이 섹션에서는 프로젝트를 시작하고 실행하기 위한 전제 조건과 지침을 설명합니다.
현재 rubrix
Linux에서 완벽하게 작동하며 다음 지침에 따라 모든 필수 패키지로 쉽게 설정할 수 있습니다.
귀하의 컴퓨터에 적합한 버전의 conda를 다운로드하십시오.
다음 명령을 사용하여 conda_install.sh
파일을 실행하여 설치합니다.
$ bash conda_install.sh
Bash 프로필에 conda
추가합니다.
$ 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/
구축하고 설정합니다.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
메소드를 실행하세요.여기에서 이에 대한 실제 예제를 따를 수도 있습니다.
대안은 웹 브라우저에서 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 파일을 참조하세요.