Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

新手询问人脸对齐问题 #4

Open
shaoguanglin opened this issue Jan 3, 2020 · 7 comments
Open

新手询问人脸对齐问题 #4

shaoguanglin opened this issue Jan 3, 2020 · 7 comments

Comments

@shaoguanglin
Copy link

shaoguanglin commented Jan 3, 2020

看到有Align类里面有仿射变换,想要做人脸对齐矫正的话,需要怎么做呢?

@syaringan357
Copy link
Owner

人脸矫正的话,使用两只眼睛和鼻子的坐标计算出头部倾斜角度,然后旋转图片,重新进行mtcnn人脸检测就可以了。mtcnn很慢,但是在手机上用大小和速度还算可以,如果在服务器上做人脸检测,建议用别的模型。

@shaoguanglin
Copy link
Author

人脸矫正的话,使用两只眼睛和鼻子的坐标计算出头部倾斜角度,然后旋转图片,重新进行mtcnn人脸检测就可以了。mtcnn很慢,但是在手机上用大小和速度还算可以,如果在服务器上做人脸检测,建议用别的模型。

谢谢指导!!我是在手机上做的。没有人脸矫正,我用你的demo的方式加上摄像头扫描,进行检测识别,不是同一个人比对,分数居然很高;同一个人,但是跟照片对比分数又低。

@syaringan357
Copy link
Owner

syaringan357 commented Jan 8, 2020

MobileFaceNet这个模型,我转成tflite以后在lfw数据集上测试,分数阙值设置为0.8,最终准确率为95.18%,是一个人的平均分数是0.8729,不是一个人的最高分数是0.762。
照片要先经过mtcnn把人脸剪裁出来,剪裁时增加一定margin,你也可以试试,直接把宽度扩充到和长度一样的尺寸,这样resize时就不会被压扁了。

@shaoguanglin
Copy link
Author

MobileFaceNet这个模型,我转成tflite以后在lfw数据集上测试,分数阙值设置为0.8,最终准确率为95.18%,是一个人的平均分数是0.8729,不是一个人的最高分数是0.762。
照片要先经过mtcnn把人脸剪裁出来,剪裁时增加一定margin,你也可以试试,直接把宽度扩充到和长度一样的尺寸,这样resize时就不会被压扁了。

好的,IMAGE_WIDTH=960,IMAGE_HEIGHT = 1280;这2个值设定有什么要求吗?可以根据自己摄像头的得到的照片尺寸修改吗?比如我的照片大小是1920x1080;如果按照您的这两个值,压缩后我的图片就是压缩的,导致我对比结果就不太理想,想知道是否是这个原因呢?(我两张对比的图片,一个1920x1080,一个是120x130;大小比例都不一样,按照您的Demo流程走到检测然后剪裁图片时,会报错,因为rect的y+height>bitmap的height 我试着将剪裁前的bitmap保存到本地查看,两张图是被压缩变形的 虽然5点定位都是ok的 这样是会影响识别准确度吗?)

@syaringan357
Copy link
Owner

syaringan357 commented Jan 10, 2020

960x1280,和MIN_SIZE=120,只是为了MTCNN运行快点,具体尺寸你随便设置,影响不大,详细原因建议去了解MTCNN原理。
如果两张图片不是来自于同一个输入源,尺寸都不一样,建议不要压扁或者拉伸,先把Bitmap转成长宽比例一样的,并且保证人脸图像没有变形,再送入MobileFaceNet。

@shaoguanglin
Copy link
Author

image 这里有个小bug应该是2哦。上面您讲bitmap转成长宽比一样,是指2个输入源的图片,弄成一致的比例还是说,弄成宽高一样 正方形呢?

@syaringan357
Copy link
Owner

mtcnn的作用是从图片中把人脸的四个角点的坐标计算出来,然后你用这四个坐标去就能把图片中的人脸剪裁出来,剪裁之前你可以再处理一下这4个坐标,比如增加margin,你只要保证剪裁出来的人脸图片长宽相等就可以了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants