🧿 Pupyl is a really fast image search library which you can index your own (millions of) images and find similar images in millisecond.
Project description
pupyl - A Python Image Search Library
🧿 pupyl what?
The pupyl
project (pronounced pyoo·piel) is a pythonic library to perform image search tasks. It's intended to made easy reading, indexing, retrieving and maintaining a complete reverse image search engine. You can use it in your own data pipelines, web projects and wherever you find fit!
🎉 Getting started
📦 Installation
Installing pupyl
on your environment is pretty easy:
# pypi
pip install pupyl
or
# anaconda
conda install -c policratus pupyl
🚸 Usage
from pupyl.search import PupylImageSearch
from pupyl.web import interface
SAMPLES = (
'https://github.com/policratus/pupyl'
+ '/raw/master/samples/pupyl1kflickr.txt.xz'
)
SEARCH = PupylImageSearch()
SEARCH.index(SAMPLES)
interface.serve()
Disclaimer: the example above creates pupyl
assets on your temporary directory. To define a non-volatile database, you should define data_dir
parameter.
📌 Dependencies
See all dependencies here: dependencies.
🐧 Linux
Some linux distros are packaged without some essential applications to built pupyl
dependencies. If during the installation you face errors like this:
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
try install C/C++
build dependencies and python
development headers, like this:
# Debian/Ubuntu
sudo apt install build-essential python3-dev
# Fedora
sudo dnf install make automake gcc gcc-c++ kernel-devel python3-devel
# Redhat/CentOS
sudo yum groupinstall 'Development Tools'
sudo yum install python3-devel
# Suse/OpenSuse
zypper install -t pattern devel_basis
zypper install python3-dev
# Arch
sudo pacman -S base-devel python3-dev
# Clearlinux
sudo swupd bundle-add c-basic python-basic-dev
📝 Documentation
See a quick reference guide on the repository wiki. Complete API reference coming soon.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.