Thread: 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
Attachment
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
> 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
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
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
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 givenfingerprint, 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
-----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-----
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? ;-)
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 > > > >
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 > > > >
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
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
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