4
AlgoRythm
16d

Sharing progress on a project I started two days ago.

Elevator pitch: a personal (open-source) photography website where you can search my repository of photos by color, brightness, orientation, resolution, and subject.

I got a new camera and it actually performs very well and it made me realize that there's a lot of interesting data in images, so I've decided to convert my personal blog into a photography-centered personal blog.

My first idea, the one that actually drew me into starting the project, was to pick colors from my images (colorpicker/ eyedropper style) and then on the home page, those colors would appear in a grid and you could click them to see related photos.

Cool idea, but clunky and not very useful in practice.

So I implemented median-cut algorithm to generate a palette from an input image. It has its weaknesses, but it's consistent and does a job that makes you go "yeah that's about right" in 99% of cases. It generates 8 colors and then a second algo removes any colors that are within 5% distance from one another.

Before the color theory nerds ask, YES - I am using plain-old RGB and you can suck my balls. I don't care about human perception enough - not for this project at least.

Then, these colors (and other basic image analysis like brightness) are stored in the DB and related to the image entity from the upload.

Then the user (not yet implemented...) can do the reverse. Either they can choose colors from a colorpicker, or they can upload their own photo to get a palette and then the colors are looked up in the database and the related images are shown in the search results.

This will be combined with a somewhat complex tree-style system for the subject of the photo. For example, a subject like "crow" can be related to the subject "bird" which itself can be related to the parent subject "animal". So if you search by crow, you'll only get crows, but if you search "animal", you'll get birds, crows, etc.

While it's not exactly a reverse image search like google images has, I think it's a somewhat refined take on a way to explore a photography repository - especially a personal one.

I am developing the management portal and the public facing portals as separate projects due to separation of concerns - and so I can avoid implementing (and upkeeping) authentication for ONE user (me) so it just runs on my local network.

Screenshot is the current iteration of the upload page for my management portal, which will eventually take care of watermarks etc etc.

Comments
  • 2
    It's a nice project. Good luck.

    Color theory nerds :P Oh damn!
  • 1
    That sounds pretty cool, I was just planning on training an AI for my image data - first I'd have to figure out how to make it do that though 😅
  • 1
    @BordedDev image captioning his possible to realize in less than a half hour with ollama. But you know that 😁
  • 1
    @retoor Not yet I didn't
Add Comment