
hashsearch - 지각 해시를 사용한 리버스 이미지 검색. ?해시 검색은 지각 해시를 사용하는 가볍고 사용하기 쉬운 리버스 이미지 검색 엔진입니다.
가장 쉬운 방법은 릴리스에서 다운로드하는 것입니다.
소스 코드에서 hashsearch 빌드 할 수도 있습니다.
git clone https://github.com/burntcarrot/hashsearch
cd hashsearch
go build -o ./bin/hashsearch api/v1/main.go hashsearch -config <CONFIG_FILE_PATH>
-config 제공되지 않으면 hashsearch <HOME_DIR>/.hashsearch/config.yml 로 기본적으로 기본적으로 기본적으로 표시됩니다.
hashsearch 구성된 주소에서 서버를 실행하고 상호 작용할 API를 노출시킵니다.
API는 매우 간단합니다. 두 개의 경로, 하나는 검색을위한 것과 이미지 목록을 얻기위한.
/v1/search양식 데이터를 사용하여 이미지를 게시하고 이미지 목록을 가져옵니다 (최소한 대부분의 거리에서 정렬) :
curl --location --request POST ' localhost:8081/v1/search '
--form ' file=@"star.png" '응답:
[
{
"path" : " files/star.png " ,
"distance" : 0 ,
"hash" : " 0000000000010000111100001111110011111100111100000001000000000000 "
},
{
"path" : " files/star-new.png " ,
"distance" : 4 ,
"hash" : " 0001000000110000111100001111110011111100111100000011000000010000 "
},
{
"path" : " files/random.png " ,
"distance" : 28 ,
"hash" : " 0000000110000000110000100010001111110010010001100000011110000110 "
}
]/v1/list모든 이미지 목록을 가져옵니다.
curl --silent 'localhost:8081/v1/list'
응답:
[
{
"path" : " files/random.png " ,
"distance" : 0 ,
"hash" : " 0000000110000000110000100010001111110010010001100000011110000110 "
},
{
"path" : " files/star-new.png " ,
"distance" : 0 ,
"hash" : " 0001000000110000111100001111110011111100111100000011000000010000 "
},
{
"path" : " files/star.png " ,
"distance" : 0 ,
"hash" : " 0000000000010000111100001111110011111100111100000001000000000000 "
}
] 구성 파일은 간단한 .yaml 파일입니다.
db :
url : " data.db " # Database URL.
server :
addr : " localhost:8081 " # Server address.
files :
dir : " /files " # Directory where the images would be saved.
cors :
allow_origin : " * " # CORS Allow-Origin value.
logging :
file : " /hashsearch.log " # Log file path. /v1/search 경로를 사용하여 이미지를 업로드합니다.
hashsearch 이미지의 사본을 만듭니다hashsearch 복사 된 이미지를 FILES_DIR 에 저장합니다.hashsearch 이미지를 게시 할 때 해시를 생성하고 데이터베이스에 저장합니다.hashsearch 게시 된 이미지와 기타 이미지 사이의 거리를 계산하고 결과를 JSON 응답으로 반환합니다.소규모 응용 프로그램이 있고 대규모 의존성/시스템을 사용하고 싶지 않은 경우 제대로 작동해야합니다.
최상의 솔루션입니까? 실제로는 아니지만 빠르고 쉬운 솔루션을 원한다면 충분해야합니다.
빨리 타 오르나요? 다시 말하지만, 이것에 대해 확실하지 않습니다. 큰 이미지 세트에서 테스트하지 않았습니다.
hashsearch MIT 라이센스에 따라 라이센스가 부여됩니다.
이 프로젝트의 영감 중 하나 인 것 같습니다.
이것은 대부분의 영역에서 리버스 이미지 검색이 구현되는 방식이 아닙니다. 나는 단지 지각 해시와 재미를 원했다.
대부분의 경우 평균 해시는 괜찮지 만 일부 지역에서는 어려움을 겪으므로 더 나은 옵션은 DHASH/PHASH를 사용하는 것입니다.
나는 리버스 비디오 검색을 적극적으로 노력하고 있습니다. 미래의 릴리스의 일부가 될 것으로 예상하십시오.
멋지고 작은 웹 UI도 곧 추가 될 것입니다.