GithubHelp home page GithubHelp logo

Advice for face alignment about mtcnn HOT 9 CLOSED

duinodu avatar duinodu commented on June 27, 2024
Advice for face alignment

from mtcnn.

Comments (9)

kizilkanat avatar kizilkanat commented on June 27, 2024 7

This worked fine:

import numpy as np
import cv2

imgSize = (112, 96)

x_ = [30.2946, 65.5318, 48.0252, 33.5493, 62.7299]
y_ = [51.6963, 51.5014, 71.7366, 92.3655, 92.2041]

src = np.array( zip(x_, y_) ).astype(np.float32).reshape(1,5,2)

alignedFaces = []

# there might be more than one faces, hence
# multiple sets of points
for pset in points:
    img2 = img.copy()

    pset_x = pset[0:5]
    pset_y = pset[5:10]

    dst = np.array( zip(pset_x, pset_y) ).astype(np.float32).reshape(1,5,2)
    
    transmat = cv2.estimateRigidTransform( dst, src, False )

    out = cv2.warpAffine(img2, transmat, (imgSize[1], imgSize[0]))

    alignedFaces.append(out)

from mtcnn.

nttstar avatar nttstar commented on June 27, 2024 2

you can refer to my article: here

from mtcnn.

DuinoDu avatar DuinoDu commented on June 27, 2024

Good for you.

from mtcnn.

xizi avatar xizi commented on June 27, 2024

Hi @DuinoDu ,
I found transmat = cv2.estimateRigidTransform( dst, src, False ) sometimes return None when the face is side face. But transf = cp2tform(coord5point_ori, coord5point_fixed, 'similarity') can work well. Could you give some help?

from mtcnn.

DuinoDu avatar DuinoDu commented on June 27, 2024

Hi, @xizi. Where do you find "transmat = cv2.estimateRigidTransform( dst, src, False ) "?
Can you provide url?

from mtcnn.

xizi avatar xizi commented on June 27, 2024

It is kizilkanat provide it from above and i have solved this problem by use "transmat = cv2.estimateRigidTransform( dst, src, True ) ". Thanks for your reply.

from mtcnn.

DuinoDu avatar DuinoDu commented on June 27, 2024

Good for you.

from mtcnn.

DL-85 avatar DL-85 commented on June 27, 2024

It's very helpful! Thanks, nttstar.

from mtcnn.

cannguyen275 avatar cannguyen275 commented on June 27, 2024

Hey guys, I just saw @nttstar have 25% better results with skimage SimilarityTransform than OpenCV estimateRigidTransform.

That's insane! The aligned images from 2 methods totally looks the same.
Does skimage do any difference things with its function, compare with Opencv?

I do want to use skimage SimilarityTransform in C++, Java also but skimage doesn't support. Do you guys know any which can use in C++, Java but strong liked skimage?

from mtcnn.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.