
hashsearch - обратный поиск изображения с использованием хэши восприятия. ?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.
Я активно работаю над поиском обратного видео ; Ожидайте, что это будет частью будущих выпусков.
Хороший, маленький веб -интерфейс также будет добавлен в ближайшее время.