
hashsearch - Umgekehrte Bildsuche mit Wahrnehmungs -Hashes. ?Hashsearch ist eine leichte, benutzerfreundliche Reverse-Image-Suchmaschine, die Wahrnehmungs-Hashes verwendet.
Am einfachsten ist es, aus den Veröffentlichungen herunterzuladen.
Sie können auch hashsearch aus dem Quellcode erstellen:
git clone https://github.com/burntcarrot/hashsearch
cd hashsearch
go build -o ./bin/hashsearch api/v1/main.go hashsearch -config <CONFIG_FILE_PATH>
Wenn -config nicht bereitgestellt wird, ist hashsearch standardmäßig <HOME_DIR>/.hashsearch/config.yml config.yml.
hashsearch führt den Server in der konfigurierten Adresse aus und enthält eine API für die Interaktion.
Die API ist sehr einfach. Zwei Routen, eine zum Suchen und eine zum Erhalten der Bilderliste.
/v1/searchVeröffentlichen Sie ein Bild mithilfe von Formulardaten und erhalten Sie eine Liste von Bildern (sortiert nach dem größten Teil der meisten Entfernungen):
curl --location --request POST ' localhost:8081/v1/search '
--form ' file=@"star.png" 'Antwort:
[
{
"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/listHolen Sie sich Liste aller Bilder:
curl --silent 'localhost:8081/v1/list'
Antwort:
[
{
"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 "
}
] Die Konfigurationsdatei ist eine einfache .yaml -Datei:
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. Sie laden ein Bild mit /v1/search hoch:
hashsearch macht eine Kopie Ihres Bildeshashsearch speichert das kopierte Bild in FILES_DIR , das konfigurierbar isthashsearch generiert den Hash, wenn Sie das Bild veröffentlichen, und speichert es in der Datenbankhashsearch berechnet die Entfernungen zwischen dem veröffentlichten Bild und anderen Bildern und gibt das Ergebnis als JSON -Antwort zurückWenn Sie eine kleine Anwendung haben und keine großen Abhängigkeiten/Systeme verwenden möchten, sollte dies gut funktionieren.
Ist es die beste Lösung? Nicht wirklich, aber wenn Sie eine schnelle und einfache Lösung wünschen, sollte dies gut genug sein.
Leuchtet es schnell? Auch hier nicht sicher; Ich habe es nicht auf großen Bildern getestet.
hashsearch ist unter der MIT -Lizenz lizenziert.
Sieht so aus, als wäre es eine der Inspirationen hinter diesem Projekt.
So wird in den meisten Bereichen die Umkehrbildsuche nicht implementiert. Ich wollte nur Spaß mit Wahrnehmungs -Hashes haben.
Der durchschnittliche Hash ist in den meisten Fällen in Ordnung, aber es kämpft in einigen Bereichen, daher ist die bessere Option, Dhash/Phash zu verwenden.
Ich arbeite aktiv an der Reverse -Video -Suche . Erwarten Sie, dass es ein Teil der zukünftigen Veröffentlichungen ist.
Eine schöne, kleine Web -Benutzeroberfläche würde auch bald hinzugefügt.