Wednesday, May 30, 2012

Using KeyPoints


1. Locate the Features
        use Haar Cascade Classifier to locate the Eyebrows, Eyes, Ears (not useful), Nose and Mouth.
2. Get Key Points
        use SURF algorithm to get the key points.
        2.1 about the Key Points, (x,y)
            1. Eyebrow: eyebrow_l1, eyebrow_l2, eyebrow_r1, eyebrow_r2 
            2. Eye:         eye_l1, eye_l2, eye_r1, eye_r2
            3. Iris:          iris_l, iris_r
            4. Nose:       nose_l, nose_m, nose_r
            5. Mouth:    mouth_l, mouth_m, mouth_r
            6. Jaw:         jaw
            7. Face:       face_l1, face_l2, face_r1, face_r2

x=111 y=104 laplacian=1 size=16 dir=90.000000 hessian=15466.430664
x=182 y=106 laplacian=1 size=15 dir=90.000000 hessian=12413.648438
x=192 y=110 laplacian=1 size=16 dir=90.000000 hessian=13282.147461
x=79 y=132 laplacian=1 size=15 dir=90.000000 hessian=13704.891602
x=92 y=137 laplacian=-1 size=16 dir=90.000000 hessian=11122.696289
x=105 y=175 laplacian=1 size=16 dir=90.000000 hessian=11498.058594
x=76 y=216 laplacian=1 size=16 dir=90.000000 hessian=14645.329102
x=220 y=139 laplacian=-1 size=32 dir=90.000000 hessian=15401.563477
x=93 y=146 laplacian=1 size=34 dir=90.000000 hessian=16285.532227
x=215 y=153 laplacian=1 size=31 dir=90.000000 hessian=13717.638672
x=228 y=211 laplacian=-1 size=31 dir=90.000000 hessian=22596.167969
x=53 y=227 laplacian=1 size=30 dir=90.000000 hessian=13204.163086
x=270 y=240 laplacian=1 size=30 dir=90.000000 hessian=18954.589844
x=89 y=153 laplacian=1 size=57 dir=90.000000 hessian=14741.933594
x=213 y=191 laplacian=1 size=62 dir=90.000000 hessian=15877.199219
x=230 y=221 laplacian=-1 size=58 dir=90.000000 hessian=32176.843750


3. Get the Length of the features, and the Distance among the features
      (to make it easier to present, just show it like below)
      (actually works like [(y2-y1)^2 + (x2-x1)^2]^(1/2))

        iris_dist           = iris_r - iris_l ; (red points)

eye_length      = eye_l2 - eye_l1 ; ( orange point, yellow point)
nose_width     = nose_r - nose_l ; ( green points)
mouth_length  = mouth_r - mouth_l ; (purple points)
        eyebrow_length
                               = eyebrow_l2 - eyebrow_l1; (blue points)

        eye_dist          = eye_r2 - eye_l1; (orange points)
        nose_mouth    = nose_m - mouth_m; (green & purple)

face_length     = face_r1- face_l1 ; (blue-green color points)

4. The Shape of the Face ----- Face Angle
       i didn't make it to get all the key points i want on the outline of the face.
       so i change it to be like 
               face_l1(x,y) -> find point face_l1(x,y) on FaceOutLine where x = Iris_l(x)
       and also face_r1(x,y)
       then find face_l2(x,y) -> find point face_l2(x,y) on FaceOutLine where x = eye_l1(x)
              also face_r2(x,y)

       face_angle1 = ( jaw(y) - face_l1(y) ) / ( jaw(x) - face_l1(x) )
       face_angle2 = ( face_l1(y) - face_l2(y) ) / ( face_l1(x) - face_l2(x) )
       face_angle = face_angle1 / face_angle2

after these four steps, I get the information of the face:
     1. the length of nose, mouth, eyes, eyebrow
     2. the distance of the Iris_Iris, Eye_Eye, nose_mouth...




No comments:

Post a Comment