cppbktree
pyphashml
cppbktree | pyphashml | |
---|---|---|
1 | 1 | |
6 | 25 | |
- | - | |
6.2 | 10.0 | |
10 months ago | almost 2 years ago | |
C++ | Python | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cppbktree
-
Simple, Fast, and Scalable Reverse Image Search
Interesting read. Especially the lookup method based on partitioning.
I tried to implement a similar reverse image search based on dHash as explained here https://github.com/Rayraegah/dhash . However, I also had lookup performance problems. Exact matches are not a problem but the Hamming distance threshold matching is. Because my project was in Python, I tried to eke out more performance by writing a BK-tree backend module in C++ https://github.com/mxmlnkn/cppbktree It was 2 to 10x faster than an existing similar module but still was too slow when trying to look up something in a database of millions of images. However, as lookup tended to depend on the exact Hamming-distance threshold value, my next step would have been to try and optimize the hash. E.g, make it shorter so that only a short Hamming distance is necessary to be looked up but the mentioned multi-indexing method looks much more promising and tested.
pyphashml
-
Simple, Fast, and Scalable Reverse Image Search
There's limits to how short you can make the perceptual hash. The more you compress it, the more information you lose.
The ML image classification models can be used to extract a good descriptor that can be further reduced into a compact signature.
https://github.com/starkdg/pyphashml
For indexing, I've had some success with distance-based indexing. Here's a comparison of some structures I used:
https://github.com/starkdg/pyphashml
Feel free to contact me, if you want to discuss this further.
What are some alternatives?
dhash - Perceptual hashing algorithm (dhash) to find similar images
phashml
ballistica - The BombSquad Game Engine
aat - Asynchronous, event-driven algorithmic trading in Python and C++
gerbolyze - Directly render SVG overlays into Gerber and Excellon files