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
180 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
 
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
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Introduction The parallel port is a very commonly known port, it was widely used to connect a printer to the PC, if you look at the back of your computer, for those who don't have newer computers, there will be a port with 25 pins and a small print…
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…
Video by: Mark
This lesson goes over how to construct ordered and unordered lists and how to create hyperlinks.
Both in life and business – not all partnerships are created equal. As the demand for cloud services increases, so do the number of self-proclaimed cloud partners. Asking the right questions up front in the partnership, will enable both parties …

911 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

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now