Coin-CLIP 🪙 : Enhancing Coin Image Retrieval with CLIP
[中文] | [English]
Coin-CLIP breezedeus/coin-clip-vit-base-patch32 is built upon
OpenAI's CLIP (ViT-B/32) model and fine-tuned on
a dataset of more than 340,000 coin images using contrastive learning techniques. This specialized model is designed to significantly improve feature extraction for coin images, leading to more accurate image-based search capabilities. Coin-CLIP combines the power of Visual Transformer (ViT) with CLIP's multimodal learning capabilities, specifically tailored for the numismatic domain.
Key Features:
- State-of-the-art coin image retrieval;
- Enhanced feature extraction for numismatic images;
- Seamless integration with CLIP's multimodal learning.
To further simplify the use of the Coin-CLIP model, this project provides tools for quickly building a coin image retrieval engine.
Comparison: Coin-CLIP vs. CLIP
Example 1 (Left: Coin-CLIP; Right: CLIP)
Example 2 (Left: Coin-CLIP; Right: CLIP)
More Examples
more
Example 3 (Left: Coin-CLIP; Right: CLIP)
Example 4 (Left: Coin-CLIP; Right: CLIP)
Example 5 (Left: Coin-CLIP; Right: CLIP)
Example 6 (Left: Coin-CLIP; Right: CLIP)
Install
pip install coin_clip
Usage
Code Examples
Extract Feature Vectors from Coin Images
from coin_clip import CoinClip
# Automatically download the model from Huggingface
model = CoinClip(model_name='breezedeus/coin-clip-vit-base-patch32')
images = ['examples/10_back.jpg', 'examples/16_back.jpg']
img_feats, success_ids = model.get_image_features(images)
print(img_feats.shape) # --> (2, 512)
⚠️ Note:
The above code automatically downloads the
breezedeus/coin-clip-vit-base-patch32model from Huggingface. If you cannot download automatically, please manually download the model locally, and then initializeCoinClipby specifying the local directory of the model through themodel_nameparameter, likemodel_name='path/to/coin-clip-vit-base-patch32'.
Command line tools
Building a Vector Retrieval Engine
coin-clip build-db can be used to build a vector search engine. It extracts features from all coin images 🪙 in a specified directory and builds a ChromaDB vector search engine.
$ coin-clip build-db -h
Usage: coin-clip build-db [OPTIONS]
Extract vectors from a candidate image set and build a search engine based
on it.
Options:
-m, --model-name TEXT Model Name; either local path or huggingface
model name [default: breezedeus/coin-clip-vit-
base-patch32]
-d, --device TEXT ['cpu', 'cuda']; Either 'cpu' or 'gpu', or
specify a specific GPU like 'cuda:0'. Default is
'cpu'. [default: cpu]
-i, --input-image-dir TEXT Folder with Coin Images to be indexed. [required]
-o, --output-db-dir TEXT Folder where the built search engine is stored.
[default: ./coin_clip_chroma.db]
-h, --help Show this message and exit.
For instance,
$ coin-clip build-db -i examples -o coin_clip_chroma.db
Querying
After building the vector search engine with the above command, you can use the coin-clip retrieve command to retrieve the coin images 🪙 most similar to a specified coin image.
$ coin-clip retrieve -h
Usage: coin-clip retrieve [OPTIONS]
Retrieve images from the search engine, based on the query image.
Options:
-m, --model-name TEXT Model Name; either local path or huggingface model
name [default: breezedeus/coin-clip-vit-base-
patch32]
-d, --device TEXT ['cpu', 'cuda']; Either 'cpu' or 'gpu', or specify a
specific GPU like 'cuda:0'. Default is 'cpu'.
[default: cpu]
--db-dir TEXT Folder where the built search engine is stored.
[default: ./coin_clip_chroma.db]
-i, --image-fp TEXT Image Path to retrieve [required]
-h, --help Show this message and exit.
For instance,
$ coin-clip retrieve --db-dir coin_clip_chroma.db -i examples/10_back.jpg
Metadata
Release files for coin-clip 0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| coin_clip-0.1.tar.gz | 12.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| coin_clip-0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.5 kB
Release files / coin_clip-0.1.tar.gz
| Download URL | coin_clip-0.1.tar.gz |
|---|---|
| Size | 12.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b23e7830875a88693dd2d826712184b5150b6306cfd1a9e0021082b2a561071e
|
|
BLAKE2b-256 checksum How to use checksums |
e9b47fcd054569570b25a0b684a199b03460306f95110e55efb1bc630afa9d40
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.5
|
Release files / coin_clip-0.1-py3-none-any.whl
| Download URL | coin_clip-0.1-py3-none-any.whl |
|---|---|
| Size | 15.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
760bd66cc291cb2aa100333b4392659a4b2c37902d3258d0e7a9ca2782591a46
|
|
BLAKE2b-256 checksum How to use checksums |
8c27db2140dde6d01ec48f7444aa094b1d9db3a4e763fcdb604a2557414c316c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.5
|
Security for coin-clip 0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.