人脸变形和识别
我有两个要求:
- 社交网络的成员选择其他成员的面孔并对他们的平均面孔进行变形。
- 该网站会找到与变形后的脸部相似的其他成员的脸部,并按照相似度的顺序列出。
有一个脚本可以做到这一点吗?
我看到 http://www.faceresearch.org/demos/average 执行了第 1 项但他们不许可他们的技术。
请帮忙。先感谢您。
I have two requirements:
- members of a social network choose other member's faces and morph an average face of them.
- The website finds other members' faces that resemble the morphed face and list up in order of resemblance.
Is there a script that can do this?
I see that http://www.faceresearch.org/demos/average does the item 1 but they don't license their technology.
Please help. Thank you in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
首先要对面部进行平均,您需要对齐面部特征。您可以查看“主动外观模型”来获取该模型。一旦你对齐面孔,你就可以得到卑鄙的面孔。之后,您可以使用 PCA 比较面孔以获得最接近的匹配。
First to take average of a faces you need to align the facial features. You can look at Active Appearance Models to get that one. Once you align the faces you can get mean face. After that you can compare the faces using PCA to get the nearest match.
我编写了一个简单的库来处理 JavaScript 中的变形,但它不进行特征检测。 (在我的实现中,您必须手动选择匹配点)。
http://peter.pisljar.si/#!/en/projects/image_morph_js
要使其自动工作,您需要识别脸上的一些点(越多越好)。另外,为了使动画看起来不错,图像应该具有相同的大小,相似的背景......
找到与你的脸相似的其他面孔......这可能更有趣:)
你可以尝试使用分类器(k 最近邻居?),但是我不确定它的实际效果如何。
您可以在这里找到一个很好的检测面部特征的算法列表:
https://facedetection.com/algorithms/
ps:另一个想法......你也可以只比较面部特征(类似于指纹比较,它实际上并不比较指纹,而只是比较其特征(线分割、短线、线退出与进入的同一侧)
I wrote a simple library to handle the morphing in javascript, but it does not do feature detection. (in my implementation you have to choose the matching points manually).
http://peter.pisljar.si/#!/en/projects/image_morph_js
to make it work automatically you will need to recognize some points (more the better) on the face. Also for the animation to look nice the images should be of the same size, similar background ...
finding other faces that resemble your face ... that might be more interesting :)
you could try with classifiers (k nearest neighbours ?) however i am not sure how well will it actually work.
you can find a nice list of algorithms to detect facial features here:
https://facedetection.com/algorithms/
ps: another idea ... you could also just compare the facial features (something like fingerprint comparison, where it doesnt actually compare fingerprints, but just its features (line splits, short line, line exits on the same side as it enters)