Comments (9)
I would just use a phash. This produces a hash that should withstand scaling and minor amounts of filtering. At best you eliminate duplicates. At worst, you still have them. Either way, you'll eliminate files resulting from simple copies/renaming on disk.
I wrote a Go implementation a couple of years ago that produced identical results to the other implementations at http://blockhash.io . They never updated the website, but it works all the same.
https://github.com/dsoprea/go-perceptualhash
It's not perfect, but it's as close as you're gonna get without some research guys.
from photoprism.
Was also going to look into the sha1 fingerprints we do for all files... my feeling is it adds significant overhead, maybe we can find a faster solution that is also reliable. It is used to determine, if a file needs to be indexed again and if new thumbs are needed.
from photoprism.
That makes more sense. You're not (at this stage) concerned with associating all permutations.
from photoprism.
The light and color maps we have for all photos are some kind of perceptual hash... we want to use that later to easily find similar images.
from photoprism.
That's interesting. Presumably, you'd have to layer them or otherwise marry them together first.
from photoprism.
See https://github.com/photoprism/photoprism/blob/develop/internal/photoprism/colors.go
from photoprism.
We now extract Document and Instance ID via exiftool and use it for grouping related files with different names.
from photoprism.
What if those aren't present (since they're nonstandard)?
from photoprism.
Exif may contain an ImageID, typically a hash or UUID. Not extremely common though. Document and Instance ID can be found in XMP metadata.
from photoprism.
Related Issues (20)
- Videos: Support workers (like Peertube runners) for distributed transcoding
- Videos: Upgrade FFmpeg to v7.x for faster transcoding and extended file format support
- Only first "Person in Image" is added to People tab when import photo with exif metadata HOT 1
- Places: Include videos in the map-based place browser (the 'Places' view) HOT 2
- Indexing: (Re)index selected photos/videos HOT 1
- Correct thumbnails, after clicking on them the wrong photo is displayed (for some photos) HOT 2
- Metadata: Don't ignore stop words when generating titles from file names HOT 2
- Photoprism gives space error and refused to start
- PhotoSync App Password HOT 1
- UX: Support timeline feature HOT 2
- Image Import seems to ignore visually similar image with different SHA1sums. HOT 2
- Portainer stack setup does not work if you change PHOTOPRISM_DATABASE_PASSWORD from "insecure" to anything else. HOT 1
- Orientation operation, returned error 500 HOT 4
- Search: Enable Title-Based Sorting HOT 3
- New face can't be named – Entity not found HOT 11
- Sharing: Add names to the secret token of the link HOT 1
- Cannot create apps and services HOT 2
- MariaDB binay logs growing more than 1GB per hour after upgrading to Build 240420-ef5f14bc4 HOT 4
- Config for change Video Transcoding coder HOT 1
- Albums: Remove photo from review when adding it to an album HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from photoprism.