Solved

SOS,Find a good way to compare two id pictures to decide whether they are the same person.

Posted on 2001-07-18
9
192 Views
Last Modified: 2010-04-06
hi,dear experts,here I need your kind help very much.
 Firstly,I will introduce to you the backgroud of my project.I have to compare two id card pictures to see if they are the same person or not.The first picture is the previous one which has been stored in the database,now I have his(or her)another picture recently photographed,suppose there sizes are the same(If not,I can use the function 'copyrect' to make the current one be enlarged or minimized to fit the database one.)
    Secondly,I'd like to tell you my methods used in the project.first,I partition them into  '9rows*6lines' blocks(so there are 54 blocks,difference[i] stands for the diference of each block),then I will compare each pixel(red,green,blue) to see if they are the same,if not, inc(difference[i]) until we finish them.Now I will give every block's coefficient[i](between 0 and 1) according to their importance in the comparing process,for example,the section which the eyes are located,I will give 0.9 to it.Now the Difference:=sum(difference[i]*coefficient[i]),right?Second,I will figure out the all pixels,the pixels*3 is the counts I have compared in sum,so:
    Similarextent:=((width*height*3-Difference)/(width*height*3));right?
Third,I will give a threshold,if similarextent is larger than the threshold,I will assume they are the same one.

  Thirdly,I will give you the reasons that tell the method's incompleteness:
     1.The two pictures may be not both colorful or black and white;
     2.The pictures may has been reprocessed,such as smoothed,sharpened,inverted,luminance intensified or weakened,diffused,mosaiced.
     So the method of comparing the red,green and blue of each pixels is not incomplete,right?Do you have any better methods?I don't want to get an exact and very precise method but a realizable one.Please help me,Thank you very much.(If answered,I will give more points:))
0
Comment
Question by:nevsayno
9 Comments
 

Author Comment

by:nevsayno
ID: 6297357
     Any experts can give me some advice?I will appreciate your kind help very much.

0
 

Author Comment

by:nevsayno
ID: 6297437
     Any experts can give me some advice?I will appreciate your kind help very much.

0
 
LVL 9

Expert Comment

by:ITugay
ID: 6297448
Hi nevsayno,

it is very diffucult to implement pictures comaring.
But just one idea. Before comare pictures make it both black and white and apply some blur. Do not use fixed matrix. You have images in databse, so you can do few passes and increase matrix resolution every time until only one person in database will be equal to image.

-----
Igor.
0
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
LVL 21

Expert Comment

by:ziolko
ID: 6297486
nevsayno, compareing pictures pixel by pixel and checking difference makes sens only if You want compare 2 copies of the same picture. If You have one picture in DB and want to compare with another one and find out if on picture is same person it's almost impossible, 'cause on 2 different pics same person might be in different position, distance between person and camera will be different, lights different, etc, etc..
ziolko.
0
 
LVL 4

Accepted Solution

by:
fva earned 300 total points
ID: 6297542
Did you obtain any positive results with your method? It seems to me the most reasonable way to do it.

I would try to "equalize" somehow the two pictures before comparing. Do something like using the background (left-top square) to compensate the overall luminance and eventually to detect BW/color differences. After that, adjust the contrast using histograms built on each image, preserving the average luminance value.
Probably you should take account only of average square luminance when comparing since the color can be tricky.
Take into account the color only if the results obtained by using the above steps are not relevant enough, and even then use only specific "important" squares, like eyes/face areas.

F.
0
 
LVL 1

Expert Comment

by:h_mohsenian
ID: 6297832
it seems ur need is a image processing App.there are many standard method for do this ( Communication Experts always know them u can ask them ). i guess ur method is neural net analysis. but there are a good Neural Net Toolkit in Mathlab (do u know mathlab?). and i think also there is some image processing examples.

the best point in using mathlab is that this package can make c++ code that u can import to ur app.

i hope my comment can help u.

best regards
hamed
0
 
LVL 8

Expert Comment

by:TOndrej
ID: 6298075
0
 
LVL 13

Expert Comment

by:Epsylon
ID: 6298175
Just an idea. Subtract the picture from the original one. If the pictures are exactly the same, you will get a black picture. If there some differences, the result will be dark with some spots here and there.
Now calculate a liminosity histogram of it. The lower the values, the more the resemblance. The more the peaks stretch to the light range, the less the resemblance.
Play with Photoshop to see what happens. Use the layers to subtract the pictures from each other.
0
 

Author Comment

by:nevsayno
ID: 6301623
Honored fva,thank you very much.
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.

829 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question