Hi all.

I'm just done with a small learing project of mine, where I did an image archive browser (to browse my small personal image archive) to learn Apache::ASP (Yes, I know there are already lots of image archive browsers out there but I thought it was fun anyway...). Now, the next thing I want to learn is the Berkeley DB (using the BerlekeyDB module from CPAN) and I thougth that extending the image archive browser with a database of data about each image would be a nice learning project for me.

I want to be able to describe the image with words to categorize it, ie. artist, size, year, published in, depth, etc, would be nice. I would also like to describe the contents of the image with words like "flower", "wolves", "people" and so on. I don't think I'll have any problems creating that :)

However, the more I think about it, the more I want to be able do describe the content of the image in a way that the computer can understand so I can weed out duplicates. By this I don't mean exact duplicate, since I already weed them out with a script using a MD5 checksum, but rather the same image content in a diffrent size or maybe scanned by another person (diffrent colors). Sort of query by image content kind of thing.

I thought of creating some sort of representation for each image and store it in the database, then create a representation for each new image i get, compare this to the ones stored in the db, and have the program yell "Hey, t0mas you've already got that one! I'm 98% sure of that." at me if I already have a image that is 98% the same (content wise).

My problem is that I'm all lost in this area. I've searched for algorithms for this kind of stunt, but found none. I've found some papers describing the general concepts of this but no gory details. There are some software out there that can do object reconition on images, but this seems like an overkill for my little app (and I haven't found any with an open api) since I only want weed out duplicates.

I havn't done anything like this before so now I'm asking you all: Has anyone done anything like this in perl? Have any algorithms or snippets to share? Any URLs to open source projects (with an api) that does this?

Thanks for your time.

/brother t0mas

In reply to Query by Image Content by t0mas

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.