Thread

  1. GSoC

    Anindya Jyoti Roy <anindyar@iitk.ac.in> — 2010-03-29T20:03:59Z

    I have some idea of implementing am image database system, which will 
    let you search against the image and fingerprint:
    
    The idea crudely is the following:
    
    I want to implement a image database system: This will have the 
    following quality:
    1> will store image along with the other attributes
    2> the database search engine will be able to search for image also
    3> it will list the matching images in the order of degree of match.
    4> in this matching system I will likely use the system of dividing the 
    image into important parts and match them.
    5> The database will also contain fingerprints, that may  be the primary 
    key.
    6> it will match the finger prints on the basis of the nodes and then 
    making a bitmap of it and using the coordinates with some error it will 
    match them
    7> to include some accuracy in case of the angle of picture in case of 
    search of equality we will introduce some logical amount of error.
    8> this project can be coded by me as I have some previous experience in 
    this type of project.
    9> this will make a definitly good search engine as well as innovative 
    and uncommon.
    
    
    
    About me:
    
    I am Sophomore of Indian Institute of Technology, kanpur in CSE BTech. I 
    have a good academic record till date and a keen interest on Data Mining 
    and Machine language as well as Image processing. I am attaching my 
    resume in short form with this mail hoping it may help you to judge my 
    credibility. I am strong in Coding and Maths and able to solve problems 
    within given timeline.
    
    I can give a more detail explanation of my project. But I just wanted to 
    give an outline here.
    
    Let me know the feedback.
    Thanks for your time,
    
    Your faithfully,
    
         Anindya Jyoti Roy
         Sophomore
         CSE Bteck
         IIT Kanpur
    
  2. Re: GSoC

    Robert Haas <robertmhaas@gmail.com> — 2010-03-29T23:08:23Z

    On Mon, Mar 29, 2010 at 4:03 PM, Anindya Jyoti Roy <anindyar@iitk.ac.in> wrote:
    > I want to implement a image database system: This will have the following
    > quality:
    > 1> will store image along with the other attributes
    > 2> the database search engine will be able to search for image also
    > 3> it will list the matching images in the order of degree of match.
    > 4> in this matching system I will likely use the system of dividing the
    > image into important parts and match them.
    > 5> The database will also contain fingerprints, that may  be the primary
    > key.
    > 6> it will match the finger prints on the basis of the nodes and then making
    > a bitmap of it and using the coordinates with some error it will match them
    > 7> to include some accuracy in case of the angle of picture in case of
    > search of equality we will introduce some logical amount of error.
    > 8> this project can be coded by me as I have some previous experience in
    > this type of project.
    > 9> this will make a definitly good search engine as well as innovative and
    > uncommon.
    
    While you can certainly use PostgreSQL's extensible type system to
    implement something like this, you'll probably need a good deal more
    help and guidance from someone who is an expert on image matching
    algorithms than you will from pgsql-hackers.  But feel free to reach
    out to this community for help with the PG bits.
    
    Having said that, I wouldn't suggest submitting this as a GSoC
    project.  It sounds far too hard to be done well (or maybe even
    poorly) in one summer.  To be really useful, this would probably need
    some kind of index support, maybe based on GIN.  You're not going to
    get that done by August even if you start now and don't sleep.  Even
    if you did, my guess is that this is the sort of thing that the PG
    community would prefer to see maintained as a separate project that
    integrates with PG, rather than a part of core PG.
    
    See also:
    
    http://archives.postgresql.org/pgsql-hackers/2010-03/msg01034.php
    http://archives.postgresql.org/pgsql-hackers/2010-03/msg01116.php
    
    ...Robert
    
    
  3. Re: GSoC

    Josh Berkus <josh@agliodbs.com> — 2010-03-30T00:03:28Z

    > The idea crudely is the following:
    > 
    > I want to implement a image database system: This will have the
    > following quality:
    
    This seems fine, but I believe it's been done before.  You might want to
    search for existing projects, and make an improvement on an existing
    project rather than starting from scratch.
    
    -- 
                                      -- Josh Berkus
                                         PostgreSQL Experts Inc.
                                         http://www.pgexperts.com
    
    
  4. Re: GSoC

    Dann Corbit <dcorbit@connx.com> — 2010-03-30T00:16:35Z

    Maybe this can be helpful:
    http://sourceforge.net/search/?type_of_search=soft&words=fingerprint
    http://sourceforge.net/search/?type_of_search=soft&words=image+recogniti
    on
    
    
    > -----Original Message-----
    > From: pgsql-hackers-owner@postgresql.org [mailto:pgsql-hackers-
    > owner@postgresql.org] On Behalf Of Anindya Jyoti Roy
    > Sent: Monday, March 29, 2010 1:04 PM
    > To: pgsql-hackers@postgresql.org
    > Subject: [HACKERS] GSoC
    > 
    > I have some idea of implementing am image database system, which will
    > let you search against the image and fingerprint:
    > 
    > The idea crudely is the following:
    > 
    > I want to implement a image database system: This will have the
    > following quality:
    > 1> will store image along with the other attributes
    > 2> the database search engine will be able to search for image also
    > 3> it will list the matching images in the order of degree of match.
    > 4> in this matching system I will likely use the system of dividing
    the
    > image into important parts and match them.
    > 5> The database will also contain fingerprints, that may  be the
    > primary
    > key.
    > 6> it will match the finger prints on the basis of the nodes and then
    > making a bitmap of it and using the coordinates with some error it
    will
    > match them
    > 7> to include some accuracy in case of the angle of picture in case of
    > search of equality we will introduce some logical amount of error.
    > 8> this project can be coded by me as I have some previous experience
    > in
    > this type of project.
    > 9> this will make a definitly good search engine as well as innovative
    > and uncommon.
    > 
    > 
    > 
    > About me:
    > 
    > I am Sophomore of Indian Institute of Technology, kanpur in CSE BTech.
    > I
    > have a good academic record till date and a keen interest on Data
    > Mining
    > and Machine language as well as Image processing. I am attaching my
    > resume in short form with this mail hoping it may help you to judge my
    > credibility. I am strong in Coding and Maths and able to solve
    problems
    > within given timeline.
    > 
    > I can give a more detail explanation of my project. But I just wanted
    > to
    > give an outline here.
    > 
    > Let me know the feedback.
    > Thanks for your time,
    > 
    > Your faithfully,
    > 
    >      Anindya Jyoti Roy
    >      Sophomore
    >      CSE Bteck
    >      IIT Kanpur
    
    
  5. Re: GSoC

    Jeff Davis <pgsql@j-davis.com> — 2010-03-30T01:02:47Z

    On Mon, 2010-03-29 at 19:08 -0400, Robert Haas wrote:
    > To be really useful, this would probably need
    > some kind of index support, maybe based on GIN.
    
    Yes.
    
    >   You're not going to
    > get that done by August even if you start now and don't sleep.
    
    The extensibility mechanism is designed so that an expert in one field
    can add interesting operators and indexing strategies with a reasonable
    amount of effort. If he already understands the image processing aspect
    well (and has at least some working code somewhere), I would like to
    think that it's possible to develop very basic support in postgresql in
    a few months.
    
    It doesn't need to be as complete as PostGIS after one summer of work.
    It just needs to be able to search images with basic functionality, and
    the rest can be added later after he's already hooked on PostgreSQL ;)
    
    >  Even
    > if you did, my guess is that this is the sort of thing that the PG
    > community would prefer to see maintained as a separate project that
    > integrates with PG, rather than a part of core PG.
    
    That isn't necessarily a bad thing. PostGIS is an incredibly successful
    extension that is developed outside the project. It may be a problem
    with GSoC unless we have some sort of community buy-in, but from a
    technical standpoint I don't see a problem here.
    
    Regards,
    	Jeff Davis
    
    
    
  6. Re: GSoC

    Jeff Davis <pgsql@j-davis.com> — 2010-03-30T01:03:12Z

    On Tue, 2010-03-30 at 01:33 +0530, Anindya Jyoti Roy wrote:
    > I have some idea of implementing am image database system, which will 
    > let you search against the image and fingerprint:
    > 
    > The idea crudely is the following:
    > 
    > I want to implement a image database system: This will have the 
    > following quality:
    > 1> will store image along with the other attributes
    > 2> the database search engine will be able to search for image also
    > 3> it will list the matching images in the order of degree of match.
    > 4> in this matching system I will likely use the system of dividing the 
    > image into important parts and match them.
    > 5> The database will also contain fingerprints, that may  be the primary 
    > key.
    > 6> it will match the finger prints on the basis of the nodes and then 
    > making a bitmap of it and using the coordinates with some error it will 
    > match them
    > 7> to include some accuracy in case of the angle of picture in case of 
    > search of equality we will introduce some logical amount of error.
    > 8> this project can be coded by me as I have some previous experience in 
    > this type of project.
    > 9> this will make a definitly good search engine as well as innovative 
    > and uncommon.
    
    If you plan to spend your time refining complex image processing
    algorithms, or learning about image processing as you go, I think the
    project will be impossible to finish in one summer. Not only that, you
    would need to find someone capable of reviewing such code.
    
    I believe you should focus on a couple simple image processing
    algorithms that you already understand very well. If you written image
    processing code in the past, I believe it could be a good project. The
    way I see it, you would need to:
    
      1. Create a user-defined type for the fingerprint.
      2. Create a user-defined function to transform a raster image into a
    fingerprint.
      3. Code to index fingerprints using the GiST or GIN API.
      4. Code to search for fingerprints that match a given fingerprint,
    using the GiST or GIN API and a custom operator.
    
    After you have the basics completed, you can introduce more
    sophisticated fingerprint representations and comparison algorithms.
    That would probably be an ongoing effort after the GSoC project is
    complete.
    
    Regards,
    	Jeff Davis
    
    
    
    
    
  7. Re: GSoC

    Anindya Jyoti Roy <anindyar@iitk.ac.in> — 2010-03-30T04:56:25Z

    As Jeff Davis pointed out, I followed the modification he suggested and 
    now I want to have a basic matching only. I think atleast the 
    fingerprint processing can be done in summer (if not the image 
    processing). Is it a good GSoC project now?
    
    Waiting for a reply eagerly
    Thanks and regards,
    
    Anindya Jyoti Roy
         Sophomore
         CSE Btech
         IIT Kanpur
    
    On 30-Mar-10 6:33 AM, Jeff Davis wrote:
    > On Tue, 2010-03-30 at 01:33 +0530, Anindya Jyoti Roy wrote:
    >    
    >> I have some idea of implementing am image database system, which will
    >> let you search against the image and fingerprint:
    >>
    >> The idea crudely is the following:
    >>
    >> I want to implement a image database system: This will have the
    >> following quality:
    >> 1>  will store image along with the other attributes
    >> 2>  the database search engine will be able to search for image also
    >> 3>  it will list the matching images in the order of degree of match.
    >> 4>  in this matching system I will likely use the system of dividing the
    >> image into important parts and match them.
    >> 5>  The database will also contain fingerprints, that may  be the primary
    >> key.
    >> 6>  it will match the finger prints on the basis of the nodes and then
    >> making a bitmap of it and using the coordinates with some error it will
    >> match them
    >> 7>  to include some accuracy in case of the angle of picture in case of
    >> search of equality we will introduce some logical amount of error.
    >> 8>  this project can be coded by me as I have some previous experience in
    >> this type of project.
    >> 9>  this will make a definitly good search engine as well as innovative
    >> and uncommon.
    >>      
    > If you plan to spend your time refining complex image processing
    > algorithms, or learning about image processing as you go, I think the
    > project will be impossible to finish in one summer. Not only that, you
    > would need to find someone capable of reviewing such code.
    >
    > I believe you should focus on a couple simple image processing
    > algorithms that you already understand very well. If you written image
    > processing code in the past, I believe it could be a good project. The
    > way I see it, you would need to:
    >
    >    1. Create a user-defined type for the fingerprint.
    >    2. Create a user-defined function to transform a raster image into a
    > fingerprint.
    >    3. Code to index fingerprints using the GiST or GIN API.
    >    4. Code to search for fingerprints that match a given fingerprint,
    > using the GiST or GIN API and a custom operator.
    >
    > After you have the basics completed, you can introduce more
    > sophisticated fingerprint representations and comparison algorithms.
    > That would probably be an ongoing effort after the GSoC project is
    > complete.
    >
    > Regards,
    > 	Jeff Davis
    >
    >
    >
    >    
    
    
    
    
  8. Re: GSoC

    tomas@tuxteam.de — 2010-03-30T05:50:02Z

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1
    
    On Tue, Mar 30, 2010 at 01:33:59AM +0530, Anindya Jyoti Roy wrote:
    > I have some idea of implementing am image database system, which will let 
    > you search against the image and fingerprint:
    
    As others already pointed out, this seems a huge task for a summer,
    unless you have the image processing parts sorted out. That said, you
    might want to have a look at GNU Gift [1], [2]. They seem to have sorted
    out the image fingerprinting and comparing bits and have a sound
    academic foundation.
    
    Note that the project itself is under the GNU GPL, thus you won't
    be able to just copy code from there to build "into" PostgreSQL. But
    you can turn to this project for inspiration and algorithms (or you
    can realize it as an external project, as others have proposed).
    
    [1] <http://en.wikipedia.org/wiki/GIFT_(Gnu)>
    [2] <http://www.gnu.org/software/gift/>
    
    Regards
    - -- tomás
    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.4.6 (GNU/Linux)
    
    iD8DBQFLsZEKBcgs9XrR2kYRAhmYAJ0dwQdYxTq1dOt5dszPKEUk6E6dfQCdFFF7
    Nh0cErVA+KgBxsn8O7MSOno=
    =zGRr
    -----END PGP SIGNATURE-----
    
    
  9. Re: GSoC

    Anindya Jyoti Roy <anindyar@iitk.ac.in> — 2010-03-30T06:31:20Z

    As Jeff Davis pointed out, I followed the modification he suggested and 
    now I want to have a basic matching only. I think atleast the 
    fingerprint processing can be done in summer (if not the image 
    processing). Is it a good GSoC project now?
    
    Waiting for a reply eagerly
    Thanks and regards,
    
    Anindya Jyoti Roy
         Sophomore
         CSE Btech
         IIT Kanpur
    
    On 30-Mar-10 6:33 AM, Jeff Davis wrote:
    > On Tue, 2010-03-30 at 01:33 +0530, Anindya Jyoti Roy wrote:
    >
    >> I have some idea of implementing am image database system, which will
    >> let you search against the image and fingerprint:
    >>
    >> The idea crudely is the following:
    >>
    >> I want to implement a image database system: This will have the
    >> following quality:
    >> 1>  will store image along with the other attributes
    >> 2>  the database search engine will be able to search for image also
    >> 3>  it will list the matching images in the order of degree of match.
    >> 4>  in this matching system I will likely use the system of dividing the
    >> image into important parts and match them.
    >> 5>  The database will also contain fingerprints, that may  be the primary
    >> key.
    >> 6>  it will match the finger prints on the basis of the nodes and then
    >> making a bitmap of it and using the coordinates with some error it will
    >> match them
    >> 7>  to include some accuracy in case of the angle of picture in case of
    >> search of equality we will introduce some logical amount of error.
    >> 8>  this project can be coded by me as I have some previous experience in
    >> this type of project.
    >> 9>  this will make a definitly good search engine as well as innovative
    >> and uncommon.
    >>
    > If you plan to spend your time refining complex image processing
    > algorithms, or learning about image processing as you go, I think the
    > project will be impossible to finish in one summer. Not only that, you
    > would need to find someone capable of reviewing such code.
    >
    > I believe you should focus on a couple simple image processing
    > algorithms that you already understand very well. If you written image
    > processing code in the past, I believe it could be a good project. The
    > way I see it, you would need to:
    >
    >    1. Create a user-defined type for the fingerprint.
    >    2. Create a user-defined function to transform a raster image into a
    > fingerprint.
    >    3. Code to index fingerprints using the GiST or GIN API.
    >    4. Code to search for fingerprints that match a given fingerprint,
    > using the GiST or GIN API and a custom operator.
    >
    > After you have the basics completed, you can introduce more
    > sophisticated fingerprint representations and comparison algorithms.
    > That would probably be an ongoing effort after the GSoC project is
    > complete.
    >
    > Regards,
    > 	Jeff Davis
    >
    >
    >
    >
    
    
    
    
  10. Re: GSoC

    Peter Eisentraut <peter_e@gmx.net> — 2010-03-30T11:04:48Z

    On mån, 2010-03-29 at 17:03 -0700, Josh Berkus wrote:
    > > The idea crudely is the following:
    > > 
    > > I want to implement a image database system: This will have the
    > > following quality:
    > 
    > This seems fine, but I believe it's been done before.  You might want to
    > search for existing projects, and make an improvement on an existing
    > project rather than starting from scratch.
    
    You mean INGRES, the Interactive Graphics Retrieval System?
    
    ;-)
    
    
    
  11. Re: GSoC

    Dimitri Fontaine <dfontaine@hi-media.com> — 2010-03-30T13:36:25Z

    Robert Haas <robertmhaas@gmail.com> writes:
    
    > On Tue, Mar 30, 2010 at 12:56 AM, Anindya Jyoti Roy <anindyar@iitk.ac.in> wrote:
    >> As Jeff Davis pointed out, I followed the modification he suggested and now
    >> I want to have a basic matching only. I think atleast the fingerprint
    >> processing can be done in summer (if not the image processing). Is it a good
    >> GSoC project now?
    >
    > I'm not sure.  Can you provide a more detailed design?
    
    Apply the following to fingerprint searches ?
    
      http://www.postgresql.org/docs/current/static/gist-implementation.html
      http://wiki.postgresql.org/wiki/Image:Prato_2008_prefix.pdf
    
    I guess that what remains to be defined is how you get those
    fingerprint, what the datatype is named, is it fixed size or varlena,
    what operators you want to make available, and which will have index
    support. That's GiST + GIN, right ?
    
    Regards,
    -- 
    dim
    
    
  12. Re: GSoC

    Robert Haas <robertmhaas@gmail.com> — 2010-03-30T13:54:58Z

    On Tue, Mar 30, 2010 at 12:56 AM, Anindya Jyoti Roy <anindyar@iitk.ac.in> wrote:
    > As Jeff Davis pointed out, I followed the modification he suggested and now
    > I want to have a basic matching only. I think atleast the fingerprint
    > processing can be done in summer (if not the image processing). Is it a good
    > GSoC project now?
    
    I'm not sure.  Can you provide a more detailed design?
    
    ...Robert
    
    
  13. Re: GSoC

    Robert Haas <robertmhaas@gmail.com> — 2010-03-31T00:07:33Z

    On Tue, Mar 30, 2010 at 9:36 AM, Dimitri Fontaine
    <dfontaine@hi-media.com> wrote:
    > Robert Haas <robertmhaas@gmail.com> writes:
    >
    >> On Tue, Mar 30, 2010 at 12:56 AM, Anindya Jyoti Roy <anindyar@iitk.ac.in> wrote:
    >>> As Jeff Davis pointed out, I followed the modification he suggested and now
    >>> I want to have a basic matching only. I think atleast the fingerprint
    >>> processing can be done in summer (if not the image processing). Is it a good
    >>> GSoC project now?
    >>
    >> I'm not sure.  Can you provide a more detailed design?
    >
    > Apply the following to fingerprint searches ?
    >
    >  http://www.postgresql.org/docs/current/static/gist-implementation.html
    >  http://wiki.postgresql.org/wiki/Image:Prato_2008_prefix.pdf
    >
    > I guess that what remains to be defined is how you get those
    > fingerprint, what the datatype is named, is it fixed size or varlena,
    > what operators you want to make available, and which will have index
    > support. That's GiST + GIN, right ?
    
    Well, yeah.  I think the fingerprinting and operator support are the
    real questions.  My fear is that the student who is asking this
    question does not really have a good handle on that aspect of the
    project.  Maybe I'm wrong.  However the description that was given
    was:
    
    2> the database search engine will be able to search for image also
    3> it will list the matching images in the order of degree of match.
    4> in this matching system I will likely use the system of dividing
    the image into important parts and match them.
    
    That's pretty vague.  If someone came and said, I'm going to use XYZ
    system from the following academic papers, that would inspire a lot
    more confidence, at least for me.  Also I think this item from the
    original email reflects a fundamental misunderstanding of how this
    would integrate into PostgreSQL:
    
    5> The database will also contain fingerprints, that may  be the primary key.
    
    Again, if the student had said, the XYZ system above will work well
    with GIN indexing because we can construct the posting lists like
    thus-and-so, or if they had said, it will work well with GIST because
    there is a similarity metric we can use to construct the penalty and
    picksplit functions, I would feel a lot better.  But the description
    given is so general in terms of both what is to be done on the image
    processing side and what is to be done on the PostgreSQL side that I
    am afraid that the student is going to be in far too deep.  Compare
    this description with the one from the student who wants to implement
    JSON support - that sounds a whole lot closer to something that
    someone (perhaps him) could sit down and code.
    
    My point here is not to discourage anyone or turn them off on trying
    to submit a GSoC project related to PostgreSQL.  Indeed, I really hope
    they do.  But it will benefit the project much more if the projects
    are small and successful than it will if they are large and not
    successful, or successful according to some metric but not actually
    producing code that will be widely used or merged into core.
    
    ...Robert