?
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
Medium Priority
?
213 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
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
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
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 900 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

New benefit for Premium Members - Upgrade now!

Ready to get started with anonymous questions today? It's easy! Learn more.

Question has a verified solution.

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

Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
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…
In this video, Percona Solution Engineer Dimitri Vanoverbeke discusses why you want to use at least three nodes in a database cluster. To discuss how Percona Consulting can help with your design and architecture needs for your database and infras…
In this video, Percona Solutions Engineer Barrett Chambers discusses some of the basic syntax differences between MySQL and MongoDB. To learn more check out our webinar on MongoDB administration for MySQL DBA: https://www.percona.com/resources/we…
Suggested Courses
Course of the Month9 days, 21 hours left to enroll

762 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